From d393186d514dd0aff76f599bf0c50252ee1b095e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Zi=C4=99cik?= Date: Thu, 9 Aug 2018 14:47:27 +0200 Subject: [PATCH] arch: arm: Introduce CPU_HAS_ARM_MPU and CPU_HAS_NXP_MPU options MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit introduces CPU_HAS_ARM_MPU and CPU_HAS_NXP_MPU options, which indicate which flavour of MPU is supported by given SoC family. Signed-off-by: Piotr Zięcik --- arch/arm/core/cortex_m/mpu/Kconfig | 6 ++---- soc/Kconfig | 1 + soc/arm/Kconfig | 15 +++++++++++++++ soc/arm/arm/beetle/Kconfig.series | 2 +- soc/arm/atmel_sam/same70/Kconfig.series | 2 +- soc/arm/nordic_nrf/nrf52/Kconfig.series | 2 +- soc/arm/nxp_imx/rt/Kconfig.soc | 4 ++-- soc/arm/nxp_kinetis/k6x/Kconfig.series | 2 +- soc/arm/st_stm32/stm32f3/Kconfig.soc | 4 ++-- soc/arm/st_stm32/stm32f4/Kconfig.series | 2 +- soc/arm/st_stm32/stm32l4/Kconfig.series | 2 +- 11 files changed, 28 insertions(+), 14 deletions(-) create mode 100644 soc/arm/Kconfig diff --git a/arch/arm/core/cortex_m/mpu/Kconfig b/arch/arm/core/cortex_m/mpu/Kconfig index b3150ca6f54..b02671ffd6b 100644 --- a/arch/arm/core/cortex_m/mpu/Kconfig +++ b/arch/arm/core/cortex_m/mpu/Kconfig @@ -22,8 +22,7 @@ config MPU_STACK_GUARD config ARM_MPU bool "ARM MPU Support" depends on !CPU_CORTEX_M0 - depends on CPU_HAS_MPU - depends on SOC_FAMILY_ARM || SOC_FAMILY_STM32 || SOC_FAMILY_NRF || SOC_FAMILY_IMX || SOC_FAMILY_SAM + depends on CPU_HAS_ARM_MPU select ARM_CORE_MPU select ARCH_HAS_EXECUTABLE_PAGE_BIT select MPU_REQUIRES_POWER_OF_TWO_ALIGNMENT if !(ARMV8_M_BASELINE || ARMV8_M_MAINLINE) @@ -34,8 +33,7 @@ config ARM_MPU config NXP_MPU bool "NXP MPU Support" - depends on CPU_HAS_MPU - depends on SOC_FAMILY_KINETIS + depends on CPU_HAS_NXP_MPU select ARM_CORE_MPU select ARCH_HAS_EXECUTABLE_PAGE_BIT help diff --git a/soc/Kconfig b/soc/Kconfig index 22b3d7c7ddd..cc6a7ee1473 100644 --- a/soc/Kconfig +++ b/soc/Kconfig @@ -7,6 +7,7 @@ source "$(SOC_DIR)/$(ARCH)/*/Kconfig.soc" endchoice menu "Hardware Configuration" +osource "$(SOC_DIR)/$(ARCH)/Kconfig" osource "$(SOC_DIR)/$(ARCH)/*/Kconfig" endmenu diff --git a/soc/arm/Kconfig b/soc/arm/Kconfig new file mode 100644 index 00000000000..fa5eafe1eee --- /dev/null +++ b/soc/arm/Kconfig @@ -0,0 +1,15 @@ +config CPU_HAS_ARM_MPU + bool + # Omit prompt to signify "hidden" option + select CPU_HAS_MPU + help + This option is enabled when the CPU has a Memory Protection Unit (MPU) + in ARM flavour. + +config CPU_HAS_NXP_MPU + bool + # Omit prompt to signify "hidden" option + select CPU_HAS_MPU + help + This option is enabled when the CPU has a Memory Protection Unit (MPU) + in NXP flavour. diff --git a/soc/arm/arm/beetle/Kconfig.series b/soc/arm/arm/beetle/Kconfig.series index 86dfde1b3f8..dda13794d26 100644 --- a/soc/arm/arm/beetle/Kconfig.series +++ b/soc/arm/arm/beetle/Kconfig.series @@ -12,6 +12,6 @@ config SOC_SERIES_BEETLE select CPU_CORTEX_M3 select SOC_FAMILY_ARM select CPU_HAS_SYSTICK - select CPU_HAS_MPU + select CPU_HAS_ARM_MPU help Enable support for Beetle MCU Series diff --git a/soc/arm/atmel_sam/same70/Kconfig.series b/soc/arm/atmel_sam/same70/Kconfig.series index 85e3f7611fc..bedc0c83af8 100644 --- a/soc/arm/atmel_sam/same70/Kconfig.series +++ b/soc/arm/atmel_sam/same70/Kconfig.series @@ -13,7 +13,7 @@ config SOC_SERIES_SAME70 select ASF select XIP select SYS_POWER_LOW_POWER_STATE_SUPPORTED - select CPU_HAS_MPU + select CPU_HAS_ARM_MPU select ARM_MPU help Enable support for Atmel SAM E70 ARM Cortex-M7 Microcontrollers. diff --git a/soc/arm/nordic_nrf/nrf52/Kconfig.series b/soc/arm/nordic_nrf/nrf52/Kconfig.series index e203f13fb7c..1732c8eef2a 100644 --- a/soc/arm/nordic_nrf/nrf52/Kconfig.series +++ b/soc/arm/nordic_nrf/nrf52/Kconfig.series @@ -8,7 +8,7 @@ config SOC_SERIES_NRF52X bool "Nordic Semiconductor nRF52 series MCU" select CPU_CORTEX_M4 - select CPU_HAS_MPU + select CPU_HAS_ARM_MPU select SOC_FAMILY_NRF select NRF_RTC_TIMER select CLOCK_CONTROL diff --git a/soc/arm/nxp_imx/rt/Kconfig.soc b/soc/arm/nxp_imx/rt/Kconfig.soc index 36c36cfb581..bf1f18bbb53 100644 --- a/soc/arm/nxp_imx/rt/Kconfig.soc +++ b/soc/arm/nxp_imx/rt/Kconfig.soc @@ -17,7 +17,7 @@ config SOC_MIMXRT1051 select HAS_MCUX_LPSPI select HAS_MCUX_LPUART select CPU_HAS_FPU - select CPU_HAS_MPU + select CPU_HAS_ARM_MPU select INIT_ARM_PLL select INIT_SYS_PLL select INIT_USB1_PLL @@ -30,7 +30,7 @@ config SOC_MIMXRT1052 select HAS_MCUX_LPSPI select HAS_MCUX_LPUART select CPU_HAS_FPU - select CPU_HAS_MPU + select CPU_HAS_ARM_MPU select INIT_ARM_PLL select INIT_SYS_PLL select INIT_USB1_PLL diff --git a/soc/arm/nxp_kinetis/k6x/Kconfig.series b/soc/arm/nxp_kinetis/k6x/Kconfig.series index 74cb40054cf..84cbaa6ddfa 100644 --- a/soc/arm/nxp_kinetis/k6x/Kconfig.series +++ b/soc/arm/nxp_kinetis/k6x/Kconfig.series @@ -11,7 +11,7 @@ config SOC_SERIES_KINETIS_K6X select SOC_FAMILY_KINETIS select SYS_POWER_LOW_POWER_STATE_SUPPORTED select CPU_HAS_SYSTICK - select CPU_HAS_MPU + select CPU_HAS_NXP_MPU select CLOCK_CONTROL help Enable support for Kinetis K6x MCU series diff --git a/soc/arm/st_stm32/stm32f3/Kconfig.soc b/soc/arm/st_stm32/stm32f3/Kconfig.soc index 400cccb494f..b5290a4f85d 100644 --- a/soc/arm/st_stm32/stm32f3/Kconfig.soc +++ b/soc/arm/st_stm32/stm32f3/Kconfig.soc @@ -11,13 +11,13 @@ depends on SOC_SERIES_STM32F3X config SOC_STM32F303XC bool "STM32F303XC" - select CPU_HAS_MPU + select CPU_HAS_ARM_MPU config SOC_STM32F334X8 bool "STM32F334X8" config SOC_STM32F373XC bool "STM32F373XC" - select CPU_HAS_MPU + select CPU_HAS_ARM_MPU endchoice diff --git a/soc/arm/st_stm32/stm32f4/Kconfig.series b/soc/arm/st_stm32/stm32f4/Kconfig.series index 78b82be39a5..4d94b2ae130 100644 --- a/soc/arm/st_stm32/stm32f4/Kconfig.series +++ b/soc/arm/st_stm32/stm32f4/Kconfig.series @@ -12,7 +12,7 @@ config SOC_SERIES_STM32F4X select SOC_FAMILY_STM32 select SYS_POWER_LOW_POWER_STATE_SUPPORTED select HAS_STM32CUBE - select CPU_HAS_MPU + select CPU_HAS_ARM_MPU select CPU_HAS_SYSTICK select CLOCK_CONTROL_STM32_CUBE if CLOCK_CONTROL help diff --git a/soc/arm/st_stm32/stm32l4/Kconfig.series b/soc/arm/st_stm32/stm32l4/Kconfig.series index 98ab6067551..f9e6e2a4692 100644 --- a/soc/arm/st_stm32/stm32l4/Kconfig.series +++ b/soc/arm/st_stm32/stm32l4/Kconfig.series @@ -13,7 +13,7 @@ config SOC_SERIES_STM32L4X select SOC_FAMILY_STM32 select SYS_POWER_LOW_POWER_STATE_SUPPORTED select HAS_STM32CUBE - select CPU_HAS_MPU + select CPU_HAS_ARM_MPU select CPU_HAS_SYSTICK select CLOCK_CONTROL_STM32_CUBE if CLOCK_CONTROL help