On Sun, 5 Nov 2023 at 19:26, Sean Anderson <sean...@gmail.com> wrote: > > This converts the nand load method to use spl_load. nand_page_size may not > be valid until after nand_spl_load_image is called (see e.g. fsl_ifc_spl), > so we set bl_len in spl_nand_read. Since spl_load reads the header for us, > we can remove that argument from spl_nand_load_element. > > There are two possible regressions which could result from this commit. > First, we ask for a negative address from spl_get_load_buffer. That is, > instead of > > header = spl_get_load_buffer(0, sizeof(*header)); > > we do > > header = spl_get_load_buffer(-sizeof(*header), sizeof(*header)); > > this could cause a problem if spl_get_load_buffer does not return valid > memory for negative offsets. Second, we now set bl_len for legacy images. > This can cause memory up to a bl_len - 1 before the image load address to > be written, which might not have been the case before. If this turns out to > be a problem, we can add an option for a bounce buffer. > > We can't load FITs with external data with SPL_LOAD_FIT_FULL, so disable the > test in that case. No boards enable SPL_NAND_SUPPORT and SPL_LOAD_FIT_FULL, so > this is not a regression. > > Signed-off-by: Sean Anderson <sean...@gmail.com> > --- > > Changes in v6: > - New > > common/spl/spl_nand.c | 70 +++++++++----------------------------- > include/spl_load.h | 1 + > test/image/spl_load_nand.c | 2 ++ > 3 files changed, 19 insertions(+), 54 deletions(-) >
Reviewed-by: Simon Glass <s...@chromium.org>