Document STM32 System Bus. This bus is intended to control firewall
access for the peripherals connected to it.
For every peripheral, the bus checks the firewall registers to see
if the peripheral is configured as non-secure. If the peripheral
is configured as secure, the node is marked populated, so the
device won't be probed.
This is useful as a firewall configuration sanity check and avoid
platform crashes in case peripherals are incorrectly configured.
The STM32 System Bus implements the feature-domain-controller
bindings. It is used by peripherals to reference a domain
controller, in this case the firewall feature domain.
The bus uses the ID referenced by the feature-domains property to
know where to look in the firewall to get the security configuration
for the peripheral. This allows a device tree description rather
than a hardcoded peripheral table in the bus driver.
On STM32MP13/15 platforms, the firewall bus is represented by the
ETZPC node, which is responsible for the securing / MCU isolating
the capable peripherals.
STM32MP13/15 device trees are updated in this series to implement
the bus. All peripherals that are securable or MCU isolation capable
by the ETZPC are connected to the bus.
Changes in V2:
- Corrected YAMLS errors highlighted by Rob's robot
- Re-ordered Signed-off-by tags in two patches
Changes in V3:
- Document feature-domains property in YAML documentation for
concerned periperals under the System Bus
- Fix STM32 System Bus YAML documentation
- Remove STM32 System bus bindings that were currently used
as helpers for device tree
- Correct few errors in driver
- Add missing peripherals under the System Bus that were in
SoC variation device tree files
- Fix node names
Gatien Chevallier (5):
dt-bindings: treewide: add feature-domains description in binding
files
dt-bindings: bus: add STM32 System Bus
bus: stm32_sys_bus: add support for STM32MP15 and STM32MP13 system bus
ARM: dts: stm32: add ETZPC as a system bus for STM32MP15x boards
ARM: dts: stm32: add ETZPC as a system bus for STM32MP13x boards
Oleksii Moisieiev (1):
dt-bindings: Document common device controller bindings
.../devicetree/bindings/bus/st,sys-bus.yaml | 127 +
.../bindings/crypto/st,stm32-hash.yaml | 5 +
.../devicetree/bindings/dma/st,stm32-dma.yaml | 5 +
.../bindings/dma/st,stm32-dmamux.yaml | 5 +
.../feature-domain-controller.yaml | 84 +
.../devicetree/bindings/i2c/st,stm32-i2c.yaml | 5 +
.../bindings/iio/adc/st,stm32-adc.yaml | 5 +
.../bindings/iio/adc/st,stm32-dfsdm-adc.yaml | 5 +
.../bindings/iio/dac/st,stm32-dac.yaml | 5 +
.../bindings/media/st,stm32-cec.yaml | 5 +
.../bindings/media/st,stm32-dcmi.yaml | 5 +
.../memory-controllers/st,stm32-fmc2-ebi.yaml | 5 +
.../bindings/mfd/st,stm32-lptimer.yaml | 5 +
.../bindings/mfd/st,stm32-timers.yaml | 6 +
.../devicetree/bindings/mmc/arm,pl18x.yaml | 5 +
.../devicetree/bindings/net/stm32-dwmac.yaml | 5 +
.../bindings/phy/phy-stm32-usbphyc.yaml | 5 +
.../bindings/regulator/st,stm32-vrefbuf.yaml | 5 +
.../devicetree/bindings/rng/st,stm32-rng.yaml | 5 +
.../bindings/serial/st,stm32-uart.yaml | 5 +
.../bindings/sound/st,stm32-i2s.yaml | 5 +
.../bindings/sound/st,stm32-sai.yaml | 5 +
.../bindings/sound/st,stm32-spdifrx.yaml | 5 +
.../bindings/spi/st,stm32-qspi.yaml | 5 +
.../devicetree/bindings/spi/st,stm32-spi.yaml | 5 +
.../devicetree/bindings/usb/dwc2.yaml | 5 +
MAINTAINERS | 6 +
arch/arm/boot/dts/stm32mp131.dtsi | 407 +--
arch/arm/boot/dts/stm32mp133.dtsi | 51 +-
arch/arm/boot/dts/stm32mp13xc.dtsi | 19 +-
arch/arm/boot/dts/stm32mp13xf.dtsi | 18 +-
arch/arm/boot/dts/stm32mp151.dtsi | 2722 +++++++++--------
arch/arm/boot/dts/stm32mp153.dtsi | 52 +-
arch/arm/boot/dts/stm32mp15xc.dtsi | 19 +-
drivers/bus/Kconfig | 9 +
drivers/bus/Makefile | 1 +
drivers/bus/stm32_sys_bus.c | 168 +
37 files changed, 2208 insertions(+), 1596 deletions(-)
create mode 100644 Documentation/devicetree/bindings/bus/st,sys-bus.yaml
create mode 100644 Documentation/devicetree/bindings/feature-controllers/feature-domain-controller.yaml
create mode 100644 drivers/bus/stm32_sys_bus.c
--
2.35.3
Hello all,
I'm abandoning this series for:
https://lore.kernel.org/lkml/20230705172759.1610753
Sorry for the noise.
Best regards,
Gatien
On 1/27/23 17:40, Gatien Chevallier wrote:
> Document STM32 System Bus. This bus is intended to control firewall
> access for the peripherals connected to it.
>
> For every peripheral, the bus checks the firewall registers to see
> if the peripheral is configured as non-secure. If the peripheral
> is configured as secure, the node is marked populated, so the
> device won't be probed.
>
> This is useful as a firewall configuration sanity check and avoid
> platform crashes in case peripherals are incorrectly configured.
>
> The STM32 System Bus implements the feature-domain-controller
> bindings. It is used by peripherals to reference a domain
> controller, in this case the firewall feature domain.
> The bus uses the ID referenced by the feature-domains property to
> know where to look in the firewall to get the security configuration
> for the peripheral. This allows a device tree description rather
> than a hardcoded peripheral table in the bus driver.
>
> On STM32MP13/15 platforms, the firewall bus is represented by the
> ETZPC node, which is responsible for the securing / MCU isolating
> the capable peripherals.
>
> STM32MP13/15 device trees are updated in this series to implement
> the bus. All peripherals that are securable or MCU isolation capable
> by the ETZPC are connected to the bus.
>
> Changes in V2:
> - Corrected YAMLS errors highlighted by Rob's robot
> - Re-ordered Signed-off-by tags in two patches
>
> Changes in V3:
> - Document feature-domains property in YAML documentation for
> concerned periperals under the System Bus
> - Fix STM32 System Bus YAML documentation
> - Remove STM32 System bus bindings that were currently used
> as helpers for device tree
> - Correct few errors in driver
> - Add missing peripherals under the System Bus that were in
> SoC variation device tree files
> - Fix node names
>
> Gatien Chevallier (5):
> dt-bindings: treewide: add feature-domains description in binding
> files
> dt-bindings: bus: add STM32 System Bus
> bus: stm32_sys_bus: add support for STM32MP15 and STM32MP13 system bus
> ARM: dts: stm32: add ETZPC as a system bus for STM32MP15x boards
> ARM: dts: stm32: add ETZPC as a system bus for STM32MP13x boards
>
> Oleksii Moisieiev (1):
> dt-bindings: Document common device controller bindings
>
> .../devicetree/bindings/bus/st,sys-bus.yaml | 127 +
> .../bindings/crypto/st,stm32-hash.yaml | 5 +
> .../devicetree/bindings/dma/st,stm32-dma.yaml | 5 +
> .../bindings/dma/st,stm32-dmamux.yaml | 5 +
> .../feature-domain-controller.yaml | 84 +
> .../devicetree/bindings/i2c/st,stm32-i2c.yaml | 5 +
> .../bindings/iio/adc/st,stm32-adc.yaml | 5 +
> .../bindings/iio/adc/st,stm32-dfsdm-adc.yaml | 5 +
> .../bindings/iio/dac/st,stm32-dac.yaml | 5 +
> .../bindings/media/st,stm32-cec.yaml | 5 +
> .../bindings/media/st,stm32-dcmi.yaml | 5 +
> .../memory-controllers/st,stm32-fmc2-ebi.yaml | 5 +
> .../bindings/mfd/st,stm32-lptimer.yaml | 5 +
> .../bindings/mfd/st,stm32-timers.yaml | 6 +
> .../devicetree/bindings/mmc/arm,pl18x.yaml | 5 +
> .../devicetree/bindings/net/stm32-dwmac.yaml | 5 +
> .../bindings/phy/phy-stm32-usbphyc.yaml | 5 +
> .../bindings/regulator/st,stm32-vrefbuf.yaml | 5 +
> .../devicetree/bindings/rng/st,stm32-rng.yaml | 5 +
> .../bindings/serial/st,stm32-uart.yaml | 5 +
> .../bindings/sound/st,stm32-i2s.yaml | 5 +
> .../bindings/sound/st,stm32-sai.yaml | 5 +
> .../bindings/sound/st,stm32-spdifrx.yaml | 5 +
> .../bindings/spi/st,stm32-qspi.yaml | 5 +
> .../devicetree/bindings/spi/st,stm32-spi.yaml | 5 +
> .../devicetree/bindings/usb/dwc2.yaml | 5 +
> MAINTAINERS | 6 +
> arch/arm/boot/dts/stm32mp131.dtsi | 407 +--
> arch/arm/boot/dts/stm32mp133.dtsi | 51 +-
> arch/arm/boot/dts/stm32mp13xc.dtsi | 19 +-
> arch/arm/boot/dts/stm32mp13xf.dtsi | 18 +-
> arch/arm/boot/dts/stm32mp151.dtsi | 2722 +++++++++--------
> arch/arm/boot/dts/stm32mp153.dtsi | 52 +-
> arch/arm/boot/dts/stm32mp15xc.dtsi | 19 +-
> drivers/bus/Kconfig | 9 +
> drivers/bus/Makefile | 1 +
> drivers/bus/stm32_sys_bus.c | 168 +
> 37 files changed, 2208 insertions(+), 1596 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/bus/st,sys-bus.yaml
> create mode 100644 Documentation/devicetree/bindings/feature-controllers/feature-domain-controller.yaml
> create mode 100644 drivers/bus/stm32_sys_bus.c
>