* [PATCH 0/6] Initial multi-platform support
@ 2012-08-29 22:49 Rob Herring
2012-08-29 22:49 ` [PATCH 1/6] ARM: move ARCH config definitions into mach dirs Rob Herring
` (6 more replies)
0 siblings, 7 replies; 28+ messages in thread
From: Rob Herring @ 2012-08-29 22:49 UTC (permalink / raw)
To: linux-arm-kernel
From: Rob Herring <rob.herring@calxeda.com>
This series enables initial multi-platform support for highbank, mvebu,
socfpga, picoxcell, and vexpress.
There's a couple of issues which I'm aware of:
- DEBUG_LL does not work (even for 1 platform).
- make dtbs does not work. It needs to be changes such that the build
will iterate over mach-dirs instead of using MACHINE
This series is dependent on gpio.h clean-up and is available here:
git://sources.calxeda.com/kernel/linux.git multi-plat
Rob
Arnd Bergmann (1):
ARM: vexpress: remove dependency on mach/* headers
Rob Herring (5):
ARM: move ARCH config definitions into mach dirs
ARM: introduce Kconfig.mach
ARM: picoxcell: header fixes for multi-platform
ARM: initial multiplatform support
ARM: update defconfigs
arch/arm/Kconfig | 923 +-------------------
arch/arm/Kconfig.mach | 585 +++++++++++++
arch/arm/Makefile | 155 ++--
arch/arm/boot/compressed/misc.c | 6 +
arch/arm/configs/acs5k_defconfig | 2 +-
arch/arm/configs/acs5k_tiny_defconfig | 2 +-
arch/arm/configs/afeb9260_defconfig | 2 +-
arch/arm/configs/ag5evm_defconfig | 2 +-
arch/arm/configs/am200epdkit_defconfig | 2 +-
arch/arm/configs/ap4evb_defconfig | 2 +-
arch/arm/configs/armadillo800eva_defconfig | 2 +-
arch/arm/configs/assabet_defconfig | 2 +-
arch/arm/configs/at91_dt_defconfig | 2 +-
arch/arm/configs/at91rm9200_defconfig | 2 +-
arch/arm/configs/at91sam9260_defconfig | 2 +-
arch/arm/configs/at91sam9261_defconfig | 2 +-
arch/arm/configs/at91sam9263_defconfig | 2 +-
arch/arm/configs/at91sam9g20_defconfig | 2 +-
arch/arm/configs/at91sam9g45_defconfig | 2 +-
arch/arm/configs/at91sam9rl_defconfig | 2 +-
arch/arm/configs/at91x40_defconfig | 2 +-
arch/arm/configs/badge4_defconfig | 2 +-
arch/arm/configs/bcmring_defconfig | 2 +-
arch/arm/configs/bonito_defconfig | 2 +-
arch/arm/configs/cam60_defconfig | 2 +-
arch/arm/configs/cerfcube_defconfig | 2 +-
arch/arm/configs/cm_x2xx_defconfig | 2 +-
arch/arm/configs/cm_x300_defconfig | 2 +-
arch/arm/configs/cns3420vb_defconfig | 2 +-
arch/arm/configs/colibri_pxa270_defconfig | 2 +-
arch/arm/configs/colibri_pxa300_defconfig | 2 +-
arch/arm/configs/collie_defconfig | 2 +-
arch/arm/configs/corgi_defconfig | 2 +-
arch/arm/configs/cpu9260_defconfig | 2 +-
arch/arm/configs/cpu9g20_defconfig | 2 +-
arch/arm/configs/da8xx_omapl_defconfig | 2 +-
arch/arm/configs/davinci_all_defconfig | 2 +-
arch/arm/configs/dove_defconfig | 2 +-
arch/arm/configs/ebsa110_defconfig | 2 +-
arch/arm/configs/edb7211_defconfig | 2 +-
arch/arm/configs/em_x270_defconfig | 2 +-
arch/arm/configs/ep93xx_defconfig | 2 +-
arch/arm/configs/eseries_pxa_defconfig | 2 +-
arch/arm/configs/exynos4_defconfig | 2 +-
arch/arm/configs/exynos_defconfig | 4 +-
arch/arm/configs/ezx_defconfig | 2 +-
arch/arm/configs/footbridge_defconfig | 2 +-
arch/arm/configs/fortunet_defconfig | 2 +-
arch/arm/configs/g3evm_defconfig | 2 +-
arch/arm/configs/g4evm_defconfig | 2 +-
arch/arm/configs/h3600_defconfig | 2 +-
arch/arm/configs/h5000_defconfig | 2 +-
arch/arm/configs/h7201_defconfig | 2 +-
arch/arm/configs/h7202_defconfig | 2 +-
arch/arm/configs/hackkit_defconfig | 2 +-
arch/arm/configs/imote2_defconfig | 2 +-
arch/arm/configs/imx_v4_v5_defconfig | 2 +-
arch/arm/configs/imx_v6_v7_defconfig | 2 +-
arch/arm/configs/integrator_defconfig | 2 +-
arch/arm/configs/iop13xx_defconfig | 2 +-
arch/arm/configs/iop32x_defconfig | 2 +-
arch/arm/configs/iop33x_defconfig | 2 +-
arch/arm/configs/ixp4xx_defconfig | 2 +-
arch/arm/configs/jornada720_defconfig | 2 +-
arch/arm/configs/kirkwood_defconfig | 2 +-
arch/arm/configs/kota2_defconfig | 2 +-
arch/arm/configs/ks8695_defconfig | 2 +-
arch/arm/configs/kzm9d_defconfig | 2 +-
arch/arm/configs/kzm9g_defconfig | 2 +-
arch/arm/configs/lart_defconfig | 2 +-
arch/arm/configs/lpc32xx_defconfig | 2 +-
arch/arm/configs/lpd270_defconfig | 2 +-
arch/arm/configs/lubbock_defconfig | 2 +-
arch/arm/configs/mackerel_defconfig | 2 +-
arch/arm/configs/magician_defconfig | 2 +-
arch/arm/configs/mainstone_defconfig | 2 +-
arch/arm/configs/marzen_defconfig | 2 +-
arch/arm/configs/mini2440_defconfig | 2 +-
arch/arm/configs/mmp2_defconfig | 2 +-
arch/arm/configs/msm_defconfig | 2 +-
arch/arm/configs/mv78xx0_defconfig | 2 +-
arch/arm/configs/mvebu_defconfig | 2 +-
arch/arm/configs/mxs_defconfig | 2 +-
arch/arm/configs/neponset_defconfig | 2 +-
arch/arm/configs/netwinder_defconfig | 2 +-
arch/arm/configs/netx_defconfig | 2 +-
arch/arm/configs/nhk8815_defconfig | 2 +-
arch/arm/configs/nuc910_defconfig | 2 +-
arch/arm/configs/nuc950_defconfig | 2 +-
arch/arm/configs/nuc960_defconfig | 2 +-
arch/arm/configs/omap1_defconfig | 2 +-
arch/arm/configs/omap2plus_defconfig | 2 +-
arch/arm/configs/orion5x_defconfig | 2 +-
arch/arm/configs/palmz72_defconfig | 2 +-
arch/arm/configs/pcm027_defconfig | 2 +-
arch/arm/configs/pleb_defconfig | 2 +-
arch/arm/configs/pnx4008_defconfig | 2 +-
arch/arm/configs/prima2_defconfig | 2 +-
arch/arm/configs/pxa168_defconfig | 2 +-
arch/arm/configs/pxa255-idp_defconfig | 2 +-
arch/arm/configs/pxa3xx_defconfig | 2 +-
arch/arm/configs/pxa910_defconfig | 2 +-
arch/arm/configs/qil-a9260_defconfig | 2 +-
arch/arm/configs/raumfeld_defconfig | 2 +-
arch/arm/configs/realview-smp_defconfig | 2 +-
arch/arm/configs/realview_defconfig | 2 +-
arch/arm/configs/rpc_defconfig | 2 +-
arch/arm/configs/s3c2410_defconfig | 2 +-
arch/arm/configs/s3c6400_defconfig | 2 +-
arch/arm/configs/s5p64x0_defconfig | 2 +-
arch/arm/configs/s5pc100_defconfig | 2 +-
arch/arm/configs/s5pv210_defconfig | 2 +-
arch/arm/configs/sam9_l9260_defconfig | 2 +-
arch/arm/configs/shannon_defconfig | 2 +-
arch/arm/configs/shark_defconfig | 2 +-
arch/arm/configs/simpad_defconfig | 2 +-
arch/arm/configs/socfpga_defconfig | 2 +-
arch/arm/configs/spear13xx_defconfig | 2 +-
arch/arm/configs/spear6xx_defconfig | 2 +-
arch/arm/configs/spitz_defconfig | 2 +-
arch/arm/configs/stamp9g20_defconfig | 2 +-
arch/arm/configs/tct_hammer_defconfig | 2 +-
arch/arm/configs/tegra_defconfig | 2 +-
arch/arm/configs/trizeps4_defconfig | 2 +-
arch/arm/configs/u300_defconfig | 2 +-
arch/arm/configs/u8500_defconfig | 2 +-
arch/arm/configs/usb-a9260_defconfig | 2 +-
arch/arm/configs/vexpress_defconfig | 2 +-
arch/arm/configs/viper_defconfig | 2 +-
arch/arm/configs/xcep_defconfig | 2 +-
arch/arm/configs/zeus_defconfig | 2 +-
arch/arm/include/asm/timex.h | 4 +
arch/arm/mach-at91/Kconfig | 8 +
arch/arm/mach-bcmring/Kconfig | 9 +
arch/arm/mach-clps711x/Kconfig | 6 +
arch/arm/mach-cns3xxx/Kconfig | 9 +
arch/arm/mach-davinci/Kconfig | 12 +
arch/arm/mach-dove/Kconfig | 9 +
arch/arm/mach-ebsa110/Kconfig | 9 +
arch/arm/mach-ep93xx/Kconfig | 11 +
arch/arm/mach-exynos/Kconfig | 16 +
arch/arm/mach-footbridge/Kconfig | 9 +
arch/arm/mach-gemini/Kconfig | 6 +
arch/arm/mach-h720x/Kconfig | 6 +
arch/arm/mach-highbank/Kconfig | 15 +
arch/arm/mach-integrator/Kconfig | 16 +
arch/arm/mach-iop13xx/Kconfig | 11 +
arch/arm/mach-iop32x/Kconfig | 10 +
arch/arm/mach-iop33x/Kconfig | 10 +
arch/arm/mach-ixp4xx/Kconfig | 11 +
arch/arm/mach-kirkwood/Kconfig | 9 +
arch/arm/mach-ks8695/Kconfig | 7 +
arch/arm/mach-lpc32xx/Kconfig | 12 +
arch/arm/mach-mmp/Kconfig | 12 +
arch/arm/mach-msm/Kconfig | 7 +
arch/arm/mach-mv78xx0/Kconfig | 9 +
arch/arm/mach-mvebu/Kconfig | 10 +
arch/arm/mach-mvebu/Makefile | 2 +
arch/arm/mach-mxs/Kconfig | 11 +
arch/arm/mach-netx/Kconfig | 7 +
arch/arm/mach-nomadik/Kconfig | 11 +
arch/arm/mach-orion5x/Kconfig | 9 +
arch/arm/mach-picoxcell/Kconfig | 14 +
arch/arm/mach-picoxcell/common.c | 6 +-
arch/arm/mach-picoxcell/include/mach/map.h | 25 -
.../mach-picoxcell/include/mach/picoxcell_soc.h | 25 -
arch/arm/mach-picoxcell/picoxcell_soc.h | 25 +
arch/arm/mach-pnx4008/Kconfig | 5 +
arch/arm/mach-pxa/Kconfig | 16 +
arch/arm/mach-realview/Kconfig | 15 +
arch/arm/mach-rpc/Kconfig | 13 +
arch/arm/mach-s3c24xx/Kconfig | 13 +
arch/arm/mach-s3c64xx/Kconfig | 26 +
arch/arm/mach-s5p64x0/Kconfig | 13 +
arch/arm/mach-s5pc100/Kconfig | 12 +
arch/arm/mach-s5pv210/Kconfig | 17 +
arch/arm/mach-sa1100/Kconfig | 17 +
arch/arm/mach-shark/Kconfig | 11 +
arch/arm/mach-shmobile/Kconfig | 14 +
arch/arm/mach-socfpga/Kconfig | 16 +
arch/arm/mach-tegra/Kconfig | 13 +
arch/arm/mach-u300/Kconfig | 14 +
arch/arm/mach-ux500/Kconfig | 11 +
arch/arm/mach-versatile/Kconfig | 16 +
arch/arm/mach-vexpress/Kconfig | 16 +
arch/arm/mach-vexpress/Makefile | 2 +
arch/arm/mach-vexpress/ct-ca9x4.c | 1 +
arch/arm/mach-vexpress/include/mach/irqs.h | 2 +
arch/arm/mach-vt8500/Kconfig | 8 +
arch/arm/mach-w90x900/Kconfig | 8 +
arch/arm/mach-zynq/Kconfig | 10 +
arch/arm/plat-mxc/Kconfig | 11 +
arch/arm/plat-omap/Kconfig | 9 +
arch/arm/plat-spear/Kconfig | 9 +
arch/arm/plat-versatile/Makefile | 2 +
195 files changed, 1455 insertions(+), 1178 deletions(-)
create mode 100644 arch/arm/Kconfig.mach
create mode 100644 arch/arm/mach-ebsa110/Kconfig
create mode 100644 arch/arm/mach-highbank/Kconfig
create mode 100644 arch/arm/mach-lpc32xx/Kconfig
create mode 100644 arch/arm/mach-picoxcell/Kconfig
delete mode 100644 arch/arm/mach-picoxcell/include/mach/map.h
delete mode 100644 arch/arm/mach-picoxcell/include/mach/picoxcell_soc.h
create mode 100644 arch/arm/mach-picoxcell/picoxcell_soc.h
create mode 100644 arch/arm/mach-pnx4008/Kconfig
create mode 100644 arch/arm/mach-rpc/Kconfig
create mode 100644 arch/arm/mach-shark/Kconfig
create mode 100644 arch/arm/mach-socfpga/Kconfig
create mode 100644 arch/arm/mach-zynq/Kconfig
--
1.7.9.5
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH 1/6] ARM: move ARCH config definitions into mach dirs
2012-08-29 22:49 [PATCH 0/6] Initial multi-platform support Rob Herring
@ 2012-08-29 22:49 ` Rob Herring
2012-08-29 23:14 ` H Hartley Sweeten
2012-08-29 23:31 ` Russell King - ARM Linux
2012-08-29 22:49 ` [PATCH 2/6] ARM: introduce Kconfig.mach Rob Herring
` (5 subsequent siblings)
6 siblings, 2 replies; 28+ messages in thread
From: Rob Herring @ 2012-08-29 22:49 UTC (permalink / raw)
To: linux-arm-kernel
From: Rob Herring <rob.herring@calxeda.com>
In preparation for mulit-platform support, convert all platforms' ARCH_
definition to a hidden option and create a new choice option.
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
---
arch/arm/Kconfig | 650 ++++++++------------------------------
arch/arm/mach-at91/Kconfig | 8 +
arch/arm/mach-bcmring/Kconfig | 9 +
arch/arm/mach-clps711x/Kconfig | 6 +
arch/arm/mach-cns3xxx/Kconfig | 9 +
arch/arm/mach-davinci/Kconfig | 12 +
arch/arm/mach-dove/Kconfig | 9 +
arch/arm/mach-ebsa110/Kconfig | 9 +
arch/arm/mach-ep93xx/Kconfig | 11 +
arch/arm/mach-exynos/Kconfig | 16 +
| 9 +
arch/arm/mach-gemini/Kconfig | 6 +
arch/arm/mach-h720x/Kconfig | 6 +
arch/arm/mach-highbank/Kconfig | 15 +
arch/arm/mach-integrator/Kconfig | 16 +
arch/arm/mach-iop13xx/Kconfig | 11 +
arch/arm/mach-iop32x/Kconfig | 10 +
arch/arm/mach-iop33x/Kconfig | 10 +
arch/arm/mach-ixp4xx/Kconfig | 11 +
arch/arm/mach-kirkwood/Kconfig | 9 +
arch/arm/mach-ks8695/Kconfig | 7 +
arch/arm/mach-lpc32xx/Kconfig | 12 +
arch/arm/mach-mmp/Kconfig | 12 +
arch/arm/mach-msm/Kconfig | 7 +
arch/arm/mach-mv78xx0/Kconfig | 9 +
arch/arm/mach-mvebu/Kconfig | 10 +
arch/arm/mach-mxs/Kconfig | 11 +
arch/arm/mach-netx/Kconfig | 7 +
arch/arm/mach-nomadik/Kconfig | 11 +
arch/arm/mach-orion5x/Kconfig | 9 +
arch/arm/mach-picoxcell/Kconfig | 14 +
arch/arm/mach-pnx4008/Kconfig | 5 +
arch/arm/mach-pxa/Kconfig | 16 +
arch/arm/mach-realview/Kconfig | 15 +
arch/arm/mach-rpc/Kconfig | 13 +
arch/arm/mach-s3c24xx/Kconfig | 13 +
arch/arm/mach-s3c64xx/Kconfig | 26 ++
arch/arm/mach-s5p64x0/Kconfig | 13 +
arch/arm/mach-s5pc100/Kconfig | 12 +
arch/arm/mach-s5pv210/Kconfig | 17 +
arch/arm/mach-sa1100/Kconfig | 17 +
arch/arm/mach-shark/Kconfig | 11 +
arch/arm/mach-shmobile/Kconfig | 14 +
arch/arm/mach-socfpga/Kconfig | 16 +
arch/arm/mach-tegra/Kconfig | 13 +
arch/arm/mach-u300/Kconfig | 14 +
arch/arm/mach-ux500/Kconfig | 11 +
arch/arm/mach-versatile/Kconfig | 16 +
arch/arm/mach-vexpress/Kconfig | 16 +
arch/arm/mach-vt8500/Kconfig | 8 +
arch/arm/mach-w90x900/Kconfig | 8 +
arch/arm/mach-zynq/Kconfig | 10 +
arch/arm/plat-mxc/Kconfig | 11 +
arch/arm/plat-omap/Kconfig | 9 +
arch/arm/plat-spear/Kconfig | 9 +
55 files changed, 742 insertions(+), 522 deletions(-)
create mode 100644 arch/arm/mach-ebsa110/Kconfig
create mode 100644 arch/arm/mach-highbank/Kconfig
create mode 100644 arch/arm/mach-lpc32xx/Kconfig
create mode 100644 arch/arm/mach-picoxcell/Kconfig
create mode 100644 arch/arm/mach-pnx4008/Kconfig
create mode 100644 arch/arm/mach-rpc/Kconfig
create mode 100644 arch/arm/mach-shark/Kconfig
create mode 100644 arch/arm/mach-socfpga/Kconfig
create mode 100644 arch/arm/mach-zynq/Kconfig
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 3557f12..3ad82c6 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -256,424 +256,213 @@ choice
prompt "ARM system type"
default ARCH_VERSATILE
-config ARCH_SOCFPGA
+config ARCH_SOCFPGA_CHOICE
bool "Altera SOCFPGA family"
- select ARCH_WANT_OPTIONAL_GPIOLIB
- select ARM_AMBA
- select ARM_GIC
- select CACHE_L2X0
- select CLKDEV_LOOKUP
- select COMMON_CLK
- select CPU_V7
- select DW_APB_TIMER
- select DW_APB_TIMER_OF
- select GENERIC_CLOCKEVENTS
- select GPIO_PL061 if GPIOLIB
- select HAVE_ARM_SCU
- select SPARSE_IRQ
- select USE_OF
+ select ARCH_SOCFPGA
help
This enables support for Altera SOCFPGA Cyclone V platform
-config ARCH_INTEGRATOR
+config ARCH_INTEGRATOR_CHOICE
bool "ARM Ltd. Integrator family"
- select ARM_AMBA
- select ARCH_HAS_CPUFREQ
- select COMMON_CLK
- select CLK_VERSATILE
- select HAVE_TCM
- select ICST
- select GENERIC_CLOCKEVENTS
- select PLAT_VERSATILE
- select PLAT_VERSATILE_FPGA_IRQ
- select NEED_MACH_IO_H
- select NEED_MACH_MEMORY_H
- select SPARSE_IRQ
- select MULTI_IRQ_HANDLER
+ select ARCH_INTEGRATOR
help
Support for ARM's Integrator platform.
-config ARCH_REALVIEW
+config ARCH_REALVIEW_CHOICE
bool "ARM Ltd. RealView family"
- select ARM_AMBA
- select CLKDEV_LOOKUP
- select HAVE_MACH_CLKDEV
- select ICST
- select GENERIC_CLOCKEVENTS
- select ARCH_WANT_OPTIONAL_GPIOLIB
- select PLAT_VERSATILE
- select PLAT_VERSATILE_CLOCK
- select PLAT_VERSATILE_CLCD
- select ARM_TIMER_SP804
- select GPIO_PL061 if GPIOLIB
- select NEED_MACH_MEMORY_H
+ select ARCH_REALVIEW
help
This enables support for ARM Ltd RealView boards.
-config ARCH_VERSATILE
+config ARCH_VERSATILE_CHOICE
bool "ARM Ltd. Versatile family"
- select ARM_AMBA
- select ARM_VIC
- select CLKDEV_LOOKUP
- select HAVE_MACH_CLKDEV
- select ICST
- select GENERIC_CLOCKEVENTS
- select ARCH_WANT_OPTIONAL_GPIOLIB
- select NEED_MACH_IO_H if PCI
- select PLAT_VERSATILE
- select PLAT_VERSATILE_CLOCK
- select PLAT_VERSATILE_CLCD
- select PLAT_VERSATILE_FPGA_IRQ
- select ARM_TIMER_SP804
+ select ARCH_VERSATILE
help
This enables support for ARM Ltd Versatile board.
-config ARCH_VEXPRESS
+config ARCH_VEXPRESS_CHOICE
bool "ARM Ltd. Versatile Express family"
- select ARCH_WANT_OPTIONAL_GPIOLIB
- select ARM_AMBA
- select ARM_TIMER_SP804
- select CLKDEV_LOOKUP
- select COMMON_CLK
- select GENERIC_CLOCKEVENTS
- select HAVE_CLK
- select HAVE_PATA_PLATFORM
- select ICST
- select NO_IOPORT
- select PLAT_VERSATILE
- select PLAT_VERSATILE_CLCD
- select REGULATOR_FIXED_VOLTAGE if REGULATOR
+ select ARCH_VEXPRESS
help
This enables support for the ARM Ltd Versatile Express boards.
-config ARCH_AT91
+config ARCH_AT91_CHOICE
bool "Atmel AT91"
- select ARCH_REQUIRE_GPIOLIB
- select HAVE_CLK
- select CLKDEV_LOOKUP
- select IRQ_DOMAIN
- select NEED_MACH_IO_H if PCCARD
+ select ARCH_AT91
help
This enables support for systems based on Atmel
AT91RM9200 and AT91SAM9* processors.
-config ARCH_BCMRING
+config ARCH_BCMRING_CHOICE
bool "Broadcom BCMRING"
depends on MMU
- select CPU_V6
- select ARM_AMBA
- select ARM_TIMER_SP804
- select CLKDEV_LOOKUP
- select GENERIC_CLOCKEVENTS
- select ARCH_WANT_OPTIONAL_GPIOLIB
+ select ARCH_BCMRING
help
Support for Broadcom's BCMRing platform.
-config ARCH_HIGHBANK
+config ARCH_HIGHBANK_CHOICE
bool "Calxeda Highbank-based"
- select ARCH_WANT_OPTIONAL_GPIOLIB
- select ARM_AMBA
- select ARM_GIC
- select ARM_TIMER_SP804
- select CACHE_L2X0
- select CLKDEV_LOOKUP
- select COMMON_CLK
- select CPU_V7
- select GENERIC_CLOCKEVENTS
- select HAVE_ARM_SCU
- select HAVE_SMP
- select SPARSE_IRQ
- select USE_OF
+ select ARCH_HIGHBANK
help
Support for the Calxeda Highbank SoC based boards.
-config ARCH_CLPS711X
+config ARCH_CLPS711X_CHOICE
bool "Cirrus Logic CLPS711x/EP721x/EP731x-based"
- select CPU_ARM720T
- select ARCH_USES_GETTIMEOFFSET
- select NEED_MACH_MEMORY_H
+ select ARCH_CLPS711X
help
Support for Cirrus Logic 711x/721x/731x based boards.
-config ARCH_CNS3XXX
+config ARCH_CNS3XXX_CHOICE
bool "Cavium Networks CNS3XXX family"
- select CPU_V6K
- select GENERIC_CLOCKEVENTS
- select ARM_GIC
- select MIGHT_HAVE_CACHE_L2X0
- select MIGHT_HAVE_PCI
- select PCI_DOMAINS if PCI
+ select ARCH_CNS3XXX
help
Support for Cavium Networks CNS3XXX platform.
-config ARCH_GEMINI
+config ARCH_GEMINI_CHOICE
bool "Cortina Systems Gemini"
- select CPU_FA526
- select ARCH_REQUIRE_GPIOLIB
- select ARCH_USES_GETTIMEOFFSET
+ select ARCH_GEMINI
help
Support for the Cortina Systems Gemini family SoCs
-config ARCH_PRIMA2
+config ARCH_PRIMA2_CHOICE
bool "CSR SiRFSoC PRIMA2 ARM Cortex A9 Platform"
- select CPU_V7
- select NO_IOPORT
- select ARCH_REQUIRE_GPIOLIB
- select GENERIC_CLOCKEVENTS
- select CLKDEV_LOOKUP
- select GENERIC_IRQ_CHIP
- select MIGHT_HAVE_CACHE_L2X0
- select PINCTRL
- select PINCTRL_SIRF
- select USE_OF
- select ZONE_DMA
+ select ARCH_PRIMA2
help
Support for CSR SiRFSoC ARM Cortex A9 Platform
-config ARCH_EBSA110
+config ARCH_EBSA110_CHOICE
bool "EBSA-110"
- select CPU_SA110
- select ISA
- select NO_IOPORT
- select ARCH_USES_GETTIMEOFFSET
- select NEED_MACH_IO_H
- select NEED_MACH_MEMORY_H
+ select ARCH_EBSA110
help
This is an evaluation board for the StrongARM processor available
from Digital. It has limited hardware on-board, including an
Ethernet interface, two PCMCIA sockets, two serial ports and a
parallel port.
-config ARCH_EP93XX
+config ARCH_EP93XX_CHOICE
bool "EP93xx-based"
- select CPU_ARM920T
- select ARM_AMBA
- select ARM_VIC
- select CLKDEV_LOOKUP
- select ARCH_REQUIRE_GPIOLIB
- select ARCH_HAS_HOLES_MEMORYMODEL
- select ARCH_USES_GETTIMEOFFSET
- select NEED_MACH_MEMORY_H
+ select ARCH_EP93XX
help
This enables support for the Cirrus EP93xx series of CPUs.
-config ARCH_FOOTBRIDGE
+config ARCH_FOOTBRIDGE_CHOICE
bool "FootBridge"
- select CPU_SA110
- select FOOTBRIDGE
- select GENERIC_CLOCKEVENTS
- select HAVE_IDE
- select NEED_MACH_IO_H
- select NEED_MACH_MEMORY_H
+ select ARCH_FOOTBRIDGE
help
Support for systems based on the DC21285 companion chip
("FootBridge"), such as the Simtec CATS and the Rebel NetWinder.
-config ARCH_MXC
+config ARCH_MXC_CHOICE
bool "Freescale MXC/iMX-based"
- select GENERIC_CLOCKEVENTS
- select ARCH_REQUIRE_GPIOLIB
- select CLKDEV_LOOKUP
- select CLKSRC_MMIO
- select GENERIC_IRQ_CHIP
- select MULTI_IRQ_HANDLER
- select SPARSE_IRQ
- select USE_OF
+ select ARCH_MXC
help
Support for Freescale MXC/iMX-based family of processors
-config ARCH_MXS
+config ARCH_MXS_CHOICE
bool "Freescale MXS-based"
- select GENERIC_CLOCKEVENTS
- select ARCH_REQUIRE_GPIOLIB
- select CLKDEV_LOOKUP
- select CLKSRC_MMIO
- select COMMON_CLK
- select HAVE_CLK_PREPARE
- select PINCTRL
- select USE_OF
+ select ARCH_MXS
help
Support for Freescale MXS-based family of processors
-config ARCH_NETX
+config ARCH_NETX_CHOICE
bool "Hilscher NetX based"
- select CLKSRC_MMIO
- select CPU_ARM926T
- select ARM_VIC
- select GENERIC_CLOCKEVENTS
+ select ARCH_NETX
help
This enables support for systems based on the Hilscher NetX Soc
-config ARCH_H720X
+config ARCH_H720X_CHOICE
bool "Hynix HMS720x-based"
- select CPU_ARM720T
- select ISA_DMA_API
- select ARCH_USES_GETTIMEOFFSET
+ select ARCH_H720X
help
This enables support for systems based on the Hynix HMS720x
-config ARCH_IOP13XX
+config ARCH_IOP13XX_CHOICE
bool "IOP13xx-based"
depends on MMU
- select CPU_XSC3
- select PLAT_IOP
- select PCI
- select ARCH_SUPPORTS_MSI
- select VMSPLIT_1G
- select NEED_MACH_IO_H
- select NEED_MACH_MEMORY_H
- select NEED_RET_TO_USER
+ select ARCH_IOP13XX
help
Support for Intel's IOP13XX (XScale) family of processors.
-config ARCH_IOP32X
+config ARCH_IOP32X_CHOICE
bool "IOP32x-based"
depends on MMU
- select CPU_XSCALE
- select NEED_MACH_GPIO_H
- select NEED_MACH_IO_H
- select NEED_RET_TO_USER
- select PLAT_IOP
- select PCI
- select ARCH_REQUIRE_GPIOLIB
+ select ARCH_IOP32X
help
Support for Intel's 80219 and IOP32X (XScale) family of
processors.
-config ARCH_IOP33X
+config ARCH_IOP33X_CHOICE
bool "IOP33x-based"
depends on MMU
- select CPU_XSCALE
- select NEED_MACH_GPIO_H
- select NEED_MACH_IO_H
- select NEED_RET_TO_USER
- select PLAT_IOP
- select PCI
- select ARCH_REQUIRE_GPIOLIB
+ select ARCH_IOP33X
help
Support for Intel's IOP33X (XScale) family of processors.
-config ARCH_IXP4XX
+config ARCH_IXP4XX_CHOICE
bool "IXP4xx-based"
depends on MMU
- select ARCH_HAS_DMA_SET_COHERENT_MASK
- select CLKSRC_MMIO
- select CPU_XSCALE
- select ARCH_REQUIRE_GPIOLIB
- select GENERIC_CLOCKEVENTS
- select MIGHT_HAVE_PCI
- select NEED_MACH_IO_H
- select DMABOUNCE if PCI
+ select ARCH_IXP4XX
help
Support for Intel's IXP4XX (XScale) family of processors.
-config ARCH_MVEBU
+config ARCH_MVEBU_CHOICE
bool "Marvell SOCs with Device Tree support"
- select GENERIC_CLOCKEVENTS
- select MULTI_IRQ_HANDLER
- select SPARSE_IRQ
- select CLKSRC_MMIO
- select GENERIC_IRQ_CHIP
- select IRQ_DOMAIN
- select COMMON_CLK
+ select ARCH_MVEBU
help
Support for the Marvell SoC Family with device tree support
-config ARCH_DOVE
+config ARCH_DOVE_CHOICE
bool "Marvell Dove"
- select CPU_V7
- select PCI
- select ARCH_REQUIRE_GPIOLIB
- select GENERIC_CLOCKEVENTS
- select NEED_MACH_IO_H
- select PLAT_ORION
+ select ARCH_DOVE
help
Support for the Marvell Dove SoC 88AP510
-config ARCH_KIRKWOOD
+config ARCH_KIRKWOOD_CHOICE
bool "Marvell Kirkwood"
- select CPU_FEROCEON
- select PCI
- select ARCH_REQUIRE_GPIOLIB
- select GENERIC_CLOCKEVENTS
- select NEED_MACH_IO_H
- select PLAT_ORION
+ select ARCH_KIRKWOOD
help
Support for the following Marvell Kirkwood series SoCs:
88F6180, 88F6192 and 88F6281.
-config ARCH_LPC32XX
+config ARCH_LPC32XX_CHOICE
bool "NXP LPC32XX"
- select CLKSRC_MMIO
- select CPU_ARM926T
- select ARCH_REQUIRE_GPIOLIB
- select HAVE_IDE
- select ARM_AMBA
- select USB_ARCH_HAS_OHCI
- select CLKDEV_LOOKUP
- select GENERIC_CLOCKEVENTS
- select USE_OF
- select HAVE_PWM
+ select ARCH_LPC32XX
help
Support for the NXP LPC32XX family of processors
-config ARCH_MV78XX0
+config ARCH_MV78XX0_CHOICE
bool "Marvell MV78xx0"
- select CPU_FEROCEON
- select PCI
- select ARCH_REQUIRE_GPIOLIB
- select GENERIC_CLOCKEVENTS
- select NEED_MACH_IO_H
- select PLAT_ORION
+ select ARCH_MV78XX0
help
Support for the following Marvell MV78xx0 series SoCs:
MV781x0, MV782x0.
-config ARCH_ORION5X
+config ARCH_ORION5X_CHOICE
bool "Marvell Orion"
depends on MMU
- select CPU_FEROCEON
- select PCI
- select ARCH_REQUIRE_GPIOLIB
- select GENERIC_CLOCKEVENTS
- select NEED_MACH_IO_H
- select PLAT_ORION
+ select ARCH_ORION5X
help
Support for the following Marvell Orion 5x series SoCs:
Orion-1 (5181), Orion-VoIP (5181L), Orion-NAS (5182),
Orion-2 (5281), Orion-1-90 (6183).
-config ARCH_MMP
+config ARCH_MMP_CHOICE
bool "Marvell PXA168/910/MMP2"
depends on MMU
- select ARCH_REQUIRE_GPIOLIB
- select CLKDEV_LOOKUP
- select GENERIC_CLOCKEVENTS
- select GPIO_PXA
- select IRQ_DOMAIN
- select PLAT_PXA
- select SPARSE_IRQ
- select GENERIC_ALLOCATOR
+ select ARCH_MMP
help
Support for Marvell's PXA168/PXA910(MMP) and MMP2 processor line.
-config ARCH_KS8695
+config ARCH_KS8695_CHOICE
bool "Micrel/Kendin KS8695"
- select CPU_ARM922T
- select ARCH_REQUIRE_GPIOLIB
- select ARCH_USES_GETTIMEOFFSET
- select NEED_MACH_MEMORY_H
+ select ARCH_KS8695
help
Support for Micrel/Kendin KS8695 "Centaur" (ARM922T) based
System-on-Chip devices.
-config ARCH_W90X900
+config ARCH_W90X900_CHOICE
bool "Nuvoton W90X900 CPU"
- select CPU_ARM926T
- select ARCH_REQUIRE_GPIOLIB
- select CLKDEV_LOOKUP
- select CLKSRC_MMIO
- select GENERIC_CLOCKEVENTS
+ select ARCH_W90X900
help
Support for Nuvoton (Winbond logic dept.) ARM9 processor,
At present, the w90x900 has been renamed nuc900, regarding
@@ -683,74 +472,37 @@ config ARCH_W90X900
<http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/
ConsumerElectronicsIC/ARMMicrocontroller/ARMMicrocontroller>
-config ARCH_TEGRA
+config ARCH_TEGRA_CHOICE
bool "NVIDIA Tegra"
- select CLKDEV_LOOKUP
- select CLKSRC_MMIO
- select GENERIC_CLOCKEVENTS
- select GENERIC_GPIO
- select HAVE_CLK
- select HAVE_SMP
- select MIGHT_HAVE_CACHE_L2X0
- select NEED_MACH_IO_H if PCI
- select ARCH_HAS_CPUFREQ
- select USE_OF
+ select ARCH_TEGRA
help
This enables support for NVIDIA Tegra based systems (Tegra APX,
Tegra 6xx and Tegra 2 series).
-config ARCH_PICOXCELL
+config ARCH_PICOXCELL_CHOICE
bool "Picochip picoXcell"
- select ARCH_REQUIRE_GPIOLIB
- select ARM_PATCH_PHYS_VIRT
- select ARM_VIC
- select CPU_V6K
- select DW_APB_TIMER
- select DW_APB_TIMER_OF
- select GENERIC_CLOCKEVENTS
- select GENERIC_GPIO
- select HAVE_TCM
- select NO_IOPORT
- select SPARSE_IRQ
- select USE_OF
+ select ARCH_PICOXCELL
help
This enables support for systems based on the Picochip picoXcell
family of Femtocell devices. The picoxcell support requires device tree
for all boards.
-config ARCH_PNX4008
+config ARCH_PNX4008_CHOICE
bool "Philips Nexperia PNX4008 Mobile"
- select CPU_ARM926T
- select CLKDEV_LOOKUP
- select ARCH_USES_GETTIMEOFFSET
+ select ARCH_PNX4008
help
This enables support for Philips PNX4008 mobile platform.
-config ARCH_PXA
+config ARCH_PXA_CHOICE
bool "PXA2xx/PXA3xx-based"
depends on MMU
- select ARCH_MTD_XIP
- select ARCH_HAS_CPUFREQ
- select CLKDEV_LOOKUP
- select CLKSRC_MMIO
- select ARCH_REQUIRE_GPIOLIB
- select GENERIC_CLOCKEVENTS
- select GPIO_PXA
- select PLAT_PXA
- select SPARSE_IRQ
- select AUTO_ZRELADDR
- select MULTI_IRQ_HANDLER
- select ARM_CPU_SUSPEND if PM
- select HAVE_IDE
+ select ARCH_PXA
help
Support for Intel/Marvell's PXA2xx/PXA3xx processor line.
-config ARCH_MSM
+config ARCH_MSM_CHOICE
bool "Qualcomm MSM"
- select HAVE_CLK
- select GENERIC_CLOCKEVENTS
- select ARCH_REQUIRE_GPIOLIB
- select CLKDEV_LOOKUP
+ select ARCH_MSM
help
Support for Qualcomm MSM/QSD based systems. This runs on the
apps processor of the MSM/QSD and depends on a shared memory
@@ -758,283 +510,121 @@ config ARCH_MSM
stack and controls some vital subsystems
(clock and power control, etc).
-config ARCH_SHMOBILE
+config ARCH_SHMOBILE_CHOICE
bool "Renesas SH-Mobile / R-Mobile"
- select HAVE_CLK
- select CLKDEV_LOOKUP
- select HAVE_MACH_CLKDEV
- select HAVE_SMP
- select GENERIC_CLOCKEVENTS
- select MIGHT_HAVE_CACHE_L2X0
- select NO_IOPORT
- select SPARSE_IRQ
- select MULTI_IRQ_HANDLER
- select PM_GENERIC_DOMAINS if PM
- select NEED_MACH_MEMORY_H
+ select ARCH_SHMOBILE
help
Support for Renesas's SH-Mobile and R-Mobile ARM platforms.
-config ARCH_RPC
+config ARCH_RPC_CHOICE
bool "RiscPC"
- select ARCH_ACORN
- select FIQ
- select ARCH_MAY_HAVE_PC_FDC
- select HAVE_PATA_PLATFORM
- select ISA_DMA_API
- select NO_IOPORT
- select ARCH_SPARSEMEM_ENABLE
- select ARCH_USES_GETTIMEOFFSET
- select HAVE_IDE
- select NEED_MACH_IO_H
- select NEED_MACH_MEMORY_H
+ select ARCH_RPC
help
On the Acorn Risc-PC, Linux can support the internal IDE disk and
CD-ROM interface, serial and parallel port, and the floppy drive.
-config ARCH_SA1100
+config ARCH_SA1100_CHOICE
bool "SA1100-based"
- select CLKSRC_MMIO
- select CPU_SA1100
- select ISA
- select ARCH_SPARSEMEM_ENABLE
- select ARCH_MTD_XIP
- select ARCH_HAS_CPUFREQ
- select CPU_FREQ
- select GENERIC_CLOCKEVENTS
- select CLKDEV_LOOKUP
- select ARCH_REQUIRE_GPIOLIB
- select HAVE_IDE
- select NEED_MACH_GPIO_H
- select NEED_MACH_MEMORY_H
- select SPARSE_IRQ
+ select ARCH_SA1100
help
Support for StrongARM 11x0 based boards.
-config ARCH_S3C24XX
+config ARCH_S3C24XX_CHOICE
bool "Samsung S3C24XX SoCs"
- select GENERIC_GPIO
- select ARCH_HAS_CPUFREQ
- select HAVE_CLK
- select CLKDEV_LOOKUP
- select ARCH_USES_GETTIMEOFFSET
- select HAVE_S3C2410_I2C if I2C
- select HAVE_S3C_RTC if RTC_CLASS
- select HAVE_S3C2410_WATCHDOG if WATCHDOG
- select NEED_MACH_GPIO_H
- select NEED_MACH_IO_H
+ select ARCH_S3C24XX
help
Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443
and S3C2450 SoCs based systems, such as the Simtec Electronics BAST
(<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or the
Samsung SMDK2410 development board (and derivatives).
-config ARCH_S3C64XX
+config ARCH_S3C64XX_CHOICE
bool "Samsung S3C64XX"
- select PLAT_SAMSUNG
- select CPU_V6
- select ARM_VIC
- select HAVE_CLK
- select HAVE_TCM
- select CLKDEV_LOOKUP
- select NO_IOPORT
- select ARCH_USES_GETTIMEOFFSET
- select ARCH_HAS_CPUFREQ
- select ARCH_REQUIRE_GPIOLIB
- select SAMSUNG_CLKSRC
- select SAMSUNG_IRQ_VIC_TIMER
- select S3C_GPIO_TRACK
- select S3C_DEV_NAND
- select USB_ARCH_HAS_OHCI
- select SAMSUNG_GPIOLIB_4BIT
- select HAVE_S3C2410_I2C if I2C
- select HAVE_S3C2410_WATCHDOG if WATCHDOG
- select NEED_MACH_GPIO_H
+ select ARCH_S3C64XX
help
Samsung S3C64XX series based systems
-config ARCH_S5P64X0
+config ARCH_S5P64X0_CHOICE
bool "Samsung S5P6440 S5P6450"
- select CPU_V6
- select GENERIC_GPIO
- select HAVE_CLK
- select CLKDEV_LOOKUP
- select CLKSRC_MMIO
- select HAVE_S3C2410_WATCHDOG if WATCHDOG
- select GENERIC_CLOCKEVENTS
- select HAVE_S3C2410_I2C if I2C
- select HAVE_S3C_RTC if RTC_CLASS
- select NEED_MACH_GPIO_H
+ select ARCH_S5P64X0
help
Samsung S5P64X0 CPU based systems, such as the Samsung SMDK6440,
SMDK6450.
-config ARCH_S5PC100
+config ARCH_S5PC100_CHOICE
bool "Samsung S5PC100"
- select GENERIC_GPIO
- select HAVE_CLK
- select CLKDEV_LOOKUP
- select CPU_V7
- select ARCH_USES_GETTIMEOFFSET
- select HAVE_S3C2410_I2C if I2C
- select HAVE_S3C_RTC if RTC_CLASS
- select HAVE_S3C2410_WATCHDOG if WATCHDOG
- select NEED_MACH_GPIO_H
+ select ARCH_S5PC100
help
Samsung S5PC100 series based systems
-config ARCH_S5PV210
+config ARCH_S5PV210_CHOICE
bool "Samsung S5PV210/S5PC110"
- select CPU_V7
- select ARCH_SPARSEMEM_ENABLE
- select ARCH_HAS_HOLES_MEMORYMODEL
- select GENERIC_GPIO
- select HAVE_CLK
- select CLKDEV_LOOKUP
- select CLKSRC_MMIO
- select ARCH_HAS_CPUFREQ
- select GENERIC_CLOCKEVENTS
- select HAVE_S3C2410_I2C if I2C
- select HAVE_S3C_RTC if RTC_CLASS
- select HAVE_S3C2410_WATCHDOG if WATCHDOG
- select NEED_MACH_GPIO_H
- select NEED_MACH_MEMORY_H
+ select ARCH_S5PV210
help
Samsung S5PV210/S5PC110 series based systems
-config ARCH_EXYNOS
+config ARCH_EXYNOS_CHOICE
bool "SAMSUNG EXYNOS"
- select CPU_V7
- select ARCH_SPARSEMEM_ENABLE
- select ARCH_HAS_HOLES_MEMORYMODEL
- select GENERIC_GPIO
- select HAVE_CLK
- select CLKDEV_LOOKUP
- select ARCH_HAS_CPUFREQ
- select GENERIC_CLOCKEVENTS
- select HAVE_S3C_RTC if RTC_CLASS
- select HAVE_S3C2410_I2C if I2C
- select HAVE_S3C2410_WATCHDOG if WATCHDOG
- select NEED_MACH_GPIO_H
- select NEED_MACH_MEMORY_H
+ select ARCH_EXYNOS
help
Support for SAMSUNG's EXYNOS SoCs (EXYNOS4/5)
-config ARCH_SHARK
+config ARCH_SHARK_CHOICE
bool "Shark"
- select CPU_SA110
- select ISA
- select ISA_DMA
- select ZONE_DMA
- select PCI
- select ARCH_USES_GETTIMEOFFSET
- select NEED_MACH_MEMORY_H
- select NEED_MACH_IO_H
+ select ARCH_SHARK
help
Support for the StrongARM based Digital DNARD machine, also known
as "Shark" (<http://www.shark-linux.de/shark.html>).
-config ARCH_U300
+config ARCH_U300_CHOICE
bool "ST-Ericsson U300 Series"
depends on MMU
- select CLKSRC_MMIO
- select CPU_ARM926T
- select HAVE_TCM
- select ARM_AMBA
- select ARM_PATCH_PHYS_VIRT
- select ARM_VIC
- select GENERIC_CLOCKEVENTS
- select CLKDEV_LOOKUP
- select COMMON_CLK
- select GENERIC_GPIO
- select ARCH_REQUIRE_GPIOLIB
+ select ARCH_U300
help
Support for ST-Ericsson U300 series mobile platforms.
-config ARCH_U8500
+config ARCH_U8500_CHOICE
bool "ST-Ericsson U8500 Series"
depends on MMU
- select CPU_V7
- select ARM_AMBA
- select GENERIC_CLOCKEVENTS
- select CLKDEV_LOOKUP
- select ARCH_REQUIRE_GPIOLIB
- select ARCH_HAS_CPUFREQ
- select HAVE_SMP
- select MIGHT_HAVE_CACHE_L2X0
+ select ARCH_U8500
help
Support for ST-Ericsson's Ux500 architecture
-config ARCH_NOMADIK
+config ARCH_NOMADIK_CHOICE
bool "STMicroelectronics Nomadik"
- select ARM_AMBA
- select ARM_VIC
- select CPU_ARM926T
- select COMMON_CLK
- select GENERIC_CLOCKEVENTS
- select PINCTRL
- select MIGHT_HAVE_CACHE_L2X0
- select ARCH_REQUIRE_GPIOLIB
+ select ARCH_NOMADIK
help
Support for the Nomadik platform by ST-Ericsson
-config ARCH_DAVINCI
+config ARCH_DAVINCI_CHOICE
bool "TI DaVinci"
- select GENERIC_CLOCKEVENTS
- select ARCH_REQUIRE_GPIOLIB
- select ZONE_DMA
- select HAVE_IDE
- select CLKDEV_LOOKUP
- select GENERIC_ALLOCATOR
- select GENERIC_IRQ_CHIP
- select ARCH_HAS_HOLES_MEMORYMODEL
+ select ARCH_DAVINCI
select NEED_MACH_GPIO_H
help
Support for TI's DaVinci platform.
-config ARCH_OMAP
+config ARCH_OMAP_CHOICE
bool "TI OMAP"
depends on MMU
- select HAVE_CLK
- select ARCH_REQUIRE_GPIOLIB
- select ARCH_HAS_CPUFREQ
- select CLKSRC_MMIO
- select GENERIC_CLOCKEVENTS
- select ARCH_HAS_HOLES_MEMORYMODEL
+ select ARCH_OMAP
help
Support for TI's OMAP platform (OMAP1/2/3/4).
-config PLAT_SPEAR
+config PLAT_SPEAR_CHOICE
bool "ST SPEAr"
- select ARM_AMBA
- select ARCH_REQUIRE_GPIOLIB
- select CLKDEV_LOOKUP
- select COMMON_CLK
- select CLKSRC_MMIO
- select GENERIC_CLOCKEVENTS
- select HAVE_CLK
+ select PLAT_SPEAR
help
Support for ST's SPEAr platform (SPEAr3xx, SPEAr6xx and SPEAr13xx).
-config ARCH_VT8500
+config ARCH_VT8500_CHOICE
bool "VIA/WonderMedia 85xx"
- select CPU_ARM926T
- select GENERIC_GPIO
- select ARCH_HAS_CPUFREQ
- select GENERIC_CLOCKEVENTS
- select ARCH_REQUIRE_GPIOLIB
+ select ARCH_VT8500
help
Support for VIA/WonderMedia VT8500/WM85xx System-on-Chip.
-config ARCH_ZYNQ
+config ARCH_ZYNQ_CHOICE
bool "Xilinx Zynq ARM Cortex A9 Platform"
- select CPU_V7
- select GENERIC_CLOCKEVENTS
- select CLKDEV_LOOKUP
- select ARM_GIC
- select ARM_AMBA
- select ICST
- select MIGHT_HAVE_CACHE_L2X0
- select USE_OF
+ select ARCH_ZYNQ
help
Support for Xilinx Zynq ARM Cortex A9 Platform
endchoice
@@ -1058,6 +648,8 @@ source "arch/arm/mach-davinci/Kconfig"
source "arch/arm/mach-dove/Kconfig"
+source "arch/arm/mach-ebsa110/Kconfig"
+
source "arch/arm/mach-ep93xx/Kconfig"
source "arch/arm/mach-footbridge/Kconfig"
@@ -1066,6 +658,8 @@ source "arch/arm/mach-gemini/Kconfig"
source "arch/arm/mach-h720x/Kconfig"
+source "arch/arm/mach-highbank/Kconfig"
+
source "arch/arm/mach-integrator/Kconfig"
source "arch/arm/mach-iop32x/Kconfig"
@@ -1080,6 +674,8 @@ source "arch/arm/mach-kirkwood/Kconfig"
source "arch/arm/mach-ks8695/Kconfig"
+source "arch/arm/mach-lpc32xx/Kconfig"
+
source "arch/arm/mach-msm/Kconfig"
source "arch/arm/mach-mv78xx0/Kconfig"
@@ -1101,6 +697,10 @@ source "arch/arm/mach-omap2/Kconfig"
source "arch/arm/mach-orion5x/Kconfig"
+source "arch/arm/mach-picoxcell/Kconfig"
+
+source "arch/arm/mach-pnx4008/Kconfig"
+
source "arch/arm/mach-pxa/Kconfig"
source "arch/arm/plat-pxa/Kconfig"
@@ -1108,11 +708,17 @@ source "arch/arm/mach-mmp/Kconfig"
source "arch/arm/mach-realview/Kconfig"
+source "arch/arm/mach-rpc/Kconfig"
+
source "arch/arm/mach-sa1100/Kconfig"
source "arch/arm/plat-samsung/Kconfig"
source "arch/arm/plat-s3c24xx/Kconfig"
+source "arch/arm/mach-shark/Kconfig"
+
+source "arch/arm/mach-socfpga/Kconfig"
+
source "arch/arm/plat-spear/Kconfig"
source "arch/arm/mach-s3c24xx/Kconfig"
@@ -1121,9 +727,7 @@ source "arch/arm/mach-s3c2412/Kconfig"
source "arch/arm/mach-s3c2440/Kconfig"
endif
-if ARCH_S3C64XX
source "arch/arm/mach-s3c64xx/Kconfig"
-endif
source "arch/arm/mach-s5p64x0/Kconfig"
@@ -1150,6 +754,8 @@ source "arch/arm/mach-vt8500/Kconfig"
source "arch/arm/mach-w90x900/Kconfig"
+source "arch/arm/mach-zynq/Kconfig"
+
# Definitions to make life easier
config ARCH_ACORN
bool
diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig
index c8050b1..835886a 100644
--- a/arch/arm/mach-at91/Kconfig
+++ b/arch/arm/mach-at91/Kconfig
@@ -1,3 +1,11 @@
+config ARCH_AT91
+ bool
+ select ARCH_REQUIRE_GPIOLIB
+ select CLKDEV_LOOKUP
+ select HAVE_CLK
+ select IRQ_DOMAIN
+ select NEED_MACH_IO_H if PCCARD
+
if ARCH_AT91
config HAVE_AT91_DATAFLASH_CARD
diff --git a/arch/arm/mach-bcmring/Kconfig b/arch/arm/mach-bcmring/Kconfig
index 9170d16..7a8c869 100644
--- a/arch/arm/mach-bcmring/Kconfig
+++ b/arch/arm/mach-bcmring/Kconfig
@@ -1,3 +1,12 @@
+config ARCH_BCMRING
+ bool
+ select ARCH_WANT_OPTIONAL_GPIOLIB
+ select ARM_AMBA
+ select ARM_TIMER_SP804
+ select CLKDEV_LOOKUP
+ select CPU_V6
+ select GENERIC_CLOCKEVENTS
+
choice
prompt "Processor selection in BCMRING family of devices"
depends on ARCH_BCMRING
diff --git a/arch/arm/mach-clps711x/Kconfig b/arch/arm/mach-clps711x/Kconfig
index ea036d6..2d3dba9 100644
--- a/arch/arm/mach-clps711x/Kconfig
+++ b/arch/arm/mach-clps711x/Kconfig
@@ -1,3 +1,9 @@
+config ARCH_CLPS711X
+ bool
+ select ARCH_USES_GETTIMEOFFSET
+ select CPU_ARM720T
+ select NEED_MACH_MEMORY_H
+
if ARCH_CLPS711X
menu "CLPS711X/EP721X/EP731X Implementations"
diff --git a/arch/arm/mach-cns3xxx/Kconfig b/arch/arm/mach-cns3xxx/Kconfig
index 29b13f2..0dab723 100644
--- a/arch/arm/mach-cns3xxx/Kconfig
+++ b/arch/arm/mach-cns3xxx/Kconfig
@@ -1,3 +1,12 @@
+config ARCH_CNS3XXX
+ bool
+ select CPU_V6K
+ select GENERIC_CLOCKEVENTS
+ select ARM_GIC
+ select MIGHT_HAVE_CACHE_L2X0
+ select MIGHT_HAVE_PCI
+ select PCI_DOMAINS if PCI
+
menu "CNS3XXX platform type"
depends on ARCH_CNS3XXX
diff --git a/arch/arm/mach-davinci/Kconfig b/arch/arm/mach-davinci/Kconfig
index ab99c3c..3e0102b 100644
--- a/arch/arm/mach-davinci/Kconfig
+++ b/arch/arm/mach-davinci/Kconfig
@@ -1,3 +1,15 @@
+config ARCH_DAVINCI
+ bool
+ select ARCH_HAS_HOLES_MEMORYMODEL
+ select ARCH_REQUIRE_GPIOLIB
+ select CLKDEV_LOOKUP
+ select GENERIC_ALLOCATOR
+ select GENERIC_CLOCKEVENTS
+ select GENERIC_IRQ_CHIP
+ select HAVE_IDE
+ select NEED_MACH_GPIO_H
+ select ZONE_DMA
+
if ARCH_DAVINCI
config AINTC
diff --git a/arch/arm/mach-dove/Kconfig b/arch/arm/mach-dove/Kconfig
index dd937c5..34b7bdb 100644
--- a/arch/arm/mach-dove/Kconfig
+++ b/arch/arm/mach-dove/Kconfig
@@ -1,3 +1,12 @@
+config ARCH_DOVE
+ bool
+ select ARCH_REQUIRE_GPIOLIB
+ select CPU_V7
+ select GENERIC_CLOCKEVENTS
+ select NEED_MACH_IO_H
+ select PCI
+ select PLAT_ORION
+
if ARCH_DOVE
menu "Marvell Dove Implementations"
diff --git a/arch/arm/mach-ebsa110/Kconfig b/arch/arm/mach-ebsa110/Kconfig
new file mode 100644
index 0000000..3ca0f58
--- /dev/null
+++ b/arch/arm/mach-ebsa110/Kconfig
@@ -0,0 +1,9 @@
+config ARCH_EBSA110
+ bool
+ select CPU_SA110
+ select ISA
+ select NO_IOPORT
+ select ARCH_USES_GETTIMEOFFSET
+ select NEED_MACH_IO_H
+ select NEED_MACH_MEMORY_H
+
diff --git a/arch/arm/mach-ep93xx/Kconfig b/arch/arm/mach-ep93xx/Kconfig
index fe3c1fa..4cf770c 100644
--- a/arch/arm/mach-ep93xx/Kconfig
+++ b/arch/arm/mach-ep93xx/Kconfig
@@ -1,3 +1,14 @@
+config ARCH_EP93XX
+ bool
+ select ARCH_REQUIRE_GPIOLIB
+ select ARCH_HAS_HOLES_MEMORYMODEL
+ select ARCH_USES_GETTIMEOFFSET
+ select ARM_AMBA
+ select ARM_VIC
+ select CLKDEV_LOOKUP
+ select CPU_ARM920T
+ select NEED_MACH_MEMORY_H
+
if ARCH_EP93XX
menu "Cirrus EP93xx Implementation Options"
diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
index b5b4c8c..4e78a4a 100644
--- a/arch/arm/mach-exynos/Kconfig
+++ b/arch/arm/mach-exynos/Kconfig
@@ -7,6 +7,22 @@
# Configuration options for the EXYNOS4
+config ARCH_EXYNOS
+ bool
+ select ARCH_SPARSEMEM_ENABLE
+ select ARCH_HAS_CPUFREQ
+ select ARCH_HAS_HOLES_MEMORYMODEL
+ select CLKDEV_LOOKUP
+ select CPU_V7
+ select GENERIC_CLOCKEVENTS
+ select GENERIC_GPIO
+ select HAVE_CLK
+ select HAVE_S3C_RTC if RTC_CLASS
+ select HAVE_S3C2410_I2C if I2C
+ select HAVE_S3C2410_WATCHDOG if WATCHDOG
+ select NEED_MACH_GPIO_H
+ select NEED_MACH_MEMORY_H
+
if ARCH_EXYNOS
menu "SAMSUNG EXYNOS SoCs Support"
--git a/arch/arm/mach-footbridge/Kconfig b/arch/arm/mach-footbridge/Kconfig
index f643ef8..6690953 100644
--- a/arch/arm/mach-footbridge/Kconfig
+++ b/arch/arm/mach-footbridge/Kconfig
@@ -1,3 +1,12 @@
+config ARCH_FOOTBRIDGE
+ bool
+ select CPU_SA110
+ select FOOTBRIDGE
+ select GENERIC_CLOCKEVENTS
+ select HAVE_IDE
+ select NEED_MACH_IO_H
+ select NEED_MACH_MEMORY_H
+
if ARCH_FOOTBRIDGE
menu "Footbridge Implementations"
diff --git a/arch/arm/mach-gemini/Kconfig b/arch/arm/mach-gemini/Kconfig
index 6f066ee..54d4cee 100644
--- a/arch/arm/mach-gemini/Kconfig
+++ b/arch/arm/mach-gemini/Kconfig
@@ -1,3 +1,9 @@
+config ARCH_GEMINI
+ bool
+ select ARCH_USES_GETTIMEOFFSET
+ select ARCH_REQUIRE_GPIOLIB
+ select CPU_FA526
+
if ARCH_GEMINI
menu "Cortina Systems Gemini Implementations"
diff --git a/arch/arm/mach-h720x/Kconfig b/arch/arm/mach-h720x/Kconfig
index abf356c..566a4ed 100644
--- a/arch/arm/mach-h720x/Kconfig
+++ b/arch/arm/mach-h720x/Kconfig
@@ -1,3 +1,9 @@
+config ARCH_H720X
+ bool
+ select CPU_ARM720T
+ select ISA_DMA_API
+ select ARCH_USES_GETTIMEOFFSET
+
if ARCH_H720X
menu "h720x Implementations"
diff --git a/arch/arm/mach-highbank/Kconfig b/arch/arm/mach-highbank/Kconfig
new file mode 100644
index 0000000..d4f1b23
--- /dev/null
+++ b/arch/arm/mach-highbank/Kconfig
@@ -0,0 +1,15 @@
+config ARCH_HIGHBANK
+ bool
+ select ARCH_WANT_OPTIONAL_GPIOLIB
+ select ARM_AMBA
+ select ARM_GIC
+ select ARM_TIMER_SP804
+ select CACHE_L2X0
+ select CLKDEV_LOOKUP
+ select COMMON_CLK
+ select CPU_V7
+ select GENERIC_CLOCKEVENTS
+ select HAVE_ARM_SCU
+ select HAVE_SMP
+ select SPARSE_IRQ
+ select USE_OF
diff --git a/arch/arm/mach-integrator/Kconfig b/arch/arm/mach-integrator/Kconfig
index 350e266..88afd42 100644
--- a/arch/arm/mach-integrator/Kconfig
+++ b/arch/arm/mach-integrator/Kconfig
@@ -1,3 +1,19 @@
+config ARCH_INTEGRATOR
+ bool
+ select ARM_AMBA
+ select ARCH_HAS_CPUFREQ
+ select COMMON_CLK
+ select CLK_VERSATILE
+ select HAVE_TCM
+ select ICST
+ select GENERIC_CLOCKEVENTS
+ select PLAT_VERSATILE
+ select PLAT_VERSATILE_FPGA_IRQ
+ select NEED_MACH_IO_H
+ select NEED_MACH_MEMORY_H
+ select SPARSE_IRQ
+ select MULTI_IRQ_HANDLER
+
if ARCH_INTEGRATOR
menu "Integrator Options"
diff --git a/arch/arm/mach-iop13xx/Kconfig b/arch/arm/mach-iop13xx/Kconfig
index 40c2d68..d004752 100644
--- a/arch/arm/mach-iop13xx/Kconfig
+++ b/arch/arm/mach-iop13xx/Kconfig
@@ -1,3 +1,14 @@
+config ARCH_IOP13XX
+ bool
+ select CPU_XSC3
+ select PLAT_IOP
+ select PCI
+ select ARCH_SUPPORTS_MSI
+ select VMSPLIT_1G
+ select NEED_MACH_IO_H
+ select NEED_MACH_MEMORY_H
+ select NEED_RET_TO_USER
+
if ARCH_IOP13XX
menu "IOP13XX Implementation Options"
diff --git a/arch/arm/mach-iop32x/Kconfig b/arch/arm/mach-iop32x/Kconfig
index 5e8c6f7..f438f73 100644
--- a/arch/arm/mach-iop32x/Kconfig
+++ b/arch/arm/mach-iop32x/Kconfig
@@ -1,3 +1,13 @@
+config ARCH_IOP32X
+ bool
+ select CPU_XSCALE
+ select NEED_MACH_GPIO_H
+ select NEED_MACH_IO_H
+ select NEED_RET_TO_USER
+ select PLAT_IOP
+ select PCI
+ select ARCH_REQUIRE_GPIOLIB
+
if ARCH_IOP32X
menu "IOP32x Implementation Options"
diff --git a/arch/arm/mach-iop33x/Kconfig b/arch/arm/mach-iop33x/Kconfig
index 9aa016b..20b3dbe 100644
--- a/arch/arm/mach-iop33x/Kconfig
+++ b/arch/arm/mach-iop33x/Kconfig
@@ -1,3 +1,13 @@
+config ARCH_IOP33X
+ bool
+ select CPU_XSCALE
+ select NEED_MACH_GPIO_H
+ select NEED_MACH_IO_H
+ select NEED_RET_TO_USER
+ select PLAT_IOP
+ select PCI
+ select ARCH_REQUIRE_GPIOLIB
+
if ARCH_IOP33X
menu "IOP33x Implementation Options"
diff --git a/arch/arm/mach-ixp4xx/Kconfig b/arch/arm/mach-ixp4xx/Kconfig
index fd5e7b6..48f9978 100644
--- a/arch/arm/mach-ixp4xx/Kconfig
+++ b/arch/arm/mach-ixp4xx/Kconfig
@@ -1,3 +1,14 @@
+config ARCH_IXP4XX
+ bool
+ select ARCH_HAS_DMA_SET_COHERENT_MASK
+ select CLKSRC_MMIO
+ select CPU_XSCALE
+ select ARCH_REQUIRE_GPIOLIB
+ select GENERIC_CLOCKEVENTS
+ select MIGHT_HAVE_PCI
+ select NEED_MACH_IO_H
+ select DMABOUNCE if PCI
+
if ARCH_IXP4XX
config ARCH_SUPPORTS_BIG_ENDIAN
diff --git a/arch/arm/mach-kirkwood/Kconfig b/arch/arm/mach-kirkwood/Kconfig
index ca5c15a..2fedc99 100644
--- a/arch/arm/mach-kirkwood/Kconfig
+++ b/arch/arm/mach-kirkwood/Kconfig
@@ -1,3 +1,12 @@
+config ARCH_KIRKWOOD
+ bool
+ select ARCH_REQUIRE_GPIOLIB
+ select CPU_FEROCEON
+ select GENERIC_CLOCKEVENTS
+ select NEED_MACH_IO_H
+ select PCI
+ select PLAT_ORION
+
if ARCH_KIRKWOOD
menu "Marvell Kirkwood Implementations"
diff --git a/arch/arm/mach-ks8695/Kconfig b/arch/arm/mach-ks8695/Kconfig
index f5c39a8..f73a02f 100644
--- a/arch/arm/mach-ks8695/Kconfig
+++ b/arch/arm/mach-ks8695/Kconfig
@@ -1,3 +1,10 @@
+config ARCH_KS8695
+ bool
+ select ARCH_USES_GETTIMEOFFSET
+ select ARCH_REQUIRE_GPIOLIB
+ select CPU_ARM922T
+ select NEED_MACH_MEMORY_H
+
if ARCH_KS8695
menu "Kendin/Micrel KS8695 Implementations"
diff --git a/arch/arm/mach-lpc32xx/Kconfig b/arch/arm/mach-lpc32xx/Kconfig
new file mode 100644
index 0000000..7975c48
--- /dev/null
+++ b/arch/arm/mach-lpc32xx/Kconfig
@@ -0,0 +1,12 @@
+config ARCH_LPC32XX
+ bool
+ select CLKSRC_MMIO
+ select CPU_ARM926T
+ select ARCH_REQUIRE_GPIOLIB
+ select HAVE_IDE
+ select ARM_AMBA
+ select USB_ARCH_HAS_OHCI
+ select CLKDEV_LOOKUP
+ select GENERIC_CLOCKEVENTS
+ select USE_OF
+ select HAVE_PWM
diff --git a/arch/arm/mach-mmp/Kconfig b/arch/arm/mach-mmp/Kconfig
index 7fddd01..2c586fd 100644
--- a/arch/arm/mach-mmp/Kconfig
+++ b/arch/arm/mach-mmp/Kconfig
@@ -1,3 +1,15 @@
+config ARCH_MMP
+ bool
+ depends on MMU
+ select ARCH_REQUIRE_GPIOLIB
+ select CLKDEV_LOOKUP
+ select GENERIC_CLOCKEVENTS
+ select GPIO_PXA
+ select IRQ_DOMAIN
+ select PLAT_PXA
+ select SPARSE_IRQ
+ select GENERIC_ALLOCATOR
+
if ARCH_MMP
menu "Marvell PXA168/910/MMP2 Implmentations"
diff --git a/arch/arm/mach-msm/Kconfig b/arch/arm/mach-msm/Kconfig
index 1cd40ad..8b6994e 100644
--- a/arch/arm/mach-msm/Kconfig
+++ b/arch/arm/mach-msm/Kconfig
@@ -1,3 +1,10 @@
+config ARCH_MSM
+ bool
+ select ARCH_REQUIRE_GPIOLIB
+ select CLKDEV_LOOKUP
+ select GENERIC_CLOCKEVENTS
+ select HAVE_CLK
+
if ARCH_MSM
choice
diff --git a/arch/arm/mach-mv78xx0/Kconfig b/arch/arm/mach-mv78xx0/Kconfig
index f2d309d..6c09349 100644
--- a/arch/arm/mach-mv78xx0/Kconfig
+++ b/arch/arm/mach-mv78xx0/Kconfig
@@ -1,3 +1,12 @@
+config ARCH_MV78XX0
+ bool
+ select ARCH_REQUIRE_GPIOLIB
+ select CPU_FEROCEON
+ select GENERIC_CLOCKEVENTS
+ select NEED_MACH_IO_H
+ select PCI
+ select PLAT_ORION
+
if ARCH_MV78XX0
menu "Marvell MV78xx0 Implementations"
diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig
index caa2c5e..1ed7d15 100644
--- a/arch/arm/mach-mvebu/Kconfig
+++ b/arch/arm/mach-mvebu/Kconfig
@@ -1,3 +1,13 @@
+config ARCH_MVEBU
+ bool
+ select CLKSRC_MMIO
+ select COMMON_CLK
+ select GENERIC_CLOCKEVENTS
+ select GENERIC_IRQ_CHIP
+ select IRQ_DOMAIN
+ select MULTI_IRQ_HANDLER
+ select SPARSE_IRQ
+
if ARCH_MVEBU
menu "Marvell SOC with device tree"
diff --git a/arch/arm/mach-mxs/Kconfig b/arch/arm/mach-mxs/Kconfig
index 9a8bbda..cea9703 100644
--- a/arch/arm/mach-mxs/Kconfig
+++ b/arch/arm/mach-mxs/Kconfig
@@ -1,3 +1,14 @@
+config ARCH_MXS
+ bool
+ select ARCH_REQUIRE_GPIOLIB
+ select CLKDEV_LOOKUP
+ select CLKSRC_MMIO
+ select COMMON_CLK
+ select GENERIC_CLOCKEVENTS
+ select HAVE_CLK_PREPARE
+ select PINCTRL
+ select USE_OF
+
if ARCH_MXS
source "arch/arm/mach-mxs/devices/Kconfig"
diff --git a/arch/arm/mach-netx/Kconfig b/arch/arm/mach-netx/Kconfig
index 3d90ef1..29b1d56 100644
--- a/arch/arm/mach-netx/Kconfig
+++ b/arch/arm/mach-netx/Kconfig
@@ -1,3 +1,10 @@
+config ARCH_NETX
+ bool
+ select ARM_VIC
+ select CLKSRC_MMIO
+ select CPU_ARM926T
+ select GENERIC_CLOCKEVENTS
+
menu "NetX Implementations"
depends on ARCH_NETX
diff --git a/arch/arm/mach-nomadik/Kconfig b/arch/arm/mach-nomadik/Kconfig
index 365879b..af0821d 100644
--- a/arch/arm/mach-nomadik/Kconfig
+++ b/arch/arm/mach-nomadik/Kconfig
@@ -1,3 +1,14 @@
+config ARCH_NOMADIK
+ bool
+ select ARCH_REQUIRE_GPIOLIB
+ select ARM_AMBA
+ select ARM_VIC
+ select COMMON_CLK
+ select CPU_ARM926T
+ select GENERIC_CLOCKEVENTS
+ select MIGHT_HAVE_CACHE_L2X0
+ select PINCTRL
+
if ARCH_NOMADIK
menu "Nomadik boards"
diff --git a/arch/arm/mach-orion5x/Kconfig b/arch/arm/mach-orion5x/Kconfig
index 0673f0c..c8470c7 100644
--- a/arch/arm/mach-orion5x/Kconfig
+++ b/arch/arm/mach-orion5x/Kconfig
@@ -1,3 +1,12 @@
+config ARCH_ORION5X
+ bool
+ select ARCH_REQUIRE_GPIOLIB
+ select CPU_FEROCEON
+ select GENERIC_CLOCKEVENTS
+ select NEED_MACH_IO_H
+ select PCI
+ select PLAT_ORION
+
if ARCH_ORION5X
menu "Orion Implementations"
diff --git a/arch/arm/mach-picoxcell/Kconfig b/arch/arm/mach-picoxcell/Kconfig
new file mode 100644
index 0000000..b0fd5a1
--- /dev/null
+++ b/arch/arm/mach-picoxcell/Kconfig
@@ -0,0 +1,14 @@
+config ARCH_PICOXCELL
+ bool
+ select ARCH_REQUIRE_GPIOLIB
+ select ARM_PATCH_PHYS_VIRT
+ select ARM_VIC
+ select CPU_V6K
+ select DW_APB_TIMER
+ select DW_APB_TIMER_OF
+ select GENERIC_CLOCKEVENTS
+ select GENERIC_GPIO
+ select HAVE_TCM
+ select NO_IOPORT
+ select SPARSE_IRQ
+ select USE_OF
diff --git a/arch/arm/mach-pnx4008/Kconfig b/arch/arm/mach-pnx4008/Kconfig
new file mode 100644
index 0000000..b654cff
--- /dev/null
+++ b/arch/arm/mach-pnx4008/Kconfig
@@ -0,0 +1,5 @@
+config ARCH_PNX4008
+ bool
+ select CPU_ARM926T
+ select CLKDEV_LOOKUP
+ select ARCH_USES_GETTIMEOFFSET
diff --git a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig
index fe2d1f8..1c89e24 100644
--- a/arch/arm/mach-pxa/Kconfig
+++ b/arch/arm/mach-pxa/Kconfig
@@ -1,3 +1,19 @@
+config ARCH_PXA
+ bool
+ select ARCH_HAS_CPUFREQ
+ select ARCH_MTD_XIP
+ select ARCH_REQUIRE_GPIOLIB
+ select ARM_CPU_SUSPEND if PM
+ select AUTO_ZRELADDR
+ select CLKDEV_LOOKUP
+ select CLKSRC_MMIO
+ select GENERIC_CLOCKEVENTS
+ select GPIO_PXA
+ select HAVE_IDE
+ select MULTI_IRQ_HANDLER
+ select PLAT_PXA
+ select SPARSE_IRQ
+
if ARCH_PXA
menu "Intel PXA2xx/PXA3xx Implementations"
diff --git a/arch/arm/mach-realview/Kconfig b/arch/arm/mach-realview/Kconfig
index c593be4..2018527 100644
--- a/arch/arm/mach-realview/Kconfig
+++ b/arch/arm/mach-realview/Kconfig
@@ -1,3 +1,18 @@
+config ARCH_REALVIEW
+ bool
+ select ARCH_WANT_OPTIONAL_GPIOLIB
+ select ARM_AMBA
+ select ARM_TIMER_SP804
+ select CLKDEV_LOOKUP
+ select GENERIC_CLOCKEVENTS
+ select GPIO_PL061 if GPIOLIB
+ select HAVE_MACH_CLKDEV
+ select ICST
+ select NEED_MACH_MEMORY_H
+ select PLAT_VERSATILE
+ select PLAT_VERSATILE_CLOCK
+ select PLAT_VERSATILE_CLCD
+
menu "RealView platform type"
depends on ARCH_REALVIEW
diff --git a/arch/arm/mach-rpc/Kconfig b/arch/arm/mach-rpc/Kconfig
new file mode 100644
index 0000000..478d213
--- /dev/null
+++ b/arch/arm/mach-rpc/Kconfig
@@ -0,0 +1,13 @@
+config ARCH_RPC
+ bool
+ select ARCH_ACORN
+ select FIQ
+ select ARCH_MAY_HAVE_PC_FDC
+ select HAVE_PATA_PLATFORM
+ select ISA_DMA_API
+ select NO_IOPORT
+ select ARCH_SPARSEMEM_ENABLE
+ select ARCH_USES_GETTIMEOFFSET
+ select HAVE_IDE
+ select NEED_MACH_IO_H
+ select NEED_MACH_MEMORY_H
diff --git a/arch/arm/mach-s3c24xx/Kconfig b/arch/arm/mach-s3c24xx/Kconfig
index d56b0f7..21dd369 100644
--- a/arch/arm/mach-s3c24xx/Kconfig
+++ b/arch/arm/mach-s3c24xx/Kconfig
@@ -7,6 +7,19 @@
#
# Licensed under GPLv2
+config ARCH_S3C24XX
+ bool
+ select ARCH_HAS_CPUFREQ
+ select ARCH_USES_GETTIMEOFFSET
+ select CLKDEV_LOOKUP
+ select GENERIC_GPIO
+ select HAVE_CLK
+ select HAVE_S3C2410_I2C if I2C
+ select HAVE_S3C_RTC if RTC_CLASS
+ select HAVE_S3C2410_WATCHDOG if WATCHDOG
+ select NEED_MACH_GPIO_H
+ select NEED_MACH_IO_H
+
if ARCH_S3C24XX
menu "SAMSUNG S3C24XX SoCs Support"
diff --git a/arch/arm/mach-s3c64xx/Kconfig b/arch/arm/mach-s3c64xx/Kconfig
index 06ca1cd..4a0cdbb 100644
--- a/arch/arm/mach-s3c64xx/Kconfig
+++ b/arch/arm/mach-s3c64xx/Kconfig
@@ -3,6 +3,30 @@
#
# Licensed under GPLv2
+config ARCH_S3C64XX
+ bool
+ select PLAT_SAMSUNG
+ select CPU_V6
+ select ARM_VIC
+ select HAVE_CLK
+ select HAVE_TCM
+ select CLKDEV_LOOKUP
+ select NO_IOPORT
+ select ARCH_USES_GETTIMEOFFSET
+ select ARCH_HAS_CPUFREQ
+ select ARCH_REQUIRE_GPIOLIB
+ select SAMSUNG_CLKSRC
+ select SAMSUNG_IRQ_VIC_TIMER
+ select S3C_GPIO_TRACK
+ select S3C_DEV_NAND
+ select USB_ARCH_HAS_OHCI
+ select SAMSUNG_GPIOLIB_4BIT
+ select HAVE_S3C2410_I2C if I2C
+ select HAVE_S3C2410_WATCHDOG if WATCHDOG
+ select NEED_MACH_GPIO_H
+
+if ARCH_S3C64XX
+
# temporary until we can eliminate all drivers using it.
config PLAT_S3C64XX
bool
@@ -307,3 +331,5 @@ config MACH_WLF_CRAGG_6410
select LEDS_GPIO_REGISTER
help
Machine support for the Wolfson Cragganmore S3C6410 variant.
+
+endif
diff --git a/arch/arm/mach-s5p64x0/Kconfig b/arch/arm/mach-s5p64x0/Kconfig
index c87f610..8215c54 100644
--- a/arch/arm/mach-s5p64x0/Kconfig
+++ b/arch/arm/mach-s5p64x0/Kconfig
@@ -5,6 +5,19 @@
#
# Licensed under GPLv2
+config ARCH_S5P64X0
+ bool
+ select CPU_V6
+ select GENERIC_GPIO
+ select HAVE_CLK
+ select CLKDEV_LOOKUP
+ select CLKSRC_MMIO
+ select HAVE_S3C2410_WATCHDOG if WATCHDOG
+ select GENERIC_CLOCKEVENTS
+ select HAVE_S3C2410_I2C if I2C
+ select HAVE_S3C_RTC if RTC_CLASS
+ select NEED_MACH_GPIO_H
+
if ARCH_S5P64X0
config CPU_S5P6440
diff --git a/arch/arm/mach-s5pc100/Kconfig b/arch/arm/mach-s5pc100/Kconfig
index 75a26ea..8114a81 100644
--- a/arch/arm/mach-s5pc100/Kconfig
+++ b/arch/arm/mach-s5pc100/Kconfig
@@ -5,6 +5,18 @@
# Configuration options for the S5PC100 CPU
+config ARCH_S5PC100
+ bool
+ select GENERIC_GPIO
+ select HAVE_CLK
+ select CLKDEV_LOOKUP
+ select CPU_V7
+ select ARCH_USES_GETTIMEOFFSET
+ select HAVE_S3C2410_I2C if I2C
+ select HAVE_S3C_RTC if RTC_CLASS
+ select HAVE_S3C2410_WATCHDOG if WATCHDOG
+ select NEED_MACH_GPIO_H
+
if ARCH_S5PC100
config CPU_S5PC100
diff --git a/arch/arm/mach-s5pv210/Kconfig b/arch/arm/mach-s5pv210/Kconfig
index 77185c3..5633743 100644
--- a/arch/arm/mach-s5pv210/Kconfig
+++ b/arch/arm/mach-s5pv210/Kconfig
@@ -7,6 +7,23 @@
# Configuration options for the S5PV210/S5PC110
+config ARCH_S5PV210
+ bool
+ select CPU_V7
+ select ARCH_SPARSEMEM_ENABLE
+ select ARCH_HAS_HOLES_MEMORYMODEL
+ select GENERIC_GPIO
+ select HAVE_CLK
+ select CLKDEV_LOOKUP
+ select CLKSRC_MMIO
+ select ARCH_HAS_CPUFREQ
+ select GENERIC_CLOCKEVENTS
+ select HAVE_S3C2410_I2C if I2C
+ select HAVE_S3C_RTC if RTC_CLASS
+ select HAVE_S3C2410_WATCHDOG if WATCHDOG
+ select NEED_MACH_GPIO_H
+ select NEED_MACH_MEMORY_H
+
if ARCH_S5PV210
config CPU_S5PV210
diff --git a/arch/arm/mach-sa1100/Kconfig b/arch/arm/mach-sa1100/Kconfig
index 42625e4..37c31a3 100644
--- a/arch/arm/mach-sa1100/Kconfig
+++ b/arch/arm/mach-sa1100/Kconfig
@@ -1,3 +1,20 @@
+config ARCH_SA1100
+ bool
+ select CLKSRC_MMIO
+ select CPU_SA1100
+ select ISA
+ select ARCH_SPARSEMEM_ENABLE
+ select ARCH_MTD_XIP
+ select ARCH_HAS_CPUFREQ
+ select CPU_FREQ
+ select GENERIC_CLOCKEVENTS
+ select CLKDEV_LOOKUP
+ select ARCH_REQUIRE_GPIOLIB
+ select HAVE_IDE
+ select NEED_MACH_GPIO_H
+ select NEED_MACH_MEMORY_H
+ select SPARSE_IRQ
+
if ARCH_SA1100
menu "SA11x0 Implementations"
diff --git a/arch/arm/mach-shark/Kconfig b/arch/arm/mach-shark/Kconfig
new file mode 100644
index 0000000..93d03db
--- /dev/null
+++ b/arch/arm/mach-shark/Kconfig
@@ -0,0 +1,11 @@
+config ARCH_SHARK
+ bool
+ select CPU_SA110
+ select ISA
+ select ISA_DMA
+ select ZONE_DMA
+ select PCI
+ select ARCH_USES_GETTIMEOFFSET
+ select NEED_MACH_MEMORY_H
+ select NEED_MACH_IO_H
+
diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig
index 4cacc2d..ee807ad 100644
--- a/arch/arm/mach-shmobile/Kconfig
+++ b/arch/arm/mach-shmobile/Kconfig
@@ -1,3 +1,17 @@
+config ARCH_SHMOBILE
+ bool
+ select HAVE_CLK
+ select CLKDEV_LOOKUP
+ select HAVE_MACH_CLKDEV
+ select HAVE_SMP
+ select GENERIC_CLOCKEVENTS
+ select MIGHT_HAVE_CACHE_L2X0
+ select NO_IOPORT
+ select SPARSE_IRQ
+ select MULTI_IRQ_HANDLER
+ select PM_GENERIC_DOMAINS if PM
+ select NEED_MACH_MEMORY_H
+
if ARCH_SHMOBILE
comment "SH-Mobile System Type"
diff --git a/arch/arm/mach-socfpga/Kconfig b/arch/arm/mach-socfpga/Kconfig
new file mode 100644
index 0000000..51b04ba
--- /dev/null
+++ b/arch/arm/mach-socfpga/Kconfig
@@ -0,0 +1,16 @@
+config ARCH_SOCFPGA
+ bool
+ select ARCH_WANT_OPTIONAL_GPIOLIB
+ select ARM_AMBA
+ select ARM_GIC
+ select CACHE_L2X0
+ select CLKDEV_LOOKUP
+ select COMMON_CLK
+ select CPU_V7
+ select DW_APB_TIMER
+ select DW_APB_TIMER_OF
+ select GENERIC_CLOCKEVENTS
+ select GPIO_PL061 if GPIOLIB
+ select HAVE_ARM_SCU
+ select SPARSE_IRQ
+ select USE_OF
diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig
index 9077aaa..d6ee9f5 100644
--- a/arch/arm/mach-tegra/Kconfig
+++ b/arch/arm/mach-tegra/Kconfig
@@ -1,3 +1,16 @@
+config ARCH_TEGRA
+ bool
+ select ARCH_HAS_CPUFREQ
+ select CLKDEV_LOOKUP
+ select CLKSRC_MMIO
+ select GENERIC_CLOCKEVENTS
+ select GENERIC_GPIO
+ select HAVE_CLK
+ select HAVE_SMP
+ select MIGHT_HAVE_CACHE_L2X0
+ select NEED_MACH_IO_H if PCI
+ select USE_OF
+
if ARCH_TEGRA
comment "NVIDIA Tegra options"
diff --git a/arch/arm/mach-u300/Kconfig b/arch/arm/mach-u300/Kconfig
index 54d8f34..bd442a0 100644
--- a/arch/arm/mach-u300/Kconfig
+++ b/arch/arm/mach-u300/Kconfig
@@ -1,3 +1,17 @@
+config ARCH_U300
+ bool
+ select CLKSRC_MMIO
+ select CPU_ARM926T
+ select HAVE_TCM
+ select ARM_AMBA
+ select ARM_PATCH_PHYS_VIRT
+ select ARM_VIC
+ select GENERIC_CLOCKEVENTS
+ select CLKDEV_LOOKUP
+ select COMMON_CLK
+ select GENERIC_GPIO
+ select ARCH_REQUIRE_GPIOLIB
+
if ARCH_U300
menu "ST-Ericsson AB U300/U330/U335/U365 Platform"
diff --git a/arch/arm/mach-ux500/Kconfig b/arch/arm/mach-ux500/Kconfig
index c013bbf..6b40959 100644
--- a/arch/arm/mach-ux500/Kconfig
+++ b/arch/arm/mach-ux500/Kconfig
@@ -1,3 +1,14 @@
+config ARCH_U8500
+ bool
+ select CPU_V7
+ select ARM_AMBA
+ select GENERIC_CLOCKEVENTS
+ select CLKDEV_LOOKUP
+ select ARCH_REQUIRE_GPIOLIB
+ select ARCH_HAS_CPUFREQ
+ select HAVE_SMP
+ select MIGHT_HAVE_CACHE_L2X0
+
if ARCH_U8500
config UX500_SOC_COMMON
diff --git a/arch/arm/mach-versatile/Kconfig b/arch/arm/mach-versatile/Kconfig
index c1f38f6..cd63ea6 100644
--- a/arch/arm/mach-versatile/Kconfig
+++ b/arch/arm/mach-versatile/Kconfig
@@ -1,3 +1,19 @@
+config ARCH_VERSATILE
+ bool
+ select ARM_AMBA
+ select ARM_VIC
+ select CLKDEV_LOOKUP
+ select HAVE_MACH_CLKDEV
+ select ICST
+ select GENERIC_CLOCKEVENTS
+ select ARCH_WANT_OPTIONAL_GPIOLIB
+ select NEED_MACH_IO_H if PCI
+ select PLAT_VERSATILE
+ select PLAT_VERSATILE_CLOCK
+ select PLAT_VERSATILE_CLCD
+ select PLAT_VERSATILE_FPGA_IRQ
+ select ARM_TIMER_SP804
+
menu "Versatile platform type"
depends on ARCH_VERSATILE
diff --git a/arch/arm/mach-vexpress/Kconfig b/arch/arm/mach-vexpress/Kconfig
index fc3730f..8ce13a7 100644
--- a/arch/arm/mach-vexpress/Kconfig
+++ b/arch/arm/mach-vexpress/Kconfig
@@ -1,3 +1,19 @@
+config ARCH_VEXPRESS
+ bool
+ select ARCH_WANT_OPTIONAL_GPIOLIB
+ select ARM_AMBA
+ select ARM_TIMER_SP804
+ select CLKDEV_LOOKUP
+ select COMMON_CLK
+ select GENERIC_CLOCKEVENTS
+ select HAVE_CLK
+ select HAVE_PATA_PLATFORM
+ select ICST
+ select NO_IOPORT
+ select PLAT_VERSATILE
+ select PLAT_VERSATILE_CLCD
+ select REGULATOR_FIXED_VOLTAGE if REGULATOR
+
menu "Versatile Express platform type"
depends on ARCH_VEXPRESS
diff --git a/arch/arm/mach-vt8500/Kconfig b/arch/arm/mach-vt8500/Kconfig
index 2c20a34..fa22d24 100644
--- a/arch/arm/mach-vt8500/Kconfig
+++ b/arch/arm/mach-vt8500/Kconfig
@@ -1,3 +1,11 @@
+config ARCH_VT8500
+ bool
+ select CPU_ARM926T
+ select GENERIC_GPIO
+ select ARCH_HAS_CPUFREQ
+ select GENERIC_CLOCKEVENTS
+ select ARCH_REQUIRE_GPIOLIB
+
if ARCH_VT8500
config VTWM_VERSION_VT8500
diff --git a/arch/arm/mach-w90x900/Kconfig b/arch/arm/mach-w90x900/Kconfig
index 69bab32..ab4b2fc 100644
--- a/arch/arm/mach-w90x900/Kconfig
+++ b/arch/arm/mach-w90x900/Kconfig
@@ -1,3 +1,11 @@
+config ARCH_W90X900
+ bool
+ select CPU_ARM926T
+ select ARCH_REQUIRE_GPIOLIB
+ select CLKDEV_LOOKUP
+ select CLKSRC_MMIO
+ select GENERIC_CLOCKEVENTS
+
if ARCH_W90X900
config CPU_W90P910
diff --git a/arch/arm/mach-zynq/Kconfig b/arch/arm/mach-zynq/Kconfig
new file mode 100644
index 0000000..1560167
--- /dev/null
+++ b/arch/arm/mach-zynq/Kconfig
@@ -0,0 +1,10 @@
+config ARCH_ZYNQ
+ bool
+ select CPU_V7
+ select GENERIC_CLOCKEVENTS
+ select CLKDEV_LOOKUP
+ select ARM_GIC
+ select ARM_AMBA
+ select ICST
+ select MIGHT_HAVE_CACHE_L2X0
+ select USE_OF
diff --git a/arch/arm/plat-mxc/Kconfig b/arch/arm/plat-mxc/Kconfig
index baf9064..84af663 100644
--- a/arch/arm/plat-mxc/Kconfig
+++ b/arch/arm/plat-mxc/Kconfig
@@ -1,3 +1,14 @@
+config ARCH_MXC
+ bool
+ select GENERIC_CLOCKEVENTS
+ select ARCH_REQUIRE_GPIOLIB
+ select CLKDEV_LOOKUP
+ select CLKSRC_MMIO
+ select GENERIC_IRQ_CHIP
+ select MULTI_IRQ_HANDLER
+ select SPARSE_IRQ
+ select USE_OF
+
if ARCH_MXC
source "arch/arm/plat-mxc/devices/Kconfig"
diff --git a/arch/arm/plat-omap/Kconfig b/arch/arm/plat-omap/Kconfig
index dd36eba..8b86fca 100644
--- a/arch/arm/plat-omap/Kconfig
+++ b/arch/arm/plat-omap/Kconfig
@@ -1,3 +1,12 @@
+config ARCH_OMAP
+ bool
+ select HAVE_CLK
+ select ARCH_REQUIRE_GPIOLIB
+ select ARCH_HAS_CPUFREQ
+ select CLKSRC_MMIO
+ select GENERIC_CLOCKEVENTS
+ select ARCH_HAS_HOLES_MEMORYMODEL
+
if ARCH_OMAP
menu "TI OMAP Common Features"
diff --git a/arch/arm/plat-spear/Kconfig b/arch/arm/plat-spear/Kconfig
index 4404f82..50088bb 100644
--- a/arch/arm/plat-spear/Kconfig
+++ b/arch/arm/plat-spear/Kconfig
@@ -1,6 +1,15 @@
#
# SPEAr Platform configuration file
#
+config PLAT_SPEAR
+ bool
+ select ARM_AMBA
+ select ARCH_REQUIRE_GPIOLIB
+ select CLKDEV_LOOKUP
+ select COMMON_CLK
+ select CLKSRC_MMIO
+ select GENERIC_CLOCKEVENTS
+ select HAVE_CLK
if PLAT_SPEAR
--
1.7.9.5
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [PATCH 2/6] ARM: introduce Kconfig.mach
2012-08-29 22:49 [PATCH 0/6] Initial multi-platform support Rob Herring
2012-08-29 22:49 ` [PATCH 1/6] ARM: move ARCH config definitions into mach dirs Rob Herring
@ 2012-08-29 22:49 ` Rob Herring
2012-08-29 23:18 ` H Hartley Sweeten
2012-08-29 22:49 ` [PATCH 3/6] ARM: picoxcell: header fixes for multi-platform Rob Herring
` (4 subsequent siblings)
6 siblings, 1 reply; 28+ messages in thread
From: Rob Herring @ 2012-08-29 22:49 UTC (permalink / raw)
To: linux-arm-kernel
From: Rob Herring <rob.herring@calxeda.com>
Move all the mach related config options into separate Kconfig.mach file.
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
---
arch/arm/Kconfig | 529 +------------------------------------------------
arch/arm/Kconfig.mach | 528 ++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 529 insertions(+), 528 deletions(-)
create mode 100644 arch/arm/Kconfig.mach
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 3ad82c6..fa34df2 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -248,534 +248,7 @@ config MMU
Select if you want MMU-based virtualised addressing space
support by paged memory management. If unsure, say 'Y'.
-#
-# The "ARM system type" choice list is ordered alphabetically by option
-# text. Please add new entries in the option alphabetic order.
-#
-choice
- prompt "ARM system type"
- default ARCH_VERSATILE
-
-config ARCH_SOCFPGA_CHOICE
- bool "Altera SOCFPGA family"
- select ARCH_SOCFPGA
- help
- This enables support for Altera SOCFPGA Cyclone V platform
-
-config ARCH_INTEGRATOR_CHOICE
- bool "ARM Ltd. Integrator family"
- select ARCH_INTEGRATOR
- help
- Support for ARM's Integrator platform.
-
-config ARCH_REALVIEW_CHOICE
- bool "ARM Ltd. RealView family"
- select ARCH_REALVIEW
- help
- This enables support for ARM Ltd RealView boards.
-
-config ARCH_VERSATILE_CHOICE
- bool "ARM Ltd. Versatile family"
- select ARCH_VERSATILE
- help
- This enables support for ARM Ltd Versatile board.
-
-config ARCH_VEXPRESS_CHOICE
- bool "ARM Ltd. Versatile Express family"
- select ARCH_VEXPRESS
- help
- This enables support for the ARM Ltd Versatile Express boards.
-
-config ARCH_AT91_CHOICE
- bool "Atmel AT91"
- select ARCH_AT91
- help
- This enables support for systems based on Atmel
- AT91RM9200 and AT91SAM9* processors.
-
-config ARCH_BCMRING_CHOICE
- bool "Broadcom BCMRING"
- depends on MMU
- select ARCH_BCMRING
- help
- Support for Broadcom's BCMRing platform.
-
-config ARCH_HIGHBANK_CHOICE
- bool "Calxeda Highbank-based"
- select ARCH_HIGHBANK
- help
- Support for the Calxeda Highbank SoC based boards.
-
-config ARCH_CLPS711X_CHOICE
- bool "Cirrus Logic CLPS711x/EP721x/EP731x-based"
- select ARCH_CLPS711X
- help
- Support for Cirrus Logic 711x/721x/731x based boards.
-
-config ARCH_CNS3XXX_CHOICE
- bool "Cavium Networks CNS3XXX family"
- select ARCH_CNS3XXX
- help
- Support for Cavium Networks CNS3XXX platform.
-
-config ARCH_GEMINI_CHOICE
- bool "Cortina Systems Gemini"
- select ARCH_GEMINI
- help
- Support for the Cortina Systems Gemini family SoCs
-
-config ARCH_PRIMA2_CHOICE
- bool "CSR SiRFSoC PRIMA2 ARM Cortex A9 Platform"
- select ARCH_PRIMA2
- help
- Support for CSR SiRFSoC ARM Cortex A9 Platform
-
-config ARCH_EBSA110_CHOICE
- bool "EBSA-110"
- select ARCH_EBSA110
- help
- This is an evaluation board for the StrongARM processor available
- from Digital. It has limited hardware on-board, including an
- Ethernet interface, two PCMCIA sockets, two serial ports and a
- parallel port.
-
-config ARCH_EP93XX_CHOICE
- bool "EP93xx-based"
- select ARCH_EP93XX
- help
- This enables support for the Cirrus EP93xx series of CPUs.
-
-config ARCH_FOOTBRIDGE_CHOICE
- bool "FootBridge"
- select ARCH_FOOTBRIDGE
- help
- Support for systems based on the DC21285 companion chip
- ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder.
-
-config ARCH_MXC_CHOICE
- bool "Freescale MXC/iMX-based"
- select ARCH_MXC
- help
- Support for Freescale MXC/iMX-based family of processors
-
-config ARCH_MXS_CHOICE
- bool "Freescale MXS-based"
- select ARCH_MXS
- help
- Support for Freescale MXS-based family of processors
-
-config ARCH_NETX_CHOICE
- bool "Hilscher NetX based"
- select ARCH_NETX
- help
- This enables support for systems based on the Hilscher NetX Soc
-
-config ARCH_H720X_CHOICE
- bool "Hynix HMS720x-based"
- select ARCH_H720X
- help
- This enables support for systems based on the Hynix HMS720x
-
-config ARCH_IOP13XX_CHOICE
- bool "IOP13xx-based"
- depends on MMU
- select ARCH_IOP13XX
- help
- Support for Intel's IOP13XX (XScale) family of processors.
-
-config ARCH_IOP32X_CHOICE
- bool "IOP32x-based"
- depends on MMU
- select ARCH_IOP32X
- help
- Support for Intel's 80219 and IOP32X (XScale) family of
- processors.
-
-config ARCH_IOP33X_CHOICE
- bool "IOP33x-based"
- depends on MMU
- select ARCH_IOP33X
- help
- Support for Intel's IOP33X (XScale) family of processors.
-
-config ARCH_IXP4XX_CHOICE
- bool "IXP4xx-based"
- depends on MMU
- select ARCH_IXP4XX
- help
- Support for Intel's IXP4XX (XScale) family of processors.
-
-config ARCH_MVEBU_CHOICE
- bool "Marvell SOCs with Device Tree support"
- select ARCH_MVEBU
- help
- Support for the Marvell SoC Family with device tree support
-
-config ARCH_DOVE_CHOICE
- bool "Marvell Dove"
- select ARCH_DOVE
- help
- Support for the Marvell Dove SoC 88AP510
-
-config ARCH_KIRKWOOD_CHOICE
- bool "Marvell Kirkwood"
- select ARCH_KIRKWOOD
- help
- Support for the following Marvell Kirkwood series SoCs:
- 88F6180, 88F6192 and 88F6281.
-
-config ARCH_LPC32XX_CHOICE
- bool "NXP LPC32XX"
- select ARCH_LPC32XX
- help
- Support for the NXP LPC32XX family of processors
-
-config ARCH_MV78XX0_CHOICE
- bool "Marvell MV78xx0"
- select ARCH_MV78XX0
- help
- Support for the following Marvell MV78xx0 series SoCs:
- MV781x0, MV782x0.
-
-config ARCH_ORION5X_CHOICE
- bool "Marvell Orion"
- depends on MMU
- select ARCH_ORION5X
- help
- Support for the following Marvell Orion 5x series SoCs:
- Orion-1 (5181), Orion-VoIP (5181L), Orion-NAS (5182),
- Orion-2 (5281), Orion-1-90 (6183).
-
-config ARCH_MMP_CHOICE
- bool "Marvell PXA168/910/MMP2"
- depends on MMU
- select ARCH_MMP
- help
- Support for Marvell's PXA168/PXA910(MMP) and MMP2 processor line.
-
-config ARCH_KS8695_CHOICE
- bool "Micrel/Kendin KS8695"
- select ARCH_KS8695
- help
- Support for Micrel/Kendin KS8695 "Centaur" (ARM922T) based
- System-on-Chip devices.
-
-config ARCH_W90X900_CHOICE
- bool "Nuvoton W90X900 CPU"
- select ARCH_W90X900
- help
- Support for Nuvoton (Winbond logic dept.) ARM9 processor,
- At present, the w90x900 has been renamed nuc900, regarding
- the ARM series product line, you can login the following
- link address to know more.
-
- <http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/
- ConsumerElectronicsIC/ARMMicrocontroller/ARMMicrocontroller>
-
-config ARCH_TEGRA_CHOICE
- bool "NVIDIA Tegra"
- select ARCH_TEGRA
- help
- This enables support for NVIDIA Tegra based systems (Tegra APX,
- Tegra 6xx and Tegra 2 series).
-
-config ARCH_PICOXCELL_CHOICE
- bool "Picochip picoXcell"
- select ARCH_PICOXCELL
- help
- This enables support for systems based on the Picochip picoXcell
- family of Femtocell devices. The picoxcell support requires device tree
- for all boards.
-
-config ARCH_PNX4008_CHOICE
- bool "Philips Nexperia PNX4008 Mobile"
- select ARCH_PNX4008
- help
- This enables support for Philips PNX4008 mobile platform.
-
-config ARCH_PXA_CHOICE
- bool "PXA2xx/PXA3xx-based"
- depends on MMU
- select ARCH_PXA
- help
- Support for Intel/Marvell's PXA2xx/PXA3xx processor line.
-
-config ARCH_MSM_CHOICE
- bool "Qualcomm MSM"
- select ARCH_MSM
- help
- Support for Qualcomm MSM/QSD based systems. This runs on the
- apps processor of the MSM/QSD and depends on a shared memory
- interface to the modem processor which runs the baseband
- stack and controls some vital subsystems
- (clock and power control, etc).
-
-config ARCH_SHMOBILE_CHOICE
- bool "Renesas SH-Mobile / R-Mobile"
- select ARCH_SHMOBILE
- help
- Support for Renesas's SH-Mobile and R-Mobile ARM platforms.
-
-config ARCH_RPC_CHOICE
- bool "RiscPC"
- select ARCH_RPC
- help
- On the Acorn Risc-PC, Linux can support the internal IDE disk and
- CD-ROM interface, serial and parallel port, and the floppy drive.
-
-config ARCH_SA1100_CHOICE
- bool "SA1100-based"
- select ARCH_SA1100
- help
- Support for StrongARM 11x0 based boards.
-
-config ARCH_S3C24XX_CHOICE
- bool "Samsung S3C24XX SoCs"
- select ARCH_S3C24XX
- help
- Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443
- and S3C2450 SoCs based systems, such as the Simtec Electronics BAST
- (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or the
- Samsung SMDK2410 development board (and derivatives).
-
-config ARCH_S3C64XX_CHOICE
- bool "Samsung S3C64XX"
- select ARCH_S3C64XX
- help
- Samsung S3C64XX series based systems
-
-config ARCH_S5P64X0_CHOICE
- bool "Samsung S5P6440 S5P6450"
- select ARCH_S5P64X0
- help
- Samsung S5P64X0 CPU based systems, such as the Samsung SMDK6440,
- SMDK6450.
-
-config ARCH_S5PC100_CHOICE
- bool "Samsung S5PC100"
- select ARCH_S5PC100
- help
- Samsung S5PC100 series based systems
-
-config ARCH_S5PV210_CHOICE
- bool "Samsung S5PV210/S5PC110"
- select ARCH_S5PV210
- help
- Samsung S5PV210/S5PC110 series based systems
-
-config ARCH_EXYNOS_CHOICE
- bool "SAMSUNG EXYNOS"
- select ARCH_EXYNOS
- help
- Support for SAMSUNG's EXYNOS SoCs (EXYNOS4/5)
-
-config ARCH_SHARK_CHOICE
- bool "Shark"
- select ARCH_SHARK
- help
- Support for the StrongARM based Digital DNARD machine, also known
- as "Shark" (<http://www.shark-linux.de/shark.html>).
-
-config ARCH_U300_CHOICE
- bool "ST-Ericsson U300 Series"
- depends on MMU
- select ARCH_U300
- help
- Support for ST-Ericsson U300 series mobile platforms.
-
-config ARCH_U8500_CHOICE
- bool "ST-Ericsson U8500 Series"
- depends on MMU
- select ARCH_U8500
- help
- Support for ST-Ericsson's Ux500 architecture
-
-config ARCH_NOMADIK_CHOICE
- bool "STMicroelectronics Nomadik"
- select ARCH_NOMADIK
- help
- Support for the Nomadik platform by ST-Ericsson
-
-config ARCH_DAVINCI_CHOICE
- bool "TI DaVinci"
- select ARCH_DAVINCI
- select NEED_MACH_GPIO_H
- help
- Support for TI's DaVinci platform.
-
-config ARCH_OMAP_CHOICE
- bool "TI OMAP"
- depends on MMU
- select ARCH_OMAP
- help
- Support for TI's OMAP platform (OMAP1/2/3/4).
-
-config PLAT_SPEAR_CHOICE
- bool "ST SPEAr"
- select PLAT_SPEAR
- help
- Support for ST's SPEAr platform (SPEAr3xx, SPEAr6xx and SPEAr13xx).
-
-config ARCH_VT8500_CHOICE
- bool "VIA/WonderMedia 85xx"
- select ARCH_VT8500
- help
- Support for VIA/WonderMedia VT8500/WM85xx System-on-Chip.
-
-config ARCH_ZYNQ_CHOICE
- bool "Xilinx Zynq ARM Cortex A9 Platform"
- select ARCH_ZYNQ
- help
- Support for Xilinx Zynq ARM Cortex A9 Platform
-endchoice
-
-#
-# This is sorted alphabetically by mach-* pathname. However, plat-*
-# Kconfigs may be included either alphabetically (according to the
-# plat- suffix) or along side the corresponding mach-* source.
-#
-source "arch/arm/mach-mvebu/Kconfig"
-
-source "arch/arm/mach-at91/Kconfig"
-
-source "arch/arm/mach-bcmring/Kconfig"
-
-source "arch/arm/mach-clps711x/Kconfig"
-
-source "arch/arm/mach-cns3xxx/Kconfig"
-
-source "arch/arm/mach-davinci/Kconfig"
-
-source "arch/arm/mach-dove/Kconfig"
-
-source "arch/arm/mach-ebsa110/Kconfig"
-
-source "arch/arm/mach-ep93xx/Kconfig"
-
-source "arch/arm/mach-footbridge/Kconfig"
-
-source "arch/arm/mach-gemini/Kconfig"
-
-source "arch/arm/mach-h720x/Kconfig"
-
-source "arch/arm/mach-highbank/Kconfig"
-
-source "arch/arm/mach-integrator/Kconfig"
-
-source "arch/arm/mach-iop32x/Kconfig"
-
-source "arch/arm/mach-iop33x/Kconfig"
-
-source "arch/arm/mach-iop13xx/Kconfig"
-
-source "arch/arm/mach-ixp4xx/Kconfig"
-
-source "arch/arm/mach-kirkwood/Kconfig"
-
-source "arch/arm/mach-ks8695/Kconfig"
-
-source "arch/arm/mach-lpc32xx/Kconfig"
-
-source "arch/arm/mach-msm/Kconfig"
-
-source "arch/arm/mach-mv78xx0/Kconfig"
-
-source "arch/arm/plat-mxc/Kconfig"
-
-source "arch/arm/mach-mxs/Kconfig"
-
-source "arch/arm/mach-netx/Kconfig"
-
-source "arch/arm/mach-nomadik/Kconfig"
-source "arch/arm/plat-nomadik/Kconfig"
-
-source "arch/arm/plat-omap/Kconfig"
-
-source "arch/arm/mach-omap1/Kconfig"
-
-source "arch/arm/mach-omap2/Kconfig"
-
-source "arch/arm/mach-orion5x/Kconfig"
-
-source "arch/arm/mach-picoxcell/Kconfig"
-
-source "arch/arm/mach-pnx4008/Kconfig"
-
-source "arch/arm/mach-pxa/Kconfig"
-source "arch/arm/plat-pxa/Kconfig"
-
-source "arch/arm/mach-mmp/Kconfig"
-
-source "arch/arm/mach-realview/Kconfig"
-
-source "arch/arm/mach-rpc/Kconfig"
-
-source "arch/arm/mach-sa1100/Kconfig"
-
-source "arch/arm/plat-samsung/Kconfig"
-source "arch/arm/plat-s3c24xx/Kconfig"
-
-source "arch/arm/mach-shark/Kconfig"
-
-source "arch/arm/mach-socfpga/Kconfig"
-
-source "arch/arm/plat-spear/Kconfig"
-
-source "arch/arm/mach-s3c24xx/Kconfig"
-if ARCH_S3C24XX
-source "arch/arm/mach-s3c2412/Kconfig"
-source "arch/arm/mach-s3c2440/Kconfig"
-endif
-
-source "arch/arm/mach-s3c64xx/Kconfig"
-
-source "arch/arm/mach-s5p64x0/Kconfig"
-
-source "arch/arm/mach-s5pc100/Kconfig"
-
-source "arch/arm/mach-s5pv210/Kconfig"
-
-source "arch/arm/mach-exynos/Kconfig"
-
-source "arch/arm/mach-shmobile/Kconfig"
-
-source "arch/arm/mach-tegra/Kconfig"
-
-source "arch/arm/mach-u300/Kconfig"
-
-source "arch/arm/mach-ux500/Kconfig"
-
-source "arch/arm/mach-versatile/Kconfig"
-
-source "arch/arm/mach-vexpress/Kconfig"
-source "arch/arm/plat-versatile/Kconfig"
-
-source "arch/arm/mach-vt8500/Kconfig"
-
-source "arch/arm/mach-w90x900/Kconfig"
-
-source "arch/arm/mach-zynq/Kconfig"
-
-# Definitions to make life easier
-config ARCH_ACORN
- bool
-
-config PLAT_IOP
- bool
- select GENERIC_CLOCKEVENTS
-
-config PLAT_ORION
- bool
- select CLKSRC_MMIO
- select GENERIC_IRQ_CHIP
- select IRQ_DOMAIN
- select COMMON_CLK
-
-config PLAT_PXA
- bool
-
-config PLAT_VERSATILE
- bool
+source "arch/arm/Kconfig.mach"
config ARM_TIMER_SP804
bool
diff --git a/arch/arm/Kconfig.mach b/arch/arm/Kconfig.mach
new file mode 100644
index 0000000..60f0386
--- /dev/null
+++ b/arch/arm/Kconfig.mach
@@ -0,0 +1,528 @@
+#
+# The "ARM system type" choice list is ordered alphabetically by option
+# text. Please add new entries in the option alphabetic order.
+#
+choice
+ prompt "ARM system type"
+ default ARCH_VERSATILE
+
+config ARCH_SOCFPGA_CHOICE
+ bool "Altera SOCFPGA family"
+ select ARCH_SOCFPGA
+ help
+ This enables support for Altera SOCFPGA Cyclone V platform
+
+config ARCH_INTEGRATOR_CHOICE
+ bool "ARM Ltd. Integrator family"
+ select ARCH_INTEGRATOR
+ help
+ Support for ARM's Integrator platform.
+
+config ARCH_REALVIEW_CHOICE
+ bool "ARM Ltd. RealView family"
+ select ARCH_REALVIEW
+ help
+ This enables support for ARM Ltd RealView boards.
+
+config ARCH_VERSATILE_CHOICE
+ bool "ARM Ltd. Versatile family"
+ select ARCH_VERSATILE
+ help
+ This enables support for ARM Ltd Versatile board.
+
+config ARCH_VEXPRESS_CHOICE
+ bool "ARM Ltd. Versatile Express family"
+ select ARCH_VEXPRESS
+ help
+ This enables support for the ARM Ltd Versatile Express boards.
+
+config ARCH_AT91_CHOICE
+ bool "Atmel AT91"
+ select ARCH_AT91
+ help
+ This enables support for systems based on Atmel
+ AT91RM9200 and AT91SAM9* processors.
+
+config ARCH_BCMRING_CHOICE
+ bool "Broadcom BCMRING"
+ depends on MMU
+ select ARCH_BCMRING
+ help
+ Support for Broadcom's BCMRing platform.
+
+config ARCH_HIGHBANK_CHOICE
+ bool "Calxeda Highbank-based"
+ select ARCH_HIGHBANK
+ help
+ Support for the Calxeda Highbank SoC based boards.
+
+config ARCH_CLPS711X_CHOICE
+ bool "Cirrus Logic CLPS711x/EP721x/EP731x-based"
+ select ARCH_CLPS711X
+ help
+ Support for Cirrus Logic 711x/721x/731x based boards.
+
+config ARCH_CNS3XXX_CHOICE
+ bool "Cavium Networks CNS3XXX family"
+ select ARCH_CNS3XXX
+ help
+ Support for Cavium Networks CNS3XXX platform.
+
+config ARCH_GEMINI_CHOICE
+ bool "Cortina Systems Gemini"
+ select ARCH_GEMINI
+ help
+ Support for the Cortina Systems Gemini family SoCs
+
+config ARCH_PRIMA2_CHOICE
+ bool "CSR SiRFSoC PRIMA2 ARM Cortex A9 Platform"
+ select ARCH_PRIMA2
+ help
+ Support for CSR SiRFSoC ARM Cortex A9 Platform
+
+config ARCH_EBSA110_CHOICE
+ bool "EBSA-110"
+ select ARCH_EBSA110
+ help
+ This is an evaluation board for the StrongARM processor available
+ from Digital. It has limited hardware on-board, including an
+ Ethernet interface, two PCMCIA sockets, two serial ports and a
+ parallel port.
+
+config ARCH_EP93XX_CHOICE
+ bool "EP93xx-based"
+ select ARCH_EP93XX
+ help
+ This enables support for the Cirrus EP93xx series of CPUs.
+
+config ARCH_FOOTBRIDGE_CHOICE
+ bool "FootBridge"
+ select ARCH_FOOTBRIDGE
+ help
+ Support for systems based on the DC21285 companion chip
+ ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder.
+
+config ARCH_MXC_CHOICE
+ bool "Freescale MXC/iMX-based"
+ select ARCH_MXC
+ help
+ Support for Freescale MXC/iMX-based family of processors
+
+config ARCH_MXS_CHOICE
+ bool "Freescale MXS-based"
+ select ARCH_MXS
+ help
+ Support for Freescale MXS-based family of processors
+
+config ARCH_NETX_CHOICE
+ bool "Hilscher NetX based"
+ select ARCH_NETX
+ help
+ This enables support for systems based on the Hilscher NetX Soc
+
+config ARCH_H720X_CHOICE
+ bool "Hynix HMS720x-based"
+ select ARCH_H720X
+ help
+ This enables support for systems based on the Hynix HMS720x
+
+config ARCH_IOP13XX_CHOICE
+ bool "IOP13xx-based"
+ depends on MMU
+ select ARCH_IOP13XX
+ help
+ Support for Intel's IOP13XX (XScale) family of processors.
+
+config ARCH_IOP32X_CHOICE
+ bool "IOP32x-based"
+ depends on MMU
+ select ARCH_IOP32X
+ help
+ Support for Intel's 80219 and IOP32X (XScale) family of
+ processors.
+
+config ARCH_IOP33X_CHOICE
+ bool "IOP33x-based"
+ depends on MMU
+ select ARCH_IOP33X
+ help
+ Support for Intel's IOP33X (XScale) family of processors.
+
+config ARCH_IXP4XX_CHOICE
+ bool "IXP4xx-based"
+ depends on MMU
+ select ARCH_IXP4XX
+ help
+ Support for Intel's IXP4XX (XScale) family of processors.
+
+config ARCH_MVEBU_CHOICE
+ bool "Marvell SOCs with Device Tree support"
+ select ARCH_MVEBU
+ help
+ Support for the Marvell SoC Family with device tree support
+
+config ARCH_DOVE_CHOICE
+ bool "Marvell Dove"
+ select ARCH_DOVE
+ help
+ Support for the Marvell Dove SoC 88AP510
+
+config ARCH_KIRKWOOD_CHOICE
+ bool "Marvell Kirkwood"
+ select ARCH_KIRKWOOD
+ help
+ Support for the following Marvell Kirkwood series SoCs:
+ 88F6180, 88F6192 and 88F6281.
+
+config ARCH_LPC32XX_CHOICE
+ bool "NXP LPC32XX"
+ select ARCH_LPC32XX
+ help
+ Support for the NXP LPC32XX family of processors
+
+config ARCH_MV78XX0_CHOICE
+ bool "Marvell MV78xx0"
+ select ARCH_MV78XX0
+ help
+ Support for the following Marvell MV78xx0 series SoCs:
+ MV781x0, MV782x0.
+
+config ARCH_ORION5X_CHOICE
+ bool "Marvell Orion"
+ depends on MMU
+ select ARCH_ORION5X
+ help
+ Support for the following Marvell Orion 5x series SoCs:
+ Orion-1 (5181), Orion-VoIP (5181L), Orion-NAS (5182),
+ Orion-2 (5281), Orion-1-90 (6183).
+
+config ARCH_MMP_CHOICE
+ bool "Marvell PXA168/910/MMP2"
+ depends on MMU
+ select ARCH_MMP
+ help
+ Support for Marvell's PXA168/PXA910(MMP) and MMP2 processor line.
+
+config ARCH_KS8695_CHOICE
+ bool "Micrel/Kendin KS8695"
+ select ARCH_KS8695
+ help
+ Support for Micrel/Kendin KS8695 "Centaur" (ARM922T) based
+ System-on-Chip devices.
+
+config ARCH_W90X900_CHOICE
+ bool "Nuvoton W90X900 CPU"
+ select ARCH_W90X900
+ help
+ Support for Nuvoton (Winbond logic dept.) ARM9 processor,
+ At present, the w90x900 has been renamed nuc900, regarding
+ the ARM series product line, you can login the following
+ link address to know more.
+
+ <http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/
+ ConsumerElectronicsIC/ARMMicrocontroller/ARMMicrocontroller>
+
+config ARCH_TEGRA_CHOICE
+ bool "NVIDIA Tegra"
+ select ARCH_TEGRA
+ help
+ This enables support for NVIDIA Tegra based systems (Tegra APX,
+ Tegra 6xx and Tegra 2 series).
+
+config ARCH_PICOXCELL_CHOICE
+ bool "Picochip picoXcell"
+ select ARCH_PICOXCELL
+ help
+ This enables support for systems based on the Picochip picoXcell
+ family of Femtocell devices. The picoxcell support requires device tree
+ for all boards.
+
+config ARCH_PNX4008_CHOICE
+ bool "Philips Nexperia PNX4008 Mobile"
+ select ARCH_PNX4008
+ help
+ This enables support for Philips PNX4008 mobile platform.
+
+config ARCH_PXA_CHOICE
+ bool "PXA2xx/PXA3xx-based"
+ depends on MMU
+ select ARCH_PXA
+ help
+ Support for Intel/Marvell's PXA2xx/PXA3xx processor line.
+
+config ARCH_MSM_CHOICE
+ bool "Qualcomm MSM"
+ select ARCH_MSM
+ help
+ Support for Qualcomm MSM/QSD based systems. This runs on the
+ apps processor of the MSM/QSD and depends on a shared memory
+ interface to the modem processor which runs the baseband
+ stack and controls some vital subsystems
+ (clock and power control, etc).
+
+config ARCH_SHMOBILE_CHOICE
+ bool "Renesas SH-Mobile / R-Mobile"
+ select ARCH_SHMOBILE
+ help
+ Support for Renesas's SH-Mobile and R-Mobile ARM platforms.
+
+config ARCH_RPC_CHOICE
+ bool "RiscPC"
+ select ARCH_RPC
+ help
+ On the Acorn Risc-PC, Linux can support the internal IDE disk and
+ CD-ROM interface, serial and parallel port, and the floppy drive.
+
+config ARCH_SA1100_CHOICE
+ bool "SA1100-based"
+ select ARCH_SA1100
+ help
+ Support for StrongARM 11x0 based boards.
+
+config ARCH_S3C24XX_CHOICE
+ bool "Samsung S3C24XX SoCs"
+ select ARCH_S3C24XX
+ help
+ Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443
+ and S3C2450 SoCs based systems, such as the Simtec Electronics BAST
+ (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or the
+ Samsung SMDK2410 development board (and derivatives).
+
+config ARCH_S3C64XX_CHOICE
+ bool "Samsung S3C64XX"
+ select ARCH_S3C64XX
+ help
+ Samsung S3C64XX series based systems
+
+config ARCH_S5P64X0_CHOICE
+ bool "Samsung S5P6440 S5P6450"
+ select ARCH_S5P64X0
+ help
+ Samsung S5P64X0 CPU based systems, such as the Samsung SMDK6440,
+ SMDK6450.
+
+config ARCH_S5PC100_CHOICE
+ bool "Samsung S5PC100"
+ select ARCH_S5PC100
+ help
+ Samsung S5PC100 series based systems
+
+config ARCH_S5PV210_CHOICE
+ bool "Samsung S5PV210/S5PC110"
+ select ARCH_S5PV210
+ help
+ Samsung S5PV210/S5PC110 series based systems
+
+config ARCH_EXYNOS_CHOICE
+ bool "SAMSUNG EXYNOS"
+ select ARCH_EXYNOS
+ help
+ Support for SAMSUNG's EXYNOS SoCs (EXYNOS4/5)
+
+config ARCH_SHARK_CHOICE
+ bool "Shark"
+ select ARCH_SHARK
+ help
+ Support for the StrongARM based Digital DNARD machine, also known
+ as "Shark" (<http://www.shark-linux.de/shark.html>).
+
+config ARCH_U300_CHOICE
+ bool "ST-Ericsson U300 Series"
+ depends on MMU
+ select ARCH_U300
+ help
+ Support for ST-Ericsson U300 series mobile platforms.
+
+config ARCH_U8500_CHOICE
+ bool "ST-Ericsson U8500 Series"
+ depends on MMU
+ select ARCH_U8500
+ help
+ Support for ST-Ericsson's Ux500 architecture
+
+config ARCH_NOMADIK_CHOICE
+ bool "STMicroelectronics Nomadik"
+ select ARCH_NOMADIK
+ help
+ Support for the Nomadik platform by ST-Ericsson
+
+config ARCH_DAVINCI_CHOICE
+ bool "TI DaVinci"
+ select ARCH_DAVINCI
+ help
+ Support for TI's DaVinci platform.
+
+config ARCH_OMAP_CHOICE
+ bool "TI OMAP"
+ depends on MMU
+ select ARCH_OMAP
+ help
+ Support for TI's OMAP platform (OMAP1/2/3/4).
+
+config PLAT_SPEAR_CHOICE
+ bool "ST SPEAr"
+ select PLAT_SPEAR
+ help
+ Support for ST's SPEAr platform (SPEAr3xx, SPEAr6xx and SPEAr13xx).
+
+config ARCH_VT8500_CHOICE
+ bool "VIA/WonderMedia 85xx"
+ select ARCH_VT8500
+ help
+ Support for VIA/WonderMedia VT8500/WM85xx System-on-Chip.
+
+config ARCH_ZYNQ_CHOICE
+ bool "Xilinx Zynq ARM Cortex A9 Platform"
+ select ARCH_ZYNQ
+ help
+ Support for Xilinx Zynq ARM Cortex A9 Platform
+endchoice
+
+#
+# This is sorted alphabetically by mach-* pathname. However, plat-*
+# Kconfigs may be included either alphabetically (according to the
+# plat- suffix) or along side the corresponding mach-* source.
+#
+source "arch/arm/mach-mvebu/Kconfig"
+
+source "arch/arm/mach-at91/Kconfig"
+
+source "arch/arm/mach-bcmring/Kconfig"
+
+source "arch/arm/mach-clps711x/Kconfig"
+
+source "arch/arm/mach-cns3xxx/Kconfig"
+
+source "arch/arm/mach-davinci/Kconfig"
+
+source "arch/arm/mach-dove/Kconfig"
+
+source "arch/arm/mach-ebsa110/Kconfig"
+
+source "arch/arm/mach-ep93xx/Kconfig"
+
+source "arch/arm/mach-footbridge/Kconfig"
+
+source "arch/arm/mach-gemini/Kconfig"
+
+source "arch/arm/mach-h720x/Kconfig"
+
+source "arch/arm/mach-highbank/Kconfig"
+
+source "arch/arm/mach-integrator/Kconfig"
+
+source "arch/arm/mach-iop32x/Kconfig"
+
+source "arch/arm/mach-iop33x/Kconfig"
+
+source "arch/arm/mach-iop13xx/Kconfig"
+
+source "arch/arm/mach-ixp4xx/Kconfig"
+
+source "arch/arm/mach-kirkwood/Kconfig"
+
+source "arch/arm/mach-ks8695/Kconfig"
+
+source "arch/arm/mach-lpc32xx/Kconfig"
+
+source "arch/arm/mach-msm/Kconfig"
+
+source "arch/arm/mach-mv78xx0/Kconfig"
+
+source "arch/arm/plat-mxc/Kconfig"
+
+source "arch/arm/mach-mxs/Kconfig"
+
+source "arch/arm/mach-netx/Kconfig"
+
+source "arch/arm/mach-nomadik/Kconfig"
+source "arch/arm/plat-nomadik/Kconfig"
+
+source "arch/arm/plat-omap/Kconfig"
+
+source "arch/arm/mach-omap1/Kconfig"
+
+source "arch/arm/mach-omap2/Kconfig"
+
+source "arch/arm/mach-orion5x/Kconfig"
+
+source "arch/arm/mach-picoxcell/Kconfig"
+
+source "arch/arm/mach-pnx4008/Kconfig"
+
+source "arch/arm/mach-pxa/Kconfig"
+source "arch/arm/plat-pxa/Kconfig"
+
+source "arch/arm/mach-mmp/Kconfig"
+
+source "arch/arm/mach-realview/Kconfig"
+
+source "arch/arm/mach-rpc/Kconfig"
+
+source "arch/arm/mach-sa1100/Kconfig"
+
+source "arch/arm/plat-samsung/Kconfig"
+source "arch/arm/plat-s3c24xx/Kconfig"
+
+source "arch/arm/mach-shark/Kconfig"
+
+source "arch/arm/mach-socfpga/Kconfig"
+
+source "arch/arm/plat-spear/Kconfig"
+
+source "arch/arm/mach-s3c24xx/Kconfig"
+if ARCH_S3C24XX
+source "arch/arm/mach-s3c2412/Kconfig"
+source "arch/arm/mach-s3c2440/Kconfig"
+endif
+
+source "arch/arm/mach-s3c64xx/Kconfig"
+
+source "arch/arm/mach-s5p64x0/Kconfig"
+
+source "arch/arm/mach-s5pc100/Kconfig"
+
+source "arch/arm/mach-s5pv210/Kconfig"
+
+source "arch/arm/mach-exynos/Kconfig"
+
+source "arch/arm/mach-shmobile/Kconfig"
+
+source "arch/arm/mach-tegra/Kconfig"
+
+source "arch/arm/mach-u300/Kconfig"
+
+source "arch/arm/mach-ux500/Kconfig"
+
+source "arch/arm/mach-versatile/Kconfig"
+
+source "arch/arm/mach-vexpress/Kconfig"
+source "arch/arm/plat-versatile/Kconfig"
+
+source "arch/arm/mach-vt8500/Kconfig"
+
+source "arch/arm/mach-w90x900/Kconfig"
+
+source "arch/arm/mach-zynq/Kconfig"
+
+# Definitions to make life easier
+config ARCH_ACORN
+ bool
+
+config PLAT_IOP
+ bool
+ select GENERIC_CLOCKEVENTS
+
+config PLAT_ORION
+ bool
+ select CLKSRC_MMIO
+ select GENERIC_IRQ_CHIP
+ select IRQ_DOMAIN
+ select COMMON_CLK
+
+config PLAT_PXA
+ bool
+
+config PLAT_VERSATILE
+ bool
+
--
1.7.9.5
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [PATCH 3/6] ARM: picoxcell: header fixes for multi-platform
2012-08-29 22:49 [PATCH 0/6] Initial multi-platform support Rob Herring
2012-08-29 22:49 ` [PATCH 1/6] ARM: move ARCH config definitions into mach dirs Rob Herring
2012-08-29 22:49 ` [PATCH 2/6] ARM: introduce Kconfig.mach Rob Herring
@ 2012-08-29 22:49 ` Rob Herring
2012-08-29 22:49 ` [PATCH 4/6] ARM: vexpress: remove dependency on mach/* headers Rob Herring
` (3 subsequent siblings)
6 siblings, 0 replies; 28+ messages in thread
From: Rob Herring @ 2012-08-29 22:49 UTC (permalink / raw)
To: linux-arm-kernel
From: Rob Herring <rob.herring@calxeda.com>
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
---
arch/arm/mach-picoxcell/common.c | 6 ++---
arch/arm/mach-picoxcell/include/mach/map.h | 25 --------------------
.../mach-picoxcell/include/mach/picoxcell_soc.h | 25 --------------------
arch/arm/mach-picoxcell/picoxcell_soc.h | 25 ++++++++++++++++++++
4 files changed, 28 insertions(+), 53 deletions(-)
delete mode 100644 arch/arm/mach-picoxcell/include/mach/map.h
delete mode 100644 arch/arm/mach-picoxcell/include/mach/picoxcell_soc.h
create mode 100644 arch/arm/mach-picoxcell/picoxcell_soc.h
diff --git a/arch/arm/mach-picoxcell/common.c b/arch/arm/mach-picoxcell/common.c
index 8f9a0b4..a8b70b5 100644
--- a/arch/arm/mach-picoxcell/common.c
+++ b/arch/arm/mach-picoxcell/common.c
@@ -20,11 +20,11 @@
#include <asm/hardware/vic.h>
#include <asm/mach/map.h>
-#include <mach/map.h>
-#include <mach/picoxcell_soc.h>
-
+#include "picoxcell_soc.h"
#include "common.h"
+#define PHYS_TO_IO(x) (((x) & 0x00ffffff) | 0xfe000000)
+
#define WDT_CTRL_REG_EN_MASK (1 << 0)
#define WDT_CTRL_REG_OFFS (0x00)
#define WDT_TIMEOUT_REG_OFFS (0x04)
diff --git a/arch/arm/mach-picoxcell/include/mach/map.h b/arch/arm/mach-picoxcell/include/mach/map.h
deleted file mode 100644
index c06afad..0000000
--- a/arch/arm/mach-picoxcell/include/mach/map.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (c) 2011 Picochip Ltd., Jamie Iles
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
-#ifndef __PICOXCELL_MAP_H__
-#define __PICOXCELL_MAP_H__
-
-#define PHYS_TO_IO(x) (((x) & 0x00ffffff) | 0xfe000000)
-
-#ifdef __ASSEMBLY__
-#define IO_ADDRESS(x) PHYS_TO_IO((x))
-#else
-#define IO_ADDRESS(x) (void __iomem __force *)(PHYS_TO_IO((x)))
-#endif
-
-#endif /* __PICOXCELL_MAP_H__ */
diff --git a/arch/arm/mach-picoxcell/include/mach/picoxcell_soc.h b/arch/arm/mach-picoxcell/include/mach/picoxcell_soc.h
deleted file mode 100644
index 5566fc8..0000000
--- a/arch/arm/mach-picoxcell/include/mach/picoxcell_soc.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (c) 2011 Picochip Ltd., Jamie Iles
- *
- * This file contains the hardware definitions of the picoXcell SoC devices.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
-#ifndef __PICOXCELL_SOC_H__
-#define __PICOXCELL_SOC_H__
-
-#define PICOXCELL_UART1_BASE 0x80230000
-#define PICOXCELL_PERIPH_BASE 0x80000000
-#define PICOXCELL_PERIPH_LENGTH SZ_4M
-#define PICOXCELL_VIC0_BASE 0x80060000
-#define PICOXCELL_VIC1_BASE 0x80064000
-
-#endif /* __PICOXCELL_SOC_H__ */
diff --git a/arch/arm/mach-picoxcell/picoxcell_soc.h b/arch/arm/mach-picoxcell/picoxcell_soc.h
new file mode 100644
index 0000000..5566fc8
--- /dev/null
+++ b/arch/arm/mach-picoxcell/picoxcell_soc.h
@@ -0,0 +1,25 @@
+/*
+ * Copyright (c) 2011 Picochip Ltd., Jamie Iles
+ *
+ * This file contains the hardware definitions of the picoXcell SoC devices.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+#ifndef __PICOXCELL_SOC_H__
+#define __PICOXCELL_SOC_H__
+
+#define PICOXCELL_UART1_BASE 0x80230000
+#define PICOXCELL_PERIPH_BASE 0x80000000
+#define PICOXCELL_PERIPH_LENGTH SZ_4M
+#define PICOXCELL_VIC0_BASE 0x80060000
+#define PICOXCELL_VIC1_BASE 0x80064000
+
+#endif /* __PICOXCELL_SOC_H__ */
--
1.7.9.5
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [PATCH 4/6] ARM: vexpress: remove dependency on mach/* headers
2012-08-29 22:49 [PATCH 0/6] Initial multi-platform support Rob Herring
` (2 preceding siblings ...)
2012-08-29 22:49 ` [PATCH 3/6] ARM: picoxcell: header fixes for multi-platform Rob Herring
@ 2012-08-29 22:49 ` Rob Herring
2012-08-29 22:49 ` [PATCH 5/6] ARM: initial multiplatform support Rob Herring
` (2 subsequent siblings)
6 siblings, 0 replies; 28+ messages in thread
From: Rob Herring @ 2012-08-29 22:49 UTC (permalink / raw)
To: linux-arm-kernel
From: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
arch/arm/mach-vexpress/ct-ca9x4.c | 1 +
arch/arm/mach-vexpress/include/mach/irqs.h | 2 ++
2 files changed, 3 insertions(+)
diff --git a/arch/arm/mach-vexpress/ct-ca9x4.c b/arch/arm/mach-vexpress/ct-ca9x4.c
index 61c4924..0e770e8 100644
--- a/arch/arm/mach-vexpress/ct-ca9x4.c
+++ b/arch/arm/mach-vexpress/ct-ca9x4.c
@@ -27,6 +27,7 @@
#include "core.h"
#include <mach/motherboard.h>
+#include <mach/irqs.h>
#include <plat/clcd.h>
diff --git a/arch/arm/mach-vexpress/include/mach/irqs.h b/arch/arm/mach-vexpress/include/mach/irqs.h
index 4b10ee7..f8f7f78 100644
--- a/arch/arm/mach-vexpress/include/mach/irqs.h
+++ b/arch/arm/mach-vexpress/include/mach/irqs.h
@@ -1,4 +1,6 @@
#define IRQ_LOCALTIMER 29
#define IRQ_LOCALWDOG 30
+#ifndef CONFIG_SPARSE_IRQ
#define NR_IRQS 256
+#endif
--
1.7.9.5
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [PATCH 5/6] ARM: initial multiplatform support
2012-08-29 22:49 [PATCH 0/6] Initial multi-platform support Rob Herring
` (3 preceding siblings ...)
2012-08-29 22:49 ` [PATCH 4/6] ARM: vexpress: remove dependency on mach/* headers Rob Herring
@ 2012-08-29 22:49 ` Rob Herring
2012-08-29 22:50 ` [PATCH 6/6] ARM: update defconfigs Rob Herring
2012-08-31 18:12 ` [PATCH v2] ARM: initial multiplatform support Rob Herring
6 siblings, 0 replies; 28+ messages in thread
From: Rob Herring @ 2012-08-29 22:49 UTC (permalink / raw)
To: linux-arm-kernel
From: Rob Herring <rob.herring@calxeda.com>
This lets us build a multiplatform kernel for experimental purposes.
However, it will not be useful for any real work, because it relies
on a number of useful things to be disabled for now:
* SMP support must be turned off because of conflicting symbols.
Marc Zyngier has proposed a solution by adding a new SOC
operations structure to hold indirect function pointers
for these, but that work is currently stalled
* We turn on SPARSE_IRQ unconditionally, which is not supported
on most platforms. Each of them is currently in a different
state, but most are being worked on.
* A common clock framework is in place since v3.4 but not yet
being used. Work on this is on its way.
* DEBUG_LL for early debugging is currently disabled.
* THUMB2_KERNEL does not work with allyesconfig because the
kernel gets too big
[Rob Herring]: Rebased to not be dependent on the mass mach header rename.
As a result, omap2plus, imx, mxs and ux500 are not converted. Highbank,
picoxcell, mvebu, socfpga, and vexpress are converted.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
---
arch/arm/Kconfig.mach | 57 ++++++++++++++
arch/arm/Makefile | 155 ++++++++++++++++++++------------------
arch/arm/boot/compressed/misc.c | 6 ++
arch/arm/include/asm/timex.h | 4 +
arch/arm/mach-highbank/Kconfig | 2 +-
arch/arm/mach-mvebu/Kconfig | 2 +-
arch/arm/mach-mvebu/Makefile | 2 +
arch/arm/mach-picoxcell/Kconfig | 2 +-
arch/arm/mach-socfpga/Kconfig | 2 +-
arch/arm/mach-vexpress/Kconfig | 2 +-
arch/arm/mach-vexpress/Makefile | 2 +
arch/arm/plat-versatile/Makefile | 2 +
12 files changed, 158 insertions(+), 80 deletions(-)
diff --git a/arch/arm/Kconfig.mach b/arch/arm/Kconfig.mach
index 60f0386..7a21abb 100644
--- a/arch/arm/Kconfig.mach
+++ b/arch/arm/Kconfig.mach
@@ -4,6 +4,7 @@
#
choice
prompt "ARM system type"
+ depends on !ARCH_MULTIPLATFORM
default ARCH_VERSATILE
config ARCH_SOCFPGA_CHOICE
@@ -378,6 +379,62 @@ config ARCH_ZYNQ_CHOICE
Support for Xilinx Zynq ARM Cortex A9 Platform
endchoice
+menuconfig ARCH_MULTIPLATFORM
+ bool "Multiple platform selection"
+ select USE_OF
+ select COMMON_CLK
+ select SPARSE_IRQ
+ select MULTI_IRQ_HANDLER
+ select AUTO_ZRELADDR
+ depends on MMU
+
+if ARCH_MULTIPLATFORM
+
+comment "CPU Core family selection"
+
+config ARCH_MULTI_V4
+ bool "ARMv4 based platforms (FA526, StrongARM)"
+ select ARCH_MULTI_V4_V5
+ depends on !ARCH_MULTI_V6_V7
+
+config ARCH_MULTI_V4T
+ bool "ARMv4T based platforms (ARM720T, ARM920T, ...)"
+ select ARCH_MULTI_V4_V5
+ depends on !ARCH_MULTI_V6_V7
+
+config ARCH_MULTI_V5
+ bool "ARMv5 based platforms (ARM926T, XSCALE, PJ1, ...)"
+ select ARCH_MULTI_V4_V5
+ depends on !ARCH_MULTI_V6_V7
+
+config ARCH_MULTI_V4_V5
+ bool
+
+config ARCH_MULTI_V6
+ bool "ARMv6 based platforms (ARM11, Scorpion, ...)"
+ select CPU_V6
+ select ARCH_MULTI_V6_V7
+
+config ARCH_MULTI_V7
+ bool "ARMv7 based platforms (Cortex-A, PJ4, Krait)"
+ select CPU_V7
+ select ARCH_VEXPRESS
+ default y
+ select ARCH_MULTI_V6_V7
+
+config ARCH_MULTI_V6_V7
+ bool
+
+config ARCH_MULTI_CPU_AUTO
+ def_bool !(ARCH_MULTI_V4 || ARCH_MULTI_V4T || ARCH_MULTI_V6_V7)
+ select ARCH_MULTI_V5
+
+endif
+
+if ARCH_MULTIPLATFORM
+comment "SoC family selection"
+endif
+
#
# This is sorted alphabetically by mach-* pathname. However, plat-*
# Kconfigs may be included either alphabetically (according to the
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 30eae87..fe6e05e 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -135,84 +135,84 @@ textofs-$(CONFIG_ARCH_MSM8960) := 0x00208000
# Machine directory name. This list is sorted alphanumerically
# by CONFIG_* macro name.
-machine-$(CONFIG_ARCH_AT91) := at91
-machine-$(CONFIG_ARCH_BCMRING) := bcmring
-machine-$(CONFIG_ARCH_CLPS711X) := clps711x
-machine-$(CONFIG_ARCH_CNS3XXX) := cns3xxx
-machine-$(CONFIG_ARCH_DAVINCI) := davinci
-machine-$(CONFIG_ARCH_DOVE) := dove
-machine-$(CONFIG_ARCH_EBSA110) := ebsa110
-machine-$(CONFIG_ARCH_EP93XX) := ep93xx
-machine-$(CONFIG_ARCH_GEMINI) := gemini
-machine-$(CONFIG_ARCH_H720X) := h720x
-machine-$(CONFIG_ARCH_HIGHBANK) := highbank
-machine-$(CONFIG_ARCH_INTEGRATOR) := integrator
-machine-$(CONFIG_ARCH_IOP13XX) := iop13xx
-machine-$(CONFIG_ARCH_IOP32X) := iop32x
-machine-$(CONFIG_ARCH_IOP33X) := iop33x
-machine-$(CONFIG_ARCH_IXP4XX) := ixp4xx
-machine-$(CONFIG_ARCH_KIRKWOOD) := kirkwood
-machine-$(CONFIG_ARCH_KS8695) := ks8695
-machine-$(CONFIG_ARCH_LPC32XX) := lpc32xx
-machine-$(CONFIG_ARCH_MMP) := mmp
-machine-$(CONFIG_ARCH_MSM) := msm
-machine-$(CONFIG_ARCH_MV78XX0) := mv78xx0
-machine-$(CONFIG_ARCH_IMX_V4_V5) := imx
-machine-$(CONFIG_ARCH_IMX_V6_V7) := imx
-machine-$(CONFIG_ARCH_MXS) := mxs
-machine-$(CONFIG_ARCH_MVEBU) := mvebu
-machine-$(CONFIG_ARCH_NETX) := netx
-machine-$(CONFIG_ARCH_NOMADIK) := nomadik
-machine-$(CONFIG_ARCH_OMAP1) := omap1
-machine-$(CONFIG_ARCH_OMAP2PLUS) := omap2
-machine-$(CONFIG_ARCH_ORION5X) := orion5x
-machine-$(CONFIG_ARCH_PICOXCELL) := picoxcell
-machine-$(CONFIG_ARCH_PNX4008) := pnx4008
-machine-$(CONFIG_ARCH_PRIMA2) := prima2
-machine-$(CONFIG_ARCH_PXA) := pxa
-machine-$(CONFIG_ARCH_REALVIEW) := realview
-machine-$(CONFIG_ARCH_RPC) := rpc
-machine-$(CONFIG_ARCH_S3C24XX) := s3c24xx s3c2412 s3c2440
-machine-$(CONFIG_ARCH_S3C64XX) := s3c64xx
-machine-$(CONFIG_ARCH_S5P64X0) := s5p64x0
-machine-$(CONFIG_ARCH_S5PC100) := s5pc100
-machine-$(CONFIG_ARCH_S5PV210) := s5pv210
-machine-$(CONFIG_ARCH_EXYNOS4) := exynos
-machine-$(CONFIG_ARCH_EXYNOS5) := exynos
-machine-$(CONFIG_ARCH_SA1100) := sa1100
-machine-$(CONFIG_ARCH_SHARK) := shark
-machine-$(CONFIG_ARCH_SHMOBILE) := shmobile
-machine-$(CONFIG_ARCH_TEGRA) := tegra
-machine-$(CONFIG_ARCH_U300) := u300
-machine-$(CONFIG_ARCH_U8500) := ux500
-machine-$(CONFIG_ARCH_VERSATILE) := versatile
-machine-$(CONFIG_ARCH_VEXPRESS) := vexpress
-machine-$(CONFIG_ARCH_VT8500) := vt8500
-machine-$(CONFIG_ARCH_W90X900) := w90x900
-machine-$(CONFIG_FOOTBRIDGE) := footbridge
-machine-$(CONFIG_ARCH_SOCFPGA) := socfpga
-machine-$(CONFIG_MACH_SPEAR1310) := spear13xx
-machine-$(CONFIG_MACH_SPEAR1340) := spear13xx
-machine-$(CONFIG_MACH_SPEAR300) := spear3xx
-machine-$(CONFIG_MACH_SPEAR310) := spear3xx
-machine-$(CONFIG_MACH_SPEAR320) := spear3xx
-machine-$(CONFIG_MACH_SPEAR600) := spear6xx
-machine-$(CONFIG_ARCH_ZYNQ) := zynq
+machine-$(CONFIG_ARCH_AT91) += at91
+machine-$(CONFIG_ARCH_BCMRING) += bcmring
+machine-$(CONFIG_ARCH_CLPS711X) += clps711x
+machine-$(CONFIG_ARCH_CNS3XXX) += cns3xxx
+machine-$(CONFIG_ARCH_DAVINCI) += davinci
+machine-$(CONFIG_ARCH_DOVE) += dove
+machine-$(CONFIG_ARCH_EBSA110) += ebsa110
+machine-$(CONFIG_ARCH_EP93XX) += ep93xx
+machine-$(CONFIG_ARCH_GEMINI) += gemini
+machine-$(CONFIG_ARCH_H720X) += h720x
+machine-$(CONFIG_ARCH_HIGHBANK) += highbank
+machine-$(CONFIG_ARCH_INTEGRATOR) += integrator
+machine-$(CONFIG_ARCH_IOP13XX) += iop13xx
+machine-$(CONFIG_ARCH_IOP32X) += iop32x
+machine-$(CONFIG_ARCH_IOP33X) += iop33x
+machine-$(CONFIG_ARCH_IXP4XX) += ixp4xx
+machine-$(CONFIG_ARCH_KIRKWOOD) += kirkwood
+machine-$(CONFIG_ARCH_KS8695) += ks8695
+machine-$(CONFIG_ARCH_LPC32XX) += lpc32xx
+machine-$(CONFIG_ARCH_MMP) += mmp
+machine-$(CONFIG_ARCH_MSM) += msm
+machine-$(CONFIG_ARCH_MV78XX0) += mv78xx0
+machine-$(CONFIG_ARCH_IMX_V4_V5) += imx
+machine-$(CONFIG_ARCH_IMX_V6_V7) += imx
+machine-$(CONFIG_ARCH_MXS) += mxs
+machine-$(CONFIG_ARCH_MVEBU) += mvebu
+machine-$(CONFIG_ARCH_NETX) += netx
+machine-$(CONFIG_ARCH_NOMADIK) += nomadik
+machine-$(CONFIG_ARCH_OMAP1) += omap1
+machine-$(CONFIG_ARCH_OMAP2PLUS) += omap2
+machine-$(CONFIG_ARCH_ORION5X) += orion5x
+machine-$(CONFIG_ARCH_PICOXCELL) += picoxcell
+machine-$(CONFIG_ARCH_PNX4008) += pnx4008
+machine-$(CONFIG_ARCH_PRIMA2) += prima2
+machine-$(CONFIG_ARCH_PXA) += pxa
+machine-$(CONFIG_ARCH_REALVIEW) += realview
+machine-$(CONFIG_ARCH_RPC) += rpc
+machine-$(CONFIG_ARCH_S3C24XX) += s3c24xx s3c2412 s3c2440
+machine-$(CONFIG_ARCH_S3C64XX) += s3c64xx
+machine-$(CONFIG_ARCH_S5P64X0) += s5p64x0
+machine-$(CONFIG_ARCH_S5PC100) += s5pc100
+machine-$(CONFIG_ARCH_S5PV210) += s5pv210
+machine-$(CONFIG_ARCH_EXYNOS4) += exynos
+machine-$(CONFIG_ARCH_EXYNOS5) += exynos
+machine-$(CONFIG_ARCH_SA1100) += sa1100
+machine-$(CONFIG_ARCH_SHARK) += shark
+machine-$(CONFIG_ARCH_SHMOBILE) += shmobile
+machine-$(CONFIG_ARCH_TEGRA) += tegra
+machine-$(CONFIG_ARCH_U300) += u300
+machine-$(CONFIG_ARCH_U8500) += ux500
+machine-$(CONFIG_ARCH_VERSATILE) += versatile
+machine-$(CONFIG_ARCH_VEXPRESS) += vexpress
+machine-$(CONFIG_ARCH_VT8500) += vt8500
+machine-$(CONFIG_ARCH_W90X900) += w90x900
+machine-$(CONFIG_FOOTBRIDGE) += footbridge
+machine-$(CONFIG_ARCH_SOCFPGA) += socfpga
+machine-$(CONFIG_MACH_SPEAR1310) += spear13xx
+machine-$(CONFIG_MACH_SPEAR1340) += spear13xx
+machine-$(CONFIG_MACH_SPEAR300) += spear3xx
+machine-$(CONFIG_MACH_SPEAR310) += spear3xx
+machine-$(CONFIG_MACH_SPEAR320) += spear3xx
+machine-$(CONFIG_MACH_SPEAR600) += spear6xx
+machine-$(CONFIG_ARCH_ZYNQ) += zynq
# Platform directory name. This list is sorted alphanumerically
# by CONFIG_* macro name.
-plat-$(CONFIG_ARCH_MXC) := mxc
-plat-$(CONFIG_ARCH_OMAP) := omap
-plat-$(CONFIG_ARCH_S3C64XX) := samsung
-plat-$(CONFIG_ARCH_ZYNQ) := versatile
-plat-$(CONFIG_PLAT_IOP) := iop
-plat-$(CONFIG_PLAT_NOMADIK) := nomadik
-plat-$(CONFIG_PLAT_ORION) := orion
-plat-$(CONFIG_PLAT_PXA) := pxa
-plat-$(CONFIG_PLAT_S3C24XX) := s3c24xx samsung
-plat-$(CONFIG_PLAT_S5P) := samsung
-plat-$(CONFIG_PLAT_SPEAR) := spear
-plat-$(CONFIG_PLAT_VERSATILE) := versatile
+plat-$(CONFIG_ARCH_MXC) += mxc
+plat-$(CONFIG_ARCH_OMAP) += omap
+plat-$(CONFIG_ARCH_S3C64XX) += samsung
+plat-$(CONFIG_ARCH_ZYNQ) += versatile
+plat-$(CONFIG_PLAT_IOP) += iop
+plat-$(CONFIG_PLAT_NOMADIK) += nomadik
+plat-$(CONFIG_PLAT_ORION) += orion
+plat-$(CONFIG_PLAT_PXA) += pxa
+plat-$(CONFIG_PLAT_S3C24XX) += s3c24xx samsung
+plat-$(CONFIG_PLAT_S5P) += samsung
+plat-$(CONFIG_PLAT_SPEAR) += spear
+plat-$(CONFIG_PLAT_VERSATILE) += versatile
ifeq ($(CONFIG_ARCH_EBSA110),y)
# This is what happens if you forget the IOCS16 line.
@@ -230,15 +230,20 @@ MACHINE := arch/arm/mach-$(word 1,$(machine-y))/
else
MACHINE :=
endif
+ifeq ($(CONFIG_ARCH_MULTIPLATFORM),y)
+MACHINE :=
+endif
machdirs := $(patsubst %,arch/arm/mach-%/,$(machine-y))
platdirs := $(patsubst %,arch/arm/plat-%/,$(plat-y))
+ifneq ($(CONFIG_ARCH_MULTIPLATFORM),y)
ifeq ($(KBUILD_SRC),)
KBUILD_CPPFLAGS += $(patsubst %,-I%include,$(machdirs) $(platdirs))
else
KBUILD_CPPFLAGS += $(patsubst %,-I$(srctree)/%include,$(machdirs) $(platdirs))
endif
+endif
export TEXT_OFFSET GZFLAGS MMUEXT
diff --git a/arch/arm/boot/compressed/misc.c b/arch/arm/boot/compressed/misc.c
index 8e2a8fc..df89983 100644
--- a/arch/arm/boot/compressed/misc.c
+++ b/arch/arm/boot/compressed/misc.c
@@ -25,7 +25,13 @@ unsigned int __machine_arch_type;
static void putstr(const char *ptr);
extern void error(char *x);
+#ifdef CONFIG_ARCH_MULTIPLATFORM
+static inline void putc(int c) {}
+static inline void flush(void) {}
+static inline void arch_decomp_setup(void) {}
+#else
#include <mach/uncompress.h>
+#endif
#ifdef CONFIG_DEBUG_ICEDCC
diff --git a/arch/arm/include/asm/timex.h b/arch/arm/include/asm/timex.h
index ce11944..963342a 100644
--- a/arch/arm/include/asm/timex.h
+++ b/arch/arm/include/asm/timex.h
@@ -13,7 +13,11 @@
#define _ASMARM_TIMEX_H
#include <asm/arch_timer.h>
+#ifdef CONFIG_ARCH_MULTIPLATFORM
+#define CLOCK_TICK_RATE 1000000
+#else
#include <mach/timex.h>
+#endif
typedef unsigned long cycles_t;
diff --git a/arch/arm/mach-highbank/Kconfig b/arch/arm/mach-highbank/Kconfig
index d4f1b23..0e1d0a4 100644
--- a/arch/arm/mach-highbank/Kconfig
+++ b/arch/arm/mach-highbank/Kconfig
@@ -1,5 +1,5 @@
config ARCH_HIGHBANK
- bool
+ bool "Calxeda ECX-1000 (Highbank)" if ARCH_MULTI_V7
select ARCH_WANT_OPTIONAL_GPIOLIB
select ARM_AMBA
select ARM_GIC
diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig
index 1ed7d15..7b27035 100644
--- a/arch/arm/mach-mvebu/Kconfig
+++ b/arch/arm/mach-mvebu/Kconfig
@@ -1,5 +1,5 @@
config ARCH_MVEBU
- bool
+ bool "Marvell SOCs with Device Tree support" if ARCH_MULTI_V7
select CLKSRC_MMIO
select COMMON_CLK
select GENERIC_CLOCKEVENTS
diff --git a/arch/arm/mach-mvebu/Makefile b/arch/arm/mach-mvebu/Makefile
index e61d2b8..6ea8998 100644
--- a/arch/arm/mach-mvebu/Makefile
+++ b/arch/arm/mach-mvebu/Makefile
@@ -1,2 +1,4 @@
+ccflags-$(ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include
+
obj-y += system-controller.o
obj-$(CONFIG_MACH_ARMADA_370_XP) += armada-370-xp.o irq-armada-370-xp.o
diff --git a/arch/arm/mach-picoxcell/Kconfig b/arch/arm/mach-picoxcell/Kconfig
index b0fd5a1..868796f 100644
--- a/arch/arm/mach-picoxcell/Kconfig
+++ b/arch/arm/mach-picoxcell/Kconfig
@@ -1,5 +1,5 @@
config ARCH_PICOXCELL
- bool
+ bool "Picochip PicoXcell" if ARCH_MULTI_V6
select ARCH_REQUIRE_GPIOLIB
select ARM_PATCH_PHYS_VIRT
select ARM_VIC
diff --git a/arch/arm/mach-socfpga/Kconfig b/arch/arm/mach-socfpga/Kconfig
index 51b04ba..803a328 100644
--- a/arch/arm/mach-socfpga/Kconfig
+++ b/arch/arm/mach-socfpga/Kconfig
@@ -1,5 +1,5 @@
config ARCH_SOCFPGA
- bool
+ bool "Altera SOCFPGA family" if ARCH_MULTI_V7
select ARCH_WANT_OPTIONAL_GPIOLIB
select ARM_AMBA
select ARM_GIC
diff --git a/arch/arm/mach-vexpress/Kconfig b/arch/arm/mach-vexpress/Kconfig
index 8ce13a7..498ea15 100644
--- a/arch/arm/mach-vexpress/Kconfig
+++ b/arch/arm/mach-vexpress/Kconfig
@@ -1,5 +1,5 @@
config ARCH_VEXPRESS
- bool
+ bool "ARM Ltd. Versatile Express family" if ARCH_MULTI_V7
select ARCH_WANT_OPTIONAL_GPIOLIB
select ARM_AMBA
select ARM_TIMER_SP804
diff --git a/arch/arm/mach-vexpress/Makefile b/arch/arm/mach-vexpress/Makefile
index 90551b9..42703e8 100644
--- a/arch/arm/mach-vexpress/Makefile
+++ b/arch/arm/mach-vexpress/Makefile
@@ -1,6 +1,8 @@
#
# Makefile for the linux kernel.
#
+ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include \
+ -I$(srctree)/arch/arm/plat-versatile/include
obj-y := v2m.o
obj-$(CONFIG_ARCH_VEXPRESS_CA9X4) += ct-ca9x4.o
diff --git a/arch/arm/plat-versatile/Makefile b/arch/arm/plat-versatile/Makefile
index 272769a8..74cfd94 100644
--- a/arch/arm/plat-versatile/Makefile
+++ b/arch/arm/plat-versatile/Makefile
@@ -1,3 +1,5 @@
+ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include
+
obj-$(CONFIG_PLAT_VERSATILE_CLOCK) += clock.o
obj-$(CONFIG_PLAT_VERSATILE_CLCD) += clcd.o
obj-$(CONFIG_PLAT_VERSATILE_FPGA_IRQ) += fpga-irq.o
--
1.7.9.5
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [PATCH 6/6] ARM: update defconfigs
2012-08-29 22:49 [PATCH 0/6] Initial multi-platform support Rob Herring
` (4 preceding siblings ...)
2012-08-29 22:49 ` [PATCH 5/6] ARM: initial multiplatform support Rob Herring
@ 2012-08-29 22:50 ` Rob Herring
2012-08-31 18:12 ` [PATCH v2] ARM: initial multiplatform support Rob Herring
6 siblings, 0 replies; 28+ messages in thread
From: Rob Herring @ 2012-08-29 22:50 UTC (permalink / raw)
To: linux-arm-kernel
From: Rob Herring <rob.herring@calxeda.com>
Converted with this script:
sed -i -e 's/\(CONFIG_ARCH_.*\)=/\1_CHOICE=/' -- arch/arm/configs/*
and then fixup all the duplicates.
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
---
arch/arm/configs/acs5k_defconfig | 2 +-
arch/arm/configs/acs5k_tiny_defconfig | 2 +-
arch/arm/configs/afeb9260_defconfig | 2 +-
arch/arm/configs/ag5evm_defconfig | 2 +-
arch/arm/configs/am200epdkit_defconfig | 2 +-
arch/arm/configs/ap4evb_defconfig | 2 +-
arch/arm/configs/armadillo800eva_defconfig | 2 +-
arch/arm/configs/assabet_defconfig | 2 +-
arch/arm/configs/at91_dt_defconfig | 2 +-
arch/arm/configs/at91rm9200_defconfig | 2 +-
arch/arm/configs/at91sam9260_defconfig | 2 +-
arch/arm/configs/at91sam9261_defconfig | 2 +-
arch/arm/configs/at91sam9263_defconfig | 2 +-
arch/arm/configs/at91sam9g20_defconfig | 2 +-
arch/arm/configs/at91sam9g45_defconfig | 2 +-
arch/arm/configs/at91sam9rl_defconfig | 2 +-
arch/arm/configs/at91x40_defconfig | 2 +-
arch/arm/configs/badge4_defconfig | 2 +-
arch/arm/configs/bcmring_defconfig | 2 +-
arch/arm/configs/bonito_defconfig | 2 +-
arch/arm/configs/cam60_defconfig | 2 +-
arch/arm/configs/cerfcube_defconfig | 2 +-
arch/arm/configs/cm_x2xx_defconfig | 2 +-
arch/arm/configs/cm_x300_defconfig | 2 +-
arch/arm/configs/cns3420vb_defconfig | 2 +-
arch/arm/configs/colibri_pxa270_defconfig | 2 +-
arch/arm/configs/colibri_pxa300_defconfig | 2 +-
arch/arm/configs/collie_defconfig | 2 +-
arch/arm/configs/corgi_defconfig | 2 +-
arch/arm/configs/cpu9260_defconfig | 2 +-
arch/arm/configs/cpu9g20_defconfig | 2 +-
arch/arm/configs/da8xx_omapl_defconfig | 2 +-
arch/arm/configs/davinci_all_defconfig | 2 +-
arch/arm/configs/dove_defconfig | 2 +-
arch/arm/configs/ebsa110_defconfig | 2 +-
arch/arm/configs/edb7211_defconfig | 2 +-
arch/arm/configs/em_x270_defconfig | 2 +-
arch/arm/configs/ep93xx_defconfig | 2 +-
arch/arm/configs/eseries_pxa_defconfig | 2 +-
arch/arm/configs/exynos4_defconfig | 2 +-
arch/arm/configs/exynos_defconfig | 4 ++--
arch/arm/configs/ezx_defconfig | 2 +-
| 2 +-
arch/arm/configs/fortunet_defconfig | 2 +-
arch/arm/configs/g3evm_defconfig | 2 +-
arch/arm/configs/g4evm_defconfig | 2 +-
arch/arm/configs/h3600_defconfig | 2 +-
arch/arm/configs/h5000_defconfig | 2 +-
arch/arm/configs/h7201_defconfig | 2 +-
arch/arm/configs/h7202_defconfig | 2 +-
arch/arm/configs/hackkit_defconfig | 2 +-
arch/arm/configs/imote2_defconfig | 2 +-
arch/arm/configs/imx_v4_v5_defconfig | 2 +-
arch/arm/configs/imx_v6_v7_defconfig | 2 +-
arch/arm/configs/integrator_defconfig | 2 +-
arch/arm/configs/iop13xx_defconfig | 2 +-
arch/arm/configs/iop32x_defconfig | 2 +-
arch/arm/configs/iop33x_defconfig | 2 +-
arch/arm/configs/ixp4xx_defconfig | 2 +-
arch/arm/configs/jornada720_defconfig | 2 +-
arch/arm/configs/kirkwood_defconfig | 2 +-
arch/arm/configs/kota2_defconfig | 2 +-
arch/arm/configs/ks8695_defconfig | 2 +-
arch/arm/configs/kzm9d_defconfig | 2 +-
arch/arm/configs/kzm9g_defconfig | 2 +-
arch/arm/configs/lart_defconfig | 2 +-
arch/arm/configs/lpc32xx_defconfig | 2 +-
arch/arm/configs/lpd270_defconfig | 2 +-
arch/arm/configs/lubbock_defconfig | 2 +-
arch/arm/configs/mackerel_defconfig | 2 +-
arch/arm/configs/magician_defconfig | 2 +-
arch/arm/configs/mainstone_defconfig | 2 +-
arch/arm/configs/marzen_defconfig | 2 +-
arch/arm/configs/mini2440_defconfig | 2 +-
arch/arm/configs/mmp2_defconfig | 2 +-
arch/arm/configs/msm_defconfig | 2 +-
arch/arm/configs/mv78xx0_defconfig | 2 +-
arch/arm/configs/mvebu_defconfig | 2 +-
arch/arm/configs/mxs_defconfig | 2 +-
arch/arm/configs/neponset_defconfig | 2 +-
arch/arm/configs/netwinder_defconfig | 2 +-
arch/arm/configs/netx_defconfig | 2 +-
arch/arm/configs/nhk8815_defconfig | 2 +-
arch/arm/configs/nuc910_defconfig | 2 +-
arch/arm/configs/nuc950_defconfig | 2 +-
arch/arm/configs/nuc960_defconfig | 2 +-
arch/arm/configs/omap1_defconfig | 2 +-
arch/arm/configs/omap2plus_defconfig | 2 +-
arch/arm/configs/orion5x_defconfig | 2 +-
arch/arm/configs/palmz72_defconfig | 2 +-
arch/arm/configs/pcm027_defconfig | 2 +-
arch/arm/configs/pleb_defconfig | 2 +-
arch/arm/configs/pnx4008_defconfig | 2 +-
arch/arm/configs/prima2_defconfig | 2 +-
arch/arm/configs/pxa168_defconfig | 2 +-
arch/arm/configs/pxa255-idp_defconfig | 2 +-
arch/arm/configs/pxa3xx_defconfig | 2 +-
arch/arm/configs/pxa910_defconfig | 2 +-
arch/arm/configs/qil-a9260_defconfig | 2 +-
arch/arm/configs/raumfeld_defconfig | 2 +-
arch/arm/configs/realview-smp_defconfig | 2 +-
arch/arm/configs/realview_defconfig | 2 +-
arch/arm/configs/rpc_defconfig | 2 +-
arch/arm/configs/s3c2410_defconfig | 2 +-
arch/arm/configs/s3c6400_defconfig | 2 +-
arch/arm/configs/s5p64x0_defconfig | 2 +-
arch/arm/configs/s5pc100_defconfig | 2 +-
arch/arm/configs/s5pv210_defconfig | 2 +-
arch/arm/configs/sam9_l9260_defconfig | 2 +-
arch/arm/configs/shannon_defconfig | 2 +-
arch/arm/configs/shark_defconfig | 2 +-
arch/arm/configs/simpad_defconfig | 2 +-
arch/arm/configs/socfpga_defconfig | 2 +-
arch/arm/configs/spear13xx_defconfig | 2 +-
arch/arm/configs/spear6xx_defconfig | 2 +-
arch/arm/configs/spitz_defconfig | 2 +-
arch/arm/configs/stamp9g20_defconfig | 2 +-
arch/arm/configs/tct_hammer_defconfig | 2 +-
arch/arm/configs/tegra_defconfig | 2 +-
arch/arm/configs/trizeps4_defconfig | 2 +-
arch/arm/configs/u300_defconfig | 2 +-
arch/arm/configs/u8500_defconfig | 2 +-
arch/arm/configs/usb-a9260_defconfig | 2 +-
arch/arm/configs/vexpress_defconfig | 2 +-
arch/arm/configs/viper_defconfig | 2 +-
arch/arm/configs/xcep_defconfig | 2 +-
arch/arm/configs/zeus_defconfig | 2 +-
127 files changed, 128 insertions(+), 128 deletions(-)
diff --git a/arch/arm/configs/acs5k_defconfig b/arch/arm/configs/acs5k_defconfig
index 92b0f90..7543bef 100644
--- a/arch/arm/configs/acs5k_defconfig
+++ b/arch/arm/configs/acs5k_defconfig
@@ -11,7 +11,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_KS8695=y
+CONFIG_ARCH_KS8695_CHOICE=y
CONFIG_MACH_KS8695=y
CONFIG_MACH_DSM320=y
CONFIG_MACH_ACS5K=y
diff --git a/arch/arm/configs/acs5k_tiny_defconfig b/arch/arm/configs/acs5k_tiny_defconfig
index 2a27a14..89de2f2 100644
--- a/arch/arm/configs/acs5k_tiny_defconfig
+++ b/arch/arm/configs/acs5k_tiny_defconfig
@@ -10,7 +10,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_KS8695=y
+CONFIG_ARCH_KS8695_CHOICE=y
CONFIG_MACH_ACS5K=y
# CONFIG_ARM_THUMB is not set
CONFIG_AEABI=y
diff --git a/arch/arm/configs/afeb9260_defconfig b/arch/arm/configs/afeb9260_defconfig
index 2afdf67..0f0389c 100644
--- a/arch/arm/configs/afeb9260_defconfig
+++ b/arch/arm/configs/afeb9260_defconfig
@@ -10,7 +10,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_AT91=y
+CONFIG_ARCH_AT91_CHOICE=y
CONFIG_ARCH_AT91SAM9260=y
CONFIG_MACH_AFEB9260=y
CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
diff --git a/arch/arm/configs/ag5evm_defconfig b/arch/arm/configs/ag5evm_defconfig
index 212ead3..afe2f08 100644
--- a/arch/arm/configs/ag5evm_defconfig
+++ b/arch/arm/configs/ag5evm_defconfig
@@ -15,7 +15,7 @@ CONFIG_SLAB=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_SHMOBILE=y
+CONFIG_ARCH_SHMOBILE_CHOICE=y
CONFIG_ARCH_SH73A0=y
CONFIG_MACH_AG5EVM=y
CONFIG_MEMORY_SIZE=0x10000000
diff --git a/arch/arm/configs/am200epdkit_defconfig b/arch/arm/configs/am200epdkit_defconfig
index f0dea52..7069340 100644
--- a/arch/arm/configs/am200epdkit_defconfig
+++ b/arch/arm/configs/am200epdkit_defconfig
@@ -14,7 +14,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_PXA=y
+CONFIG_ARCH_PXA_CHOICE=y
CONFIG_ARCH_GUMSTIX=y
CONFIG_PCCARD=y
CONFIG_PREEMPT=y
diff --git a/arch/arm/configs/ap4evb_defconfig b/arch/arm/configs/ap4evb_defconfig
index 2eef85e..8b82ed3 100644
--- a/arch/arm/configs/ap4evb_defconfig
+++ b/arch/arm/configs/ap4evb_defconfig
@@ -8,7 +8,7 @@ CONFIG_SLAB=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_SHMOBILE=y
+CONFIG_ARCH_SHMOBILE_CHOICE=y
CONFIG_ARCH_SH7372=y
CONFIG_MACH_AP4EVB=y
CONFIG_AEABI=y
diff --git a/arch/arm/configs/armadillo800eva_defconfig b/arch/arm/configs/armadillo800eva_defconfig
index 7d87184..46072fd 100644
--- a/arch/arm/configs/armadillo800eva_defconfig
+++ b/arch/arm/configs/armadillo800eva_defconfig
@@ -14,7 +14,7 @@ CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_SHMOBILE=y
+CONFIG_ARCH_SHMOBILE_CHOICE=y
CONFIG_ARCH_R8A7740=y
CONFIG_MACH_ARMADILLO800EVA=y
# CONFIG_SH_TIMER_TMU is not set
diff --git a/arch/arm/configs/assabet_defconfig b/arch/arm/configs/assabet_defconfig
index 558ecd8..b2deaf9 100644
--- a/arch/arm/configs/assabet_defconfig
+++ b/arch/arm/configs/assabet_defconfig
@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y
CONFIG_MODULES=y
-CONFIG_ARCH_SA1100=y
+CONFIG_ARCH_SA1100_CHOICE=y
CONFIG_SA1100_ASSABET=y
CONFIG_PCCARD=y
CONFIG_PCMCIA_SA1100=y
diff --git a/arch/arm/configs/at91_dt_defconfig b/arch/arm/configs/at91_dt_defconfig
index 67bc571..fb42cd3 100644
--- a/arch/arm/configs/at91_dt_defconfig
+++ b/arch/arm/configs/at91_dt_defconfig
@@ -14,7 +14,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_AT91=y
+CONFIG_ARCH_AT91_CHOICE=y
CONFIG_SOC_AT91SAM9260=y
CONFIG_SOC_AT91SAM9263=y
CONFIG_SOC_AT91SAM9G45=y
diff --git a/arch/arm/configs/at91rm9200_defconfig b/arch/arm/configs/at91rm9200_defconfig
index d54e2ac..cfde6c2 100644
--- a/arch/arm/configs/at91rm9200_defconfig
+++ b/arch/arm/configs/at91rm9200_defconfig
@@ -13,7 +13,7 @@ CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_AT91=y
+CONFIG_ARCH_AT91_CHOICE=y
CONFIG_ARCH_AT91RM9200=y
CONFIG_MACH_ONEARM=y
CONFIG_ARCH_AT91RM9200DK=y
diff --git a/arch/arm/configs/at91sam9260_defconfig b/arch/arm/configs/at91sam9260_defconfig
index 505b376..8206d1c 100644
--- a/arch/arm/configs/at91sam9260_defconfig
+++ b/arch/arm/configs/at91sam9260_defconfig
@@ -10,7 +10,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_AT91=y
+CONFIG_ARCH_AT91_CHOICE=y
CONFIG_ARCH_AT91SAM9260=y
CONFIG_ARCH_AT91SAM9260_SAM9XE=y
CONFIG_MACH_AT91SAM9260EK=y
diff --git a/arch/arm/configs/at91sam9261_defconfig b/arch/arm/configs/at91sam9261_defconfig
index ade6b2f..2e2e559 100644
--- a/arch/arm/configs/at91sam9261_defconfig
+++ b/arch/arm/configs/at91sam9261_defconfig
@@ -14,7 +14,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_AT91=y
+CONFIG_ARCH_AT91_CHOICE=y
CONFIG_ARCH_AT91SAM9261=y
CONFIG_MACH_AT91SAM9261EK=y
CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
diff --git a/arch/arm/configs/at91sam9263_defconfig b/arch/arm/configs/at91sam9263_defconfig
index 1cf9626..287de20 100644
--- a/arch/arm/configs/at91sam9263_defconfig
+++ b/arch/arm/configs/at91sam9263_defconfig
@@ -14,7 +14,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_AT91=y
+CONFIG_ARCH_AT91_CHOICE=y
CONFIG_ARCH_AT91SAM9263=y
CONFIG_MACH_AT91SAM9263EK=y
CONFIG_MACH_USB_A9263=y
diff --git a/arch/arm/configs/at91sam9g20_defconfig b/arch/arm/configs/at91sam9g20_defconfig
index 994d331..fbe6f40 100644
--- a/arch/arm/configs/at91sam9g20_defconfig
+++ b/arch/arm/configs/at91sam9g20_defconfig
@@ -10,7 +10,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_AT91=y
+CONFIG_ARCH_AT91_CHOICE=y
CONFIG_ARCH_AT91SAM9G20=y
CONFIG_MACH_AT91SAM9G20EK=y
CONFIG_MACH_AT91SAM9G20EK_2MMC=y
diff --git a/arch/arm/configs/at91sam9g45_defconfig b/arch/arm/configs/at91sam9g45_defconfig
index 606d48f..85f2743 100644
--- a/arch/arm/configs/at91sam9g45_defconfig
+++ b/arch/arm/configs/at91sam9g45_defconfig
@@ -15,7 +15,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_AT91=y
+CONFIG_ARCH_AT91_CHOICE=y
CONFIG_ARCH_AT91SAM9G45=y
CONFIG_MACH_AT91SAM9M10G45EK=y
CONFIG_MACH_AT91SAM_DT=y
diff --git a/arch/arm/configs/at91sam9rl_defconfig b/arch/arm/configs/at91sam9rl_defconfig
index ad562ee..0f8f9b3 100644
--- a/arch/arm/configs/at91sam9rl_defconfig
+++ b/arch/arm/configs/at91sam9rl_defconfig
@@ -10,7 +10,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_AT91=y
+CONFIG_ARCH_AT91_CHOICE=y
CONFIG_ARCH_AT91SAM9RL=y
CONFIG_MACH_AT91SAM9RLEK=y
CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
diff --git a/arch/arm/configs/at91x40_defconfig b/arch/arm/configs/at91x40_defconfig
index c55e921..42acdab 100644
--- a/arch/arm/configs/at91x40_defconfig
+++ b/arch/arm/configs/at91x40_defconfig
@@ -13,7 +13,7 @@ CONFIG_SLAB=y
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
# CONFIG_MMU is not set
-CONFIG_ARCH_AT91=y
+CONFIG_ARCH_AT91_CHOICE=y
CONFIG_ARCH_AT91X40=y
CONFIG_MACH_AT91EB01=y
CONFIG_AT91_EARLY_USART0=y
diff --git a/arch/arm/configs/badge4_defconfig b/arch/arm/configs/badge4_defconfig
index 5b54abb..e657c9e 100644
--- a/arch/arm/configs/badge4_defconfig
+++ b/arch/arm/configs/badge4_defconfig
@@ -3,7 +3,7 @@ CONFIG_LOG_BUF_SHIFT=14
CONFIG_EXPERT=y
CONFIG_MODULES=y
CONFIG_MODVERSIONS=y
-CONFIG_ARCH_SA1100=y
+CONFIG_ARCH_SA1100_CHOICE=y
CONFIG_SA1100_BADGE4=y
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
diff --git a/arch/arm/configs/bcmring_defconfig b/arch/arm/configs/bcmring_defconfig
index 9e6a8fe..7fabe55 100644
--- a/arch/arm/configs/bcmring_defconfig
+++ b/arch/arm/configs/bcmring_defconfig
@@ -20,7 +20,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_BCMRING=y
+CONFIG_ARCH_BCMRING_CHOICE=y
CONFIG_BCM_ZRELADDR=0x8000
CONFIG_CPU_32v6K=y
CONFIG_NO_HZ=y
diff --git a/arch/arm/configs/bonito_defconfig b/arch/arm/configs/bonito_defconfig
index 5457108..c1bf7ba 100644
--- a/arch/arm/configs/bonito_defconfig
+++ b/arch/arm/configs/bonito_defconfig
@@ -17,7 +17,7 @@ CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_SHMOBILE=y
+CONFIG_ARCH_SHMOBILE_CHOICE=y
CONFIG_ARCH_R8A7740=y
CONFIG_MACH_BONITO=y
# CONFIG_SH_TIMER_TMU is not set
diff --git a/arch/arm/configs/cam60_defconfig b/arch/arm/configs/cam60_defconfig
index cedc92e..f692e00 100644
--- a/arch/arm/configs/cam60_defconfig
+++ b/arch/arm/configs/cam60_defconfig
@@ -14,7 +14,7 @@ CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODVERSIONS=y
# CONFIG_BLK_DEV_BSG is not set
-CONFIG_ARCH_AT91=y
+CONFIG_ARCH_AT91_CHOICE=y
CONFIG_ARCH_AT91SAM9260=y
CONFIG_MACH_CAM60=y
CONFIG_ZBOOT_ROM_BSS=0x20004000
diff --git a/arch/arm/configs/cerfcube_defconfig b/arch/arm/configs/cerfcube_defconfig
index dce912d..f728b36 100644
--- a/arch/arm/configs/cerfcube_defconfig
+++ b/arch/arm/configs/cerfcube_defconfig
@@ -5,7 +5,7 @@ CONFIG_LOG_BUF_SHIFT=14
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
-CONFIG_ARCH_SA1100=y
+CONFIG_ARCH_SA1100_CHOICE=y
CONFIG_SA1100_CERF=y
CONFIG_SA1100_CERF_FLASH_16MB=y
CONFIG_PCCARD=m
diff --git a/arch/arm/configs/cm_x2xx_defconfig b/arch/arm/configs/cm_x2xx_defconfig
index a93ff8d..069fe65 100644
--- a/arch/arm/configs/cm_x2xx_defconfig
+++ b/arch/arm/configs/cm_x2xx_defconfig
@@ -13,7 +13,7 @@ CONFIG_EXPERT=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
-CONFIG_ARCH_PXA=y
+CONFIG_ARCH_PXA_CHOICE=y
CONFIG_MACH_ARMCORE=y
CONFIG_PCI=y
CONFIG_PCCARD=m
diff --git a/arch/arm/configs/cm_x300_defconfig b/arch/arm/configs/cm_x300_defconfig
index f4b7672..65be1f6 100644
--- a/arch/arm/configs/cm_x300_defconfig
+++ b/arch/arm/configs/cm_x300_defconfig
@@ -11,7 +11,7 @@ CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
-CONFIG_ARCH_PXA=y
+CONFIG_ARCH_PXA_CHOICE=y
CONFIG_GPIO_PCA953X=y
CONFIG_MACH_CM_X300=y
CONFIG_NO_HZ=y
diff --git a/arch/arm/configs/cns3420vb_defconfig b/arch/arm/configs/cns3420vb_defconfig
index 313627a..eeefbdd 100644
--- a/arch/arm/configs/cns3420vb_defconfig
+++ b/arch/arm/configs/cns3420vb_defconfig
@@ -19,7 +19,7 @@ CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_MODVERSIONS=y
# CONFIG_BLK_DEV_BSG is not set
CONFIG_IOSCHED_CFQ=m
-CONFIG_ARCH_CNS3XXX=y
+CONFIG_ARCH_CNS3XXX_CHOICE=y
CONFIG_MACH_CNS3420VB=y
CONFIG_AEABI=y
CONFIG_ZBOOT_ROM_TEXT=0x0
diff --git a/arch/arm/configs/colibri_pxa270_defconfig b/arch/arm/configs/colibri_pxa270_defconfig
index 2ef2c5e..7e543e1 100644
--- a/arch/arm/configs/colibri_pxa270_defconfig
+++ b/arch/arm/configs/colibri_pxa270_defconfig
@@ -17,7 +17,7 @@ CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
# CONFIG_BLK_DEV_BSG is not set
-CONFIG_ARCH_PXA=y
+CONFIG_ARCH_PXA_CHOICE=y
CONFIG_MACH_COLIBRI=y
CONFIG_PREEMPT=y
CONFIG_AEABI=y
diff --git a/arch/arm/configs/colibri_pxa300_defconfig b/arch/arm/configs/colibri_pxa300_defconfig
index b985334..44b61a595 100644
--- a/arch/arm/configs/colibri_pxa300_defconfig
+++ b/arch/arm/configs/colibri_pxa300_defconfig
@@ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
-CONFIG_ARCH_PXA=y
+CONFIG_ARCH_PXA_CHOICE=y
CONFIG_MACH_COLIBRI300=y
CONFIG_AEABI=y
CONFIG_CMDLINE="console=ttyS0,115200 rw"
diff --git a/arch/arm/configs/collie_defconfig b/arch/arm/configs/collie_defconfig
index 6c56ad0..2efaad1 100644
--- a/arch/arm/configs/collie_defconfig
+++ b/arch/arm/configs/collie_defconfig
@@ -10,7 +10,7 @@ CONFIG_EXPERT=y
CONFIG_SLOB=y
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_SA1100=y
+CONFIG_ARCH_SA1100_CHOICE=y
CONFIG_SA1100_COLLIE=y
CONFIG_PCCARD=y
CONFIG_PCMCIA_SA1100=y
diff --git a/arch/arm/configs/corgi_defconfig b/arch/arm/configs/corgi_defconfig
index e53c475..9a925e8 100644
--- a/arch/arm/configs/corgi_defconfig
+++ b/arch/arm/configs/corgi_defconfig
@@ -11,7 +11,7 @@ CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
-CONFIG_ARCH_PXA=y
+CONFIG_ARCH_PXA_CHOICE=y
CONFIG_PXA_SHARPSL=y
CONFIG_MACH_POODLE=y
CONFIG_MACH_CORGI=y
diff --git a/arch/arm/configs/cpu9260_defconfig b/arch/arm/configs/cpu9260_defconfig
index bbf729e..93b387d 100644
--- a/arch/arm/configs/cpu9260_defconfig
+++ b/arch/arm/configs/cpu9260_defconfig
@@ -8,7 +8,7 @@ CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_AT91=y
+CONFIG_ARCH_AT91_CHOICE=y
CONFIG_ARCH_AT91SAM9260=y
CONFIG_MACH_CPU9260=y
# CONFIG_ARM_THUMB is not set
diff --git a/arch/arm/configs/cpu9g20_defconfig b/arch/arm/configs/cpu9g20_defconfig
index e7d7942..544b25d 100644
--- a/arch/arm/configs/cpu9g20_defconfig
+++ b/arch/arm/configs/cpu9g20_defconfig
@@ -8,7 +8,7 @@ CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_AT91=y
+CONFIG_ARCH_AT91_CHOICE=y
CONFIG_ARCH_AT91SAM9G20=y
CONFIG_MACH_CPU9G20=y
# CONFIG_ARM_THUMB is not set
diff --git a/arch/arm/configs/da8xx_omapl_defconfig b/arch/arm/configs/da8xx_omapl_defconfig
index 88ccde0..f546dba 100644
--- a/arch/arm/configs/da8xx_omapl_defconfig
+++ b/arch/arm/configs/da8xx_omapl_defconfig
@@ -14,7 +14,7 @@ CONFIG_MODVERSIONS=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_DAVINCI=y
+CONFIG_ARCH_DAVINCI_CHOICE=y
CONFIG_ARCH_DAVINCI_DA830=y
CONFIG_ARCH_DAVINCI_DA850=y
CONFIG_MACH_MITYOMAPL138=y
diff --git a/arch/arm/configs/davinci_all_defconfig b/arch/arm/configs/davinci_all_defconfig
index 67b5abb6..aeed63e 100644
--- a/arch/arm/configs/davinci_all_defconfig
+++ b/arch/arm/configs/davinci_all_defconfig
@@ -14,7 +14,7 @@ CONFIG_MODVERSIONS=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_DAVINCI=y
+CONFIG_ARCH_DAVINCI_CHOICE=y
CONFIG_ARCH_DAVINCI_DM644x=y
CONFIG_ARCH_DAVINCI_DM355=y
CONFIG_ARCH_DAVINCI_DM646x=y
diff --git a/arch/arm/configs/dove_defconfig b/arch/arm/configs/dove_defconfig
index 40db34c..24988f7 100644
--- a/arch/arm/configs/dove_defconfig
+++ b/arch/arm/configs/dove_defconfig
@@ -6,7 +6,7 @@ CONFIG_SLAB=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
-CONFIG_ARCH_DOVE=y
+CONFIG_ARCH_DOVE_CHOICE=y
CONFIG_MACH_DOVE_DB=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
diff --git a/arch/arm/configs/ebsa110_defconfig b/arch/arm/configs/ebsa110_defconfig
index 14559db..016261c 100644
--- a/arch/arm/configs/ebsa110_defconfig
+++ b/arch/arm/configs/ebsa110_defconfig
@@ -4,7 +4,7 @@ CONFIG_BSD_PROCESS_ACCT=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_EXPERT=y
CONFIG_MODULES=y
-CONFIG_ARCH_EBSA110=y
+CONFIG_ARCH_EBSA110_CHOICE=y
CONFIG_PCCARD=m
CONFIG_I82365=m
CONFIG_LEDS=y
diff --git a/arch/arm/configs/edb7211_defconfig b/arch/arm/configs/edb7211_defconfig
index d52ded35..5dc3398 100644
--- a/arch/arm/configs/edb7211_defconfig
+++ b/arch/arm/configs/edb7211_defconfig
@@ -4,7 +4,7 @@ CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y
CONFIG_EXPERT=y
# CONFIG_HOTPLUG is not set
-CONFIG_ARCH_CLPS711X=y
+CONFIG_ARCH_CLPS711X_CHOICE=y
CONFIG_ARCH_EDB7211=y
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
diff --git a/arch/arm/configs/em_x270_defconfig b/arch/arm/configs/em_x270_defconfig
index 60a21e0..1ae64d2 100644
--- a/arch/arm/configs/em_x270_defconfig
+++ b/arch/arm/configs/em_x270_defconfig
@@ -13,7 +13,7 @@ CONFIG_EXPERT=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
-CONFIG_ARCH_PXA=y
+CONFIG_ARCH_PXA_CHOICE=y
CONFIG_MACH_EM_X270=y
CONFIG_MACH_EXEDA=y
CONFIG_NO_HZ=y
diff --git a/arch/arm/configs/ep93xx_defconfig b/arch/arm/configs/ep93xx_defconfig
index 8e97b2f..2e74fae 100644
--- a/arch/arm/configs/ep93xx_defconfig
+++ b/arch/arm/configs/ep93xx_defconfig
@@ -11,7 +11,7 @@ CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_EP93XX=y
+CONFIG_ARCH_EP93XX_CHOICE=y
CONFIG_CRUNCH=y
CONFIG_MACH_ADSSPHERE=y
CONFIG_MACH_EDB9301=y
diff --git a/arch/arm/configs/eseries_pxa_defconfig b/arch/arm/configs/eseries_pxa_defconfig
index d68ac67..ded7fd6 100644
--- a/arch/arm/configs/eseries_pxa_defconfig
+++ b/arch/arm/configs/eseries_pxa_defconfig
@@ -12,7 +12,7 @@ CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_PXA=y
+CONFIG_ARCH_PXA_CHOICE=y
CONFIG_ARCH_PXA_ESERIES=y
# CONFIG_ARM_THUMB is not set
CONFIG_IWMMXT=y
diff --git a/arch/arm/configs/exynos4_defconfig b/arch/arm/configs/exynos4_defconfig
index bffe68e..dd1d584 100644
--- a/arch/arm/configs/exynos4_defconfig
+++ b/arch/arm/configs/exynos4_defconfig
@@ -4,7 +4,7 @@ CONFIG_KALLSYMS_ALL=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
-CONFIG_ARCH_EXYNOS=y
+CONFIG_ARCH_EXYNOS_CHOICE=y
CONFIG_S3C_LOWLEVEL_UART_PORT=1
CONFIG_MACH_SMDKC210=y
CONFIG_MACH_ARMLEX4210=y
diff --git a/arch/arm/configs/exynos_defconfig b/arch/arm/configs/exynos_defconfig
index e40b435..cd76c19 100644
--- a/arch/arm/configs/exynos_defconfig
+++ b/arch/arm/configs/exynos_defconfig
@@ -8,10 +8,10 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
CONFIG_PARTITION_ADVANCED=y
CONFIG_EFI_PARTITION=y
-CONFIG_ARCH_EXYNOS=y
+CONFIG_ARCH_EXYNOS_CHOICE=y
CONFIG_S3C_LOWLEVEL_UART_PORT=1
CONFIG_S3C24XX_PWM=y
-CONFIG_ARCH_EXYNOS5=y
+CONFIG_ARCH_EXYNOS5_CHOICE=y
CONFIG_MACH_EXYNOS4_DT=y
CONFIG_MACH_EXYNOS5_DT=y
CONFIG_SMP=y
diff --git a/arch/arm/configs/ezx_defconfig b/arch/arm/configs/ezx_defconfig
index d95763d..c33b4d0 100644
--- a/arch/arm/configs/ezx_defconfig
+++ b/arch/arm/configs/ezx_defconfig
@@ -17,7 +17,7 @@ CONFIG_MODVERSIONS=y
# CONFIG_LBDAF is not set
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_PXA=y
+CONFIG_ARCH_PXA_CHOICE=y
CONFIG_PXA_EZX=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
--git a/arch/arm/configs/footbridge_defconfig b/arch/arm/configs/footbridge_defconfig
index 038518a..557867a 100644
--- a/arch/arm/configs/footbridge_defconfig
+++ b/arch/arm/configs/footbridge_defconfig
@@ -6,7 +6,7 @@ CONFIG_BLK_DEV_INITRD=y
CONFIG_EXPERT=y
# CONFIG_HOTPLUG is not set
CONFIG_MODULES=y
-CONFIG_ARCH_FOOTBRIDGE=y
+CONFIG_ARCH_FOOTBRIDGE_CHOICE=y
CONFIG_ARCH_CATS=y
CONFIG_ARCH_PERSONAL_SERVER=y
CONFIG_ARCH_EBSA285_HOST=y
diff --git a/arch/arm/configs/fortunet_defconfig b/arch/arm/configs/fortunet_defconfig
index 840fced..aa5652b 100644
--- a/arch/arm/configs/fortunet_defconfig
+++ b/arch/arm/configs/fortunet_defconfig
@@ -4,7 +4,7 @@ CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y
CONFIG_EXPERT=y
# CONFIG_HOTPLUG is not set
-CONFIG_ARCH_CLPS711X=y
+CONFIG_ARCH_CLPS711X_CHOICE=y
CONFIG_ARCH_FORTUNET=y
# CONFIG_ARM_THUMB is not set
CONFIG_ZBOOT_ROM_TEXT=0x0
diff --git a/arch/arm/configs/g3evm_defconfig b/arch/arm/configs/g3evm_defconfig
index 4a336ab..4299600 100644
--- a/arch/arm/configs/g3evm_defconfig
+++ b/arch/arm/configs/g3evm_defconfig
@@ -8,7 +8,7 @@ CONFIG_SLAB=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_SHMOBILE=y
+CONFIG_ARCH_SHMOBILE_CHOICE=y
CONFIG_ARCH_SH7367=y
CONFIG_MACH_G3EVM=y
CONFIG_AEABI=y
diff --git a/arch/arm/configs/g4evm_defconfig b/arch/arm/configs/g4evm_defconfig
index 21c6d03..e5fa444 100644
--- a/arch/arm/configs/g4evm_defconfig
+++ b/arch/arm/configs/g4evm_defconfig
@@ -8,7 +8,7 @@ CONFIG_SLAB=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_SHMOBILE=y
+CONFIG_ARCH_SHMOBILE_CHOICE=y
CONFIG_ARCH_SH7377=y
CONFIG_MACH_G4EVM=y
CONFIG_AEABI=y
diff --git a/arch/arm/configs/h3600_defconfig b/arch/arm/configs/h3600_defconfig
index 317960f..65009de 100644
--- a/arch/arm/configs/h3600_defconfig
+++ b/arch/arm/configs/h3600_defconfig
@@ -7,7 +7,7 @@ CONFIG_MODULES=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_SA1100=y
+CONFIG_ARCH_SA1100_CHOICE=y
CONFIG_SA1100_H3600=y
CONFIG_PCCARD=y
CONFIG_PCMCIA_SA1100=y
diff --git a/arch/arm/configs/h5000_defconfig b/arch/arm/configs/h5000_defconfig
index 37903e3..94cc67d 100644
--- a/arch/arm/configs/h5000_defconfig
+++ b/arch/arm/configs/h5000_defconfig
@@ -12,7 +12,7 @@ CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_PXA=y
+CONFIG_ARCH_PXA_CHOICE=y
CONFIG_MACH_H5000=y
CONFIG_AEABI=y
CONFIG_ZBOOT_ROM_TEXT=0x0
diff --git a/arch/arm/configs/h7201_defconfig b/arch/arm/configs/h7201_defconfig
index bee94d2..8404e5e 100644
--- a/arch/arm/configs/h7201_defconfig
+++ b/arch/arm/configs/h7201_defconfig
@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y
CONFIG_MODULES=y
-CONFIG_ARCH_H720X=y
+CONFIG_ARCH_H720X_CHOICE=y
CONFIG_ARCH_H7201=y
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
diff --git a/arch/arm/configs/h7202_defconfig b/arch/arm/configs/h7202_defconfig
index 69405a7..768f654 100644
--- a/arch/arm/configs/h7202_defconfig
+++ b/arch/arm/configs/h7202_defconfig
@@ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y
CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_MODULES=y
-CONFIG_ARCH_H720X=y
+CONFIG_ARCH_H720X_CHOICE=y
CONFIG_ARCH_H7202=y
# CONFIG_ARM_THUMB is not set
CONFIG_ZBOOT_ROM_TEXT=0x0
diff --git a/arch/arm/configs/hackkit_defconfig b/arch/arm/configs/hackkit_defconfig
index bed8047..7d2c376 100644
--- a/arch/arm/configs/hackkit_defconfig
+++ b/arch/arm/configs/hackkit_defconfig
@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y
CONFIG_MODULES=y
-CONFIG_ARCH_SA1100=y
+CONFIG_ARCH_SA1100_CHOICE=y
CONFIG_SA1100_HACKKIT=y
CONFIG_LEDS=y
CONFIG_LEDS_CPU=y
diff --git a/arch/arm/configs/imote2_defconfig b/arch/arm/configs/imote2_defconfig
index fd996bb..6b574fd 100644
--- a/arch/arm/configs/imote2_defconfig
+++ b/arch/arm/configs/imote2_defconfig
@@ -16,7 +16,7 @@ CONFIG_MODVERSIONS=y
# CONFIG_LBDAF is not set
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_PXA=y
+CONFIG_ARCH_PXA_CHOICE=y
CONFIG_MACH_INTELMOTE2=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
diff --git a/arch/arm/configs/imx_v4_v5_defconfig b/arch/arm/configs/imx_v4_v5_defconfig
index 78ed575..21fdab3 100644
--- a/arch/arm/configs/imx_v4_v5_defconfig
+++ b/arch/arm/configs/imx_v4_v5_defconfig
@@ -17,7 +17,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_MXC=y
+CONFIG_ARCH_MXC_CHOICE=y
CONFIG_ARCH_IMX_V4_V5=y
CONFIG_ARCH_MX1ADS=y
CONFIG_MACH_SCB9328=y
diff --git a/arch/arm/configs/imx_v6_v7_defconfig b/arch/arm/configs/imx_v6_v7_defconfig
index 3c9f32f..cf959d2 100644
--- a/arch/arm/configs/imx_v6_v7_defconfig
+++ b/arch/arm/configs/imx_v6_v7_defconfig
@@ -16,7 +16,7 @@ CONFIG_MODULE_UNLOAD=y
CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
# CONFIG_BLK_DEV_BSG is not set
-CONFIG_ARCH_MXC=y
+CONFIG_ARCH_MXC_CHOICE=y
CONFIG_MACH_MX31LILLY=y
CONFIG_MACH_MX31LITE=y
CONFIG_MACH_PCM037=y
diff --git a/arch/arm/configs/integrator_defconfig b/arch/arm/configs/integrator_defconfig
index a8314c3..c3cfc4b 100644
--- a/arch/arm/configs/integrator_defconfig
+++ b/arch/arm/configs/integrator_defconfig
@@ -7,7 +7,7 @@ CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
-CONFIG_ARCH_INTEGRATOR=y
+CONFIG_ARCH_INTEGRATOR_CHOICE=y
CONFIG_ARCH_INTEGRATOR_AP=y
CONFIG_ARCH_INTEGRATOR_CP=y
CONFIG_CPU_ARM720T=y
diff --git a/arch/arm/configs/iop13xx_defconfig b/arch/arm/configs/iop13xx_defconfig
index 4fa94a1..5c0b6ec 100644
--- a/arch/arm/configs/iop13xx_defconfig
+++ b/arch/arm/configs/iop13xx_defconfig
@@ -14,7 +14,7 @@ CONFIG_MODULE_UNLOAD=y
CONFIG_MODVERSIONS=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_IOP13XX=y
+CONFIG_ARCH_IOP13XX_CHOICE=y
CONFIG_MACH_IQ81340SC=y
CONFIG_MACH_IQ81340MC=y
CONFIG_ZBOOT_ROM_TEXT=0x0
diff --git a/arch/arm/configs/iop32x_defconfig b/arch/arm/configs/iop32x_defconfig
index 4f2ec3a..92ba2c7 100644
--- a/arch/arm/configs/iop32x_defconfig
+++ b/arch/arm/configs/iop32x_defconfig
@@ -8,7 +8,7 @@ CONFIG_SLAB=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
-CONFIG_ARCH_IOP32X=y
+CONFIG_ARCH_IOP32X_CHOICE=y
CONFIG_MACH_GLANTANK=y
CONFIG_ARCH_IQ80321=y
CONFIG_ARCH_IQ31244=y
diff --git a/arch/arm/configs/iop33x_defconfig b/arch/arm/configs/iop33x_defconfig
index aa36128..ea381ec 100644
--- a/arch/arm/configs/iop33x_defconfig
+++ b/arch/arm/configs/iop33x_defconfig
@@ -8,7 +8,7 @@ CONFIG_SLAB=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
-CONFIG_ARCH_IOP33X=y
+CONFIG_ARCH_IOP33X_CHOICE=y
CONFIG_ARCH_IQ80331=y
CONFIG_MACH_IQ80332=y
# CONFIG_ARM_THUMB is not set
diff --git a/arch/arm/configs/ixp4xx_defconfig b/arch/arm/configs/ixp4xx_defconfig
index 063e2ab..663f522 100644
--- a/arch/arm/configs/ixp4xx_defconfig
+++ b/arch/arm/configs/ixp4xx_defconfig
@@ -7,7 +7,7 @@ CONFIG_EXPERT=y
CONFIG_MODULES=y
CONFIG_MODVERSIONS=y
# CONFIG_BLK_DEV_BSG is not set
-CONFIG_ARCH_IXP4XX=y
+CONFIG_ARCH_IXP4XX_CHOICE=y
CONFIG_MACH_NSLU2=y
CONFIG_MACH_AVILA=y
CONFIG_MACH_LOFT=y
diff --git a/arch/arm/configs/jornada720_defconfig b/arch/arm/configs/jornada720_defconfig
index ea80e7e..83e38b1 100644
--- a/arch/arm/configs/jornada720_defconfig
+++ b/arch/arm/configs/jornada720_defconfig
@@ -4,7 +4,7 @@ CONFIG_LOG_BUF_SHIFT=14
CONFIG_SYSFS_DEPRECATED_V2=y
CONFIG_MODULES=y
# CONFIG_BLK_DEV_BSG is not set
-CONFIG_ARCH_SA1100=y
+CONFIG_ARCH_SA1100_CHOICE=y
CONFIG_SA1100_JORNADA720=y
CONFIG_SA1100_JORNADA720_SSP=y
CONFIG_PCCARD=y
diff --git a/arch/arm/configs/kirkwood_defconfig b/arch/arm/configs/kirkwood_defconfig
index aeb3af5..accc8db 100644
--- a/arch/arm/configs/kirkwood_defconfig
+++ b/arch/arm/configs/kirkwood_defconfig
@@ -7,7 +7,7 @@ CONFIG_KPROBES=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
-CONFIG_ARCH_KIRKWOOD=y
+CONFIG_ARCH_KIRKWOOD_CHOICE=y
CONFIG_MACH_DB88F6281_BP=y
CONFIG_MACH_RD88F6192_NAS=y
CONFIG_MACH_RD88F6281=y
diff --git a/arch/arm/configs/kota2_defconfig b/arch/arm/configs/kota2_defconfig
index b7735d6..3b73777 100644
--- a/arch/arm/configs/kota2_defconfig
+++ b/arch/arm/configs/kota2_defconfig
@@ -17,7 +17,7 @@ CONFIG_SLAB=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_SHMOBILE=y
+CONFIG_ARCH_SHMOBILE_CHOICE=y
CONFIG_KEYBOARD_GPIO_POLLED=y
CONFIG_ARCH_SH73A0=y
CONFIG_MACH_KOTA2=y
diff --git a/arch/arm/configs/ks8695_defconfig b/arch/arm/configs/ks8695_defconfig
index 47c4883..f795954 100644
--- a/arch/arm/configs/ks8695_defconfig
+++ b/arch/arm/configs/ks8695_defconfig
@@ -10,7 +10,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_KS8695=y
+CONFIG_ARCH_KS8695_CHOICE=y
CONFIG_MACH_KS8695=y
CONFIG_MACH_DSM320=y
# CONFIG_ARM_THUMB is not set
diff --git a/arch/arm/configs/kzm9d_defconfig b/arch/arm/configs/kzm9d_defconfig
index 26146ff..5ce2ba4 100644
--- a/arch/arm/configs/kzm9d_defconfig
+++ b/arch/arm/configs/kzm9d_defconfig
@@ -12,7 +12,7 @@ CONFIG_SLAB=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_SHMOBILE=y
+CONFIG_ARCH_SHMOBILE_CHOICE=y
CONFIG_ARCH_EMEV2=y
CONFIG_MACH_KZM9D=y
CONFIG_MEMORY_START=0x40000000
diff --git a/arch/arm/configs/kzm9g_defconfig b/arch/arm/configs/kzm9g_defconfig
index 2388c86..5490470 100644
--- a/arch/arm/configs/kzm9g_defconfig
+++ b/arch/arm/configs/kzm9g_defconfig
@@ -21,7 +21,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_SHMOBILE=y
+CONFIG_ARCH_SHMOBILE_CHOICE=y
CONFIG_KEYBOARD_GPIO_POLLED=y
CONFIG_ARCH_SH73A0=y
CONFIG_MACH_KZM9G=y
diff --git a/arch/arm/configs/lart_defconfig b/arch/arm/configs/lart_defconfig
index faa2865..68e03f9 100644
--- a/arch/arm/configs/lart_defconfig
+++ b/arch/arm/configs/lart_defconfig
@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y
CONFIG_MODULES=y
-CONFIG_ARCH_SA1100=y
+CONFIG_ARCH_SA1100_CHOICE=y
CONFIG_SA1100_LART=y
CONFIG_LEDS=y
CONFIG_LEDS_CPU=y
diff --git a/arch/arm/configs/lpc32xx_defconfig b/arch/arm/configs/lpc32xx_defconfig
index e42a0e3..d219a20 100644
--- a/arch/arm/configs/lpc32xx_defconfig
+++ b/arch/arm/configs/lpc32xx_defconfig
@@ -17,7 +17,7 @@ CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
CONFIG_PARTITION_ADVANCED=y
-CONFIG_ARCH_LPC32XX=y
+CONFIG_ARCH_LPC32XX_CHOICE=y
CONFIG_KEYBOARD_GPIO_POLLED=y
CONFIG_PREEMPT=y
CONFIG_AEABI=y
diff --git a/arch/arm/configs/lpd270_defconfig b/arch/arm/configs/lpd270_defconfig
index 1c8c9ee..12ee552 100644
--- a/arch/arm/configs/lpd270_defconfig
+++ b/arch/arm/configs/lpd270_defconfig
@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_SLAB=y
CONFIG_MODULES=y
-CONFIG_ARCH_PXA=y
+CONFIG_ARCH_PXA_CHOICE=y
CONFIG_MACH_LOGICPD_PXA270=y
# CONFIG_ARM_THUMB is not set
CONFIG_ZBOOT_ROM_TEXT=0x0
diff --git a/arch/arm/configs/lubbock_defconfig b/arch/arm/configs/lubbock_defconfig
index c4ba274..617271e 100644
--- a/arch/arm/configs/lubbock_defconfig
+++ b/arch/arm/configs/lubbock_defconfig
@@ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y
CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_MODULES=y
-CONFIG_ARCH_PXA=y
+CONFIG_ARCH_PXA_CHOICE=y
CONFIG_ARCH_LUBBOCK=y
# CONFIG_ARM_THUMB is not set
CONFIG_PCCARD=y
diff --git a/arch/arm/configs/mackerel_defconfig b/arch/arm/configs/mackerel_defconfig
index 306a2e2..7ca4ffa 100644
--- a/arch/arm/configs/mackerel_defconfig
+++ b/arch/arm/configs/mackerel_defconfig
@@ -14,7 +14,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_SHMOBILE=y
+CONFIG_ARCH_SHMOBILE_CHOICE=y
CONFIG_ARCH_SH7372=y
CONFIG_MACH_MACKEREL=y
CONFIG_MEMORY_SIZE=0x10000000
diff --git a/arch/arm/configs/magician_defconfig b/arch/arm/configs/magician_defconfig
index a691ef4..2e402f4 100644
--- a/arch/arm/configs/magician_defconfig
+++ b/arch/arm/configs/magician_defconfig
@@ -12,7 +12,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_PXA=y
+CONFIG_ARCH_PXA_CHOICE=y
CONFIG_MACH_H4700=y
CONFIG_MACH_MAGICIAN=y
CONFIG_NO_HZ=y
diff --git a/arch/arm/configs/mainstone_defconfig b/arch/arm/configs/mainstone_defconfig
index 04efa1b..e90b18e 100644
--- a/arch/arm/configs/mainstone_defconfig
+++ b/arch/arm/configs/mainstone_defconfig
@@ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y
CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_MODULES=y
-CONFIG_ARCH_PXA=y
+CONFIG_ARCH_PXA_CHOICE=y
CONFIG_MACH_MAINSTONE=y
# CONFIG_ARM_THUMB is not set
CONFIG_LEDS=y
diff --git a/arch/arm/configs/marzen_defconfig b/arch/arm/configs/marzen_defconfig
index 864f9a5..46c2a50 100644
--- a/arch/arm/configs/marzen_defconfig
+++ b/arch/arm/configs/marzen_defconfig
@@ -8,7 +8,7 @@ CONFIG_SYSCTL_SYSCALL=y
CONFIG_EMBEDDED=y
CONFIG_SLAB=y
# CONFIG_BLOCK is not set
-CONFIG_ARCH_SHMOBILE=y
+CONFIG_ARCH_SHMOBILE_CHOICE=y
CONFIG_ARCH_R8A7779=y
CONFIG_MACH_MARZEN=y
CONFIG_MEMORY_START=0x60000000
diff --git a/arch/arm/configs/mini2440_defconfig b/arch/arm/configs/mini2440_defconfig
index 082175c..828a920 100644
--- a/arch/arm/configs/mini2440_defconfig
+++ b/arch/arm/configs/mini2440_defconfig
@@ -13,7 +13,7 @@ CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
CONFIG_BLK_DEV_INTEGRITY=y
-CONFIG_ARCH_S3C24XX=y
+CONFIG_ARCH_S3C24XX_CHOICE=y
# CONFIG_CPU_S3C2410 is not set
CONFIG_CPU_S3C2440=y
CONFIG_S3C_ADC=y
diff --git a/arch/arm/configs/mmp2_defconfig b/arch/arm/configs/mmp2_defconfig
index 5a58452..c5e0355 100644
--- a/arch/arm/configs/mmp2_defconfig
+++ b/arch/arm/configs/mmp2_defconfig
@@ -7,7 +7,7 @@ CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
-CONFIG_ARCH_MMP=y
+CONFIG_ARCH_MMP_CHOICE=y
CONFIG_MACH_BROWNSTONE=y
CONFIG_MACH_FLINT=y
CONFIG_MACH_MARVELL_JASPER=y
diff --git a/arch/arm/configs/msm_defconfig b/arch/arm/configs/msm_defconfig
index 2b8f7af..77218bd 100644
--- a/arch/arm/configs/msm_defconfig
+++ b/arch/arm/configs/msm_defconfig
@@ -6,7 +6,7 @@ CONFIG_SLAB=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_MSM=y
+CONFIG_ARCH_MSM_CHOICE=y
CONFIG_MACH_HALIBUT=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
diff --git a/arch/arm/configs/mv78xx0_defconfig b/arch/arm/configs/mv78xx0_defconfig
index 7305ebd..f2200bc 100644
--- a/arch/arm/configs/mv78xx0_defconfig
+++ b/arch/arm/configs/mv78xx0_defconfig
@@ -11,7 +11,7 @@ CONFIG_KPROBES=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
-CONFIG_ARCH_MV78XX0=y
+CONFIG_ARCH_MV78XX0_CHOICE=y
CONFIG_MACH_DB78X00_BP=y
CONFIG_MACH_RD78X00_MASA=y
CONFIG_MACH_TERASTATION_WXL=y
diff --git a/arch/arm/configs/mvebu_defconfig b/arch/arm/configs/mvebu_defconfig
index 2e86b31..76f2486 100644
--- a/arch/arm/configs/mvebu_defconfig
+++ b/arch/arm/configs/mvebu_defconfig
@@ -8,7 +8,7 @@ CONFIG_EXPERT=y
CONFIG_SLAB=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
-CONFIG_ARCH_MVEBU=y
+CONFIG_ARCH_MVEBU_CHOICE=y
CONFIG_MACH_ARMADA_370_XP=y
CONFIG_AEABI=y
CONFIG_HIGHMEM=y
diff --git a/arch/arm/configs/mxs_defconfig b/arch/arm/configs/mxs_defconfig
index 4edcfb4..a64a406 100644
--- a/arch/arm/configs/mxs_defconfig
+++ b/arch/arm/configs/mxs_defconfig
@@ -21,7 +21,7 @@ CONFIG_MODVERSIONS=y
CONFIG_BLK_DEV_INTEGRITY=y
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_MXS=y
+CONFIG_ARCH_MXS_CHOICE=y
CONFIG_MACH_MXS_DT=y
CONFIG_MACH_MX23EVK=y
CONFIG_MACH_MX28EVK=y
diff --git a/arch/arm/configs/neponset_defconfig b/arch/arm/configs/neponset_defconfig
index d7dc992..ee6b316 100644
--- a/arch/arm/configs/neponset_defconfig
+++ b/arch/arm/configs/neponset_defconfig
@@ -4,7 +4,7 @@ CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
-CONFIG_ARCH_SA1100=y
+CONFIG_ARCH_SA1100_CHOICE=y
CONFIG_SA1100_ASSABET=y
CONFIG_ASSABET_NEPONSET=y
CONFIG_PCCARD=y
diff --git a/arch/arm/configs/netwinder_defconfig b/arch/arm/configs/netwinder_defconfig
index 25ed772..e9bcdc3 100644
--- a/arch/arm/configs/netwinder_defconfig
+++ b/arch/arm/configs/netwinder_defconfig
@@ -1,7 +1,7 @@
CONFIG_EXPERIMENTAL=y
CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14
-CONFIG_ARCH_FOOTBRIDGE=y
+CONFIG_ARCH_FOOTBRIDGE_CHOICE=y
CONFIG_ARCH_NETWINDER=y
CONFIG_LEDS=y
CONFIG_LEDS_CPU=y
diff --git a/arch/arm/configs/netx_defconfig b/arch/arm/configs/netx_defconfig
index 9c0ad79..4d036c9 100644
--- a/arch/arm/configs/netx_defconfig
+++ b/arch/arm/configs/netx_defconfig
@@ -8,7 +8,7 @@ CONFIG_SLAB=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
-CONFIG_ARCH_NETX=y
+CONFIG_ARCH_NETX_CHOICE=y
CONFIG_MACH_NXDKN=y
CONFIG_MACH_NXDB500=y
CONFIG_MACH_NXEB500HMI=y
diff --git a/arch/arm/configs/nhk8815_defconfig b/arch/arm/configs/nhk8815_defconfig
index bf123c5..2e327e0 100644
--- a/arch/arm/configs/nhk8815_defconfig
+++ b/arch/arm/configs/nhk8815_defconfig
@@ -13,7 +13,7 @@ CONFIG_SLAB=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
-CONFIG_ARCH_NOMADIK=y
+CONFIG_ARCH_NOMADIK_CHOICE=y
CONFIG_MACH_NOMADIK_8815NHK=y
CONFIG_PREEMPT=y
CONFIG_AEABI=y
diff --git a/arch/arm/configs/nuc910_defconfig b/arch/arm/configs/nuc910_defconfig
index 10180cf..4d05295 100644
--- a/arch/arm/configs/nuc910_defconfig
+++ b/arch/arm/configs/nuc910_defconfig
@@ -8,7 +8,7 @@ CONFIG_USER_NS=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_KALLSYMS_EXTRA_PASS=y
CONFIG_SLAB=y
-CONFIG_ARCH_W90X900=y
+CONFIG_ARCH_W90X900_CHOICE=y
CONFIG_PREEMPT=y
CONFIG_AEABI=y
CONFIG_CMDLINE="root=/dev/ram0 console=ttyS0,115200n8 rdinit=/sbin/init mem=64M"
diff --git a/arch/arm/configs/nuc950_defconfig b/arch/arm/configs/nuc950_defconfig
index 27aa873..846fd11 100644
--- a/arch/arm/configs/nuc950_defconfig
+++ b/arch/arm/configs/nuc950_defconfig
@@ -8,7 +8,7 @@ CONFIG_USER_NS=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_KALLSYMS_EXTRA_PASS=y
CONFIG_SLAB=y
-CONFIG_ARCH_W90X900=y
+CONFIG_ARCH_W90X900_CHOICE=y
# CONFIG_MACH_W90P910EVB is not set
CONFIG_MACH_W90P950EVB=y
CONFIG_NO_HZ=y
diff --git a/arch/arm/configs/nuc960_defconfig b/arch/arm/configs/nuc960_defconfig
index 56fd7ad..3ec4197 100644
--- a/arch/arm/configs/nuc960_defconfig
+++ b/arch/arm/configs/nuc960_defconfig
@@ -8,7 +8,7 @@ CONFIG_USER_NS=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_KALLSYMS_EXTRA_PASS=y
CONFIG_SLAB=y
-CONFIG_ARCH_W90X900=y
+CONFIG_ARCH_W90X900_CHOICE=y
# CONFIG_MACH_W90P910EVB is not set
CONFIG_MACH_W90N960EVB=y
CONFIG_NO_HZ=y
diff --git a/arch/arm/configs/omap1_defconfig b/arch/arm/configs/omap1_defconfig
index dde2a1a..43e9487 100644
--- a/arch/arm/configs/omap1_defconfig
+++ b/arch/arm/configs/omap1_defconfig
@@ -22,7 +22,7 @@ CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_OMAP=y
+CONFIG_ARCH_OMAP_CHOICE=y
CONFIG_ARCH_OMAP1=y
CONFIG_OMAP_RESET_CLOCKS=y
# CONFIG_OMAP_MUX is not set
diff --git a/arch/arm/configs/omap2plus_defconfig b/arch/arm/configs/omap2plus_defconfig
index e58edc3..7d959cd 100644
--- a/arch/arm/configs/omap2plus_defconfig
+++ b/arch/arm/configs/omap2plus_defconfig
@@ -20,7 +20,7 @@ CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
# CONFIG_BLK_DEV_BSG is not set
-CONFIG_ARCH_OMAP=y
+CONFIG_ARCH_OMAP_CHOICE=y
CONFIG_OMAP_RESET_CLOCKS=y
CONFIG_OMAP_MUX_DEBUG=y
CONFIG_ARM_THUMBEE=y
diff --git a/arch/arm/configs/orion5x_defconfig b/arch/arm/configs/orion5x_defconfig
index a288d70..cad9bd5 100644
--- a/arch/arm/configs/orion5x_defconfig
+++ b/arch/arm/configs/orion5x_defconfig
@@ -10,7 +10,7 @@ CONFIG_KPROBES=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
-CONFIG_ARCH_ORION5X=y
+CONFIG_ARCH_ORION5X_CHOICE=y
CONFIG_MACH_DB88F5281=y
CONFIG_MACH_RD88F5182=y
CONFIG_MACH_KUROBOX_PRO=y
diff --git a/arch/arm/configs/palmz72_defconfig b/arch/arm/configs/palmz72_defconfig
index 4baa83c..67cff48 100644
--- a/arch/arm/configs/palmz72_defconfig
+++ b/arch/arm/configs/palmz72_defconfig
@@ -10,7 +10,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_PXA=y
+CONFIG_ARCH_PXA_CHOICE=y
CONFIG_ARCH_PXA_PALM=y
# CONFIG_MACH_PALMTX is not set
CONFIG_PREEMPT=y
diff --git a/arch/arm/configs/pcm027_defconfig b/arch/arm/configs/pcm027_defconfig
index 2f136c3..521caef 100644
--- a/arch/arm/configs/pcm027_defconfig
+++ b/arch/arm/configs/pcm027_defconfig
@@ -16,7 +16,7 @@ CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_PXA=y
+CONFIG_ARCH_PXA_CHOICE=y
CONFIG_MACH_PCM027=y
CONFIG_MACH_PCM990_BASEBOARD=y
CONFIG_NO_HZ=y
diff --git a/arch/arm/configs/pleb_defconfig b/arch/arm/configs/pleb_defconfig
index cb08cc5..703751e 100644
--- a/arch/arm/configs/pleb_defconfig
+++ b/arch/arm/configs/pleb_defconfig
@@ -9,7 +9,7 @@ CONFIG_EXPERT=y
CONFIG_MODULES=y
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_SA1100=y
+CONFIG_ARCH_SA1100_CHOICE=y
CONFIG_SA1100_PLEB=y
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
diff --git a/arch/arm/configs/pnx4008_defconfig b/arch/arm/configs/pnx4008_defconfig
index 35a31cc..87e705d 100644
--- a/arch/arm/configs/pnx4008_defconfig
+++ b/arch/arm/configs/pnx4008_defconfig
@@ -12,7 +12,7 @@ CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
-CONFIG_ARCH_PNX4008=y
+CONFIG_ARCH_PNX4008_CHOICE=y
CONFIG_PREEMPT=y
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
diff --git a/arch/arm/configs/prima2_defconfig b/arch/arm/configs/prima2_defconfig
index c328ac6..e23ebd2 100644
--- a/arch/arm/configs/prima2_defconfig
+++ b/arch/arm/configs/prima2_defconfig
@@ -8,7 +8,7 @@ CONFIG_MODULE_UNLOAD=y
CONFIG_PARTITION_ADVANCED=y
CONFIG_BSD_DISKLABEL=y
CONFIG_SOLARIS_X86_PARTITION=y
-CONFIG_ARCH_PRIMA2=y
+CONFIG_ARCH_PRIMA2_CHOICE=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_PREEMPT=y
diff --git a/arch/arm/configs/pxa168_defconfig b/arch/arm/configs/pxa168_defconfig
index 74d7e01..f479d22 100644
--- a/arch/arm/configs/pxa168_defconfig
+++ b/arch/arm/configs/pxa168_defconfig
@@ -7,7 +7,7 @@ CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
-CONFIG_ARCH_MMP=y
+CONFIG_ARCH_MMP_CHOICE=y
CONFIG_MACH_ASPENITE=y
CONFIG_MACH_ZYLONITE2=y
CONFIG_MACH_AVENGERS_LITE=y
diff --git a/arch/arm/configs/pxa255-idp_defconfig b/arch/arm/configs/pxa255-idp_defconfig
index 917a070..e836371 100644
--- a/arch/arm/configs/pxa255-idp_defconfig
+++ b/arch/arm/configs/pxa255-idp_defconfig
@@ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y
CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_MODULES=y
-CONFIG_ARCH_PXA=y
+CONFIG_ARCH_PXA_CHOICE=y
CONFIG_ARCH_PXA_IDP=y
# CONFIG_ARM_THUMB is not set
CONFIG_LEDS=y
diff --git a/arch/arm/configs/pxa3xx_defconfig b/arch/arm/configs/pxa3xx_defconfig
index 1677a06..0da136d 100644
--- a/arch/arm/configs/pxa3xx_defconfig
+++ b/arch/arm/configs/pxa3xx_defconfig
@@ -7,7 +7,7 @@ CONFIG_KALLSYMS_ALL=y
CONFIG_SLAB=y
CONFIG_MODULES=y
# CONFIG_BLK_DEV_BSG is not set
-CONFIG_ARCH_PXA=y
+CONFIG_ARCH_PXA_CHOICE=y
CONFIG_MACH_LITTLETON=y
CONFIG_MACH_TAVOREVB=y
CONFIG_MACH_SAAR=y
diff --git a/arch/arm/configs/pxa910_defconfig b/arch/arm/configs/pxa910_defconfig
index 1cd381e..73a3c23 100644
--- a/arch/arm/configs/pxa910_defconfig
+++ b/arch/arm/configs/pxa910_defconfig
@@ -8,7 +8,7 @@ CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
-CONFIG_ARCH_MMP=y
+CONFIG_ARCH_MMP_CHOICE=y
CONFIG_MACH_TAVOREVB=y
CONFIG_MACH_TTC_DKB=y
CONFIG_NO_HZ=y
diff --git a/arch/arm/configs/qil-a9260_defconfig b/arch/arm/configs/qil-a9260_defconfig
index 9160f3b..446403b 100644
--- a/arch/arm/configs/qil-a9260_defconfig
+++ b/arch/arm/configs/qil-a9260_defconfig
@@ -10,7 +10,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_AT91=y
+CONFIG_ARCH_AT91_CHOICE=y
CONFIG_ARCH_AT91SAM9260=y
CONFIG_MACH_QIL_A9260=y
CONFIG_AT91_SLOW_CLOCK=y
diff --git a/arch/arm/configs/raumfeld_defconfig b/arch/arm/configs/raumfeld_defconfig
index f7caa90..062fbcd 100644
--- a/arch/arm/configs/raumfeld_defconfig
+++ b/arch/arm/configs/raumfeld_defconfig
@@ -5,7 +5,7 @@ CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_LBDAF is not set
# CONFIG_BLK_DEV_BSG is not set
-CONFIG_ARCH_PXA=y
+CONFIG_ARCH_PXA_CHOICE=y
CONFIG_MACH_RAUMFELD_RC=y
CONFIG_MACH_RAUMFELD_CONNECTOR=y
CONFIG_MACH_RAUMFELD_SPEAKER=y
diff --git a/arch/arm/configs/realview-smp_defconfig b/arch/arm/configs/realview-smp_defconfig
index abe61bf..8080936 100644
--- a/arch/arm/configs/realview-smp_defconfig
+++ b/arch/arm/configs/realview-smp_defconfig
@@ -8,7 +8,7 @@ CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_REALVIEW=y
+CONFIG_ARCH_REALVIEW_CHOICE=y
CONFIG_MACH_REALVIEW_EB=y
CONFIG_REALVIEW_EB_ARM11MP=y
CONFIG_MACH_REALVIEW_PB11MP=y
diff --git a/arch/arm/configs/realview_defconfig b/arch/arm/configs/realview_defconfig
index 7079cbe..4114be5 100644
--- a/arch/arm/configs/realview_defconfig
+++ b/arch/arm/configs/realview_defconfig
@@ -8,7 +8,7 @@ CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_REALVIEW=y
+CONFIG_ARCH_REALVIEW_CHOICE=y
CONFIG_MACH_REALVIEW_EB=y
CONFIG_REALVIEW_EB_ARM11MP=y
CONFIG_MACH_REALVIEW_PB11MP=y
diff --git a/arch/arm/configs/rpc_defconfig b/arch/arm/configs/rpc_defconfig
index 00515ef..e57d7af 100644
--- a/arch/arm/configs/rpc_defconfig
+++ b/arch/arm/configs/rpc_defconfig
@@ -7,7 +7,7 @@ CONFIG_SLAB=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
-CONFIG_ARCH_RPC=y
+CONFIG_ARCH_RPC_CHOICE=y
CONFIG_CPU_SA110=y
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
diff --git a/arch/arm/configs/s3c2410_defconfig b/arch/arm/configs/s3c2410_defconfig
index 193448f..80b7757 100644
--- a/arch/arm/configs/s3c2410_defconfig
+++ b/arch/arm/configs/s3c2410_defconfig
@@ -11,7 +11,7 @@ CONFIG_MODULE_UNLOAD=y
CONFIG_PARTITION_ADVANCED=y
CONFIG_BSD_DISKLABEL=y
CONFIG_SOLARIS_X86_PARTITION=y
-CONFIG_ARCH_S3C24XX=y
+CONFIG_ARCH_S3C24XX_CHOICE=y
CONFIG_S3C_BOOT_ERROR_RESET=y
CONFIG_S3C_ADC=y
CONFIG_S3C24XX_PWM=y
diff --git a/arch/arm/configs/s3c6400_defconfig b/arch/arm/configs/s3c6400_defconfig
index ba6a515..72cd97a 100644
--- a/arch/arm/configs/s3c6400_defconfig
+++ b/arch/arm/configs/s3c6400_defconfig
@@ -5,7 +5,7 @@ CONFIG_KALLSYMS_ALL=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
-CONFIG_ARCH_S3C64XX=y
+CONFIG_ARCH_S3C64XX_CHOICE=y
CONFIG_S3C_BOOT_ERROR_RESET=y
CONFIG_MACH_SMDK6400=y
CONFIG_MACH_ANW6410=y
diff --git a/arch/arm/configs/s5p64x0_defconfig b/arch/arm/configs/s5p64x0_defconfig
index ad6b61b..32edf95 100644
--- a/arch/arm/configs/s5p64x0_defconfig
+++ b/arch/arm/configs/s5p64x0_defconfig
@@ -5,7 +5,7 @@ CONFIG_KALLSYMS_ALL=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
-CONFIG_ARCH_S5P64X0=y
+CONFIG_ARCH_S5P64X0_CHOICE=y
CONFIG_S3C_BOOT_ERROR_RESET=y
CONFIG_S3C_LOWLEVEL_UART_PORT=1
CONFIG_MACH_SMDK6440=y
diff --git a/arch/arm/configs/s5pc100_defconfig b/arch/arm/configs/s5pc100_defconfig
index 41bafc9..eb6dbd7 100644
--- a/arch/arm/configs/s5pc100_defconfig
+++ b/arch/arm/configs/s5pc100_defconfig
@@ -5,7 +5,7 @@ CONFIG_KALLSYMS_ALL=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
-CONFIG_ARCH_S5PC100=y
+CONFIG_ARCH_S5PC100_CHOICE=y
CONFIG_MACH_SMDKC100=y
CONFIG_AEABI=y
CONFIG_CMDLINE="root=/dev/mtdblock2 rootfstype=cramfs init=/linuxrc console=ttySAC2,115200 mem=128M"
diff --git a/arch/arm/configs/s5pv210_defconfig b/arch/arm/configs/s5pv210_defconfig
index fa98990..5176dac59 100644
--- a/arch/arm/configs/s5pv210_defconfig
+++ b/arch/arm/configs/s5pv210_defconfig
@@ -5,7 +5,7 @@ CONFIG_KALLSYMS_ALL=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
-CONFIG_ARCH_S5PV210=y
+CONFIG_ARCH_S5PV210_CHOICE=y
CONFIG_S3C_LOWLEVEL_UART_PORT=1
CONFIG_S3C_DEV_FB=y
CONFIG_S5PV210_SETUP_FB_24BPP=y
diff --git a/arch/arm/configs/sam9_l9260_defconfig b/arch/arm/configs/sam9_l9260_defconfig
index ecf2531..18d831b 100644
--- a/arch/arm/configs/sam9_l9260_defconfig
+++ b/arch/arm/configs/sam9_l9260_defconfig
@@ -9,7 +9,7 @@ CONFIG_LOG_BUF_SHIFT=15
CONFIG_BLK_DEV_INITRD=y
CONFIG_SLAB=y
# CONFIG_BLK_DEV_BSG is not set
-CONFIG_ARCH_AT91=y
+CONFIG_ARCH_AT91_CHOICE=y
CONFIG_ARCH_AT91SAM9260=y
CONFIG_MACH_SAM9_L9260=y
CONFIG_MTD_AT91_DATAFLASH_CARD=y
diff --git a/arch/arm/configs/shannon_defconfig b/arch/arm/configs/shannon_defconfig
index b0b9694..b64afb0 100644
--- a/arch/arm/configs/shannon_defconfig
+++ b/arch/arm/configs/shannon_defconfig
@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y
CONFIG_MODULES=y
-CONFIG_ARCH_SA1100=y
+CONFIG_ARCH_SA1100_CHOICE=y
CONFIG_SA1100_SHANNON=y
CONFIG_PCCARD=y
CONFIG_PCMCIA_SA1100=y
diff --git a/arch/arm/configs/shark_defconfig b/arch/arm/configs/shark_defconfig
index caa07db..6579d28 100644
--- a/arch/arm/configs/shark_defconfig
+++ b/arch/arm/configs/shark_defconfig
@@ -8,7 +8,7 @@ CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
-CONFIG_ARCH_SHARK=y
+CONFIG_ARCH_SHARK_CHOICE=y
CONFIG_LEDS=y
CONFIG_LEDS_TIMER=y
CONFIG_ZBOOT_ROM_TEXT=0x0
diff --git a/arch/arm/configs/simpad_defconfig b/arch/arm/configs/simpad_defconfig
index d335815..e3bbdf9 100644
--- a/arch/arm/configs/simpad_defconfig
+++ b/arch/arm/configs/simpad_defconfig
@@ -6,7 +6,7 @@ CONFIG_EXPERT=y
CONFIG_KALLSYMS_ALL=y
CONFIG_KALLSYMS_EXTRA_PASS=y
CONFIG_MODULES=y
-CONFIG_ARCH_SA1100=y
+CONFIG_ARCH_SA1100_CHOICE=y
CONFIG_SA1100_SIMPAD=y
CONFIG_PCCARD=y
CONFIG_PCMCIA_SA1100=y
diff --git a/arch/arm/configs/socfpga_defconfig b/arch/arm/configs/socfpga_defconfig
index 0ac1293..89023b6 100644
--- a/arch/arm/configs/socfpga_defconfig
+++ b/arch/arm/configs/socfpga_defconfig
@@ -15,7 +15,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_SOCFPGA=y
+CONFIG_ARCH_SOCFPGA_CHOICE=y
CONFIG_MACH_SOCFPGA_CYCLONE5=y
CONFIG_ARM_THUMBEE=y
# CONFIG_CACHE_L2X0 is not set
diff --git a/arch/arm/configs/spear13xx_defconfig b/arch/arm/configs/spear13xx_defconfig
index 1fdb826..ea4069c 100644
--- a/arch/arm/configs/spear13xx_defconfig
+++ b/arch/arm/configs/spear13xx_defconfig
@@ -7,7 +7,7 @@ CONFIG_MODULE_UNLOAD=y
CONFIG_MODVERSIONS=y
CONFIG_PARTITION_ADVANCED=y
CONFIG_PLAT_SPEAR=y
-CONFIG_ARCH_SPEAR13XX=y
+CONFIG_ARCH_SPEAR13XX_CHOICE=y
CONFIG_MACH_SPEAR1310=y
CONFIG_MACH_SPEAR1340=y
# CONFIG_SWP_EMULATE is not set
diff --git a/arch/arm/configs/spear6xx_defconfig b/arch/arm/configs/spear6xx_defconfig
index a2a1265..a82ba96 100644
--- a/arch/arm/configs/spear6xx_defconfig
+++ b/arch/arm/configs/spear6xx_defconfig
@@ -7,7 +7,7 @@ CONFIG_MODULE_UNLOAD=y
CONFIG_MODVERSIONS=y
CONFIG_PARTITION_ADVANCED=y
CONFIG_PLAT_SPEAR=y
-CONFIG_ARCH_SPEAR6XX=y
+CONFIG_ARCH_SPEAR6XX_CHOICE=y
CONFIG_BINFMT_MISC=y
CONFIG_NET=y
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
diff --git a/arch/arm/configs/spitz_defconfig b/arch/arm/configs/spitz_defconfig
index 7015827..35667a0 100644
--- a/arch/arm/configs/spitz_defconfig
+++ b/arch/arm/configs/spitz_defconfig
@@ -11,7 +11,7 @@ CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
-CONFIG_ARCH_PXA=y
+CONFIG_ARCH_PXA_CHOICE=y
CONFIG_PXA_SHARPSL=y
CONFIG_MACH_AKITA=y
CONFIG_MACH_BORZOI=y
diff --git a/arch/arm/configs/stamp9g20_defconfig b/arch/arm/configs/stamp9g20_defconfig
index d5e260b..23da280 100644
--- a/arch/arm/configs/stamp9g20_defconfig
+++ b/arch/arm/configs/stamp9g20_defconfig
@@ -11,7 +11,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_LBDAF is not set
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
-CONFIG_ARCH_AT91=y
+CONFIG_ARCH_AT91_CHOICE=y
CONFIG_ARCH_AT91SAM9G20=y
CONFIG_MACH_PORTUXG20=y
CONFIG_MACH_STAMP9G20=y
diff --git a/arch/arm/configs/tct_hammer_defconfig b/arch/arm/configs/tct_hammer_defconfig
index 71277a1..d618ae2 100644
--- a/arch/arm/configs/tct_hammer_defconfig
+++ b/arch/arm/configs/tct_hammer_defconfig
@@ -14,7 +14,7 @@ CONFIG_SLOB=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
-CONFIG_ARCH_S3C24XX=y
+CONFIG_ARCH_S3C24XX_CHOICE=y
CONFIG_MACH_TCT_HAMMER=y
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
diff --git a/arch/arm/configs/tegra_defconfig b/arch/arm/configs/tegra_defconfig
index db22453..24c16fa 100644
--- a/arch/arm/configs/tegra_defconfig
+++ b/arch/arm/configs/tegra_defconfig
@@ -23,7 +23,7 @@ CONFIG_PARTITION_ADVANCED=y
CONFIG_EFI_PARTITION=y
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_TEGRA=y
+CONFIG_ARCH_TEGRA_CHOICE=y
CONFIG_ARCH_TEGRA_2x_SOC=y
CONFIG_ARCH_TEGRA_3x_SOC=y
CONFIG_MACH_HARMONY=y
diff --git a/arch/arm/configs/trizeps4_defconfig b/arch/arm/configs/trizeps4_defconfig
index 3162173..7433db3 100644
--- a/arch/arm/configs/trizeps4_defconfig
+++ b/arch/arm/configs/trizeps4_defconfig
@@ -15,7 +15,7 @@ CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
-CONFIG_ARCH_PXA=y
+CONFIG_ARCH_PXA_CHOICE=y
CONFIG_TRIZEPS_PXA=y
CONFIG_MACH_TRIZEPS4=y
CONFIG_PCCARD=y
diff --git a/arch/arm/configs/u300_defconfig b/arch/arm/configs/u300_defconfig
index 374000e..2a0b97d 100644
--- a/arch/arm/configs/u300_defconfig
+++ b/arch/arm/configs/u300_defconfig
@@ -11,7 +11,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_LBDAF is not set
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_U300=y
+CONFIG_ARCH_U300_CHOICE=y
CONFIG_MACH_U300=y
CONFIG_MACH_U300_BS335=y
CONFIG_MACH_U300_SPIDUMMY=y
diff --git a/arch/arm/configs/u8500_defconfig b/arch/arm/configs/u8500_defconfig
index 2d4f661..35aa6dc 100644
--- a/arch/arm/configs/u8500_defconfig
+++ b/arch/arm/configs/u8500_defconfig
@@ -7,7 +7,7 @@ CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_LBDAF is not set
# CONFIG_BLK_DEV_BSG is not set
-CONFIG_ARCH_U8500=y
+CONFIG_ARCH_U8500_CHOICE=y
CONFIG_MACH_HREFV60=y
CONFIG_MACH_SNOWBALL=y
CONFIG_MACH_U5500=y
diff --git a/arch/arm/configs/usb-a9260_defconfig b/arch/arm/configs/usb-a9260_defconfig
index 2e39f38..d2c5d90 100644
--- a/arch/arm/configs/usb-a9260_defconfig
+++ b/arch/arm/configs/usb-a9260_defconfig
@@ -10,7 +10,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_AT91=y
+CONFIG_ARCH_AT91_CHOICE=y
CONFIG_ARCH_AT91SAM9260=y
CONFIG_MACH_USB_A9260=y
CONFIG_AT91_SLOW_CLOCK=y
diff --git a/arch/arm/configs/vexpress_defconfig b/arch/arm/configs/vexpress_defconfig
index f2de51f..75c85ad 100644
--- a/arch/arm/configs/vexpress_defconfig
+++ b/arch/arm/configs/vexpress_defconfig
@@ -21,7 +21,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_VEXPRESS=y
+CONFIG_ARCH_VEXPRESS_CHOICE=y
CONFIG_ARCH_VEXPRESS_CA9X4=y
# CONFIG_SWP_EMULATE is not set
CONFIG_SMP=y
diff --git a/arch/arm/configs/viper_defconfig b/arch/arm/configs/viper_defconfig
index 1d01ddd..2e9d898 100644
--- a/arch/arm/configs/viper_defconfig
+++ b/arch/arm/configs/viper_defconfig
@@ -11,7 +11,7 @@ CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_PXA=y
+CONFIG_ARCH_PXA_CHOICE=y
CONFIG_ARCH_VIPER=y
CONFIG_IWMMXT=y
CONFIG_PCCARD=m
diff --git a/arch/arm/configs/xcep_defconfig b/arch/arm/configs/xcep_defconfig
index 721832f..3136636 100644
--- a/arch/arm/configs/xcep_defconfig
+++ b/arch/arm/configs/xcep_defconfig
@@ -20,7 +20,7 @@ CONFIG_MODULE_UNLOAD=y
CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
# CONFIG_BLOCK is not set
-CONFIG_ARCH_PXA=y
+CONFIG_ARCH_PXA_CHOICE=y
CONFIG_MACH_XCEP=y
CONFIG_IWMMXT=y
CONFIG_NO_HZ=y
diff --git a/arch/arm/configs/zeus_defconfig b/arch/arm/configs/zeus_defconfig
index 547a3c1..4a1b536 100644
--- a/arch/arm/configs/zeus_defconfig
+++ b/arch/arm/configs/zeus_defconfig
@@ -6,7 +6,7 @@ CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_PXA=y
+CONFIG_ARCH_PXA_CHOICE=y
CONFIG_MACH_ARCOM_ZEUS=y
CONFIG_PCCARD=m
CONFIG_PCMCIA_PXA2XX=m
--
1.7.9.5
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [PATCH 1/6] ARM: move ARCH config definitions into mach dirs
2012-08-29 22:49 ` [PATCH 1/6] ARM: move ARCH config definitions into mach dirs Rob Herring
@ 2012-08-29 23:14 ` H Hartley Sweeten
2012-08-29 23:31 ` Russell King - ARM Linux
1 sibling, 0 replies; 28+ messages in thread
From: H Hartley Sweeten @ 2012-08-29 23:14 UTC (permalink / raw)
To: linux-arm-kernel
On Wednesday, August 29, 2012 3:50 PM, Rob Herring wrote:
>
> In preparation for mulit-platform support, convert all platforms' ARCH_
> definition to a hidden option and create a new choice option.
>
> Signed-off-by: Rob Herring <rob.herring@calxeda.com>
> ---
> arch/arm/Kconfig | 650 ++++++++------------------------------
<snip>
> arch/arm/mach-ep93xx/Kconfig | 11 +
<snip>
>
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
<snip>
> -config ARCH_EP93XX
> +config ARCH_EP93XX_CHOICE
> bool "EP93xx-based"
> - select CPU_ARM920T
> - select ARM_AMBA
> - select ARM_VIC
> - select CLKDEV_LOOKUP
> - select ARCH_REQUIRE_GPIOLIB
> - select ARCH_HAS_HOLES_MEMORYMODEL
> - select ARCH_USES_GETTIMEOFFSET
> - select NEED_MACH_MEMORY_H
> + select ARCH_EP93XX
> help
> This enables support for the Cirrus EP93xx series of CPUs.
<snip>
> diff --git a/arch/arm/mach-ep93xx/Kconfig b/arch/arm/mach-ep93xx/Kconfig
> index fe3c1fa..4cf770c 100644
> --- a/arch/arm/mach-ep93xx/Kconfig
> +++ b/arch/arm/mach-ep93xx/Kconfig
> @@ -1,3 +1,14 @@
> +config ARCH_EP93XX
> + bool
> + select ARCH_REQUIRE_GPIOLIB
> + select ARCH_HAS_HOLES_MEMORYMODEL
> + select ARCH_USES_GETTIMEOFFSET
> + select ARM_AMBA
> + select ARM_VIC
> + select CLKDEV_LOOKUP
> + select CPU_ARM920T
> + select NEED_MACH_MEMORY_H
> +
> if ARCH_EP93XX
>
> menu "Cirrus EP93xx Implementation Options"
Curious... Why did you rearrange the select's? There "almost"
alphabetic now, but not quite...
But, FWIW, for the EP93xx part:
Acked-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Thanks
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH 2/6] ARM: introduce Kconfig.mach
2012-08-29 22:49 ` [PATCH 2/6] ARM: introduce Kconfig.mach Rob Herring
@ 2012-08-29 23:18 ` H Hartley Sweeten
0 siblings, 0 replies; 28+ messages in thread
From: H Hartley Sweeten @ 2012-08-29 23:18 UTC (permalink / raw)
To: linux-arm-kernel
On Wednesday, August 29, 2012 3:50 PM, Rob Herring wrote:
>
> Move all the mach related config options into separate Kconfig.mach file.
>
> Signed-off-by: Rob Herring <rob.herring@calxeda.com>
> ---
> arch/arm/Kconfig | 529 +------------------------------------------------
> arch/arm/Kconfig.mach | 528 ++++++++++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 529 insertions(+), 528 deletions(-)
> create mode 100644 arch/arm/Kconfig.mach
FWIW as far as ep93xx goes..
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Thanks
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH 1/6] ARM: move ARCH config definitions into mach dirs
2012-08-29 22:49 ` [PATCH 1/6] ARM: move ARCH config definitions into mach dirs Rob Herring
2012-08-29 23:14 ` H Hartley Sweeten
@ 2012-08-29 23:31 ` Russell King - ARM Linux
2012-08-30 15:18 ` Rob Herring
1 sibling, 1 reply; 28+ messages in thread
From: Russell King - ARM Linux @ 2012-08-29 23:31 UTC (permalink / raw)
To: linux-arm-kernel
On Wed, Aug 29, 2012 at 05:49:55PM -0500, Rob Herring wrote:
> From: Rob Herring <rob.herring@calxeda.com>
>
> In preparation for mulit-platform support, convert all platforms' ARCH_
> definition to a hidden option and create a new choice option.
This is churn and annoyance. It's definitely annoyance for the
autobuilder because it's going to have to have symbols changed in the
seed configs. It's annoyance for people because they're going to have
to manually reselect their SoC types in every build they do.
I think also that Kconfig will end up on 'make oldconfig' selecting
one of the platforms, deselecting all the dependencies on that platform,
which then means you'll have thousands of Kconfig options to answer.
I've been there with x86 configs, and spent something like an hour
piecing together a configuration for my laptop, answering one question
every couple of seconds. That is not a nice experience to inflict on
people.
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH 1/6] ARM: move ARCH config definitions into mach dirs
2012-08-29 23:31 ` Russell King - ARM Linux
@ 2012-08-30 15:18 ` Rob Herring
2012-08-30 16:45 ` Russell King - ARM Linux
0 siblings, 1 reply; 28+ messages in thread
From: Rob Herring @ 2012-08-30 15:18 UTC (permalink / raw)
To: linux-arm-kernel
On 08/29/2012 06:31 PM, Russell King - ARM Linux wrote:
> On Wed, Aug 29, 2012 at 05:49:55PM -0500, Rob Herring wrote:
>> From: Rob Herring <rob.herring@calxeda.com>
>>
>> In preparation for mulit-platform support, convert all platforms' ARCH_
>> definition to a hidden option and create a new choice option.
>
> This is churn and annoyance. It's definitely annoyance for the
> autobuilder because it's going to have to have symbols changed in the
> seed configs. It's annoyance for people because they're going to have
> to manually reselect their SoC types in every build they do.
>
> I think also that Kconfig will end up on 'make oldconfig' selecting
> one of the platforms, deselecting all the dependencies on that platform,
> which then means you'll have thousands of Kconfig options to answer.
>
> I've been there with x86 configs, and spent something like an hour
> piecing together a configuration for my laptop, answering one question
> every couple of seconds. That is not a nice experience to inflict on
> people.
Then what do you suggest? I can think of a few alternatives.
Leave the current name and make the hidden option a new name like
ARCH_xx_OPTIONS. This would require renaming ARCH_xxx for each platform
all over the tree. I don't care to sign up for that task...
Move platforms one by one out of the choice as they are converted. I
can't think of a reason for a platform to be in both places except we
would have to figure out something for getting DEBUG_LL to work.
Rob
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH 1/6] ARM: move ARCH config definitions into mach dirs
2012-08-30 15:18 ` Rob Herring
@ 2012-08-30 16:45 ` Russell King - ARM Linux
2012-08-30 19:07 ` Rob Herring
0 siblings, 1 reply; 28+ messages in thread
From: Russell King - ARM Linux @ 2012-08-30 16:45 UTC (permalink / raw)
To: linux-arm-kernel
On Thu, Aug 30, 2012 at 10:18:52AM -0500, Rob Herring wrote:
> Then what do you suggest? I can think of a few alternatives.
>
> Leave the current name and make the hidden option a new name like
> ARCH_xx_OPTIONS. This would require renaming ARCH_xxx for each platform
> all over the tree. I don't care to sign up for that task...
Well, requiring everyone to spend hours redoing their configuration also
isn't practical either.
> Move platforms one by one out of the choice as they are converted. I
> can't think of a reason for a platform to be in both places except we
> would have to figure out something for getting DEBUG_LL to work.
No you don't. We've already decided how we're going to deal with
DEBUG_LL, and we are _not_ going to make that multi-platform. You
select one of the output options, and that is it. We've already
been moving in that direction, albiet slowly. Again, anyone who wants
to be part of a multiplatform kernel better use the provided choice
or they will get no DEBUG_LL facility - simples.
That also means we can start to think about moving the mach/debug-macros.S
header elsewhere, remembering that this facility is shared between the
decompressor for debugging and the kernel.
Remember that DEBUG_LL is the low-level *debug* facility. It is not
the early console, even if it ended up being used as such (which is
not something I really care for.) Read the previous discussions on
this subject if you disagree, but I'm not changing my position over
DEBUG_LL because that will just require me to re-invent the facility
yet again (which is what DEBUG_LL is there to stop.) It was _never_
intended to be an early console facility.
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH 1/6] ARM: move ARCH config definitions into mach dirs
2012-08-30 16:45 ` Russell King - ARM Linux
@ 2012-08-30 19:07 ` Rob Herring
2012-08-30 19:28 ` Russell King - ARM Linux
0 siblings, 1 reply; 28+ messages in thread
From: Rob Herring @ 2012-08-30 19:07 UTC (permalink / raw)
To: linux-arm-kernel
On 08/30/2012 11:45 AM, Russell King - ARM Linux wrote:
> On Thu, Aug 30, 2012 at 10:18:52AM -0500, Rob Herring wrote:
>> Then what do you suggest? I can think of a few alternatives.
>>
>> Leave the current name and make the hidden option a new name like
>> ARCH_xx_OPTIONS. This would require renaming ARCH_xxx for each platform
>> all over the tree. I don't care to sign up for that task...
>
> Well, requiring everyone to spend hours redoing their configuration also
> isn't practical either.
>
>> Move platforms one by one out of the choice as they are converted. I
>> can't think of a reason for a platform to be in both places except we
>> would have to figure out something for getting DEBUG_LL to work.
>
> No you don't. We've already decided how we're going to deal with
> DEBUG_LL, and we are _not_ going to make that multi-platform. You
> select one of the output options, and that is it. We've already
> been moving in that direction, albiet slowly. Again, anyone who wants
> to be part of a multiplatform kernel better use the provided choice
> or they will get no DEBUG_LL facility - simples.
Right. The problem is with current patches (and Arnd's version) you
cannot select even 1 DEBUG_LL choice as mach/debug-macro.S is not in the
include path any more when multi-plat is enabled. If we move platforms
out of the choice, then we need some way to enable DEBUG_LL.
>
> That also means we can start to think about moving the mach/debug-macros.S
> header elsewhere, remembering that this facility is shared between the
> decompressor for debugging and the kernel.
I was thinking we could convert the phys and virt addresses to config
values and then the DEBUG_LL choices could just be "Use PL01x uart" and
"Use 8250 uart". This would cut down the number of debug-macro.S files
and choices.
Using a fixed virtual address for all platforms might also help simplify
DEBUG_LL.
But I'd like to find a more simple solution to get past enabling
multi-platform and deal with a more complex change later.
Rob
> Remember that DEBUG_LL is the low-level *debug* facility. It is not
> the early console, even if it ended up being used as such (which is
> not something I really care for.) Read the previous discussions on
> this subject if you disagree, but I'm not changing my position over
> DEBUG_LL because that will just require me to re-invent the facility
> yet again (which is what DEBUG_LL is there to stop.) It was _never_
> intended to be an early console facility.
>
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH 1/6] ARM: move ARCH config definitions into mach dirs
2012-08-30 19:07 ` Rob Herring
@ 2012-08-30 19:28 ` Russell King - ARM Linux
2012-08-31 11:05 ` Domenico Andreoli
2012-09-01 0:48 ` Rob Herring
0 siblings, 2 replies; 28+ messages in thread
From: Russell King - ARM Linux @ 2012-08-30 19:28 UTC (permalink / raw)
To: linux-arm-kernel
On Thu, Aug 30, 2012 at 02:07:18PM -0500, Rob Herring wrote:
> On 08/30/2012 11:45 AM, Russell King - ARM Linux wrote:
> > That also means we can start to think about moving the mach/debug-macros.S
> > header elsewhere, remembering that this facility is shared between the
> > decompressor for debugging and the kernel.
>
> I was thinking we could convert the phys and virt addresses to config
> values and then the DEBUG_LL choices could just be "Use PL01x uart" and
> "Use 8250 uart". This would cut down the number of debug-macro.S files
> and choices.
>
> Using a fixed virtual address for all platforms might also help simplify
> DEBUG_LL.
No it won't, that comment says you totally don't understand the feature
you're playing with to me.
It's not only about virtual addresses, it's about physical addresses too,
and we can't dictate that all hardware exposes a UART at any particular
physical address.
Remember that the code provided by DEBUG_LL is used in the early kernel
bring up to set up the phys:virt mapping for the UART, it's also used by
the early kernel code to access the UART at the physical address, and by
the decompressor to also access the UART at the physical address.
So playing around with fixing it at a specific virtual address is total
poppycock, and is completely worthless.
I think what we need is arch/arm/include/debug, move the platform specific
debug-macros headers into there, named using platform specific file names.
Then we have the config system define a string-based config:
config DEBUG_LL_INCLUDE
string
default "<debug/icedcc.S>" if DEBUG_ICEDCC
default "<debug/msm.S>" if DEBUG_MSM_UART1 || DEBUG_MSM_UART2 || DEBUG_MSM_UART3
... etc ...
default "mach/debug-macros.S"
And then we can have the various assembly codes do:
#include CONFIG_DEBUG_LL_INCLUDE
Not only does this give a migration path, but it also gives folk a reason
to move to the 'new way' if they want to be part of a multi-platform
kernel - and it's a trivial thing to do. Just move the include file,
add an entry to the DEBUG_LL_INCLUDE entry and the "Kernel low-level
debugging port" choice statement, and job done for both non-multi-platform
and multi-platform kernels.
What's even nicer about this approach is it doesn't require everyone to
change simultaneously - it can be done progressively as required.
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH 1/6] ARM: move ARCH config definitions into mach dirs
2012-08-30 19:28 ` Russell King - ARM Linux
@ 2012-08-31 11:05 ` Domenico Andreoli
2012-08-31 11:11 ` Russell King - ARM Linux
2012-09-01 0:48 ` Rob Herring
1 sibling, 1 reply; 28+ messages in thread
From: Domenico Andreoli @ 2012-08-31 11:05 UTC (permalink / raw)
To: linux-arm-kernel
On Thu, Aug 30, 2012 at 08:28:31PM +0100, Russell King - ARM Linux wrote:
>
> I think what we need is arch/arm/include/debug, move the platform specific
> debug-macros headers into there, named using platform specific file names.
> Then we have the config system define a string-based config:
>
> config DEBUG_LL_INCLUDE
> string
> default "<debug/icedcc.S>" if DEBUG_ICEDCC
> default "<debug/msm.S>" if DEBUG_MSM_UART1 || DEBUG_MSM_UART2 || DEBUG_MSM_UART3
> ... etc ...
> default "mach/debug-macros.S"
>
> And then we can have the various assembly codes do:
>
> #include CONFIG_DEBUG_LL_INCLUDE
>
> Not only does this give a migration path, but it also gives folk a reason
> to move to the 'new way' if they want to be part of a multi-platform
> kernel - and it's a trivial thing to do. Just move the include file,
> add an entry to the DEBUG_LL_INCLUDE entry and the "Kernel low-level
> debugging port" choice statement, and job done for both non-multi-platform
> and multi-platform kernels.
>
> What's even nicer about this approach is it doesn't require everyone to
> change simultaneously - it can be done progressively as required.
This means that:
1) DEBUG_LL console is specified statically (it's a debug option so you
are supposed to be already building the kernel, right?)
2) It's not portable across incompatible SoCs so it must really stay
disabled on production multi-platform kernels.
Regards,
Domenico
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH 1/6] ARM: move ARCH config definitions into mach dirs
2012-08-31 11:05 ` Domenico Andreoli
@ 2012-08-31 11:11 ` Russell King - ARM Linux
2012-08-31 11:46 ` Domenico Andreoli
0 siblings, 1 reply; 28+ messages in thread
From: Russell King - ARM Linux @ 2012-08-31 11:11 UTC (permalink / raw)
To: linux-arm-kernel
On Fri, Aug 31, 2012 at 01:05:12PM +0200, Domenico Andreoli wrote:
> On Thu, Aug 30, 2012 at 08:28:31PM +0100, Russell King - ARM Linux wrote:
> >
> > I think what we need is arch/arm/include/debug, move the platform specific
> > debug-macros headers into there, named using platform specific file names.
> > Then we have the config system define a string-based config:
> >
> > config DEBUG_LL_INCLUDE
> > string
> > default "<debug/icedcc.S>" if DEBUG_ICEDCC
> > default "<debug/msm.S>" if DEBUG_MSM_UART1 || DEBUG_MSM_UART2 || DEBUG_MSM_UART3
> > ... etc ...
> > default "mach/debug-macros.S"
> >
> > And then we can have the various assembly codes do:
> >
> > #include CONFIG_DEBUG_LL_INCLUDE
> >
> > Not only does this give a migration path, but it also gives folk a reason
> > to move to the 'new way' if they want to be part of a multi-platform
> > kernel - and it's a trivial thing to do. Just move the include file,
> > add an entry to the DEBUG_LL_INCLUDE entry and the "Kernel low-level
> > debugging port" choice statement, and job done for both non-multi-platform
> > and multi-platform kernels.
> >
> > What's even nicer about this approach is it doesn't require everyone to
> > change simultaneously - it can be done progressively as required.
>
> This means that:
I'm not about to re-open the debate again. Please go back and read the
previous discussions during the last year about this where eventually
agreement on this way forward was reached. Thanks.
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH 1/6] ARM: move ARCH config definitions into mach dirs
2012-08-31 11:11 ` Russell King - ARM Linux
@ 2012-08-31 11:46 ` Domenico Andreoli
0 siblings, 0 replies; 28+ messages in thread
From: Domenico Andreoli @ 2012-08-31 11:46 UTC (permalink / raw)
To: linux-arm-kernel
On Fri, Aug 31, 2012 at 12:11:38PM +0100, Russell King - ARM Linux wrote:
> On Fri, Aug 31, 2012 at 01:05:12PM +0200, Domenico Andreoli wrote:
> > On Thu, Aug 30, 2012 at 08:28:31PM +0100, Russell King - ARM Linux wrote:
> > >
> > > I think what we need is arch/arm/include/debug, move the platform specific
> > > debug-macros headers into there, named using platform specific file names.
> > > Then we have the config system define a string-based config:
> > >
> > > config DEBUG_LL_INCLUDE
> > > string
> > > default "<debug/icedcc.S>" if DEBUG_ICEDCC
> > > default "<debug/msm.S>" if DEBUG_MSM_UART1 || DEBUG_MSM_UART2 || DEBUG_MSM_UART3
> > > ... etc ...
> > > default "mach/debug-macros.S"
> > >
> > > And then we can have the various assembly codes do:
> > >
> > > #include CONFIG_DEBUG_LL_INCLUDE
> > >
> > > Not only does this give a migration path, but it also gives folk a reason
> > > to move to the 'new way' if they want to be part of a multi-platform
> > > kernel - and it's a trivial thing to do. Just move the include file,
> > > add an entry to the DEBUG_LL_INCLUDE entry and the "Kernel low-level
> > > debugging port" choice statement, and job done for both non-multi-platform
> > > and multi-platform kernels.
> > >
> > > What's even nicer about this approach is it doesn't require everyone to
> > > change simultaneously - it can be done progressively as required.
> >
> > This means that:
>
> I'm not about to re-open the debate again. Please go back and read the
> previous discussions during the last year about this where eventually
> agreement on this way forward was reached. Thanks.
I don't want to reopen anything, it's only that I've clearly missed the
discussion (*) as also my patches in the area may show (**). So I really
wanted to understand if, for once, I've understood the thing correctly.
cheers,
Domenico
(*) I would have appreciated if you had pointed it to me in the only
comment you made on those patches but that's ok, it has been fun anyway
(**) http://lists.infradead.org/pipermail/linux-arm-kernel/2012-July/109457.html
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH v2] ARM: initial multiplatform support
2012-08-29 22:49 [PATCH 0/6] Initial multi-platform support Rob Herring
` (5 preceding siblings ...)
2012-08-29 22:50 ` [PATCH 6/6] ARM: update defconfigs Rob Herring
@ 2012-08-31 18:12 ` Rob Herring
2012-09-03 16:34 ` Arnd Bergmann
6 siblings, 1 reply; 28+ messages in thread
From: Rob Herring @ 2012-08-31 18:12 UTC (permalink / raw)
To: linux-arm-kernel
From: Rob Herring <rob.herring@calxeda.com>
This lets us build a multiplatform kernel for experimental purposes.
However, it will not be useful for any real work, because it relies
on a number of useful things to be disabled for now:
* SMP support must be turned off because of conflicting symbols.
Marc Zyngier has proposed a solution by adding a new SOC
operations structure to hold indirect function pointers
for these, but that work is currently stalled
* We turn on SPARSE_IRQ unconditionally, which is not supported
on most platforms. Each of them is currently in a different
state, but most are being worked on.
* Only platforms using common clock framework or no clocks at all can
be converted to multi-platform.
* THUMB2_KERNEL does not work with allyesconfig because the
kernel gets too big
[Rob Herring]: Rebased to not be dependent on the mass mach header rename.
As a result, omap2plus, imx, mxs and ux500 are not converted. Highbank,
picoxcell, mvebu, socfpga, and vexpress are converted.
v2: This version avoids the kconfig symbol name changes and simply moves
multi-platform enabled platform kconfig option out of the choice option
and into the platform's mach directory. A separate series fixes DEBUG_LL
for multi-platform.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
---
arch/arm/Kconfig | 145 +++++++++++++++--------------------
arch/arm/Makefile | 155 ++++++++++++++++++++------------------
arch/arm/boot/compressed/misc.c | 6 ++
arch/arm/include/asm/timex.h | 4 +
arch/arm/mach-highbank/Kconfig | 15 ++++
arch/arm/mach-mvebu/Kconfig | 10 +++
arch/arm/mach-mvebu/Makefile | 2 +
arch/arm/mach-picoxcell/Kconfig | 14 ++++
arch/arm/mach-socfpga/Kconfig | 16 ++++
arch/arm/mach-vexpress/Kconfig | 16 ++++
arch/arm/mach-vexpress/Makefile | 2 +
arch/arm/plat-versatile/Makefile | 2 +
12 files changed, 226 insertions(+), 161 deletions(-)
create mode 100644 arch/arm/mach-highbank/Kconfig
create mode 100644 arch/arm/mach-picoxcell/Kconfig
create mode 100644 arch/arm/mach-socfpga/Kconfig
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 3557f12..4c9f2fc 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -254,27 +254,9 @@ config MMU
#
choice
prompt "ARM system type"
+ depends on !ARCH_MULTIPLATFORM
default ARCH_VERSATILE
-config ARCH_SOCFPGA
- bool "Altera SOCFPGA family"
- select ARCH_WANT_OPTIONAL_GPIOLIB
- select ARM_AMBA
- select ARM_GIC
- select CACHE_L2X0
- select CLKDEV_LOOKUP
- select COMMON_CLK
- select CPU_V7
- select DW_APB_TIMER
- select DW_APB_TIMER_OF
- select GENERIC_CLOCKEVENTS
- select GPIO_PL061 if GPIOLIB
- select HAVE_ARM_SCU
- select SPARSE_IRQ
- select USE_OF
- help
- This enables support for Altera SOCFPGA Cyclone V platform
-
config ARCH_INTEGRATOR
bool "ARM Ltd. Integrator family"
select ARM_AMBA
@@ -328,24 +310,6 @@ config ARCH_VERSATILE
help
This enables support for ARM Ltd Versatile board.
-config ARCH_VEXPRESS
- bool "ARM Ltd. Versatile Express family"
- select ARCH_WANT_OPTIONAL_GPIOLIB
- select ARM_AMBA
- select ARM_TIMER_SP804
- select CLKDEV_LOOKUP
- select COMMON_CLK
- select GENERIC_CLOCKEVENTS
- select HAVE_CLK
- select HAVE_PATA_PLATFORM
- select ICST
- select NO_IOPORT
- select PLAT_VERSATILE
- select PLAT_VERSATILE_CLCD
- select REGULATOR_FIXED_VOLTAGE if REGULATOR
- help
- This enables support for the ARM Ltd Versatile Express boards.
-
config ARCH_AT91
bool "Atmel AT91"
select ARCH_REQUIRE_GPIOLIB
@@ -369,24 +333,6 @@ config ARCH_BCMRING
help
Support for Broadcom's BCMRing platform.
-config ARCH_HIGHBANK
- bool "Calxeda Highbank-based"
- select ARCH_WANT_OPTIONAL_GPIOLIB
- select ARM_AMBA
- select ARM_GIC
- select ARM_TIMER_SP804
- select CACHE_L2X0
- select CLKDEV_LOOKUP
- select COMMON_CLK
- select CPU_V7
- select GENERIC_CLOCKEVENTS
- select HAVE_ARM_SCU
- select HAVE_SMP
- select SPARSE_IRQ
- select USE_OF
- help
- Support for the Calxeda Highbank SoC based boards.
-
config ARCH_CLPS711X
bool "Cirrus Logic CLPS711x/EP721x/EP731x-based"
select CPU_ARM720T
@@ -567,18 +513,6 @@ config ARCH_IXP4XX
help
Support for Intel's IXP4XX (XScale) family of processors.
-config ARCH_MVEBU
- bool "Marvell SOCs with Device Tree support"
- select GENERIC_CLOCKEVENTS
- select MULTI_IRQ_HANDLER
- select SPARSE_IRQ
- select CLKSRC_MMIO
- select GENERIC_IRQ_CHIP
- select IRQ_DOMAIN
- select COMMON_CLK
- help
- Support for the Marvell SoC Family with device tree support
-
config ARCH_DOVE
bool "Marvell Dove"
select CPU_V7
@@ -699,25 +633,6 @@ config ARCH_TEGRA
This enables support for NVIDIA Tegra based systems (Tegra APX,
Tegra 6xx and Tegra 2 series).
-config ARCH_PICOXCELL
- bool "Picochip picoXcell"
- select ARCH_REQUIRE_GPIOLIB
- select ARM_PATCH_PHYS_VIRT
- select ARM_VIC
- select CPU_V6K
- select DW_APB_TIMER
- select DW_APB_TIMER_OF
- select GENERIC_CLOCKEVENTS
- select GENERIC_GPIO
- select HAVE_TCM
- select NO_IOPORT
- select SPARSE_IRQ
- select USE_OF
- help
- This enables support for systems based on the Picochip picoXcell
- family of Femtocell devices. The picoxcell support requires device tree
- for all boards.
-
config ARCH_PNX4008
bool "Philips Nexperia PNX4008 Mobile"
select CPU_ARM926T
@@ -1039,6 +954,58 @@ config ARCH_ZYNQ
Support for Xilinx Zynq ARM Cortex A9 Platform
endchoice
+menuconfig ARCH_MULTIPLATFORM
+ bool "Multiple platform selection"
+ select USE_OF
+ select COMMON_CLK
+ select SPARSE_IRQ
+ select MULTI_IRQ_HANDLER
+ select AUTO_ZRELADDR
+ depends on MMU
+
+if ARCH_MULTIPLATFORM
+
+comment "CPU Core family selection"
+
+config ARCH_MULTI_V4
+ bool "ARMv4 based platforms (FA526, StrongARM)"
+ select ARCH_MULTI_V4_V5
+ depends on !ARCH_MULTI_V6_V7
+
+config ARCH_MULTI_V4T
+ bool "ARMv4T based platforms (ARM720T, ARM920T, ...)"
+ select ARCH_MULTI_V4_V5
+ depends on !ARCH_MULTI_V6_V7
+
+config ARCH_MULTI_V5
+ bool "ARMv5 based platforms (ARM926T, XSCALE, PJ1, ...)"
+ select ARCH_MULTI_V4_V5
+ depends on !ARCH_MULTI_V6_V7
+
+config ARCH_MULTI_V4_V5
+ bool
+
+config ARCH_MULTI_V6
+ bool "ARMv6 based platforms (ARM11, Scorpion, ...)"
+ select CPU_V6
+ select ARCH_MULTI_V6_V7
+
+config ARCH_MULTI_V7
+ bool "ARMv7 based platforms (Cortex-A, PJ4, Krait)"
+ select CPU_V7
+ select ARCH_VEXPRESS
+ default y
+ select ARCH_MULTI_V6_V7
+
+config ARCH_MULTI_V6_V7
+ bool
+
+config ARCH_MULTI_CPU_AUTO
+ def_bool !(ARCH_MULTI_V4 || ARCH_MULTI_V4T || ARCH_MULTI_V6_V7)
+ select ARCH_MULTI_V5
+
+endif
+
#
# This is sorted alphabetically by mach-* pathname. However, plat-*
# Kconfigs may be included either alphabetically (according to the
@@ -1066,6 +1033,8 @@ source "arch/arm/mach-gemini/Kconfig"
source "arch/arm/mach-h720x/Kconfig"
+source "arch/arm/mach-highbank/Kconfig"
+
source "arch/arm/mach-integrator/Kconfig"
source "arch/arm/mach-iop32x/Kconfig"
@@ -1101,6 +1070,8 @@ source "arch/arm/mach-omap2/Kconfig"
source "arch/arm/mach-orion5x/Kconfig"
+source "arch/arm/mach-picoxcell/Kconfig"
+
source "arch/arm/mach-pxa/Kconfig"
source "arch/arm/plat-pxa/Kconfig"
@@ -1113,6 +1084,8 @@ source "arch/arm/mach-sa1100/Kconfig"
source "arch/arm/plat-samsung/Kconfig"
source "arch/arm/plat-s3c24xx/Kconfig"
+source "arch/arm/mach-socfpga/Kconfig"
+
source "arch/arm/plat-spear/Kconfig"
source "arch/arm/mach-s3c24xx/Kconfig"
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 30eae87..fe6e05e 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -135,84 +135,84 @@ textofs-$(CONFIG_ARCH_MSM8960) := 0x00208000
# Machine directory name. This list is sorted alphanumerically
# by CONFIG_* macro name.
-machine-$(CONFIG_ARCH_AT91) := at91
-machine-$(CONFIG_ARCH_BCMRING) := bcmring
-machine-$(CONFIG_ARCH_CLPS711X) := clps711x
-machine-$(CONFIG_ARCH_CNS3XXX) := cns3xxx
-machine-$(CONFIG_ARCH_DAVINCI) := davinci
-machine-$(CONFIG_ARCH_DOVE) := dove
-machine-$(CONFIG_ARCH_EBSA110) := ebsa110
-machine-$(CONFIG_ARCH_EP93XX) := ep93xx
-machine-$(CONFIG_ARCH_GEMINI) := gemini
-machine-$(CONFIG_ARCH_H720X) := h720x
-machine-$(CONFIG_ARCH_HIGHBANK) := highbank
-machine-$(CONFIG_ARCH_INTEGRATOR) := integrator
-machine-$(CONFIG_ARCH_IOP13XX) := iop13xx
-machine-$(CONFIG_ARCH_IOP32X) := iop32x
-machine-$(CONFIG_ARCH_IOP33X) := iop33x
-machine-$(CONFIG_ARCH_IXP4XX) := ixp4xx
-machine-$(CONFIG_ARCH_KIRKWOOD) := kirkwood
-machine-$(CONFIG_ARCH_KS8695) := ks8695
-machine-$(CONFIG_ARCH_LPC32XX) := lpc32xx
-machine-$(CONFIG_ARCH_MMP) := mmp
-machine-$(CONFIG_ARCH_MSM) := msm
-machine-$(CONFIG_ARCH_MV78XX0) := mv78xx0
-machine-$(CONFIG_ARCH_IMX_V4_V5) := imx
-machine-$(CONFIG_ARCH_IMX_V6_V7) := imx
-machine-$(CONFIG_ARCH_MXS) := mxs
-machine-$(CONFIG_ARCH_MVEBU) := mvebu
-machine-$(CONFIG_ARCH_NETX) := netx
-machine-$(CONFIG_ARCH_NOMADIK) := nomadik
-machine-$(CONFIG_ARCH_OMAP1) := omap1
-machine-$(CONFIG_ARCH_OMAP2PLUS) := omap2
-machine-$(CONFIG_ARCH_ORION5X) := orion5x
-machine-$(CONFIG_ARCH_PICOXCELL) := picoxcell
-machine-$(CONFIG_ARCH_PNX4008) := pnx4008
-machine-$(CONFIG_ARCH_PRIMA2) := prima2
-machine-$(CONFIG_ARCH_PXA) := pxa
-machine-$(CONFIG_ARCH_REALVIEW) := realview
-machine-$(CONFIG_ARCH_RPC) := rpc
-machine-$(CONFIG_ARCH_S3C24XX) := s3c24xx s3c2412 s3c2440
-machine-$(CONFIG_ARCH_S3C64XX) := s3c64xx
-machine-$(CONFIG_ARCH_S5P64X0) := s5p64x0
-machine-$(CONFIG_ARCH_S5PC100) := s5pc100
-machine-$(CONFIG_ARCH_S5PV210) := s5pv210
-machine-$(CONFIG_ARCH_EXYNOS4) := exynos
-machine-$(CONFIG_ARCH_EXYNOS5) := exynos
-machine-$(CONFIG_ARCH_SA1100) := sa1100
-machine-$(CONFIG_ARCH_SHARK) := shark
-machine-$(CONFIG_ARCH_SHMOBILE) := shmobile
-machine-$(CONFIG_ARCH_TEGRA) := tegra
-machine-$(CONFIG_ARCH_U300) := u300
-machine-$(CONFIG_ARCH_U8500) := ux500
-machine-$(CONFIG_ARCH_VERSATILE) := versatile
-machine-$(CONFIG_ARCH_VEXPRESS) := vexpress
-machine-$(CONFIG_ARCH_VT8500) := vt8500
-machine-$(CONFIG_ARCH_W90X900) := w90x900
-machine-$(CONFIG_FOOTBRIDGE) := footbridge
-machine-$(CONFIG_ARCH_SOCFPGA) := socfpga
-machine-$(CONFIG_MACH_SPEAR1310) := spear13xx
-machine-$(CONFIG_MACH_SPEAR1340) := spear13xx
-machine-$(CONFIG_MACH_SPEAR300) := spear3xx
-machine-$(CONFIG_MACH_SPEAR310) := spear3xx
-machine-$(CONFIG_MACH_SPEAR320) := spear3xx
-machine-$(CONFIG_MACH_SPEAR600) := spear6xx
-machine-$(CONFIG_ARCH_ZYNQ) := zynq
+machine-$(CONFIG_ARCH_AT91) += at91
+machine-$(CONFIG_ARCH_BCMRING) += bcmring
+machine-$(CONFIG_ARCH_CLPS711X) += clps711x
+machine-$(CONFIG_ARCH_CNS3XXX) += cns3xxx
+machine-$(CONFIG_ARCH_DAVINCI) += davinci
+machine-$(CONFIG_ARCH_DOVE) += dove
+machine-$(CONFIG_ARCH_EBSA110) += ebsa110
+machine-$(CONFIG_ARCH_EP93XX) += ep93xx
+machine-$(CONFIG_ARCH_GEMINI) += gemini
+machine-$(CONFIG_ARCH_H720X) += h720x
+machine-$(CONFIG_ARCH_HIGHBANK) += highbank
+machine-$(CONFIG_ARCH_INTEGRATOR) += integrator
+machine-$(CONFIG_ARCH_IOP13XX) += iop13xx
+machine-$(CONFIG_ARCH_IOP32X) += iop32x
+machine-$(CONFIG_ARCH_IOP33X) += iop33x
+machine-$(CONFIG_ARCH_IXP4XX) += ixp4xx
+machine-$(CONFIG_ARCH_KIRKWOOD) += kirkwood
+machine-$(CONFIG_ARCH_KS8695) += ks8695
+machine-$(CONFIG_ARCH_LPC32XX) += lpc32xx
+machine-$(CONFIG_ARCH_MMP) += mmp
+machine-$(CONFIG_ARCH_MSM) += msm
+machine-$(CONFIG_ARCH_MV78XX0) += mv78xx0
+machine-$(CONFIG_ARCH_IMX_V4_V5) += imx
+machine-$(CONFIG_ARCH_IMX_V6_V7) += imx
+machine-$(CONFIG_ARCH_MXS) += mxs
+machine-$(CONFIG_ARCH_MVEBU) += mvebu
+machine-$(CONFIG_ARCH_NETX) += netx
+machine-$(CONFIG_ARCH_NOMADIK) += nomadik
+machine-$(CONFIG_ARCH_OMAP1) += omap1
+machine-$(CONFIG_ARCH_OMAP2PLUS) += omap2
+machine-$(CONFIG_ARCH_ORION5X) += orion5x
+machine-$(CONFIG_ARCH_PICOXCELL) += picoxcell
+machine-$(CONFIG_ARCH_PNX4008) += pnx4008
+machine-$(CONFIG_ARCH_PRIMA2) += prima2
+machine-$(CONFIG_ARCH_PXA) += pxa
+machine-$(CONFIG_ARCH_REALVIEW) += realview
+machine-$(CONFIG_ARCH_RPC) += rpc
+machine-$(CONFIG_ARCH_S3C24XX) += s3c24xx s3c2412 s3c2440
+machine-$(CONFIG_ARCH_S3C64XX) += s3c64xx
+machine-$(CONFIG_ARCH_S5P64X0) += s5p64x0
+machine-$(CONFIG_ARCH_S5PC100) += s5pc100
+machine-$(CONFIG_ARCH_S5PV210) += s5pv210
+machine-$(CONFIG_ARCH_EXYNOS4) += exynos
+machine-$(CONFIG_ARCH_EXYNOS5) += exynos
+machine-$(CONFIG_ARCH_SA1100) += sa1100
+machine-$(CONFIG_ARCH_SHARK) += shark
+machine-$(CONFIG_ARCH_SHMOBILE) += shmobile
+machine-$(CONFIG_ARCH_TEGRA) += tegra
+machine-$(CONFIG_ARCH_U300) += u300
+machine-$(CONFIG_ARCH_U8500) += ux500
+machine-$(CONFIG_ARCH_VERSATILE) += versatile
+machine-$(CONFIG_ARCH_VEXPRESS) += vexpress
+machine-$(CONFIG_ARCH_VT8500) += vt8500
+machine-$(CONFIG_ARCH_W90X900) += w90x900
+machine-$(CONFIG_FOOTBRIDGE) += footbridge
+machine-$(CONFIG_ARCH_SOCFPGA) += socfpga
+machine-$(CONFIG_MACH_SPEAR1310) += spear13xx
+machine-$(CONFIG_MACH_SPEAR1340) += spear13xx
+machine-$(CONFIG_MACH_SPEAR300) += spear3xx
+machine-$(CONFIG_MACH_SPEAR310) += spear3xx
+machine-$(CONFIG_MACH_SPEAR320) += spear3xx
+machine-$(CONFIG_MACH_SPEAR600) += spear6xx
+machine-$(CONFIG_ARCH_ZYNQ) += zynq
# Platform directory name. This list is sorted alphanumerically
# by CONFIG_* macro name.
-plat-$(CONFIG_ARCH_MXC) := mxc
-plat-$(CONFIG_ARCH_OMAP) := omap
-plat-$(CONFIG_ARCH_S3C64XX) := samsung
-plat-$(CONFIG_ARCH_ZYNQ) := versatile
-plat-$(CONFIG_PLAT_IOP) := iop
-plat-$(CONFIG_PLAT_NOMADIK) := nomadik
-plat-$(CONFIG_PLAT_ORION) := orion
-plat-$(CONFIG_PLAT_PXA) := pxa
-plat-$(CONFIG_PLAT_S3C24XX) := s3c24xx samsung
-plat-$(CONFIG_PLAT_S5P) := samsung
-plat-$(CONFIG_PLAT_SPEAR) := spear
-plat-$(CONFIG_PLAT_VERSATILE) := versatile
+plat-$(CONFIG_ARCH_MXC) += mxc
+plat-$(CONFIG_ARCH_OMAP) += omap
+plat-$(CONFIG_ARCH_S3C64XX) += samsung
+plat-$(CONFIG_ARCH_ZYNQ) += versatile
+plat-$(CONFIG_PLAT_IOP) += iop
+plat-$(CONFIG_PLAT_NOMADIK) += nomadik
+plat-$(CONFIG_PLAT_ORION) += orion
+plat-$(CONFIG_PLAT_PXA) += pxa
+plat-$(CONFIG_PLAT_S3C24XX) += s3c24xx samsung
+plat-$(CONFIG_PLAT_S5P) += samsung
+plat-$(CONFIG_PLAT_SPEAR) += spear
+plat-$(CONFIG_PLAT_VERSATILE) += versatile
ifeq ($(CONFIG_ARCH_EBSA110),y)
# This is what happens if you forget the IOCS16 line.
@@ -230,15 +230,20 @@ MACHINE := arch/arm/mach-$(word 1,$(machine-y))/
else
MACHINE :=
endif
+ifeq ($(CONFIG_ARCH_MULTIPLATFORM),y)
+MACHINE :=
+endif
machdirs := $(patsubst %,arch/arm/mach-%/,$(machine-y))
platdirs := $(patsubst %,arch/arm/plat-%/,$(plat-y))
+ifneq ($(CONFIG_ARCH_MULTIPLATFORM),y)
ifeq ($(KBUILD_SRC),)
KBUILD_CPPFLAGS += $(patsubst %,-I%include,$(machdirs) $(platdirs))
else
KBUILD_CPPFLAGS += $(patsubst %,-I$(srctree)/%include,$(machdirs) $(platdirs))
endif
+endif
export TEXT_OFFSET GZFLAGS MMUEXT
diff --git a/arch/arm/boot/compressed/misc.c b/arch/arm/boot/compressed/misc.c
index 8e2a8fc..df89983 100644
--- a/arch/arm/boot/compressed/misc.c
+++ b/arch/arm/boot/compressed/misc.c
@@ -25,7 +25,13 @@ unsigned int __machine_arch_type;
static void putstr(const char *ptr);
extern void error(char *x);
+#ifdef CONFIG_ARCH_MULTIPLATFORM
+static inline void putc(int c) {}
+static inline void flush(void) {}
+static inline void arch_decomp_setup(void) {}
+#else
#include <mach/uncompress.h>
+#endif
#ifdef CONFIG_DEBUG_ICEDCC
diff --git a/arch/arm/include/asm/timex.h b/arch/arm/include/asm/timex.h
index ce11944..963342a 100644
--- a/arch/arm/include/asm/timex.h
+++ b/arch/arm/include/asm/timex.h
@@ -13,7 +13,11 @@
#define _ASMARM_TIMEX_H
#include <asm/arch_timer.h>
+#ifdef CONFIG_ARCH_MULTIPLATFORM
+#define CLOCK_TICK_RATE 1000000
+#else
#include <mach/timex.h>
+#endif
typedef unsigned long cycles_t;
diff --git a/arch/arm/mach-highbank/Kconfig b/arch/arm/mach-highbank/Kconfig
new file mode 100644
index 0000000..0e1d0a4
--- /dev/null
+++ b/arch/arm/mach-highbank/Kconfig
@@ -0,0 +1,15 @@
+config ARCH_HIGHBANK
+ bool "Calxeda ECX-1000 (Highbank)" if ARCH_MULTI_V7
+ select ARCH_WANT_OPTIONAL_GPIOLIB
+ select ARM_AMBA
+ select ARM_GIC
+ select ARM_TIMER_SP804
+ select CACHE_L2X0
+ select CLKDEV_LOOKUP
+ select COMMON_CLK
+ select CPU_V7
+ select GENERIC_CLOCKEVENTS
+ select HAVE_ARM_SCU
+ select HAVE_SMP
+ select SPARSE_IRQ
+ select USE_OF
diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig
index caa2c5e..7b27035 100644
--- a/arch/arm/mach-mvebu/Kconfig
+++ b/arch/arm/mach-mvebu/Kconfig
@@ -1,3 +1,13 @@
+config ARCH_MVEBU
+ bool "Marvell SOCs with Device Tree support" if ARCH_MULTI_V7
+ select CLKSRC_MMIO
+ select COMMON_CLK
+ select GENERIC_CLOCKEVENTS
+ select GENERIC_IRQ_CHIP
+ select IRQ_DOMAIN
+ select MULTI_IRQ_HANDLER
+ select SPARSE_IRQ
+
if ARCH_MVEBU
menu "Marvell SOC with device tree"
diff --git a/arch/arm/mach-mvebu/Makefile b/arch/arm/mach-mvebu/Makefile
index e61d2b8..6ea8998 100644
--- a/arch/arm/mach-mvebu/Makefile
+++ b/arch/arm/mach-mvebu/Makefile
@@ -1,2 +1,4 @@
+ccflags-$(ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include
+
obj-y += system-controller.o
obj-$(CONFIG_MACH_ARMADA_370_XP) += armada-370-xp.o irq-armada-370-xp.o
diff --git a/arch/arm/mach-picoxcell/Kconfig b/arch/arm/mach-picoxcell/Kconfig
new file mode 100644
index 0000000..868796f
--- /dev/null
+++ b/arch/arm/mach-picoxcell/Kconfig
@@ -0,0 +1,14 @@
+config ARCH_PICOXCELL
+ bool "Picochip PicoXcell" if ARCH_MULTI_V6
+ select ARCH_REQUIRE_GPIOLIB
+ select ARM_PATCH_PHYS_VIRT
+ select ARM_VIC
+ select CPU_V6K
+ select DW_APB_TIMER
+ select DW_APB_TIMER_OF
+ select GENERIC_CLOCKEVENTS
+ select GENERIC_GPIO
+ select HAVE_TCM
+ select NO_IOPORT
+ select SPARSE_IRQ
+ select USE_OF
diff --git a/arch/arm/mach-socfpga/Kconfig b/arch/arm/mach-socfpga/Kconfig
new file mode 100644
index 0000000..803a328
--- /dev/null
+++ b/arch/arm/mach-socfpga/Kconfig
@@ -0,0 +1,16 @@
+config ARCH_SOCFPGA
+ bool "Altera SOCFPGA family" if ARCH_MULTI_V7
+ select ARCH_WANT_OPTIONAL_GPIOLIB
+ select ARM_AMBA
+ select ARM_GIC
+ select CACHE_L2X0
+ select CLKDEV_LOOKUP
+ select COMMON_CLK
+ select CPU_V7
+ select DW_APB_TIMER
+ select DW_APB_TIMER_OF
+ select GENERIC_CLOCKEVENTS
+ select GPIO_PL061 if GPIOLIB
+ select HAVE_ARM_SCU
+ select SPARSE_IRQ
+ select USE_OF
diff --git a/arch/arm/mach-vexpress/Kconfig b/arch/arm/mach-vexpress/Kconfig
index fc3730f..498ea15 100644
--- a/arch/arm/mach-vexpress/Kconfig
+++ b/arch/arm/mach-vexpress/Kconfig
@@ -1,3 +1,19 @@
+config ARCH_VEXPRESS
+ bool "ARM Ltd. Versatile Express family" if ARCH_MULTI_V7
+ select ARCH_WANT_OPTIONAL_GPIOLIB
+ select ARM_AMBA
+ select ARM_TIMER_SP804
+ select CLKDEV_LOOKUP
+ select COMMON_CLK
+ select GENERIC_CLOCKEVENTS
+ select HAVE_CLK
+ select HAVE_PATA_PLATFORM
+ select ICST
+ select NO_IOPORT
+ select PLAT_VERSATILE
+ select PLAT_VERSATILE_CLCD
+ select REGULATOR_FIXED_VOLTAGE if REGULATOR
+
menu "Versatile Express platform type"
depends on ARCH_VEXPRESS
diff --git a/arch/arm/mach-vexpress/Makefile b/arch/arm/mach-vexpress/Makefile
index 90551b9..42703e8 100644
--- a/arch/arm/mach-vexpress/Makefile
+++ b/arch/arm/mach-vexpress/Makefile
@@ -1,6 +1,8 @@
#
# Makefile for the linux kernel.
#
+ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include \
+ -I$(srctree)/arch/arm/plat-versatile/include
obj-y := v2m.o
obj-$(CONFIG_ARCH_VEXPRESS_CA9X4) += ct-ca9x4.o
diff --git a/arch/arm/plat-versatile/Makefile b/arch/arm/plat-versatile/Makefile
index 272769a8..74cfd94 100644
--- a/arch/arm/plat-versatile/Makefile
+++ b/arch/arm/plat-versatile/Makefile
@@ -1,3 +1,5 @@
+ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include
+
obj-$(CONFIG_PLAT_VERSATILE_CLOCK) += clock.o
obj-$(CONFIG_PLAT_VERSATILE_CLCD) += clcd.o
obj-$(CONFIG_PLAT_VERSATILE_FPGA_IRQ) += fpga-irq.o
--
1.7.9.5
^ permalink raw reply related [flat|nested] 28+ messages in thread
* [PATCH 1/6] ARM: move ARCH config definitions into mach dirs
2012-08-30 19:28 ` Russell King - ARM Linux
2012-08-31 11:05 ` Domenico Andreoli
@ 2012-09-01 0:48 ` Rob Herring
2012-09-02 8:49 ` Russell King - ARM Linux
1 sibling, 1 reply; 28+ messages in thread
From: Rob Herring @ 2012-09-01 0:48 UTC (permalink / raw)
To: linux-arm-kernel
On 08/30/2012 02:28 PM, Russell King - ARM Linux wrote:
> On Thu, Aug 30, 2012 at 02:07:18PM -0500, Rob Herring wrote:
>> On 08/30/2012 11:45 AM, Russell King - ARM Linux wrote:
>>> That also means we can start to think about moving the mach/debug-macros.S
>>> header elsewhere, remembering that this facility is shared between the
>>> decompressor for debugging and the kernel.
>>
>> I was thinking we could convert the phys and virt addresses to config
>> values and then the DEBUG_LL choices could just be "Use PL01x uart" and
>> "Use 8250 uart". This would cut down the number of debug-macro.S files
>> and choices.
>>
>> Using a fixed virtual address for all platforms might also help simplify
>> DEBUG_LL.
>
> No it won't, that comment says you totally don't understand the feature
> you're playing with to me.
Or you don't understand what I meant.
> It's not only about virtual addresses, it's about physical addresses too,
> and we can't dictate that all hardware exposes a UART at any particular
> physical address.
We have 3 things to track for each platform: the type of uart, the
uart's phys address, and the virtual address we map it to. Obviously, we
can't get rid of the first 2, but we can align the virtual address to
the same 1MB section for DEBUG_LL on all platforms. Then we only have 2
differences to deal with. If we make the physical address a config
value, then we could unify all the addruart implementations (except
perhaps for the crazy stuff omap does). So something like this:
.macro addruart,rp,rv,tmp
mov \rv, #0xfe000000
orr \rv, \rv, #0x00d00000
ldr \rp, =CONFIG_DEBUG_LL_UART_ADDR
lsl \tmp, \rp, #12
lsr \tmp, \tmp, #12
orr \rv, \rv, \tmp
.endm
Of course we'd have to shift around static mappings to free up whatever
address we use. I don't know if 0xfed00000 would be the best choice, but
that is just below were I put the PCI i/o mapping.
Rob
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH 1/6] ARM: move ARCH config definitions into mach dirs
2012-09-01 0:48 ` Rob Herring
@ 2012-09-02 8:49 ` Russell King - ARM Linux
2012-09-04 17:50 ` Tony Lindgren
0 siblings, 1 reply; 28+ messages in thread
From: Russell King - ARM Linux @ 2012-09-02 8:49 UTC (permalink / raw)
To: linux-arm-kernel
On Fri, Aug 31, 2012 at 07:48:42PM -0500, Rob Herring wrote:
> On 08/30/2012 02:28 PM, Russell King - ARM Linux wrote:
> > It's not only about virtual addresses, it's about physical addresses too,
> > and we can't dictate that all hardware exposes a UART at any particular
> > physical address.
>
> We have 3 things to track for each platform: the type of uart, the
> uart's phys address, and the virtual address we map it to.
Right, thanks for explaining it more properly the second time around.
However, you actually have four things to track:
1. The physical address
2. The virtual address
3. The inter-register offset
4. The type of the UART
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH v2] ARM: initial multiplatform support
2012-08-31 18:12 ` [PATCH v2] ARM: initial multiplatform support Rob Herring
@ 2012-09-03 16:34 ` Arnd Bergmann
2012-09-03 21:58 ` Rob Herring
0 siblings, 1 reply; 28+ messages in thread
From: Arnd Bergmann @ 2012-09-03 16:34 UTC (permalink / raw)
To: linux-arm-kernel
On Friday 31 August 2012, Rob Herring wrote:
> [Rob Herring]: Rebased to not be dependent on the mass mach header rename.
> As a result, omap2plus, imx, mxs and ux500 are not converted. Highbank,
> picoxcell, mvebu, socfpga, and vexpress are converted.
>
> v2: This version avoids the kconfig symbol name changes and simply moves
> multi-platform enabled platform kconfig option out of the choice option
> and into the platform's mach directory. A separate series fixes DEBUG_LL
> for multi-platform.
This looks like a nice start to play with multiplatform, and I guess it
would be nice to merge it for v3.7.
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -254,27 +254,9 @@ config MMU
> #
> choice
> prompt "ARM system type"
> + depends on !ARCH_MULTIPLATFORM
> default ARCH_VERSATILE
Why did you move ARCH_MULTIPLATFORM out of the "choice" statement?
If we leave it in there, and make it the default, then we don't
even have to change the defconfigs any more (except the versatile
one, which is no longer the default), which I think is quite clever
and helps git-bisecting across this commit.
I also still think that we should allow platforms to be part of
both multi-platform and single-platform builds, for cases it helps
with.
For instance, we could enable one platform to be used in
multiplatform kernels with the subset of its board files and
device drivers that are possible, while leaving board files
that cannot work with sparse-irq and drivers that rely on
platform specific headers as "depends on !ARCH_MULTIPLATFORM".
Arnd
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH v2] ARM: initial multiplatform support
2012-09-03 16:34 ` Arnd Bergmann
@ 2012-09-03 21:58 ` Rob Herring
2012-09-04 6:56 ` Arnd Bergmann
0 siblings, 1 reply; 28+ messages in thread
From: Rob Herring @ 2012-09-03 21:58 UTC (permalink / raw)
To: linux-arm-kernel
On 09/03/2012 11:34 AM, Arnd Bergmann wrote:
> On Friday 31 August 2012, Rob Herring wrote:
>> [Rob Herring]: Rebased to not be dependent on the mass mach header rename.
>> As a result, omap2plus, imx, mxs and ux500 are not converted. Highbank,
>> picoxcell, mvebu, socfpga, and vexpress are converted.
>>
>> v2: This version avoids the kconfig symbol name changes and simply moves
>> multi-platform enabled platform kconfig option out of the choice option
>> and into the platform's mach directory. A separate series fixes DEBUG_LL
>> for multi-platform.
>
> This looks like a nice start to play with multiplatform, and I guess it
> would be nice to merge it for v3.7.
>
>> --- a/arch/arm/Kconfig
>> +++ b/arch/arm/Kconfig
>> @@ -254,27 +254,9 @@ config MMU
>> #
>> choice
>> prompt "ARM system type"
>> + depends on !ARCH_MULTIPLATFORM
>> default ARCH_VERSATILE
>
> Why did you move ARCH_MULTIPLATFORM out of the "choice" statement?
> If we leave it in there, and make it the default, then we don't
> even have to change the defconfigs any more (except the versatile
> one, which is no longer the default), which I think is quite clever
> and helps git-bisecting across this commit.
We don't have to change and of the defconfigs or .config in this patch.
Bisecting the converted platforms is a problem I guess. It can be worked
around by setting ARCH_MULTIPLATFORM before configuring. I'm not
convinced fixing it is worth the complexity added to kconfig.
> I also still think that we should allow platforms to be part of
> both multi-platform and single-platform builds, for cases it helps
> with.
>
> For instance, we could enable one platform to be used in
> multiplatform kernels with the subset of its board files and
> device drivers that are possible, while leaving board files
> that cannot work with sparse-irq and drivers that rely on
> platform specific headers as "depends on !ARCH_MULTIPLATFORM".
Individual platforms can still do that. I just happened to convert all
platforms which have no need to be in both. While you can do that, I
don't think we should encourage it. I don't think we want to see
platforms partially converted to common clk or sparse irq. The latter is
certainly not hard to do.
Rob
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH v2] ARM: initial multiplatform support
2012-09-03 21:58 ` Rob Herring
@ 2012-09-04 6:56 ` Arnd Bergmann
2012-09-04 22:40 ` Rob Herring
0 siblings, 1 reply; 28+ messages in thread
From: Arnd Bergmann @ 2012-09-04 6:56 UTC (permalink / raw)
To: linux-arm-kernel
On Monday 03 September 2012, Rob Herring wrote:
> On 09/03/2012 11:34 AM, Arnd Bergmann wrote:
> >> @@ -254,27 +254,9 @@ config MMU
> >> #
> >> choice
> >> prompt "ARM system type"
> >> + depends on !ARCH_MULTIPLATFORM
> >> default ARCH_VERSATILE
> >
> > Why did you move ARCH_MULTIPLATFORM out of the "choice" statement?
> > If we leave it in there, and make it the default, then we don't
> > even have to change the defconfigs any more (except the versatile
> > one, which is no longer the default), which I think is quite clever
> > and helps git-bisecting across this commit.
>
> We don't have to change and of the defconfigs or .config in this patch.
How does ARCH_MULTIPLATFORM get set then when building the existing
defconfig files for the converted platforms?
> > For instance, we could enable one platform to be used in
> > multiplatform kernels with the subset of its board files and
> > device drivers that are possible, while leaving board files
> > that cannot work with sparse-irq and drivers that rely on
> > platform specific headers as "depends on !ARCH_MULTIPLATFORM".
>
> Individual platforms can still do that. I just happened to convert all
> platforms which have no need to be in both. While you can do that, I
> don't think we should encourage it. I don't think we want to see
> platforms partially converted to common clk or sparse irq. The latter is
> certainly not hard to do.
I was thinking of other cases actually:
* device drivers that we don't really care about much but that rely
on a mach/* header file. In some cases it can be hard to clean up
those headers, so as an intermediate step, we can just disable the
drivers when building multiplatform.
* At least the Samsung platforms have files that are built for separate
platforms in a way that does not work across platforms:
arch/arm/plat-samsung/devs.c depends heavily on constants defined
in mach/*.h header files. When building for DT-only, we can decide to
just not build this file.
Arnd
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH 1/6] ARM: move ARCH config definitions into mach dirs
2012-09-02 8:49 ` Russell King - ARM Linux
@ 2012-09-04 17:50 ` Tony Lindgren
0 siblings, 0 replies; 28+ messages in thread
From: Tony Lindgren @ 2012-09-04 17:50 UTC (permalink / raw)
To: linux-arm-kernel
* Russell King - ARM Linux <linux@arm.linux.org.uk> [120902 01:54]:
> On Fri, Aug 31, 2012 at 07:48:42PM -0500, Rob Herring wrote:
> > On 08/30/2012 02:28 PM, Russell King - ARM Linux wrote:
> > > It's not only about virtual addresses, it's about physical addresses too,
> > > and we can't dictate that all hardware exposes a UART at any particular
> > > physical address.
> >
> > We have 3 things to track for each platform: the type of uart, the
> > uart's phys address, and the virtual address we map it to.
>
> Right, thanks for explaining it more properly the second time around.
>
> However, you actually have four things to track:
> 1. The physical address
> 2. The virtual address
> 3. The inter-register offset
> 4. The type of the UART
And these can be machine specific, not platform specific. Some omaps
have an external uart only where the address and register shift are
different from the internal ports.
Regards,
Tony
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH v2] ARM: initial multiplatform support
2012-09-04 6:56 ` Arnd Bergmann
@ 2012-09-04 22:40 ` Rob Herring
2012-09-05 10:36 ` Arnd Bergmann
0 siblings, 1 reply; 28+ messages in thread
From: Rob Herring @ 2012-09-04 22:40 UTC (permalink / raw)
To: linux-arm-kernel
On 09/04/2012 01:56 AM, Arnd Bergmann wrote:
> On Monday 03 September 2012, Rob Herring wrote:
>> On 09/03/2012 11:34 AM, Arnd Bergmann wrote:
>>>> @@ -254,27 +254,9 @@ config MMU
>>>> #
>>>> choice
>>>> prompt "ARM system type"
>>>> + depends on !ARCH_MULTIPLATFORM
>>>> default ARCH_VERSATILE
>>>
>>> Why did you move ARCH_MULTIPLATFORM out of the "choice" statement?
>>> If we leave it in there, and make it the default, then we don't
>>> even have to change the defconfigs any more (except the versatile
>>> one, which is no longer the default), which I think is quite clever
>>> and helps git-bisecting across this commit.
>>
>> We don't have to change and of the defconfigs or .config in this patch.
>
> How does ARCH_MULTIPLATFORM get set then when building the existing
> defconfig files for the converted platforms?
Ahhh, right. Those need to be updated. It doesn't really matter if
ARCH_MULTIPLATFORM is in the choice or not. It matters if we move
platforms out of the choice or not. More on that below.
>>> For instance, we could enable one platform to be used in
>>> multiplatform kernels with the subset of its board files and
>>> device drivers that are possible, while leaving board files
>>> that cannot work with sparse-irq and drivers that rely on
>>> platform specific headers as "depends on !ARCH_MULTIPLATFORM".
>>
>> Individual platforms can still do that. I just happened to convert all
>> platforms which have no need to be in both. While you can do that, I
>> don't think we should encourage it. I don't think we want to see
>> platforms partially converted to common clk or sparse irq. The latter is
>> certainly not hard to do.
>
> I was thinking of other cases actually:
>
> * device drivers that we don't really care about much but that rely
> on a mach/* header file. In some cases it can be hard to clean up
> those headers, so as an intermediate step, we can just disable the
> drivers when building multiplatform.
depends on !ARCH_MULTIPLATFORM ?
> * At least the Samsung platforms have files that are built for separate
> platforms in a way that does not work across platforms:
> arch/arm/plat-samsung/devs.c depends heavily on constants defined
> in mach/*.h header files. When building for DT-only, we can decide to
> just not build this file.
I still think that should be possible on a per platform basis, but why
mandate that all platforms do that?
We have ARCH_FOO in the choice today. Assuming we want to keep the
choice name as is to not break configs (as Russell wanted), we have to
leave this alone. So then we create ARCH_FOO_MULTI for the mult-platform
case and also ARCH_FOO_OPTIONS to avoid duplicating all the per mach
selects for ARCH_FOO and ARCH_FOO_MULTI. However, then we have ARCH_FOO
as a depends all over the tree. I'd like to avoid having to fix-up all
those to be depends on ARCH_FOO_OPTIONS or (ARCH_FOO || ARCH_FOO_MULTI).
Rob
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH v2] ARM: initial multiplatform support
2012-09-04 22:40 ` Rob Herring
@ 2012-09-05 10:36 ` Arnd Bergmann
2012-09-05 13:25 ` Rob Herring
0 siblings, 1 reply; 28+ messages in thread
From: Arnd Bergmann @ 2012-09-05 10:36 UTC (permalink / raw)
To: linux-arm-kernel
On Tuesday 04 September 2012, Rob Herring wrote:
> On 09/04/2012 01:56 AM, Arnd Bergmann wrote:
> > On Monday 03 September 2012, Rob Herring wrote:
> >> On 09/03/2012 11:34 AM, Arnd Bergmann wrote:
> >>>> @@ -254,27 +254,9 @@ config MMU
> >>>> #
> >>>> choice
> >>>> prompt "ARM system type"
> >>>> + depends on !ARCH_MULTIPLATFORM
> >>>> default ARCH_VERSATILE
> >>>
> >>> Why did you move ARCH_MULTIPLATFORM out of the "choice" statement?
> >>> If we leave it in there, and make it the default, then we don't
> >>> even have to change the defconfigs any more (except the versatile
> >>> one, which is no longer the default), which I think is quite clever
> >>> and helps git-bisecting across this commit.
> >>
> >> We don't have to change and of the defconfigs or .config in this patch.
> >
> > How does ARCH_MULTIPLATFORM get set then when building the existing
> > defconfig files for the converted platforms?
>
> Ahhh, right. Those need to be updated. It doesn't really matter if
> ARCH_MULTIPLATFORM is in the choice or not. It matters if we move
> platforms out of the choice or not. More on that below.
But if ARCH_MULTIPLATFORM is one of the choice statements rather than
a separate option, you don't need to change any of the defconfigs,
and you can keep using 'make oldconfig' when bisecting over this
commit.
> >
> > I was thinking of other cases actually:
> >
> > * device drivers that we don't really care about much but that rely
> > on a mach/* header file. In some cases it can be hard to clean up
> > those headers, so as an intermediate step, we can just disable the
> > drivers when building multiplatform.
>
> depends on !ARCH_MULTIPLATFORM ?
Yes, of course, that is what you'd do in in the drivers, but it only works
if the same platform can be used both with and without ARCH_MULTIPLATFORM.
> > * At least the Samsung platforms have files that are built for separate
> > platforms in a way that does not work across platforms:
> > arch/arm/plat-samsung/devs.c depends heavily on constants defined
> > in mach/*.h header files. When building for DT-only, we can decide to
> > just not build this file.
>
> I still think that should be possible on a per platform basis, but why
> mandate that all platforms do that?
I wasn't suggesting we do that. The platforms that you have already
converted are all ok to stay multiplatform-only.
> We have ARCH_FOO in the choice today. Assuming we want to keep the
> choice name as is to not break configs (as Russell wanted), we have to
> leave this alone. So then we create ARCH_FOO_MULTI for the mult-platform
> case and also ARCH_FOO_OPTIONS to avoid duplicating all the per mach
> selects for ARCH_FOO and ARCH_FOO_MULTI. However, then we have ARCH_FOO
> as a depends all over the tree. I'd like to avoid having to fix-up all
> those to be depends on ARCH_FOO_OPTIONS or (ARCH_FOO || ARCH_FOO_MULTI).
I've been going back and forth a few times between the different methods
when I created the earlier version of this patch, trying to find the one
that is least invasive. As you say, creating a new ARCH_FOO_MULTI in parallel
with the existing (choice) ARCH_FOO means we have to change all the Kconfig
statements that refer to ARCH_FOO. The good news is that I think we now only
have to do it inside of the mach-foo directories, which we might want to
rework anyway so you can more easily build e.g. a THUMB2 kernel that enables
all the ARMv7 platforms but not the ARMv6 ones.
All device drivers that have a dependency on a specific platform should
fall into one of two categories:
a) Those using platform specific header files. We just decided to not allow
this in multiplatform kernels, so having a dependency on a symbol that
only exists for single-platform builds is appropriate.
b) Drivers that only make sense for one platform but can be built anywhere,
e.g. after fixing the include path from a). I'd argue that we should allow
building them anyway, to improve build coverage, so we should better remove
the dependency, or turn it into a more specific one.
Arnd
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH v2] ARM: initial multiplatform support
2012-09-05 10:36 ` Arnd Bergmann
@ 2012-09-05 13:25 ` Rob Herring
2012-09-05 13:33 ` Arnd Bergmann
0 siblings, 1 reply; 28+ messages in thread
From: Rob Herring @ 2012-09-05 13:25 UTC (permalink / raw)
To: linux-arm-kernel
On 09/05/2012 05:36 AM, Arnd Bergmann wrote:
> On Tuesday 04 September 2012, Rob Herring wrote:
>> On 09/04/2012 01:56 AM, Arnd Bergmann wrote:
>>> On Monday 03 September 2012, Rob Herring wrote:
>>>> On 09/03/2012 11:34 AM, Arnd Bergmann wrote:
>>>>>> @@ -254,27 +254,9 @@ config MMU
>>>>>> #
>>>>>> choice
>>>>>> prompt "ARM system type"
>>>>>> + depends on !ARCH_MULTIPLATFORM
>>>>>> default ARCH_VERSATILE
>>>>>
>>>>> Why did you move ARCH_MULTIPLATFORM out of the "choice" statement?
>>>>> If we leave it in there, and make it the default, then we don't
>>>>> even have to change the defconfigs any more (except the versatile
>>>>> one, which is no longer the default), which I think is quite clever
>>>>> and helps git-bisecting across this commit.
>>>>
>>>> We don't have to change and of the defconfigs or .config in this patch.
>>>
>>> How does ARCH_MULTIPLATFORM get set then when building the existing
>>> defconfig files for the converted platforms?
>>
>> Ahhh, right. Those need to be updated. It doesn't really matter if
>> ARCH_MULTIPLATFORM is in the choice or not. It matters if we move
>> platforms out of the choice or not. More on that below.
>
> But if ARCH_MULTIPLATFORM is one of the choice statements rather than
> a separate option, you don't need to change any of the defconfigs,
> and you can keep using 'make oldconfig' when bisecting over this
> commit.
>>>
>>> I was thinking of other cases actually:
>>>
>>> * device drivers that we don't really care about much but that rely
>>> on a mach/* header file. In some cases it can be hard to clean up
>>> those headers, so as an intermediate step, we can just disable the
>>> drivers when building multiplatform.
>>
>> depends on !ARCH_MULTIPLATFORM ?
>
> Yes, of course, that is what you'd do in in the drivers, but it only works
> if the same platform can be used both with and without ARCH_MULTIPLATFORM.
>
>>> * At least the Samsung platforms have files that are built for separate
>>> platforms in a way that does not work across platforms:
>>> arch/arm/plat-samsung/devs.c depends heavily on constants defined
>>> in mach/*.h header files. When building for DT-only, we can decide to
>>> just not build this file.
>>
>> I still think that should be possible on a per platform basis, but why
>> mandate that all platforms do that?
>
> I wasn't suggesting we do that. The platforms that you have already
> converted are all ok to stay multiplatform-only.
>
>> We have ARCH_FOO in the choice today. Assuming we want to keep the
>> choice name as is to not break configs (as Russell wanted), we have to
>> leave this alone. So then we create ARCH_FOO_MULTI for the mult-platform
>> case and also ARCH_FOO_OPTIONS to avoid duplicating all the per mach
>> selects for ARCH_FOO and ARCH_FOO_MULTI. However, then we have ARCH_FOO
>> as a depends all over the tree. I'd like to avoid having to fix-up all
>> those to be depends on ARCH_FOO_OPTIONS or (ARCH_FOO || ARCH_FOO_MULTI).
>
> I've been going back and forth a few times between the different methods
> when I created the earlier version of this patch, trying to find the one
> that is least invasive. As you say, creating a new ARCH_FOO_MULTI in parallel
> with the existing (choice) ARCH_FOO means we have to change all the Kconfig
> statements that refer to ARCH_FOO. The good news is that I think we now only
> have to do it inside of the mach-foo directories, which we might want to
> rework anyway so you can more easily build e.g. a THUMB2 kernel that enables
> all the ARMv7 platforms but not the ARMv6 ones.
>
> All device drivers that have a dependency on a specific platform should
> fall into one of two categories:
>
> a) Those using platform specific header files. We just decided to not allow
> this in multiplatform kernels, so having a dependency on a symbol that
> only exists for single-platform builds is appropriate.
>
> b) Drivers that only make sense for one platform but can be built anywhere,
> e.g. after fixing the include path from a). I'd argue that we should allow
> building them anyway, to improve build coverage, so we should better remove
> the dependency, or turn it into a more specific one.
Agreed. There are some other cases like clk drivers which are not
visible options. But changing those are probably manageable.
So to summarize, I'll make ARCH_MULTIPLATFORM part of the choice. The
platforms I converted will stay multi-plat only and don't need
additional kconfig options. Additional platforms converted can choose
whether they want to support both single and multi platform in the kconfig.
Rob
^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH v2] ARM: initial multiplatform support
2012-09-05 13:25 ` Rob Herring
@ 2012-09-05 13:33 ` Arnd Bergmann
0 siblings, 0 replies; 28+ messages in thread
From: Arnd Bergmann @ 2012-09-05 13:33 UTC (permalink / raw)
To: linux-arm-kernel
On Wednesday 05 September 2012, Rob Herring wrote:
> So to summarize, I'll make ARCH_MULTIPLATFORM part of the choice. The
> platforms I converted will stay multi-plat only and don't need
> additional kconfig options. Additional platforms converted can choose
> whether they want to support both single and multi platform in the kconfig.
>
Ok, excellent!
Arnd
^ permalink raw reply [flat|nested] 28+ messages in thread
end of thread, other threads:[~2012-09-05 13:33 UTC | newest]
Thread overview: 28+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-29 22:49 [PATCH 0/6] Initial multi-platform support Rob Herring
2012-08-29 22:49 ` [PATCH 1/6] ARM: move ARCH config definitions into mach dirs Rob Herring
2012-08-29 23:14 ` H Hartley Sweeten
2012-08-29 23:31 ` Russell King - ARM Linux
2012-08-30 15:18 ` Rob Herring
2012-08-30 16:45 ` Russell King - ARM Linux
2012-08-30 19:07 ` Rob Herring
2012-08-30 19:28 ` Russell King - ARM Linux
2012-08-31 11:05 ` Domenico Andreoli
2012-08-31 11:11 ` Russell King - ARM Linux
2012-08-31 11:46 ` Domenico Andreoli
2012-09-01 0:48 ` Rob Herring
2012-09-02 8:49 ` Russell King - ARM Linux
2012-09-04 17:50 ` Tony Lindgren
2012-08-29 22:49 ` [PATCH 2/6] ARM: introduce Kconfig.mach Rob Herring
2012-08-29 23:18 ` H Hartley Sweeten
2012-08-29 22:49 ` [PATCH 3/6] ARM: picoxcell: header fixes for multi-platform Rob Herring
2012-08-29 22:49 ` [PATCH 4/6] ARM: vexpress: remove dependency on mach/* headers Rob Herring
2012-08-29 22:49 ` [PATCH 5/6] ARM: initial multiplatform support Rob Herring
2012-08-29 22:50 ` [PATCH 6/6] ARM: update defconfigs Rob Herring
2012-08-31 18:12 ` [PATCH v2] ARM: initial multiplatform support Rob Herring
2012-09-03 16:34 ` Arnd Bergmann
2012-09-03 21:58 ` Rob Herring
2012-09-04 6:56 ` Arnd Bergmann
2012-09-04 22:40 ` Rob Herring
2012-09-05 10:36 ` Arnd Bergmann
2012-09-05 13:25 ` Rob Herring
2012-09-05 13:33 ` Arnd Bergmann
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).