[PATCH] mtd: rawnand: mxc: Move the ECC engine initialization to the right place
Fabio Estevam
festevam at gmail.com
Fri Oct 16 13:37:14 EDT 2020
Hi Miquel,
On Fri, Oct 16, 2020 at 2:01 PM Miquel Raynal <miquel.raynal at bootlin.com> wrote:
> Software ECC is used, is it expected?
>
> Can you trace rawnand_dt_init() to see what happen in the engine_type
> choice?
I managed to resurrect an old imx27-pdk board here and reproduced the
same behavior as Sascha reported.
engine_type looks good. ecc.size is still 0.
I am using this debug patch:
--- a/drivers/mtd/nand/raw/nand_base.c
+++ b/drivers/mtd/nand/raw/nand_base.c
@@ -5036,6 +5036,12 @@ static int rawnand_dt_init(struct nand_chip *chip)
chip->ecc.strength = nand->ecc.user_conf.strength;
chip->ecc.size = nand->ecc.user_conf.step_size;
+
+ pr_info("********** chip->ecc.engine_type is %d\n",
chip->ecc.engine_type);
+ pr_info("********** chip->ecc.strength is %d\n", chip->ecc.strength);
+ pr_info("********** chip->ecc.size is %d\n", chip->ecc.size);
+ pr_info("********** chip->ecc.algo is %d\n", chip->ecc.algo);
+
return 0;
}
and I get:
nand: ********** chip->ecc.engine_type is 3
nand: ********** chip->ecc.strength is 0
nand: ********** chip->ecc.size is 0
nand: ********** chip->ecc.algo is 0
nand: device found, Manufacturer ID: 0xec, Chip ID: 0xaa
nand: Samsung NAND 256MiB 1,8V 8-bit
nand: 256 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
------------[ cut here ]------------
WARNING: CPU: 0 PID: 1 at drivers/mtd/nand/raw/mxc_nand.c:1391
mxc_nand_command+0x22c/0x280
Unimplemented command (cmd=0)
Modules linked in:
If I checkout commit d7157ff49a ("mtd: rawnand: Use the ECC framework
user input parsing bits") in today's linux-next and revert it, then
the driver probes fine and prints:
nand: ******** ecc.engine_type = 3
nand: ******** chip->ecc.strength = 0
nand: ******** chip->ecc.size = 512
Thanks
More information about the linux-mtd
mailing list