[coreboot] Does S3 work on Haswell boards?

Аладышев Константин aladyshev at nicevt.ru
Tue Oct 31 10:36:11 CET 2017


I don’t think that the problem is connected to operating system version as both Windows 7 and Ubuntu 16.04 act the same for me:
- for S3 time less than ~15s, resume works ok
- for S3 time longer than ~15s, Coreboot won't resume with quick_ram_check error

I use “pm-suspend” to go to S3, but “systemctl suspend” works exactly the same. USB wakeup doesn't work at all for me. I wake system with power button.


From: Zoran Stojsavljevic [mailto:zoran.stojsavljevic at gmail.com] 
Sent: Tuesday, October 31, 2017 10:19 AM
To: Аладышев Константин
Cc: Coreboot
Subject: Re: [coreboot] Does S3 work on Haswell boards?

Hello Kostja,

Since presently I am not in Munich/Germany (I am in front of my HSW notebook in my apartment in Belgrade), I have limited abilities to test your question, since I do not have native/bare metal Fedora on my SSD (I have in safe box HDD with dual boot: WIN10 and Fedora 26 in Munich).

Here, I have my notebook (HP EliteBook 840 G1) with SSD, bare metal WIN10 64 PRO and VMWare reader with Fedora 26 VM. IT is based on HSW i5-4300:
[user at 192 ~]$ dmesg | grep 4300
[    0.097524] smpboot: CPU0: Intel(R) Core(TM) i5-4300U CPU @ 1.90GHz (family: 0x6, model: 0x45, stepping: 0x1)
[user at 192 ~]$

Here is the pointer to ark.intel.com for this CPU: https://ark.intel.com/products/76308/Intel-Core-i5-4300U-Processor-3M-Cache-up-to-2_90-GHz

The current BSP used is UEFI: BIOS 01.39 Rev.A (08 Nov 2016) -> sp77791.exe (12.7 MB)
_______

Being in WIN10, suspend works when I simply press <F3>, but resume works ONLY while I press muse buttons - keyboard <ANY KEY> does not work, although it should?!

I did several attempts to suspend and resume using Fedora 26 VM, but I did not have success. I do remember that this does work with my bare metal Fedora 26:
Kernel used for Fedora26 VM: uname -r -> 4.13.9-200.fc26.x86_64 .

I would strongly suggest to use two methods to check S3 on Linux bare metal:
[1] To use systemctl suspend and systemctl resume commands;
[2] To install on your HSW platform the following package: http://www.linuxfromscratch.org/blfs/view/cvs/general/pm-utils.html
      so you can try the following two commands: pm-suspend and pm-hibernate (wakeup should work using keyboard/mouse)!

First, you should do all these tests with UEFI BIOS for your platform, record the results, and then switch to Coreboot, than repeat all use cases, and cross compare.

If you do, please, post your kernel version and results here.

Hope this helps.

Best Regards,
Zoran Stojsavljevic
_______

On Mon, Oct 30, 2017 at 4:49 PM, Аладышев Константин <aladyshev at nicevt.ru> wrote:
I have problem with S3 mode on Haswell board. Everything is fine if S3 time
is very small (<15 seconds), but if it is longer, coreboot won't resume. It
fails on quick_ram_check.

I've enabled mrc.cache and ME in coreboot. I use ME binary from original
board and MRC.bin from Google Panther.

Log from S3 resume:

