From: Takahiro Kuwano <tkuw584924@gmail.com>
To: Miquel Raynal <miquel.raynal@bootlin.com>
Cc: linux-mtd@lists.infradead.org, richard@nod.at, vigneshr@ti.com,
tudor.ambarus@linaro.org, pratyush@kernel.org, mwalle@kernel.org,
kr.kim@skyhighmemory.com, zhi.feng@skyhighmemory.com,
Bacem.Daassi@infineon.com,
Takahiro Kuwano <Takahiro.Kuwano@infineon.com>
Subject: Re: [PATCH 1/2] mtd: spinand: Introduce a way to avoid raw access
Date: Wed, 13 Nov 2024 11:06:21 +0900 [thread overview]
Message-ID: <baeab3bf-fedf-4258-84d6-a0c53cb59ef0@gmail.com> (raw)
In-Reply-To: <87bjylsirs.fsf@bootlin.com>
Hi,
On 11/12/2024 3:54 AM, Miquel Raynal wrote:
> Hi,
>
> On 31/10/2024 at 11:21:54 +09, tkuw584924@gmail.com wrote:
>
>> From: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>
>>
>> SkyHigh spinand device has ECC enable bit in configuration register but
>> it must be always enabled. If ECC is disabled, read and write ops
>> results in undetermined state. For such devices, a way to avoid raw
>> access is needed.
>>
>> Introduce SPINAND_NO_RAW_ACCESS flag to advertise the device does not
>> support raw access. Read and write page in raw mode for the device
>> returns error.
>>
>> Checking and marking BBM need to be performed with ECC enabled to read
>> and write the BBM correctly.
>
> I see your point but I'm a bit puzzled by how it's being done.
>
> First, you disregard completely the isbad() and markbad()
> situations. Please have look into that because these functions are
> broken with your devices.
>
Yes... now I understand how they are broken.
> Second, what about adding this detail to the ondie ECC engine? You could
> simply return an error from there, so basically a single (or maybe two)
> changes overall.
>
Thank you for the suggestion.
How about change like below in prepare_finish_io_req()?
static int spinand_ondie_ecc_prepare_io_req(struct nand_device *nand,
struct nand_page_io_req *req)
{
struct spinand_device *spinand = nand_to_spinand(nand);
bool enable = (req->mode != MTD_OPS_RAW);
+ /*
+ * For the devices that prohibit raw access (on-die ECC must be always
+ * enabled), return error in case of raw data access. Accessing to OOB
+ * needs to be allowed with on-die ECC enabled to support BBM checking
+ * and marking.
+ */
+ if (!enable && spinand->flags & SPINAND_NO_RAW_ACCESS) {
+ if (req->datalen)
+ return -ENOTSUPP;
+
+ enable = true;
+ }
...
> Thanks,
> Miquèl
Thanks!
Takahiro
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
next prev parent reply other threads:[~2024-11-13 2:06 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-31 2:21 [PATCH 0/2] mtd: spinand: Add support for SkyHigh S35ML-3 family tkuw584924
2024-10-31 2:21 ` [PATCH 1/2] mtd: spinand: Introduce a way to avoid raw access tkuw584924
2024-11-11 18:54 ` Miquel Raynal
2024-11-13 2:06 ` Takahiro Kuwano [this message]
2024-11-13 9:11 ` Miquel Raynal
2024-11-13 10:51 ` Takahiro Kuwano
2024-10-31 2:21 ` [PATCH 2/2] mtd: spinand: Add support for SkyHigh S35ML-3 family tkuw584924
2024-11-11 18:49 ` Miquel Raynal
2024-11-11 18:44 ` [PATCH 0/2] " Miquel Raynal
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=baeab3bf-fedf-4258-84d6-a0c53cb59ef0@gmail.com \
--to=tkuw584924@gmail.com \
--cc=Bacem.Daassi@infineon.com \
--cc=Takahiro.Kuwano@infineon.com \
--cc=kr.kim@skyhighmemory.com \
--cc=linux-mtd@lists.infradead.org \
--cc=miquel.raynal@bootlin.com \
--cc=mwalle@kernel.org \
--cc=pratyush@kernel.org \
--cc=richard@nod.at \
--cc=tudor.ambarus@linaro.org \
--cc=vigneshr@ti.com \
--cc=zhi.feng@skyhighmemory.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.