linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH 00/18] ARM: Add support for the Large Physical Address Extensions
@ 2010-10-25  8:59 Catalin Marinas
  2010-10-25  8:59 ` [RFC PATCH 01/18] ARM: LPAE: Use PMD_(SHIFT|SIZE|MASK) instead of PGDIR_* Catalin Marinas
                   ` (17 more replies)
  0 siblings, 18 replies; 33+ messages in thread
From: Catalin Marinas @ 2010-10-25  8:59 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

This set of patches adds support for the Large Physical Extensions on
the ARM architecture (available with the Cortex-A15 processor). LPAE
comes with a 3-level page table format (compared to 2-level for the
classic one), allowing up to 40-bit physical address space.

These patches split the arch/arm/ page table definitions into
corresponding 2-level and 3-level files and ensure that the common code
works with both variants.  They also fix assumptions regarding the size
of the physical address.  The outer cache support is currently
restricted to 32-bit physical addresses.

The LPAE page table format uses the simplified permission model (as
described in the ARM ARM) and domains are no longer available (requiring
an additional patch which is already in RMK's patch system).

The ARM LPAE documentation is available from (free registration needed):

http://infocenter.arm.com/help/topic/com.arm.doc.ddi0406b_virtualization_extns/index.html

The full set of patches (kernel fixes, LPAE and support for an emulated
Versatile Express with Cortex-A15 tile) is available on this branch:

git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-2.6-cm.git arm-lpae

Any comments are welcome. Thanks.


Catalin Marinas (11):
      ARM: LPAE: Use PMD_(SHIFT|SIZE|MASK) instead of PGDIR_*
      ARM: LPAE: Factor out 2-level page table definitions into separate files
      ARM: LPAE: Do not assume Linux PTEs are always at PTRS_PER_PTE offset
      ARM: LPAE: Introduce L_PTE_NOEXEC and L_PTE_NOWRITE
      ARM: LPAE: Introduce the 3-level page table format definitions
      ARM: LPAE: Page table maintenance for the 3-level format
      ARM: LPAE: MMU setup for the 3-level page table format
      ARM: LPAE: Add fault handling support
      ARM: LPAE: Add context switching support
      ARM: LPAE: Add SMP support for the 3-level page table format
      ARM: LPAE: Add the Kconfig entries

Will Deacon (7):
      ARM: LPAE: use u32 instead of unsigned long for 32-bit ptes
      ARM: LPAE: use phys_addr_t instead of unsigned long for physical addresses
      ARM: LPAE: ensure dma_addr_t is the same size as phys_addr_t
      ARM: LPAE: mark memory banks with start > ULONG_MAX as highmem
      ARM: LPAE: use phys_addr_t for physical start address in early_mem
      ARM: LPAE: add support for ATAG_MEM64
      ARM: LPAE: define printk format for physical addresses and page table entries


 arch/arm/include/asm/cpu-multi32.h          |    8 +
 arch/arm/include/asm/cpu-single.h           |    4 
 arch/arm/include/asm/memory.h               |   17 +-
 arch/arm/include/asm/outercache.h           |   14 +
 arch/arm/include/asm/page-nommu.h           |    8 -
 arch/arm/include/asm/page.h                 |   42 ----
 arch/arm/include/asm/pgalloc.h              |   34 +++
 arch/arm/include/asm/pgtable-2level-hwdef.h |   91 +++++++++
 arch/arm/include/asm/pgtable-2level-types.h |   64 ++++++
 arch/arm/include/asm/pgtable-2level.h       |  150 +++++++++++++++
 arch/arm/include/asm/pgtable-3level-hwdef.h |   78 ++++++++
 arch/arm/include/asm/pgtable-3level-types.h |   55 ++++++
 arch/arm/include/asm/pgtable-3level.h       |  113 +++++++++++
 arch/arm/include/asm/pgtable-hwdef.h        |   81 +-------
 arch/arm/include/asm/pgtable.h              |  267 +++++++++++----------------
 arch/arm/include/asm/proc-fns.h             |   13 +
 arch/arm/include/asm/setup.h                |   12 +
 arch/arm/include/asm/types.h                |   25 +--
 arch/arm/kernel/compat.c                    |    4 
 arch/arm/kernel/head.S                      |   87 +++++++--
 arch/arm/kernel/module.c                    |    2 
 arch/arm/kernel/setup.c                     |   19 ++
 arch/arm/kernel/smp.c                       |   36 +++-
 arch/arm/mm/Kconfig                         |   10 +
 arch/arm/mm/alignment.c                     |    8 +
 arch/arm/mm/context.c                       |   18 ++
 arch/arm/mm/dma-mapping.c                   |    6 -
 arch/arm/mm/fault.c                         |   88 ++++++++-
 arch/arm/mm/init.c                          |    9 +
 arch/arm/mm/ioremap.c                       |    8 +
 arch/arm/mm/mm.h                            |    8 -
 arch/arm/mm/mmu.c                           |   94 ++++++----
 arch/arm/mm/pgd.c                           |   18 +-
 arch/arm/mm/proc-macros.S                   |    5 -
 arch/arm/mm/proc-v7.S                       |  102 ++++++++++
 35 files changed, 1193 insertions(+), 405 deletions(-)
 create mode 100644 arch/arm/include/asm/pgtable-2level-hwdef.h
 create mode 100644 arch/arm/include/asm/pgtable-2level-types.h
 create mode 100644 arch/arm/include/asm/pgtable-2level.h
 create mode 100644 arch/arm/include/asm/pgtable-3level-hwdef.h
 create mode 100644 arch/arm/include/asm/pgtable-3level-types.h
 create mode 100644 arch/arm/include/asm/pgtable-3level.h

-- 
Catalin

^ permalink raw reply	[flat|nested] 33+ messages in thread

end of thread, other threads:[~2010-12-06 14:21 UTC | newest]

Thread overview: 33+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-10-25  8:59 [RFC PATCH 00/18] ARM: Add support for the Large Physical Address Extensions Catalin Marinas
2010-10-25  8:59 ` [RFC PATCH 01/18] ARM: LPAE: Use PMD_(SHIFT|SIZE|MASK) instead of PGDIR_* Catalin Marinas
2010-10-25  8:59 ` [RFC PATCH 02/18] ARM: LPAE: Factor out 2-level page table definitions into separate files Catalin Marinas
2010-10-25  8:59 ` [RFC PATCH 03/18] ARM: LPAE: use u32 instead of unsigned long for 32-bit ptes Catalin Marinas
2010-10-25  8:59 ` [RFC PATCH 04/18] ARM: LPAE: Do not assume Linux PTEs are always at PTRS_PER_PTE offset Catalin Marinas
2010-10-25  9:00 ` [RFC PATCH 05/18] ARM: LPAE: Introduce L_PTE_NOEXEC and L_PTE_NOWRITE Catalin Marinas
2010-10-25  9:00 ` [RFC PATCH 06/18] ARM: LPAE: Introduce the 3-level page table format definitions Catalin Marinas
2010-10-25 11:15   ` Arnd Bergmann
2010-10-25 11:59     ` Catalin Marinas
2010-10-25 13:25       ` Arnd Bergmann
2010-10-25 16:18         ` Catalin Marinas
2010-10-25 18:25           ` Arnd Bergmann
2010-12-06  9:27             ` Christoffer Dall
2010-12-06 14:21               ` Arnd Bergmann
2010-10-25  9:00 ` [RFC PATCH 07/18] ARM: LPAE: Page table maintenance for the 3-level format Catalin Marinas
2010-10-25  9:00 ` [RFC PATCH 08/18] ARM: LPAE: MMU setup for the 3-level page table format Catalin Marinas
2010-10-25  9:00 ` [RFC PATCH 09/18] ARM: LPAE: Add fault handling support Catalin Marinas
2010-10-25 10:17   ` Kirill A. Shutemov
2010-10-25 10:35     ` Catalin Marinas
2010-10-25  9:00 ` [RFC PATCH 10/18] ARM: LPAE: Add context switching support Catalin Marinas
2010-10-25  9:00 ` [RFC PATCH 11/18] ARM: LPAE: Add SMP support for the 3-level page table format Catalin Marinas
2010-10-25  9:00 ` [RFC PATCH 12/18] ARM: LPAE: use phys_addr_t instead of unsigned long for physical addresses Catalin Marinas
2010-10-25  9:00 ` [RFC PATCH 13/18] ARM: LPAE: ensure dma_addr_t is the same size as phys_addr_t Catalin Marinas
2010-10-25 11:08   ` Arnd Bergmann
2010-10-25 11:32     ` Catalin Marinas
2010-10-25 12:01       ` FUJITA Tomonori
2010-10-25 12:31         ` Catalin Marinas
2010-10-25  9:00 ` [RFC PATCH 14/18] ARM: LPAE: mark memory banks with start > ULONG_MAX as highmem Catalin Marinas
2010-10-25  9:00 ` [RFC PATCH 15/18] ARM: LPAE: use phys_addr_t for physical start address in early_mem Catalin Marinas
2010-10-25  9:01 ` [RFC PATCH 16/18] ARM: LPAE: add support for ATAG_MEM64 Catalin Marinas
2010-10-25  9:01 ` [RFC PATCH 17/18] ARM: LPAE: define printk format for physical addresses and page table entries Catalin Marinas
2010-10-25 12:01   ` Kirill A. Shutemov
2010-10-25  9:01 ` [RFC PATCH 18/18] ARM: LPAE: Add the Kconfig entries Catalin Marinas

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).