Jump to content

S3 emulation via s0ix in newer BIOSes that no longer support S3

1 post in this topic

Recommended Posts

It appears that newer laptops have started removing support for S3 altogether in favor of the new s0ix implementation in new Intel CPUs.

FreeBSD had a commit in 2018 that specifically adds S3 emulation for systems that have buggy S3, slow S3 or no S3 altogether https://github.com/bwidawsk/freebsd/commit/65a58f63023602e1cb59a690eb9d6cdebb466a02


Any ideas how this might be possible in OpenCore, short of hacking the MacOS kernel itself?


Perhaps recompiling the Darwin kernel, patching the asm function acpi_sleep_cpu() passing in an emulated S3 ala the freeBSD commit might work. But we'll need to swap the Darwin kernel out from official Mac OS install though.


EDIT: Just to clarify my idea, this would only work if we can somehow poll the power button to "resume". We sit in a tight loop calling cpu_mwait() which prevents the rest of the system from working, keeping CPU in low power mode which is a poor man's S3. All your peripherals would still be powered, but at least the CPU won't suddenly wake up and start a fire in your bag while fake sleeping. Perhaps Microsoft should steal this and implement it in their NT Kernel.

Edited by zachs78
  • Create New...