[coreboot] Asus M2V-MX SE: Resume from S3 broken: `CBFS: ERROR: No file header found at 0x0 - try next aligned address: 0x40.`

Kyösti Mälkki kyosti.malkki at gmail.com
Sat Dec 21 19:30:42 CET 2013

On 12/21/2013 07:44 PM, Rudolf Marek wrote:
> Hi Paul,
> I think I have seen your previous log that get_top_of_mem() was missing.
> maybe someone broke it some time ago. I did not try with this board
> since I have the new fm2 board.
> The get_top_of_ram() is in early_car.c in southbridge/via/k8t890
> It has still CONFIG_HAVE_ACPI_RESUME I seen some efforts of removing
> this... Not sure what is the state now.
> Please check if you dont see the messages
> WARNING: you need to define get_top_of_ram()

The function is indeed missing from ramstage but that is not relevant 
here. In the logs I have seen, S3 resume path finds valid CBMEM region.

This is flagged as a warning because ramstage has no early access to 
CBMEM storage. For example, CBMEM console is first collected in low 
memory and later copied to CBMEM area.

> The top of ram mechanism is quite simple. Since this chipset has
> integrated VGA it is not possible to just read TOP or TOM2 MSR. Instead
> during the initialization a top of ram is written via
> backup_top_of_ram() to the NVRAM at offset K8T890_NVRAM_TOP_OF_RAM.

Actually, get_top_of_ram() on this platform is a complex beast.
With GFXUMA, this should be a simple function of total amount of memory 
installed, and this is managed without any nvram use on Intel platforms.

Second case, one without GFXUMA, is the complicated one. Probably doable 
without nvram too if it had pre-defined IO window allocation below 4GB.

I have some work started to get this, and EARLY_CBMEM_INIT or 
DYNAMIC_CBMEM for AMD platforms.

> You could also check if you are not hitting some errata of the CPU or if
> CBMEM console does not interfere.

We did pickup some possible CBMEM console interference from SeaBIOS, but 
we did not hit that problem here.

> Thanks
> Rudolf


More information about the coreboot mailing list