On Thu, Dec 19, 2013 at 11:32:03PM +0100, Laszlo Ersek wrote:
On 12/19/13 23:16, Michael S. Tsirkin wrote:
I suspect we need to init more devices, but I need to look some more into this. Basically whatever OS does not restore, we have to.
I don't think that implication is necessarily true. Just because neither restores some device state currently doesn't imply the firmware should restore it. The OS is much better equipped to restore complex state;
If you look at my patch, there's nothing complex there.
the firmware should only have to ensure that the OS gets a chance to run again.
The Platform Init spec 1.2.1 says in Vol5, 18.104.22.168.1 DXE and the S3 Resume Boot Path,
The ACPI specification only requires the BIOS to restore chipset and processor configuration. [...]
All of PIIX and Q35 is part if the chipset though.
I'm not sure which part of the ACPI spec they refer to, and of course this statement may not be overly accurate either, but it does seem to limit the firmware's responsibility.
Basically OSes are tested on real hardware. Whatever firmware for real boards restores, OS-es won't restore so we have to.