This allows using addresses from XKPHYS segment. This is needed as we access hardware registers through this segment in 64BIT configuration, but this also lets us peek/poke bigger memory address space using commands that work with memory on 64BIT. With this commit, malta with 64-bit CPU finally boots into 64BIT barebox in QEMU. Signed-off-by: Denis Orlov <denorl2009@xxxxxxxxx> --- arch/mips/boot/start.S | 2 ++ arch/mips/include/asm/pbl_macros.h | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/arch/mips/boot/start.S b/arch/mips/boot/start.S index 5f134f9ae9..30828ad9ef 100644 --- a/arch/mips/boot/start.S +++ b/arch/mips/boot/start.S @@ -26,6 +26,8 @@ EXPORT(_start) mips_disable_interrupts + mips64_enable_64bit_addressing + copy_to_link_location _start stack_setup diff --git a/arch/mips/include/asm/pbl_macros.h b/arch/mips/include/asm/pbl_macros.h index 1fba690c8c..ce169a1554 100644 --- a/arch/mips/include/asm/pbl_macros.h +++ b/arch/mips/include/asm/pbl_macros.h @@ -152,6 +152,17 @@ .set pop .endm + .macro mips64_enable_64bit_addressing +#ifdef CONFIG_64BIT + .set push + .set noreorder + mfc0 k0, CP0_STATUS + or k0, ST0_KX + mtc0 k0, CP0_STATUS + .set pop +#endif + .endm + .macro mips_barebox_10h .set push .set noreorder -- 2.41.0