powerpc/kconfig: Kill PPC_MULTIPLATFORM
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Tue, 10 Mar 2009 17:53:27 +0000 (17:53 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Wed, 11 Mar 2009 06:11:35 +0000 (17:11 +1100)
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>
23 files changed:
arch/powerpc/Kconfig
arch/powerpc/Kconfig.debug
arch/powerpc/kernel/Makefile
arch/powerpc/kernel/head_32.S
arch/powerpc/kernel/head_64.S
arch/powerpc/platforms/512x/Kconfig
arch/powerpc/platforms/52xx/Kconfig
arch/powerpc/platforms/82xx/Kconfig
arch/powerpc/platforms/83xx/Kconfig
arch/powerpc/platforms/86xx/Kconfig
arch/powerpc/platforms/Kconfig
arch/powerpc/platforms/Kconfig.cputype
arch/powerpc/platforms/amigaone/Kconfig
arch/powerpc/platforms/cell/Kconfig
arch/powerpc/platforms/chrp/Kconfig
arch/powerpc/platforms/embedded6xx/Kconfig
arch/powerpc/platforms/iseries/Kconfig
arch/powerpc/platforms/maple/Kconfig
arch/powerpc/platforms/pasemi/Kconfig
arch/powerpc/platforms/powermac/Kconfig
arch/powerpc/platforms/prep/Kconfig
arch/powerpc/platforms/ps3/Kconfig
arch/powerpc/platforms/pseries/Kconfig

index 5c10af6..ad6b1c0 100644 (file)
@@ -313,7 +313,7 @@ config ARCH_ENABLE_MEMORY_HOTREMOVE
 
 config KEXEC
        bool "kexec system call (EXPERIMENTAL)"
 
 config KEXEC
        bool "kexec system call (EXPERIMENTAL)"
-       depends on (PPC_PRPMC2800 || PPC_MULTIPLATFORM) && EXPERIMENTAL
+       depends on BOOK3S && EXPERIMENTAL
        help
          kexec is a system call that implements the ability to shutdown your
          current kernel, and to start another kernel.  It is like a reboot
        help
          kexec is a system call that implements the ability to shutdown your
          current kernel, and to start another kernel.  It is like a reboot
index 08f7cc0..22091bb 100644 (file)
@@ -129,7 +129,7 @@ config BDI_SWITCH
 
 config BOOTX_TEXT
        bool "Support for early boot text console (BootX or OpenFirmware only)"
 
 config BOOTX_TEXT
        bool "Support for early boot text console (BootX or OpenFirmware only)"
-       depends on PPC_OF && PPC_MULTIPLATFORM
+       depends on PPC_OF && PPC_BOOK3S
        help
          Say Y here to see progress messages from the boot firmware in text
          mode. Requires either BootX or Open Firmware.
        help
          Say Y here to see progress messages from the boot firmware in text
          mode. Requires either BootX or Open Firmware.
index dfec3d2..71901fb 100644 (file)
@@ -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_PPC64)            += dma-iommu.o iommu.o
 obj-$(CONFIG_KGDB)             += kgdb.o
 obj-$(CONFIG_PPC32)            += entry_32.o setup_32.o
 obj-$(CONFIG_PPC64)            += dma-iommu.o iommu.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_BOOTX_TEXT)       += btext.o
 obj-$(CONFIG_SMP)              += smp.o
 obj-$(CONFIG_MODULES)          += ppc_ksyms.o
 obj-$(CONFIG_BOOTX_TEXT)       += btext.o
 obj-$(CONFIG_SMP)              += smp.o
index a1c4cfd..f8c2e6b 100644 (file)
@@ -108,18 +108,21 @@ __start:
  * because OF may have I/O devices mapped into that area
  * (particularly on CHRP).
  */
  * because OF may have I/O devices mapped into that area
  * (particularly on CHRP).
  */
-#ifdef CONFIG_PPC_MULTIPLATFORM
        cmpwi   0,r5,0
        beq     1f
 
        cmpwi   0,r5,0
        beq     1f
 
+#ifdef CONFIG_PPC_OF_BOOT_TRAMPOLINE
        /* find out where we are now */
        bcl     20,31,$+4
 0:     mflr    r8                      /* r8 = runtime addr here */
        addis   r8,r8,(_stext - 0b)@ha
        addi    r8,r8,(_stext - 0b)@l   /* current runtime base addr */
        bl      prom_init
        /* find out where we are now */
        bcl     20,31,$+4
 0:     mflr    r8                      /* r8 = runtime addr here */
        addis   r8,r8,(_stext - 0b)@ha
        addi    r8,r8,(_stext - 0b)@l   /* current runtime base addr */
        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
index ebaedaf..50ef505 100644 (file)
@@ -1360,6 +1360,7 @@ _GLOBAL(__start_initialization_multiplatform)
        b       .__after_prom_start
 
 _INIT_STATIC(__boot_from_prom)
        b       .__after_prom_start
 
 _INIT_STATIC(__boot_from_prom)
+#ifdef CONFIG_PPC_OF_BOOT_TRAMPOLINE
        /* Save parameters */
        mr      r31,r3
        mr      r30,r4
        /* Save parameters */
        mr      r31,r3
        mr      r30,r4
@@ -1390,7 +1391,10 @@ _INIT_STATIC(__boot_from_prom)
        /* Do all of the interaction with OF client interface */
        mr      r8,r26
        bl      .prom_init
        /* Do all of the interaction with OF client interface */
        mr      r8,r26
        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
 
 _STATIC(__after_prom_start)
        trap
 
 _STATIC(__after_prom_start)
index 326852c..4dac9b0 100644 (file)
@@ -12,7 +12,7 @@ config PPC_MPC5121
 
 config MPC5121_ADS
        bool "Freescale MPC5121E ADS"
 
 config MPC5121_ADS
        bool "Freescale MPC5121E ADS"
-       depends on PPC_MULTIPLATFORM && PPC32
+       depends on 6xx
        select DEFAULT_UIMAGE
        select PPC_MPC5121
        select MPC5121_ADS_CPLD
        select DEFAULT_UIMAGE
        select PPC_MPC5121
        select MPC5121_ADS_CPLD
@@ -21,7 +21,7 @@ config MPC5121_ADS
 
 config MPC5121_GENERIC
        bool "Generic support for simple MPC5121 based boards"
 
 config MPC5121_GENERIC
        bool "Generic support for simple MPC5121 based boards"
-       depends on PPC_MULTIPLATFORM && PPC32
+       depends on 6xx
        select DEFAULT_UIMAGE
        select PPC_MPC5121
        help
        select DEFAULT_UIMAGE
        select PPC_MPC5121
        help
index 0465e5b..e0b9454 100644 (file)
@@ -1,6 +1,6 @@
 config PPC_MPC52xx
        bool "52xx-based boards"
 config PPC_MPC52xx
        bool "52xx-based boards"
-       depends on PPC_MULTIPLATFORM && PPC32
+       depends on 6xx
        select PPC_CLOCK
        select PPC_PCI_CHOICE
 
        select PPC_CLOCK
        select PPC_PCI_CHOICE
 
index 30f008b..7c7df40 100644 (file)
@@ -1,6 +1,6 @@
 menuconfig PPC_82xx
        bool "82xx-based boards (PQ II)"
 menuconfig PPC_82xx
        bool "82xx-based boards (PQ II)"
-       depends on 6xx && PPC_MULTIPLATFORM
+       depends on 6xx
 
 if PPC_82xx
 
 
 if PPC_82xx
 
index 83c664a..437d29a 100644 (file)
@@ -1,6 +1,6 @@
 menuconfig PPC_83xx
        bool "83xx-based boards"
 menuconfig PPC_83xx
        bool "83xx-based boards"
-       depends on 6xx && PPC_MULTIPLATFORM
+       depends on 6xx
        select PPC_UDBG_16550
        select PPC_PCI_CHOICE
        select FSL_PCI if PCI
        select PPC_UDBG_16550
        select PPC_PCI_CHOICE
        select FSL_PCI if PCI
index fa276c6..3492784 100644 (file)
@@ -1,7 +1,7 @@
 config PPC_86xx
 menuconfig PPC_86xx
        bool "86xx-based boards"
 config PPC_86xx
 menuconfig PPC_86xx
        bool "86xx-based boards"
-       depends on 6xx && PPC_MULTIPLATFORM
+       depends on 6xx
        select FSL_SOC
        select ALTIVEC
        help
        select FSL_SOC
        select ALTIVEC
        help
index b4ab372..68b9b8f 100644 (file)
@@ -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/iseries/Kconfig"
 source "arch/powerpc/platforms/chrp/Kconfig"
 source "arch/powerpc/platforms/pseries/Kconfig"
 source "arch/powerpc/platforms/iseries/Kconfig"
 source "arch/powerpc/platforms/chrp/Kconfig"
@@ -32,12 +23,24 @@ source "arch/powerpc/platforms/amigaone/Kconfig"
 
 config PPC_NATIVE
        bool
 
 config PPC_NATIVE
        bool
-       depends on PPC_MULTIPLATFORM
+       depends on 6xx || PPC64
        help
          Support for running natively on the hardware, i.e. without
          a hypervisor. This option is not user-selectable but should
          be selected by all platforms that need it.
 
        help
          Support for running natively on the hardware, i.e. without
          a hypervisor. This option is not user-selectable but should
          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
        bool "RTAS based debug console"
        depends on PPC_RTAS
 config UDBG_RTAS_CONSOLE
        bool "RTAS based debug console"
        depends on PPC_RTAS
@@ -71,7 +74,7 @@ config PPC_I8259
 
 config U3_DART
        bool
 
 config U3_DART
        bool
-       depends on PPC_MULTIPLATFORM && PPC64
+       depends on PPC64
        default n
 
 config PPC_RTAS
        default n
 
 config PPC_RTAS
@@ -188,7 +191,7 @@ config PPC601_SYNC_FIX
 
 config TAU
        bool "On-chip CPU temperature sensor support"
 
 config TAU
        bool "On-chip CPU temperature sensor support"
-       depends on CLASSIC32
+       depends on 6xx
        help
          G3 and G4 processors have an on-chip temperature sensor called the
          'Thermal Assist Unit (TAU)', which, in theory, can measure the on-die
        help
          G3 and G4 processors have an on-chip temperature sensor called the
          'Thermal Assist Unit (TAU)', which, in theory, can measure the on-die
index 9428c0e..9da795e 100644 (file)
@@ -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
        bool "Optimize for POWER4"
 config POWER4_ONLY
        bool "Optimize for POWER4"
-       depends on PPC64
+       depends on PPC64 && PPC_BOOK3S
        default n
        ---help---
          Cause the compiler to optimize for POWER4/POWER5/PPC970 processors.
        default n
        ---help---
          Cause the compiler to optimize for POWER4/POWER5/PPC970 processors.
@@ -68,16 +76,16 @@ config POWER4_ONLY
 
 config POWER3
        bool
 
 config POWER3
        bool
-       depends on PPC64
+       depends on PPC64 && PPC_BOOK3S
        default y if !POWER4_ONLY
 
 config POWER4
        default y if !POWER4_ONLY
 
 config POWER4
-       depends on PPC64
+       depends on PPC64 && PPC_BOOK3S
        def_bool y
 
 config TUNE_CELL
        bool "Optimize for Cell Broadband Engine"
        def_bool y
 
 config TUNE_CELL
        bool "Optimize for Cell Broadband Engine"
-       depends on PPC64
+       depends on PPC64 && PPC_BOOK3S
        help
          Cause the compiler to optimize for the PPE of the Cell Broadband
          Engine. This will make the code run considerably faster on Cell
        help
          Cause the compiler to optimize for the PPE of the Cell Broadband
          Engine. This will make the code run considerably faster on Cell
@@ -147,7 +155,7 @@ config PHYS_64BIT
 
 config ALTIVEC
        bool "AltiVec Support"
 
 config ALTIVEC
        bool "AltiVec Support"
-       depends on CLASSIC32 || POWER4
+       depends on 6xx || POWER4
        ---help---
          This option enables kernel support for the Altivec extensions to the
          PowerPC processor. The kernel currently supports saving and restoring
        ---help---
          This option enables kernel support for the Altivec extensions to the
          PowerPC processor. The kernel currently supports saving and restoring
index 9276a96..0224767 100644 (file)
@@ -1,6 +1,6 @@
 config AMIGAONE
        bool "Eyetech AmigaOne/MAI Teron"
 config AMIGAONE
        bool "Eyetech AmigaOne/MAI Teron"
-       depends on PPC32 && BROKEN_ON_SMP && PPC_MULTIPLATFORM
+       depends on 6xx && BROKEN_ON_SMP
        select PPC_I8259
        select PPC_INDIRECT_PCI
        select PPC_UDBG_16550
        select PPC_I8259
        select PPC_INDIRECT_PCI
        select PPC_UDBG_16550
index 17b9b19..40e24c3 100644 (file)
@@ -23,7 +23,7 @@ config PPC_CELL_NATIVE
 
 config PPC_IBM_CELL_BLADE
        bool "IBM Cell Blade"
 
 config PPC_IBM_CELL_BLADE
        bool "IBM Cell Blade"
-       depends on PPC_MULTIPLATFORM && PPC64
+       depends on PPC64 && PPC_BOOK3S
        select PPC_CELL_NATIVE
        select MMIO_NVRAM
        select PPC_UDBG_16550
        select PPC_CELL_NATIVE
        select MMIO_NVRAM
        select PPC_UDBG_16550
@@ -31,7 +31,7 @@ config PPC_IBM_CELL_BLADE
 
 config PPC_CELLEB
        bool "Toshiba's Cell Reference Set 'Celleb' Architecture"
 
 config PPC_CELLEB
        bool "Toshiba's Cell Reference Set 'Celleb' Architecture"
