Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Removal of firewall_dt_probe_bus() and stm32mp25 firewall bus populate + RNG updates #7021

Open
wants to merge 7 commits into
base: master
Choose a base branch
from

Conversation

GseoC
Copy link
Contributor

@GseoC GseoC commented Sep 2, 2024

Remove firewall_dt_probe_bus() from the firewall framework as it seems unlikely that we can have a consensual implementation of this feature for every vendor.

This P-R adds the probing of peripherals under the RIFSC firewall bus. This means that from now on, access on peripherals when probing the RIFSC will be filtered to catch any firewall inconsistencies. In case the peripheral is shared between different context, the RIF semaphore is acquired, if available.

Also update the RNG to better handle the different platforms, pm and RCC resources.

Copy link
Contributor

@etienne-lms etienne-lms left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com> for commits
"drivers: firewall: remove firewall_dt_probe_bus()",
"dts: stm32: declare RIFSC as an access-controller on stm32mp2 platforms",
"drivers: stm32_rifsc: restrain access on non secure peripherals for OP-TEE",
"plat-stm32mp2: conf: default enable CFG_DRIVERS_FIREWALL"

Few minor comments for commits
"drivers: stm32_rng: update clock and power management" and
"drivers: stm32_rifsc: update RIFSC as a firewall controller".
It shouold be ok for me once addressed.

core/drivers/firewall/stm32_rifsc.c Outdated Show resolved Hide resolved
core/drivers/firewall/stm32_rifsc.c Outdated Show resolved Hide resolved
core/drivers/firewall/stm32_rifsc.c Outdated Show resolved Hide resolved
core/drivers/stm32_rng.c Outdated Show resolved Hide resolved
core/drivers/stm32_rng.c Outdated Show resolved Hide resolved
Remove firewall_dt_probe_bus() from the firewall framework as it seems
unlikely that we can have a consensual implementation of this feature.

Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
RIFSC is a firewall controller. Add the access-controllers property to
all RIFSC sub-nodes. Also add the "simple-bus" compatible for backward
compatibility and "#access-controllers-cells" to the RIFSC node.

Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
Use the new firewall API to populate the firewall bus and register
the RIFSC as a firewall provider.

While there, update device tree RIF macros and sort them in the correct
files. Register bit-field macros should be present in the driver while
device tree macros should be present in device tree bindings files.

Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
…P-TEE

Implement a driver specific firewall bus probe that will
only probe secure peripherals and implement firewall exceptions for
which no firewall operations will be done when CFG_INSECURE is set.
This allows, for example, to share a console with the non-secure world
for development purposes.

Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
Default enable the CFG_DRIVERS_FIREWALL switch that is used to enable
the support of the firewall framework.

Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
Better handle clock and reset resources by implementing
enable_rng_clock()/disable_rng_clock(). Do not implement a PM callback
if OP-TEE runs with a software RNG. Finally, implement shared resource
management only for stm32mp15x platforms as it is not used on other
platforms.

Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
Add the RNG node in the stm32mp251 SoC device tree file and default
enable it.

Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
@GseoC
Copy link
Contributor Author

GseoC commented Sep 30, 2024

Comments addressed

Copy link
Contributor

@etienne-lms etienne-lms left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com> for commits
"drivers: stm32_rifsc: update RIFSC as a firewall controller" and
"drivers: stm32_rng: update clock and power management".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants