mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-24 21:54:01 +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
|
||||
- ecc calculation using GPMC 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:
|
||||
=====
|
||||
|
|
Loading…
Reference in a new issue