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:
committed by
Nico Huber
parent
0065b6974f
commit
8d010db58e
@ -1,4 +1,5 @@
|
|||||||
ramstage-y += northbridge.c
|
ramstage-y += northbridge.c
|
||||||
ramstage-y += fw_cfg.c
|
ramstage-y += fw_cfg.c
|
||||||
|
romstage-y += fw_cfg.c
|
||||||
romstage-y += memory.c
|
romstage-y += memory.c
|
||||||
ramstage-y += memory.c
|
ramstage-y += memory.c
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
#include <cbmem.h>
|
#include <cbmem.h>
|
||||||
#include <arch/io.h>
|
#include <arch/io.h>
|
||||||
#include "memory.h"
|
#include "memory.h"
|
||||||
|
#include "fw_cfg.h"
|
||||||
|
|
||||||
#define CMOS_ADDR_PORT 0x70
|
#define CMOS_ADDR_PORT 0x70
|
||||||
#define CMOS_DATA_PORT 0x71
|
#define CMOS_DATA_PORT 0x71
|
||||||
@ -52,5 +53,11 @@ unsigned long qemu_get_memory_size(void)
|
|||||||
|
|
||||||
void *cbmem_top(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;
|
||||||
}
|
}
|
||||||
|
@ -2,4 +2,5 @@ ramstage-y += ../qemu-i440fx/northbridge.c
|
|||||||
ramstage-y += ../qemu-i440fx/memory.c
|
ramstage-y += ../qemu-i440fx/memory.c
|
||||||
ramstage-y += ../qemu-i440fx/fw_cfg.c
|
ramstage-y += ../qemu-i440fx/fw_cfg.c
|
||||||
romstage-y += ../qemu-i440fx/memory.c
|
romstage-y += ../qemu-i440fx/memory.c
|
||||||
|
romstage-y += ../qemu-i440fx/fw_cfg.c
|
||||||
bootblock-y += bootblock.c
|
bootblock-y += bootblock.c
|
||||||
|
Reference in New Issue
Block a user