mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2025-12-24 10:52:13 +01:00
arm: armv8: Fix spl recover data section broken
SPL recover data section is broken which causes reboot failure on
some i.MX platforms (iMX8QM/iMX95).
The global variable cold_reboot_flag is assigned to weak reset_flag
function which always return 1, so restore never been executed in
warm reboot.
Fixes: 1c37e59bfbba ("arm: armv8: Improve SPL data save and restore implementation")
Signed-off-by: Ye Li <ye.li@nxp.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
This commit is contained in:
parent
210702ae6c
commit
2dbde3f9b0
@ -11,15 +11,15 @@ char __data_save_end[0] __section(".__data_save_end");
|
||||
|
||||
u32 cold_reboot_flag = 1;
|
||||
|
||||
u32 __weak reset_flag(void)
|
||||
u32 __weak reset_flag(u32 flag)
|
||||
{
|
||||
return 1;
|
||||
return flag;
|
||||
}
|
||||
|
||||
void spl_save_restore_data(void)
|
||||
{
|
||||
u32 data_size = __data_save_end - __data_save_start;
|
||||
cold_reboot_flag = reset_flag();
|
||||
cold_reboot_flag = reset_flag(cold_reboot_flag);
|
||||
|
||||
if (cold_reboot_flag == 1) {
|
||||
/* Save data section to data_save section */
|
||||
|
||||
@ -24,7 +24,7 @@
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
u32 reset_flag(void)
|
||||
u32 reset_flag(u32 flag)
|
||||
{
|
||||
/* Check rstmgr.stat for warm reset status */
|
||||
u32 status = readl(SOCFPGA_RSTMGR_ADDRESS);
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
u32 reset_flag(void)
|
||||
u32 reset_flag(u32 flag)
|
||||
{
|
||||
/* Check rstmgr.stat for warm reset status */
|
||||
u32 status = readl(SOCFPGA_RSTMGR_ADDRESS);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user