diff mbox series

[U-Boot,2/2] arm: move SYS_ARCH_TIMER to KConfig

Message ID 20180412012446.21686-2-tuomas.tynkkynen@iki.fi
State Accepted
Commit 7842b6a91ece2484475d94487ec2b63a2832a4cf
Delegated to: Tom Rini
Headers show
Series [U-Boot,1/2] ARM: qemu-arm: Dynamically determine timer frequency | expand

Commit Message

Tuomas Tynkkynen April 12, 2018, 1:24 a.m. UTC
From: Andre Przywara <andre.przywara@arm.com>

SYS_ARCH_TIMER guards the usage of the ARM Generic Timer (aka arch
timer) in U-Boot.
At the moment it is mandatory for ARMv8 and used by a few ARMv7 boards.
Add a proper Kconfig symbol to express this dependency properly,
allowing certain board configuration to later disable arch timer in case
there are any problems with it.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
[tuomas: rebase + fix conflicts and resync with moveconfig & use select]
Signed-off-by: Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>
---
 arch/arm/Kconfig                     | 11 +++++++++++
 arch/arm/cpu/armv8/Makefile          |  2 +-
 arch/arm/mach-imx/mx7ulp/Kconfig     |  1 +
 arch/arm/mach-qemu/Kconfig           |  1 +
 arch/arm/mach-stm32mp/Kconfig        |  1 +
 include/configs/mx7ulp_evk.h         |  1 -
 include/configs/qemu-arm.h           |  1 -
 include/configs/stm32mp1.h           |  1 -
 include/configs/ti_armv7_keystone2.h |  1 -
 scripts/config_whitelist.txt         |  1 -
 10 files changed, 15 insertions(+), 6 deletions(-)

Comments

Tom Rini April 29, 2018, 9:03 p.m. UTC | #1
On Thu, Apr 12, 2018 at 04:24:46AM +0300, Tuomas Tynkkynen wrote:

> From: Andre Przywara <andre.przywara@arm.com>
> 
> SYS_ARCH_TIMER guards the usage of the ARM Generic Timer (aka arch
> timer) in U-Boot.
> At the moment it is mandatory for ARMv8 and used by a few ARMv7 boards.
> Add a proper Kconfig symbol to express this dependency properly,
> allowing certain board configuration to later disable arch timer in case
> there are any problems with it.
> 
> Signed-off-by: Andre Przywara <andre.przywara@arm.com>
> [tuomas: rebase + fix conflicts and resync with moveconfig & use select]
> Signed-off-by: Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>

Applied to u-boot/master, thanks!
diff mbox series

Patch

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 190f883aa8..421210ed46 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -242,6 +242,16 @@  config SYS_CACHELINE_SIZE
 	default 64 if SYS_CACHE_SHIFT_6
 	default 32 if SYS_CACHE_SHIFT_5
 
+config SYS_ARCH_TIMER
+	bool "ARM Generic Timer support"
+	depends on CPU_V7 || ARM64
+	default y if ARM64
+	help
+	  The ARM Generic Timer (aka arch-timer) provides an architected
+	  interface to a timer source on an SoC.
+	  It is mandantory for ARMv8 implementation and widely available
+	  on ARMv7 systems.
+
 config ARM_SMCCC
 	bool "Support for ARM SMC Calling Convention (SMCCC)"
 	depends on CPU_V7 || ARM64
@@ -583,6 +593,7 @@  config ARCH_KEYSTONE
 	select SUPPORT_SPL
 	select SYS_THUMB_BUILD
 	select CMD_POWEROFF
+	select SYS_ARCH_TIMER
 	imply CMD_MTDPARTS
 	imply FIT
 	imply CMD_SAVES
diff --git a/arch/arm/cpu/armv8/Makefile b/arch/arm/cpu/armv8/Makefile
index 1249547436..d18b38eb9e 100644
--- a/arch/arm/cpu/armv8/Makefile
+++ b/arch/arm/cpu/armv8/Makefile
@@ -9,7 +9,7 @@  extra-y	:= start.o
 
 obj-y	+= cpu.o
 ifndef CONFIG_$(SPL_TPL_)TIMER
-obj-y	+= generic_timer.o
+obj-$(CONFIG_SYS_ARCH_TIMER) += generic_timer.o
 endif
 obj-y	+= cache_v8.o
 obj-y	+= exceptions.o
