On 11/26/19 3:34 AM, Masahiro Yamada wrote: > On Thu, Nov 21, 2019 at 6:37 AM Marek Vasut wrote: >> >> While the Denali NAND is initialized by the BootROM in SPL, there >> are still a couple of settings which are missing. These can trigger >> subtle corruption of the data read out of the NAND. Fill these >> settings in just like they are filled in by the full Denali NAND >> driver in denali_hw_init(). > > I'd like to know this in more detailed. > > I assume these registers are set up by the BootROM, > and SPL is supposed to read data in the same manner as the Boot ROM. > > In which situation does the data get corrupted?
When I boot the board, these registers are not set up correctly. The bootrom reads the SPL fine, but the SPL cannot read U-Boot anymore, probably because the bootrom does something funny to the controller settings. >> Signed-off-by: Marek Vasut <ma...@denx.de> >> Cc: Masahiro Yamada <yamada.masah...@socionext.com> >> --- >> drivers/mtd/nand/raw/denali_spl.c | 7 +++++++ >> 1 file changed, 7 insertions(+) >> >> diff --git a/drivers/mtd/nand/raw/denali_spl.c >> b/drivers/mtd/nand/raw/denali_spl.c >> index dbaba3cab2..b8b29812aa 100644 >> --- a/drivers/mtd/nand/raw/denali_spl.c >> +++ b/drivers/mtd/nand/raw/denali_spl.c >> @@ -173,6 +173,13 @@ void nand_init(void) >> page_size = readl(denali_flash_reg + DEVICE_MAIN_AREA_SIZE); >> oob_size = readl(denali_flash_reg + DEVICE_SPARE_AREA_SIZE); >> pages_per_block = readl(denali_flash_reg + PAGES_PER_BLOCK); >> + >> + /* Do as denali_hw_init() does. */ >> + writel(CONFIG_NAND_DENALI_SPARE_AREA_SKIP_BYTES, >> + denali_flash_reg + SPARE_AREA_SKIP_BYTES); > > I guess you tested this for SOCFPGA. > > Please tell me the value of CONFIG_NAND_DENALI_SPARE_AREA_SKIP_BYTES. 2 -- Best regards, Marek Vasut _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot