U-Boot OMAP GPMC ECC change

Roger Quadros rogerq at kernel.org
Thu May 18 12:55:38 CEST 2023


Hi Colin,

On 17/05/2023 22:39, Colin Foster wrote:
> Hi Roger,
> 
> Thanks for the tests. I attached the files and commented in line... but
> at the bottom of this email I have some findings...
> 
> On Wed, May 17, 2023 at 04:30:55PM +0300, Roger Quadros wrote:
>> Hi Colin,
>>
>> I just tested this on AM335x EVM which uses BCH8_CODE_HW but 8-bit NAND part.
>> I see that you are using 16-bit NAND.
>>
>> One more difference in u-boot configuration. For me:
>> CONFIG_NAND_OMAP_GPMC_PREFETCH=y
>>
>> Not sure if that matters but let's keep it set for now.
>>
>> For debug can you please apply the patch (at end) to u-boot at commit a95410696d21
>> (before breakage) and run the test.
>>

> All are attached.
> 
> However I have some other initial findings:
> 
> I swapped in just U-Boot (not the SPL) with your patch, and everything
> seems to work!
> 
> The issue of Uncorrectable ECC errors spam came from the SPL. Here's a
> snippet of the boot log with the "ecc" print as well as your patch:
> 

Thanks for the tests. Glad to hear issue is narrowed down to SPL.

> U-Boot SPL 2023.04-00029-g26a9ce5314-dirty (May 17 2023 - 12:06:49 -0700)
> OMAP4460-GP ES1.1
> Trying to boot from NAND
> ecc: 2420106
> ecc: ebd922f6
> ecc: 333f844f
> ecc: ab812f72

This is clearly the issue. They should all have been 0.

> omap-elm: uncorrectable ECC errors
> omap-elm: uncorrectable ECC errors
> omap-elm: uncorrectable ECC errors
> omap-elm: uncorrectable ECC errors
> ecc: 2420106
> ecc: ebd922f6
> ecc: 333f844f
> ecc: ab812f72
> omap-elm: uncorrectable ECC errors
> omap-elm: uncorrectable ECC errors
> omap-elm: uncorrectable ECC errors
> omap-elm: uncorrectable ECC errors


Can you please share your spl/u-boot.cfg?

We have a stripped down driver "am335x_spl_bch.c"
that deals with NAND at SPL.
I haven't really looked much at that driver but
it relies on omap_gpmc.c for

ecc.hwctl()
read_buf()
ecc.calculate()

We didn't do any functional change to these functions in commit 04fcd25873
unless something slipped through the cracks.

It seems to rely on following config options

CFG_SYS_NAND_ECCPOS
CONFIG_SYS_NAND_PAGE_COUNT
CONFIG_SYS_NAND_PAGE_SIZE
CONFIG_SYS_NAND_5_ADDR_CYCLE
CFG_SYS_NAND_ECCSIZE
CFG_SYS_NAND_ECCBYTES
CONFIG_SYS_NAND_OOBSIZE

Could you please share what they are set to
for your SPL build?

Meanwhile, I'll try to reproduce this on AM335x-EVM.

-- 
cheers,
-roger


More information about the U-Boot mailing list