[PATCH 1/2] ARM: stm32mp: fix RIFSC semaphores acquisition

Patrice CHOTARD patrice.chotard at foss.st.com
Thu Sep 18 17:20:00 CEST 2025



On 9/10/25 17:51, Patrick DELAUNAY wrote:
> Hi,
> 
> On 8/8/25 16:03, Patrice Chotard wrote:
>> From: Gatien Chevallier <gatien.chevallier at foss.st.com>
>>
>> Fix RIFSC semaphores acquisition by not returning an error when the
>> current CID already possess the semaphore. Also fix an incorrect mask
>> for the CID value in the SEMCR register.
>>
>> Signed-off-by: Gatien Chevallier <gatien.chevallier at foss.st.com>
>> Signed-off-by: Patrice Chotard <patrice.chotard at foss.st.com>
>> ---
>>
>>   arch/arm/mach-stm32mp/stm32mp2/rifsc.c | 5 +++--
>>   1 file changed, 3 insertions(+), 2 deletions(-)
>>
>> diff --git a/arch/arm/mach-stm32mp/stm32mp2/rifsc.c b/arch/arm/mach-stm32mp/stm32mp2/rifsc.c
>> index 50dececf77b..136ed68bba1 100644
>> --- a/arch/arm/mach-stm32mp/stm32mp2/rifsc.c
>> +++ b/arch/arm/mach-stm32mp/stm32mp2/rifsc.c
>> @@ -73,7 +73,8 @@ static int stm32_rif_acquire_semaphore(void *base, u32 id)
>>       void *addr = base + RIFSC_RISC_PER0_SEMCR(id);
>>         /* Check that the semaphore is available */
>> -    if (!stm32_rif_is_semaphore_available(base, id))
>> +    if (!stm32_rif_is_semaphore_available(base, id) &&
>> +        FIELD_GET(RIFSC_RISC_SCID_MASK, (readl(addr)) != RIF_CID1))
>>           return -EACCES;
>>         setbits_le32(addr, SEMCR_MUTEX);
>> @@ -171,7 +172,7 @@ static int rifsc_check_access(void *base, u32 id)
>>               return -EACCES;
>>           }
>>           if (!stm32_rif_is_semaphore_available(base, id) &&
>> -            !(FIELD_GET(RIFSC_RISC_SCID_MASK, sem_reg_value) & BIT(RIF_CID1))) {
>> +            !(FIELD_GET(RIFSC_RISC_SCID_MASK, sem_reg_value) & RIF_CID1)) {
>>               log_debug("Semaphore unavailable for peripheral %d\n", id);
>>               return -EACCES;
>>           }
> 
> 
> 
> Reviewed-by: Patrick Delaunay <patrick.delaunay at foss.st.com>
> 
> Thanks
> Patrick
> 
> 

Applied to u-boot-stm32/next

Thanks
Patrice


More information about the U-Boot mailing list