Message ID | 20231212152356.345703-5-gatien.chevallier@foss.st.com |
---|---|
State | Superseded |
Headers | show |
Series | Introduce STM32 Firewall framework | expand |
On Tue, Dec 12, 2023 at 04:23:47PM +0100, Gatien Chevallier wrote: > Document ETZPC (Extended TrustZone protection controller). ETZPC is a > firewall controller. > > Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com> > --- > > Changes in V6: > - Renamed access-controller to access-controllers > - Removal of access-control-provider property > - Removal of access-controller and access-controller-names > declaration in the patternProperties field. Add > additionalProperties: true in this field. > > Changes in V5: > - Renamed feature-domain* to access-control* > > Changes in V2: > - Corrected errors highlighted by Rob's robot > - No longer define the maxItems for the "feature-domains" > property > - Fix example (node name, status) > - Declare "feature-domain-names" as an optional > property for child nodes > - Fix description of "feature-domains" property > - Reordered the properties so it matches ETZPC > - Add missing "feature-domain-controller" property > > .../bindings/bus/st,stm32-etzpc.yaml | 87 +++++++++++++++++++ > 1 file changed, 87 insertions(+) > create mode 100644 Documentation/devicetree/bindings/bus/st,stm32-etzpc.yaml > > diff --git a/Documentation/devicetree/bindings/bus/st,stm32-etzpc.yaml b/Documentation/devicetree/bindings/bus/st,stm32-etzpc.yaml > new file mode 100644 > index 000000000000..9ca0ad39bc19 > --- /dev/null > +++ b/Documentation/devicetree/bindings/bus/st,stm32-etzpc.yaml > @@ -0,0 +1,87 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/bus/st,stm32-etzpc.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: STM32 Extended TrustZone protection controller > + > +description: | > + The ETZPC configures TrustZone security in a SoC having bus masters and > + devices with programmable-security attributes (securable resources). > + > +maintainers: > + - Gatien Chevallier <gatien.chevallier@foss.st.com> > + > +properties: > + compatible: > + contains: > + const: st,stm32-etzpc Same here, needs 'simple-bus'. > + > + reg: > + maxItems: 1 > + > + "#address-cells": > + const: 1 > + > + "#size-cells": > + const: 1 > + > + ranges: true > + > + "#access-controller-cells": > + const: 1 > + description: > + Contains the firewall ID associated to the peripheral. > + > +patternProperties: > + "^.*@[0-9a-f]+$": > + description: Peripherals > + type: object > + > + additionalProperties: true > + > + required: > + - access-controllers > + > +required: > + - compatible > + - reg > + - "#address-cells" > + - "#size-cells" > + - "#access-controller-cells" > + - ranges > + > +additionalProperties: false > + > +examples: > + - | > + // In this example, the usart2 device refers to rifsc as its access > + // controller. Looks like the comment is wrong. > + // Access rights are verified before creating devices. > + > + #include <dt-bindings/interrupt-controller/arm-gic.h> > + #include <dt-bindings/clock/stm32mp13-clks.h> > + #include <dt-bindings/reset/stm32mp13-resets.h> > + > + etzpc: bus@5c007000 { > + compatible = "st,stm32-etzpc"; > + reg = <0x5c007000 0x400>; > + #address-cells = <1>; > + #size-cells = <1>; > + #access-controller-cells = <1>; > + ranges; > + > + usart2: serial@4c001000 { > + compatible = "st,stm32h7-uart"; > + reg = <0x4c001000 0x400>; > + interrupts-extended = <&exti 27 IRQ_TYPE_LEVEL_HIGH>; > + clocks = <&rcc USART2_K>; > + resets = <&rcc USART2_R>; > + wakeup-source; > + dmas = <&dmamux1 43 0x400 0x5>, > + <&dmamux1 44 0x400 0x1>; > + dma-names = "rx", "tx"; > + access-controllers = <&etzpc 17>; > + }; > + }; > -- > 2.25.1 >
diff --git a/Documentation/devicetree/bindings/bus/st,stm32-etzpc.yaml b/Documentation/devicetree/bindings/bus/st,stm32-etzpc.yaml new file mode 100644 index 000000000000..9ca0ad39bc19 --- /dev/null +++ b/Documentation/devicetree/bindings/bus/st,stm32-etzpc.yaml @@ -0,0 +1,87 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/bus/st,stm32-etzpc.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: STM32 Extended TrustZone protection controller + +description: | + The ETZPC configures TrustZone security in a SoC having bus masters and + devices with programmable-security attributes (securable resources). + +maintainers: + - Gatien Chevallier <gatien.chevallier@foss.st.com> + +properties: + compatible: + contains: + const: st,stm32-etzpc + + reg: + maxItems: 1 + + "#address-cells": + const: 1 + + "#size-cells": + const: 1 + + ranges: true + + "#access-controller-cells": + const: 1 + description: + Contains the firewall ID associated to the peripheral. + +patternProperties: + "^.*@[0-9a-f]+$": + description: Peripherals + type: object + + additionalProperties: true + + required: + - access-controllers + +required: + - compatible + - reg + - "#address-cells" + - "#size-cells" + - "#access-controller-cells" + - ranges + +additionalProperties: false + +examples: + - | + // In this example, the usart2 device refers to rifsc as its access + // controller. + // Access rights are verified before creating devices. + + #include <dt-bindings/interrupt-controller/arm-gic.h> + #include <dt-bindings/clock/stm32mp13-clks.h> + #include <dt-bindings/reset/stm32mp13-resets.h> + + etzpc: bus@5c007000 { + compatible = "st,stm32-etzpc"; + reg = <0x5c007000 0x400>; + #address-cells = <1>; + #size-cells = <1>; + #access-controller-cells = <1>; + ranges; + + usart2: serial@4c001000 { + compatible = "st,stm32h7-uart"; + reg = <0x4c001000 0x400>; + interrupts-extended = <&exti 27 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&rcc USART2_K>; + resets = <&rcc USART2_R>; + wakeup-source; + dmas = <&dmamux1 43 0x400 0x5>, + <&dmamux1 44 0x400 0x1>; + dma-names = "rx", "tx"; + access-controllers = <&etzpc 17>; + }; + };
Document ETZPC (Extended TrustZone protection controller). ETZPC is a firewall controller. Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com> --- Changes in V6: - Renamed access-controller to access-controllers - Removal of access-control-provider property - Removal of access-controller and access-controller-names declaration in the patternProperties field. Add additionalProperties: true in this field. Changes in V5: - Renamed feature-domain* to access-control* Changes in V2: - Corrected errors highlighted by Rob's robot - No longer define the maxItems for the "feature-domains" property - Fix example (node name, status) - Declare "feature-domain-names" as an optional property for child nodes - Fix description of "feature-domains" property - Reordered the properties so it matches ETZPC - Add missing "feature-domain-controller" property .../bindings/bus/st,stm32-etzpc.yaml | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 Documentation/devicetree/bindings/bus/st,stm32-etzpc.yaml