浏览代码

powerpc/kconfig: Kill PPC_MULTIPLATFORM

CONFIG_PPC_MULTIPLATFORM is a remain of the pre-powerpc days and isn't
really meaningful anymore. It was basically equivalent to PPC64 || 6xx.

This removes it along with the following changes:

 - 32-bit platforms that relied on PPC32 && PPC_MULTIPLATFORM now rely
   on 6xx which is what they want anyway.

 - A new symbol, PPC_BOOK3S, is defined that represent compliance with
   the "Server" variant of the architecture. This is set when either 6xx
   or PPC64 is set and open the door for future BOOK3E 64-bit.

 - 64-bit platforms that relied on PPC64 && PPC_MULTIPLATFORM now use
   PPC64 && PPC_BOOK3S

 - A separate and selectable CONFIG_PPC_OF_BOOT_TRAMPOLINE option is now
   used to control the use of prom_init.c

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Benjamin Herrenschmidt 16 年之前
父节点
当前提交
28794d34ec

+ 1 - 1
arch/powerpc/Kconfig

@@ -313,7 +313,7 @@ config ARCH_ENABLE_MEMORY_HOTREMOVE
 
 
 config KEXEC
 config KEXEC
 	bool "kexec system call (EXPERIMENTAL)"
 	bool "kexec system call (EXPERIMENTAL)"
-	depends on (PPC_PRPMC2800 || PPC_MULTIPLATFORM) && EXPERIMENTAL
+	depends on BOOK3S && EXPERIMENTAL
 	help
 	help
 	  kexec is a system call that implements the ability to shutdown your
 	  kexec is a system call that implements the ability to shutdown your
 	  current kernel, and to start another kernel.  It is like a reboot
 	  current kernel, and to start another kernel.  It is like a reboot

+ 1 - 1
arch/powerpc/Kconfig.debug

@@ -129,7 +129,7 @@ config BDI_SWITCH
 
 
 config BOOTX_TEXT
 config BOOTX_TEXT
 	bool "Support for early boot text console (BootX or OpenFirmware only)"
 	bool "Support for early boot text console (BootX or OpenFirmware only)"
-	depends on PPC_OF && PPC_MULTIPLATFORM
+	depends on PPC_OF && PPC_BOOK3S
 	help
 	help
 	  Say Y here to see progress messages from the boot firmware in text
 	  Say Y here to see progress messages from the boot firmware in text
 	  mode. Requires either BootX or Open Firmware.
 	  mode. Requires either BootX or Open Firmware.

+ 1 - 1
arch/powerpc/kernel/Makefile

@@ -75,7 +75,7 @@ obj-y				+= time.o prom.o traps.o setup-common.o \
 obj-$(CONFIG_PPC32)		+= entry_32.o setup_32.o
 obj-$(CONFIG_PPC32)		+= entry_32.o setup_32.o
 obj-$(CONFIG_PPC64)		+= dma-iommu.o iommu.o
 obj-$(CONFIG_PPC64)		+= dma-iommu.o iommu.o
 obj-$(CONFIG_KGDB)		+= kgdb.o
 obj-$(CONFIG_KGDB)		+= kgdb.o
-obj-$(CONFIG_PPC_MULTIPLATFORM)	+= prom_init.o
+obj-$(CONFIG_PPC_OF_BOOT_TRAMPOLINE)	+= prom_init.o
 obj-$(CONFIG_MODULES)		+= ppc_ksyms.o
 obj-$(CONFIG_MODULES)		+= ppc_ksyms.o
 obj-$(CONFIG_BOOTX_TEXT)	+= btext.o
 obj-$(CONFIG_BOOTX_TEXT)	+= btext.o
 obj-$(CONFIG_SMP)		+= smp.o
 obj-$(CONFIG_SMP)		+= smp.o

+ 5 - 2
arch/powerpc/kernel/head_32.S

@@ -108,18 +108,21 @@ __start:
  * because OF may have I/O devices mapped into that area
  * because OF may have I/O devices mapped into that area
  * (particularly on CHRP).
  * (particularly on CHRP).
  */
  */
-#ifdef CONFIG_PPC_MULTIPLATFORM
 	cmpwi	0,r5,0
 	cmpwi	0,r5,0
 	beq	1f
 	beq	1f
 
 
+#ifdef CONFIG_PPC_OF_BOOT_TRAMPOLINE
 	/* find out where we are now */
 	/* find out where we are now */
 	bcl	20,31,$+4
 	bcl	20,31,$+4
 0:	mflr	r8			/* r8 = runtime addr here */
 0:	mflr	r8			/* r8 = runtime addr here */
 	addis	r8,r8,(_stext - 0b)@ha
 	addis	r8,r8,(_stext - 0b)@ha
 	addi	r8,r8,(_stext - 0b)@l	/* current runtime base addr */
 	addi	r8,r8,(_stext - 0b)@l	/* current runtime base addr */
 	bl	prom_init
 	bl	prom_init
