Messages in this thread | | | Date | Fri, 4 Apr 2014 19:40:29 +0200 | From | Ingo Molnar <> | Subject | Re: [BUG] x86: reboot doesn't reboot |
| |
* H. Peter Anvin <hpa@zytor.com> wrote:
> On April 4, 2014 9:32:58 AM PDT, Matthew Garrett <mjg59@srcf.ucam.org> wrote: > > > Windows does ACPI first, so no. And the Dells were broken even > > before we moved ACPI up the list. > > That's not what you said a few posts ago.
Exactly, the claim ws:
"Windows hits the keyboard controller and then tries the ACPI vector."
Which is obviously not the same as 'Windows does ACPI first'.
So the first step _has_ to be to document exactly what Windows does, because that's the hardware ABI that we cannot deviate from much. Or if we don't know a detail, document the specific uncertainties, don't pretend we know it!
The current documented sequence lists 0xcf9, which seems to be a lie:
/* * Windows compatible x86 hardware expects the following on reboot: * * 1) If the FADT has the ACPI reboot register flag set, try it * 2) If still alive, write to the keyboard controller * 3) If still alive, write to the ACPI reboot register again * 4) If still alive, write to the keyboard controller again * 5) If still alive, call the EFI runtime service to reboot * 6) If still alive, write to the PCI IO port 0xCF9 to reboot * 7) If still alive, inform BIOS to do a proper reboot
Thanks,
Ingo
| |