mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-26 06:30:39 +00:00
sunxi: binman: Add U-Boot binary size check
The U-Boot binary may trip over its actual allocated size in the storage. In such a case, the environment will not be readable anymore (because corrupted when the new image was flashed), and any attempt at using saveenv to reconstruct the environment will result in a corrupted U-Boot binary. Reviewed-by: Andre Przywara <andre.przywara@arm.com> Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
This commit is contained in:
parent
ce2e44d836
commit
819f1e081c
1 changed files with 12 additions and 0 deletions
|
@ -1,5 +1,14 @@
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This is the maximum size the U-Boot binary can be, which is basically
|
||||||
|
* the start of the environment, minus the start of the U-Boot binary in
|
||||||
|
* the MMC. This makes the assumption that the MMC is using 512-bytes
|
||||||
|
* blocks, but devices using something other than that remains to be
|
||||||
|
* seen.
|
||||||
|
*/
|
||||||
|
#define UBOOT_MMC_MAX_SIZE (CONFIG_ENV_OFFSET - (CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR * 512))
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
binman {
|
binman {
|
||||||
filename = "u-boot-sunxi-with-spl.bin";
|
filename = "u-boot-sunxi-with-spl.bin";
|
||||||
|
@ -8,6 +17,9 @@
|
||||||
filename = "spl/sunxi-spl.bin";
|
filename = "spl/sunxi-spl.bin";
|
||||||
};
|
};
|
||||||
u-boot-img {
|
u-boot-img {
|
||||||
|
#ifdef CONFIG_MMC
|
||||||
|
size = <UBOOT_MMC_MAX_SIZE>;
|
||||||
|
#endif
|
||||||
pos = <CONFIG_SPL_PAD_TO>;
|
pos = <CONFIG_SPL_PAD_TO>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue