Provide an option in DT to use legacy bch geometry, which compatible
with the 3.10 kernel bch setting. To enable the feature, adding
"fsl,legacy-bch-geometry" under gpmi-nand node.
NOTICE: The feature must be enabled/disabled in both u-boot and kernel.
Signed-off-by: Han Xu <han.xu@nxp.com>
Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
return -EINVAL;
}
- if (!(chip->ecc_strength_ds > 0 && chip->ecc_step_ds > 0) &&
- (mtd->oobsize < 1024)) {
+ if ((!(chip->ecc_strength_ds > 0 && chip->ecc_step_ds > 0) &&
+ mtd->oobsize < 1024) || nand_info->legacy_bch_geometry) {
dev_warn(this->dev, "use legacy bch geometry\n");
return mxs_nand_legacy_calc_ecc_layout(geo, mtd);
}
info->use_minimum_ecc = dev_read_bool(dev, "fsl,use-minimum-ecc");
+ info->legacy_bch_geometry = dev_read_bool(dev, "fsl,legacy-bch-geometry");
+
return mxs_nand_init_ctrl(info);
}
struct udevice *dev;
unsigned int max_ecc_strength_supported;
bool use_minimum_ecc;
+ /* legacy bch geometry flag */
+ bool legacy_bch_geometry;
int cur_chip;
uint32_t cmd_queue_len;