[PATCH 13/13] ARM: stm32mp: add RIFSC system bus driver for STM32MP25
Patrick DELAUNAY
patrick.delaunay at foss.st.com
Tue Apr 22 10:44:05 CEST 2025
Hi,
On 4/1/25 15:14, Patrice Chotard wrote:
> From: Patrick Delaunay <patrick.delaunay at foss.st.com>
>
> This driver is checking the access rights of the different
> peripherals connected to the RIFSC bus. If access is denied,
> the associated device is not binded.
>
> Signed-off-by: Gatien Chevallier <gatien.chevallier at foss.st.com>
> Signed-off-by: Patrick Delaunay <patrick.delaunay at foss.st.com>
> Signed-off-by: Patrice Chotard <patrice.chotard at foss.st.com>
>
> ---
>
> arch/arm/mach-stm32mp/include/mach/rif.h | 26 ++
> arch/arm/mach-stm32mp/stm32mp2/Makefile | 1 +
> arch/arm/mach-stm32mp/stm32mp2/rifsc.c | 364 +++++++++++++++++++++++
> 3 files changed, 391 insertions(+)
> create mode 100644 arch/arm/mach-stm32mp/include/mach/rif.h
> create mode 100644 arch/arm/mach-stm32mp/stm32mp2/rifsc.c
>
> diff --git a/arch/arm/mach-stm32mp/include/mach/rif.h b/arch/arm/mach-stm32mp/include/mach/rif.h
> new file mode 100644
> index 00000000000..10b22108120
> --- /dev/null
> +++ b/arch/arm/mach-stm32mp/include/mach/rif.h
> @@ -0,0 +1,26 @@
> +/* SPDX-License-Identifier: GPL-2.0-or-later OR BSD-3-Clause */
> +/*
> + * Copyright (C) 2023, STMicroelectronics - All Rights Reserved
> + */
> +
> +#ifndef MACH_RIF_H
> +#define MACH_RIF_H
> +
> +#include <linux/types.h>
> +
> +/**
> + * stm32_rifsc_check_access - Check RIF accesses for given device node
> + *
> + * @device_node Node of the device for which the accesses are checked
> + */
> +int stm32_rifsc_check_access(ofnode device_node);
> +
> +/**
> + * stm32_rifsc_check_access - Check RIF accesses for given id
> + *
> + * @device_node Node of the device to get a reference on RIFSC
> + * @id ID of the resource to check
> + */
> +int stm32_rifsc_check_access_by_id(ofnode device_node, u32 id);
> +
> +#endif /* MACH_RIF_H*/
> diff --git a/arch/arm/mach-stm32mp/stm32mp2/Makefile b/arch/arm/mach-stm32mp/stm32mp2/Makefile
> index b579ce5a800..5dbf75daa76 100644
> --- a/arch/arm/mach-stm32mp/stm32mp2/Makefile
> +++ b/arch/arm/mach-stm32mp/stm32mp2/Makefile
> @@ -5,5 +5,6 @@
>
> obj-y += cpu.o
> obj-y += arm64-mmu.o
> +obj-y += rifsc.o
> obj-$(CONFIG_OF_SYSTEM_SETUP) += fdt.o
> obj-$(CONFIG_STM32MP25X) += stm32mp25x.o
> diff --git a/arch/arm/mach-stm32mp/stm32mp2/rifsc.c b/arch/arm/mach-stm32mp/stm32mp2/rifsc.c
> new file mode 100644
> index 00000000000..48f65365376
> --- /dev/null
> +++ b/arch/arm/mach-stm32mp/stm32mp2/rifsc.c
> @@ -0,0 +1,364 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later OR BSD-3-Clause
> +/*
> + * Copyright (C) 2023, STMicroelectronics - All Rights Reserved
> + */
> +
> +#define LOG_CATEGORY UCLASS_SIMPLE_BUS
> +
minor:
#define LOG_CATEGORY UCLASS_NOP
to be coherent with driver
....
> +
> +U_BOOT_DRIVER(stm32_rifsc) = {
> + .name = "stm32_rifsc",
> + .id = UCLASS_NOP,
> + .of_match = stm32_rifsc_ids,
> + .bind = stm32_rifsc_bind,
> + .remove = stm32_rifsc_remove,
> + .child_post_bind = stm32_rifsc_child_post_bind,
> + .child_pre_probe = stm32_rifsc_child_pre_probe,
> + .child_post_remove = stm32_rifsc_child_post_remove,
> + .plat_auto = sizeof(struct stm32_rifsc_plat),
> + .per_child_plat_auto = sizeof(struct stm32_rifsc_child_plat),
> + .flags = DM_FLAG_OS_PREPARE,
> +};
Anyway
Reviewed-by: Patrick Delaunay <patrick.delaunay at foss.st.com>
Thanks
Patrick
More information about the U-Boot
mailing list