[PATCH 2/2] xilinx: zynqmp: Enable reset_cpu() in SPL
Lukas Funke
lukas.funke-oss at weidmueller.com
Tue Jun 4 11:12:16 CEST 2024
On 03.06.2024 17:08, Michal Simek wrote:
>
>
> On 6/3/24 16:50, Lukas Funke wrote:
>> 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?
>
> static inline to include/zynqmp_firmware.h?
Sound like the right place.
Currently zynqmp is not buildable when disabling CONFIG_ZYNQMP_FIRMWARE.
I'm not sure if it even makes sense to disable it. Maybe this should be
enforced!?
However, I'll drop the 1/2 patch and convert 'CONFIG_IS_ENABLED' to
'IS_ENABLED' in v2 to get finish this series. Refactoring should be
addressed in another series.
Best regards
- Lukas
>
> M
More information about the U-Boot
mailing list