This adds ACPI S3 (suspend to ram) resume capability in U-Boot. With S3 support within U-Boot, the board wakes up and resumes to OS very quickly.
This so far is enabled and tested on Intel MinnowMax board. Please check README.x86 for how to test it with a plain Linux kernel. Note testing with Ubuntu or Windows has some issues and fixes are still being worked out. This series is available for testing in u-boot-x86/s3-working. Bin Meng (22): dm: rtc: Add 16-bit read/write support x86: acpi: Add Kconfig option and header file for ACPI resume x86: baytrail: acpi: Add APIs for determining/clearing sleep state x86: Add post codes for OS resume x86: fsp: acpi: Pass different boot mode to FSP init x86: Store and display previous sleep state x86: baytrail: Conditionally report S3 in the ACPI table x86: fsp: Mark memory used by U-Boot as reserved in the E820 table for S3 x86: acpi: Add wake up assembly stub x86: acpi: Add one API to find OS wakeup vector x86: acpi: Resume OS if resume vector is found x86: Add an early CMOS access library x86: fsp: Save stack address to CMOS for next S3 boot x86: fsp: Mark the first 64K low memory as reserved x86: Adjust board_final_cleanup() order x86: apci: Change PM1_CNT register access to RMW x86: acpi: Make enter_acpi_mode() public x86: acpi: Refactor acpi_resume() x86: acpi: Turn on ACPI mode for S3 x86: pci: Allow conditionally run VGA rom in S3 x86: minnowmax: Enable ACPI S3 resume x86: Document ACPI S3 support arch/x86/Kconfig | 32 ++++++ arch/x86/cpu/Makefile | 1 + arch/x86/cpu/baytrail/acpi.c | 47 +++++++++ arch/x86/cpu/cpu.c | 26 ++++- arch/x86/cpu/wakeup.S | 79 ++++++++++++++ arch/x86/include/asm/acpi_s3.h | 116 +++++++++++++++++++++ arch/x86/include/asm/acpi_table.h | 3 + .../include/asm/arch-baytrail/acpi/sleepstates.asl | 2 + arch/x86/include/asm/arch-baytrail/iomap.h | 24 +++++ arch/x86/include/asm/cmos_layout.h | 31 ++++++ arch/x86/include/asm/early_cmos.h | 43 ++++++++ arch/x86/include/asm/global_data.h | 3 + arch/x86/include/asm/post.h | 2 + arch/x86/include/asm/tables.h | 1 + arch/x86/include/asm/u-boot-x86.h | 1 + arch/x86/lib/Makefile | 2 + arch/x86/lib/acpi_s3.c | 34 ++++++ arch/x86/lib/acpi_table.c | 84 ++++++++++++++- arch/x86/lib/early_cmos.c | 51 +++++++++ arch/x86/lib/fsp/fsp_common.c | 55 +++++++++- arch/x86/lib/fsp/fsp_dram.c | 24 +++++ configs/minnowmax_defconfig | 1 + doc/README.x86 | 20 ++-- drivers/pci/pci_rom.c | 14 +++ drivers/rtc/rtc-uclass.c | 30 ++++++ include/rtc.h | 20 ++++ 26 files changed, 735 insertions(+), 11 deletions(-) create mode 100644 arch/x86/cpu/wakeup.S create mode 100644 arch/x86/include/asm/acpi_s3.h create mode 100644 arch/x86/include/asm/cmos_layout.h create mode 100644 arch/x86/include/asm/early_cmos.h create mode 100644 arch/x86/lib/acpi_s3.c create mode 100644 arch/x86/lib/early_cmos.c -- 2.9.2 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot