[PATCH 12/17] MIPS: enable 64-bit kernel segment addressing on CONFIG_64BIT
Ahmad Fatoum
a.fatoum at pengutronix.de
Tue Jun 6 02:06:18 PDT 2023
On 05.06.23 22:10, Denis Orlov wrote:
> 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 at gmail.com>
Reviewed-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
> ---
> 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
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list