cmd: nandbcb: Reconstruct the nandbcb tool for all platforms
authorHan Xu <han.xu@nxp.com>
Tue, 5 May 2020 14:04:03 +0000 (22:04 +0800)
committerStefano Babic <sbabic@denx.de>
Sun, 10 May 2020 18:55:20 +0000 (20:55 +0200)
commit214b7d534d420e9377d7f9e4c364123e33b0233d
tree1f6909a8bf15fc152a3138df59e19d3983493832
parent49f84547057f4c4c268c0567a11052a8975450e2
cmd: nandbcb: Reconstruct the nandbcb tool for all platforms

The original nandbcb tool was designed for imx6 only, when trying to
leverage it to replace the kobs-ng tool, we found the design is not
friendly for supporting all platforms. To support all iMX6/7/8 platforms
and for easy further maintain, I reconstruct the structure of the tool.

The main changes including:

1. Use platform_data to determine the logic branches rather than simply
   use SOC name.
2. More data structures as parameter for functions.
3. Global variables to define the FCB/DBBT/FW locations.
4. Implement the kobs-ng default 4 FCB/4 DBBT/2 FW layout.
5. Support Hamming coding/ 40bit BCH/ 62bit BCH coding FCB.
6. Dump and compare all written FCB/DBBT to verify data integrity.

The tool has been verified on iMX6Q/DL, 6SX, 7D, 6ULL, iMX8QX, iMX8MM.

Signed-off-by: Han Xu <han.xu@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
arch/arm/include/asm/mach-imx/imx-nandbcb.h
arch/arm/mach-imx/cmd_nandbcb.c