+#endif /* CONFIG_PPC_OF_BOOT_TRAMPOLINE */
+
+	/* We never return. We also hit that trap if trying to boot
+	 * from OF while CONFIG_PPC_OF_BOOT_TRAMPOLINE isn't selected */
 	trap
 	trap
-#endif
 
 
 /*
 /*
  * Check for BootX signature when supporting PowerMac and branch to
  * Check for BootX signature when supporting PowerMac and branch to

+ 5 - 1
arch/powerpc/kernel/head_64.S

@@ -1360,6 +1360,7 @@ _GLOBAL(__start_initialization_multiplatform)
 	b	.__after_prom_start
 	b	.__after_prom_start
 
 
 _INIT_STATIC(__boot_from_prom)
 _INIT_STATIC(__boot_from_prom)
+#ifdef CONFIG_PPC_OF_BOOT_TRAMPOLINE
 	/* Save parameters */
 	/* Save parameters */
 	mr	r31,r3
 	mr	r31,r3
 	mr	r30,r4
 	mr	r30,r4
@@ -1390,7 +1391,10 @@ _INIT_STATIC(__boot_from_prom)
 	/* Do all of the interaction with OF client interface */
 	/* Do all of the interaction with OF client interface */
 	mr	r8,r26
 	mr	r8,r26
 	bl	.prom_init
 	bl	.prom_init
-	/* We never return */
+#endif /* #CONFIG_PPC_OF_BOOT_TRAMPOLINE */
+
+	/* We never return. We also hit that trap if trying to boot
+	 * from OF while CONFIG_PPC_OF_BOOT_TRAMPOLINE isn't selected */
 	trap
 	trap
 
 
 _STATIC(__after_prom_start)
 _STATIC(__after_prom_start)

+ 2 - 2
arch/powerpc/platforms/512x/Kconfig

@@ -12,7 +12,7 @@ config PPC_MPC5121
 
 
 config MPC5121_ADS
 config MPC5121_ADS
 	bool "Freescale MPC5121E ADS"
 	bool "Freescale MPC5121E ADS"
-	depends on PPC_MULTIPLATFORM && PPC32
+	depends on 6xx
 	select DEFAULT_UIMAGE
 	select DEFAULT_UIMAGE
 	select PPC_MPC5121
 	select PPC_MPC5121
 	select MPC5121_ADS_CPLD
 	select MPC5121_ADS_CPLD
@@ -21,7 +21,7 @@ config MPC5121_ADS
 
 
 config MPC5121_GENERIC
 config MPC5121_GENERIC
 	bool "Generic support for simple MPC5121 based boards"
 	bool "Generic support for simple MPC5121 based boards"
-	depends on PPC_MULTIPLATFORM && PPC32
+	depends on 6xx
 	select DEFAULT_UIMAGE
 	select DEFAULT_UIMAGE
 	select PPC_MPC5121
 	select PPC_MPC5121
 	help
 	help

+ 1 - 1
arch/powerpc/platforms/52xx/Kconfig

@@ -1,6 +1,6 @@
 config PPC_MPC52xx
 config PPC_MPC52xx
 	bool "52xx-based boards"
 	bool "52xx-based boards"
-	depends on PPC_MULTIPLATFORM && PPC32
+	depends on 6xx
 	select PPC_CLOCK
 	select PPC_CLOCK
 	select PPC_PCI_CHOICE
 	select PPC_PCI_CHOICE
 
 

+ 1 - 1
arch/powerpc/platforms/82xx/Kconfig

@@ -1,6 +1,6 @@
 menuconfig PPC_82xx
 menuconfig PPC_82xx
 	bool "82xx-based boards (PQ II)"
 	bool "82xx-based boards (PQ II)"
-	depends on 6xx && PPC_MULTIPLATFORM
+	depends on 6xx
 
 
 if PPC_82xx
 if PPC_82xx
 
 

+ 1 - 1
arch/powerpc/platforms/83xx/Kconfig

@@ -1,6 +1,6 @@
 menuconfig PPC_83xx
 menuconfig PPC_83xx
 	bool "83xx-based boards"
 	bool "83xx-based boards"