-       depends on PPC_MULTIPLATFORM && PPC64
+       depends on PPC64 && PPC_BOOK3S
        select PPC_CELL_NATIVE
        select HAS_TXX9_SERIAL
        select PPC_UDBG_BEAT
        select PPC_CELL_NATIVE
        select HAS_TXX9_SERIAL
        select PPC_UDBG_BEAT
@@ -40,7 +40,7 @@ config PPC_CELLEB
 
 config PPC_CELL_QPACE
        bool "IBM Cell - QPACE"
 
 config PPC_CELL_QPACE
        bool "IBM Cell - QPACE"
-       depends on PPC_MULTIPLATFORM && PPC64
+       depends on PPC64 && PPC_BOOK3S
        select PPC_CELL_COMMON
 
 config AXON_MSI
        select PPC_CELL_COMMON
 
 config AXON_MSI
index 22b4b4e..37d438b 100644 (file)
@@ -1,6 +1,6 @@
 config PPC_CHRP
        bool "Common Hardware Reference Platform (CHRP) based machines"
 config PPC_CHRP
        bool "Common Hardware Reference Platform (CHRP) based machines"
-       depends on PPC_MULTIPLATFORM && PPC32
+       depends on 6xx
        select MPIC
        select PPC_I8259
        select PPC_INDIRECT_PCI
        select MPIC
        select PPC_I8259
        select PPC_INDIRECT_PCI
index 4f9f818..291ac9d 100644 (file)
@@ -1,6 +1,6 @@
 config EMBEDDED6xx
        bool "Embedded 6xx/7xx/7xxx-based boards"
 config EMBEDDED6xx
        bool "Embedded 6xx/7xx/7xxx-based boards"
-       depends on PPC32 && BROKEN_ON_SMP && PPC_MULTIPLATFORM
+       depends on 6xx && BROKEN_ON_SMP
 
 config LINKSTATION
        bool "Linkstation / Kurobox(HG) from Buffalo"
 
 config LINKSTATION
        bool "Linkstation / Kurobox(HG) from Buffalo"
index 7ddd0a2..647e877 100644 (file)
@@ -1,6 +1,6 @@
 config PPC_ISERIES
        bool "IBM Legacy iSeries"
 config PPC_ISERIES
        bool "IBM Legacy iSeries"
-       depends on PPC_MULTIPLATFORM && PPC64
+       depends on PPC64 && PPC_BOOK3S
        select PPC_INDIRECT_IO
        select PPC_PCI_CHOICE if EMBEDDED
 
        select PPC_INDIRECT_IO
        select PPC_PCI_CHOICE if EMBEDDED
 
index a6467a5..1ea621a 100644 (file)
@@ -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"
        select PCI
        select MPIC
        bool "Maple 970FX Evaluation Board"
        select PCI
        select MPIC
index 348e061..a2aeb32 100644 (file)
@@ -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"
        default n
        select MPIC
        bool "PA Semi SoC-based platforms"
        default n
        select MPIC
index 055990c..1e1a087 100644 (file)
@@ -1,6 +1,6 @@
 config PPC_PMAC
        bool "Apple PowerMac based machines"
 config PPC_PMAC
        bool "Apple PowerMac based machines"
-       depends on PPC_MULTIPLATFORM
+       depends on PPC_BOOK3S
        select MPIC
        select PCI
        select PPC_INDIRECT_PCI if PPC32
        select MPIC
        select PCI
        select PPC_INDIRECT_PCI if PPC32
index 29d4112..bf8330e 100644 (file)
@@ -1,6 +1,6 @@
 config PPC_PREP
        bool "PowerPC Reference Platform (PReP) based machines"
 config PPC_PREP
        bool "PowerPC Reference Platform (PReP) based machines"
-       depends on PPC_MULTIPLATFORM && PPC32 && BROKEN
+       depends on 6xx && BROKEN
        select MPIC
        select PPC_I8259
        select PPC_INDIRECT_PCI
        select MPIC
        select PPC_I8259
        select PPC_INDIRECT_PCI
index 920cf7a..204ae5c 100644 (file)
@@ -1,6 +1,6 @@
 config PPC_PS3
        bool "Sony PS3"
 config PPC_PS3
        bool "Sony PS3"
-       depends on PPC_MULTIPLATFORM && PPC64
+       depends on PPC64 && PPC_BOOK3S
        select PPC_CELL
        select USB_ARCH_HAS_OHCI
        select USB_OHCI_LITTLE_ENDIAN
        select PPC_CELL
        select USB_ARCH_HAS_OHCI
        select USB_OHCI_LITTLE_ENDIAN
index 095ff6f..c0e6ec2 100644 (file)
@@ -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"
        select MPIC
        select PPC_I8259
        bool "IBM pSeries & new (POWER5-based) iSeries"
        select MPIC
        select PPC_I8259