* nand_ecc_is_strong_enough() doesn't trigger
@ 2024-04-11 10:06 Sascha Hauer
2024-05-07 12:30 ` Miquel Raynal
0 siblings, 1 reply; 2+ messages in thread
From: Sascha Hauer @ 2024-04-11 10:06 UTC (permalink / raw)
To: linux-mtd; +Cc: miquel.raynal
Hi,
I am currently working with a NAND chip requiring 4 bit correction per
512 byte data while my NAND driver only supports 1 bit correction, so
I would assume this to trigger:
/* ECC sanity check: warn if it's too weak */
if (!nand_ecc_is_strong_enough(&chip->base))
pr_warn("WARNING: %s: the ECC used on your system (%db/%dB) is too weak compared to the one required by the NAND chip (%db/%dB)\n",
mtd->name, chip->ecc.strength, chip->ecc.size,
nanddev_get_ecc_requirements(&chip->base)->strength,
nanddev_get_ecc_requirements(&chip->base)->step_size);
nand_ecc_is_strong_enough() works on nand->ecc.ctx.conf.step_size, but
this only ever seems to be initialized by the various ecc-sw-*
algorithms.
This was changed in 8c126720fe10 ("mtd: rawnand: Use the ECC framework
nand_ecc_is_strong_enough() helper"). Before this patch the initialized
values in &(struct nand_chip *chip)->ecc were used (and which are still
used in the warning message above).
Do you have a direction how this should be fixed?
Thanks
Sascha
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: nand_ecc_is_strong_enough() doesn't trigger
2024-04-11 10:06 nand_ecc_is_strong_enough() doesn't trigger Sascha Hauer
@ 2024-05-07 12:30 ` Miquel Raynal
0 siblings, 0 replies; 2+ messages in thread
From: Miquel Raynal @ 2024-05-07 12:30 UTC (permalink / raw)
To: Sascha Hauer; +Cc: linux-mtd
Hi,
s.hauer@pengutronix.de wrote on Thu, 11 Apr 2024 12:06:30 +0200:
> Hi,
>
> I am currently working with a NAND chip requiring 4 bit correction per
> 512 byte data while my NAND driver only supports 1 bit correction, so
> I would assume this to trigger:
>
> /* ECC sanity check: warn if it's too weak */
> if (!nand_ecc_is_strong_enough(&chip->base))
> pr_warn("WARNING: %s: the ECC used on your system (%db/%dB) is too weak compared to the one required by the NAND chip (%db/%dB)\n",
> mtd->name, chip->ecc.strength, chip->ecc.size,
> nanddev_get_ecc_requirements(&chip->base)->strength,
> nanddev_get_ecc_requirements(&chip->base)->step_size);
>
> nand_ecc_is_strong_enough() works on nand->ecc.ctx.conf.step_size, but
> this only ever seems to be initialized by the various ecc-sw-*
> algorithms.
>
> This was changed in 8c126720fe10 ("mtd: rawnand: Use the ECC framework
> nand_ecc_is_strong_enough() helper"). Before this patch the initialized
> values in &(struct nand_chip *chip)->ecc were used (and which are still
> used in the warning message above).
>
> Do you have a direction how this should be fixed?
I looked into it, we need to make sure the ECC values are propagated to
the upper layers. If other people are following the thread, here is the
proposal:
https://lore.kernel.org/linux-mtd/20240507085842.108844-1-miquel.raynal@bootlin.com/T/#u
Thanks,
Miquèl
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2024-05-07 12:30 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-04-11 10:06 nand_ecc_is_strong_enough() doesn't trigger Sascha Hauer
2024-05-07 12:30 ` Miquel Raynal
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox