On Wed, Aug 30, 2023 at 09:53:08PM -0600, Simon Glass wrote: > This CONFIG is used but is not given a value by some boards. Use > a default value of 0 explicitly, rather than relying on the 0 value > provided by CONFIG_SPL_LOAD_FIT_ADDRESS > > This will allow us to make SPL_LOAD_FIT_ADDRESS depend on SPL_LOAD_FIT > as it should. > > Signed-off-by: Simon Glass <[email protected]> > --- > > (no changes since v1) > > common/spl/spl_ram.c | 19 +++++++++++++------ > 1 file changed, 13 insertions(+), 6 deletions(-) > > diff --git a/common/spl/spl_ram.c b/common/spl/spl_ram.c > index 93cf420d810a..4158ed1c32d7 100644 > --- a/common/spl/spl_ram.c > +++ b/common/spl/spl_ram.c > @@ -20,12 +20,16 @@ > static ulong spl_ram_load_read(struct spl_load_info *load, ulong sector, > ulong count, void *buf) > { > - ulong addr; > + ulong addr = 0; > > debug("%s: sector %lx, count %lx, buf %lx\n", > __func__, sector, count, (ulong)buf); > > - addr = (ulong)CONFIG_SPL_LOAD_FIT_ADDRESS + sector; > + if (IS_ENABLED(CONFIG_SPL_LOAD_FIT)) { > + addr = IF_ENABLED_INT(CONFIG_SPL_LOAD_FIT, > + CONFIG_SPL_LOAD_FIT_ADDRESS); > + } > + addr += sector; > if (CONFIG_IS_ENABLED(IMAGE_PRE_LOAD)) > addr += image_load_offset; > > @@ -38,20 +42,23 @@ static int spl_ram_load_image(struct spl_image_info > *spl_image, > struct spl_boot_device *bootdev) > { > struct legacy_img_hdr *header; > + ulong addr = 0; > int ret; > > - header = (struct legacy_img_hdr *)CONFIG_SPL_LOAD_FIT_ADDRESS; > + if (IS_ENABLED(CONFIG_SPL_LOAD_FIT)) { > + addr = IF_ENABLED_INT(CONFIG_SPL_LOAD_FIT, > + CONFIG_SPL_LOAD_FIT_ADDRESS); > + } > > if (CONFIG_IS_ENABLED(IMAGE_PRE_LOAD)) { > - unsigned long addr = (unsigned long)header; > ret = image_pre_load(addr); > > if (ret) > return ret; > > addr += image_load_offset; > - header = (struct legacy_img_hdr *)addr; > } > + header = map_sysmem(addr, 0); > > #if CONFIG_IS_ENABLED(DFU) > if (bootdev->boot_device == BOOT_DEVICE_DFU) > @@ -84,7 +91,7 @@ static int spl_ram_load_image(struct spl_image_info > *spl_image, > u_boot_pos = > (ulong)spl_get_load_buffer(-sizeof(*header), > > sizeof(*header)); > } > - header = (struct legacy_img_hdr *)map_sysmem(u_boot_pos, 0); > + header = map_sysmem(u_boot_pos, 0); > > ret = spl_parse_image_header(spl_image, bootdev, header); > }
This makes the code less readable. Perhaps it needs to be refactored in to other files instead. -- Tom
signature.asc
Description: PGP signature

