diff options
author | Steven J. Hill <Steven.Hill@imgtec.com> | 2015-02-26 19:16:38 -0500 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2015-03-19 12:39:49 -0400 |
commit | c5b367835cfc7a8ef53b9670a409ffcc95194344 (patch) | |
tree | 23a6be89021f93b09bb0f2340bc995c21bcab79b /arch/mips/Kconfig | |
parent | be0c37c985eddc46d0d67543898c086f60460e2e (diff) |
MIPS: Add support for XPA.
Add support for extended physical addressing (XPA) so that
32-bit platforms can access equal to or greater than 40 bits
of physical addresses.
NOTE:
1) XPA and EVA are not the same and cannot be used
simultaneously.
2) If you configure your kernel for XPA, the PTEs
and all address sizes become 64-bit.
3) Your platform MUST have working HIGHMEM support.
Signed-off-by: Steven J. Hill <Steven.Hill@imgtec.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/9355/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/Kconfig')
-rw-r--r-- | arch/mips/Kconfig | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index c7a16904cd03..69a3b0fab926 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig | |||
@@ -377,6 +377,7 @@ config MIPS_MALTA | |||
377 | select SYS_HAS_CPU_MIPS32_R1 | 377 | select SYS_HAS_CPU_MIPS32_R1 |
378 | select SYS_HAS_CPU_MIPS32_R2 | 378 | select SYS_HAS_CPU_MIPS32_R2 |
379 | select SYS_HAS_CPU_MIPS32_R3_5 | 379 | select SYS_HAS_CPU_MIPS32_R3_5 |
380 | select SYS_HAS_CPU_MIPS32_R5 | ||
380 | select SYS_HAS_CPU_MIPS32_R6 | 381 | select SYS_HAS_CPU_MIPS32_R6 |
381 | select SYS_HAS_CPU_MIPS64_R1 | 382 | select SYS_HAS_CPU_MIPS64_R1 |
382 | select SYS_HAS_CPU_MIPS64_R2 | 383 | select SYS_HAS_CPU_MIPS64_R2 |
@@ -386,6 +387,7 @@ config MIPS_MALTA | |||
386 | select SYS_SUPPORTS_32BIT_KERNEL | 387 | select SYS_SUPPORTS_32BIT_KERNEL |
387 | select SYS_SUPPORTS_64BIT_KERNEL | 388 | select SYS_SUPPORTS_64BIT_KERNEL |
388 | select SYS_SUPPORTS_BIG_ENDIAN | 389 | select SYS_SUPPORTS_BIG_ENDIAN |
390 | select SYS_SUPPORTS_HIGHMEM | ||
389 | select SYS_SUPPORTS_LITTLE_ENDIAN | 391 | select SYS_SUPPORTS_LITTLE_ENDIAN |
390 | select SYS_SUPPORTS_MICROMIPS | 392 | select SYS_SUPPORTS_MICROMIPS |
391 | select SYS_SUPPORTS_MIPS_CMP | 393 | select SYS_SUPPORTS_MIPS_CMP |
@@ -1596,6 +1598,33 @@ config CPU_MIPS32_3_5_EVA | |||
1596 | One of its primary benefits is an increase in the maximum size | 1598 | One of its primary benefits is an increase in the maximum size |
1597 | of lowmem (up to 3GB). If unsure, say 'N' here. | 1599 | of lowmem (up to 3GB). If unsure, say 'N' here. |
1598 | 1600 | ||
1601 | config CPU_MIPS32_R5_FEATURES | ||
1602 | bool "MIPS32 Release 5 Features" | ||
1603 | depends on SYS_HAS_CPU_MIPS32_R5 | ||
1604 | depends on CPU_MIPS32_R2 | ||
1605 | help | ||
1606 | Choose this option to build a kernel for release 2 or later of the | ||
1607 | MIPS32 architecture including features from release 5 such as | ||
1608 | support for Extended Physical Addressing (XPA). | ||
1609 | |||
1610 | config CPU_MIPS32_R5_XPA | ||
1611 | bool "Extended Physical Addressing (XPA)" | ||
1612 | depends on CPU_MIPS32_R5_FEATURES | ||
1613 | depends on !EVA | ||
1614 | depends on !PAGE_SIZE_4KB | ||
1615 | depends on SYS_SUPPORTS_HIGHMEM | ||
1616 | select XPA | ||
1617 | select HIGHMEM | ||
1618 | select ARCH_PHYS_ADDR_T_64BIT | ||
1619 | default n | ||
1620 | help | ||
1621 | Choose this option if you want to enable the Extended Physical | ||
1622 | Addressing (XPA) on your MIPS32 core (such as P5600 series). The | ||
1623 | benefit is to increase physical addressing equal to or greater | ||
1624 | than 40 bits. Note that this has the side effect of turning on | ||
1625 | 64-bit addressing which in turn makes the PTEs 64-bit in size. | ||
1626 | If unsure, say 'N' here. | ||
1627 | |||
1599 | if CPU_LOONGSON2F | 1628 | if CPU_LOONGSON2F |
1600 | config CPU_NOP_WORKAROUNDS | 1629 | config CPU_NOP_WORKAROUNDS |
1601 | bool | 1630 | bool |
@@ -1699,6 +1728,9 @@ config SYS_HAS_CPU_MIPS32_R2 | |||
1699 | config SYS_HAS_CPU_MIPS32_R3_5 | 1728 | config SYS_HAS_CPU_MIPS32_R3_5 |
1700 | bool | 1729 | bool |
1701 | 1730 | ||
1731 | config SYS_HAS_CPU_MIPS32_R5 | ||
1732 | bool | ||
1733 | |||
1702 | config SYS_HAS_CPU_MIPS32_R6 | 1734 | config SYS_HAS_CPU_MIPS32_R6 |
1703 | bool | 1735 | bool |
1704 | 1736 | ||
@@ -1836,6 +1868,9 @@ config CPU_MIPSR6 | |||
1836 | config EVA | 1868 | config EVA |
1837 | bool | 1869 | bool |
1838 | 1870 | ||
1871 | config XPA | ||
1872 | bool | ||
1873 | |||
1839 | config SYS_SUPPORTS_32BIT_KERNEL | 1874 | config SYS_SUPPORTS_32BIT_KERNEL |
1840 | bool | 1875 | bool |
1841 | config SYS_SUPPORTS_64BIT_KERNEL | 1876 | config SYS_SUPPORTS_64BIT_KERNEL |