[PATCH] ARM: mach-at91: fix multiple cpu_reset definition when enabling SYSRESET

Eugen.Hristev at microchip.com Eugen.Hristev at microchip.com
Tue Aug 24 11:51:24 CEST 2021


On 8/24/21 12:37 PM, Clément Léger wrote:
> Le Mon, 23 Aug 2021 07:42:58 +0000,
> <Eugen.Hristev at microchip.com> a écrit :
> 
>> On 8/4/21 5:55 PM, Clément Léger wrote:
>>> When SYSRESET is enabled, cpu_reset function is also defined in
>>> sysreset-uclass.c which lead to multiple definitions of this
>>> function since reset.c is build unconditionally. Add a check in
>>> Makefile to build this file only if SYSRESET isn't enabled.
>>> SYSRESET can be enabled when building SYSRESET_PSCI for instance on
>>> this platform.
>>
>> Hello Clement,
>>
>> Does this mean that in fact, the cpu_reset function from the reset.c
>> file has to be implemented as a reset driver in the sysreset uclass ?
> 
> Hello Eugen,
> 
> In fact, when SYSRESET is selected, the reset_cpu function is defined
> in sysreset-uclass.c. This function will then call the appropriate
> reset function according to registered reset drivers.

Yes, so, my assumption is then correct, the cpu_reset from reset.c 
should be converted to a real driver that has to be registered with the 
sysreset-uclass .

Meanwhile, I guess it's fine to avoid build errors when selecting the 
SYSRESET from menuconfig, so I will apply your patch. I wanted to make 
sure I fully understand the situation there.

Eugen

> 
> Clément
> 
>>
>> Eugen
>>
>>>
>>> Signed-off-by: Clément Léger <clement.leger at bootlin.com>
>>> ---
>>>    arch/arm/mach-at91/armv7/Makefile | 4 +++-
>>>    1 file changed, 3 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/arch/arm/mach-at91/armv7/Makefile
>>> b/arch/arm/mach-at91/armv7/Makefile index f5b2665957..246050b67b
>>> 100644 --- a/arch/arm/mach-at91/armv7/Makefile
>>> +++ b/arch/arm/mach-at91/armv7/Makefile
>>> @@ -11,7 +11,9 @@ obj-$(CONFIG_SAMA5D3) += sama5d3_devices.o clock.o
>>>    obj-$(CONFIG_SAMA5D4)  += sama5d4_devices.o clock.o
>>>    obj-$(CONFIG_SAMA7G5)  += sama7g5_devices.o
>>>    obj-y += cpu.o
>>> -obj-y += reset.o
>>> +ifndef CONFIG_$(SPL_TPL_)SYSRESET
>>> +obj-y  += reset.o
>>> +endif
>>>    ifneq ($(CONFIG_ATMEL_PIT_TIMER),y)
>>>    ifneq ($(CONFIG_MCHP_PIT64B_TIMER),y)
>>>    # old non-DM timer driver
>>> --
>>> 2.32.0
>>>
>>
> 
> 
> 
> --
> Clément Léger,
> Embedded Linux and Kernel engineer at Bootlin
> https://bootlin.com
> 



More information about the U-Boot mailing list