[U-Boot] [PATCH 1/2] spl: Fix redundant image of uboot
Lothar Waßmann
LW at KARO-electronics.de
Wed Jul 4 15:10:41 UTC 2018
Michael Nazzareno Trimarchi <michael at amarulasolutions.com> wrote:
> Hi
>
> On Wed, Jul 4, 2018 at 4:19 PM, Lothar Waßmann <LW at karo-electronics.de> wrote:
> > Hi,
> >
> > On Wed, 4 Jul 2018 15:53:36 +0200 Michael Trimarchi wrote:
> >> We need to address the redundat image case and undestand if the
> >> image is corrupted or not and fallback to the copy. The function
> >> used before was always return 0 without any evaluation of the
> >> error. We try to make it work properly
> >>
> >> Change-Id: Id6fc221c5cc08934b7324dd5d319b93c56e2e678
> >> Signed-off-by: Michael Trimarchi <michael at amarulasolutions.com>
> >> ---
> >> common/spl/spl_nand.c | 34 +++++++++++++++++++++++++---------
> >> 1 file changed, 25 insertions(+), 9 deletions(-)
> >>
> >> diff --git a/common/spl/spl_nand.c b/common/spl/spl_nand.c
> >> index 9a52500..b96fce2 100644
> >> --- a/common/spl/spl_nand.c
> >> +++ b/common/spl/spl_nand.c
> >> @@ -44,9 +44,7 @@ static int spl_nand_load_element(struct spl_image_info *spl_image,
> >> {
> >> int err;
> >>
> >> - err = nand_spl_load_image(offset, sizeof(*header), (void *)header);
> >> - if (err)
> >> - return err;
> >> + nand_spl_load_image(offset, sizeof(*header), (void *)header);
> >>
> >> if (IS_ENABLED(CONFIG_SPL_LOAD_FIT) &&
> >> image_get_magic(header) == FDT_MAGIC) {
> >> @@ -59,13 +57,31 @@ static int spl_nand_load_element(struct spl_image_info *spl_image,
> >> load.bl_len = 1;
> >> load.read = spl_nand_fit_read;
> >> return spl_load_simple_fit(spl_image, &load, offset, header);
> >> - } else {
> >> - err = spl_parse_image_header(spl_image, header);
> >> - if (err)
> >> - return err;
> >> - return nand_spl_load_image(offset, spl_image->size,
> >> - (void *)(ulong)spl_image->load_addr);
> >> }
> >> + err = spl_parse_image_header(spl_image, header);
> >> + if (err)
> >> + return err;
> >> +
> >> + nand_spl_load_image(offset, spl_image->size,
> >> + (void *)(ulong)spl_image->load_addr);
> >> +
> >> + /*
> >> + * Logic of the error is inverted for image_check* functions.
> >> + * We want to verify that header is correct and the data are correct
> >> + * for LEGACY image type
> >> + */
> >> + err = image_check_hcrc((const image_header_t *)spl_image->load_addr);
> >> + if (!err) {
> >>
> > Why not simply:
> > if (!image_check_hcrc(...) {
> >> + debug("Header checksum failed\n");
> >> + return -EINVAL;
> >> + }
> >> + err = image_check_dcrc((const image_header_t *)spl_image->load_addr);
> >> + if (!err) {
> >>
> > dto.
>
> Just because I want to be in the style of this file ;)
>
In other places the 'err' variable is used as return value.
If you don't need it for that, it's vain to assign a value to it.
Lothar Waßmann
--
___________________________________________________________
Ka-Ro electronics GmbH | Pascalstraße 22 | D - 52076 Aachen
Phone: +49 2408 1402-0 | Fax: +49 2408 1402-10
Geschäftsführer: Matthias Kaussen
Handelsregistereintrag: Amtsgericht Aachen, HRB 4996
www.karo-electronics.de | info at karo-electronics.de
___________________________________________________________
More information about the U-Boot
mailing list