[U-Boot] [PATCH 1/3] x86: Change 4-level page table base address to low memory
Bin Meng
bmeng.cn at gmail.com
Thu Jan 31 16:22:12 UTC 2019
At present the 4-level page table base address for 64-bit U-Boot
proper is assigned an address that conflicts with CONFIG_LOADADDR.
Change it to an address within the low memory range instead.
Fixes crashes seen when 'dhcp' on QEMU x86_64 with
"-net nic -net user,tftp=.,bootfile=u-boot".
Reported-by: Alexander Graf <agraf at suse.de>
Signed-off-by: Bin Meng <bmeng.cn at gmail.com>
---
arch/x86/cpu/i386/cpu.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/arch/x86/cpu/i386/cpu.c b/arch/x86/cpu/i386/cpu.c
index 208ef08..af42431 100644
--- a/arch/x86/cpu/i386/cpu.c
+++ b/arch/x86/cpu/i386/cpu.c
@@ -462,6 +462,7 @@ int cpu_has_64bit(void)
has_long_mode();
}
+#define PAGETABLE_BASE 0x80000
#define PAGETABLE_SIZE (6 * 4096)
/**
@@ -523,10 +524,7 @@ int cpu_jump_to_64bit_uboot(ulong target)
uint32_t *pgtable;
func_t func;
- /* TODO(sjg at chromium.org): Find a better place for this */
- pgtable = (uint32_t *)0x1000000;
- if (!pgtable)
- return -ENOMEM;
+ pgtable = (uint32_t *)PAGETABLE_BASE;
build_pagetable(pgtable);
--
2.7.4
More information about the U-Boot
mailing list