U-Boot OMAP GPMC ECC change

Roger Quadros rogerq at kernel.org
Sat May 13 07:59:46 CEST 2023



On 12/05/2023 19:05, Colin Foster wrote:
> Hi Roger,
> 
> On Fri, May 12, 2023 at 02:53:07PM +0300, Roger Quadros wrote:
>>
>>
>> On 10/05/2023 18:38, Colin Foster wrote:
>>>
>>> This is still out-of-U-Boot. I have an include/configs/our_product.h
>>> file with this:
>>>
>>> """
>>> #define CFG_SYS_NAND_ECCPOS             {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, \
>>>                                          13, 14, 15, 16, 17, 18, 19, 20, 21, 22, \
>>>                                          23, 24, 25, 26, 27, 28, 29, 30, 31, 32, \
>>>                                          33, 34, 35, 36, 37, 38, 39, 40, 41, \
>>>                                          42, 43, 44, 45, 46, 47, 48, 49, 50, 51, \
>>>                                          52, 53, 54, 55, 56, 57}
>>>
>>> #define CFG_SYS_NAND_ECCBYTES   14
>>> #define CFG_SYS_NAND_MAX_ECCPOS 57
>>
>> This should be 56 i.e. (57 - 2 + 1)
>> But it won't fix the issue you are facing. :P
> 
> Oh, good catch. I know when I was trying to get this working I had to
> play with these values quite a bit. I must have missed changing this at
> one point.
> 
>>
>>> #define CFG_SYS_NAND_ECCSIZE            512
>>> #define CFG_SYS_NAND_MAX_OOBFREE        2
>>> """
>>>
>>>
>>>> Can you please point me to the Linux device tree file if it exists?
>>>
>>> This is the latest submission. Still not accepted - I need to find time
>>> to button everything up and resubmit. My plan of attack was Kernel
>>> Acceptance, then U-Boot. Unfortunately my company lets the pesky
>>> "Shipping products" step get in the way :-)
>>>
>>> https://lkml.org/lkml/2023/2/22/939
>>>
>>> Or if you just want the ECC part:
>>>
>>> +	nandflash: nand at 0,0 {
>>> +		compatible = "ti,omap2-nand";
>>> +		reg = <0 0 4>;
>>> +		interrupt-parent = <&gpmc>;
>>> +
>>> +		nand-bus-width = <16>;
>>> +		ti,nand-ecc-opt = "bch8";
>>> +		ti,elm-id=<&elm>;
>>> +		linux,mtd-name = "micron,nand";
>>>
>>>
>>> I think that's all the info you're looking for. Let me know if I missed
>>> something.
>>
>> Yes this is all I was looking for.
>>
>> Is CONFIG_NAND_OMAP_ECCSCHEME_BCH8_CODE_HW set in your u-boot config?
> 
> Yes, it is set. I've attached our .config file. I just made a change to
> CONFIG_NAND_OMAP_GPMC_PREFETCH as a test, which didn't fix the issue.
> 
> And as another sanity check, I reverted the patch and have functionality
> again:
> 
> 
> """
> U-Boot SPL 2023.04-00029-g316faf4c46-dirty (May 12 2023 - 09:02:58 -0700)
> OMAP4460-GP ES1.1
> Trying to boot from NAND
> 
> 
> U-Boot 2023.04-00029-g316faf4c46-dirty (May 12 2023 - 09:02:58 -0700)
> 
> CPU  : OMAP4460-GP ES1.1
> """
> 
> 

OK. next step is to dump calculated ECC values while reading a block
and see if it is different in failing case and then debug why.
Let me prepare a patch for that.

-- 
cheers,
-roger


More information about the U-Boot mailing list