From 4b15873c13fc85e7dc47da67637c2778abaa87df Mon Sep 17 00:00:00 2001 From: Ioannis Glaropoulos Date: Tue, 18 Dec 2018 19:26:24 +0100 Subject: [PATCH] soc: arm: add ARM MPU node info and fixup for ARMv8-M SoCs This commit adds a DTS node for the ARM MPU peripheral in the device tree of ARMv8-M SoCs (for the secure and the non-secure DTS descriptions) and updates the fixup files. SoCs: - nrf9160 - musca_a - musca_b1 Signed-off-by: Ioannis Glaropoulos --- boards/arm/v2m_musca/v2m_musca.dts | 8 ++++++++ boards/arm/v2m_musca/v2m_musca_nonsecure.dts | 8 ++++++++ boards/arm/v2m_musca_b1/v2m_musca_b1.dts | 8 ++++++++ boards/arm/v2m_musca_b1/v2m_musca_b1_nonsecure.dts | 8 ++++++++ dts/arm/nordic/nrf9160.dtsi | 8 ++++++++ dts/arm/nordic/nrf9160ns.dtsi | 8 ++++++++ soc/arm/arm/musca_a/dts_fixup.h | 2 ++ soc/arm/arm/musca_b1/dts_fixup.h | 2 ++ soc/arm/nordic_nrf/nrf91/dts_fixup.h | 2 ++ 9 files changed, 54 insertions(+) diff --git a/boards/arm/v2m_musca/v2m_musca.dts b/boards/arm/v2m_musca/v2m_musca.dts index 23aaec1389b..24295acd784 100644 --- a/boards/arm/v2m_musca/v2m_musca.dts +++ b/boards/arm/v2m_musca/v2m_musca.dts @@ -28,6 +28,14 @@ device_type = "cpu"; compatible = "arm,cortex-m33"; reg = <0>; + #address-cells = <1>; + #size-cells = <1>; + + mpu: mpu@e000ed90 { + compatible = "arm,armv8m-mpu"; + reg = <0xe000ed90 0x40>; + arm,num-mpu-regions = <8>; + }; }; }; diff --git a/boards/arm/v2m_musca/v2m_musca_nonsecure.dts b/boards/arm/v2m_musca/v2m_musca_nonsecure.dts index 31d9aa0034d..a0d05b442bc 100644 --- a/boards/arm/v2m_musca/v2m_musca_nonsecure.dts +++ b/boards/arm/v2m_musca/v2m_musca_nonsecure.dts @@ -28,6 +28,14 @@ device_type = "cpu"; compatible = "arm,cortex-m33"; reg = <0>; + #address-cells = <1>; + #size-cells = <1>; + + mpu: mpu@e000ed90 { + compatible = "arm,armv8m-mpu"; + reg = <0xe000ed90 0x40>; + arm,num-mpu-regions = <8>; + }; }; }; diff --git a/boards/arm/v2m_musca_b1/v2m_musca_b1.dts b/boards/arm/v2m_musca_b1/v2m_musca_b1.dts index a0a0bff112d..e2678a80c4d 100644 --- a/boards/arm/v2m_musca_b1/v2m_musca_b1.dts +++ b/boards/arm/v2m_musca_b1/v2m_musca_b1.dts @@ -28,6 +28,14 @@ device_type = "cpu"; compatible = "arm,cortex-m33"; reg = <0>; + #address-cells = <1>; + #size-cells = <1>; + + mpu: mpu@e000ed90 { + compatible = "arm,armv8m-mpu"; + reg = <0xe000ed90 0x40>; + arm,num-mpu-regions = <8>; + }; }; }; diff --git a/boards/arm/v2m_musca_b1/v2m_musca_b1_nonsecure.dts b/boards/arm/v2m_musca_b1/v2m_musca_b1_nonsecure.dts index 6459a231c47..2fb1cca3caf 100644 --- a/boards/arm/v2m_musca_b1/v2m_musca_b1_nonsecure.dts +++ b/boards/arm/v2m_musca_b1/v2m_musca_b1_nonsecure.dts @@ -28,6 +28,14 @@ device_type = "cpu"; compatible = "arm,cortex-m33"; reg = <0>; + #address-cells = <1>; + #size-cells = <1>; + + mpu: mpu@e000ed90 { + compatible = "arm,armv8m-mpu"; + reg = <0xe000ed90 0x40>; + arm,num-mpu-regions = <8>; + }; }; }; diff --git a/dts/arm/nordic/nrf9160.dtsi b/dts/arm/nordic/nrf9160.dtsi index 1cc89cb5fb5..9f0037abcdc 100644 --- a/dts/arm/nordic/nrf9160.dtsi +++ b/dts/arm/nordic/nrf9160.dtsi @@ -17,6 +17,14 @@ device_type = "cpu"; compatible = "arm,cortex-m33f"; reg = <0>; + #address-cells = <1>; + #size-cells = <1>; + + mpu: mpu@e000ed90 { + compatible = "arm,armv8m-mpu"; + reg = <0xe000ed90 0x40>; + arm,num-mpu-regions = <16>; + }; }; }; diff --git a/dts/arm/nordic/nrf9160ns.dtsi b/dts/arm/nordic/nrf9160ns.dtsi index 5c4033f5faf..5e156ff4397 100644 --- a/dts/arm/nordic/nrf9160ns.dtsi +++ b/dts/arm/nordic/nrf9160ns.dtsi @@ -17,6 +17,14 @@ device_type = "cpu"; compatible = "arm,cortex-m33f"; reg = <0>; + #address-cells = <1>; + #size-cells = <1>; + + mpu: mpu@e000ed90 { + compatible = "arm,armv8m-mpu"; + reg = <0xe000ed90 0x40>; + arm,num-mpu-regions = <16>; + }; }; }; diff --git a/soc/arm/arm/musca_a/dts_fixup.h b/soc/arm/arm/musca_a/dts_fixup.h index c650e453163..ecae729d098 100644 --- a/soc/arm/arm/musca_a/dts_fixup.h +++ b/soc/arm/arm/musca_a/dts_fixup.h @@ -8,6 +8,8 @@ #define DT_NUM_IRQ_PRIO_BITS DT_ARM_V8M_NVIC_E000E100_ARM_NUM_IRQ_PRIORITY_BITS +#define DT_NUM_MPU_REGIONS DT_ARM_ARMV8M_MPU_E000ED90_ARM_NUM_MPU_REGIONS + #if defined (CONFIG_ARM_NONSECURE_FIRMWARE) /* CMSDK APB Universal Asynchronous Receiver-Transmitter (UART) */ diff --git a/soc/arm/arm/musca_b1/dts_fixup.h b/soc/arm/arm/musca_b1/dts_fixup.h index 2e43eb9aa6a..296ecca0cce 100644 --- a/soc/arm/arm/musca_b1/dts_fixup.h +++ b/soc/arm/arm/musca_b1/dts_fixup.h @@ -8,6 +8,8 @@ #define DT_NUM_IRQ_PRIO_BITS DT_ARM_V8M_NVIC_E000E100_ARM_NUM_IRQ_PRIORITY_BITS +#define DT_NUM_MPU_REGIONS DT_ARM_ARMV8M_MPU_E000ED90_ARM_NUM_MPU_REGIONS + #if defined (CONFIG_ARM_NONSECURE_FIRMWARE) /* CMSDK APB Universal Asynchronous Receiver-Transmitter (UART) */ diff --git a/soc/arm/nordic_nrf/nrf91/dts_fixup.h b/soc/arm/nordic_nrf/nrf91/dts_fixup.h index 575f3e77c3b..b16b17c790d 100644 --- a/soc/arm/nordic_nrf/nrf91/dts_fixup.h +++ b/soc/arm/nordic_nrf/nrf91/dts_fixup.h @@ -8,6 +8,8 @@ #define DT_NUM_IRQ_PRIO_BITS DT_ARM_V8M_NVIC_E000E100_ARM_NUM_IRQ_PRIORITY_BITS +#define DT_NUM_MPU_REGIONS DT_ARM_ARMV8M_MPU_E000ED90_ARM_NUM_MPU_REGIONS + #define DT_ADC_0_NAME DT_NORDIC_NRF_SAADC_ADC_0_LABEL #define DT_UART_0_NAME DT_NORDIC_NRF_UARTE_UART_0_LABEL