Commit 875d43e7 authored by Ralf Baechle's avatar Ralf Baechle Committed by Linus Torvalds

[PATCH] mips: clean up 32/64-bit configuration

Start cleaning 32-bit vs. 64-bit configuration.
Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 63fb6fd1
...@@ -4,26 +4,37 @@ config MIPS ...@@ -4,26 +4,37 @@ config MIPS
# Horrible source of confusion. Die, die, die ... # Horrible source of confusion. Die, die, die ...
select EMBEDDED select EMBEDDED
config MIPS64 mainmenu "Linux/MIPS Kernel Configuration"
bool "64-bit kernel"
source "init/Kconfig"
menu "Kernel type"
choice
prompt "Kernel code model"
help help
Select this option if you want to build a 64-bit kernel. You should You should only select this option if you have a workload that
only select this option if you have hardware that actually has a actually benefits from 64-bit processing or if your machine has
64-bit processor and if your application will actually benefit from large memory. You will only be presented a single option in this
64-bit processing, otherwise say N. You must say Y for kernels for menu if your system does not support both 32-bit and 64-bit kernels.
SGI IP27 (Origin 200 and 2000) and SGI IP32 (O2). If in doubt say N.
config 64BIT config 32BIT
def_bool MIPS64 bool "32-bit kernel"
depends on CPU_SUPPORTS_32BIT_KERNEL && SYS_SUPPORTS_32BIT_KERNEL
select TRAD_SIGNALS
help
Select this option if you want to build a 32-bit kernel.
config MIPS32 config 64BIT
bool bool "64-bit kernel"
depends on MIPS64 = 'n' depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL
default y help
Select this option if you want to build a 64-bit kernel.
mainmenu "Linux/MIPS Kernel Configuration" endchoice
source "init/Kconfig" endmenu
menu "Machine selection" menu "Machine selection"
...@@ -155,7 +166,7 @@ config VRC4173 ...@@ -155,7 +166,7 @@ config VRC4173
config TOSHIBA_JMR3927 config TOSHIBA_JMR3927
bool "Support for Toshiba JMR-TX3927 board" bool "Support for Toshiba JMR-TX3927 board"
depends on MIPS32 depends on 32BIT
select DMA_NONCOHERENT select DMA_NONCOHERENT
select HW_HAS_PCI select HW_HAS_PCI
select SWAP_IO_SPACE select SWAP_IO_SPACE
...@@ -173,7 +184,7 @@ config MACH_DECSTATION ...@@ -173,7 +184,7 @@ config MACH_DECSTATION
select BOOT_ELF32 select BOOT_ELF32
select DMA_NONCOHERENT select DMA_NONCOHERENT
select IRQ_CPU select IRQ_CPU
depends on MIPS32 || EXPERIMENTAL depends on 32BIT || EXPERIMENTAL
---help--- ---help---
This enables support for DEC's MIPS based workstations. For details This enables support for DEC's MIPS based workstations. For details
see the Linux/MIPS FAQ on <http://www.linux-mips.org/> and the see the Linux/MIPS FAQ on <http://www.linux-mips.org/> and the
...@@ -480,7 +491,7 @@ config SGI_IP22 ...@@ -480,7 +491,7 @@ config SGI_IP22
config SGI_IP27 config SGI_IP27
bool "Support for SGI IP27 (Origin200/2000)" bool "Support for SGI IP27 (Origin200/2000)"
depends on MIPS64 depends on 64BIT
select ARC select ARC
select ARC64 select ARC64
select DMA_IP27 select DMA_IP27
...@@ -548,7 +559,7 @@ config REPLICATE_EXHANDLERS ...@@ -548,7 +559,7 @@ config REPLICATE_EXHANDLERS
config SGI_IP32 config SGI_IP32
bool "Support for SGI IP32 (O2) (EXPERIMENTAL)" bool "Support for SGI IP32 (O2) (EXPERIMENTAL)"
depends on MIPS64 && EXPERIMENTAL depends on 64BIT && EXPERIMENTAL
select ARC select ARC
select ARC32 select ARC32
select BOOT_ELF32 select BOOT_ELF32
...@@ -562,7 +573,7 @@ config SGI_IP32 ...@@ -562,7 +573,7 @@ config SGI_IP32
If you want this kernel to run on SGI O2 workstation, say Y here. If you want this kernel to run on SGI O2 workstation, say Y here.
config SOC_AU1X00 config SOC_AU1X00
depends on MIPS32 depends on 32BIT
bool "Support for AMD/Alchemy Au1X00 SOCs" bool "Support for AMD/Alchemy Au1X00 SOCs"
choice choice
...@@ -902,7 +913,7 @@ config SNI_RM200_PCI ...@@ -902,7 +913,7 @@ config SNI_RM200_PCI
config TOSHIBA_RBTX4927 config TOSHIBA_RBTX4927
bool "Support for Toshiba TBTX49[23]7 board" bool "Support for Toshiba TBTX49[23]7 board"
depends on MIPS32 depends on 32BIT
select DMA_NONCOHERENT select DMA_NONCOHERENT
select HAS_TXX9_SERIAL select HAS_TXX9_SERIAL
select HW_HAS_PCI select HW_HAS_PCI
...@@ -1171,7 +1182,7 @@ config CPU_R3000 ...@@ -1171,7 +1182,7 @@ config CPU_R3000
config CPU_TX39XX config CPU_TX39XX
bool "R39XX" bool "R39XX"
depends on MIPS32 depends on 32BIT
config CPU_VR41XX config CPU_VR41XX
bool "R41xx" bool "R41xx"
...@@ -1205,7 +1216,7 @@ config CPU_R5432 ...@@ -1205,7 +1216,7 @@ config CPU_R5432
config CPU_R6000 config CPU_R6000
bool "R6000" bool "R6000"
depends on MIPS32 && EXPERIMENTAL depends on 32BIT && EXPERIMENTAL
help help
MIPS Technologies R6000 and R6000A series processors. Note these MIPS Technologies R6000 and R6000A series processors. Note these
processors are extremly rare and the support for them is incomplete. processors are extremly rare and the support for them is incomplete.
...@@ -1217,7 +1228,7 @@ config CPU_NEVADA ...@@ -1217,7 +1228,7 @@ config CPU_NEVADA
config CPU_R8000 config CPU_R8000
bool "R8000" bool "R8000"
depends on MIPS64 && EXPERIMENTAL depends on 64BIT && EXPERIMENTAL
help help
MIPS Technologies R8000 processors. Note these processors are MIPS Technologies R8000 processors. Note these processors are
uncommon and the support for them is incomplete. uncommon and the support for them is incomplete.
...@@ -1330,11 +1341,11 @@ config SB1_PASS_2_1_WORKAROUNDS ...@@ -1330,11 +1341,11 @@ config SB1_PASS_2_1_WORKAROUNDS
config 64BIT_PHYS_ADDR config 64BIT_PHYS_ADDR
bool "Support for 64-bit physical address space" bool "Support for 64-bit physical address space"
depends on (CPU_R4X00 || CPU_R5000 || CPU_RM7000 || CPU_RM9000 || CPU_R10000 || CPU_SB1 || CPU_MIPS32 || CPU_MIPS64) && MIPS32 depends on (CPU_R4X00 || CPU_R5000 || CPU_RM7000 || CPU_RM9000 || CPU_R10000 || CPU_SB1 || CPU_MIPS32 || CPU_MIPS64) && 32BIT
config CPU_ADVANCED config CPU_ADVANCED
bool "Override CPU Options" bool "Override CPU Options"
depends on MIPS32 depends on 32BIT
help help
Saying yes here allows you to select support for various features Saying yes here allows you to select support for various features
your CPU may or may not have. Most people should say N here. your CPU may or may not have. Most people should say N here.
...@@ -1388,7 +1399,7 @@ config CPU_HAS_SYNC ...@@ -1388,7 +1399,7 @@ config CPU_HAS_SYNC
# #
config HIGHMEM config HIGHMEM
bool "High Memory Support" bool "High Memory Support"
depends on MIPS32 && (CPU_R3000 || CPU_SB1 || CPU_R7000 || CPU_RM9000 || CPU_R10000) && !(MACH_DECSTATION || MOMENCO_JAGUAR_ATX) depends on 32BIT && (CPU_R3000 || CPU_SB1 || CPU_R7000 || CPU_RM9000 || CPU_R10000) && !(MACH_DECSTATION || MOMENCO_JAGUAR_ATX)
config ARCH_FLATMEM_ENABLE config ARCH_FLATMEM_ENABLE
def_bool y def_bool y
...@@ -1448,7 +1459,7 @@ config RTC_DS1742 ...@@ -1448,7 +1459,7 @@ config RTC_DS1742
config MIPS_INSANE_LARGE config MIPS_INSANE_LARGE
bool "Support for large 64-bit configurations" bool "Support for large 64-bit configurations"
depends on CPU_R10000 && MIPS64 depends on CPU_R10000 && 64BIT
help help
MIPS R10000 does support a 44 bit / 16TB address space as opposed to MIPS R10000 does support a 44 bit / 16TB address space as opposed to
previous 64-bit processors which only supported 40 bit / 1TB. If you previous 64-bit processors which only supported 40 bit / 1TB. If you
...@@ -1549,11 +1560,11 @@ source "fs/Kconfig.binfmt" ...@@ -1549,11 +1560,11 @@ source "fs/Kconfig.binfmt"
config TRAD_SIGNALS config TRAD_SIGNALS
bool bool
default y if MIPS32 default y if 32BIT
config BUILD_ELF64 config BUILD_ELF64
bool "Use 64-bit ELF format for building" bool "Use 64-bit ELF format for building"
depends on MIPS64 depends on 64BIT
help help
A 64-bit kernel is usually built using the 64-bit ELF binary object A 64-bit kernel is usually built using the 64-bit ELF binary object
format as it's one that allows arbitrary 64-bit constructs. For format as it's one that allows arbitrary 64-bit constructs. For
...@@ -1568,11 +1579,11 @@ config BUILD_ELF64 ...@@ -1568,11 +1579,11 @@ config BUILD_ELF64
config BINFMT_IRIX config BINFMT_IRIX
bool "Include IRIX binary compatibility" bool "Include IRIX binary compatibility"
depends on !CPU_LITTLE_ENDIAN && MIPS32 && BROKEN depends on !CPU_LITTLE_ENDIAN && 32BIT && BROKEN
config MIPS32_COMPAT config MIPS32_COMPAT
bool "Kernel support for Linux/MIPS 32-bit binary compatibility" bool "Kernel support for Linux/MIPS 32-bit binary compatibility"
depends on MIPS64 depends on 64BIT
help help
Select this option if you want Linux/MIPS 32-bit binary Select this option if you want Linux/MIPS 32-bit binary
compatibility. Since all software available for Linux/MIPS is compatibility. Since all software available for Linux/MIPS is
......
...@@ -37,12 +37,12 @@ else ...@@ -37,12 +37,12 @@ else
64bit-emul = elf64btsmip 64bit-emul = elf64btsmip
endif endif
ifdef CONFIG_MIPS32 ifdef CONFIG_32BIT
gcc-abi = 32 gcc-abi = 32
tool-prefix = $(32bit-tool-prefix) tool-prefix = $(32bit-tool-prefix)
UTS_MACHINE := mips UTS_MACHINE := mips
endif endif
ifdef CONFIG_MIPS64 ifdef CONFIG_64BIT
gcc-abi = 64 gcc-abi = 64
tool-prefix = $(64bit-tool-prefix) tool-prefix = $(64bit-tool-prefix)
UTS_MACHINE := mips64 UTS_MACHINE := mips64
...@@ -63,7 +63,7 @@ ld-emul = $(32bit-emul) ...@@ -63,7 +63,7 @@ ld-emul = $(32bit-emul)
vmlinux-32 = vmlinux vmlinux-32 = vmlinux
vmlinux-64 = vmlinux.64 vmlinux-64 = vmlinux.64
cflags-$(CONFIG_MIPS64) += $(call cc-option,-mno-explicit-relocs) cflags-$(CONFIG_64BIT) += $(call cc-option,-mno-explicit-relocs)
endif endif
# #
...@@ -524,10 +524,10 @@ load-$(CONFIG_TANBAC_TB022X) += 0xffffffff80000000 ...@@ -524,10 +524,10 @@ load-$(CONFIG_TANBAC_TB022X) += 0xffffffff80000000
# #
core-$(CONFIG_SGI_IP22) += arch/mips/sgi-ip22/ core-$(CONFIG_SGI_IP22) += arch/mips/sgi-ip22/
cflags-$(CONFIG_SGI_IP22) += -Iinclude/asm-mips/mach-ip22 cflags-$(CONFIG_SGI_IP22) += -Iinclude/asm-mips/mach-ip22
ifdef CONFIG_MIPS32 ifdef CONFIG_32BIT
load-$(CONFIG_SGI_IP22) += 0xffffffff88002000 load-$(CONFIG_SGI_IP22) += 0xffffffff88002000
endif endif
ifdef CONFIG_MIPS64 ifdef CONFIG_64BIT
load-$(CONFIG_SGI_IP22) += 0xffffffff88004000 load-$(CONFIG_SGI_IP22) += 0xffffffff88004000
endif endif
...@@ -632,7 +632,7 @@ load-$(CONFIG_TOSHIBA_RBTX4927) += 0xffffffff80020000 ...@@ -632,7 +632,7 @@ load-$(CONFIG_TOSHIBA_RBTX4927) += 0xffffffff80020000
cflags-y += -Iinclude/asm-mips/mach-generic cflags-y += -Iinclude/asm-mips/mach-generic
drivers-$(CONFIG_PCI) += arch/mips/pci/ drivers-$(CONFIG_PCI) += arch/mips/pci/
ifdef CONFIG_MIPS32 ifdef CONFIG_32BIT
ifdef CONFIG_CPU_LITTLE_ENDIAN ifdef CONFIG_CPU_LITTLE_ENDIAN
JIFFIES = jiffies_64 JIFFIES = jiffies_64
else else
...@@ -664,8 +664,8 @@ CPPFLAGS_vmlinux.lds := \ ...@@ -664,8 +664,8 @@ CPPFLAGS_vmlinux.lds := \
head-y := arch/mips/kernel/head.o arch/mips/kernel/init_task.o head-y := arch/mips/kernel/head.o arch/mips/kernel/init_task.o
libs-y += arch/mips/lib/ libs-y += arch/mips/lib/
libs-$(CONFIG_MIPS32) += arch/mips/lib-32/ libs-$(CONFIG_32BIT) += arch/mips/lib-32/
libs-$(CONFIG_MIPS64) += arch/mips/lib-64/ libs-$(CONFIG_64BIT) += arch/mips/lib-64/
core-y += arch/mips/kernel/ arch/mips/mm/ arch/mips/math-emu/ core-y += arch/mips/kernel/ arch/mips/mm/ arch/mips/math-emu/
......
...@@ -4,9 +4,9 @@ ...@@ -4,9 +4,9 @@
# Wed Jan 26 02:49:00 2005 # Wed Jan 26 02:49:00 2005
# #
CONFIG_MIPS=y CONFIG_MIPS=y
# CONFIG_MIPS64 is not set
# CONFIG_64BIT is not set # CONFIG_64BIT is not set
CONFIG_MIPS32=y # CONFIG_64BIT is not set
CONFIG_32BIT=y
# #
# Code maturity level options # Code maturity level options
......
...@@ -4,9 +4,9 @@ ...@@ -4,9 +4,9 @@
# Wed Jan 26 02:49:00 2005 # Wed Jan 26 02:49:00 2005
# #
CONFIG_MIPS=y CONFIG_MIPS=y
# CONFIG_MIPS64 is not set
# CONFIG_64BIT is not set # CONFIG_64BIT is not set
CONFIG_MIPS32=y # CONFIG_64BIT is not set
CONFIG_32BIT=y
# #
# Code maturity level options # Code maturity level options
......
...@@ -4,9 +4,9 @@ ...@@ -4,9 +4,9 @@
# Wed Jan 26 02:49:00 2005 # Wed Jan 26 02:49:00 2005
# #
CONFIG_MIPS=y CONFIG_MIPS=y
# CONFIG_MIPS64 is not set
# CONFIG_64BIT is not set # CONFIG_64BIT is not set
CONFIG_MIPS32=y # CONFIG_64BIT is not set
CONFIG_32BIT=y
# #
# Code maturity level options # Code maturity level options
......
...@@ -4,9 +4,9 @@ ...@@ -4,9 +4,9 @@
# Wed Jan 26 02:49:01 2005 # Wed Jan 26 02:49:01 2005
# #
CONFIG_MIPS=y CONFIG_MIPS=y
# CONFIG_MIPS64 is not set
# CONFIG_64BIT is not set # CONFIG_64BIT is not set
CONFIG_MIPS32=y # CONFIG_64BIT is not set
CONFIG_32BIT=y
# #
# Code maturity level options # Code maturity level options
......
...@@ -4,9 +4,9 @@ ...@@ -4,9 +4,9 @@
# Wed Jan 26 02:49:01 2005 # Wed Jan 26 02:49:01 2005
# #
CONFIG_MIPS=y CONFIG_MIPS=y
# CONFIG_MIPS64 is not set
# CONFIG_64BIT is not set # CONFIG_64BIT is not set
CONFIG_MIPS32=y # CONFIG_64BIT is not set
CONFIG_32BIT=y
# #
# Code maturity level options # Code maturity level options
......
...@@ -4,9 +4,9 @@ ...@@ -4,9 +4,9 @@
# Wed Jan 26 02:49:01 2005 # Wed Jan 26 02:49:01 2005
# #
CONFIG_MIPS=y CONFIG_MIPS=y
# CONFIG_MIPS64 is not set
# CONFIG_64BIT is not set # CONFIG_64BIT is not set
CONFIG_MIPS32=y # CONFIG_64BIT is not set
CONFIG_32BIT=y
# #
# Code maturity level options # Code maturity level options
......
...@@ -4,9 +4,9 @@ ...@@ -4,9 +4,9 @@
# Wed Jan 26 02:49:02 2005 # Wed Jan 26 02:49:02 2005
# #
CONFIG_MIPS=y CONFIG_MIPS=y
# CONFIG_MIPS64 is not set
# CONFIG_64BIT is not set # CONFIG_64BIT is not set
CONFIG_MIPS32=y # CONFIG_64BIT is not set
CONFIG_32BIT=y
# #
# Code maturity level options # Code maturity level options
......
...@@ -4,9 +4,9 @@ ...@@ -4,9 +4,9 @@
# Wed Jan 26 02:49:02 2005 # Wed Jan 26 02:49:02 2005
# #
CONFIG_MIPS=y CONFIG_MIPS=y
# CONFIG_MIPS64 is not set
# CONFIG_64BIT is not set # CONFIG_64BIT is not set
CONFIG_MIPS32=y # CONFIG_64BIT is not set
CONFIG_32BIT=y
# #
# Code maturity level options # Code maturity level options
......
...@@ -4,9 +4,9 @@ ...@@ -4,9 +4,9 @@
# Wed Jan 26 02:49:02 2005 # Wed Jan 26 02:49:02 2005
# #
CONFIG_MIPS=y CONFIG_MIPS=y
# CONFIG_MIPS64 is not set
# CONFIG_64BIT is not set # CONFIG_64BIT is not set
CONFIG_MIPS32=y # CONFIG_64BIT is not set
CONFIG_32BIT=y
# #
# Code maturity level options # Code maturity level options
......
...@@ -4,9 +4,9 @@ ...@@ -4,9 +4,9 @@
# Wed Jan 26 02:49:03 2005 # Wed Jan 26 02:49:03 2005
# #
CONFIG_MIPS=y CONFIG_MIPS=y
# CONFIG_MIPS64 is not set
# CONFIG_64BIT is not set # CONFIG_64BIT is not set
CONFIG_MIPS32=y # CONFIG_64BIT is not set
CONFIG_32BIT=y
# #
# Code maturity level options # Code maturity level options
......
...@@ -4,9 +4,9 @@ ...@@ -4,9 +4,9 @@
# Wed Jan 26 02:49:03 2005 # Wed Jan 26 02:49:03 2005
# #
CONFIG_MIPS=y CONFIG_MIPS=y
# CONFIG_MIPS64 is not set
# CONFIG_64BIT is not set # CONFIG_64BIT is not set
CONFIG_MIPS32=y # CONFIG_64BIT is not set
CONFIG_32BIT=y
# #
# Code maturity level options # Code maturity level options
......
...@@ -4,9 +4,9 @@ ...@@ -4,9 +4,9 @@
# Wed Jan 26 02:49:03 2005 # Wed Jan 26 02:49:03 2005
# #
CONFIG_MIPS=y CONFIG_MIPS=y
# CONFIG_MIPS64 is not set
# CONFIG_64BIT is not set # CONFIG_64BIT is not set
CONFIG_MIPS32=y # CONFIG_64BIT is not set
CONFIG_32BIT=y
# #
# Code maturity level options # Code maturity level options
......
...@@ -4,9 +4,9 @@ ...@@ -4,9 +4,9 @@
# Wed Jan 26 02:49:03 2005 # Wed Jan 26 02:49:03 2005
# #
CONFIG_MIPS=y CONFIG_MIPS=y
# CONFIG_MIPS64 is not set
# CONFIG_64BIT is not set # CONFIG_64BIT is not set
CONFIG_MIPS32=y # CONFIG_64BIT is not set
CONFIG_32BIT=y
# #
# Code maturity level options # Code maturity level options
......
...@@ -4,9 +4,9 @@ ...@@ -4,9 +4,9 @@
# Wed Jan 26 02:49:04 2005 # Wed Jan 26 02:49:04 2005
# #
CONFIG_MIPS=y CONFIG_MIPS=y
# CONFIG_MIPS64 is not set
# CONFIG_64BIT is not set # CONFIG_64BIT is not set
CONFIG_MIPS32=y # CONFIG_64BIT is not set
CONFIG_32BIT=y
# #
# Code maturity level options # Code maturity level options
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
# Wed Jan 26 02:49:04 2005 # Wed Jan 26 02:49:04 2005
# #
CONFIG_MIPS=y CONFIG_MIPS=y
CONFIG_MIPS64=y CONFIG_64BIT=y
CONFIG_64BIT=y CONFIG_64BIT=y
# #
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
# Wed Jan 26 02:49:04 2005 # Wed Jan 26 02:49:04 2005
# #
CONFIG_MIPS=y CONFIG_MIPS=y
CONFIG_MIPS64=y