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

[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
Loading
Loading
Loading
Loading
+43 −32
Original line number Diff line number Diff line
@@ -4,26 +4,37 @@ config MIPS
	# Horrible source of confusion.  Die, die, die ...
	select EMBEDDED

config MIPS64
	bool "64-bit kernel"
mainmenu "Linux/MIPS Kernel Configuration"

source "init/Kconfig"

menu "Kernel type"

choice

	prompt "Kernel code model"
	help
	  Select this option if you want to build a 64-bit kernel.  You should
	  only select this option if you have hardware that actually has a
	  64-bit processor and if your application will actually benefit from
	  64-bit processing, otherwise say N.  You must say Y for kernels for
	  SGI IP27 (Origin 200 and 2000) and SGI IP32 (O2).  If in doubt say N.
	  You should only select this option if you have a workload that
	  actually benefits from 64-bit processing or if your machine has
	  large memory.  You will only be presented a single option in this
	  menu if your system does not support both 32-bit and 64-bit kernels.

config 64BIT
	def_bool MIPS64
config 32BIT
	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
	bool
	depends on MIPS64 = 'n'
	default y
config 64BIT
	bool "64-bit kernel"
	depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL
	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"

@@ -155,7 +166,7 @@ config VRC4173

config TOSHIBA_JMR3927
	bool "Support for Toshiba JMR-TX3927 board"
	depends on MIPS32
	depends on 32BIT
	select DMA_NONCOHERENT
	select HW_HAS_PCI
	select SWAP_IO_SPACE
@@ -173,7 +184,7 @@ config MACH_DECSTATION
	select BOOT_ELF32
	select DMA_NONCOHERENT
	select IRQ_CPU
	depends on MIPS32 || EXPERIMENTAL
	depends on 32BIT || EXPERIMENTAL
	---help---
	  This enables support for DEC's MIPS based workstations.  For details
	  see the Linux/MIPS FAQ on <http://www.linux-mips.org/> and the
@@ -480,7 +491,7 @@ config SGI_IP22

config SGI_IP27
	bool "Support for SGI IP27 (Origin200/2000)"
	depends on MIPS64
	depends on 64BIT
	select ARC
	select ARC64
	select DMA_IP27
@@ -548,7 +559,7 @@ config REPLICATE_EXHANDLERS

config SGI_IP32
	bool "Support for SGI IP32 (O2) (EXPERIMENTAL)"
	depends on MIPS64 && EXPERIMENTAL
	depends on 64BIT && EXPERIMENTAL
	select ARC
	select ARC32
	select BOOT_ELF32
@@ -562,7 +573,7 @@ config SGI_IP32
	  If you want this kernel to run on SGI O2 workstation, say Y here.

config SOC_AU1X00
	depends on MIPS32
	depends on 32BIT
	bool "Support for AMD/Alchemy Au1X00 SOCs"

choice
@@ -902,7 +913,7 @@ config SNI_RM200_PCI

config TOSHIBA_RBTX4927
	bool "Support for Toshiba TBTX49[23]7 board"
	depends on MIPS32
	depends on 32BIT
	select DMA_NONCOHERENT
	select HAS_TXX9_SERIAL
	select HW_HAS_PCI
@@ -1171,7 +1182,7 @@ config CPU_R3000

config CPU_TX39XX
	bool "R39XX"
	depends on MIPS32
	depends on 32BIT

config CPU_VR41XX
	bool "R41xx"
@@ -1205,7 +1216,7 @@ config CPU_R5432

config CPU_R6000
	bool "R6000"
	depends on MIPS32 && EXPERIMENTAL
	depends on 32BIT && EXPERIMENTAL
	help
	  MIPS Technologies R6000 and R6000A series processors.  Note these
	  processors are extremly rare and the support for them is incomplete.
@@ -1217,7 +1228,7 @@ config CPU_NEVADA

config CPU_R8000
	bool "R8000"
	depends on MIPS64 && EXPERIMENTAL
	depends on 64BIT && EXPERIMENTAL
	help
	  MIPS Technologies R8000 processors.  Note these processors are
	  uncommon and the support for them is incomplete.
@@ -1330,11 +1341,11 @@ config SB1_PASS_2_1_WORKAROUNDS

config 64BIT_PHYS_ADDR
	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
	bool "Override CPU Options"
	depends on MIPS32
	depends on 32BIT
	help
	  Saying yes here allows you to select support for various features
	  your CPU may or may not have.  Most people should say N here.
@@ -1388,7 +1399,7 @@ config CPU_HAS_SYNC
#
config HIGHMEM
	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
	def_bool y
@@ -1448,7 +1459,7 @@ config RTC_DS1742

config MIPS_INSANE_LARGE
	bool "Support for large 64-bit configurations"
	depends on CPU_R10000 && MIPS64
	depends on CPU_R10000 && 64BIT
	help
	  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
@@ -1549,11 +1560,11 @@ source "fs/Kconfig.binfmt"

config TRAD_SIGNALS
	bool
	default y if MIPS32
	default y if 32BIT

config BUILD_ELF64
	bool "Use 64-bit ELF format for building"
	depends on MIPS64
	depends on 64BIT
	help
	  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
@@ -1568,11 +1579,11 @@ config BUILD_ELF64

config BINFMT_IRIX
	bool "Include IRIX binary compatibility"
	depends on !CPU_LITTLE_ENDIAN && MIPS32 && BROKEN
	depends on !CPU_LITTLE_ENDIAN && 32BIT && BROKEN

config MIPS32_COMPAT
	bool "Kernel support for Linux/MIPS 32-bit binary compatibility"
	depends on MIPS64
	depends on 64BIT
	help
	  Select this option if you want Linux/MIPS 32-bit binary
	  compatibility. Since all software available for Linux/MIPS is
+8 −8
Original line number Diff line number Diff line
@@ -37,12 +37,12 @@ else
64bit-emul		= elf64btsmip
endif

ifdef CONFIG_MIPS32
ifdef CONFIG_32BIT
gcc-abi			= 32
tool-prefix		= $(32bit-tool-prefix)
UTS_MACHINE		:= mips
endif
ifdef CONFIG_MIPS64
ifdef CONFIG_64BIT
gcc-abi			= 64
tool-prefix		= $(64bit-tool-prefix)
UTS_MACHINE		:= mips64
@@ -63,7 +63,7 @@ ld-emul = $(32bit-emul)
vmlinux-32		= vmlinux
vmlinux-64		= vmlinux.64

cflags-$(CONFIG_MIPS64)	+= $(call cc-option,-mno-explicit-relocs)
cflags-$(CONFIG_64BIT)	+= $(call cc-option,-mno-explicit-relocs)
endif

#
@@ -524,10 +524,10 @@ load-$(CONFIG_TANBAC_TB022X) += 0xffffffff80000000
#
core-$(CONFIG_SGI_IP22)		+= arch/mips/sgi-ip22/
cflags-$(CONFIG_SGI_IP22)	+= -Iinclude/asm-mips/mach-ip22
ifdef CONFIG_MIPS32
ifdef CONFIG_32BIT
load-$(CONFIG_SGI_IP22)		+= 0xffffffff88002000
endif
ifdef CONFIG_MIPS64
ifdef CONFIG_64BIT
load-$(CONFIG_SGI_IP22)		+= 0xffffffff88004000
endif

@@ -632,7 +632,7 @@ load-$(CONFIG_TOSHIBA_RBTX4927) += 0xffffffff80020000
cflags-y			+= -Iinclude/asm-mips/mach-generic
drivers-$(CONFIG_PCI)		+= arch/mips/pci/

ifdef CONFIG_MIPS32
ifdef CONFIG_32BIT
ifdef CONFIG_CPU_LITTLE_ENDIAN
JIFFIES			= jiffies_64
else
@@ -664,8 +664,8 @@ CPPFLAGS_vmlinux.lds := \
head-y := arch/mips/kernel/head.o arch/mips/kernel/init_task.o

libs-y			+= arch/mips/lib/
libs-$(CONFIG_MIPS32)	+= arch/mips/lib-32/
libs-$(CONFIG_MIPS64)	+= arch/mips/lib-64/
libs-$(CONFIG_32BIT)	+= arch/mips/lib-32/
libs-$(CONFIG_64BIT)	+= arch/mips/lib-64/

core-y			+= arch/mips/kernel/ arch/mips/mm/ arch/mips/math-emu/

+2 −2
Original line number Diff line number Diff line
@@ -4,9 +4,9 @@
# Wed Jan 26 02:49:00 2005
#
CONFIG_MIPS=y
# CONFIG_MIPS64 is not set
# CONFIG_64BIT is not set
CONFIG_MIPS32=y
# CONFIG_64BIT is not set
CONFIG_32BIT=y

#
# Code maturity level options
+2 −2
Original line number Diff line number Diff line
@@ -4,9 +4,9 @@
# Wed Jan 26 02:49:00 2005
#
CONFIG_MIPS=y
# CONFIG_MIPS64 is not set
# CONFIG_64BIT is not set
CONFIG_MIPS32=y
# CONFIG_64BIT is not set
CONFIG_32BIT=y

#
# Code maturity level options
+2 −2
Original line number Diff line number Diff line
@@ -4,9 +4,9 @@
# Wed Jan 26 02:49:00 2005
#
CONFIG_MIPS=y
# CONFIG_MIPS64 is not set
# CONFIG_64BIT is not set
CONFIG_MIPS32=y
# CONFIG_64BIT is not set
CONFIG_32BIT=y

#
# Code maturity level options
Loading