diff options
author | Franck Bui-Huu <fbuihuu@gmail.com> | 2007-02-02 11:41:47 -0500 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2007-02-21 19:50:44 -0500 |
commit | 9693a85378b590cc7a4aa2db2174422585c7c8c4 (patch) | |
tree | 43d031f8e555d9276e68bdb158bd264c2d260346 /arch/mips/Kconfig | |
parent | 9654640d0af8f2de40ff3807d3695109d3463f54 (diff) |
[MIPS] Add basic SMARTMIPS ASE support
This patch adds trivial support for SMARTMIPS extension. This extension
is currently implemented by 4KS[CD] CPUs.
Basically it saves/restores ACX register, which is part of the SMARTMIPS
ASE, when needed. This patch does *not* add any support for Smartmips MMU
features.
Futhermore this patch does not add explicit support for 4KS[CD] CPUs since
they are respectively mips32 and mips32r2 compliant. So with the current
processor configuration, a platform that has such CPUs needs to select
both configs:
CPU_HAS_SMARTMIPS
SYS_HAS_CPU_MIPS32_R[12]
This is due to the processor configuration which is mixing up all the
architecture variants and the processor types.
The drawback of this, is that we currently pass '-march=mips32' option to
gcc when building a kernel instead of '-march=4ksc' for 4KSC case. This
can lead to a kernel image a little bit bigger than required.
Signed-off-by: Franck Bui-Huu <fbuihuu@gmail.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/Kconfig')
-rw-r--r-- | arch/mips/Kconfig | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index c6f74f1c6398..58e97886d771 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig | |||
@@ -274,6 +274,7 @@ config MIPS_ATLAS | |||
274 | select SYS_SUPPORTS_BIG_ENDIAN | 274 | select SYS_SUPPORTS_BIG_ENDIAN |
275 | select SYS_SUPPORTS_LITTLE_ENDIAN | 275 | select SYS_SUPPORTS_LITTLE_ENDIAN |
276 | select SYS_SUPPORTS_MULTITHREADING if EXPERIMENTAL | 276 | select SYS_SUPPORTS_MULTITHREADING if EXPERIMENTAL |
277 | select SYS_SUPPORTS_SMARTMIPS | ||
277 | select GENERIC_HARDIRQS_NO__DO_IRQ | 278 | select GENERIC_HARDIRQS_NO__DO_IRQ |
278 | help | 279 | help |
279 | This enables support for the MIPS Technologies Atlas evaluation | 280 | This enables support for the MIPS Technologies Atlas evaluation |
@@ -305,6 +306,7 @@ config MIPS_MALTA | |||
305 | select SYS_SUPPORTS_BIG_ENDIAN | 306 | select SYS_SUPPORTS_BIG_ENDIAN |
306 | select SYS_SUPPORTS_LITTLE_ENDIAN | 307 | select SYS_SUPPORTS_LITTLE_ENDIAN |
307 | select SYS_SUPPORTS_MULTITHREADING | 308 | select SYS_SUPPORTS_MULTITHREADING |
309 | select SYS_SUPPORTS_SMARTMIPS | ||
308 | help | 310 | help |
309 | This enables support for the MIPS Technologies Malta evaluation | 311 | This enables support for the MIPS Technologies Malta evaluation |
310 | board. | 312 | board. |
@@ -322,6 +324,7 @@ config MIPS_SEAD | |||
322 | select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL | 324 | select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL |
323 | select SYS_SUPPORTS_BIG_ENDIAN | 325 | select SYS_SUPPORTS_BIG_ENDIAN |
324 | select SYS_SUPPORTS_LITTLE_ENDIAN | 326 | select SYS_SUPPORTS_LITTLE_ENDIAN |
327 | select SYS_SUPPORTS_SMARTMIPS | ||
325 | help | 328 | help |
326 | This enables support for the MIPS Technologies SEAD evaluation | 329 | This enables support for the MIPS Technologies SEAD evaluation |
327 | board. | 330 | board. |
@@ -1641,6 +1644,18 @@ config 64BIT_PHYS_ADDR | |||
1641 | config CPU_HAS_LLSC | 1644 | config CPU_HAS_LLSC |
1642 | bool | 1645 | bool |
1643 | 1646 | ||
1647 | config CPU_HAS_SMARTMIPS | ||
1648 | depends on SYS_SUPPORTS_SMARTMIPS | ||
1649 | bool "Support for the SmartMIPS ASE" | ||
1650 | help | ||
1651 | SmartMIPS is a extension of the MIPS32 architecture aimed at | ||
1652 | increased security at both hardware and software level for | ||
1653 | smartcards. Enabling this option will allow proper use of the | ||
1654 | SmartMIPS instructions by Linux applications. However a kernel with | ||
1655 | this option will not work on a MIPS core without SmartMIPS core. If | ||
1656 | you don't know you probably don't have SmartMIPS and should say N | ||
1657 | here. | ||
1658 | |||
1644 | config CPU_HAS_WB | 1659 | config CPU_HAS_WB |
1645 | bool | 1660 | bool |
1646 | 1661 | ||
@@ -1704,6 +1719,9 @@ config CPU_SUPPORTS_HIGHMEM | |||
1704 | config SYS_SUPPORTS_HIGHMEM | 1719 | config SYS_SUPPORTS_HIGHMEM |
1705 | bool | 1720 | bool |
1706 | 1721 | ||
1722 | config SYS_SUPPORTS_SMARTMIPS | ||
1723 | bool | ||
1724 | |||
1707 | config ARCH_FLATMEM_ENABLE | 1725 | config ARCH_FLATMEM_ENABLE |
1708 | def_bool y | 1726 | def_bool y |
1709 | depends on !NUMA | 1727 | depends on !NUMA |