mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-21 14:41:31 +00:00
x86: Change 4-level page table base address to low memory
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@suse.de> Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Tested-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
ca7db866fe
commit
dbb0696ba0
1 changed files with 2 additions and 4 deletions
|
@ -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@chromium.org): Find a better place for this */
|
||||
pgtable = (uint32_t *)0x1000000;
|
||||
if (!pgtable)
|
||||
return -ENOMEM;
|
||||
pgtable = (uint32_t *)PAGETABLE_BASE;
|
||||
|
||||
build_pagetable(pgtable);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue