Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4477ca45 authored by Uwe Kleine-König's avatar Uwe Kleine-König
Browse files

ARM: ARMv7-M: Allow the building of new kernel port



This patch modifies the required Kconfig and Makefile files to allow the
building of kernel for Cortex-M3.

Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
Reviewed-by: default avatarJonathan Austin <jonathan.austin@arm.com>
Tested-by: default avatarJonathan Austin <jonathan.austin@arm.com>
Signed-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
parent 19c4d593
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -9,7 +9,7 @@ config ARM
	select BUILDTIME_EXTABLE_SORT if MMU
	select CPU_PM if (SUSPEND || CPU_IDLE)
	select DCACHE_WORD_ACCESS if (CPU_V6 || CPU_V6K || CPU_V7) && !CPU_BIG_ENDIAN && MMU
	select GENERIC_ATOMIC64 if (CPU_V6 || !CPU_32v6K || !AEABI)
	select GENERIC_ATOMIC64 if (CPU_V7M || CPU_V6 || !CPU_32v6K || !AEABI)
	select GENERIC_CLOCKEVENTS_BROADCAST if SMP
	select GENERIC_IRQ_PROBE
	select GENERIC_IRQ_SHOW
@@ -1685,7 +1685,7 @@ config SCHED_HRTICK

config THUMB2_KERNEL
	bool "Compile the kernel in Thumb-2 mode" if !CPU_THUMBONLY
	depends on CPU_V7 && !CPU_V6 && !CPU_V6K
	depends on (CPU_V7 || CPU_V7M) && !CPU_V6 && !CPU_V6K
	default y if CPU_THUMBONLY
	select AEABI
	select ARM_ASM_UNIFIED
+1 −1
Original line number Diff line number Diff line
@@ -28,7 +28,7 @@ config FLASH_SIZE
config PROCESSOR_ID
	hex 'Hard wire the processor ID'
	default 0x00007700
	depends on !CPU_CP15
	depends on !(CPU_CP15 || CPU_V7M)
	help
	  If processor has no CP15 register, this processor ID is
	  used instead of the auto-probing which utilizes the register.
+1 −0
Original line number Diff line number Diff line
@@ -59,6 +59,7 @@ comma = ,
# Note that GCC does not numerically define an architecture version
# macro, but instead defines a whole series of macros which makes
# testing for a specific architecture or later rather impossible.
arch-$(CONFIG_CPU_32v7M)	:=-D__LINUX_ARM_ARCH__=7 -march=armv7-m -Wa,-march=armv7-m
arch-$(CONFIG_CPU_32v7)		:=-D__LINUX_ARM_ARCH__=7 $(call cc-option,-march=armv7-a,-march=armv5t -Wa$(comma)-march=armv7-a)
arch-$(CONFIG_CPU_32v6)		:=-D__LINUX_ARM_ARCH__=6 $(call cc-option,-march=armv6,-march=armv5t -Wa$(comma)-march=armv6)
# Only override the compiler option if ARMv6. The ARMv6K extensions are
+7 −1
Original line number Diff line number Diff line
@@ -15,7 +15,7 @@ CFLAGS_REMOVE_return_address.o = -pg

# Object file lists.

obj-y		:= elf.o entry-armv.o entry-common.o irq.o opcodes.o \
obj-y		:= elf.o entry-common.o irq.o opcodes.o \
		   process.o ptrace.o return_address.o sched_clock.o \
		   setup.o signal.o stacktrace.o sys_arm.o time.o traps.o

@@ -23,6 +23,12 @@ obj-$(CONFIG_ATAGS) += atags_parse.o
obj-$(CONFIG_ATAGS_PROC)	+= atags_proc.o
obj-$(CONFIG_DEPRECATED_PARAM_STRUCT) += atags_compat.o

ifeq ($(CONFIG_CPU_V7M),y)
obj-y		+= entry-v7m.o
else
obj-y		+= entry-armv.o
endif

obj-$(CONFIG_OC_ETM)		+= etm.o
obj-$(CONFIG_CPU_IDLE)		+= cpuidle.o
obj-$(CONFIG_ISA_DMA_API)	+= dma.o
+20 −1
Original line number Diff line number Diff line
@@ -397,6 +397,15 @@ config CPU_V7
	select CPU_PABRT_V7
	select CPU_TLB_V7 if MMU

# ARMv7M
config CPU_V7M
	bool
	select CPU_32v7M
	select CPU_ABRT_NOMMU
	select CPU_CACHE_NOP
	select CPU_PABRT_LEGACY
	select CPU_THUMBONLY

config CPU_THUMBONLY
	bool
	# There are no CPUs available with MMU that don't implement an ARM ISA:
@@ -441,6 +450,9 @@ config CPU_32v6K
config CPU_32v7
	bool

config CPU_32v7M
	bool

# The abort model
config CPU_ABRT_NOMMU
	bool
@@ -494,6 +506,9 @@ config CPU_CACHE_V6
config CPU_CACHE_V7
	bool

config CPU_CACHE_NOP
	bool

config CPU_CACHE_VIVT
	bool

@@ -616,7 +631,11 @@ config ARCH_DMA_ADDR_T_64BIT

config ARM_THUMB
	bool "Support Thumb user binaries" if !CPU_THUMBONLY
	depends on CPU_ARM720T || CPU_ARM740T || CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM940T || CPU_ARM946E || CPU_ARM1020 || CPU_ARM1020E || CPU_ARM1022 || CPU_ARM1026 || CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_V6 || CPU_V6K || CPU_V7 || CPU_FEROCEON
	depends on CPU_ARM720T || CPU_ARM740T || CPU_ARM920T || CPU_ARM922T || \
		CPU_ARM925T || CPU_ARM926T || CPU_ARM940T || CPU_ARM946E || \
		CPU_ARM1020 || CPU_ARM1020E || CPU_ARM1022 || CPU_ARM1026 || \
		CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_V6 || CPU_V6K || \
		CPU_V7 || CPU_FEROCEON || CPU_V7M
	default y
	help
	  Say Y if you want to include kernel support for running user space
Loading