-	depends on 6xx && PPC_MULTIPLATFORM
+	depends on 6xx
 	select PPC_UDBG_16550
 	select PPC_UDBG_16550
 	select PPC_PCI_CHOICE
 	select PPC_PCI_CHOICE
 	select FSL_PCI if PCI
 	select FSL_PCI if PCI

+ 1 - 1
arch/powerpc/platforms/86xx/Kconfig

@@ -1,7 +1,7 @@
 config PPC_86xx
 config PPC_86xx
 menuconfig PPC_86xx
 menuconfig PPC_86xx
 	bool "86xx-based boards"
 	bool "86xx-based boards"
-	depends on 6xx && PPC_MULTIPLATFORM
+	depends on 6xx
 	select FSL_SOC
 	select FSL_SOC
 	select ALTIVEC
 	select ALTIVEC
 	help
 	help

+ 15 - 12
arch/powerpc/platforms/Kconfig

@@ -1,14 +1,5 @@
 menu "Platform support"
 menu "Platform support"
 
 
-config PPC_MULTIPLATFORM
-	bool
-	depends on PPC64 || 6xx
-	default y
-
-config CLASSIC32
-	def_bool y
-	depends on 6xx && PPC_MULTIPLATFORM
-
 source "arch/powerpc/platforms/pseries/Kconfig"
 source "arch/powerpc/platforms/pseries/Kconfig"
 source "arch/powerpc/platforms/iseries/Kconfig"
 source "arch/powerpc/platforms/iseries/Kconfig"
 source "arch/powerpc/platforms/chrp/Kconfig"
 source "arch/powerpc/platforms/chrp/Kconfig"
@@ -32,12 +23,24 @@ source "arch/powerpc/platforms/amigaone/Kconfig"
 
 
 config PPC_NATIVE
 config PPC_NATIVE
 	bool
 	bool
-	depends on PPC_MULTIPLATFORM
+	depends on 6xx || PPC64
 	help
 	help
 	  Support for running natively on the hardware, i.e. without
 	  Support for running natively on the hardware, i.e. without
 	  a hypervisor. This option is not user-selectable but should
 	  a hypervisor. This option is not user-selectable but should
 	  be selected by all platforms that need it.
 	  be selected by all platforms that need it.
 
 
+config PPC_OF_BOOT_TRAMPOLINE
+	bool "Support booting from Open Firmware or yaboot"
+	depends on 6xx || PPC64
+	default y
+	help
+	  Support from booting from Open Firmware or yaboot using an
+	  Open Firmware client interface. This enables the kernel to
+	  communicate with open firmware to retrieve system informations
+	  such as the device tree.
+
+	  In case of doubt, say Y
+
 config UDBG_RTAS_CONSOLE
 config UDBG_RTAS_CONSOLE
 	bool "RTAS based debug console"
 	bool "RTAS based debug console"
 	depends on PPC_RTAS
 	depends on PPC_RTAS
@@ -71,7 +74,7 @@ config PPC_I8259
 
 
 config U3_DART
 config U3_DART
 	bool
 	bool
-	depends on PPC_MULTIPLATFORM && PPC64
+	depends on PPC64
 	default n
 	default n
 
 
 config PPC_RTAS
 config PPC_RTAS
@@ -188,7 +191,7 @@ config PPC601_SYNC_FIX
 
 
 config TAU
 config TAU
 	bool "On-chip CPU temperature sensor support"
 	bool "On-chip CPU temperature sensor support"
-	depends on CLASSIC32
+	depends on 6xx
 	help
 	help
 	  G3 and G4 processors have an on-chip temperature sensor called the
 	  G3 and G4 processors have an on-chip temperature sensor called the
 	  'Thermal Assist Unit (TAU)', which, in theory, can measure the on-die
 	  'Thermal Assist Unit (TAU)', which, in theory, can measure the on-die

+ 13 - 5
arch/powerpc/platforms/Kconfig.cputype

@@ -57,9 +57,17 @@ config E200
 
 
 endchoice
 endchoice
 
 
+# Until we have a choice of exclusive CPU types on 64-bit, we always
+# use PPC_BOOK3S. On 32-bit, this is equivalent to 6xx which is
+# "classic" MMU
+
+config PPC_BOOK3S
+       def_bool y
+       depends on PPC64 || 6xx
+
 config POWER4_ONLY
 config POWER4_ONLY
 	bool "Optimize for POWER4"
 	bool "Optimize for POWER4"
-	depends on PPC64
+	depends on PPC64 && PPC_BOOK3S
 	default n
 	default n
 	---help---
 	---help---
 	  Cause the compiler to optimize for POWER4/POWER5/PPC970 processors.
 	  Cause the compiler to optimize for POWER4/POWER5/PPC970 processors.
