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?