On Mon, Jun 06, 2016 at 10:16:58AM +0200, Boris Brezillon wrote: > On modern NAND it's more than recommended to have a backup copy of the > u-boot binary to recover from corruption: bitflips are quite common on > MLC NANDs, and the read-disturbance will corrupt your u-boot partitition > more quickly than what you would see on an SLC NAND. > > Add an extra Kconfig option to specify the offset of the redundant u-boot > image. > > Signed-off-by: Boris Brezillon <boris.brezil...@free-electrons.com> > Acked-by: Hans de Goede <hdego...@redhat.com> > > # Conflicts: > # common/spl/spl_nand.c > # drivers/mtd/nand/Kconfig > --- > common/spl/spl_nand.c | 5 +++++ > drivers/mtd/nand/Kconfig | 8 ++++++++ > 2 files changed, 13 insertions(+) > > diff --git a/common/spl/spl_nand.c b/common/spl/spl_nand.c > index bbd9546..d8c5b9e 100644 > --- a/common/spl/spl_nand.c > +++ b/common/spl/spl_nand.c > @@ -107,6 +107,11 @@ int spl_nand_load_image(void) > #endif > /* Load u-boot */ > err = spl_nand_load_element(CONFIG_SYS_NAND_U_BOOT_OFFS, header); > +#if CONFIG_SYS_NAND_U_BOOT_OFFS != CONFIG_SYS_NAND_U_BOOT_OFFS_REDUND > + if (err) > + err = spl_nand_load_element(CONFIG_SYS_NAND_U_BOOT_OFFS_REDUND, > + header); > +#endif > nand_deselect(); > return err; > } > diff --git a/drivers/mtd/nand/Kconfig b/drivers/mtd/nand/Kconfig > index 5fe169f..8c46a2f 100644 > --- a/drivers/mtd/nand/Kconfig > +++ b/drivers/mtd/nand/Kconfig > @@ -117,6 +117,14 @@ config SYS_NAND_U_BOOT_OFFS > Set the offset from the start of the nand where u-boot should be > loaded from. > > +config SYS_NAND_U_BOOT_OFFS_REDUND > + hex "Location in NAND to read U-Boot from" > + default SYS_NAND_U_BOOT_OFFS > + depends on SYS_NAND_U_BOOT_LOCATIONS > + help > + Set the offset from the start of the nand where the redundant u-boot > + should be loaded from. > + > config SPL_NAND_DENALI > bool "Support Denali NAND controller for SPL" > help
I'm adding the below ifdef while applying, so that the build doesn't break on targets that don't define CONFIG_SYS_NAND_U_BOOT_LOCATIONS. diff --git a/common/spl/spl_nand.c b/common/spl/spl_nand.c index 952f644..0e35e0f 100644 --- a/common/spl/spl_nand.c +++ b/common/spl/spl_nand.c @@ -134,11 +134,13 @@ int spl_nand_load_image(void) #endif /* Load u-boot */ err = spl_nand_load_element(CONFIG_SYS_NAND_U_BOOT_OFFS, header); +#ifdef CONFIG_SYS_NAND_U_BOOT_OFFS_REDUND #if CONFIG_SYS_NAND_U_BOOT_OFFS != CONFIG_SYS_NAND_U_BOOT_OFFS_REDUND if (err) err = spl_nand_load_element(CONFIG_SYS_NAND_U_BOOT_OFFS_REDUND, header); #endif +#endif nand_deselect(); return err; } -Scott _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot