Skip to contentSkip to conversation

arm64/Documentation: clarify wording regarding memory below the Image

PATCH New Ard Biesheuvel 2 participants 2 messages Jul 29, 2015 Documentation

lore
Share & tools
lore
#0 lore raw

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
index 1690350f16e7..7d9d3c2286b2 100644
@@ -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
#1 lore raw

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.

---
 Documentation/arm64/booting.txt | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)
Documentation/arm64/booting.txt +2 -2
index 1690350f16e7..7d9d3c2286b2 100644
@@ -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 -2
 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.

Looks good to me. With or without the v3.16 note:

Mark.