[PATCH 2/2] xilinx: zynqmp: Enable reset_cpu() in SPL

Lukas Funke lukas.funke-oss at weidmueller.com
Mon Jun 3 16:50:32 CEST 2024


On 03.06.2024 16:32, Michal Simek wrote:
> 
> 
> On 6/3/24 15:34, lukas.funke-oss at weidmueller.com wrote:
>> From: Lukas Funke <lukas.funke at weidmueller.com>
>>
>> This commit enables SPL to reset the CPU via PMU-firmware. The usual
>> reset mechanism requires bl31 to be loaded which may not be the case in
>> SPL.
>>
>> Signed-off-by: Lukas Funke <lukas.funke at weidmueller.com>
>> ---
>>
>>   board/xilinx/zynqmp/zynqmp.c | 9 +++++++++
>>   1 file changed, 9 insertions(+)
>>
>> diff --git a/board/xilinx/zynqmp/zynqmp.c b/board/xilinx/zynqmp/zynqmp.c
>> index 95a134b972d..99f5c178c1d 100644
>> --- a/board/xilinx/zynqmp/zynqmp.c
>> +++ b/board/xilinx/zynqmp/zynqmp.c
>> @@ -40,6 +40,7 @@
>>   #include <linux/bitops.h>
>>   #include <linux/delay.h>
>>   #include <linux/sizes.h>
>> +#include <dt-bindings/reset/xlnx-zynqmp-resets.h>
>>   #include "../common/board.h"
>>   #include "pm_cfg_obj.h"
>> @@ -285,6 +286,14 @@ int dram_init(void)
>>   #if !CONFIG_IS_ENABLED(SYSRESET)
>>   void reset_cpu(void)
>>   {
>> +    if (!CONFIG_IS_ENABLED(ZYNQMP_FIRMWARE)) {
>> +        log_warning("reset failed: ZYNQMP_FIRMWARE disabled");
>> +        return;
>> +    }
>> +
>> +    xilinx_pm_request(PM_RESET_ASSERT,
>> +              ZYNQMP_PM_RESET_START + ZYNQMP_RESET_SOFT,
>> +              PM_RESET_ACTION_ASSERT, 0, 0, NULL);
> 
> If you disable ZYNQMP_FIRMWARE xilinx_pm_request() should fail.
> 
> we should likely fix it in drivers/mmc/zynq_sdhci.c:114

That's an odd place for a default implementation. I'd like to move the 
functions to a common location but I've no idea where. That's probably 
why the last developer moved it here. Any suggestions?

> 
> Thanks,
> Michal



More information about the U-Boot mailing list