Message ID | 20240202014849.4022787-1-festevam@gmail.com |
---|---|
State | Changes Requested |
Delegated to: | Fabio Estevam |
Headers | show |
Series | [1/2] mx6sabresd: Fix U-Boot corruption after saving the environment | expand |
On Thu, Feb 01, 2024 at 10:48:48PM -0300, Fabio Estevam wrote: > From: Fabio Estevam <festevam@denx.de> > > U-Boot binary has grown in such a way that it goes beyond the reserved > area for the environment variables. > > Running "saveenv" and rebooting the board causes U-Boot to hang because > of this overlap. > > Fix this problem by increasing the CONFIG_ENV_OFFSET. > > Also, to prevent this same problem to happen in the future, use > CONFIG_BOARD_SIZE_LIMIT, which can detect the overlap in build-time. > > CONFIG_BOARD_SIZE_LIMIT is calculated as follows: > > CONFIG_BOARD_SIZE_LIMIT = CONFIG_ENV_OFFSET - u-boot-img.dtb offset > CONFIG_BOARD_SIZE_LIMIT = 0xd000 - 69 * 1024 > CONFIG_BOARD_SIZE_LIMIT = 781312 > > Signed-off-by: Fabio Estevam <festevam@denx.de> > --- > configs/mx6sabresd_defconfig | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) I don't like when we have to move the environment like this, can we trim things down instead? Perhaps LTO?
diff --git a/configs/mx6sabresd_defconfig b/configs/mx6sabresd_defconfig index a90efe4a7786..f19df607e7ae 100644 --- a/configs/mx6sabresd_defconfig +++ b/configs/mx6sabresd_defconfig @@ -9,7 +9,7 @@ CONFIG_SPL_LIBGENERIC_SUPPORT=y CONFIG_NR_DRAM_BANKS=1 CONFIG_SF_DEFAULT_SPEED=20000000 CONFIG_ENV_SIZE=0x2000 -CONFIG_ENV_OFFSET=0xC0000 +CONFIG_ENV_OFFSET=0xd0000 CONFIG_MX6QDL=y CONFIG_TARGET_MX6SABRESD=y CONFIG_DM_GPIO=y @@ -24,6 +24,8 @@ CONFIG_PCI=y CONFIG_FIT=y CONFIG_SPL_FIT_PRINT=y CONFIG_SPL_LOAD_FIT=y +CONFIG_HAS_BOARD_SIZE_LIMIT=y +CONFIG_BOARD_SIZE_LIMIT=781312 CONFIG_SUPPORT_RAW_INITRD=y CONFIG_USE_BOOTCOMMAND=y CONFIG_BOOTCOMMAND="run findfdt;mmc dev ${mmcdev};if mmc rescan; then if run loadbootscript; then run bootscript; else if run loadimage; then run mmcboot; else run netboot; fi; fi; else run netboot; fi"