On 4/22/25 10:44, Patrick DELAUNAY wrote:
> Hi,
>
> On 4/1/25 15:14, Patrice Chotard wrote:
>> From: Patrick Delaunay <patrick.delau...@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.chevall...@foss.st.com>
>> Signed-off-by: Patrick Delaunay <patrick.delau...@foss.st.com>
>> Signed-off-by: Patrice Chotard <patrice.chot...@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
Right, i will update this.
Thanks
Patrice
>
> ....
>
>> +
>> +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.delau...@foss.st.com>
>
> Thanks
> Patrick
>
>