Re: [PATCH] ARM: dts: omap3-igep00x0: Fix nand ECC to maintain backward compatibility.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

2013/12/2 Gupta, Pekon <pekon@xxxxxx>:
>>From: Thomas Petazzoni [mailto:thomas.petazzoni@xxxxxxxxxxxxxxxxxx]
>>>On Mon, 2 Dec 2013 14:56:09 +0000, Gupta, Pekon wrote:
>>
>>> A query Why are you going backward from BCH8 to HAM1 ?
>>>
>>> HAM1 is just kept for legacy reasons, it's not at all recommended for new
>>> development. As some field results have shown that devices with
>>> HAM1 become un-usable very soon and start reporting uncorrectable errors
>>> because HAM1 can only handle single bit-flip, which is inadequate in field
>>> conditions and large page device wears-n-tears. (especially considering
>>> your device density is of order of 4Gb - mt29c4g96maz).
>>>
>>> Also, just to inform that BCH8_SW ecc-scheme is implemented in such
>>> a way that *only* error correction is handled using s/w library (lib/bch.c).
>>> Rest all ECC calculation is handled using GPMC hardware.
>>> So, the CPU penalty will be seen only when there are bit-flips found
>>> during Read access, which are of rare conditions, occurring only few times
>>> in multi-megabit transfers.
>>>
>>> Also, On top of that ecc-schemes implementations have been optimized.
>>> And the patch-series is under review on mainline kernel.
>>> http://lists.infradead.org/pipermail/linux-mtd/2013-November/thread.html
>>>
>>> (Apologies for long suggestion, but in summary please don't use HAM1
>>> for any new development. And with BCH8_SW you should see better
>>> bit-flip handling (longer device life) with no hit in performance).
>>
>>The crucial point here is that the interaction between the bootloader
>>and the kernel. The use case I have is that I'm flashing a filesystem
>>image from the bootloader, and mounting it from the kernel.
>>
>>Using a mainline 2013.10 U-Boot for IGEPv2 + the mainline kernel booted
>>in legacy mode (no Device Tree) works fine. Using the same 2013.10
>>U-Boot for IGEPv2 + the mainline kernel booted in DT no longer works,
>>because the kernel disagrees with the bootloader on the ECC scheme to
>>use.
>>
>>So I'm not saying that Hamming is better than BCH, certainly not. I'm
>>just saying that changing ECC scheme in the kernel without looking at
>>the more global picture of what support the bootloaders are offering is
>>not nice. At least, the bootloader should provide a command, or option,
>>to be able to use an ECC scheme that is compatible with what the kernel
>>expects.
>>
> Yes, there is a way to change ecc-scheme in u-boot..
> Also, you can modify to any ecc-scheme in u-boot using
> "CONFIG_NAND_OMAP_ECCSCHEME" as documented in doc/README.nand
>
> Also your board should boot seamlessly from mainline u-boot in sync
> with mainline kernel. As per my knowledge following patch is already
> in mainline u-boot. And touches your board as well. (omap3_igep00x0.h)
> http://lists.denx.de/pipermail/u-boot/2013-November/167550.html
>
> AFAIK these patches should be in u-boot mainline.
>
> Though I have taken at-most care that no existing board should break.
> But, I'm sorry if there is something broken in between the u-boot and
> Kernel builds. Let me know if I can help in fixing that somehow.
>
>
> with regards, pekon

Thanks for the explanations to all.

Although the new ECC schema breaks the compatibility between the board
files and new DT based kernel, I think we should use BCH8 scheme.
Sorry, because I had not realized that this was configurable in
u-boot, so I think, if Thomas is also agree, the better fix in that
case is change CONFIG_NAND_OMAP_ECCSCHEME to
OMAP_ECC_BCH8_CODE_HW_DETECTION_SW in u-boot. If this works we can
discard this patch.

Best regards,
   Enric
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux