1
0
mirror of https://xff.cz/git/u-boot/ synced 2025-11-03 03:46:02 +01:00

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>
This commit is contained in:
Sean Anderson
2023-11-08 11:48:43 -05:00
committed by Tom Rini
parent afdd2d98c2
commit 5271e359a4
21 changed files with 78 additions and 41 deletions

View File

@@ -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,