[PATCH v8 11/13] ARM: dts: stm32: put ETZPC as an access controller for STM32MP15x boards

Gatien Chevallier gatien.chevallier at foss.st.com
Tue Dec 12 07:23:54 PST 2023


Reference ETZPC as an access-control-provider.

For more information on which peripheral is securable or supports MCU
isolation, please read the STM32MP13 reference manual

Signed-off-by: Gatien Chevallier <gatien.chevallier at foss.st.com>
---

Patch not present in V6

 arch/arm/boot/dts/st/stm32mp151.dtsi  | 66 ++++++++++++++++++++++++++-
 arch/arm/boot/dts/st/stm32mp153.dtsi  |  2 +
 arch/arm/boot/dts/st/stm32mp15xc.dtsi |  1 +
 3 files changed, 68 insertions(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/st/stm32mp151.dtsi b/arch/arm/boot/dts/st/stm32mp151.dtsi
index 78c0d6ccdb09..8a40df8a097b 100644
--- a/arch/arm/boot/dts/st/stm32mp151.dtsi
+++ b/arch/arm/boot/dts/st/stm32mp151.dtsi
@@ -330,10 +330,11 @@ ts_cal2: calib at 5e {
 		};
 
 		etzpc: bus at 5c007000 {
-			compatible = "st,stm32-etzpc";
+			compatible = "st,stm32-etzpc", "simple-bus";
 			reg = <0x5c007000 0x400>;
 			#address-cells = <1>;
 			#size-cells = <1>;
+			#access-controller-cells = <1>;
 			ranges;
 
 			timers2: timer at 40000000 {
@@ -351,6 +352,7 @@ timers2: timer at 40000000 {
 				       <&dmamux1 21 0x400 0x1>,
 				       <&dmamux1 22 0x400 0x1>;
 				dma-names = "ch1", "ch2", "ch3", "ch4", "up";
+				access-controllers = <&etzpc 16>;
 				status = "disabled";
 
 				pwm {
@@ -387,6 +389,7 @@ timers3: timer at 40001000 {
 				       <&dmamux1 27 0x400 0x1>,
 				       <&dmamux1 28 0x400 0x1>;
 				dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig";
+				access-controllers = <&etzpc 17>;
 				status = "disabled";
 
 				pwm {
@@ -421,6 +424,7 @@ timers4: timer at 40002000 {
 				       <&dmamux1 31 0x400 0x1>,
 				       <&dmamux1 32 0x400 0x1>;
 				dma-names = "ch1", "ch2", "ch3", "ch4";
+				access-controllers = <&etzpc 18>;
 				status = "disabled";
 
 				pwm {
@@ -457,6 +461,7 @@ timers5: timer at 40003000 {
 				       <&dmamux1 59 0x400 0x1>,
 				       <&dmamux1 60 0x400 0x1>;
 				dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig";
+				access-controllers = <&etzpc 19>;
 				status = "disabled";
 
 				pwm {
@@ -488,6 +493,7 @@ timers6: timer at 40004000 {
 				clock-names = "int";
 				dmas = <&dmamux1 69 0x400 0x1>;
 				dma-names = "up";
+				access-controllers = <&etzpc 20>;
 				status = "disabled";
 
 				timer at 5 {
@@ -508,6 +514,7 @@ timers7: timer at 40005000 {
 				clock-names = "int";
 				dmas = <&dmamux1 70 0x400 0x1>;
 				dma-names = "up";
+				access-controllers = <&etzpc 21>;
 				status = "disabled";
 
 				timer at 6 {
@@ -526,6 +533,7 @@ timers12: timer at 40006000 {
 				interrupt-names = "global";
 				clocks = <&rcc TIM12_K>;
 				clock-names = "int";
+				access-controllers = <&etzpc 22>;
 				status = "disabled";
 
 				pwm {
@@ -550,6 +558,7 @@ timers13: timer at 40007000 {
 				interrupt-names = "global";
 				clocks = <&rcc TIM13_K>;
 				clock-names = "int";
+				access-controllers = <&etzpc 23>;
 				status = "disabled";
 
 				pwm {
@@ -574,6 +583,7 @@ timers14: timer at 40008000 {
 				interrupt-names = "global";
 				clocks = <&rcc TIM14_K>;
 				clock-names = "int";
+				access-controllers = <&etzpc 24>;
 				status = "disabled";
 
 				pwm {
@@ -598,6 +608,7 @@ lptimer1: timer at 40009000 {
 				clocks = <&rcc LPTIM1_K>;
 				clock-names = "mux";
 				wakeup-source;
+				access-controllers = <&etzpc 25>;
 				status = "disabled";
 
 				pwm {
@@ -626,6 +637,7 @@ i2s2: audio-controller at 4000b000 {
 				dmas = <&dmamux1 39 0x400 0x01>,
 				       <&dmamux1 40 0x400 0x01>;
 				dma-names = "rx", "tx";
+				access-controllers = <&etzpc 27>;
 				status = "disabled";
 			};
 
@@ -640,6 +652,7 @@ spi2: spi at 4000b000 {
 				dmas = <&dmamux1 39 0x400 0x05>,
 				       <&dmamux1 40 0x400 0x05>;
 				dma-names = "rx", "tx";
+				access-controllers = <&etzpc 27>;
 				status = "disabled";
 			};
 
@@ -651,6 +664,7 @@ i2s3: audio-controller at 4000c000 {
 				dmas = <&dmamux1 61 0x400 0x01>,
 				       <&dmamux1 62 0x400 0x01>;
 				dma-names = "rx", "tx";
+				access-controllers = <&etzpc 28>;
 				status = "disabled";
 			};
 
@@ -665,6 +679,7 @@ spi3: spi at 4000c000 {
 				dmas = <&dmamux1 61 0x400 0x05>,
 				       <&dmamux1 62 0x400 0x05>;
 				dma-names = "rx", "tx";
+				access-controllers = <&etzpc 28>;
 				status = "disabled";
 			};
 
@@ -678,6 +693,7 @@ spdifrx: audio-controller at 4000d000 {
 				dmas = <&dmamux1 93 0x400 0x01>,
 				       <&dmamux1 94 0x400 0x01>;
 				dma-names = "rx", "rx-ctrl";
+				access-controllers = <&etzpc 29>;
 				status = "disabled";
 			};
 
@@ -690,6 +706,7 @@ usart2: serial at 4000e000 {
 				dmas = <&dmamux1 43 0x400 0x15>,
 				       <&dmamux1 44 0x400 0x11>;
 				dma-names = "rx", "tx";
+				access-controllers = <&etzpc 30>;
 				status = "disabled";
 			};
 
@@ -702,6 +719,7 @@ usart3: serial at 4000f000 {
 				dmas = <&dmamux1 45 0x400 0x15>,
 				       <&dmamux1 46 0x400 0x11>;
 				dma-names = "rx", "tx";
+				access-controllers = <&etzpc 31>;
 				status = "disabled";
 			};
 
@@ -714,6 +732,7 @@ uart4: serial at 40010000 {
 				dmas = <&dmamux1 63 0x400 0x15>,
 				       <&dmamux1 64 0x400 0x11>;
 				dma-names = "rx", "tx";
+				access-controllers = <&etzpc 32>;
 				status = "disabled";
 			};
 
@@ -726,6 +745,7 @@ uart5: serial at 40011000 {
 				dmas = <&dmamux1 65 0x400 0x15>,
 				       <&dmamux1 66 0x400 0x11>;
 				dma-names = "rx", "tx";
+				access-controllers = <&etzpc 33>;
 				status = "disabled";
 			};
 
@@ -742,6 +762,7 @@ i2c1: i2c at 40012000 {
 				st,syscfg-fmp = <&syscfg 0x4 0x1>;
 				wakeup-source;
 				i2c-analog-filter;
+				access-controllers = <&etzpc 34>;
 				status = "disabled";
 			};
 
@@ -758,6 +779,7 @@ i2c2: i2c at 40013000 {
 				st,syscfg-fmp = <&syscfg 0x4 0x2>;
 				wakeup-source;
 				i2c-analog-filter;
+				access-controllers = <&etzpc 35>;
 				status = "disabled";
 			};
 
@@ -774,6 +796,7 @@ i2c3: i2c at 40014000 {
 				st,syscfg-fmp = <&syscfg 0x4 0x4>;
 				wakeup-source;
 				i2c-analog-filter;
+				access-controllers = <&etzpc 36>;
 				status = "disabled";
 			};
 
@@ -790,6 +813,7 @@ i2c5: i2c at 40015000 {
 				st,syscfg-fmp = <&syscfg 0x4 0x10>;
 				wakeup-source;
 				i2c-analog-filter;
+				access-controllers = <&etzpc 37>;
 				status = "disabled";
 			};
 
@@ -799,6 +823,7 @@ cec: cec at 40016000 {
 				interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&rcc CEC_K>, <&rcc CEC>;
 				clock-names = "cec", "hdmi-cec";
+				access-controllers = <&etzpc 38>;
 				status = "disabled";
 			};
 
@@ -809,6 +834,7 @@ dac: dac at 40017000 {
 				clock-names = "pclk";
 				#address-cells = <1>;
 				#size-cells = <0>;
+				access-controllers = <&etzpc 39>;
 				status = "disabled";
 
 				dac1: dac at 1 {
@@ -835,6 +861,7 @@ uart7: serial at 40018000 {
 				dmas = <&dmamux1 79 0x400 0x15>,
 				       <&dmamux1 80 0x400 0x11>;
 				dma-names = "rx", "tx";
+				access-controllers = <&etzpc 40>;
 				status = "disabled";
 			};
 
@@ -847,6 +874,7 @@ uart8: serial at 40019000 {
 				dmas = <&dmamux1 81 0x400 0x15>,
 				       <&dmamux1 82 0x400 0x11>;
 				dma-names = "rx", "tx";
+				access-controllers = <&etzpc 41>;
 				status = "disabled";
 			};
 
@@ -871,6 +899,7 @@ timers1: timer at 44000000 {
 				       <&dmamux1 17 0x400 0x1>;
 				dma-names = "ch1", "ch2", "ch3", "ch4",
 					    "up", "trig", "com";
+				access-controllers = <&etzpc 48>;
 				status = "disabled";
 
 				pwm {
@@ -912,6 +941,7 @@ timers8: timer at 44001000 {
 				       <&dmamux1 53 0x400 0x1>;
 				dma-names = "ch1", "ch2", "ch3", "ch4",
 					    "up", "trig", "com";
+				access-controllers = <&etzpc 49>;
 				status = "disabled";
 
 				pwm {
@@ -941,6 +971,7 @@ usart6: serial at 44003000 {
 				dmas = <&dmamux1 71 0x400 0x15>,
 				<&dmamux1 72 0x400 0x11>;
 				dma-names = "rx", "tx";
+				access-controllers = <&etzpc 51>;
 				status = "disabled";
 			};
 
@@ -952,6 +983,7 @@ i2s1: audio-controller at 44004000 {
 				dmas = <&dmamux1 37 0x400 0x01>,
 				<&dmamux1 38 0x400 0x01>;
 				dma-names = "rx", "tx";
+				access-controllers = <&etzpc 52>;
 				status = "disabled";
 			};
 
@@ -966,6 +998,7 @@ spi1: spi at 44004000 {
 				dmas = <&dmamux1 37 0x400 0x05>,
 				<&dmamux1 38 0x400 0x05>;
 				dma-names = "rx", "tx";
+				access-controllers = <&etzpc 52>;
 				status = "disabled";
 			};
 
@@ -980,6 +1013,7 @@ spi4: spi at 44005000 {
 				dmas = <&dmamux1 83 0x400 0x05>,
 				<&dmamux1 84 0x400 0x05>;
 				dma-names = "rx", "tx";
+				access-controllers = <&etzpc 53>;
 				status = "disabled";
 			};
 
@@ -997,6 +1031,7 @@ timers15: timer at 44006000 {
 				       <&dmamux1 107 0x400 0x1>,
 				       <&dmamux1 108 0x400 0x1>;
 				dma-names = "ch1", "up", "trig", "com";
+				access-controllers = <&etzpc 54>;
 				status = "disabled";
 
 				pwm {
@@ -1024,6 +1059,7 @@ timers16: timer at 44007000 {
 				dmas = <&dmamux1 109 0x400 0x1>,
 				<&dmamux1 110 0x400 0x1>;
 				dma-names = "ch1", "up";
+				access-controllers = <&etzpc 55>;
 				status = "disabled";
 
 				pwm {
@@ -1050,6 +1086,7 @@ timers17: timer at 44008000 {
 				dmas = <&dmamux1 111 0x400 0x1>,
 				<&dmamux1 112 0x400 0x1>;
 				dma-names = "ch1", "up";
+				access-controllers = <&etzpc 56>;
 				status = "disabled";
 
 				pwm {
@@ -1076,6 +1113,7 @@ spi5: spi at 44009000 {
 				dmas = <&dmamux1 85 0x400 0x05>,
 				<&dmamux1 86 0x400 0x05>;
 				dma-names = "rx", "tx";
+				access-controllers = <&etzpc 57>;
 				status = "disabled";
 			};
 
@@ -1087,6 +1125,7 @@ sai1: sai at 4400a000 {
 				reg = <0x4400a000 0x4>, <0x4400a3f0 0x10>;
 				interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
 				resets = <&rcc SAI1_R>;
+				access-controllers = <&etzpc 58>;
 				status = "disabled";
 
 				sai1a: audio-controller at 4400a004 {
@@ -1119,6 +1158,7 @@ sai2: sai at 4400b000 {
 				reg = <0x4400b000 0x4>, <0x4400b3f0 0x10>;
 				interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
 				resets = <&rcc SAI2_R>;
+				access-controllers = <&etzpc 59>;
 				status = "disabled";
 
 				sai2a: audio-controller at 4400b004 {
@@ -1150,6 +1190,7 @@ sai3: sai at 4400c000 {
 				reg = <0x4400c000 0x4>, <0x4400c3f0 0x10>;
 				interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
 				resets = <&rcc SAI3_R>;
+				access-controllers = <&etzpc 60>;
 				status = "disabled";
 
 				sai3a: audio-controller at 4400c004 {
@@ -1180,6 +1221,7 @@ dfsdm: dfsdm at 4400d000 {
 				clock-names = "dfsdm";
 				#address-cells = <1>;
 				#size-cells = <0>;
+				access-controllers = <&etzpc 61>;
 				status = "disabled";
 
 				dfsdm0: filter at 0 {
@@ -1259,6 +1301,7 @@ dma1: dma-controller at 48000000 {
 				#dma-cells = <4>;
 				st,mem2mem;
 				dma-requests = <8>;
+				access-controllers = <&etzpc 88>;
 			};
 
 			dma2: dma-controller at 48001000 {
@@ -1277,6 +1320,7 @@ dma2: dma-controller at 48001000 {
 				#dma-cells = <4>;
 				st,mem2mem;
 				dma-requests = <8>;
+				access-controllers = <&etzpc 89>;
 			};
 
 			dmamux1: dma-router at 48002000 {
@@ -1288,6 +1332,7 @@ dmamux1: dma-router at 48002000 {
 				dma-channels = <16>;
 				clocks = <&rcc DMAMUX>;
 				resets = <&rcc DMAMUX_R>;
+				access-controllers = <&etzpc 90>;
 			};
 
 			adc: adc at 48003000 {
@@ -1302,6 +1347,7 @@ adc: adc at 48003000 {
 				#interrupt-cells = <1>;
 				#address-cells = <1>;
 				#size-cells = <0>;
+				access-controllers = <&etzpc 72>;
 				status = "disabled";
 
 				adc1: adc at 0 {
@@ -1352,6 +1398,7 @@ sdmmc3: mmc at 48004000 {
 				cap-sd-highspeed;
 				cap-mmc-highspeed;
 				max-frequency = <120000000>;
+				access-controllers = <&etzpc 86>;
 				status = "disabled";
 			};
 
@@ -1369,6 +1416,7 @@ usbotg_hs: usb-otg at 49000000 {
 				dr_mode = "otg";
 				otg-rev = <0x200>;
 				usb33d-supply = <&usb33>;
+				access-controllers = <&etzpc 85>;
 				status = "disabled";
 			};
 
@@ -1381,6 +1429,7 @@ dcmi: dcmi at 4c006000 {
 				clock-names = "mclk";
 				dmas = <&dmamux1 75 0x400 0x01>;
 				dma-names = "tx";
+				access-controllers = <&etzpc 70>;
 				status = "disabled";
 			};
 
@@ -1393,6 +1442,7 @@ lptimer2: timer at 50021000 {
 				clocks = <&rcc LPTIM2_K>;
 				clock-names = "mux";
 				wakeup-source;
+				access-controllers = <&etzpc 64>;
 				status = "disabled";
 
 				pwm {
@@ -1422,6 +1472,7 @@ lptimer3: timer at 50022000 {
 				clocks = <&rcc LPTIM3_K>;
 				clock-names = "mux";
 				wakeup-source;
+				access-controllers = <&etzpc 65>;
 				status = "disabled";
 
 				pwm {
@@ -1444,6 +1495,7 @@ lptimer4: timer at 50023000 {
 				clocks = <&rcc LPTIM4_K>;
 				clock-names = "mux";
 				wakeup-source;
+				access-controllers = <&etzpc 66>;
 				status = "disabled";
 
 				pwm {
@@ -1460,6 +1512,7 @@ lptimer5: timer at 50024000 {
 				clocks = <&rcc LPTIM5_K>;
 				clock-names = "mux";
 				wakeup-source;
+				access-controllers = <&etzpc 67>;
 				status = "disabled";
 
 				pwm {
@@ -1475,6 +1528,7 @@ vrefbuf: vrefbuf at 50025000 {
 				regulator-min-microvolt = <1500000>;
 				regulator-max-microvolt = <2500000>;
 				clocks = <&rcc VREF>;
+				access-controllers = <&etzpc 69>;
 				status = "disabled";
 			};
 
@@ -1486,6 +1540,7 @@ sai4: sai at 50027000 {
 				reg = <0x50027000 0x4>, <0x500273f0 0x10>;
 				interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
 				resets = <&rcc SAI4_R>;
+				access-controllers = <&etzpc 68>;
 				status = "disabled";
 
 				sai4a: audio-controller at 50027004 {
@@ -1518,6 +1573,7 @@ hash1: hash at 54002000 {
 				dmas = <&mdma1 31 0x2 0x1000A02 0x0 0x0>;
 				dma-names = "in";
 				dma-maxburst = <2>;
+				access-controllers = <&etzpc 8>;
 				status = "disabled";
 			};
 
@@ -1526,6 +1582,7 @@ rng1: rng at 54003000 {
 				reg = <0x54003000 0x400>;
 				clocks = <&rcc RNG1_K>;
 				resets = <&rcc RNG1_R>;
+				access-controllers = <&etzpc 7>;
 				status = "okay";
 			};
 
@@ -1536,6 +1593,7 @@ fmc: memory-controller at 58002000 {
 				reg = <0x58002000 0x1000>;
 				clocks = <&rcc FMC_K>;
 				resets = <&rcc FMC_R>;
+				access-controllers = <&etzpc 91>;
 				status = "disabled";
 
 				ranges = <0 0 0x60000000 0x04000000>, /* EBI CS 1 */
@@ -1575,6 +1633,7 @@ qspi: spi at 58003000 {
 				resets = <&rcc QSPI_R>;
 				#address-cells = <1>;
 				#size-cells = <0>;
+				access-controllers = <&etzpc 92>;
 				status = "disabled";
 			};
 
@@ -1602,6 +1661,7 @@ ethernet0: ethernet at 5800a000 {
 				snps,en-tx-lpi-clockgating;
 				snps,axi-config = <&stmmac_axi_config_0>;
 				snps,tso;
+				access-controllers = <&etzpc 94>;
 				status = "disabled";
 
 				stmmac_axi_config_0: stmmac-axi-config {
@@ -1617,6 +1677,7 @@ usart1: serial at 5c000000 {
 				interrupts-extended = <&exti 26 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&rcc USART1_K>;
 				wakeup-source;
+				access-controllers = <&etzpc 3>;
 				status = "disabled";
 			};
 
@@ -1630,6 +1691,7 @@ spi6: spi at 5c001000 {
 				resets = <&rcc SPI6_R>;
 				dmas = <&mdma1 34 0x0 0x40008 0x0 0x0>,
 				       <&mdma1 35 0x0 0x40002 0x0 0x0>;
+				access-controllers = <&etzpc 4>;
 				dma-names = "rx", "tx";
 				status = "disabled";
 			};
@@ -1647,6 +1709,7 @@ i2c4: i2c at 5c002000 {
 				st,syscfg-fmp = <&syscfg 0x4 0x8>;
 				wakeup-source;
 				i2c-analog-filter;
+				access-controllers = <&etzpc 5>;
 				status = "disabled";
 			};
 
@@ -1663,6 +1726,7 @@ i2c6: i2c at 5c009000 {
 				st,syscfg-fmp = <&syscfg 0x4 0x20>;
 				wakeup-source;
 				i2c-analog-filter;
+				access-controllers = <&etzpc 12>;
 				status = "disabled";
 			};
 		};
diff --git a/arch/arm/boot/dts/st/stm32mp153.dtsi b/arch/arm/boot/dts/st/stm32mp153.dtsi
index 36e17ea0b179..4640dafb1598 100644
--- a/arch/arm/boot/dts/st/stm32mp153.dtsi
+++ b/arch/arm/boot/dts/st/stm32mp153.dtsi
@@ -41,6 +41,7 @@ m_can1: can at 4400e000 {
 		clocks = <&rcc CK_HSE>, <&rcc FDCAN_K>;
 		clock-names = "hclk", "cclk";
 		bosch,mram-cfg = <0x0 0 0 32 0 0 2 2>;
+		access-controllers = <&etzpc 62>;
 		status = "disabled";
 	};
 
@@ -54,6 +55,7 @@ m_can2: can at 4400f000 {
 		clocks = <&rcc CK_HSE>, <&rcc FDCAN_K>;
 		clock-names = "hclk", "cclk";
 		bosch,mram-cfg = <0x1400 0 0 32 0 0 2 2>;
+		access-controllers = <&etzpc 62>;
 		status = "disabled";
 	};
 };
diff --git a/arch/arm/boot/dts/st/stm32mp15xc.dtsi b/arch/arm/boot/dts/st/stm32mp15xc.dtsi
index d36c3457451a..97465717f932 100644
--- a/arch/arm/boot/dts/st/stm32mp15xc.dtsi
+++ b/arch/arm/boot/dts/st/stm32mp15xc.dtsi
@@ -11,6 +11,7 @@ cryp1: cryp at 54001000 {
 		interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&rcc CRYP1>;
 		resets = <&rcc CRYP1_R>;
+		access-controllers = <&etzpc 9>;
 		status = "disabled";
 	};
 };
-- 
2.25.1




More information about the linux-arm-kernel mailing list