08 Dec, 2011

2 commits

  • This patch modifies the pgd/pmd/pte manipulation functions to support
    the 3-level page table format. Since there is no need for an 'ext'
    argument to cpu_set_pte_ext(), this patch conditionally defines a
    different prototype for this function when CONFIG_ARM_LPAE.

    The patch also introduces the L_PGD_SWAPPER flag to mark pgd entries
    pointing to pmd tables pre-allocated in the swapper_pg_dir and avoid
    trying to free them at run-time. This flag is 0 with the classic page
    table format.

    Signed-off-by: Catalin Marinas

    Catalin Marinas
     
  • This patch introduces the pgtable-3level*.h files with definitions
    specific to the LPAE page table format (3 levels of page tables).

    Each table is 4KB and has 512 64-bit entries. An entry can point to a
    40-bit physical address. The young, write and exec software bits share
    the corresponding hardware bits (negated). Other software bits use spare
    bits in the PTE.

    The patch also changes some variable types from unsigned long or int to
    pteval_t or pgprot_t.

    Signed-off-by: Catalin Marinas

    Catalin Marinas