diff mbox

ARM: document the bigger pagetables needed for LPAE

Message ID 1369410236-22398-1-git-send-email-javi.merino@arm.com (mailing list archive)
State New, archived
Headers show

Commit Message

Javi Merino May 24, 2013, 3:43 p.m. UTC
The Booting documentation assumes that the initial pagetables are
16KiB but since 1b6ba46 (ARM: LPAE: MMU setup for the 3-level page
table format) they are 20KiB for LPAE kernels.  Thus, the
recommendation to put atags or the dtb in the first 16KiB is wrong,
there's only 12KiB of space there in LPAE kernels, so update the
documentation accordingly.
---
 Documentation/arm/Booting |    9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

Comments

Catalin Marinas May 24, 2013, 4:21 p.m. UTC | #1
On Fri, May 24, 2013 at 04:43:56PM +0100, Javi Merino wrote:
> The Booting documentation assumes that the initial pagetables are
> 16KiB but since 1b6ba46 (ARM: LPAE: MMU setup for the 3-level page
> table format) they are 20KiB for LPAE kernels.  Thus, the
> recommendation to put atags or the dtb in the first 16KiB is wrong,
> there's only 12KiB of space there in LPAE kernels, so update the
> documentation accordingly.
> ---
>  Documentation/arm/Booting |    9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)

Missing Signed-off-by?
Javi Merino May 28, 2013, 10:49 a.m. UTC | #2
On Sun, May 26, 2013 at 01:27:52AM +0100, Rob Landley wrote:
> On 05/24/2013 10:43:56 AM, Javi Merino wrote:
> > The Booting documentation assumes that the initial pagetables are
> > 16KiB but since 1b6ba46 (ARM: LPAE: MMU setup for the 3-level page
> > table format) they are 20KiB for LPAE kernels.  Thus, the
> > recommendation to put atags or the dtb in the first 16KiB is wrong,
> > there's only 12KiB of space there in LPAE kernels, so update the
> > documentation accordingly.
> > ---
> >  Documentation/arm/Booting |    9 +++++----
> >  1 file changed, 5 insertions(+), 4 deletions(-)
> 
> Acked-by: Rob Landley <rob@landley.net>

Thanks.  As Catalin pointed out, I'm missing my SoB.

> With one comment:
> 
> > diff --git a/Documentation/arm/Booting b/Documentation/arm/Booting
> > index 0c1f475..f6f9cd8 100644
> > --- a/Documentation/arm/Booting
> > +++ b/Documentation/arm/Booting
> > @@ -105,7 +105,7 @@ The tagged list should be stored in system RAM.
> > 
> >  The tagged list must be placed in a region of memory where neither
> >  the kernel decompressor nor initrd 'bootp' program will overwrite
> > -it.  The recommended placement is in the first 16KiB of RAM.
> > +it.  The recommended placement is in the first 12KiB of RAM.
> > 
> >  4b. Setup the device tree
> >  -------------------------
> > @@ -120,7 +120,7 @@ tagged list.
> >  The boot loader must pass at a minimum the size and location of the
> >  system memory, and the root filesystem location.  The dtb must be
> >  placed in a region of memory where the kernel decompressor will not
> > -overwrite it.  The recommended placement is in the first 16KiB of RAM
> > +overwrite it.  The recommended placement is in the first 12KiB of RAM
> >  with the caveat that it may not be located at physical address 0  
> > since
> >  the kernel interprets a value of 0 in r2 to mean neither a tagged  
> > list
> >  nor a dtb were passed.
> > @@ -137,8 +137,9 @@ then it is legal for the boot loader to call the  
> > zImage in flash
> >  directly.
> > 
> >  The zImage may also be placed in system RAM (at any location) and
> > -called there.  Note that the kernel uses 16K of RAM below the image
> > -to store page tables.  The recommended placement is 32KiB into RAM.
> > +called there.  Note that the kernel may use up to 20KiB of RAM below
> > +the image to store page tables.  The recommended placement is 32KiB
> > +into RAM.
> 
> Now that we have three memory entires, possibly some sort of memory  
> layout would be in order?
> 
>     0k-12k   boot data (tagged list or device tree)
>    12k-32k   page tables
>    32k-xxx   kernel image
> 
> Perhaps at the end of section 4's introduction? It's not quite obvious  
> from the document...

Sounds like a good idea, I'll add it and send a v2.

Cheers,
Javi
diff mbox

Patch

diff --git a/Documentation/arm/Booting b/Documentation/arm/Booting
index 0c1f475..f6f9cd8 100644
--- a/Documentation/arm/Booting
+++ b/Documentation/arm/Booting
@@ -105,7 +105,7 @@  The tagged list should be stored in system RAM.
 
 The tagged list must be placed in a region of memory where neither
 the kernel decompressor nor initrd 'bootp' program will overwrite
-it.  The recommended placement is in the first 16KiB of RAM.
+it.  The recommended placement is in the first 12KiB of RAM.
 
 4b. Setup the device tree
 -------------------------
@@ -120,7 +120,7 @@  tagged list.
 The boot loader must pass at a minimum the size and location of the
 system memory, and the root filesystem location.  The dtb must be
 placed in a region of memory where the kernel decompressor will not
-overwrite it.  The recommended placement is in the first 16KiB of RAM
+overwrite it.  The recommended placement is in the first 12KiB of RAM
 with the caveat that it may not be located at physical address 0 since
 the kernel interprets a value of 0 in r2 to mean neither a tagged list
 nor a dtb were passed.
@@ -137,8 +137,9 @@  then it is legal for the boot loader to call the zImage in flash
 directly.
 
 The zImage may also be placed in system RAM (at any location) and
-called there.  Note that the kernel uses 16K of RAM below the image
-to store page tables.  The recommended placement is 32KiB into RAM.
+called there.  Note that the kernel may use up to 20KiB of RAM below
+the image to store page tables.  The recommended placement is 32KiB
+into RAM.
 
 In either case, the following conditions must be met: