Changelog:
- Check raw mode flag for backward compatbility
- Fix membership name in bch geometry structure.
- Fix the previous implementation that may ruin the BBM
- Adapt raw page accesses to match the new raw_read/write implementation
The old raw access implementation (in GPMI driver) was considering that
data and OOB data were separated in their respective regions (the data
area and the OOB area of the page), which is not true.
They are actually interleaved this way:
METADATA + ((DATA + ECCBYTES) * N)
The new raw access implementation (in the GPMI driver) is hiding this
weird
layout to MTD users by exposing a more common layout:
DATA + METADATA + (N * ECCBYTES)
Here METADATA + (N * ECCBYTES) are exposed as if they were stored in the
OOB area.
Unfortunately kobs-ng rely on this weird layout when accessing the NAND
in raw mode.
This patch is based on the Yocto equivalent:
https://github.com/Freescale/meta-fsl-arm/commit/
a7545b1
Signed-off-by: Andrew Webster <awebster@arcx.com>
Reviewed-by: Gary Bisson <gary.bisson@boundarydevices.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>