[PATCH v4 6/7] arm64: mm: Implement 4 levels of translation tables
Jungseok Lee
jays.lee at samsung.com
Tue Apr 29 19:29:35 PDT 2014
On Wednesday, April 30, 2014 2:04 AM, Catalin Marinas wrote:
> On Tue, Apr 29, 2014 at 05:59:33AM +0100, Jungseok Lee wrote:
> > diff --git a/arch/arm64/kernel/head.S b/arch/arm64/kernel/head.S index
> > 0fd5650..03ec424 100644
> > --- a/arch/arm64/kernel/head.S
> > +++ b/arch/arm64/kernel/head.S
> > @@ -37,8 +37,9 @@
> >
> > /*
> > * swapper_pg_dir is the virtual address of the initial page table.
> > We place
> > - * the page tables 3 * PAGE_SIZE below KERNEL_RAM_VADDR. The
> > idmap_pg_dir has
> > - * 2 pages and is placed below swapper_pg_dir.
> > + * the page tables 3 * PAGE_SIZE (2 or 3 levels) or 4 * PAGE_SIZE (4
> > + levels)
> > + * below KERNEL_RAM_VADDR. The idmap_pg_dir has 2 pages (2 or 3
> > + levels) or
> > + * 3 pages (4 levels) and is placed below swapper_pg_dir.
> > */
> > #define KERNEL_RAM_VADDR (PAGE_OFFSET + TEXT_OFFSET)
> >
> > @@ -46,8 +47,13 @@
> > #error KERNEL_RAM_VADDR must start at 0xXXX80000 #endif
> >
> > +#ifdef CONFIG_ARM64_4_LEVELS
> > +#define SWAPPER_DIR_SIZE (4 * PAGE_SIZE)
> > +#define IDMAP_DIR_SIZE (3 * PAGE_SIZE)
> > +#else
> > #define SWAPPER_DIR_SIZE (3 * PAGE_SIZE)
> > #define IDMAP_DIR_SIZE (2 * PAGE_SIZE)
> > +#endif
>
> Mark Rutland was doing some clean-up of this code to no longer place swapper_pg_dir and idmap_pg_dir
> below the kernel image. I'm not sure whether the patches ended up on the list yet (not a problem for
> now, just a slight change for your patches).
I don't see those patches in the mailing list yet.
I will keep it in mind. Thanks.
Best Regards
Jungseok Lee
More information about the linux-arm-kernel
mailing list