> "And, shockingly, it turns out that on most systems the ACPI reboot vector points at 0xcf9 in system IO space. Even though most implementations nominally require two different values be written, it seems that this isn't a strict requirement and the ACPI method works."
> I don't understand what Matthew means here. How does this relate to the "gaps" between writes, and how does it make reboots work better?
It doesn't; it points out that the ACPI method is often just a half-assed way of doing the PCI method (because although technically two values are required, only one is apparently *necessary*.
The gap points to the fact that so much of the hardware is oriented toward the particular way that Windows does things that Linux has to painfully reverse-engineer every minute detail or else hardware starts breaking and Linux gets blamed because "It Works Under Windows Just Fine." Apparently, on some systems, not hitting ACPI (really just half-assed PCI), hitting the keyboard method, and then hitting ACPI again is what is *required* to properly reboot the system. Because That's How Windows Does It and We Don't Support Anything Else.
The PCI method, from the article:
> pci - not actually pci. Traditional PCI config space access is achieved by writing a 32 bit value to io port 0xcf8 to identify the bus, device, function and config register. Port 0xcfc then contains the register in question. But if you write the appropriate pair of magic values to 0xcf9, the machine will reboot. Spectacular! And not standardised in any way (certainly not part of the PCI spec), so different chipsets may have different requirements. Booo.
Synopsis: stop buying Windows hardware (laptops, desktops, servers, etc.) if you want Linux to work on your computer. :) [this is the long-term solution: make Linux impossible for (at least a significant subset of the) hardware vendors to ignore so that hardware will work with Linux without the hassle of figuring out The Way Windows Does It.]