U-Boot OMAP GPMC ECC change
Roger Quadros
rogerq at kernel.org
Fri May 19 14:41:34 CEST 2023
Hi Colin,
On 19/05/2023 02:19, Colin Foster wrote:
> Hi Roger,
>
> I really appreciate the help!
>
> On Thu, May 18, 2023 at 01:55:38PM +0300, Roger Quadros wrote:
>> Hi Colin,
>>
>> On 17/05/2023 22:39, Colin Foster wrote:
>>>
>>> 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.
>
> I can "fix" the issue by just commenting out the "ECC uncorrectable
> errors" print :-)
lol
>
>>
>>> 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.
>
> Interesting. With the "ecc" prints in U-Boot I also get some non-zero
> values:
>
> ecc: 0
> ecc: 6bff997b
> ecc: 6bff997b
> ecc: 6bff997b
>
>
> Once I'm booted, I can use nanddump. It seems like everything is correct
> from the Linux side of things:
>
> # nanddump -f mlo_dump /dev/mtd0
> ECC failed: 0
> ECC corrected: 0
> Number of bad blocks: 0
> Number of bbt blocks: 0
> Block size 131072, page size 2048, OOB size 64
> Dumping data starting at 0x00000000 and ending at 0x00020000...
>
> # nanddump -f uboot1_dump /dev/mtd1
> ECC failed: 0
> ECC corrected: 0
> Number of bad blocks: 0
> Number of bbt blocks: 0
> Block size 131072, page size 2048, OOB size 64
> Dumping data starting at 0x00000000 and ending at 0x00180000...
>
> # nanddump -f uboot2_dump /dev/mtd2
> ECC failed: 0
> ECC corrected: 0
> Number of bad blocks: 0
> Number of bbt blocks: 0
> Block size 131072, page size 2048, OOB size 64
> Dumping data starting at 0x00000000 and ending at 0x00180000...
>
> # nanddump -f /dev/null /dev/mtd3
> ECC failed: 0
> ECC corrected: 6
> Number of bad blocks: 0
> Number of bbt blocks: 0
> Block size 131072, page size 2048, OOB size 64
> Dumping data starting at 0x00000000 and ending at 0x1fce0000...
> ECC: 1 corrected bitflip(s) at offset 0x0ab30800
> ECC: 1 corrected bitflip(s) at offset 0x0b008800
> ECC: 1 corrected bitflip(s) at offset 0x0deaa000
> ECC: 1 corrected bitflip(s) at offset 0x0ea5b000
> ECC: 1 corrected bitflip(s) at offset 0x0ecbc000
> ECC: 1 corrected bitflip(s) at offset 0x0ed61800
>
>
>> Can you please share your spl/u-boot.cfg?
>
> Attached
Couple of questions there
1) CONFIG_MTDPARTS_DEFAULT "mtdparts=nandflash:0x20000(xload_raw),0x180000(u-boot),0x180000(u-boot-2),0x1fce0000(main)"
Is this correct and matches with what kernel sees?
I couldn't see the NAND partition table in the Kernel Device tree patch.
2)
#define CONFIG_SYS_NAND_U_BOOT_OFFS 0x20000
#define CONFIG_SYS_NAND_U_BOOT_OFFS_REDUND 0x1a0000
These don't seem to match what you have defined in MTDPARTS_DEFAULT.
Which one is correct?
How do you flash the MLO and u-boot image to NAND?
I tried on AM335x-EVM and it works fine both before and after commit 04fcd25873.
Once change I had to do was to increase the u-boot partition size
as u-boot image does not fit in original partition size.
-----boot log follows-----
U-Boot SPL 2023.01-rc4-00381-g04fcd25873-dirty (May 19 2023 - 15:10:15 +0300)
Trying to boot from NAND
U-Boot 2023.01-rc4-00381-g04fcd25873-dirty (May 19 2023 - 15:10:15 +0300)
CPU : AM335X-GP rev 1.0
Model: TI AM335x EVM
DRAM: 512 MiB
Core: 156 devices, 17 uclasses, devicetree: separate
WDT: Started wdt at 44e35000 with servicing every 1000ms (60s timeout)
NAND: 256 MiB
MMC: OMAP SD/MMC: 0
Loading Environment from FAT... Unable to read "uboot.env" from mmc0:1...
<ethaddr> not set. Validating first E-fuse MAC
Net: eth2: ethernet at 4a100000, eth3: usb_ether
Hit any key to stop autoboot: 0
=>
=> mtd
device nand0 <nand.0>, # parts = 10
#: name size offset mask_flags
0: NAND.SPL 0x00020000 0x00000000 0
1: NAND.SPL.backup1 0x00020000 0x00020000 0
2: NAND.SPL.backup2 0x00020000 0x00040000 0
3: NAND.SPL.backup3 0x00020000 0x00060000 0
4: NAND.u-boot-spl-os 0x00040000 0x00080000 0
5: NAND.u-boot 0x00200000 0x000c0000 0
6: NAND.u-boot-env 0x00020000 0x002c0000 0
7: NAND.u-boot-env.backup10x00020000 0x002e0000 0
8: NAND.kernel 0x00700000 0x00300000 0
9: NAND.file-system 0x0f600000 0x00a00000 0
--
cheers,
-roger
More information about the U-Boot
mailing list