[U-Boot] Broken ecc.size when switching between sw and hw ecc (beagleboard)

Orjan Friberg
2012-02-29T12:12:18Z

For the beagleboard, ecc.size is not explicitly set when doing 'nandecc
sw'. If it's not set for the NAND_ECC_SOFT case in nand_scan_tail, it's
set to 256 bytes.

When doing 'nandecc hw', ecc.size is set to 512 bytes. Hence, when
changing back to 'nandecc sw' ecc.size remains at 512 bytes and suddenly
the format has changed.

It seems the current nandecc command needs to set this explicitly, but
also needs to be augmented to be able to select the newly added 4/8-bit
BCH ECC.

But it also seems like nandecc selection should be more generic than for
omap3 (currently it lives in arch/arm/cpu/armv7/omap3/board.c).

I have seen that TI did some work on this previously in the
PSP04.02.00.07 release of u-boot and linux (2.6.37).

Is there ongoing work in this area? I'd be happy to help out if I can.

(I noticed the nand dump.oob seems to have been fixed in the
u-boot-nand-flash repo.)

Thanks,
Orjan