From 92c5f91413b66ba3fa81d6725f0ff5e8a04990cf Mon Sep 17 00:00:00 2001 From: Anas Nashif Date: Sat, 26 Nov 2016 09:20:15 -0500 Subject: [PATCH] arm: systick: Some SoCs do not have systick Make the systick feature optional that can be selected by the SoC. Change-Id: I4a405640b84daecc17fc1882743d3cafb78ff861 Signed-off-by: Anas Nashif --- arch/arm/core/Kconfig | 7 +++++++ arch/arm/defconfig | 1 - arch/arm/soc/arm/beetle/Kconfig.series | 1 + arch/arm/soc/atmel_sam3/Kconfig.soc | 3 ++- arch/arm/soc/nordic_nrf5/nrf51/Kconfig.series | 1 + arch/arm/soc/nordic_nrf5/nrf52/Kconfig.series | 1 + arch/arm/soc/nxp_kinetis/k6x/Kconfig.series | 1 + arch/arm/soc/st_stm32/stm32f1/Kconfig.series | 1 + arch/arm/soc/st_stm32/stm32f4/Kconfig.series | 1 + arch/arm/soc/ti_lm3s6965/Kconfig.soc | 1 + arch/arm/soc/ti_simplelink/cc32xx/Kconfig.series | 1 + drivers/timer/Kconfig | 2 +- 12 files changed, 18 insertions(+), 3 deletions(-) diff --git a/arch/arm/core/Kconfig b/arch/arm/core/Kconfig index deec0322541..b4218443a6c 100644 --- a/arch/arm/core/Kconfig +++ b/arch/arm/core/Kconfig @@ -32,6 +32,13 @@ config CPU_CORTEX_M help This option signifies the use of a CPU of the Cortex-M family. +config CPU_HAS_SYSTICK + bool + # Omit prompt to signify "hidden" option + default n + help + This option is enabled when the CPU has systick timer implemented. + config CPU_HAS_FPU # Hidden config selected by CPU family bool diff --git a/arch/arm/defconfig b/arch/arm/defconfig index 05eac1390de..0ebcc5e2703 100644 --- a/arch/arm/defconfig +++ b/arch/arm/defconfig @@ -3,6 +3,5 @@ CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=12000000 CONFIG_CONSOLE=y CONFIG_UART_CONSOLE=y CONFIG_SERIAL=y -CONFIG_CORTEX_M_SYSTICK=y CONFIG_FLASH_SIZE=256 CONFIG_SRAM_SIZE=64 diff --git a/arch/arm/soc/arm/beetle/Kconfig.series b/arch/arm/soc/arm/beetle/Kconfig.series index 5df65647880..6d5d4c82626 100644 --- a/arch/arm/soc/arm/beetle/Kconfig.series +++ b/arch/arm/soc/arm/beetle/Kconfig.series @@ -22,5 +22,6 @@ config SOC_SERIES_BEETLE select CPU_CORTEX_M select CPU_CORTEX_M3 select SOC_FAMILY_ARM + select CPU_HAS_SYSTICK help Enable support for Beetle MCU Series diff --git a/arch/arm/soc/atmel_sam3/Kconfig.soc b/arch/arm/soc/atmel_sam3/Kconfig.soc index 0e95a10f6ce..69a6f1b0bd9 100644 --- a/arch/arm/soc/atmel_sam3/Kconfig.soc +++ b/arch/arm/soc/atmel_sam3/Kconfig.soc @@ -4,4 +4,5 @@ config SOC_ATMEL_SAM3X8E select CPU_CORTEX_M select CPU_CORTEX_M3 select SOC_ATMEL_SAM3 - select SYS_POWER_LOW_POWER_STATE_SUPPORTED \ No newline at end of file + select SYS_POWER_LOW_POWER_STATE_SUPPORTED + select CPU_HAS_SYSTICK diff --git a/arch/arm/soc/nordic_nrf5/nrf51/Kconfig.series b/arch/arm/soc/nordic_nrf5/nrf51/Kconfig.series index c601c434ea6..c05594f2d67 100644 --- a/arch/arm/soc/nordic_nrf5/nrf51/Kconfig.series +++ b/arch/arm/soc/nordic_nrf5/nrf51/Kconfig.series @@ -24,5 +24,6 @@ config SOC_SERIES_NRF51X select XIP select HAS_CMSIS select HAS_NORDIC_MDK + select CPU_HAS_SYSTICK help Enable support for NRF51 MCU series diff --git a/arch/arm/soc/nordic_nrf5/nrf52/Kconfig.series b/arch/arm/soc/nordic_nrf5/nrf52/Kconfig.series index a024bd914d1..54b0aa82a73 100644 --- a/arch/arm/soc/nordic_nrf5/nrf52/Kconfig.series +++ b/arch/arm/soc/nordic_nrf5/nrf52/Kconfig.series @@ -24,5 +24,6 @@ config SOC_SERIES_NRF52X select XIP select HAS_CMSIS select HAS_NORDIC_MDK + select CPU_HAS_SYSTICK help Enable support for NRF52 MCU series diff --git a/arch/arm/soc/nxp_kinetis/k6x/Kconfig.series b/arch/arm/soc/nxp_kinetis/k6x/Kconfig.series index 1f6256a97d8..4d05064ca6e 100644 --- a/arch/arm/soc/nxp_kinetis/k6x/Kconfig.series +++ b/arch/arm/soc/nxp_kinetis/k6x/Kconfig.series @@ -21,5 +21,6 @@ config SOC_SERIES_KINETIS_K6X select CPU_CORTEX_M4 select SOC_FAMILY_KINETIS select SYS_POWER_LOW_POWER_STATE_SUPPORTED + select CPU_HAS_SYSTICK help Enable support for Kinetis K6x MCU series diff --git a/arch/arm/soc/st_stm32/stm32f1/Kconfig.series b/arch/arm/soc/st_stm32/stm32f1/Kconfig.series index 7e63896bf5d..a212723ea3a 100644 --- a/arch/arm/soc/st_stm32/stm32f1/Kconfig.series +++ b/arch/arm/soc/st_stm32/stm32f1/Kconfig.series @@ -22,5 +22,6 @@ config SOC_SERIES_STM32F1X select SOC_FAMILY_STM32 select SYS_POWER_LOW_POWER_STATE_SUPPORTED select HAS_STM32CUBE + select CPU_HAS_SYSTICK help Enable support for STM32F1 MCU series diff --git a/arch/arm/soc/st_stm32/stm32f4/Kconfig.series b/arch/arm/soc/st_stm32/stm32f4/Kconfig.series index 06bc6e5cf6f..243a5f80531 100644 --- a/arch/arm/soc/st_stm32/stm32f4/Kconfig.series +++ b/arch/arm/soc/st_stm32/stm32f4/Kconfig.series @@ -22,5 +22,6 @@ config SOC_SERIES_STM32F4X select SOC_FAMILY_STM32 select SYS_POWER_LOW_POWER_STATE_SUPPORTED select HAS_STM32CUBE + select CPU_HAS_SYSTICK help Enable support for STM32F4 MCU series diff --git a/arch/arm/soc/ti_lm3s6965/Kconfig.soc b/arch/arm/soc/ti_lm3s6965/Kconfig.soc index 7350588f845..9b2aecfabdf 100644 --- a/arch/arm/soc/ti_lm3s6965/Kconfig.soc +++ b/arch/arm/soc/ti_lm3s6965/Kconfig.soc @@ -3,4 +3,5 @@ config SOC_TI_LM3S6965 bool "TI LM3S6965" select CPU_CORTEX_M select CPU_CORTEX_M3 + select CPU_HAS_SYSTICK diff --git a/arch/arm/soc/ti_simplelink/cc32xx/Kconfig.series b/arch/arm/soc/ti_simplelink/cc32xx/Kconfig.series index 739ef9b47ac..b4d11f13fb7 100644 --- a/arch/arm/soc/ti_simplelink/cc32xx/Kconfig.series +++ b/arch/arm/soc/ti_simplelink/cc32xx/Kconfig.series @@ -6,5 +6,6 @@ config SOC_SERIES_CC32XX select CPU_CORTEX_M select CPU_CORTEX_M4 select SOC_FAMILY_TISIMPLELINK + select CPU_HAS_SYSTICK help Enable support for TI SimpleLink CC32xx diff --git a/drivers/timer/Kconfig b/drivers/timer/Kconfig index c3899c2bd92..0bb279fd474 100644 --- a/drivers/timer/Kconfig +++ b/drivers/timer/Kconfig @@ -134,7 +134,7 @@ config ARCV2_TIMER_IRQ_PRIORITY config CORTEX_M_SYSTICK bool "Cortex-M SYSTICK timer" default y - depends on CPU_CORTEX_M + depends on CPU_HAS_SYSTICK help This module implements a kernel device driver for the Cortex-M processor SYSTICK timer and provides the standard "system clock driver" interfaces.