On 12/21/2013 07:44 PM, Rudolf Marek wrote:
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
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.