mb/emulation/qemu-i440fx: use e820 in romstage

Use memory map from fw_cfg e820 map to find cbmem_top in romstage to
avoid conflicts with CMOS option table. Keep qemu_gwt_memory_size() as
fallback.

Change-Id: I6465085020125fc790257f09eb157030c6ceabcb
Signed-off-by: Thomas Heijligen <thomas.heijligen@secunet.com>
Reviewed-on: https://review.coreboot.org/c/30850
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <siro@das-labor.org>
This commit is contained in:
Thomas Heijligen 2019-01-10 19:45:47 +01:00 committed by Nico Huber
parent 0065b6974f
commit 8d010db58e
3 changed files with 10 additions and 1 deletions

View File

@ -1,4 +1,5 @@
ramstage-y += northbridge.c
ramstage-y += fw_cfg.c
romstage-y += fw_cfg.c
romstage-y += memory.c
ramstage-y += memory.c

View File

@ -16,6 +16,7 @@
#include <cbmem.h>
#include <arch/io.h>
#include "memory.h"
#include "fw_cfg.h"
#define CMOS_ADDR_PORT 0x70
#define CMOS_DATA_PORT 0x71
@ -52,5 +53,11 @@ unsigned long qemu_get_memory_size(void)
void *cbmem_top(void)
{
return (void *) (qemu_get_memory_size() * 1024);
uintptr_t top = 0;
top = fw_cfg_tolud();
if (!top)
top = (uintptr_t)qemu_get_memory_size() * 1024;
return (void *)top;
}

View File

@ -2,4 +2,5 @@ ramstage-y += ../qemu-i440fx/northbridge.c
ramstage-y += ../qemu-i440fx/memory.c
ramstage-y += ../qemu-i440fx/fw_cfg.c
romstage-y += ../qemu-i440fx/memory.c
romstage-y += ../qemu-i440fx/fw_cfg.c
bootblock-y += bootblock.c