mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-25 06:00:43 +00:00
am335x: update README for BCH16
updates documentation with explanation on how to select ECC schemes. Signed-off-by: Pekon Gupta <pekon@ti.com>
This commit is contained in:
parent
46840f66ca
commit
867f03040f
1 changed files with 42 additions and 0 deletions
|
@ -249,6 +249,48 @@ Platform specific options
|
||||||
8-bit BCH code with
|
8-bit BCH code with
|
||||||
- ecc calculation using GPMC hardware engine,
|
- ecc calculation using GPMC hardware engine,
|
||||||
- error detection using ELM hardware engine.
|
- error detection using ELM hardware engine.
|
||||||
|
OMAP_ECC_BCH16_CODE_HW
|
||||||
|
16-bit BCH code with
|
||||||
|
- ecc calculation using GPMC hardware engine,
|
||||||
|
- error detection using ELM hardware engine.
|
||||||
|
|
||||||
|
How to select ECC scheme on OMAP and AMxx platforms ?
|
||||||
|
-----------------------------------------------------
|
||||||
|
Though higher ECC schemes have more capability to detect and correct
|
||||||
|
bit-flips, but still selection of ECC scheme is dependent on following
|
||||||
|
- hardware engines present in SoC.
|
||||||
|
Some legacy OMAP SoC do not have ELM h/w engine thus such
|
||||||
|
SoC cannot support BCHx_HW ECC schemes.
|
||||||
|
- size of OOB/Spare region
|
||||||
|
With higher ECC schemes, more OOB/Spare area is required to
|
||||||
|
store ECC. So choice of ECC scheme is limited by NAND oobsize.
|
||||||
|
|
||||||
|
In general following expression can help:
|
||||||
|
NAND_OOBSIZE >= 2 + (NAND_PAGESIZE / 512) * ECC_BYTES
|
||||||
|
where
|
||||||
|
NAND_OOBSIZE = number of bytes available in
|
||||||
|
OOB/spare area per NAND page.
|
||||||
|
NAND_PAGESIZE = bytes in main-area of NAND page.
|
||||||
|
ECC_BYTES = number of ECC bytes generated to
|
||||||
|
protect 512 bytes of data, which is:
|
||||||
|
3 for HAM1_xx ecc schemes
|
||||||
|
7 for BCH4_xx ecc schemes
|
||||||
|
14 for BCH8_xx ecc schemes
|
||||||
|
26 for BCH16_xx ecc schemes
|
||||||
|
|
||||||
|
example to check for BCH16 on 2K page NAND
|
||||||
|
NAND_PAGESIZE = 2048
|
||||||
|
NAND_OOBSIZE = 64
|
||||||
|
2 + (2048 / 512) * 26 = 106 > NAND_OOBSIZE
|
||||||
|
Thus BCH16 cannot be supported on 2K page NAND.
|
||||||
|
|
||||||
|
However, for 4K pagesize NAND
|
||||||
|
NAND_PAGESIZE = 4096
|
||||||
|
NAND_OOBSIZE = 64
|
||||||
|
ECC_BYTES = 26
|
||||||
|
2 + (4096 / 512) * 26 = 210 < NAND_OOBSIZE
|
||||||
|
Thus BCH16 can be supported on 4K page NAND.
|
||||||
|
|
||||||
|
|
||||||
NOTE:
|
NOTE:
|
||||||
=====
|
=====
|
||||||
|
|
Loading…
Reference in a new issue