diff options
author | Sean Anderson <seanga2@gmail.com> | 2023-11-08 11:48:43 -0500 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2023-11-16 13:49:14 -0500 |
commit | 5271e359a46cc6a60d0048576326e2fa1527f231 (patch) | |
tree | 4eac04fe7c7fed86c53ff24c460df5827d623be2 /include/spl.h | |
parent | afdd2d98c29c443f348fd88198e59b78d50f4e2c (diff) | |
download | u-boot-5271e359a46cc6a60d0048576326e2fa1527f231.tar.gz u-boot-5271e359a46cc6a60d0048576326e2fa1527f231.tar.bz2 u-boot-5271e359a46cc6a60d0048576326e2fa1527f231.zip |
spl: Only support bl_len when we have to
Aligning addresses and sizes causes overhead which is unnecessary when we
are not loading from block devices. Remove bl_len when it is not needed.
For example, on iot2050 we save 144 bytes with this patch (once the rest of
this series is applied):
add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-144 (-144)
Function old new delta
spl_load_simple_fit 920 904 -16
load_simple_fit 496 444 -52
spl_spi_load_image 384 308 -76
Total: Before=87431, After=87287, chg -0.16%
We use panic() instead of BUILD_BUG_ON in spl_set_bl_len because we still
need to be able to compile it for things like mmc_load_image_raw_sector,
even if that function will not be used.
Signed-off-by: Sean Anderson <seanga2@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'include/spl.h')
-rw-r--r-- | include/spl.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/include/spl.h b/include/spl.h index fec656d301..03c5c5c66b 100644 --- a/include/spl.h +++ b/include/spl.h @@ -304,9 +304,34 @@ struct spl_load_info { */ ulong (*read)(struct spl_load_info *load, ulong sector, ulong count, void *buf); +#if IS_ENABLED(CONFIG_SPL_LOAD_BLOCK) int bl_len; }; +static inline int spl_get_bl_len(struct spl_load_info *info) +{ + return info->bl_len; +} + +static inline void spl_set_bl_len(struct spl_load_info *info, int bl_len) +{ + info->bl_len = bl_len; +} +#else +}; + +static inline int spl_get_bl_len(struct spl_load_info *info) +{ + return 1; +} + +static inline void spl_set_bl_len(struct spl_load_info *info, int bl_len) +{ + if (bl_len != 1) + panic("CONFIG_SPL_LOAD_BLOCK not enabled"); +} +#endif + /* * We need to know the position of U-Boot in memory so we can jump to it. We * allow any U-Boot binary to be used (u-boot.bin, u-boot-nodtb.bin, |