@@ -68,16 +76,16 @@ config POWER4_ONLY
 
 
 config POWER3
 config POWER3
 	bool
 	bool
-	depends on PPC64
+	depends on PPC64 && PPC_BOOK3S
 	default y if !POWER4_ONLY
 	default y if !POWER4_ONLY
 
 
 config POWER4
 config POWER4
-	depends on PPC64
+	depends on PPC64 && PPC_BOOK3S
 	def_bool y
 	def_bool y
 
 
 config TUNE_CELL
 config TUNE_CELL
 	bool "Optimize for Cell Broadband Engine"
 	bool "Optimize for Cell Broadband Engine"
-	depends on PPC64
+	depends on PPC64 && PPC_BOOK3S
 	help
 	help
 	  Cause the compiler to optimize for the PPE of the Cell Broadband
 	  Cause the compiler to optimize for the PPE of the Cell Broadband
 	  Engine. This will make the code run considerably faster on Cell
 	  Engine. This will make the code run considerably faster on Cell
@@ -147,7 +155,7 @@ config PHYS_64BIT
 
 
 config ALTIVEC
 config ALTIVEC
 	bool "AltiVec Support"
 	bool "AltiVec Support"
-	depends on CLASSIC32 || POWER4
+	depends on 6xx || POWER4
 	---help---
 	---help---
 	  This option enables kernel support for the Altivec extensions to the
 	  This option enables kernel support for the Altivec extensions to the
 	  PowerPC processor. The kernel currently supports saving and restoring
 	  PowerPC processor. The kernel currently supports saving and restoring

+ 1 - 1
arch/powerpc/platforms/amigaone/Kconfig

@@ -1,6 +1,6 @@
 config AMIGAONE
 config AMIGAONE
 	bool "Eyetech AmigaOne/MAI Teron"
 	bool "Eyetech AmigaOne/MAI Teron"
-	depends on PPC32 && BROKEN_ON_SMP && PPC_MULTIPLATFORM
+	depends on 6xx && BROKEN_ON_SMP
 	select PPC_I8259
 	select PPC_I8259
 	select PPC_INDIRECT_PCI
 	select PPC_INDIRECT_PCI
 	select PPC_UDBG_16550
 	select PPC_UDBG_16550

+ 3 - 3
arch/powerpc/platforms/cell/Kconfig

@@ -23,7 +23,7 @@ config PPC_CELL_NATIVE
 
 
 config PPC_IBM_CELL_BLADE
 config PPC_IBM_CELL_BLADE
 	bool "IBM Cell Blade"
 	bool "IBM Cell Blade"
-	depends on PPC_MULTIPLATFORM && PPC64
+	depends on PPC64 && PPC_BOOK3S
 	select PPC_CELL_NATIVE
 	select PPC_CELL_NATIVE
 	select MMIO_NVRAM
 	select MMIO_NVRAM
 	select PPC_UDBG_16550
 	select PPC_UDBG_16550
@@ -31,7 +31,7 @@ config PPC_IBM_CELL_BLADE
 
 
 config PPC_CELLEB
 config PPC_CELLEB
 	bool "Toshiba's Cell Reference Set 'Celleb' Architecture"
 	bool "Toshiba's Cell Reference Set 'Celleb' Architecture"
-	depends on PPC_MULTIPLATFORM && PPC64
+	depends on PPC64 && PPC_BOOK3S
 	select PPC_CELL_NATIVE
 	select PPC_CELL_NATIVE
 	select HAS_TXX9_SERIAL
 	select HAS_TXX9_SERIAL
 	select PPC_UDBG_BEAT
 	select PPC_UDBG_BEAT
@@ -40,7 +40,7 @@ config PPC_CELLEB
 
 
 config PPC_CELL_QPACE
 config PPC_CELL_QPACE
 	bool "IBM Cell - QPACE"
 	bool "IBM Cell - QPACE"
-	depends on PPC_MULTIPLATFORM && PPC64
+	depends on PPC64 && PPC_BOOK3S
 	select PPC_CELL_COMMON
 	select PPC_CELL_COMMON
 
 
 config AXON_MSI
 config AXON_MSI

+ 1 - 1
arch/powerpc/platforms/chrp/Kconfig

@@ -1,6 +1,6 @@
 config PPC_CHRP
 config PPC_CHRP
 	bool "Common Hardware Reference Platform (CHRP) based machines"
 	bool "Common Hardware Reference Platform (CHRP) based machines"
-	depends on PPC_MULTIPLATFORM && PPC32
+	depends on 6xx
 	select MPIC
 	select MPIC
 	select PPC_I8259
 	select PPC_I8259
 	select PPC_INDIRECT_PCI
 	select PPC_INDIRECT_PCI

