On Tue, Jun 26, 2018 at 4:37 AM, Ioan-Adrian Ratiu <adrian.ra...@ni.com> wrote: > From: Joe Hershberger <joe.hershber...@ni.com> > > When using a redundant environment a read error should simply mean to > not use that copy instead of giving up completely. The other copy may > be just fine. > > Signed-off-by: Joe Hershberger <joe.hershber...@ni.com> > Signed-off-by: Ioan-Adrian Ratiu <adrian.ra...@ni.com>
Hey Tom, can you pull this in? Thanks, -Joe > --- > tools/env/fw_env.c | 24 +++++++++++++++--------- > 1 file changed, 15 insertions(+), 9 deletions(-) > > diff --git a/tools/env/fw_env.c b/tools/env/fw_env.c > index a5d75958e1..3a5ad026f0 100644 > --- a/tools/env/fw_env.c > +++ b/tools/env/fw_env.c > @@ -1427,14 +1427,21 @@ int fw_env_open(struct env_opts *opts) > } > > dev_current = 0; > - if (flash_io(O_RDONLY)) { > + > + if (!flash_io(O_RDONLY)) { > + crc0 = crc32(0, (uint8_t *)environment.data, ENV_SIZE); > + crc0_ok = (crc0 == *environment.crc); > + } else if (have_redund_env) { > + /* > + * to give the redundant env a chance, maybe it's good: > + * mark env crc0 invalid then test below if crc1 is ok > + */ > + crc0_ok = 0; > + } else { > ret = -EIO; > goto open_cleanup; > } > > - crc0 = crc32(0, (uint8_t *)environment.data, ENV_SIZE); > - > - crc0_ok = (crc0 == *environment.crc); > if (!have_redund_env) { > if (!crc0_ok) { > fprintf(stderr, > @@ -1462,8 +1469,10 @@ int fw_env_open(struct env_opts *opts) > */ > environment.image = addr1; > if (flash_io(O_RDONLY)) { > - ret = -EIO; > - goto open_cleanup; > + crc1_ok = 0; > + } else { > + crc1 = crc32(0, (uint8_t *)redundant->data, ENV_SIZE); > + crc1_ok = (crc1 == redundant->crc); > } > > /* Check flag scheme compatibility */ > @@ -1489,9 +1498,6 @@ int fw_env_open(struct env_opts *opts) > goto open_cleanup; > } > > - crc1 = crc32(0, (uint8_t *)redundant->data, ENV_SIZE); > - > - crc1_ok = (crc1 == redundant->crc); > flag1 = redundant->flags; > > if (crc0_ok && !crc1_ok) { > -- > 2.17.1 > > _______________________________________________ > U-Boot mailing list > U-Boot@lists.denx.de > https://lists.denx.de/listinfo/u-boot _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot