> Suspending the CPU means that when power is reapplied it'll jump to its default start address.
> The kernel can't put code there, so performing suspend to RAM on commodity x86 without
> firmware assistance is impossible.
Is there really no known way to do this without assistance from the ACPI BIOS? I'm no expert, but
my understanding was that DOS extenders did this all the time to switch from protected back to
real mode at a time when there was no ACPI.
Posted Dec 17, 2009 18:49 UTC (Thu) by mjg59 (subscriber, #23239)
[Link]
In S3, the processor has no stored state. "Resume" is equivalent to the machine being turned on
from scratch as far as it's concerned. It's up to the BIOS to check a flag to determine whether it's a
cold power on or a resume.
Performing a full resume cycle is hard. You need to reprogram the memory controller, bring the
embedded controller up, dump values back into the thermal monitoring hardware and any number
of low-level initialisations. Only once that's been done does control get passed back to the OS,
which has absolutely no idea how any of that hardware works.