Messages in this thread | | | Date | Wed, 02 Jun 2010 19:15:36 -0700 | From | "Justin P. Mattock" <> | Subject | Re: [PATCH]X86:reboot.c Add some dmi entries to pci_reboot_dmi_table. |
| |
On 06/02/2010 06:47 PM, Robert Hancock wrote: > On Wed, Jun 2, 2010 at 7:37 PM, Matthew Garrett<mjg59@srcf.ucam.org> wrote: >> On Wed, Jun 02, 2010 at 05:27:22PM -0700, Justin P. Mattock wrote: >>> On 06/02/2010 05:20 PM, Robert Hancock wrote: >>>> #include<unistd.h> >>>> >>>> int main() { >>>> iopl(3); >>>> outb(2, 0xcf9); >>>> sleep(1); >>>> outb(6, 0xcf9); >>>> return 0; >>>> } >>>> >>>> That's basically what PCI reboot does. >>> >>> the above code reboot's the machine as it should.. >>> I can look at that(need to take a break first though) >>> and see.. >> >> That's pretty infuriating. The ACPI-provided definition doesn't work, >> and there's no ACPI mechanism for expressing the more complex cf9 >> behaviour. Windows doesn't appear to special case this, so we're >> probably left trying to figure out why the keyboard controller method >> doesn't work. Sigh. > > Do these Macs even have a PC keyboard controller? A recent thread on > PS/2 keyboard/mouse controller probing suggests they may not.. > > Justin, what happens if you try the simple outb(6, 0xcf9) test program > multiple times, does that do anything? >
as soon as I change:
int main() { iopl(3); outb(6, 0xcf9); usleep(100); outb(6, 0xcf9); return 0; } (the above gave a command prompt with numerous tries) to:
int main() { iopl(3); outb(2, 0xcf9); usleep(100); outb(6, 0xcf9); return 0; }
it worked..(on the first try)
but still am confused as to why I tried: outb(2, 0xcf9); with nothing happening. (Maybe something in there is changing each boot or something.)
Justin P. Mattock
Justin P. Mattock
| |