diff --git a/arch/arm/mach-imx/mx7ulp/Kconfig b/arch/arm/mach-imx/mx7ulp/Kconfig
index 1bdc85a9a0..d4b0299dbd 100644
--- a/arch/arm/mach-imx/mx7ulp/Kconfig
+++ b/arch/arm/mach-imx/mx7ulp/Kconfig
@@ -9,6 +9,7 @@  choice
 
 config TARGET_MX7ULP_EVK
         bool "Support mx7ulp EVK board"
+	select SYS_ARCH_TIMER
 
 endchoice
 
diff --git a/arch/arm/mach-qemu/Kconfig b/arch/arm/mach-qemu/Kconfig
index 133163aecf..226dfa362f 100644
--- a/arch/arm/mach-qemu/Kconfig
+++ b/arch/arm/mach-qemu/Kconfig
@@ -16,6 +16,7 @@  config TARGET_QEMU_ARM_32BIT
 	depends on ARCH_QEMU
 	select CPU_V7
 	select ARCH_SUPPORT_PSCI
+	select SYS_ARCH_TIMER
 
 config TARGET_QEMU_ARM_64BIT
 	bool "Support qemu_arm64"
diff --git a/arch/arm/mach-stm32mp/Kconfig b/arch/arm/mach-stm32mp/Kconfig
index 8ca97bf0c9..4d59480c19 100644
--- a/arch/arm/mach-stm32mp/Kconfig
+++ b/arch/arm/mach-stm32mp/Kconfig
@@ -27,6 +27,7 @@  config TARGET_STM32MP1
 	select CPU_V7
 	select PINCTRL_STM32
 	select STM32_RESET
+	select SYS_ARCH_TIMER
 	select SYSRESET_SYSCON
 	help
 		target STMicroelectronics SOC STM32MP1 family
diff --git a/include/configs/mx7ulp_evk.h b/include/configs/mx7ulp_evk.h
index c2223bd858..3dcda9ea77 100644
--- a/include/configs/mx7ulp_evk.h
+++ b/include/configs/mx7ulp_evk.h
@@ -46,7 +46,6 @@ 
 /* Using ULP WDOG for reset */
 #define WDOG_BASE_ADDR			WDG1_RBASE
 
-#define CONFIG_SYS_ARCH_TIMER
 #define CONFIG_SYS_HZ_CLOCK		1000000 /* Fixed at 1Mhz from TSTMR */
 
 #define CONFIG_INITRD_TAG
diff --git a/include/configs/qemu-arm.h b/include/configs/qemu-arm.h
index b29a54ef89..f306b41635 100644
--- a/include/configs/qemu-arm.h
+++ b/include/configs/qemu-arm.h
@@ -20,7 +20,6 @@ 
 #define CONFIG_SYS_MALLOC_LEN		SZ_16M
 
 /* For timer, QEMU emulates an ARMv7/ARMv8 architected timer */
-#define CONFIG_SYS_ARCH_TIMER
 #define CONFIG_SYS_HZ                       1000
 
 /* For block devices, QEMU emulates an ICH9 AHCI controller over PCI */
diff --git a/include/configs/stm32mp1.h b/include/configs/stm32mp1.h
index da0e259736..b2b654ca7a 100644
--- a/include/configs/stm32mp1.h
+++ b/include/configs/stm32mp1.h
@@ -17,7 +17,6 @@ 
  * Number of clock ticks in 1 sec
  */
 #define CONFIG_SYS_HZ				1000
-#define CONFIG_SYS_ARCH_TIMER
 
 /*
  * malloc() pool size
diff --git a/include/configs/ti_armv7_keystone2.h b/include/configs/ti_armv7_keystone2.h
index e87acca650..6f2a33e187 100644
--- a/include/configs/ti_armv7_keystone2.h
+++ b/include/configs/ti_armv7_keystone2.h
@@ -17,7 +17,6 @@ 
 
 /* SoC Configuration */
 #define CONFIG_ARCH_CPU_INIT
-#define CONFIG_SYS_ARCH_TIMER
 #define CONFIG_SPL_TARGET		"u-boot-spi.gph"
 #define CONFIG_SYS_DCACHE_OFF
 
diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
index 84b5030d36..1e272e1f64 100644
--- a/scripts/config_whitelist.txt
+++ b/scripts/config_whitelist.txt
@@ -2090,7 +2090,6 @@  CONFIG_SYS_APP1_BASE
 CONFIG_SYS_APP1_SIZE
 CONFIG_SYS_APP2_BASE
 CONFIG_SYS_APP2_SIZE
-CONFIG_SYS_ARCH_TIMER
 CONFIG_SYS_ARM_CACHE_WRITETHROUGH
 CONFIG_SYS_AT91_CPU_NAME
 CONFIG_SYS_AT91_MAIN_CLOCK