[PATCH] arm64: booting: Require placement within 48-bit addressable memory

Anshuman Khandual anshuman.khandual at arm.com
Wed Nov 23 05:26:19 PST 2022



On 11/22/22 22:32, Ard Biesheuvel wrote:
> Some configurations (i.e., 64k + LVA/LPA) can tolerate a physical
> placement of the kernel image outside of the 48-bit addressable region,
> but given that the loader has no way of knowing whether or not the image
> in question supports LVA/LPA, it currently has no choice but to place it
> below the 48-bit mark.
> 
> Once we add support for LPA2, which allows 52-bit physical and virtual
> addressing when using 4k or 16k pages, but in way that relies on
> increasing the number of paging levels, there will be more variety in
> the configurations that may or may not support this.
> 
> So redefine bit #3 in the Image header as 'must be placed within 48-bit
> addressable memory', as this is the current de facto meaning.
> 
> Signed-off-by: Ard Biesheuvel <ardb at kernel.org>
> ---

Regardless of possible vmlinux beyond 48 bits physical address discussion,
this patch looks good, and complete in itself.

Reviewed-by: Anshuman Khandual <anshuman.khandual at arm.com>

>  Documentation/arm64/booting.rst | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/Documentation/arm64/booting.rst b/Documentation/arm64/booting.rst
> index 8c324ad638de2b27..5a764fabfea821f0 100644
> --- a/Documentation/arm64/booting.rst
> +++ b/Documentation/arm64/booting.rst
> @@ -121,8 +121,9 @@ Header notes:
>  			  to the base of DRAM, since memory below it is not
>  			  accessible via the linear mapping
>  			1
> -			  2MB aligned base may be anywhere in physical
> -			  memory
> +			  2MB aligned base such that all image_size bytes
> +			  counted from the start of the image are within
> +			  the 48-bit addressable range of physical memory
>    Bits 4-63	Reserved.
>    ============= ===============================================================
>  



More information about the linux-arm-kernel mailing list