"""
Disabling Watchdog reboot... done.
SMBus controller enabled.
Setting up static northbridge registers... done.
Initializing Graphics...
Back from haswell_early_initialization()
Resume from S3 detected.
CPU id(40651) ucode:0000001c Intel(R) Core(TM) i7-4650U CPU @ 1.70GHz
AES supported, TXT supported, VT supported
PCH type: LP Premium, device id: 9c43, rev id 4
Starting UEFI PEI System Agent
CBFS: CBFS_HEADER_ROM_ADDRESS: 0xfffff7d0/0x1000000
CBFS: CBFS location: 0xf00000~0xfff7c0, align: 64
CBFS: Looking for 'mrc.cache' starting from 0xf00000.
CBFS:  - load entry 0xf00000 file name (16 bytes)...
CBFS:  (unmatched file @0xf00000: bootsplash.jpg)
CBFS:  - load entry 0xf187c0 file name (16 bytes)...
CBFS:  (unmatched file @0xf187c0: bootorder)
CBFS:  - load entry 0xf18b80 file name (16 bytes)...
CBFS:  (unmatched file @0xf18b80: cmos_layout.bin)
CBFS:  - load entry 0xf19040 file name (32 bytes)...
CBFS:  (unmatched file @0xf19040: pci8086,0a26.rom)
CBFS:  - load entry 0xf29080 file name (72 bytes)...
CBFS:  (unmatched file @0xf29080: cpu_microcode_blob.bin)
CBFS:  - load entry 0xf2e100 file name (32 bytes)...
CBFS:  (unmatched file @0xf2e100: etc/usb-time-sigatt)
CBFS:  - load entry 0xf2e140 file name (16 bytes)...
CBFS:  (unmatched file @0xf2e140: config)
CBFS:  - load entry 0xf2fa00 file name (16 bytes)...
CBFS:  (unmatched file @0xf2fa00: revision)
CBFS:  - load entry 0xf2fc80 file name (16 bytes)...
CBFS:  (unmatched file @0xf2fc80: )
CBFS:  - load entry 0xf2ff80 file name (76 bytes)...
CBFS:  (unmatched file @0xf2ff80: fallback/romstage)
CBFS:  - load entry 0xf38f00 file name (32 bytes)...
CBFS:  (unmatched file @0xf38f00: fallback/ramstage)
CBFS:  - load entry 0xf4d0c0 file name (32 bytes)...
CBFS:  (unmatched file @0xf4d0c0: fallback/payload)
CBFS:  - load entry 0xf5e8c0 file name (32 bytes)...
CBFS:  (unmatched file @0xf5e8c0: pci8086,1521.rom)
CBFS:  - load entry 0xf6e900 file name (16 bytes)...
CBFS:  (unmatched file @0xf6e900: )
CBFS:  - load entry 0xf9ffc0 file name (40 bytes)...
CBFS:  (unmatched file @0xf9ffc0: mrc.bin)
CBFS:  - load entry 0xfceb40 file name (16 bytes)...
CBFS:  (unmatched file @0xfceb40: )
CBFS:  - load entry 0xfdffc0 file name (40 bytes)...
CBFS: Found file (offset=0xfe0000, len=65536).
find_current_mrc_cache_local: picked entry 0 from cache block
prepare_mrc_cache: at fffe0010, size fe0 checksum 9771
CBFS: CBFS_HEADER_ROM_ADDRESS: 0xfffff7d0/0x1000000
CBFS: CBFS location: 0xf00000~0xfff7c0, align: 64
CBFS: Looking for 'mrc.bin' starting from 0xf00000.
CBFS:  - load entry 0xf00000 file name (16 bytes)...
CBFS:  (unmatched file @0xf00000: bootsplash.jpg)
CBFS:  - load entry 0xf187c0 file name (16 bytes)...
CBFS:  (unmatched file @0xf187c0: bootorder)
CBFS:  - load entry 0xf18b80 file name (16 bytes)...
CBFS:  (unmatched file @0xf18b80: cmos_layout.bin)
CBFS:  - load entry 0xf19040 file name (32 bytes)...
CBFS:  (unmatched file @0xf19040: pci8086,0a26.rom)
CBFS:  - load entry 0xf29080 file name (72 bytes)...
CBFS:  (unmatched file @0xf29080: cpu_microcode_blob.bin)
CBFS:  - load entry 0xf2e100 file name (32 bytes)...
CBFS:  (unmatched file @0xf2e100: etc/usb-time-sigatt)
CBFS:  - load entry 0xf2e140 file name (16 bytes)...
CBFS:  (unmatched file @0xf2e140: config)
CBFS:  - load entry 0xf2fa00 file name (16 bytes)...
CBFS:  (unmatched file @0xf2fa00: revision)
CBFS:  - load entry 0xf2fc80 file name (16 bytes)...
CBFS:  (unmatched file @0xf2fc80: )
CBFS:  - load entry 0xf2ff80 file name (76 bytes)...
CBFS:  (unmatched file @0xf2ff80: fallback/romstage)
CBFS:  - load entry 0xf38f00 file name (32 bytes)...
CBFS:  (unmatched file @0xf38f00: fallback/ramstage)
CBFS:  - load entry 0xf4d0c0 file name (32 bytes)...
CBFS:  (unmatched file @0xf4d0c0: fallback/payload)
CBFS:  - load entry 0xf5e8c0 file name (32 bytes)...
CBFS:  (unmatched file @0xf5e8c0: pci8086,1521.rom)
CBFS:  - load entry 0xf6e900 file name (16 bytes)...
CBFS:  (unmatched file @0xf6e900: )
CBFS:  - load entry 0xf9ffc0 file name (40 bytes)...
CBFS: Found file (offset=0xfa0000, len=191236).
System Agent: Starting up...
System Agent: S3 resume detected
System Agent: Initializing PCH
install_ppi: overwrite GUID {ed097352-9041-445a-80b6-b29d509e8845}
install_ppi: overwrite GUID {908c7f8b-5c48-47fb-8357-f5fd4e235276}
System Agent: Initializing PCH (SMBUS)
System Agent: Initializing PCH (USB)
System Agent: Initializing PCH (SA Init)
System Agent: Initializing PCH (Me UMA)
System Agent: Initializing Memory
System Agent: Done.
Sanity checking heap.
System Agent Version 1.6.1 Build 2
memcfg DDR3 clock 1600 MHz
memcfg channel assignment: A: 0, B  1, C  2
memcfg channel[0] config (00600010):
   ECC inactive
   enhanced interleave mode on
   rank interleave on
   DIMMA 4096 MB width x8 or x32 single rank, selected
   DIMMB 0 MB width x8 or x32 single rank
memcfg channel[1] config (00600000):
   ECC inactive
   enhanced interleave mode on
   rank interleave on
   DIMMA 0 MB width x8 or x32 single rank, selected
   DIMMB 0 MB width x8 or x32 single rank
ME: FW Partition Table      : OK
ME: Bringup Loader Failure  : NO
ME: Firmware Init Complete  : NO
ME: Manufacturing Mode      : YES
ME: Boot Options Present    : NO
ME: Update In Progress      : NO
ME: Current Working State   : Initializing
ME: Current Operation State : Bring up
ME: Current Operation Mode  : Normal
ME: Error Code              : Debug Failure
ME: Progress Phase          : BUP Phase
ME: Power Management Event  : Clean global reset
ME: Progress Phase State    : 0x7b
before quick_ram_check
RAM INIT FAILURE!
""""

It seems like DRAM controller and ME are initialized correctly (like in
normal boot), what can be wrong?

Does S3 work on Haswell boards?


--
coreboot mailing list: coreboot at coreboot.org
https://mail.coreboot.org/mailman/listinfo/coreboot





More information about the coreboot mailing list