arm64/Documentation: clarify wording regarding memory below the Image
PATCH 1/1 arm64/Documentation: clarify wording regarding memory below the Image
Clarify that the memory below the start of the image but inside the region covered by the linear mapping has no special significance to the kernel, and may be used by the firmware provided that it is marked as reserved.
Also, fix up some whitespace errors.
--- Documentation/arm64/booting.txt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-)
Documentation/arm64/booting.txt +7 -4
@@ -81,7 +81,7 @@ The decompressed kernel image contains a 64-byte header as follows: u64 res3 = 0; /* reserved */ u64 res4 = 0; /* reserved */ u32 magic = 0x644d5241; /* Magic number, little endian, "ARM\x64" */ - u32 res5; /* reserved (used for PE COFF offset) */ + u32 res5; /* reserved (used for PE COFF offset) */ Header notes:
@@ -103,7 +103,7 @@ Header notes: - The flags field (introduced in v3.17) is a little-endian 64-bit field composed as follows: - Bit 0: Kernel endianness. 1 if BE, 0 if LE. + Bit 0: Kernel endianness. 1 if BE, 0 if LE. Bits 1-63: Reserved. - When image_size is zero, a bootloader should attempt to keep as much
@@ -115,11 +115,14 @@ The Image must be placed text_offset bytes from a 2MB aligned base address near the start of usable system RAM and called there. Memory below that base address is currently unusable by Linux, and therefore it is strongly recommended that this location is the start of system RAM. +The region between the 2 MB aligned base address and the start of the +image has no special significance to the kernel, and may be used for +other purposes. At least image_size bytes from the start of the image must be free for use by the kernel. -Any memory described to the kernel (even that below the 2MB aligned base -address) which is not marked as reserved from the kernel e.g. with a +Any memory described to the kernel (even that below the start of the +image) which is not marked as reserved from the kernel (e.g., with a memreserve region in the device tree) will be considered as available to the kernel.
Signature · 1 line
1.9.1
PATCH 1/1 arm64/Documentation: clarify wording regarding memory below the Image
Quoted 35 lines · Ard Biesheuvel
Clarify that the memory below the start of the image but inside the region covered by the linear mapping has no special significance to the kernel, and may be used by the firmware provided that it is marked as reserved.
Also, fix up some whitespace errors.
Signed-off-by Ard Biesheuvel <[email protected]>--- Documentation/arm64/booting.txt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-)Documentation/arm64/booting.txt +2
-2@@ -81,7 +81,7 @@ The decompressed kernel image contains a 64-byte header as follows: u64 res3 = 0; /* reserved */ u64 res4 = 0; /* reserved */ u32 magic = 0x644d5241; /* Magic number, little endian, "ARM\x64" */ - u32 res5; /* reserved (used for PE COFF offset) */ + u32 res5; /* reserved (used for PE COFF offset) */ Header notes:@@ -103,7 +103,7 @@ Header notes: - The flags field (introduced in v3.17) is a little-endian 64-bit field composed as follows: - Bit 0: Kernel endianness. 1 if BE, 0 if LE. + Bit 0: Kernel endianness. 1 if BE, 0 if LE. Bits 1-63: Reserved. - When image_size is zero, a bootloader should attempt to keep as much
Documentation/arm64/booting.txt The Image must be placed text_offset bytes from a 2MB aligned base · line 120
Quoted 6 lines
Documentation/arm64/booting.txt +3
-0@@ -115,11 +115,14 @@ The Image must be placed text_offset bytes from a 2MB aligned base address near the start of usable system RAM and called there. Memory below that base address is currently unusable by Linux, and therefore it is strongly recommended that this location is the start of system RAM. +The region between the 2 MB aligned base address and the start of the +image has no special significance to the kernel, and may be used for +other purposes.
This is true since commit bd00cd5f8c8c3c28 ("arm64: place initial page tables above the kernel") in v3.16, but people were using the region before then anyway, so I don't know if that deserves a note. Arguably that patch was a bug fix.
Perhaps prefix this with "Since v3.16"?
Documentation/arm64/booting.txt The Image must be placed text_offset bytes from a 2MB aligned base · line 127
Quoted 9 lines
Documentation/arm64/booting.txt +2
-2At least image_size bytes from the start of the image must be free for use by the kernel. -Any memory described to the kernel (even that below the 2MB aligned base -address) which is not marked as reserved from the kernel e.g. with a +Any memory described to the kernel (even that below the start of the +image) which is not marked as reserved from the kernel (e.g., with a memreserve region in the device tree) will be considered as available to the kernel.
Looks good to me. With or without the v3.16 note:
Mark.