+ 1 - 1
arch/powerpc/platforms/embedded6xx/Kconfig

@@ -1,6 +1,6 @@
 config EMBEDDED6xx
 config EMBEDDED6xx
 	bool "Embedded 6xx/7xx/7xxx-based boards"
 	bool "Embedded 6xx/7xx/7xxx-based boards"
-	depends on PPC32 && BROKEN_ON_SMP && PPC_MULTIPLATFORM
+	depends on 6xx && BROKEN_ON_SMP
 
 
 config LINKSTATION
 config LINKSTATION
 	bool "Linkstation / Kurobox(HG) from Buffalo"
 	bool "Linkstation / Kurobox(HG) from Buffalo"

+ 1 - 1
arch/powerpc/platforms/iseries/Kconfig

@@ -1,6 +1,6 @@
 config PPC_ISERIES
 config PPC_ISERIES
 	bool "IBM Legacy iSeries"
 	bool "IBM Legacy iSeries"
-	depends on PPC_MULTIPLATFORM && PPC64
+	depends on PPC64 && PPC_BOOK3S
 	select PPC_INDIRECT_IO
 	select PPC_INDIRECT_IO
 	select PPC_PCI_CHOICE if EMBEDDED
 	select PPC_PCI_CHOICE if EMBEDDED
 
 

+ 1 - 1
arch/powerpc/platforms/maple/Kconfig

@@ -1,5 +1,5 @@
 config PPC_MAPLE
 config PPC_MAPLE
-	depends on PPC_MULTIPLATFORM && PPC64
+	depends on PPC64 && PPC_BOOK3S
 	bool "Maple 970FX Evaluation Board"
 	bool "Maple 970FX Evaluation Board"
 	select PCI
 	select PCI
 	select MPIC
 	select MPIC

+ 1 - 1
arch/powerpc/platforms/pasemi/Kconfig

@@ -1,5 +1,5 @@
 config PPC_PASEMI
 config PPC_PASEMI
-	depends on PPC_MULTIPLATFORM && PPC64
+	depends on PPC64 && PPC_BOOK3S
 	bool "PA Semi SoC-based platforms"
 	bool "PA Semi SoC-based platforms"
 	default n
 	default n
 	select MPIC
 	select MPIC

+ 1 - 1
arch/powerpc/platforms/powermac/Kconfig

@@ -1,6 +1,6 @@
 config PPC_PMAC
 config PPC_PMAC
 	bool "Apple PowerMac based machines"
 	bool "Apple PowerMac based machines"
-	depends on PPC_MULTIPLATFORM
+	depends on PPC_BOOK3S
 	select MPIC
 	select MPIC
 	select PCI
 	select PCI
 	select PPC_INDIRECT_PCI if PPC32
 	select PPC_INDIRECT_PCI if PPC32

+ 1 - 1
arch/powerpc/platforms/prep/Kconfig

@@ -1,6 +1,6 @@
 config PPC_PREP
 config PPC_PREP
 	bool "PowerPC Reference Platform (PReP) based machines"
 	bool "PowerPC Reference Platform (PReP) based machines"
-	depends on PPC_MULTIPLATFORM && PPC32 && BROKEN
+	depends on 6xx && BROKEN
 	select MPIC
 	select MPIC
 	select PPC_I8259
 	select PPC_I8259
 	select PPC_INDIRECT_PCI
 	select PPC_INDIRECT_PCI

+ 1 - 1
arch/powerpc/platforms/ps3/Kconfig

@@ -1,6 +1,6 @@
 config PPC_PS3
 config PPC_PS3
 	bool "Sony PS3"
 	bool "Sony PS3"
-	depends on PPC_MULTIPLATFORM && PPC64
+	depends on PPC64 && PPC_BOOK3S
 	select PPC_CELL
 	select PPC_CELL
 	select USB_ARCH_HAS_OHCI
 	select USB_ARCH_HAS_OHCI
 	select USB_OHCI_LITTLE_ENDIAN
 	select USB_OHCI_LITTLE_ENDIAN

+ 1 - 1
arch/powerpc/platforms/pseries/Kconfig

@@ -1,5 +1,5 @@
 config PPC_PSERIES
 config PPC_PSERIES
-	depends on PPC_MULTIPLATFORM && PPC64
+	depends on PPC64 && PPC_BOOK3S
 	bool "IBM pSeries & new (POWER5-based) iSeries"
 	bool "IBM pSeries & new (POWER5-based) iSeries"
 	select MPIC
 	select MPIC
 	select PPC_I8259
 	select PPC_I8259