From 0ea4fc4dcf90ef0281ee413892ba3281de3f54c8 Mon Sep 17 00:00:00 2001 From: Hannes Schmelzer Date: Thu, 16 May 2019 17:24:19 +0200 Subject: board/BuR: invalidate ${dtbaddr} before cfgscr The first memory location of ${dtbaddr} may be still valid after a warm restart of the machine and 'fdt addr ${dtbaddr}' doesn't recognize that the cfgscript didn't run properly and fallback mechanism with copying the internal fdt ${fdtcontroladdr} to ${dtbaddr} doesn't catch this. To get sure that we have proper failsafe behaviour we simply zero the first memory location of ${dtbaddr} for getting sure that the fdt is invalid if cfgscript didn't run. Signed-off-by: Hannes Schmelzer Signed-off-by: Hannes Schmelzer --- include/configs/brppt1.h | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/include/configs/brppt1.h b/include/configs/brppt1.h index 51af93a..82f3f1a 100644 --- a/include/configs/brppt1.h +++ b/include/configs/brppt1.h @@ -66,7 +66,8 @@ #define NANDTGTS \ "mtdids=" CONFIG_MTDIDS_DEFAULT "\0" \ "mtdparts=" CONFIG_MTDPARTS_DEFAULT "\0" \ -"cfgscr=nand read ${cfgaddr} cfgscr && source ${cfgaddr}\0" \ +"cfgscr=mw ${dtbaddr} 0; nand read ${cfgaddr} cfgscr && source ${cfgaddr};" \ +" fdt addr ${dtbaddr} || cp ${fdtcontroladdr} ${dtbaddr} 4000\0" \ "nandargs=setenv bootargs console=${console} ${optargs} ${optargs_rot} " \ "root=mtd6 rootfstype=jffs2 b_mode=${b_mode}\0" \ "b_nand=nand read ${loadaddr} kernel; nand read ${dtbaddr} dtb; " \ @@ -104,7 +105,9 @@ #ifdef CONFIG_ENV_IS_IN_MMC #define MMCTGTS \ MMCSPI_TGTS \ -"cfgscr=mmc dev 1; mmc read ${cfgaddr} 200 80; source ${cfgaddr}\0" +"cfgscr=mw ${dtbaddr} 0;" \ +" mmc dev 1; mmc read ${cfgaddr} 200 80; source ${cfgaddr};" \ +" fdt addr ${dtbaddr} || cp ${fdtcontroladdr} ${dtbaddr} 4000\0" #else #define MMCTGTS "" #endif /* CONFIG_MMC */ @@ -112,7 +115,9 @@ MMCSPI_TGTS \ #ifdef CONFIG_SPI #define SPITGTS \ MMCSPI_TGTS \ -"cfgscr=sf probe; sf read ${cfgaddr} 0xC0000 10000; source ${cfgaddr}\0" +"cfgscr=mw ${dtbaddr} 0;" \ +" sf probe; sf read ${cfgaddr} 0xC0000 10000; source ${cfgaddr};" \ +" fdt addr ${dtbaddr} || cp ${fdtcontroladdr} ${dtbaddr} 4000\0" #else #define SPITGTS "" #endif /* CONFIG_SPI */ -- cgit v1.1