linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [patch 00/13] CPU selection Kconfig cleanup, take 3
@ 2007-06-12 16:30 arnd
  2007-06-12 16:30 ` [patch 01/13] powerpc: split out CPU specific options into a new Kconfig file arnd
                   ` (13 more replies)
  0 siblings, 14 replies; 31+ messages in thread
From: arnd @ 2007-06-12 16:30 UTC (permalink / raw)
  To: paulus; +Cc: linuxppc-dev, Stephen Rothwell

Next try:

I've removed the patch that moves CONFIG_PPC64 into the CPU selection
now, and split out the unrelated bug fix noticed by Stephen.

During testing, I found a few more bugs, for which I include patches
as well this time. Building without PCI support seems to be not well
tested in general.

I also had a few bug fixes to make 8xx build, but it became clear
that it's pretty pointless in the current code as there are too
many bugs in there. There is not even a single 8xx configuration
that can build in arch/powerpc, it should probably just be marked
as broken.

	Arnd <><

^ permalink raw reply	[flat|nested] 31+ messages in thread

* [patch 01/13] powerpc: split out CPU specific options into a new Kconfig file
  2007-06-12 16:30 [patch 00/13] CPU selection Kconfig cleanup, take 3 arnd
@ 2007-06-12 16:30 ` arnd
  2007-06-12 16:30 ` [patch 02/13] powerpc: move 82xx/83xx/86xx Kconfig options to platform selection arnd
                   ` (12 subsequent siblings)
  13 siblings, 0 replies; 31+ messages in thread
From: arnd @ 2007-06-12 16:30 UTC (permalink / raw)
  To: paulus; +Cc: linuxppc-dev, Stephen Rothwell

A lot of the options in arch/powerpc/Kconfig deal with the CPU menu,
and my next patches add more to them. Moving them to a new
arch/powerpc/platforms/Kconfig.cputype file makes it easier to
follow.

There are no functional changes in here.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Index: linux-2.6/arch/powerpc/Kconfig
===================================================================
--- linux-2.6.orig/arch/powerpc/Kconfig
+++ linux-2.6/arch/powerpc/Kconfig
@@ -4,12 +4,7 @@
 
 mainmenu "Linux/PowerPC Kernel Configuration"
 
-config PPC64
-	bool "64-bit kernel"
-	default n
-	help
-	  This option selects whether a 32-bit or a 64-bit kernel
-	  will be built.
+source "arch/powerpc/platforms/Kconfig.cputype"
 
 config PPC_PM_NEEDS_RTC_LIB
 	bool
@@ -132,123 +127,6 @@ config PPC64_SWSUSP
 	depends on PPC64 && (BROKEN || (PPC_PMAC64 && EXPERIMENTAL))
 	default y
 
-menu "Processor support"
-choice
-	prompt "Processor Type"
-	depends on PPC32
-	default 6xx
-
-config CLASSIC32
-	bool "52xx/6xx/7xx/74xx"
-	select PPC_FPU
-	select 6xx
-	help
-	  There are four families of PowerPC chips supported.  The more common
-	  types (601, 603, 604, 740, 750, 7400), the Motorola embedded
-	  versions (821, 823, 850, 855, 860, 52xx, 82xx, 83xx), the AMCC
-	  embedded versions (403 and 405) and the high end 64 bit Power
-	  processors (POWER 3, POWER4, and IBM PPC970 also known as G5).
-
-	  This option is the catch-all for 6xx types, including some of the
-	  embedded versions.  Unless there is see an option for the specific
-	  chip family you are using, you want this option.
-	  
-	  You do not want this if you are building a kernel for a 64 bit
-	  IBM RS/6000 or an Apple G5, choose 6xx.
-	  
-	  If unsure, select this option
-	  
-	  Note that the kernel runs in 32-bit mode even on 64-bit chips.
-
-config PPC_82xx
-	bool "Freescale 82xx"
-	select 6xx
-	select PPC_FPU
-
-config PPC_83xx
-	bool "Freescale 83xx"
-	select 6xx
-	select FSL_SOC
-	select 83xx
-	select PPC_FPU
-	select WANT_DEVICE_TREE
-
-config PPC_85xx
-	bool "Freescale 85xx"
-	select E500
-	select FSL_SOC
-	select 85xx
-	select WANT_DEVICE_TREE
-
-config PPC_86xx
-	bool "Freescale 86xx"
-	select 6xx
-	select FSL_SOC
-	select FSL_PCIE
-	select PPC_FPU
-	select ALTIVEC
-	help
-	  The Freescale E600 SoCs have 74xx cores.
-
-config PPC_8xx
-	bool "Freescale 8xx"
-	select FSL_SOC
-	select 8xx
-
-config 40x
-	bool "AMCC 40x"
-	select PPC_DCR_NATIVE
-
-config 44x
-	bool "AMCC 44x"
-	select PPC_DCR_NATIVE
-	select WANT_DEVICE_TREE
-
-config E200
-	bool "Freescale e200"
-
-endchoice
-
-config POWER4_ONLY
-	bool "Optimize for POWER4"
-	depends on PPC64
-	default n
-	---help---
-	  Cause the compiler to optimize for POWER4/POWER5/PPC970 processors.
-	  The resulting binary will not work on POWER3 or RS64 processors
-	  when compiled with binutils 2.15 or later.
-
-config POWER3
-	bool
-	depends on PPC64
-	default y if !POWER4_ONLY
-
-config POWER4
-	depends on PPC64
-	def_bool y
-
-config 6xx
-	bool
-
-# this is temp to handle compat with arch=ppc
-config 8xx
-	bool
-
-# this is temp to handle compat with arch=ppc
-config 83xx
-	bool
-
-# this is temp to handle compat with arch=ppc
-config 85xx
-	bool
-
-config E500
-	bool
-
-config PPC_FPU
-	bool
-	default y if PPC64
-
 config PPC_DCR_NATIVE
 	bool
 	default n
@@ -267,134 +145,6 @@ config PPC_OF_PLATFORM_PCI
 	depends on PPC64 # not supported on 32 bits yet
 	default n
 
-config 4xx
-	bool
-	depends on 40x || 44x
-	default y
-
-config BOOKE
-	bool
-	depends on E200 || E500 || 44x
-	default y
-
-config FSL_BOOKE
-	bool
-	depends on E200 || E500
-	default y
-
-config PTE_64BIT
-	bool
-	depends on 44x || E500
-	default y if 44x
-	default y if E500 && PHYS_64BIT
-
-config PHYS_64BIT
-	bool 'Large physical address support' if E500
-	depends on 44x || E500
-	select RESOURCES_64BIT
-	default y if 44x
-	---help---
-	  This option enables kernel support for larger than 32-bit physical
-	  addresses.  This features is not be available on all e500 cores.
-
-	  If in doubt, say N here.
-
-config ALTIVEC
-	bool "AltiVec Support"
-	depends on CLASSIC32 || POWER4
-	---help---
-	  This option enables kernel support for the Altivec extensions to the
-	  PowerPC processor. The kernel currently supports saving and restoring
-	  altivec registers, and turning on the 'altivec enable' bit so user
-	  processes can execute altivec instructions.
-
-	  This option is only usefully if you have a processor that supports
-	  altivec (G4, otherwise known as 74xx series), but does not have
-	  any affect on a non-altivec cpu (it does, however add code to the
-	  kernel).
-
-	  If in doubt, say Y here.
-
-config SPE
-	bool "SPE Support"
-	depends on E200 || E500
-	default y
-	---help---
-	  This option enables kernel support for the Signal Processing
-	  Extensions (SPE) to the PowerPC processor. The kernel currently
-	  supports saving and restoring SPE registers, and turning on the
-	  'spe enable' bit so user processes can execute SPE instructions.
-
-	  This option is only useful if you have a processor that supports
-	  SPE (e500, otherwise known as 85xx series), but does not have any
-	  effect on a non-spe cpu (it does, however add code to the kernel).
-
-	  If in doubt, say Y here.
-
-config PPC_STD_MMU
-	bool
-	depends on 6xx || POWER3 || POWER4 || PPC64
-	default y
-
-config PPC_STD_MMU_32
-	def_bool y
-	depends on PPC_STD_MMU && PPC32
-
-config PPC_MM_SLICES
-	bool
-	default y if HUGETLB_PAGE
-	default n
-
-config VIRT_CPU_ACCOUNTING
-	bool "Deterministic task and CPU time accounting"
-	depends on PPC64
-	default y
-	help
-	  Select this option to enable more accurate task and CPU time
-	  accounting.  This is done by reading a CPU counter on each
-	  kernel entry and exit and on transitions within the kernel
-	  between system, softirq and hardirq state, so there is a
-	  small performance impact.  This also enables accounting of
-	  stolen time on logically-partitioned systems running on
-	  IBM POWER5-based machines.
-
-	  If in doubt, say Y here.
-
-config SMP
-	depends on PPC_STD_MMU
-	bool "Symmetric multi-processing support"
-	---help---
-	  This enables support for systems with more than one CPU. If you have
-	  a system with only one CPU, say N. If you have a system with more
-	  than one CPU, say Y.  Note that the kernel does not currently
-	  support SMP machines with 603/603e/603ev or PPC750 ("G3") processors
-	  since they have inadequate hardware support for multiprocessor
-	  operation.
-
-	  If you say N here, the kernel will run on single and multiprocessor
-	  machines, but will use only one CPU of a multiprocessor machine. If
-	  you say Y here, the kernel will run on single-processor machines.
-	  On a single-processor machine, the kernel will run faster if you say
-	  N here.
-
-	  If you don't know what to do here, say N.
-
-config NR_CPUS
-	int "Maximum number of CPUs (2-128)"
-	range 2 128
-	depends on SMP
-	default "32" if PPC64
-	default "4"
-
-config NOT_COHERENT_CACHE
-	bool
-	depends on 4xx || 8xx || E200
-	default y
-
-config CONFIG_CHECK_CACHE_COHERENCY
-	bool
-endmenu
-
 source "init/Kconfig"
 
 source "arch/powerpc/platforms/Kconfig"
Index: linux-2.6/arch/powerpc/platforms/Kconfig.cputype
===================================================================
--- /dev/null
+++ linux-2.6/arch/powerpc/platforms/Kconfig.cputype
@@ -0,0 +1,252 @@
+config PPC64
+	bool "64-bit kernel"
+	default n
+	help
+	  This option selects whether a 32-bit or a 64-bit kernel
+	  will be built.
+
+menu "Processor support"
+choice
+	prompt "Processor Type"
+	depends on PPC32
+	default 6xx
+
+config CLASSIC32
+	bool "52xx/6xx/7xx/74xx"
+	select PPC_FPU
+	select 6xx
+	help
+	  There are four families of PowerPC chips supported.  The more common
+	  types (601, 603, 604, 740, 750, 7400), the Motorola embedded
+	  versions (821, 823, 850, 855, 860, 52xx, 82xx, 83xx), the AMCC
+	  embedded versions (403 and 405) and the high end 64 bit Power
+	  processors (POWER 3, POWER4, and IBM PPC970 also known as G5).
+
+	  This option is the catch-all for 6xx types, including some of the
+	  embedded versions.  Unless there is see an option for the specific
+	  chip family you are using, you want this option.
+
+	  You do not want this if you are building a kernel for a 64 bit
+	  IBM RS/6000 or an Apple G5, choose 6xx.
+
+	  If unsure, select this option
+
+	  Note that the kernel runs in 32-bit mode even on 64-bit chips.
+
+config PPC_82xx
+	bool "Freescale 82xx"
+	select 6xx
+	select PPC_FPU
+
+config PPC_83xx
+	bool "Freescale 83xx"
+	select 6xx
+	select FSL_SOC
+	select 83xx
+	select PPC_FPU
+	select WANT_DEVICE_TREE
+
+config PPC_85xx
+	bool "Freescale 85xx"
+	select E500
+	select FSL_SOC
+	select 85xx
+	select WANT_DEVICE_TREE
+
+config PPC_86xx
+	bool "Freescale 86xx"
+	select 6xx
+	select FSL_SOC
+	select FSL_PCIE
+	select PPC_FPU
+	select ALTIVEC
+	help
+	  The Freescale E600 SoCs have 74xx cores.
+
+config PPC_8xx
+	bool "Freescale 8xx"
+	select FSL_SOC
+	select 8xx
+
+config 40x
+	bool "AMCC 40x"
+	select PPC_DCR_NATIVE
+
+config 44x
+	bool "AMCC 44x"
+	select PPC_DCR_NATIVE
+	select WANT_DEVICE_TREE
+
+config E200
+	bool "Freescale e200"
+
+endchoice
+
+config POWER4_ONLY
+	bool "Optimize for POWER4"
+	depends on PPC64
+	default n
+	---help---
+	  Cause the compiler to optimize for POWER4/POWER5/PPC970 processors.
+	  The resulting binary will not work on POWER3 or RS64 processors
+	  when compiled with binutils 2.15 or later.
+
+config POWER3
+	bool
+	depends on PPC64
+	default y if !POWER4_ONLY
+
+config POWER4
+	depends on PPC64
+	def_bool y
+
+config 6xx
+	bool
+
+# this is temp to handle compat with arch=ppc
+config 8xx
+	bool
+
+# this is temp to handle compat with arch=ppc
+config 83xx
+	bool
+
+# this is temp to handle compat with arch=ppc
+config 85xx
+	bool
+
+config E500
+	bool
+
+config PPC_FPU
+	bool
+	default y if PPC64
+
+config 4xx
+	bool
+	depends on 40x || 44x
+	default y
+
+config BOOKE
+	bool
+	depends on E200 || E500 || 44x
+	default y
+
+config FSL_BOOKE
+	bool
+	depends on E200 || E500
+	default y
+
+config PTE_64BIT
+	bool
+	depends on 44x || E500
+	default y if 44x
+	default y if E500 && PHYS_64BIT
+
+config PHYS_64BIT
+	bool 'Large physical address support' if E500
+	depends on 44x || E500
+	select RESOURCES_64BIT
+	default y if 44x
+	---help---
+	  This option enables kernel support for larger than 32-bit physical
+	  addresses.  This features is not be available on all e500 cores.
+
+	  If in doubt, say N here.
+
+config ALTIVEC
+	bool "AltiVec Support"
+	depends on CLASSIC32 || POWER4
+	---help---
+	  This option enables kernel support for the Altivec extensions to the
+	  PowerPC processor. The kernel currently supports saving and restoring
+	  altivec registers, and turning on the 'altivec enable' bit so user
+	  processes can execute altivec instructions.
+
+	  This option is only usefully if you have a processor that supports
+	  altivec (G4, otherwise known as 74xx series), but does not have
+	  any affect on a non-altivec cpu (it does, however add code to the
+	  kernel).
+
+	  If in doubt, say Y here.
+
+config SPE
+	bool "SPE Support"
+	depends on E200 || E500
+	default y
+	---help---
+	  This option enables kernel support for the Signal Processing
+	  Extensions (SPE) to the PowerPC processor. The kernel currently
+	  supports saving and restoring SPE registers, and turning on the
+	  'spe enable' bit so user processes can execute SPE instructions.
+
+	  This option is only useful if you have a processor that supports
+	  SPE (e500, otherwise known as 85xx series), but does not have any
+	  effect on a non-spe cpu (it does, however add code to the kernel).
+
+	  If in doubt, say Y here.
+
+config PPC_STD_MMU
+	bool
+	depends on 6xx || POWER3 || POWER4 || PPC64
+	default y
+
+config PPC_STD_MMU_32
+	def_bool y
+	depends on PPC_STD_MMU && PPC32
+
+config PPC_MM_SLICES
+	bool
+	default y if HUGETLB_PAGE
+	default n
+
+config VIRT_CPU_ACCOUNTING
+	bool "Deterministic task and CPU time accounting"
+	depends on PPC64
+	default y
+	help
+	  Select this option to enable more accurate task and CPU time
+	  accounting.  This is done by reading a CPU counter on each
+	  kernel entry and exit and on transitions within the kernel
+	  between system, softirq and hardirq state, so there is a
+	  small performance impact.  This also enables accounting of
+	  stolen time on logically-partitioned systems running on
+	  IBM POWER5-based machines.
+
+	  If in doubt, say Y here.
+
+config SMP
+	depends on PPC_STD_MMU
+	bool "Symmetric multi-processing support"
+	---help---
+	  This enables support for systems with more than one CPU. If you have
+	  a system with only one CPU, say N. If you have a system with more
+	  than one CPU, say Y.  Note that the kernel does not currently
+	  support SMP machines with 603/603e/603ev or PPC750 ("G3") processors
+	  since they have inadequate hardware support for multiprocessor
+	  operation.
+
+	  If you say N here, the kernel will run on single and multiprocessor
+	  machines, but will use only one CPU of a multiprocessor machine. If
+	  you say Y here, the kernel will run on single-processor machines.
+	  On a single-processor machine, the kernel will run faster if you say
+	  N here.
+
+	  If you don't know what to do here, say N.
+
+config NR_CPUS
+	int "Maximum number of CPUs (2-128)"
+	range 2 128
+	depends on SMP
+	default "32" if PPC64
+	default "4"
+
+config NOT_COHERENT_CACHE
+	bool
+	depends on 4xx || 8xx || E200
+	default y
+
+config CONFIG_CHECK_CACHE_COHERENCY
+	bool
+
+endmenu

--

^ permalink raw reply	[flat|nested] 31+ messages in thread

* [patch 02/13] powerpc: move 82xx/83xx/86xx Kconfig options to platform selection
  2007-06-12 16:30 [patch 00/13] CPU selection Kconfig cleanup, take 3 arnd
  2007-06-12 16:30 ` [patch 01/13] powerpc: split out CPU specific options into a new Kconfig file arnd
@ 2007-06-12 16:30 ` arnd
  2007-06-12 16:30 ` [patch 03/13] powerpc: rename add_bridge to avoid namespace clashes arnd
                   ` (11 subsequent siblings)
  13 siblings, 0 replies; 31+ messages in thread
From: arnd @ 2007-06-12 16:30 UTC (permalink / raw)
  To: paulus; +Cc: linuxppc-dev, Stephen Rothwell

The cores used in the MPC82xx/83xx/86xx embedded controllers are very similar
to those in the 32 bit general-purpose processors, so it makes sense to
treat them as the same CPU family.

Choosing between the embedded platforms and the multiplatform code is
now done in the platform menu, but functionally everything stays the
same.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Index: linux-2.6/arch/powerpc/platforms/Kconfig
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/Kconfig
+++ linux-2.6/arch/powerpc/platforms/Kconfig
@@ -2,7 +2,7 @@ menu "Platform support"
 
 choice
 	prompt "Machine type"
-	depends on PPC64 || CLASSIC32
+	depends on PPC64 || 6xx
 	default PPC_MULTIPLATFORM
 
 config PPC_MULTIPLATFORM
@@ -23,8 +23,32 @@ config APUS
 	  Select APUS if configuring for a PowerUP Amiga.
 	  More information is available at:
 	  <http://linux-apus.sourceforge.net/>.
+
+config PPC_82xx
+	bool "Freescale 82xx"
+	depends on 6xx
+
+config PPC_83xx
+	bool "Freescale 83xx"
+	depends on 6xx
+	select FSL_SOC
+	select 83xx
+	select WANT_DEVICE_TREE
+
+config PPC_86xx
+	bool "Freescale 86xx"
+	depends on 6xx
+	select FSL_SOC
+	select FSL_PCIE
+	select ALTIVEC
+	help
+	  The Freescale E600 SoCs have 74xx cores.
 endchoice
 
+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"
Index: linux-2.6/arch/powerpc/platforms/Kconfig.cputype
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/Kconfig.cputype
+++ linux-2.6/arch/powerpc/platforms/Kconfig.cputype
@@ -10,41 +10,20 @@ choice
 	prompt "Processor Type"
 	depends on PPC32
 	default 6xx
-
-config CLASSIC32
-	bool "52xx/6xx/7xx/74xx"
-	select PPC_FPU
-	select 6xx
 	help
-	  There are four families of PowerPC chips supported.  The more common
-	  types (601, 603, 604, 740, 750, 7400), the Motorola embedded
-	  versions (821, 823, 850, 855, 860, 52xx, 82xx, 83xx), the AMCC
-	  embedded versions (403 and 405) and the high end 64 bit Power
-	  processors (POWER 3, POWER4, and IBM PPC970 also known as G5).
-
-	  This option is the catch-all for 6xx types, including some of the
-	  embedded versions.  Unless there is see an option for the specific
-	  chip family you are using, you want this option.
-
-	  You do not want this if you are building a kernel for a 64 bit
-	  IBM RS/6000 or an Apple G5, choose 6xx.
-
-	  If unsure, select this option
-
-	  Note that the kernel runs in 32-bit mode even on 64-bit chips.
-
-config PPC_82xx
-	bool "Freescale 82xx"
-	select 6xx
-	select PPC_FPU
+	  There are five families of 32 bit PowerPC chips supported.
+	  The most common ones are the desktop and server CPUs (601, 603,
+	  604, 740, 750, 74xx) CPUs from Freescale and IBM, with their
+	  embedded 52xx/82xx/83xx/86xx counterparts.
+	  The other embeeded parts, namely 4xx, 8xx, e200 (55xx) and e500
+	  (85xx) each form a family of their own that is not compatible
+	  with the others.
 
-config PPC_83xx
-	bool "Freescale 83xx"
-	select 6xx
-	select FSL_SOC
-	select 83xx
+	  If unsure, select 52xx/6xx/7xx/74xx/82xx/83xx/86xx.
+
+config 6xx
+	bool "52xx/6xx/7xx/74xx/82xx/83xx/86xx"
 	select PPC_FPU
-	select WANT_DEVICE_TREE
 
 config PPC_85xx
 	bool "Freescale 85xx"
@@ -53,16 +32,6 @@ config PPC_85xx
 	select 85xx
 	select WANT_DEVICE_TREE
 
-config PPC_86xx
-	bool "Freescale 86xx"
-	select 6xx
-	select FSL_SOC
-	select FSL_PCIE
-	select PPC_FPU
-	select ALTIVEC
-	help
-	  The Freescale E600 SoCs have 74xx cores.
-
 config PPC_8xx
 	bool "Freescale 8xx"
 	select FSL_SOC

--

^ permalink raw reply	[flat|nested] 31+ messages in thread

* [patch 03/13] powerpc: rename add_bridge to avoid namespace clashes
  2007-06-12 16:30 [patch 00/13] CPU selection Kconfig cleanup, take 3 arnd
  2007-06-12 16:30 ` [patch 01/13] powerpc: split out CPU specific options into a new Kconfig file arnd
  2007-06-12 16:30 ` [patch 02/13] powerpc: move 82xx/83xx/86xx Kconfig options to platform selection arnd
@ 2007-06-12 16:30 ` arnd
  2007-06-12 16:30 ` [patch 04/13] powerpc: multiplatformize 8{2,3,6}xx configuration arnd
                   ` (10 subsequent siblings)
  13 siblings, 0 replies; 31+ messages in thread
From: arnd @ 2007-06-12 16:30 UTC (permalink / raw)
  To: paulus; +Cc: linuxppc-dev, Stephen Rothwell

Many platforms currently define their own add_bridge function, some
of them globally. This breaks some multiplatform configurations.
Prefixing each of these functions with the platform name avoids
this problem.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Index: linux-2.6/arch/powerpc/platforms/82xx/mpc82xx_ads.c
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/82xx/mpc82xx_ads.c
+++ linux-2.6/arch/powerpc/platforms/82xx/mpc82xx_ads.c
@@ -515,7 +515,7 @@ static int m82xx_pci_exclude_device(u_ch
 		return PCIBIOS_SUCCESSFUL;
 }
 
-void __init add_bridge(struct device_node *np)
+static void __init mpc82xx_add_bridge(struct device_node *np)
 {
 	int len;
 	struct pci_controller *hose;
@@ -584,7 +584,7 @@ static void __init mpc82xx_ads_setup_arc
 #ifdef CONFIG_PCI
 	ppc_md.pci_exclude_device = m82xx_pci_exclude_device;
 	for (np = NULL; (np = of_find_node_by_type(np, "pci")) != NULL;)
-		add_bridge(np);
+		mpc82xx_add_bridge(np);
 
 	of_node_put(np);
 #endif
Index: linux-2.6/arch/powerpc/platforms/83xx/mpc836x_mds.c
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/83xx/mpc836x_mds.c
+++ linux-2.6/arch/powerpc/platforms/83xx/mpc836x_mds.c
@@ -86,7 +86,7 @@ static void __init mpc836x_mds_setup_arc
 
 #ifdef CONFIG_PCI
 	for (np = NULL; (np = of_find_node_by_type(np, "pci")) != NULL;)
-		add_bridge(np);
+		mpc83xx_add_bridge(np);
 	ppc_md.pci_exclude_device = mpc83xx_exclude_device;
 #endif
 
Index: linux-2.6/arch/powerpc/platforms/83xx/mpc83xx.h
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/83xx/mpc83xx.h
+++ linux-2.6/arch/powerpc/platforms/83xx/mpc83xx.h
@@ -27,7 +27,7 @@
  * mpc83xx_* files. Mostly for use by mpc83xx_setup
  */
 
-extern int add_bridge(struct device_node *dev);
+extern int mpc83xx_add_bridge(struct device_node *dev);
 extern int mpc83xx_exclude_device(u_char bus, u_char devfn);
 extern void mpc83xx_restart(char *cmd);
 extern long mpc83xx_time_init(void);
Index: linux-2.6/arch/powerpc/platforms/83xx/mpc8313_rdb.c
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/83xx/mpc8313_rdb.c
+++ linux-2.6/arch/powerpc/platforms/83xx/mpc8313_rdb.c
@@ -49,7 +49,7 @@ static void __init mpc8313_rdb_setup_arc
 
 #ifdef CONFIG_PCI
 	for (np = NULL; (np = of_find_node_by_type(np, "pci")) != NULL;)
-		add_bridge(np);
+		mpc83xx_add_bridge(np);
 
 	ppc_md.pci_exclude_device = mpc83xx_exclude_device;
 #endif
Index: linux-2.6/arch/powerpc/platforms/83xx/mpc832x_mds.c
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/83xx/mpc832x_mds.c
+++ linux-2.6/arch/powerpc/platforms/83xx/mpc832x_mds.c
@@ -80,7 +80,7 @@ static void __init mpc832x_sys_setup_arc
 
 #ifdef CONFIG_PCI
 	for (np = NULL; (np = of_find_node_by_type(np, "pci")) != NULL;)
-		add_bridge(np);
+		mpc83xx_add_bridge(np);
 	ppc_md.pci_exclude_device = mpc83xx_exclude_device;
 #endif
 
Index: linux-2.6/arch/powerpc/platforms/83xx/mpc832x_rdb.c
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/83xx/mpc832x_rdb.c
+++ linux-2.6/arch/powerpc/platforms/83xx/mpc832x_rdb.c
@@ -53,7 +53,7 @@ static void __init mpc832x_rdb_setup_arc
 
 #ifdef CONFIG_PCI
 	for (np = NULL; (np = of_find_node_by_type(np, "pci")) != NULL;)
-		add_bridge(np);
+		mpc83xx_add_bridge(np);
 
 	ppc_md.pci_exclude_device = mpc83xx_exclude_device;
 #endif
Index: linux-2.6/arch/powerpc/platforms/83xx/mpc834x_itx.c
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/83xx/mpc834x_itx.c
+++ linux-2.6/arch/powerpc/platforms/83xx/mpc834x_itx.c
@@ -59,7 +59,7 @@ static void __init mpc834x_itx_setup_arc
 
 #ifdef CONFIG_PCI
 	for (np = NULL; (np = of_find_node_by_type(np, "pci")) != NULL;)
-		add_bridge(np);
+		mpc83xx_add_bridge(np);
 
 	ppc_md.pci_exclude_device = mpc83xx_exclude_device;
 #endif
Index: linux-2.6/arch/powerpc/platforms/83xx/mpc834x_mds.c
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/83xx/mpc834x_mds.c
+++ linux-2.6/arch/powerpc/platforms/83xx/mpc834x_mds.c
@@ -129,7 +129,7 @@ static void __init mpc834x_mds_setup_arc
 
 #ifdef CONFIG_PCI
 	for (np = NULL; (np = of_find_node_by_type(np, "pci")) != NULL;)
-		add_bridge(np);
+		mpc83xx_add_bridge(np);
 
 	ppc_md.pci_exclude_device = mpc83xx_exclude_device;
 #endif
Index: linux-2.6/arch/powerpc/platforms/83xx/pci.c
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/83xx/pci.c
+++ linux-2.6/arch/powerpc/platforms/83xx/pci.c
@@ -45,7 +45,7 @@ int mpc83xx_exclude_device(u_char bus, u
 	return PCIBIOS_SUCCESSFUL;
 }
 
-int __init add_bridge(struct device_node *dev)
+int __init mpc83xx_add_bridge(struct device_node *dev)
 {
 	int len;
 	struct pci_controller *hose;
Index: linux-2.6/arch/powerpc/platforms/85xx/mpc85xx.h
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/85xx/mpc85xx.h
+++ linux-2.6/arch/powerpc/platforms/85xx/mpc85xx.h
@@ -15,4 +15,4 @@
  */
 
 extern void mpc85xx_restart(char *);
-extern int add_bridge(struct device_node *dev);
+extern int mpc85xx_add_bridge(struct device_node *dev);
Index: linux-2.6/arch/powerpc/platforms/85xx/mpc85xx_ads.c
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/85xx/mpc85xx_ads.c
+++ linux-2.6/arch/powerpc/platforms/85xx/mpc85xx_ads.c
@@ -241,7 +241,7 @@ static void __init mpc85xx_ads_setup_arc
 
 #ifdef CONFIG_PCI
 	for (np = NULL; (np = of_find_node_by_type(np, "pci")) != NULL;)
-		add_bridge(np);
+		mpc85xx_add_bridge(np);
 	ppc_md.pci_exclude_device = mpc85xx_exclude_device;
 #endif
 }
Index: linux-2.6/arch/powerpc/platforms/85xx/mpc85xx_cds.c
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/85xx/mpc85xx_cds.c
+++ linux-2.6/arch/powerpc/platforms/85xx/mpc85xx_cds.c
@@ -257,7 +257,7 @@ static void __init mpc85xx_cds_setup_arc
 
 #ifdef CONFIG_PCI
 	for (np = NULL; (np = of_find_node_by_type(np, "pci")) != NULL;)
-		add_bridge(np);
+		mpc85xx_add_bridge(np);
 
 	ppc_md.pcibios_fixup = mpc85xx_cds_pcibios_fixup;
 	ppc_md.pci_exclude_device = mpc85xx_exclude_device;
Index: linux-2.6/arch/powerpc/platforms/85xx/mpc85xx_mds.c
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/85xx/mpc85xx_mds.c
+++ linux-2.6/arch/powerpc/platforms/85xx/mpc85xx_mds.c
@@ -100,7 +100,7 @@ static void __init mpc85xx_mds_setup_arc
 
 #ifdef CONFIG_PCI
 	for (np = NULL; (np = of_find_node_by_type(np, "pci")) != NULL;) {
-		add_bridge(np);
+		mpc85xx_add_bridge(np);
 	}
 	of_node_put(np);
 #endif
Index: linux-2.6/arch/powerpc/platforms/85xx/pci.c
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/85xx/pci.c
+++ linux-2.6/arch/powerpc/platforms/85xx/pci.c
@@ -36,7 +36,7 @@
 int mpc85xx_pci2_busno = 0;
 
 #ifdef CONFIG_PCI
-int __init add_bridge(struct device_node *dev)
+int __init mpc85xx_add_bridge(struct device_node *dev)
 {
 	int len;
 	struct pci_controller *hose;
Index: linux-2.6/arch/powerpc/platforms/86xx/mpc86xx.h
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/86xx/mpc86xx.h
+++ linux-2.6/arch/powerpc/platforms/86xx/mpc86xx.h
@@ -15,7 +15,7 @@
  * mpc86xx_* files. Mostly for use by mpc86xx_setup().
  */
 
-extern int add_bridge(struct device_node *dev);
+extern int mpc86xx_add_bridge(struct device_node *dev);
 
 extern int mpc86xx_exclude_device(u_char bus, u_char devfn);
 
Index: linux-2.6/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
+++ linux-2.6/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
@@ -364,7 +364,7 @@ mpc86xx_hpcn_setup_arch(void)
 
 #ifdef CONFIG_PCI
 	for (np = NULL; (np = of_find_node_by_type(np, "pci")) != NULL;)
-		add_bridge(np);
+		mpc86xx_add_bridge(np);
 
 	ppc_md.pci_exclude_device = mpc86xx_exclude_device;
 #endif
Index: linux-2.6/arch/powerpc/platforms/86xx/pci.c
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/86xx/pci.c
+++ linux-2.6/arch/powerpc/platforms/86xx/pci.c
@@ -148,7 +148,7 @@ int mpc86xx_exclude_device(u_char bus, u
 	return PCIBIOS_SUCCESSFUL;
 }
 
-int __init add_bridge(struct device_node *dev)
+int __init mpc86xx_add_bridge(struct device_node *dev)
 {
 	int len;
 	struct pci_controller *hose;
Index: linux-2.6/arch/powerpc/platforms/embedded6xx/linkstation.c
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/embedded6xx/linkstation.c
+++ linux-2.6/arch/powerpc/platforms/embedded6xx/linkstation.c
@@ -54,7 +54,7 @@ static struct mtd_partition linkstation_
 	},
 };
 
-static int __init add_bridge(struct device_node *dev)
+static int __init linkstation_add_bridge(struct device_node *dev)
 {
 	int len;
 	struct pci_controller *hose;
@@ -92,7 +92,7 @@ static void __init linkstation_setup_arc
 
 	/* Lookup PCI host bridges */
 	for (np = NULL; (np = of_find_node_by_type(np, "pci")) != NULL;)
-		add_bridge(np);
+		linkstation_add_bridge(np);
 
 	printk(KERN_INFO "BUFFALO Network Attached Storage Series\n");
 	printk(KERN_INFO "(C) 2002-2005 BUFFALO INC.\n");
Index: linux-2.6/arch/powerpc/platforms/maple/pci.c
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/maple/pci.c
+++ linux-2.6/arch/powerpc/platforms/maple/pci.c
@@ -444,7 +444,7 @@ static void __init setup_u3_ht(struct pc
 	u3_ht = hose;
 }
 
-static int __init add_bridge(struct device_node *dev)
+static int __init maple_add_bridge(struct device_node *dev)
 {
 	int len;
 	struct pci_controller *hose;
@@ -558,7 +558,7 @@ void __init maple_pci_init(void)
 			continue;
 		if ((of_device_is_compatible(np, "u4-pcie") ||
 		     of_device_is_compatible(np, "u3-agp")) &&
-		    add_bridge(np) == 0)
+		    maple_add_bridge(np) == 0)
 			of_node_get(np);
 
 		if (of_device_is_compatible(np, "u3-ht")) {
@@ -570,7 +570,7 @@ void __init maple_pci_init(void)
 
 	/* Now setup the HyperTransport host if we found any
 	 */
-	if (ht && add_bridge(ht) != 0)
+	if (ht && maple_add_bridge(ht) != 0)
 		of_node_put(ht);
 
         /*
Index: linux-2.6/arch/powerpc/platforms/pasemi/pci.c
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/pasemi/pci.c
+++ linux-2.6/arch/powerpc/platforms/pasemi/pci.c
@@ -132,7 +132,7 @@ static void __init setup_pa_pxp(struct p
 	hose->cfg_data = ioremap(0xe0000000, 0x10000000);
 }
 
-static int __init add_bridge(struct device_node *dev)
+static int __init pas_add_bridge(struct device_node *dev)
 {
 	struct pci_controller *hose;
 
@@ -185,7 +185,7 @@ void __init pas_pci_init(void)
 	}
 
 	for (np = NULL; (np = of_get_next_child(root, np)) != NULL;)
-		if (np->name && !strcmp(np->name, "pxp") && !add_bridge(np))
+		if (np->name && !strcmp(np->name, "pxp") && !pas_add_bridge(np))
 			of_node_get(np);
 
 	of_node_put(root);
Index: linux-2.6/arch/powerpc/platforms/powermac/pci.c
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/powermac/pci.c
+++ linux-2.6/arch/powerpc/platforms/powermac/pci.c
@@ -35,8 +35,6 @@
 #define DBG(x...)
 #endif
 
-static int add_bridge(struct device_node *dev);
-
 /* XXX Could be per-controller, but I don't think we risk anything by
  * assuming we won't have both UniNorth and Bandit */
 static int has_uninorth;
@@ -897,7 +895,7 @@ static void __init setup_u3_ht(struct pc
  * "pci" (a MPC106) and no bandit or chaos bridges, and contrariwise,
  * if we have one or more bandit or chaos bridges, we don't have a MPC106.
  */
-static int __init add_bridge(struct device_node *dev)
+static int __init pmac_add_bridge(struct device_node *dev)
 {
 	int len;
 	struct pci_controller *hose;
@@ -1036,7 +1034,7 @@ void __init pmac_pci_init(void)
 		if (strcmp(np->name, "bandit") == 0
 		    || strcmp(np->name, "chaos") == 0
 		    || strcmp(np->name, "pci") == 0) {
-			if (add_bridge(np) == 0)
+			if (pmac_add_bridge(np) == 0)
 				of_node_get(np);
 		}
 		if (strcmp(np->name, "ht") == 0) {
@@ -1050,7 +1048,7 @@ void __init pmac_pci_init(void)
 	/* Probe HT last as it relies on the agp resources to be already
 	 * setup
 	 */
-	if (ht && add_bridge(ht) != 0)
+	if (ht && pmac_add_bridge(ht) != 0)
 		of_node_put(ht);
 
 	/*

--

^ permalink raw reply	[flat|nested] 31+ messages in thread

* [patch 04/13] powerpc: multiplatformize 8{2,3,6}xx configuration
  2007-06-12 16:30 [patch 00/13] CPU selection Kconfig cleanup, take 3 arnd
                   ` (2 preceding siblings ...)
  2007-06-12 16:30 ` [patch 03/13] powerpc: rename add_bridge to avoid namespace clashes arnd
@ 2007-06-12 16:30 ` arnd
  2007-06-12 16:30 ` [patch 05/13] powerpc: multiplatformize embedded6xx configuration arnd
                   ` (9 subsequent siblings)
  13 siblings, 0 replies; 31+ messages in thread
From: arnd @ 2007-06-12 16:30 UTC (permalink / raw)
  To: paulus; +Cc: linuxppc-dev, Stephen Rothwell

All platforms based on 6xx compatible cores should be able to
coexisting in a single kernel image and do all necessary configuration
based on the device tree.

This moves the missing 8{2,3,6}xx platforms under
CONFIG_PPC_MULTIPLATFORM to make that possible to configure.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Index: linux-2.6/arch/powerpc/platforms/82xx/Kconfig
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/82xx/Kconfig
+++ linux-2.6/arch/powerpc/platforms/82xx/Kconfig
@@ -1,10 +1,10 @@
-choice
-	prompt "Machine Type"
-	depends on PPC_82xx
-	default MPC82xx_ADS
+config PPC_82xx
+	bool "Freescale 82xx"
+	depends on PPC_MULTIPLATFORM && 6xx
 
 config MPC82xx_ADS
 	bool "Freescale MPC82xx ADS"
+	depends on PPC_82xx
 	select DEFAULT_UIMAGE
 	select PQ2ADS
 	select 8272
@@ -13,8 +13,6 @@ config MPC82xx_ADS
 	help
 	This option enables support for the MPC8272 ADS board
 
-endchoice
-
 config PQ2ADS
 	bool
 	default n
Index: linux-2.6/arch/powerpc/platforms/83xx/Kconfig
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/83xx/Kconfig
+++ linux-2.6/arch/powerpc/platforms/83xx/Kconfig
@@ -1,16 +1,20 @@
-choice
-	prompt "Machine Type"
-	depends on PPC_83xx
-	default MPC834x_MDS
+config PPC_83xx
+	bool "Freescale 83xx"
+	depends on PPC_MULTIPLATFORM && 6xx
+	select FSL_SOC
+	select 83xx
+	select WANT_DEVICE_TREE
 
 config MPC8313_RDB
 	bool "Freescale MPC8313 RDB"
+	depends on PPC_83xx
 	select DEFAULT_UIMAGE
 	help
 	  This option enables support for the MPC8313 RDB board.
 
 config MPC832x_MDS
 	bool "Freescale MPC832x MDS"
+	depends on PPC_83xx
 	select DEFAULT_UIMAGE
 	select QUICC_ENGINE
 	help
@@ -18,6 +22,7 @@ config MPC832x_MDS
 
 config MPC832x_RDB
 	bool "Freescale MPC832x RDB"
+	depends on PPC_83xx
 	select DEFAULT_UIMAGE
 	select QUICC_ENGINE
 	help
@@ -25,6 +30,7 @@ config MPC832x_RDB
 
 config MPC834x_MDS
 	bool "Freescale MPC834x MDS"
+	depends on PPC_83xx
 	select DEFAULT_UIMAGE
 	help
 	  This option enables support for the MPC 834x MDS evaluation board.
@@ -36,6 +42,7 @@ config MPC834x_MDS
 
 config MPC834x_ITX
 	bool "Freescale MPC834x ITX"
+	depends on PPC_83xx
 	select DEFAULT_UIMAGE
 	help
 	  This option enables support for the MPC 834x ITX evaluation board.
@@ -45,13 +52,12 @@ config MPC834x_ITX
 
 config MPC836x_MDS
 	bool "Freescale MPC836x MDS"
+	depends on PPC_83xx
 	select DEFAULT_UIMAGE
 	select QUICC_ENGINE
 	help
 	  This option enables support for the MPC836x MDS Processor Board.
 
-endchoice
-
 config PPC_MPC831x
 	bool
 	select PPC_UDBG_16550
Index: linux-2.6/arch/powerpc/platforms/86xx/Kconfig
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/86xx/Kconfig
+++ linux-2.6/arch/powerpc/platforms/86xx/Kconfig
@@ -1,17 +1,20 @@
-choice
-	prompt "Machine Type"
-	depends on PPC_86xx
-	default MPC8641_HPCN
+config PPC_86xx
+	bool "Freescale 86xx"
+	depends on PPC_MULTIPLATFORM && 6xx
+	select FSL_SOC
+	select FSL_PCIE
+	select ALTIVEC
+	help
+	  The Freescale E600 SoCs have 74xx cores.
 
 config MPC8641_HPCN
 	bool "Freescale MPC8641 HPCN"
+	depends on PPC_86xx
 	select PPC_I8259
 	select DEFAULT_UIMAGE
 	help
 	  This option enables support for the MPC8641 HPCN board.
 
-endchoice
-
 config MPC8641
 	bool
 	select PPC_INDIRECT_PCI
Index: linux-2.6/arch/powerpc/platforms/Kconfig
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/Kconfig
+++ linux-2.6/arch/powerpc/platforms/Kconfig
@@ -24,25 +24,6 @@ config APUS
 	  More information is available at:
 	  <http://linux-apus.sourceforge.net/>.
 
-config PPC_82xx
-	bool "Freescale 82xx"
-	depends on 6xx
-
-config PPC_83xx
-	bool "Freescale 83xx"
-	depends on 6xx
-	select FSL_SOC
-	select 83xx
-	select WANT_DEVICE_TREE
-
-config PPC_86xx
-	bool "Freescale 86xx"
-	depends on 6xx
-	select FSL_SOC
-	select FSL_PCIE
-	select ALTIVEC
-	help
-	  The Freescale E600 SoCs have 74xx cores.
 endchoice
 
 config CLASSIC32

--

^ permalink raw reply	[flat|nested] 31+ messages in thread

* [patch 05/13] powerpc: multiplatformize embedded6xx configuration
  2007-06-12 16:30 [patch 00/13] CPU selection Kconfig cleanup, take 3 arnd
                   ` (3 preceding siblings ...)
  2007-06-12 16:30 ` [patch 04/13] powerpc: multiplatformize 8{2,3,6}xx configuration arnd
@ 2007-06-12 16:30 ` arnd
  2007-06-12 16:30 ` [patch 06/13] powerpc: multiplatformize 52xx configuration arnd
                   ` (8 subsequent siblings)
  13 siblings, 0 replies; 31+ messages in thread
From: arnd @ 2007-06-12 16:30 UTC (permalink / raw)
  To: paulus; +Cc: linuxppc-dev, Stephen Rothwell

The existing embedded 6xx platforms will happily coexist
with each other in a single kernel if you let them.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
Index: linux-2.6/arch/powerpc/platforms/Kconfig
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/Kconfig
+++ linux-2.6/arch/powerpc/platforms/Kconfig
@@ -12,10 +12,6 @@ config PPC_MULTIPLATFORM
 	  RS/6000 machine, an Apple machine, or a PReP, CHRP,
 	  Maple or Cell-based machine.
 
-config EMBEDDED6xx
-	bool "Embedded 6xx/7xx/7xxx-based board"
-	depends on PPC32 && (BROKEN||BROKEN_ON_SMP)
-
 config APUS
 	bool "Amiga-APUS"
 	depends on PPC32 && BROKEN
@@ -33,7 +29,6 @@ config CLASSIC32
 source "arch/powerpc/platforms/pseries/Kconfig"
 source "arch/powerpc/platforms/iseries/Kconfig"
 source "arch/powerpc/platforms/chrp/Kconfig"
-source "arch/powerpc/platforms/52xx/Kconfig"
 source "arch/powerpc/platforms/powermac/Kconfig"
 source "arch/powerpc/platforms/prep/Kconfig"
 source "arch/powerpc/platforms/maple/Kconfig"
@@ -42,6 +37,7 @@ source "arch/powerpc/platforms/celleb/Kc
 source "arch/powerpc/platforms/ps3/Kconfig"
 source "arch/powerpc/platforms/cell/Kconfig"
 source "arch/powerpc/platforms/8xx/Kconfig"
+source "arch/powerpc/platforms/52xx/Kconfig"
 source "arch/powerpc/platforms/82xx/Kconfig"
 source "arch/powerpc/platforms/83xx/Kconfig"
 source "arch/powerpc/platforms/85xx/Kconfig"
Index: linux-2.6/arch/powerpc/platforms/embedded6xx/Kconfig
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/embedded6xx/Kconfig
+++ linux-2.6/arch/powerpc/platforms/embedded6xx/Kconfig
@@ -1,9 +1,10 @@
-choice
-	prompt "Machine Type"
-	depends on EMBEDDED6xx
+config EMBEDDED6xx
+	bool "Embedded 6xx"
 
 config LINKSTATION
 	bool "Linkstation / Kurobox(HG) from Buffalo"
+	depends on EMBEDDED6xx
+	depends on (BROKEN || BROKEN_ON_SMP)
 	select MPIC
 	select FSL_SOC
 	select PPC_UDBG_16550 if SERIAL_8250
@@ -17,6 +18,8 @@ config LINKSTATION
 
 config MPC7448HPC2
 	bool "Freescale MPC7448HPC2(Taiga)"
+	depends on EMBEDDED6xx
+	depends on (BROKEN || BROKEN_ON_SMP)
 	select TSI108_BRIDGE
 	select DEFAULT_UIMAGE
 	select PPC_UDBG_16550
@@ -26,6 +29,7 @@ config MPC7448HPC2
 
 config PPC_HOLLY
 	bool "PPC750GX/CL with TSI10x bridge (Hickory/Holly)"
+	depends on EMBEDDED6xx
 	select TSI108_BRIDGE
 	select PPC_UDBG_16550
 	help
@@ -34,12 +38,12 @@ config PPC_HOLLY
 
 config PPC_PRPMC2800
 	bool "Motorola-PrPMC2800"
+	depends on EMBEDDED6xx
 	select MV64X60
 	select NOT_COHERENT_CACHE
 	select WANT_DEVICE_TREE
 	help
 	  This option enables support for the Motorola PrPMC2800 board
-endchoice
 
 config TSI108_BRIDGE
 	bool

--

^ permalink raw reply	[flat|nested] 31+ messages in thread

* [patch 06/13] powerpc: multiplatformize 52xx configuration
  2007-06-12 16:30 [patch 00/13] CPU selection Kconfig cleanup, take 3 arnd
                   ` (4 preceding siblings ...)
  2007-06-12 16:30 ` [patch 05/13] powerpc: multiplatformize embedded6xx configuration arnd
@ 2007-06-12 16:30 ` arnd
  2007-06-12 16:30 ` [patch 07/13] powerpc: multiplatformize 85xx configuration arnd
                   ` (7 subsequent siblings)
  13 siblings, 0 replies; 31+ messages in thread
From: arnd @ 2007-06-12 16:30 UTC (permalink / raw)
  To: paulus; +Cc: linuxppc-dev, Stephen Rothwell

Efika and Lite5200 can both coexist with other 6xx compatible
configurations, so change the Kconfig allow selecting both
at the same time.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Index: linux-2.6/arch/powerpc/platforms/52xx/Kconfig
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/52xx/Kconfig
+++ linux-2.6/arch/powerpc/platforms/52xx/Kconfig
@@ -1,11 +1,26 @@
 config PPC_MPC52xx
-	bool
+	bool "Freescale 52xx"
 	select FSL_SOC
+
+config PPC_EFIKA
+	bool "bPlan Efika 5k2. MPC5200B based computer"
+	depends on PPC_MULTIPLATFORM && PPC32
+	depends on PPC_MPC52xx
+	select PPC_RTAS
+	select RTAS_PROC
+	select PPC_NATIVE
+	default n
+
+config PPC_LITE5200
+	bool "Freescale Lite5200 Eval Board"
+	depends on PPC_MULTIPLATFORM && PPC32
+	depends on PPC_MPC52xx
+	select PPC_MPC5200
 	default n
 
 config PPC_MPC5200
 	bool
-	select PPC_MPC52xx
+	depends on PPC_MPC52xx
 	default n
 
 config PPC_MPC5200_BUGFIX
@@ -18,19 +33,4 @@ config PPC_MPC5200_BUGFIX
 
 	  It is safe to say 'Y' here
 
-config PPC_EFIKA
-	bool "bPlan Efika 5k2. MPC5200B based computer"
-	depends on PPC_MULTIPLATFORM && PPC32
-	select PPC_RTAS
-	select RTAS_PROC
-	select PPC_MPC52xx
-	select PPC_NATIVE
-	default n
-
-config PPC_LITE5200
-	bool "Freescale Lite5200 Eval Board"
-	depends on PPC_MULTIPLATFORM && PPC32
-	select PPC_MPC5200
-	default n
-
 

--

^ permalink raw reply	[flat|nested] 31+ messages in thread

* [patch 07/13] powerpc: multiplatformize 85xx configuration
  2007-06-12 16:30 [patch 00/13] CPU selection Kconfig cleanup, take 3 arnd
                   ` (5 preceding siblings ...)
  2007-06-12 16:30 ` [patch 06/13] powerpc: multiplatformize 52xx configuration arnd
@ 2007-06-12 16:30 ` arnd
  2007-06-12 16:30 ` [patch 08/13] powerpc: autoselect PPC_MULTIPLATFORM arnd
                   ` (6 subsequent siblings)
  13 siblings, 0 replies; 31+ messages in thread
From: arnd @ 2007-06-12 16:30 UTC (permalink / raw)
  To: paulus; +Cc: linuxppc-dev, Stephen Rothwell

The various e500 platforms can be built in a single kernel,
as long as a small conflict in the header files is resolved.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Index: linux-2.6/arch/powerpc/platforms/85xx/Kconfig
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/85xx/Kconfig
+++ linux-2.6/arch/powerpc/platforms/85xx/Kconfig
@@ -1,28 +1,27 @@
-choice
-	prompt "Machine Type"
-	depends on PPC_85xx
-	default MPC8540_ADS
-
 config MPC8540_ADS
 	bool "Freescale MPC8540 ADS"
+	depends on PPC_85xx
 	select DEFAULT_UIMAGE
 	help
 	  This option enables support for the MPC 8540 ADS board
 
 config MPC8560_ADS
 	bool "Freescale MPC8560 ADS"
+	depends on PPC_85xx
 	select DEFAULT_UIMAGE
 	help
 	  This option enables support for the MPC 8560 ADS board
 
 config MPC85xx_CDS
 	bool "Freescale MPC85xx CDS"
+	depends on PPC_85xx
 	select DEFAULT_UIMAGE
 	help
 	  This option enables support for the MPC85xx CDS board
 
 config MPC85xx_MDS
 	bool "Freescale MPC85xx MDS"
+	depends on PPC_85xx
 	select DEFAULT_UIMAGE
 #	select QUICC_ENGINE
 	help
@@ -30,12 +29,11 @@ config MPC85xx_MDS
 
 config MPC8544_DS
 	bool "Freescale MPC8544 DS"
+	depends on PPC_85xx
 	select DEFAULT_UIMAGE
 	help
 	  This option enables support for the MPC8544 DS board
 
-endchoice
-
 config MPC8540
 	bool
 	select PPC_UDBG_16550
Index: linux-2.6/arch/powerpc/platforms/85xx/mpc85xx_ads.h
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/85xx/mpc85xx_ads.h
+++ linux-2.6/arch/powerpc/platforms/85xx/mpc85xx_ads.h
@@ -29,14 +29,14 @@
 #define MPC85xx_CPM_OFFSET	(0x80000)
 
 #define CPM_MAP_ADDR		(get_immrbase() + MPC85xx_CPM_OFFSET)
-#define CPM_IRQ_OFFSET		60
+#define MPC85xxADS_CPM_IRQ_OFFSET		60
 
-#define SIU_INT_SMC1		((uint)0x04+CPM_IRQ_OFFSET)
-#define SIU_INT_SMC2		((uint)0x05+CPM_IRQ_OFFSET)
-#define SIU_INT_SCC1		((uint)0x28+CPM_IRQ_OFFSET)
-#define SIU_INT_SCC2		((uint)0x29+CPM_IRQ_OFFSET)
-#define SIU_INT_SCC3		((uint)0x2a+CPM_IRQ_OFFSET)
-#define SIU_INT_SCC4		((uint)0x2b+CPM_IRQ_OFFSET)
+#define SIU_INT_SMC1		((uint)0x04+MPC85xxADS_CPM_IRQ_OFFSET)
+#define SIU_INT_SMC2		((uint)0x05+MPC85xxADS_CPM_IRQ_OFFSET)
+#define SIU_INT_SCC1		((uint)0x28+MPC85xxADS_CPM_IRQ_OFFSET)
+#define SIU_INT_SCC2		((uint)0x29+MPC85xxADS_CPM_IRQ_OFFSET)
+#define SIU_INT_SCC3		((uint)0x2a+MPC85xxADS_CPM_IRQ_OFFSET)
+#define SIU_INT_SCC4		((uint)0x2b+MPC85xxADS_CPM_IRQ_OFFSET)
 
 /* FCC1 Clock Source Configuration.  These can be
  * redefined in the board specific file.
Index: linux-2.6/arch/powerpc/platforms/85xx/mpc85xx_cds.h
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/85xx/mpc85xx_cds.h
+++ linux-2.6/arch/powerpc/platforms/85xx/mpc85xx_cds.h
@@ -36,7 +36,7 @@
 #define PIRQ1A			MPC85xx_IRQ_EXT11
 
 #define NR_8259_INTS		16
-#define CPM_IRQ_OFFSET		NR_8259_INTS
+#define MPC85xxCDS_CPM_IRQ_OFFSET		NR_8259_INTS
 
 #define MPC85xx_OPENPIC_IRQ_OFFSET	80
 

--

^ permalink raw reply	[flat|nested] 31+ messages in thread

* [patch 08/13] powerpc: autoselect PPC_MULTIPLATFORM
  2007-06-12 16:30 [patch 00/13] CPU selection Kconfig cleanup, take 3 arnd
                   ` (6 preceding siblings ...)
  2007-06-12 16:30 ` [patch 07/13] powerpc: multiplatformize 85xx configuration arnd
@ 2007-06-12 16:30 ` arnd
  2007-06-12 16:30 ` [patch 09/13] powerpc: autoselect optimal -mcpu= flag by platform arnd
                   ` (5 subsequent siblings)
  13 siblings, 0 replies; 31+ messages in thread
From: arnd @ 2007-06-12 16:30 UTC (permalink / raw)
  To: paulus; +Cc: linuxppc-dev, Stephen Rothwell

The multiplatform option has become pointless since all
platforms types are multiplatform by definition.
Keep the symbol around in case some code still uses it.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Index: linux-2.6/arch/powerpc/platforms/Kconfig
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/Kconfig
+++ linux-2.6/arch/powerpc/platforms/Kconfig
@@ -1,30 +1,12 @@
 menu "Platform support"
 
-choice
-	prompt "Machine type"
-	depends on PPC64 || 6xx
-	default PPC_MULTIPLATFORM
-
 config PPC_MULTIPLATFORM
-	bool "Generic desktop/server/laptop"
-	help
-	  Select this option if configuring for an IBM pSeries or
-	  RS/6000 machine, an Apple machine, or a PReP, CHRP,
-	  Maple or Cell-based machine.
-
-config APUS
-	bool "Amiga-APUS"
-	depends on PPC32 && BROKEN
-	help
-	  Select APUS if configuring for a PowerUP Amiga.
-	  More information is available at:
-	  <http://linux-apus.sourceforge.net/>.
-
-endchoice
+	def_bool y
+	depends on 6xx || PPC64
 
 config CLASSIC32
 	def_bool y
-	depends on 6xx && PPC_MULTIPLATFORM
+	depends on 6xx
 
 source "arch/powerpc/platforms/pseries/Kconfig"
 source "arch/powerpc/platforms/iseries/Kconfig"
@@ -43,6 +25,7 @@ source "arch/powerpc/platforms/83xx/Kcon
 source "arch/powerpc/platforms/85xx/Kconfig"
 source "arch/powerpc/platforms/86xx/Kconfig"
 source "arch/powerpc/platforms/embedded6xx/Kconfig"
+source "arch/powerpc/platforms/apus/Kconfig"
 source "arch/powerpc/platforms/44x/Kconfig"
 #source "arch/powerpc/platforms/4xx/Kconfig
 
Index: linux-2.6/arch/powerpc/platforms/apus/Kconfig
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/apus/Kconfig
+++ linux-2.6/arch/powerpc/platforms/apus/Kconfig
@@ -1,3 +1,12 @@
+config APUS
+	bool "Amiga-APUS"
+	depends on PPC32 && BROKEN
+	help
+	  Select APUS if configuring for a PowerUP Amiga.
+	  More information is available at:
+	  <http://linux-apus.sourceforge.net/>.
+
+if APUS
 
 config AMIGA
 	bool
@@ -128,3 +137,5 @@ source "drivers/zorro/Kconfig"
 config PCI_PERMEDIA
 	bool "PCI for Permedia2"
 	depends on !4xx && !8xx && APUS
+
+endif

--

^ permalink raw reply	[flat|nested] 31+ messages in thread

* [patch 09/13] powerpc: autoselect optimal -mcpu= flag by platform
  2007-06-12 16:30 [patch 00/13] CPU selection Kconfig cleanup, take 3 arnd
                   ` (7 preceding siblings ...)
  2007-06-12 16:30 ` [patch 08/13] powerpc: autoselect PPC_MULTIPLATFORM arnd
@ 2007-06-12 16:30 ` arnd
  2007-06-12 16:30 ` [patch 10/13] powerpc: mpc82xx_ads build fix arnd
                   ` (4 subsequent siblings)
  13 siblings, 0 replies; 31+ messages in thread
From: arnd @ 2007-06-12 16:30 UTC (permalink / raw)
  To: paulus; +Cc: linuxppc-dev, Stephen Rothwell

We can choose the -mcpu= gcc flags for compiling the kernel
based on the platform that we build for. In case of multiplatform
kernels, this chooses a setting for a common subset.

When using a platform type that can use different CPUs, a
new option CONFIG_PPC_CPU_SELECTION can be enabled to select
more specifically which CPUs the kernel will be able to
run on.

This replaces the CONFIG_POWER4_ONLY option with an much more
generic approach.

Also, when CONFIG_PPC_CPU_SELECTION is set, it is now possible
to select a CPU to tune for by means of the -mtune= option.

I tried to be very careful when coding the specific rules into
the Kconfig language, but it would be good to have a few
people sanity-checking them.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Index: linux-2.6/arch/powerpc/platforms/4xx/Kconfig
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/4xx/Kconfig
+++ linux-2.6/arch/powerpc/platforms/4xx/Kconfig
@@ -87,6 +87,7 @@ endmenu
 # 40x specific CPU modules, selected based on the board above.
 config NP405H
 	bool
+	select CPU_405
 	#depends on ASH
 
 # OAK doesn't exist but wanted to keep this around for any future 403GCX boards
@@ -94,6 +95,7 @@ config 403GCX
 	bool
 	#depends on OAK
 	select IBM405_ERR51
+	select CPU_403
 
 config 405GP
 	bool
@@ -102,19 +104,23 @@ config 405GP
 
 config 405EP
 	bool
+	select CPU_405
 
 config 405GPR
 	bool
+	select CPU_405
 
 config VIRTEX_II_PRO
 	bool
 	select IBM405_ERR77
 	select IBM405_ERR51
+	select CPU_405
 
 config STB03xxx
 	bool
 	select IBM405_ERR77
 	select IBM405_ERR51
+	select CPU_405
 
 # 40x errata/workaround config symbols, selected by the CPU models above
 
@@ -168,20 +174,25 @@ config 440EP
 	bool
 	select PPC_FPU
 	select IBM440EP_ERR42
+	select CPU_440
 
 config 440GP
 	bool
 	select IBM_NEW_EMAC_ZMII
+	select CPU_440
 
 config 440GX
 	bool
+	select CPU_440
 
 config 440SP
 	bool
+	select CPU_440
 
 config 440A
 	bool
 	depends on 440GX
+	select CPU_440
 	default y
 
 # 44x errata/workaround config symbols, selected by the CPU models above
Index: linux-2.6/arch/powerpc/platforms/52xx/Kconfig
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/52xx/Kconfig
+++ linux-2.6/arch/powerpc/platforms/52xx/Kconfig
@@ -1,6 +1,7 @@
 config PPC_MPC52xx
 	bool "Freescale 52xx"
 	select FSL_SOC
+	depends on 6xx
 
 config PPC_EFIKA
 	bool "bPlan Efika 5k2. MPC5200B based computer"
@@ -9,6 +10,7 @@ config PPC_EFIKA
 	select PPC_RTAS
 	select RTAS_PROC
 	select PPC_NATIVE
+	select CPU_603e
 	default n
 
 config PPC_LITE5200
@@ -16,6 +18,7 @@ config PPC_LITE5200
 	depends on PPC_MULTIPLATFORM && PPC32
 	depends on PPC_MPC52xx
 	select PPC_MPC5200
+	select CPU_603e
 	default n
 
 config PPC_MPC5200
Index: linux-2.6/arch/powerpc/platforms/82xx/Kconfig
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/82xx/Kconfig
+++ linux-2.6/arch/powerpc/platforms/82xx/Kconfig
@@ -1,6 +1,7 @@
 config PPC_82xx
 	bool "Freescale 82xx"
 	depends on PPC_MULTIPLATFORM && 6xx
+	select CPU_603e
 
 config MPC82xx_ADS
 	bool "Freescale MPC82xx ADS"
Index: linux-2.6/arch/powerpc/platforms/83xx/Kconfig
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/83xx/Kconfig
+++ linux-2.6/arch/powerpc/platforms/83xx/Kconfig
@@ -4,6 +4,7 @@ config PPC_83xx
 	select FSL_SOC
 	select 83xx
 	select WANT_DEVICE_TREE
+	select CPU_603e
 
 config MPC8313_RDB
 	bool "Freescale MPC8313 RDB"
Index: linux-2.6/arch/powerpc/platforms/86xx/Kconfig
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/86xx/Kconfig
+++ linux-2.6/arch/powerpc/platforms/86xx/Kconfig
@@ -4,6 +4,7 @@ config PPC_86xx
 	select FSL_SOC
 	select FSL_PCIE
 	select ALTIVEC
+	select CPU_74xx
 	help
 	  The Freescale E600 SoCs have 74xx cores.
 
Index: linux-2.6/arch/powerpc/platforms/Kconfig.cputype
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/Kconfig.cputype
+++ linux-2.6/arch/powerpc/platforms/Kconfig.cputype
@@ -51,9 +51,232 @@ config E200
 
 endchoice
 
-config POWER4_ONLY
-	bool "Optimize for POWER4"
+config PPC_CPU_SELECTION
+	bool "Advanced CPU selection"
+
+config CPU_DEFAULT
+	bool "Don't specify -mcpu= to gcc" if PPC_CPU_SELECTION
+
+config CPU_RS64
+	bool "RS64" if PPC_CPU_SELECTION
+	depends on PPC64
+	default y if PPC_PSERIES || PPC_ISERIES
+
+config CPU_POWER3
+	bool "IBM Power3" if PPC_CPU_SELECTION
+	depends on PPC64
+	default y if PPC_PSERIES || PPC_ISERIES
+
+config CPU_POWER4
+	bool "IBM Power4" if PPC_CPU_SELECTION
+	depends on PPC64
+	default y if PPC_PSERIES || PPC_ISERIES
+
+config CPU_POWER5
+	bool "IBM Power5" if PPC_CPU_SELECTION
+	depends on PPC64
+	default y if PPC_PSERIES
+
+config CPU_POWER6
+	bool "IBM Power6" if PPC_CPU_SELECTION
+	depends on PPC64
+	default y if PPC_PSERIES
+	select ALTIVEC
+
+config CPU_970
+	bool "IBM PowerPC 970 (G5)" if PPC_CPU_SELECTION
+	depends on PPC64
+	default y if PPC_PSERIES
+	select ALTIVEC
+
+config CPU_CELL
+	bool "Sony/Toshiba/IBM Cell Broadband Engine" if PPC_CPU_SELECTION
 	depends on PPC64
+	select ALTIVEC
+
+config CPU_PA6T
+	bool "PA Semi PA6T-1682M" if PPC_CPU_SELECTION
+	depends on PPC64
+	select ALTIVEC
+
+config CPU_601
+	bool "PowerPC 601 (G1)" if PPC_CPU_SELECTION
+	depends on 6xx
+	default y if PPC_CHRP || PPC_PREP
+
+config CPU_603e
+	bool "PowerPC 603e, 604, 604e, 52xx, 82xx, 83xx (G2)" if PPC_CPU_SELECTION
+	depends on 6xx
+	default y if PPC_CHRP || PPC_PREP || PPC_PMAC
+
+config CPU_7xx
+	bool "PowerPC 740/750 (G3)" if PPC_CPU_SELECTION
+	depends on 6xx
+	default y if PPC_PMAC
+
+config CPU_74xx
+	bool "PowerPC 74xx, 86xx (G4)" if PPC_CPU_SELECTION
+	depends on 6xx
+	default y if PPC_PMAC
+	select ALTIVEC
+
+config CPU_403
+	bool "AMCC 403" if PPC_CPU_SELECTION
+	depends on 40x
+
+config CPU_405
+	bool "AMCC 405" if PPC_CPU_SELECTION
+	depends on 40x
+
+config CPU_440
+	bool "AMCC 440" if PPC_CPU_SELECTION
+	depends on 44x
+
+choice
+	prompt "Tune for processor type" if PPC_CPU_SELECTION
+	default TUNE_POWER4 if PPC64
+	default TUNE_DEFAULT
+
+config TUNE_DEFAULT
+	bool "Don't specify -mtune= to gcc"
+
+config TUNE_RS64
+	bool "RS64"
+	depends on CPU_RS64
+
+config TUNE_POWER3
+	bool "IBM Power3"
+	depends on CPU_POWER3
+
+config TUNE_POWER4
+	bool "IBM Power4"
+	depends on CPU_POWER4
+
+config TUNE_POWER5
+	bool "IBM Power5"
+	depends on CPU_POWER5
+
+config TUNE_POWER6
+	bool "IBM Power6"
+	depends on CPU_POWER6
+
+config TUNE_970
+	bool "IBM PowerPC 970 (G5)"
+	depends on CPU_970
+
+config TUNE_CELL
+	bool "Sony/Toshiba/IBM Cell Broadband Engine"
+	depends on CPU_CELL
+
+config TUNE_PA6T
+	bool "PA Semi PA6T-1682M"
+	depends on CPU_PA6T
+
+config TUNE_601
+	bool "PowerPC 601 (G1)"
+	depends on CPU_601
+
+config TUNE_603e
+	bool "PowerPC 603e, 604, 604e, 52xx, 82xx, 83xx (G2)"
+	depends on CPU_603e
+
+config TUNE_7xx
+	bool "PowerPC 740/750 (G3)"
+	depends on CPU_7xx
+
+config TUNE_74xx
+	bool "PowerPC 74xx, 86xx (G4)"
+	depends on CPU_74xx
+
+config TUNE_821
+	bool "Freescale MPC821"
+	depends on 8xx
+
+config TUNE_823
+	bool "Freescale MPC823"
+	depends on 8xx
+
+config TUNE_860
+	bool "Freescale MPC860"
+	depends on 8xx
+
+config TUNE_403
+	bool "AMCC 403"
+	depends on CPU_403
+
+config TUNE_405
+	bool "AMCC 405"
+	depends on CPU_405
+
+config TUNE_440
+	bool "AMCC 440"
+	depends on CPU_440
+
+config TUNE_8540
+	bool "Freescale MPC8540"
+	depends on PPC_85xx
+
+config TUNE_E200
+	bool "Freescale e200"
+	depends on E200
+
+endchoice
+
+config PPC_MCPU
+	string
+	default "" if CPU_DEFAULT
+	default "-mcpu=powerpc64" if CPU_POWER3 || CPU_RS64
+	default "-mcpu=power4" if (CPU_POWER5 || CPU_POWER6) && (CPU_970 || CPU_CELL || CPU_PA6T)
+	default "-mcpu=power4" if CPU_POWER4
+	default "-mcpu=power5" if CPU_POWER5
+	default "-mcpu=power6" if CPU_POWER6
+	default "-mcpu=970" if CPU_970
+	default "-mcpu=cell" if CPU_CELL
+	default "-mcpu=pa6t" if CPU_PA6T
+	default "-mcpu=powerpc64" if PPC64
+	default "-mcpu=powerpc" if CPU_601 && (CPU_603e || CPU_7xx || CPU_74xx)
+	default "-mcpu=601" if CPU_601
+	default "-mcpu=603e" if CPU_603e
+	default "-mcpu=750" if CPU_7xx
+	default "-mcpu=7450" if CPU_74xx
+	default "-mcpu=powerpc" if (CPU_403 && CPU_405)
+	default "-mcpu=powerpc" if (CPU_403 || CPU_405) && CPU_440
+	default "-mcpu=403" if CPU_403
+	default "-mcpu=405" if CPU_405
+	default "-mcpu=440" if CPU_440
+	default "-mcpu=860" if PPC_8xx
+	default "-mcpu=8540" if PPC_85xx
+	default "-mcpu=e200" if E200
+	default "-mcpu=powerpc"
+
+config PPC_MTUNE
+	string
+	default "" if TUNE_DEFAULT
+	default "-mtune=power3" if TUNE_POWER3
+	default "-mtune=rs64a" if TUNE_RS64
+	default "-mtune=power4" if TUNE_POWER4
+	default "-mtune=power5" if TUNE_POWER5
+	default "-mtune=power6" if TUNE_POWER6
+	default "-mtune=970" if TUNE_970
+	default "-mtune=cell" if TUNE_CELL
+	default "-mtune=pa6t" if TUNE_PA6T
+	default "-mtune=601" if TUNE_601
+	default "-mtune=603e" if TUNE_603e
+	default "-mtune=750" if TUNE_7xx
+	default "-mtune=7450" if TUNE_74xx
+	default "-mtune=403" if TUNE_403
+	default "-mtune=405" if TUNE_405
+	default "-mtune=440" if TUNE_440
+	default "-mtune=821" if TUNE_821
+	default "-mtune=823" if TUNE_823
+	default "-mtune=860" if TUNE_860
+	default "-mtune=8540" if TUNE_8540
+	default "-mtune=e200" if TUNE_E200
+	default "-mtune=power4" if PPC64
+
+config POWER4_ONLY
+	def_bool y
+	depends on PPC64 && !CPU_POWER3 && !CPU_RS64
 	default n
 	---help---
 	  Cause the compiler to optimize for POWER4/POWER5/PPC970 processors.
Index: linux-2.6/arch/powerpc/platforms/cell/Kconfig
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/cell/Kconfig
+++ linux-2.6/arch/powerpc/platforms/cell/Kconfig
@@ -20,6 +20,7 @@ config PPC_IBM_CELL_BLADE
 	select MMIO_NVRAM
 	select PPC_UDBG_16550
 	select UDBG_RTAS_CONSOLE
+	select CPU_CELL
 
 menu "Cell Broadband Engine options"
 	depends on PPC_CELL
Index: linux-2.6/arch/powerpc/platforms/celleb/Kconfig
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/celleb/Kconfig
+++ linux-2.6/arch/powerpc/platforms/celleb/Kconfig
@@ -2,6 +2,7 @@ config PPC_CELLEB
 	bool "Toshiba's Cell Reference Set 'Celleb' Architecture"
 	depends on PPC_MULTIPLATFORM && PPC64
 	select PPC_CELL
+	select CPU_CELL
 	select PPC_OF_PLATFORM_PCI
 	select HAS_TXX9_SERIAL
 	select PPC_UDBG_BEAT
Index: linux-2.6/arch/powerpc/platforms/embedded6xx/Kconfig
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/embedded6xx/Kconfig
+++ linux-2.6/arch/powerpc/platforms/embedded6xx/Kconfig
@@ -1,5 +1,6 @@
 config EMBEDDED6xx
 	bool "Embedded 6xx"
+	depends on 6xx
 
 config LINKSTATION
 	bool "Linkstation / Kurobox(HG) from Buffalo"
@@ -9,6 +10,7 @@ config LINKSTATION
 	select FSL_SOC
 	select PPC_UDBG_16550 if SERIAL_8250
 	select DEFAULT_UIMAGE
+	select CPU_603e
 	help
 	  Select LINKSTATION if configuring for one of PPC- (MPC8241)
 	  based NAS systems from Buffalo Technology. So far only
@@ -23,6 +25,7 @@ config MPC7448HPC2
 	select TSI108_BRIDGE
 	select DEFAULT_UIMAGE
 	select PPC_UDBG_16550
+	select CPU_74xx
 	help
 	  Select MPC7448HPC2 if configuring for Freescale MPC7448HPC2 (Taiga)
 	  platform
@@ -32,6 +35,7 @@ config PPC_HOLLY
 	depends on EMBEDDED6xx
 	select TSI108_BRIDGE
 	select PPC_UDBG_16550
+	select CPU_7xx
 	help
 	  Select PPC_HOLLY if configuring for an IBM 750GX/CL Eval
 	  Board with TSI108/9 bridge (Hickory/Holly)
@@ -42,6 +46,7 @@ config PPC_PRPMC2800
 	select MV64X60
 	select NOT_COHERENT_CACHE
 	select WANT_DEVICE_TREE
+	select CPU_74xx
 	help
 	  This option enables support for the Motorola PrPMC2800 board
 
Index: linux-2.6/arch/powerpc/platforms/maple/Kconfig
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/maple/Kconfig
+++ linux-2.6/arch/powerpc/platforms/maple/Kconfig
@@ -11,6 +11,7 @@ config PPC_MAPLE
 	select PPC_RTAS
 	select MMIO_NVRAM
 	select ATA_NONSTANDARD if ATA
+	select CPU_970
 	default n
 	help
           This option enables support for the Maple 970FX Evaluation Board.
Index: linux-2.6/arch/powerpc/platforms/pasemi/Kconfig
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/pasemi/Kconfig
+++ linux-2.6/arch/powerpc/platforms/pasemi/Kconfig
@@ -5,6 +5,7 @@ config PPC_PASEMI
 	select MPIC
 	select PPC_UDBG_16550
 	select PPC_NATIVE
+	select CPU_PA6T
 	help
 	  This option enables support for PA Semi's PWRficient line
 	  of SoC processors, including PA6T-1682M
Index: linux-2.6/arch/powerpc/platforms/powermac/Kconfig
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/powermac/Kconfig
+++ linux-2.6/arch/powerpc/platforms/powermac/Kconfig
@@ -15,6 +15,7 @@ config PPC_PMAC64
 	select MPIC_U3_HT_IRQS
 	select GENERIC_TBSYNC
 	select PPC_970_NAP
+	select CPU_970
 	default y
 
 
Index: linux-2.6/arch/powerpc/platforms/ps3/Kconfig
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/ps3/Kconfig
+++ linux-2.6/arch/powerpc/platforms/ps3/Kconfig
@@ -2,6 +2,7 @@ config PPC_PS3
 	bool "Sony PS3 (incomplete)"
 	depends on PPC_MULTIPLATFORM && PPC64
 	select PPC_CELL
+	select CPU_CELL
 	select USB_ARCH_HAS_OHCI
 	select USB_OHCI_LITTLE_ENDIAN
 	select USB_OHCI_BIG_ENDIAN_MMIO
Index: linux-2.6/arch/powerpc/Makefile
===================================================================
--- linux-2.6.orig/arch/powerpc/Makefile
+++ linux-2.6/arch/powerpc/Makefile
@@ -78,24 +78,23 @@ LINUXINCLUDE    += $(LINUXINCLUDE-y)
 
 CHECKFLAGS	+= -m$(SZ) -D__powerpc__ -D__powerpc$(SZ)__
 
+OPTFLAGS := $(call cc-option,$(CONFIG_PPC_MCPU)) $(call cc-option,$(CONFIG_PPC_MTUNE))
+
+# compilers older than 4.0.0 can only set -maltivec in 64 bit mode
+# when compiling for 970
 ifeq ($(CONFIG_PPC64),y)
 GCC_BROKEN_VEC	:= $(shell if [ $(call cc-version) -lt 0400 ] ; then echo "y"; fi)
-
 ifeq ($(CONFIG_POWER4_ONLY),y)
 ifeq ($(CONFIG_ALTIVEC),y)
 ifeq ($(GCC_BROKEN_VEC),y)
-	CFLAGS += $(call cc-option,-mcpu=970)
-else
-	CFLAGS += $(call cc-option,-mcpu=power4)
+	OPTFLAGS := $(call cc-option,-mcpu=970) $(call cc-option,$(CONFIG_PPC_MTUNE))
 endif
-else
-	CFLAGS += $(call cc-option,-mcpu=power4)
 endif
-else
-	CFLAGS += $(call cc-option,-mtune=power4)
 endif
 endif
 
+CFLAGS += $(OPTFLAGS)
+
 # No AltiVec instruction when building kernel
 CFLAGS += $(call cc-option,-mno-altivec)
 
@@ -107,10 +106,6 @@ CFLAGS += $(call cc-option,-funit-at-a-t
 # often slow when they are implemented at all
 CFLAGS		+= -mno-string
 
-ifeq ($(CONFIG_6xx),y)
-CFLAGS		+= -mcpu=powerpc
-endif
-
 cpu-as-$(CONFIG_4xx)		+= -Wa,-m405
 cpu-as-$(CONFIG_6xx)		+= -Wa,-maltivec
 cpu-as-$(CONFIG_POWER4)		+= -Wa,-maltivec
Index: linux-2.6/arch/powerpc/platforms/apus/Kconfig
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/apus/Kconfig
+++ linux-2.6/arch/powerpc/platforms/apus/Kconfig
@@ -1,6 +1,7 @@
 config APUS
 	bool "Amiga-APUS"
 	depends on PPC32 && BROKEN
+	select CPU_603e
 	help
 	  Select APUS if configuring for a PowerUP Amiga.
 	  More information is available at:

--

^ permalink raw reply	[flat|nested] 31+ messages in thread

* [patch 10/13] powerpc: mpc82xx_ads build fix
  2007-06-12 16:30 [patch 00/13] CPU selection Kconfig cleanup, take 3 arnd
                   ` (8 preceding siblings ...)
  2007-06-12 16:30 ` [patch 09/13] powerpc: autoselect optimal -mcpu= flag by platform arnd
@ 2007-06-12 16:30 ` arnd
  2007-06-12 16:30 ` [patch 11/13] powerpc: killl isa_{io,mem}_base definitions for !PCI arnd
                   ` (3 subsequent siblings)
  13 siblings, 0 replies; 31+ messages in thread
From: arnd @ 2007-06-12 16:30 UTC (permalink / raw)
  To: paulus; +Cc: linuxppc-dev, Stephen Rothwell

needed for 6xx allyesconfig

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
--- linux-2.6.orig/arch/powerpc/platforms/82xx/mpc82xx_ads.c
+++ linux-2.6/arch/powerpc/platforms/82xx/mpc82xx_ads.c
@@ -49,7 +49,7 @@
 #include <linux/fs_enet_pd.h>
 
 #include <sysdev/fsl_soc.h>
-#include <../sysdev/cpm2_pic.h>
+#include <../../sysdev/cpm2_pic.h>
 
 #include "pq2ads.h"
 

--

^ permalink raw reply	[flat|nested] 31+ messages in thread

* [patch 11/13] powerpc: killl isa_{io,mem}_base definitions for !PCI
  2007-06-12 16:30 [patch 00/13] CPU selection Kconfig cleanup, take 3 arnd
                   ` (9 preceding siblings ...)
  2007-06-12 16:30 ` [patch 10/13] powerpc: mpc82xx_ads build fix arnd
@ 2007-06-12 16:30 ` arnd
  2007-06-12 16:30 ` [patch 12/13] powerpc: fix building without PCI arnd
                   ` (2 subsequent siblings)
  13 siblings, 0 replies; 31+ messages in thread
From: arnd @ 2007-06-12 16:30 UTC (permalink / raw)
  To: paulus; +Cc: linuxppc-dev, Stephen Rothwell

When CONFIG_PCI is disabled, the definitions for isa_io_base,
isa_mem_base and pci_dram_offset are entirely unused, but they
can result in link failure because they are defined in multiple
places.

The easiest fix is to just remove all these definitions.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Index: linux-2.6/arch/powerpc/platforms/83xx/mpc8313_rdb.c
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/83xx/mpc8313_rdb.c
+++ linux-2.6/arch/powerpc/platforms/83xx/mpc8313_rdb.c
@@ -28,11 +28,6 @@
 #define DBG(fmt...)
 #endif
 
-#ifndef CONFIG_PCI
-unsigned long isa_io_base = 0;
-unsigned long isa_mem_base = 0;
-#endif
-
 /* ************************************************************************
  *
  * Setup the architecture
Index: linux-2.6/arch/powerpc/platforms/83xx/mpc832x_mds.c
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/83xx/mpc832x_mds.c
+++ linux-2.6/arch/powerpc/platforms/83xx/mpc832x_mds.c
@@ -49,11 +49,6 @@
 #define DBG(fmt...)
 #endif
 
-#ifndef CONFIG_PCI
-unsigned long isa_io_base = 0;
-unsigned long isa_mem_base = 0;
-#endif
-
 static u8 *bcsr_regs = NULL;
 
 /* ************************************************************************
Index: linux-2.6/arch/powerpc/platforms/83xx/mpc832x_rdb.c
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/83xx/mpc832x_rdb.c
+++ linux-2.6/arch/powerpc/platforms/83xx/mpc832x_rdb.c
@@ -32,11 +32,6 @@
 #define DBG(fmt...)
 #endif
 
-#ifndef CONFIG_PCI
-unsigned long isa_io_base = 0;
-unsigned long isa_mem_base = 0;
-#endif
-
 /* ************************************************************************
  *
  * Setup the architecture
Index: linux-2.6/arch/powerpc/platforms/83xx/mpc834x_itx.c
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/83xx/mpc834x_itx.c
+++ linux-2.6/arch/powerpc/platforms/83xx/mpc834x_itx.c
@@ -38,11 +38,6 @@
 
 #include "mpc83xx.h"
 
-#ifndef CONFIG_PCI
-unsigned long isa_io_base = 0;
-unsigned long isa_mem_base = 0;
-#endif
-
 /* ************************************************************************
  *
  * Setup the architecture
Index: linux-2.6/arch/powerpc/platforms/83xx/mpc834x_mds.c
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/83xx/mpc834x_mds.c
+++ linux-2.6/arch/powerpc/platforms/83xx/mpc834x_mds.c
@@ -38,11 +38,6 @@
 
 #include "mpc83xx.h"
 
-#ifndef CONFIG_PCI
-unsigned long isa_io_base = 0;
-unsigned long isa_mem_base = 0;
-#endif
-
 #define BCSR5_INT_USB		0x02
 /* Note: This is only for PB, not for PB+PIB
  * On PB only port0 is connected using ULPI */
Index: linux-2.6/arch/powerpc/platforms/83xx/mpc836x_mds.c
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/83xx/mpc836x_mds.c
+++ linux-2.6/arch/powerpc/platforms/83xx/mpc836x_mds.c
@@ -55,11 +55,6 @@
 #define DBG(fmt...)
 #endif
 
-#ifndef CONFIG_PCI
-unsigned long isa_io_base = 0;
-unsigned long isa_mem_base = 0;
-#endif
-
 static u8 *bcsr_regs = NULL;
 
 /* ************************************************************************
Index: linux-2.6/arch/powerpc/platforms/85xx/mpc85xx_ads.c
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/85xx/mpc85xx_ads.c
+++ linux-2.6/arch/powerpc/platforms/85xx/mpc85xx_ads.c
@@ -38,11 +38,6 @@
 #include <asm/fs_pd.h>
 #endif
 
-#ifndef CONFIG_PCI
-unsigned long isa_io_base = 0;
-unsigned long isa_mem_base = 0;
-#endif
-
 #ifdef CONFIG_PCI
 static int mpc85xx_exclude_device(u_char bus, u_char devfn)
 {
Index: linux-2.6/arch/powerpc/platforms/85xx/mpc85xx_cds.c
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/85xx/mpc85xx_cds.c
+++ linux-2.6/arch/powerpc/platforms/85xx/mpc85xx_cds.c
@@ -47,11 +47,6 @@
 #include <sysdev/fsl_soc.h>
 #include "mpc85xx.h"
 
-#ifndef CONFIG_PCI
-unsigned long isa_io_base = 0;
-unsigned long isa_mem_base = 0;
-#endif
-
 static int cds_pci_slot = 2;
 static volatile u8 *cadmus;
 
Index: linux-2.6/arch/powerpc/platforms/85xx/mpc85xx_mds.c
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/85xx/mpc85xx_mds.c
+++ linux-2.6/arch/powerpc/platforms/85xx/mpc85xx_mds.c
@@ -59,11 +59,6 @@
 #define DBG(fmt...)
 #endif
 
-#ifndef CONFIG_PCI
-unsigned long isa_io_base = 0;
-unsigned long isa_mem_base = 0;
-#endif
-
 /* ************************************************************************
  *
  * Setup the architecture
Index: linux-2.6/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
+++ linux-2.6/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
@@ -44,13 +44,6 @@
 #define DBG(fmt...) do { } while(0)
 #endif
 
-#ifndef CONFIG_PCI
-unsigned long isa_io_base = 0;
-unsigned long isa_mem_base = 0;
-unsigned long pci_dram_offset = 0;
-#endif
-
-
 #ifdef CONFIG_PCI
 static void mpc86xx_8259_cascade(unsigned int irq, struct irq_desc *desc)
 {
Index: linux-2.6/arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c
+++ linux-2.6/arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c
@@ -54,12 +54,6 @@
 
 #define MPC7448HPC2_PCI_CFG_PHYS 0xfb000000
 
-#ifndef CONFIG_PCI
-isa_io_base = MPC7448_HPC2_ISA_IO_BASE;
-isa_mem_base = MPC7448_HPC2_ISA_MEM_BASE;
-pci_dram_offset = MPC7448_HPC2_PCI_MEM_OFFSET;
-#endif
-
 extern void _nmask_and_or_msr(unsigned long nmask, unsigned long or_val);
 
 int mpc7448_hpc2_exclude_device(u_char bus, u_char devfn)
Index: linux-2.6/include/asm-powerpc/mpc86xx.h
===================================================================
--- linux-2.6.orig/include/asm-powerpc/mpc86xx.h
+++ linux-2.6/include/asm-powerpc/mpc86xx.h
@@ -19,12 +19,6 @@
 
 #ifdef CONFIG_PPC_86xx
 
-#define _IO_BASE        isa_io_base
-#define _ISA_MEM_BASE   isa_mem_base
-#ifdef CONFIG_PCI
-#define PCI_DRAM_OFFSET pci_dram_offset
-#endif
-
 #define CPU0_BOOT_RELEASE 0x01000000
 #define CPU1_BOOT_RELEASE 0x02000000
 #define CPU_ALL_RELEASED (CPU0_BOOT_RELEASE | CPU1_BOOT_RELEASE)

--

^ permalink raw reply	[flat|nested] 31+ messages in thread

* [patch 12/13] powerpc: fix building without PCI
  2007-06-12 16:30 [patch 00/13] CPU selection Kconfig cleanup, take 3 arnd
                   ` (10 preceding siblings ...)
  2007-06-12 16:30 ` [patch 11/13] powerpc: killl isa_{io,mem}_base definitions for !PCI arnd
@ 2007-06-12 16:30 ` arnd
  2007-06-14  1:44   ` Paul Mackerras
  2007-06-12 16:30 ` [patch 13/13] disallow building powermac and tsi108 " arnd
  2007-06-14  1:46 ` [patch 00/13] CPU selection Kconfig cleanup, take 3 Paul Mackerras
  13 siblings, 1 reply; 31+ messages in thread
From: arnd @ 2007-06-12 16:30 UTC (permalink / raw)
  To: paulus; +Cc: linuxppc-dev, Stephen Rothwell

Some code looks can be configured to be built without
PCI support, but does not work properly.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Index: linux-2.6/arch/powerpc/platforms/52xx/efika.c
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/52xx/efika.c
+++ linux-2.6/arch/powerpc/platforms/52xx/efika.c
@@ -252,6 +252,8 @@ define_machine(efika)
 	.progress		= rtas_progress,
 	.get_boot_time		= rtas_get_boot_time,
 	.calibrate_decr		= generic_calibrate_decr,
+#ifdef CONFIG_PCI
 	.phys_mem_access_prot	= pci_phys_mem_access_prot,
+#endif
 };
 
Index: linux-2.6/arch/powerpc/platforms/chrp/setup.c
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/chrp/setup.c
+++ linux-2.6/arch/powerpc/platforms/chrp/setup.c
@@ -80,6 +80,7 @@ static unsigned int __iomem *briq_SPOR;
 extern struct smp_ops_t chrp_smp_ops;
 #endif
 
+#ifdef CONFIG_PCI
 static const char *gg2_memtypes[4] = {
 	"FPM", "SDRAM", "EDO", "BEDO"
 };
@@ -93,6 +94,7 @@ static const char *gg2_cachetypes[4] = {
 static const char *gg2_cachemodes[4] = {
 	"Disabled", "Write-Through", "Copy-Back", "Transparent Mode"
 };
+#endif
 
 static const char *chrp_names[] = {
 	"Unknown",
@@ -105,8 +107,6 @@ static const char *chrp_names[] = {
 
 void chrp_show_cpuinfo(struct seq_file *m)
 {
-	int i, sdramen;
-	unsigned int t;
 	struct device_node *root;
 	const char *model = "";
 
@@ -115,8 +115,11 @@ void chrp_show_cpuinfo(struct seq_file *
 		model = of_get_property(root, "model", NULL);
 	seq_printf(m, "machine\t\t: CHRP %s\n", model);
 
+#ifdef CONFIG_PCI
 	/* longtrail (goldengate) stuff */
 	if (!strncmp(model, "IBM,LongTrail", 13)) {
+		int i, sdramen;
+		unsigned int t;
 		/* VLSI VAS96011/12 `Golden Gate 2' */
 		/* Memory banks */
 		sdramen = (in_le32(gg2_pci_config_base + GG2_PCI_DRAM_CTRL)
@@ -160,6 +163,7 @@ void chrp_show_cpuinfo(struct seq_file *
 			   gg2_cachetypes[(t>>2) & 3],
 			   gg2_cachemodes[t & 3]);
 	}
+#endif
 	of_node_put(root);
 }
 
@@ -304,6 +308,7 @@ void __init chrp_setup_arch(void)
 	/* On pegasos, enable the L2 cache if not already done by OF */
 	pegasos_set_l2cr();
 
+#ifdef CONFIG_PCI
 	/* Lookup PCI host bridges */
 	chrp_find_bridges();
 
@@ -312,13 +317,16 @@ void __init chrp_setup_arch(void)
 	 *  -- Geert
 	 */
 	hydra_init();		/* Mac I/O */
+#endif
 
 	/*
 	 *  Fix the Super I/O configuration
 	 */
 	sio_init();
 
+#ifdef CONFIG_PCI
 	pci_create_OF_bus_map();
+#endif
 
 	/*
 	 * Print the banner, then scroll down so boot progress
@@ -614,5 +622,7 @@ define_machine(chrp) {
 	.set_rtc_time		= chrp_set_rtc_time,
 	.get_rtc_time		= chrp_get_rtc_time,
 	.calibrate_decr		= generic_calibrate_decr,
+#ifdef CONFIG_PCI
 	.phys_mem_access_prot	= pci_phys_mem_access_prot,
+#endif
 };
Index: linux-2.6/arch/powerpc/platforms/embedded6xx/linkstation.c
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/embedded6xx/linkstation.c
+++ linux-2.6/arch/powerpc/platforms/embedded6xx/linkstation.c
@@ -56,6 +56,7 @@ static struct mtd_partition linkstation_
 
 static int __init linkstation_add_bridge(struct device_node *dev)
 {
+#ifdef CONFIG_PCI
 	int len;
 	struct pci_controller *hose;
 	const int *bus_range;
@@ -78,7 +79,7 @@ static int __init linkstation_add_bridge
 	/* Interpret the "ranges" property */
 	/* This also maps the I/O region and sets isa_io/mem_base */
 	pci_process_bridge_OF_ranges(hose, dev, 1);
-
+#endif
 	return 0;
 }
 
Index: linux-2.6/arch/powerpc/sysdev/Makefile
===================================================================
--- linux-2.6.orig/arch/powerpc/sysdev/Makefile
+++ linux-2.6/arch/powerpc/sysdev/Makefile
@@ -6,7 +6,7 @@ mpic-msi-obj-$(CONFIG_PCI_MSI)	+= mpic_m
 obj-$(CONFIG_MPIC)		+= mpic.o $(mpic-msi-obj-y)
 
 obj-$(CONFIG_PPC_INDIRECT_PCI)	+= indirect_pci.o
-obj-$(CONFIG_PPC_MPC106)	+= grackle.o
+pci-$(CONFIG_PPC_MPC106)	+= grackle.o
 obj-$(CONFIG_PPC_DCR)		+= dcr.o
 obj-$(CONFIG_PPC_DCR_NATIVE)	+= dcr-low.o
 obj-$(CONFIG_PPC_PMI)		+= pmi.o
@@ -14,10 +14,13 @@ obj-$(CONFIG_U3_DART)		+= dart_iommu.o
 obj-$(CONFIG_MMIO_NVRAM)	+= mmio_nvram.o
 obj-$(CONFIG_FSL_SOC)		+= fsl_soc.o
 obj-$(CONFIG_FSL_PCIE)		+= fsl_pcie.o
-obj-$(CONFIG_TSI108_BRIDGE)	+= tsi108_pci.o tsi108_dev.o
+obj-$(CONFIG_TSI108_BRIDGE)	+= tsi108_dev.o
+pci-$(CONFIG_TSI108_BRIDGE)	+= tsi108_pci.o
 obj-$(CONFIG_QUICC_ENGINE)	+= qe_lib/
-mv64x60-$(CONFIG_PCI)		+= mv64x60_pci.o
 obj-$(CONFIG_MV64X60)		+= $(mv64x60-y) mv64x60_pic.o mv64x60_dev.o
+pci-$(CONFIG_MV64X60)		+= mv64x60_pci.o
+
+obj-$(CONFIG_PCI)		+= $(pci-y)
 
 # contains only the suspend handler for time
 obj-$(CONFIG_PM)		+= timer.o

--

^ permalink raw reply	[flat|nested] 31+ messages in thread

* [patch 13/13] disallow building powermac and tsi108 without PCI
  2007-06-12 16:30 [patch 00/13] CPU selection Kconfig cleanup, take 3 arnd
                   ` (11 preceding siblings ...)
  2007-06-12 16:30 ` [patch 12/13] powerpc: fix building without PCI arnd
@ 2007-06-12 16:30 ` arnd
  2007-06-14  1:46 ` [patch 00/13] CPU selection Kconfig cleanup, take 3 Paul Mackerras
  13 siblings, 0 replies; 31+ messages in thread
From: arnd @ 2007-06-12 16:30 UTC (permalink / raw)
  To: paulus; +Cc: linuxppc-dev, Stephen Rothwell

The TSI108 code and the 32 bit powermac platform have dependency
on PCI that is not easy to fix, and probably not very desirable.
The easiest fix is to always select CONFIG_PCI if one of those
platforms is enabled.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Index: linux-2.6/arch/powerpc/platforms/embedded6xx/Kconfig
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/embedded6xx/Kconfig
+++ linux-2.6/arch/powerpc/platforms/embedded6xx/Kconfig
@@ -22,6 +22,7 @@ config MPC7448HPC2
 	bool "Freescale MPC7448HPC2(Taiga)"
 	depends on EMBEDDED6xx
 	depends on (BROKEN || BROKEN_ON_SMP)
+	select PCI
 	select TSI108_BRIDGE
 	select DEFAULT_UIMAGE
 	select PPC_UDBG_16550
@@ -36,6 +37,7 @@ config PPC_HOLLY
 	select TSI108_BRIDGE
 	select PPC_UDBG_16550
 	select CPU_7xx
+	select PCI
 	help
 	  Select PPC_HOLLY if configuring for an IBM 750GX/CL Eval
 	  Board with TSI108/9 bridge (Hickory/Holly)
Index: linux-2.6/arch/powerpc/platforms/powermac/Kconfig
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/powermac/Kconfig
+++ linux-2.6/arch/powerpc/platforms/powermac/Kconfig
@@ -2,6 +2,7 @@ config PPC_PMAC
 	bool "Apple PowerMac based machines"
 	depends on PPC_MULTIPLATFORM
 	select MPIC
+	select PCI
 	select PPC_INDIRECT_PCI if PPC32
 	select PPC_MPC106 if PPC32
 	select PPC_NATIVE
Index: linux-2.6/arch/powerpc/Kconfig
===================================================================
--- linux-2.6.orig/arch/powerpc/Kconfig
+++ linux-2.6/arch/powerpc/Kconfig
@@ -435,7 +435,7 @@ config MCA
 config PCI
 	bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_86xx \
 		|| PPC_MPC52xx || (EMBEDDED && (PPC_PSERIES || PPC_ISERIES)) \
-		|| MPC7448HPC2 || PPC_PS3 || PPC_HOLLY
+		|| PPC_PS3
 	default y if !40x && !CPM2 && !8xx && !APUS && !PPC_83xx \
 		&& !PPC_85xx && !PPC_86xx
 	default PCI_PERMEDIA if !4xx && !CPM2 && !8xx && APUS

--

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [patch 12/13] powerpc: fix building without PCI
  2007-06-12 16:30 ` [patch 12/13] powerpc: fix building without PCI arnd
@ 2007-06-14  1:44   ` Paul Mackerras
  2007-06-14  7:58     ` Arnd Bergmann
  0 siblings, 1 reply; 31+ messages in thread
From: Paul Mackerras @ 2007-06-14  1:44 UTC (permalink / raw)
  To: arnd; +Cc: linuxppc-dev, Stephen Rothwell

arnd@arndb.de writes:

> Some code looks can be configured to be built without
> PCI support, but does not work properly.

I don't think it makes sense to build a chrp kernel without PCI.  I
would rather just always select PCI for chrp rather than uglifying the
code with all those ifdefs.

Paul.

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [patch 00/13] CPU selection Kconfig cleanup, take 3
  2007-06-12 16:30 [patch 00/13] CPU selection Kconfig cleanup, take 3 arnd
                   ` (12 preceding siblings ...)
  2007-06-12 16:30 ` [patch 13/13] disallow building powermac and tsi108 " arnd
@ 2007-06-14  1:46 ` Paul Mackerras
  2007-06-14 13:33   ` Kumar Gala
  13 siblings, 1 reply; 31+ messages in thread
From: Paul Mackerras @ 2007-06-14  1:46 UTC (permalink / raw)
  To: arnd; +Cc: linuxppc-dev, Stephen Rothwell

Most of this series of patches touch 8xxx or 5xxx stuff in one way or
another, so I'll leave it to Kumar to make the decision about them.
I'll put in 1/13.

Paul.

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [patch 12/13] powerpc: fix building without PCI
  2007-06-14  1:44   ` Paul Mackerras
@ 2007-06-14  7:58     ` Arnd Bergmann
  0 siblings, 0 replies; 31+ messages in thread
From: Arnd Bergmann @ 2007-06-14  7:58 UTC (permalink / raw)
  To: Paul Mackerras; +Cc: linuxppc-dev, Stephen Rothwell

On Thursday 14 June 2007, Paul Mackerras wrote:
> > Some code looks can be configured to be built without
> > PCI support, but does not work properly.
>=20
> I don't think it makes sense to build a chrp kernel without PCI. =A0I
> would rather just always select PCI for chrp rather than uglifying the
> code with all those ifdefs.

Ok, good. I had done that at first but then saw that the chrp code
already has a conditional on CONFIG_PCI in the Makefile and changed
it.
I have changed it back in my series now.

	Arnd <><

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [patch 00/13] CPU selection Kconfig cleanup, take 3
  2007-06-14  1:46 ` [patch 00/13] CPU selection Kconfig cleanup, take 3 Paul Mackerras
@ 2007-06-14 13:33   ` Kumar Gala
  2007-06-14 23:51     ` Arnd Bergmann
                       ` (2 more replies)
  0 siblings, 3 replies; 31+ messages in thread
From: Kumar Gala @ 2007-06-14 13:33 UTC (permalink / raw)
  To: Paul Mackerras; +Cc: linuxppc-dev, arnd, Stephen Rothwell


On Jun 13, 2007, at 8:46 PM, Paul Mackerras wrote:

> Most of this series of patches touch 8xxx or 5xxx stuff in one way or
> another, so I'll leave it to Kumar to make the decision about them.
> I'll put in 1/13.

Arnd,

I'm a little hesitant to move the embedded ppc's over to  
multiplatform quite yet.  One feature I wanted was in Kconfig a way  
to enforce the selection of at least one choice, as well as being  
able to optimize things since we only had one choice selected.

See the following thread for discussion I had with Sam & Roman on the  
subject:

http://marc.info/?t=117156757000002&r=1&w=2

- k

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [patch 00/13] CPU selection Kconfig cleanup, take 3
  2007-06-14 13:33   ` Kumar Gala
@ 2007-06-14 23:51     ` Arnd Bergmann
  2007-06-16 23:52       ` Kumar Gala
  2007-06-15 18:28     ` Kim Phillips
  2007-06-16  0:46     ` Benjamin Herrenschmidt
  2 siblings, 1 reply; 31+ messages in thread
From: Arnd Bergmann @ 2007-06-14 23:51 UTC (permalink / raw)
  To: Kumar Gala; +Cc: linuxppc-dev, Paul Mackerras, Stephen Rothwell

On Thursday 14 June 2007, Kumar Gala wrote:
> I'm a little hesitant to move the embedded ppc's over to =A0
> multiplatform quite yet. =A0One feature I wanted was in Kconfig a way =A0
> to enforce the selection of at least one choice, as well as being =A0
> able to optimize things since we only had one choice selected.

What would such a potential optimization be like? Are you thinking
of turning the 'platform_is(foo)' check into a compile-time choice,
or are there more places where you can imagine an optimization?
I'd like to understand better what you want to achieve there,
maybe I can find a way to do that in the same series.

=46or the 'at least one option selected' argument, I'm not sure how
important that is, IMHO it falls into the same category as any
other essential option that you can disable.

	Arnd <><

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [patch 00/13] CPU selection Kconfig cleanup, take 3
  2007-06-14 13:33   ` Kumar Gala
  2007-06-14 23:51     ` Arnd Bergmann
@ 2007-06-15 18:28     ` Kim Phillips
  2007-06-16 23:48       ` Kumar Gala
  2007-06-16  0:46     ` Benjamin Herrenschmidt
  2 siblings, 1 reply; 31+ messages in thread
From: Kim Phillips @ 2007-06-15 18:28 UTC (permalink / raw)
  To: Kumar Gala; +Cc: linuxppc-dev, paulus, arnd, sfr

On Thu, 14 Jun 2007 08:33:19 -0500
Kumar Gala <galak@kernel.crashing.org> wrote:

> 
> On Jun 13, 2007, at 8:46 PM, Paul Mackerras wrote:
> 
> > Most of this series of patches touch 8xxx or 5xxx stuff in one way or
> > another, so I'll leave it to Kumar to make the decision about them.
> > I'll put in 1/13.
> 
> Arnd,
> 
> I'm a little hesitant to move the embedded ppc's over to  
> multiplatform quite yet.  One feature I wanted was in Kconfig a way  
> to enforce the selection of at least one choice, as well as being  
> able to optimize things since we only had one choice selected.
> 
> See the following thread for discussion I had with Sam & Roman on the  
> subject:
> 
> http://marc.info/?t=117156757000002&r=1&w=2
> 

FWIW, this patchseries tests ok on 83xx, and I didn't have a problem
selecting at least one choice ;)

Kim

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [patch 00/13] CPU selection Kconfig cleanup, take 3
  2007-06-14 13:33   ` Kumar Gala
  2007-06-14 23:51     ` Arnd Bergmann
  2007-06-15 18:28     ` Kim Phillips
@ 2007-06-16  0:46     ` Benjamin Herrenschmidt
  2007-06-16 23:47       ` Kumar Gala
  2 siblings, 1 reply; 31+ messages in thread
From: Benjamin Herrenschmidt @ 2007-06-16  0:46 UTC (permalink / raw)
  To: Kumar Gala
  Cc: Sam Ravnborg, linuxppc-dev, Paul Mackerras, arnd,
	Stephen Rothwell

On Thu, 2007-06-14 at 08:33 -0500, Kumar Gala wrote:
> On Jun 13, 2007, at 8:46 PM, Paul Mackerras wrote:
> 
> > Most of this series of patches touch 8xxx or 5xxx stuff in one way or
> > another, so I'll leave it to Kumar to make the decision about them.
> > I'll put in 1/13.
> 
> Arnd,
> 
> I'm a little hesitant to move the embedded ppc's over to  
> multiplatform quite yet.  One feature I wanted was in Kconfig a way  
> to enforce the selection of at least one choice, as well as being  
> able to optimize things since we only had one choice selected.
> 
> See the following thread for discussion I had with Sam & Roman on the  
> subject:
> 
> http://marc.info/?t=117156757000002&r=1&w=2

I missed that discussion... but without actually reading it (yet), I can
already tell that I don't like the way you propose it. I would much
prefer the CONFIG_xxx_ONLY_ONE be -generated- by the multiple choice
menu if only one choice has been selected.

That could be an optional argument to the menu stuff to set that.

Ben.

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [patch 00/13] CPU selection Kconfig cleanup, take 3
  2007-06-16  0:46     ` Benjamin Herrenschmidt
@ 2007-06-16 23:47       ` Kumar Gala
  2007-06-17  0:19         ` Segher Boessenkool
  0 siblings, 1 reply; 31+ messages in thread
From: Kumar Gala @ 2007-06-16 23:47 UTC (permalink / raw)
  To: Benjamin Herrenschmidt
  Cc: Sam Ravnborg, linuxppc-dev, Paul Mackerras, arnd,
	Stephen Rothwell


On Jun 15, 2007, at 7:46 PM, Benjamin Herrenschmidt wrote:

> On Thu, 2007-06-14 at 08:33 -0500, Kumar Gala wrote:
>> On Jun 13, 2007, at 8:46 PM, Paul Mackerras wrote:
>>
>>> Most of this series of patches touch 8xxx or 5xxx stuff in one  
>>> way or
>>> another, so I'll leave it to Kumar to make the decision about them.
>>> I'll put in 1/13.
>>
>> Arnd,
>>
>> I'm a little hesitant to move the embedded ppc's over to
>> multiplatform quite yet.  One feature I wanted was in Kconfig a way
>> to enforce the selection of at least one choice, as well as being
>> able to optimize things since we only had one choice selected.
>>
>> See the following thread for discussion I had with Sam & Roman on the
>> subject:
>>
>> http://marc.info/?t=117156757000002&r=1&w=2
>
> I missed that discussion... but without actually reading it (yet),  
> I can
> already tell that I don't like the way you propose it. I would much
> prefer the CONFIG_xxx_ONLY_ONE be -generated- by the multiple choice
> menu if only one choice has been selected.
>
> That could be an optional argument to the menu stuff to set that.

That was my intent, that the Kconfig system would help in telling us  
only one choice was selected and we could optimize based on that.  In  
addition, to ensure that at least one choice was selected.  I believe  
Rob Landley came across an issue that exists today with MULTIPLATFORM  
support in that we can attempt to build a kernel w/o any system.

http://marc.info/?t=117529164800005&r=1&w=2

- k

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [patch 00/13] CPU selection Kconfig cleanup, take 3
  2007-06-15 18:28     ` Kim Phillips
@ 2007-06-16 23:48       ` Kumar Gala
  0 siblings, 0 replies; 31+ messages in thread
From: Kumar Gala @ 2007-06-16 23:48 UTC (permalink / raw)
  To: Kim Phillips; +Cc: linuxppc-dev, paulus, arnd, sfr


On Jun 15, 2007, at 1:28 PM, Kim Phillips wrote:

> On Thu, 14 Jun 2007 08:33:19 -0500
> Kumar Gala <galak@kernel.crashing.org> wrote:
>
>>
>> On Jun 13, 2007, at 8:46 PM, Paul Mackerras wrote:
>>
>>> Most of this series of patches touch 8xxx or 5xxx stuff in one  
>>> way or
>>> another, so I'll leave it to Kumar to make the decision about them.
>>> I'll put in 1/13.
>>
>> Arnd,
>>
>> I'm a little hesitant to move the embedded ppc's over to
>> multiplatform quite yet.  One feature I wanted was in Kconfig a way
>> to enforce the selection of at least one choice, as well as being
>> able to optimize things since we only had one choice selected.
>>
>> See the following thread for discussion I had with Sam & Roman on the
>> subject:
>>
>> http://marc.info/?t=117156757000002&r=1&w=2
>>
>
> FWIW, this patchseries tests ok on 83xx, and I didn't have a problem
> selecting at least one choice ;)

Its not an issue with selecting just one, its ability to select zero  
that I have issue with.

- k

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [patch 00/13] CPU selection Kconfig cleanup, take 3
  2007-06-14 23:51     ` Arnd Bergmann
@ 2007-06-16 23:52       ` Kumar Gala
  2007-06-17  0:14         ` Arnd Bergmann
  0 siblings, 1 reply; 31+ messages in thread
From: Kumar Gala @ 2007-06-16 23:52 UTC (permalink / raw)
  To: Arnd Bergmann; +Cc: linuxppc-dev, Paul Mackerras, Stephen Rothwell


On Jun 14, 2007, at 6:51 PM, Arnd Bergmann wrote:

> On Thursday 14 June 2007, Kumar Gala wrote:
>> I'm a little hesitant to move the embedded ppc's over to
>> multiplatform quite yet.  One feature I wanted was in Kconfig a way
>> to enforce the selection of at least one choice, as well as being
>> able to optimize things since we only had one choice selected.
>
> What would such a potential optimization be like? Are you thinking
> of turning the 'platform_is(foo)' check into a compile-time choice,
> or are there more places where you can imagine an optimization?
> I'd like to understand better what you want to achieve there,
> maybe I can find a way to do that in the same series.

Sort of, in that if we were built with the  
CONFIG_ONLY_HAD_ONE_MACHINE we could optimize the machine_is() checks  
away.

> For the 'at least one option selected' argument, I'm not sure how
> important that is, IMHO it falls into the same category as any
> other essential option that you can disable.

People have run into the issue so I think it desires at least a  
little concern.  See: http://marc.info/?t=117529164800005&r=1&w=2

- k

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [patch 00/13] CPU selection Kconfig cleanup, take 3
  2007-06-16 23:52       ` Kumar Gala
@ 2007-06-17  0:14         ` Arnd Bergmann
  2007-06-17  0:22           ` Segher Boessenkool
  2007-06-17 14:46           ` Kumar Gala
  0 siblings, 2 replies; 31+ messages in thread
From: Arnd Bergmann @ 2007-06-17  0:14 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: Stephen Rothwell, Paul Mackerras

On Sunday 17 June 2007, Kumar Gala wrote:
> > For the 'at least one option selected' argument, I'm not sure how
> > important that is, IMHO it falls into the same category as any
> > other essential option that you can disable.
>=20
> People have run into the issue so I think it desires at least a =A0
> little concern. =A0See: http://marc.info/?t=3D117529164800005&r=3D1&w=3D2

But isn't the reported problem just a bug in the build system?
My impression was that the user did not complain about the fact
that the kernel he was trying to build would not boot on any
platform, but rather that the kernel tried to build a zImage
that was not defined, resulting in a build error.

Obviously, any configuration that can be selected by the user
should be able to compile and link without errors, even if it's
not particularly useful.

Aside from the multiplatform enabling patches, are you happy with
the patches 1-8 from my fourth version of the patch set?

	Arnd <><

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [patch 00/13] CPU selection Kconfig cleanup, take 3
  2007-06-16 23:47       ` Kumar Gala
@ 2007-06-17  0:19         ` Segher Boessenkool
  0 siblings, 0 replies; 31+ messages in thread
From: Segher Boessenkool @ 2007-06-17  0:19 UTC (permalink / raw)
  To: Kumar Gala
  Cc: Stephen Rothwell, arnd, linuxppc-dev, Paul Mackerras,
	Sam Ravnborg

>> I would much
>> prefer the CONFIG_xxx_ONLY_ONE be -generated- by the multiple choice
>> menu if only one choice has been selected.
>>
>> That could be an optional argument to the menu stuff to set that.
>
> That was my intent, that the Kconfig system would help in telling us
> only one choice was selected and we could optimize based on that.  In
> addition, to ensure that at least one choice was selected.  I believe
> Rob Landley came across an issue that exists today with MULTIPLATFORM
> support in that we can attempt to build a kernel w/o any system.

Each of the CPU options is set to either "y" or "", so:


options-$(option1)$(option2)$(option3) := y

ifeq ($(options)-,y)
	$(error blablabla)
endif

CONFIG_POWERPC_ONLY_ONE_CPU := $(options-y)


or some variant on this will do just fine.


Segher

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [patch 00/13] CPU selection Kconfig cleanup, take 3
  2007-06-17  0:14         ` Arnd Bergmann
@ 2007-06-17  0:22           ` Segher Boessenkool
  2007-06-17 14:46           ` Kumar Gala
  1 sibling, 0 replies; 31+ messages in thread
From: Segher Boessenkool @ 2007-06-17  0:22 UTC (permalink / raw)
  To: Arnd Bergmann; +Cc: linuxppc-dev, Paul Mackerras, Stephen Rothwell

>> People have run into the issue so I think it desires at least a =A0
>> little concern. =A0See: http://marc.info/?t=3D117529164800005&r=3D1&w=3D=
2
>
> But isn't the reported problem just a bug in the build system?

Yes, that's a completely separate bug.

> My impression was that the user did not complain about the fact
> that the kernel he was trying to build would not boot on any
> platform, but rather that the kernel tried to build a zImage
> that was not defined, resulting in a build error.

It's the only valid complaint, anyway :-)

> Obviously, any configuration that can be selected by the user
> should be able to compile and link without errors, even if it's
> not particularly useful.

Yes.


Segher

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [patch 00/13] CPU selection Kconfig cleanup, take 3
  2007-06-17  0:14         ` Arnd Bergmann
  2007-06-17  0:22           ` Segher Boessenkool
@ 2007-06-17 14:46           ` Kumar Gala
  2007-06-17 23:09             ` Arnd Bergmann
  1 sibling, 1 reply; 31+ messages in thread
From: Kumar Gala @ 2007-06-17 14:46 UTC (permalink / raw)
  To: Arnd Bergmann; +Cc: linuxppc-dev, Paul Mackerras, Stephen Rothwell


On Jun 16, 2007, at 7:14 PM, Arnd Bergmann wrote:

> On Sunday 17 June 2007, Kumar Gala wrote:
>>> For the 'at least one option selected' argument, I'm not sure how
>>> important that is, IMHO it falls into the same category as any
>>> other essential option that you can disable.
>>
>> People have run into the issue so I think it desires at least a
>> little concern.  See: http://marc.info/?t=117529164800005&r=1&w=2
>
> But isn't the reported problem just a bug in the build system?
> My impression was that the user did not complain about the fact
> that the kernel he was trying to build would not boot on any
> platform, but rather that the kernel tried to build a zImage
> that was not defined, resulting in a build error.
>
> Obviously, any configuration that can be selected by the user
> should be able to compile and link without errors, even if it's
> not particularly useful.
>
> Aside from the multiplatform enabling patches, are you happy with
> the patches 1-8 from my fourth version of the patch set?

I commented on some minor nits with the patches.  I'm probably ok  
with patches 1-7 going in.  I'm not ready for 8 at this point, we  
need to do more proper cleanup to get 85xx/cpm2 support into a  
multiplatforms single kernel state.

- k

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [patch 00/13] CPU selection Kconfig cleanup, take 3
  2007-06-17 14:46           ` Kumar Gala
@ 2007-06-17 23:09             ` Arnd Bergmann
  2007-06-18  4:32               ` Kumar Gala
  0 siblings, 1 reply; 31+ messages in thread
From: Arnd Bergmann @ 2007-06-17 23:09 UTC (permalink / raw)
  To: Kumar Gala; +Cc: linuxppc-dev, Paul Mackerras, Stephen Rothwell

On Sunday 17 June 2007, Kumar Gala wrote:
> I commented on some minor nits with the patches. =A0I'm probably ok =A0
> with patches 1-7 going in. =A0I'm not ready for 8 at this point, we =A0
> need to do more proper cleanup to get 85xx/cpm2 support into a =A0
> multiplatforms single kernel state.

Ok, makes sense. I've fixed up the other patches according to
your comments (did not change 8xx stuff though) and pushed
it out to
git://git.kernel.org/pub/scm/linux/kernel/git/arnd/cell-2.6 powerpc-kconfig

Paul, please pull from there, I'll remember not to try messing with
32 bit in the future but wanted to get this in after spending so
much work on it.

	Arnd <><

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [patch 00/13] CPU selection Kconfig cleanup, take 3
  2007-06-17 23:09             ` Arnd Bergmann
@ 2007-06-18  4:32               ` Kumar Gala
  2007-06-19  0:05                 ` Kumar Gala
  0 siblings, 1 reply; 31+ messages in thread
From: Kumar Gala @ 2007-06-18  4:32 UTC (permalink / raw)
  To: Paul Mackerras; +Cc: linuxppc-dev list, Arnd Bergmann, Stephen Rothwell


On Jun 17, 2007, at 6:09 PM, Arnd Bergmann wrote:

> On Sunday 17 June 2007, Kumar Gala wrote:
>> I commented on some minor nits with the patches.  I'm probably ok
>> with patches 1-7 going in.  I'm not ready for 8 at this point, we
>> need to do more proper cleanup to get 85xx/cpm2 support into a
>> multiplatforms single kernel state.
>
> Ok, makes sense. I've fixed up the other patches according to
> your comments (did not change 8xx stuff though) and pushed
> it out to
> git://git.kernel.org/pub/scm/linux/kernel/git/arnd/cell-2.6 powerpc- 
> kconfig
>
> Paul, please pull from there, I'll remember not to try messing with
> 32 bit in the future but wanted to get this in after spending so
> much work on it.

Paul,

I'll pull these into my tree with a bunch of other ppc32/embedded  
related patches for you to pull all at once since I've got other  
changes that will depend on them.

- k

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [patch 00/13] CPU selection Kconfig cleanup, take 3
  2007-06-18  4:32               ` Kumar Gala
@ 2007-06-19  0:05                 ` Kumar Gala
  0 siblings, 0 replies; 31+ messages in thread
From: Kumar Gala @ 2007-06-19  0:05 UTC (permalink / raw)
  To: Paul Mackerras; +Cc: linuxppc-dev list, Arnd Bergmann, Stephen Rothwell

On Jun 17, 2007, at 6:09 PM, Arnd Bergmann wrote:

> On Sunday 17 June 2007, Kumar Gala wrote:
>> I commented on some minor nits with the patches.  I'm probably ok
>> with patches 1-7 going in.  I'm not ready for 8 at this point, we
>> need to do more proper cleanup to get 85xx/cpm2 support into a
>> multiplatforms single kernel state.
>
> Ok, makes sense. I've fixed up the other patches according to
> your comments (did not change 8xx stuff though) and pushed
> it out to
> git://git.kernel.org/pub/scm/linux/kernel/git/arnd/cell-2.6 powerpc- 
> kconfig
>
> Paul, please pull from there, I'll remember not to try messing with
> 32 bit in the future but wanted to get this in after spending so
> much work on it.

Paul,

I'll pull these into my tree with a bunch of other ppc32/embedded  
related patches for you to pull all at once since I've got other  
changes that will depend on them.

- k

^ permalink raw reply	[flat|nested] 31+ messages in thread

end of thread, other threads:[~2007-06-19  0:05 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-06-12 16:30 [patch 00/13] CPU selection Kconfig cleanup, take 3 arnd
2007-06-12 16:30 ` [patch 01/13] powerpc: split out CPU specific options into a new Kconfig file arnd
2007-06-12 16:30 ` [patch 02/13] powerpc: move 82xx/83xx/86xx Kconfig options to platform selection arnd
2007-06-12 16:30 ` [patch 03/13] powerpc: rename add_bridge to avoid namespace clashes arnd
2007-06-12 16:30 ` [patch 04/13] powerpc: multiplatformize 8{2,3,6}xx configuration arnd
2007-06-12 16:30 ` [patch 05/13] powerpc: multiplatformize embedded6xx configuration arnd
2007-06-12 16:30 ` [patch 06/13] powerpc: multiplatformize 52xx configuration arnd
2007-06-12 16:30 ` [patch 07/13] powerpc: multiplatformize 85xx configuration arnd
2007-06-12 16:30 ` [patch 08/13] powerpc: autoselect PPC_MULTIPLATFORM arnd
2007-06-12 16:30 ` [patch 09/13] powerpc: autoselect optimal -mcpu= flag by platform arnd
2007-06-12 16:30 ` [patch 10/13] powerpc: mpc82xx_ads build fix arnd
2007-06-12 16:30 ` [patch 11/13] powerpc: killl isa_{io,mem}_base definitions for !PCI arnd
2007-06-12 16:30 ` [patch 12/13] powerpc: fix building without PCI arnd
2007-06-14  1:44   ` Paul Mackerras
2007-06-14  7:58     ` Arnd Bergmann
2007-06-12 16:30 ` [patch 13/13] disallow building powermac and tsi108 " arnd
2007-06-14  1:46 ` [patch 00/13] CPU selection Kconfig cleanup, take 3 Paul Mackerras
2007-06-14 13:33   ` Kumar Gala
2007-06-14 23:51     ` Arnd Bergmann
2007-06-16 23:52       ` Kumar Gala
2007-06-17  0:14         ` Arnd Bergmann
2007-06-17  0:22           ` Segher Boessenkool
2007-06-17 14:46           ` Kumar Gala
2007-06-17 23:09             ` Arnd Bergmann
2007-06-18  4:32               ` Kumar Gala
2007-06-19  0:05                 ` Kumar Gala
2007-06-15 18:28     ` Kim Phillips
2007-06-16 23:48       ` Kumar Gala
2007-06-16  0:46     ` Benjamin Herrenschmidt
2007-06-16 23:47       ` Kumar Gala
2007-06-17  0:19         ` Segher Boessenkool

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).