summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDuncan Laurie <dlaurie@chromium.org>2012-10-23 18:04:42 +0000
committerSimon Glass <sjg@chromium.org>2012-12-06 14:30:40 -0800
commit984d8b09fb3c0ebe97931e6b36ac39bed106ce09 (patch)
tree41e4aef9f85cc6e43c77faf8933278c345eadae2
parent34d6057be1a162ce6424314026af12f8963f2df2 (diff)
downloadu-boot-imx-984d8b09fb3c0ebe97931e6b36ac39bed106ce09.zip
u-boot-imx-984d8b09fb3c0ebe97931e6b36ac39bed106ce09.tar.gz
u-boot-imx-984d8b09fb3c0ebe97931e6b36ac39bed106ce09.tar.bz2
x86: Ignore memory >4GB when parsing Coreboot tables
U-boot is unable to actually use that memory and it can cause problems with relocation if it tries to. Signed-off-by: Duncan Laurie <dlaurie@chromium.org> Signed-off-by: Simon Glass <sjg@chromium.org>
-rw-r--r--arch/x86/cpu/coreboot/sdram.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/x86/cpu/coreboot/sdram.c b/arch/x86/cpu/coreboot/sdram.c
index 93dccb8..5d3da99 100644
--- a/arch/x86/cpu/coreboot/sdram.c
+++ b/arch/x86/cpu/coreboot/sdram.c
@@ -60,6 +60,10 @@ int dram_init_f(void)
struct memrange *memrange = &lib_sysinfo.memrange[i];
unsigned long long end = memrange->base + memrange->size;
+ /* Ignore memory over 4GB, we can't use it. */
+ if (memrange->base > 0xffffffff)
+ continue;
+
if (memrange->type == CB_MEM_RAM && end > ram_size)
ram_size = end;
}