9
0
Fork 0

arm: introduce CPU CONFIG from linux

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
Jean-Christophe PLAGNIOL-VILLARD 2009-11-02 19:51:25 +01:00 committed by Sascha Hauer
parent eea19dc488
commit bab3a3b976
24 changed files with 92 additions and 48 deletions

View File

@ -18,15 +18,6 @@ config ARM
select HAVE_CONFIGURABLE_TEXT_BASE
default y
config ARM920T
bool
config ARM926EJS
bool
config ARMCORTEXA8
bool
menu "System Type"
choice
@ -37,24 +28,25 @@ config ARCH_AT91
config ARCH_AT91RM9200
bool "Atmel AT91RM9200"
select ARM920T
select CPU_ARM920T
config ARCH_IMX
bool "Freescale iMX-based"
config ARCH_NETX
bool "Hilscher NetX based"
select ARM926EJS
select CPU_ARM926T
config ARCH_OMAP
bool "TI OMAP"
config ARCH_S3C24xx
bool "Samsung S3C2410, S3C2412, S3C2413, S3C2440, S3C2442, S3C2443"
select ARM920T
select CPU_ARM920T
endchoice
source arch/arm/cpu/Kconfig
source arch/arm/mach-at91/Kconfig
source arch/arm/mach-at91rm9200/Kconfig
source arch/arm/mach-imx/Kconfig
@ -92,9 +84,9 @@ config INITRD_TAG
If you want to start a 2.6 kernel and use an
initrd image say y here.
config ARMCORTEXA8_DCACHE_SKIP
config CPU_V7_DCACHE_SKIP
bool "Skip DCache Invlidate"
depends on ARMCORTEXA8
depends on CPU_V7
default n
help
If your architecture configuration uses some other method of disabling caches, enable this

View File

@ -30,8 +30,8 @@ board-$(CONFIG_MACH_A9M2440) := a9m2440
board-$(CONFIG_MACH_EUKREA_CPUIMX27) := eukrea_cpuimx27
# FIXME "cpu-y" never used on ARM!
cpu-$(CONFIG_ARM920T) := arm920t
cpu-$(CONFIG_ARM926EJS) := arm926ejs
cpu-$(CONFIG_CPU_ARM920T) := arm920t
cpu-$(CONFIG_CPU_ARM926T) := arm926ejs
machdirs := $(patsubst %,arch/arm/mach-%/,$(machine-y))
@ -70,7 +70,7 @@ archprepare: maketools
PHONY += maketools
# Add architecture specific flags
ifeq ($(CONFIG_ARMCORTEXA8),y)
ifeq ($(CONFIG_CPU_V7),y)
CPPFLAGS += -march=armv7a
endif

View File

@ -8,7 +8,7 @@ CONFIG_BOARDINFO="Digi A9M2410"
# CONFIG_BOARD_LINKER_SCRIPT is not set
CONFIG_GENERIC_LINKER_SCRIPT=y
CONFIG_ARM=y
CONFIG_ARM920T=y
CONFIG_CPU_ARM920T=y
# CONFIG_MACH_MX1ADS is not set
# CONFIG_MACH_SCB9328 is not set
# CONFIG_MACH_PCM038 is not set

View File

@ -8,7 +8,7 @@ CONFIG_BOARDINFO="Digi A9M2440"
# CONFIG_BOARD_LINKER_SCRIPT is not set
CONFIG_GENERIC_LINKER_SCRIPT=y
CONFIG_ARM=y
CONFIG_ARM920T=y
CONFIG_CPU_ARM920T=y
# CONFIG_MACH_MX1ADS is not set
# CONFIG_MACH_SCB9328 is not set
# CONFIG_MACH_PCM038 is not set

View File

@ -8,7 +8,7 @@ CONFIG_BOARDINFO="Atmel 91SAM9260-EK"
# CONFIG_BOARD_LINKER_SCRIPT is not set
CONFIG_GENERIC_LINKER_SCRIPT=y
CONFIG_ARM=y
CONFIG_ARM926EJS=y
CONFIG_CPU_ARM926T=y
CONFIG_ARCH_AT91=y
CONFIG_ARCH_AT91SAM9260=y
# CONFIG_MACH_MX1ADS is not set

View File

@ -8,7 +8,7 @@ CONFIG_BOARDINFO="Atmel at91sam9263-ek"
# CONFIG_BOARD_LINKER_SCRIPT is not set
CONFIG_GENERIC_LINKER_SCRIPT=y
CONFIG_ARM=y
CONFIG_ARM926EJS=y
CONFIG_CPU_ARM926T=y
CONFIG_ARCH_AT91=y
CONFIG_ARCH_AT91SAM9263=y
# CONFIG_MACH_MX1ADS is not set

View File

@ -8,7 +8,7 @@ CONFIG_BOARDINFO="Eukrea CPUIMX27"
# CONFIG_BOARD_LINKER_SCRIPT is not set
CONFIG_GENERIC_LINKER_SCRIPT=y
CONFIG_ARM=y
CONFIG_ARM926EJS=y
CONFIG_CPU_ARM926T=y
# CONFIG_MACH_MX1ADS is not set
# CONFIG_MACH_SCB9328 is not set
# CONFIG_MACH_PCM038 is not set

View File

@ -8,7 +8,7 @@ CONFIG_BOARDINFO="Freescale MX25 3Stack"
# CONFIG_BOARD_LINKER_SCRIPT is not set
CONFIG_GENERIC_LINKER_SCRIPT=y
CONFIG_ARM=y
CONFIG_ARM926EJS=y
CONFIG_CPU_ARM926T=y
# CONFIG_MACH_MX1ADS is not set
# CONFIG_MACH_SCB9328 is not set
# CONFIG_MACH_PCM038 is not set

View File

@ -8,7 +8,7 @@ CONFIG_BOARDINFO="Bucyrus MMC-CPU"
# CONFIG_BOARD_LINKER_SCRIPT is not set
CONFIG_GENERIC_LINKER_SCRIPT=y
CONFIG_ARM=y
CONFIG_ARM926EJS=y
CONFIG_CPU_ARM926T=y
CONFIG_ARCH_AT91=y
CONFIG_ARCH_AT91SAM9263=y
# CONFIG_MACH_MX1ADS is not set

View File

@ -8,7 +8,7 @@ CONFIG_BOARDINFO="Freescale i.MX21 ADS"
# CONFIG_BOARD_LINKER_SCRIPT is not set
CONFIG_GENERIC_LINKER_SCRIPT=y
CONFIG_ARM=y
CONFIG_ARM926EJS=y
CONFIG_CPU_ARM926T=y
# CONFIG_MACH_MX1ADS is not set
# CONFIG_MACH_SCB9328 is not set
# CONFIG_MACH_PCM038 is not set

View File

@ -8,7 +8,7 @@ CONFIG_BOARDINFO="Freescale i.MX27 ADS"
# CONFIG_BOARD_LINKER_SCRIPT is not set
CONFIG_GENERIC_LINKER_SCRIPT=y
CONFIG_ARM=y
CONFIG_ARM926EJS=y
CONFIG_CPU_ARM926T=y
CONFIG_ARCH_IMX=y
CONFIG_ARCH_IMX27=y
# CONFIG_MACH_MX1ADS is not set

View File

@ -8,7 +8,7 @@ CONFIG_BOARDINFO="Hilscher Netx nxdb500"
# CONFIG_BOARD_LINKER_SCRIPT is not set
CONFIG_GENERIC_LINKER_SCRIPT=y
CONFIG_ARM=y
CONFIG_ARM926EJS=y
CONFIG_CPU_ARM926T=y
CONFIG_ARCH_NETX=y
# CONFIG_MACH_MX1ADS is not set
# CONFIG_MACH_SCB9328 is not set

View File

@ -8,7 +8,7 @@ CONFIG_BOARDINFO="Texas Instrument's SDP343x"
# CONFIG_BOARD_LINKER_SCRIPT is not set
CONFIG_GENERIC_LINKER_SCRIPT=y
CONFIG_ARM=y
CONFIG_ARMCORTEXA8=y
CONFIG_CPU_V7=y
CONFIG_ARCH_OMAP=y
# CONFIG_MACH_MX1ADS is not set
# CONFIG_MACH_SCB9328 is not set
@ -42,7 +42,7 @@ CONFIG_MACH_OMAP343xSDP=y
# CONFIG_CMDLINE_TAG is not set
# CONFIG_SETUP_MEMORY_TAGS is not set
# CONFIG_INITRD_TAG is not set
# CONFIG_ARMCORTEXA8_DCACHE_SKIP is not set
# CONFIG_CPU_V7_DCACHE_SKIP is not set
CONFIG_HAS_KALLSYMS=y
CONFIG_HAS_MODULES=y
# CONFIG_CMD_MEMORY is not set

View File

@ -8,7 +8,7 @@ CONFIG_BOARDINFO="Texas Instrument's Beagle"
# CONFIG_BOARD_LINKER_SCRIPT is not set
CONFIG_GENERIC_LINKER_SCRIPT=y
CONFIG_ARM=y
CONFIG_ARMCORTEXA8=y
CONFIG_CPU_V7=y
CONFIG_ARCH_OMAP=y
# CONFIG_MACH_MX1ADS is not set
# CONFIG_MACH_SCB9328 is not set
@ -43,7 +43,7 @@ CONFIG_MACH_BEAGLE=y
# CONFIG_CMDLINE_TAG is not set
# CONFIG_SETUP_MEMORY_TAGS is not set
# CONFIG_INITRD_TAG is not set
# CONFIG_ARMCORTEXA8_DCACHE_SKIP is not set
# CONFIG_CPU_V7_DCACHE_SKIP is not set
CONFIG_HAS_KALLSYMS=y
CONFIG_HAS_MODULES=y
# CONFIG_CMD_MEMORY is not set

View File

@ -7,7 +7,7 @@ CONFIG_BOARDINFO="Phytec phyCard-i.MX27"
# CONFIG_BOARD_LINKER_SCRIPT is not set
CONFIG_GENERIC_LINKER_SCRIPT=y
CONFIG_ARM=y
CONFIG_ARM926EJS=y
CONFIG_CPU_ARM926T=y
# CONFIG_MACH_MX1ADS is not set
# CONFIG_MACH_SCB9328 is not set
# CONFIG_MACH_PCM038 is not set

View File

@ -8,7 +8,7 @@ CONFIG_BOARDINFO="Phytec phyCORE-i.MX27"
# CONFIG_BOARD_LINKER_SCRIPT is not set
CONFIG_GENERIC_LINKER_SCRIPT=y
CONFIG_ARM=y
CONFIG_ARM926EJS=y
CONFIG_CPU_ARM926T=y
# CONFIG_MACH_MX1ADS is not set
# CONFIG_MACH_SCB9328 is not set
CONFIG_MACH_PCM038=y

View File

@ -8,7 +8,7 @@ CONFIG_BOARDINFO="Ronetix PM9263"
# CONFIG_BOARD_LINKER_SCRIPT is not set
CONFIG_GENERIC_LINKER_SCRIPT=y
CONFIG_ARM=y
CONFIG_ARM926EJS=y
CONFIG_CPU_ARM926T=y
CONFIG_ARCH_AT91=y
CONFIG_ARCH_AT91SAM9263=y
# CONFIG_MACH_MX1ADS is not set

View File

@ -8,7 +8,7 @@ CONFIG_BOARDINFO="Synertronixx scb9328"
# CONFIG_BOARD_LINKER_SCRIPT is not set
CONFIG_GENERIC_LINKER_SCRIPT=y
CONFIG_ARM=y
CONFIG_ARM920T=y
CONFIG_CPU_ARM920T=y
CONFIG_ARCH_IMX=y
CONFIG_ARCH_IMX1=y
# CONFIG_MACH_MX1ADS is not set

52
arch/arm/cpu/Kconfig Normal file
View File

@ -0,0 +1,52 @@
comment "Processor Type"
config CPU_32
bool
default y
# Select CPU types depending on the architecture selected. This selects
# which CPUs we support in the kernel image, and the compiler instruction
# optimiser behaviour.
# ARM920T
config CPU_ARM920T
bool
select CPU_32v4T
help
The ARM920T is licensed to be produced by numerous vendors,
and is used in the Maverick EP9312 and the Samsung S3C2410.
More information on the Maverick EP9312 at
<http://linuxdevices.com/products/PD2382866068.html>.
Say Y if you want support for the ARM920T processor.
Otherwise, say N.
# ARM926T
config CPU_ARM926T
bool
select CPU_32v5
help
This is a variant of the ARM920. It has slightly different
instruction sequences for cache and TLB operations. Curiously,
there is no documentation on it at the ARM corporate website.
Say Y if you want support for the ARM926T processor.
Otherwise, say N.
# ARMv7
config CPU_V7
bool
select CPU_32v7
# Figure out what processor architecture version we should be using.
# This defines the compiler instruction set which depends on the machine type.
config CPU_32v4T
bool
config CPU_32v5
bool
config CPU_32v7
bool

View File

@ -4,9 +4,9 @@ obj-y += interrupts.o
#
# Any variants can be called as start-armxyz.S
#
obj-$(CONFIG_ARM920T) += start-arm.o
obj-$(CONFIG_ARM926EJS) += start-arm.o
obj-$(CONFIG_ARMCORTEXA8) += start-arm.o
obj-$(CONFIG_CPU_ARM920T) += start-arm.o
obj-$(CONFIG_CPU_ARM926T) += start-arm.o
obj-$(CONFIG_CPU_V7) += start-arm.o
obj-$(CONFIG_ARCH_IMX31) += start-arm.o
obj-$(CONFIG_ARCH_IMX35) += start-arm.o
obj-$(CONFIG_CMD_ARM_CPUINFO) += cpuinfo.o

View File

@ -131,7 +131,7 @@ reset:
bl arch_init_lowlevel
#endif
#ifdef CONFIG_ARMCORTEXA8
#ifdef CONFIG_CPU_V7
/*
* Invalidate v7 I/D caches
*/
@ -139,7 +139,7 @@ reset:
mcr p15, 0, r0, c8, c7, 0 /* invalidate TLBs */
mcr p15, 0, r0, c7, c5, 0 /* invalidate icache */
/* Invalidate all Dcaches */
#ifndef CONFIG_ARMCORTEXA8_DCACHE_SKIP
#ifndef CONFIG_CPU_V7_DCACHE_SKIP
/* If Arch specific ROM code SMI handling does not exist */
mrc p15, 1, r0, c0, c0, 1 /* read clidr */
ands r3, r0, #0x7000000 /* extract loc from clidr */
@ -180,7 +180,7 @@ finished_inval:
mov r10, #0 /* swith back to cache level 0 */
mcr p15, 2, r10, c0, c0, 0 /* select current cache level in cssr */
isb
#endif /* CONFIG_ARMCORTEXA8_DCACHE_SKIP */
#endif /* CONFIG_CPU_V7_DCACHE_SKIP */
#else
/*

View File

@ -17,11 +17,11 @@ choice
config ARCH_AT91SAM9260
bool "AT91SAM9260"
select ARM926EJS
select CPU_ARM926T
config ARCH_AT91SAM9263
bool "AT91SAM9263"
select ARM926EJS
select CPU_ARM926T
select MACH_HAS_LOWLEVEL_INIT
endchoice

View File

@ -36,20 +36,20 @@ choice
config ARCH_IMX1
bool "i.MX1"
select ARM920T
select CPU_ARM920T
config ARCH_IMX21
bool "i.MX21"
select ARM926EJS
select CPU_ARM926T
config ARCH_IMX25
bool "i.MX25"
select ARM926EJS
select CPU_ARM926T
select ARCH_HAS_FEC_IMX
config ARCH_IMX27
bool "i.MX27"
select ARM926EJS
select CPU_ARM926T
select ARCH_HAS_FEC_IMX
config ARCH_IMX31

View File

@ -31,7 +31,7 @@ choice
config ARCH_OMAP3
bool "OMAP3"
select ARMCORTEXA8
select CPU_V7
select ARCH_HAS_LOWLEVEL_INIT
select OMAP_CLOCK_SOURCE_S32K
help