From: Michael Walle <michael@walle.cc>
To: Vignesh Raghavendra <vigneshr@ti.com>
Cc: linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org,
linux-api@vger.kernel.org,
Miquel Raynal <miquel.raynal@bootlin.com>,
Richard Weinberger <richard@nod.at>,
Tudor.Ambarus@microchip.com
Subject: Re: [RFC PATCH] mtd: add OTP (one-time-programmable) erase ioctl
Date: Tue, 02 Mar 2021 17:59:31 +0100 [thread overview]
Message-ID: <be9c984f7366aa891591f4e2d003a8b1@walle.cc> (raw)
In-Reply-To: <a4464459-dc49-d5de-d969-b9ea96b025d6@ti.com>
Am 2021-03-02 17:33, schrieb Vignesh Raghavendra:
> On 3/2/21 9:49 PM, Michael Walle wrote:
>> Am 2021-03-02 16:30, schrieb Vignesh Raghavendra:
>>> Hi,
>>>
>>> On 3/2/21 4:39 PM, Michael Walle wrote:
>>>> This may sound like a contradiction but some SPI-NOR flashes really
>>>> support erasing their OTP region until it is finally locked. Having
>>>> the
>>>> possibility to erase an OTP region might come in handy during
>>>> development.
>>>>
>>>> The ioctl argument follows the OTPLOCK style.
>>>>
>>>> Signed-off-by: Michael Walle <michael@walle.cc>
>>>> ---
>>>> OTP support for SPI-NOR flashes may be merged soon:
>>>> https://lore.kernel.org/linux-mtd/20210216162807.13509-1-michael@walle.cc/
>>>>
>>>>
>>>> Tudor suggested to add support for the OTP erase operation most
>>>> SPI-NOR
>>>> flashes have:
>>>> https://lore.kernel.org/linux-mtd/d4f74b1b-fa1b-97ec-858c-d807fe1f9e57@microchip.com/
>>>>
>>>>
>>>> Therefore, this is an RFC to get some feedback on the MTD side, once
>>>> this
>>>> is finished, I can post a patch for mtd-utils. Then we'll have a
>>>> foundation
>>>> to add the support to SPI-NOR.
>>>>
>>>> drivers/mtd/mtdchar.c | 7 ++++++-
>>>> drivers/mtd/mtdcore.c | 12 ++++++++++++
>>>> include/linux/mtd/mtd.h | 3 +++
>>>> include/uapi/mtd/mtd-abi.h | 2 ++
>>>> 4 files changed, 23 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/mtd/mtdchar.c b/drivers/mtd/mtdchar.c
>>>> index 323035d4f2d0..da423dd031ae 100644
>>>> --- a/drivers/mtd/mtdchar.c
>>>> +++ b/drivers/mtd/mtdchar.c
>>>> @@ -661,6 +661,7 @@ static int mtdchar_ioctl(struct file *file,
>>>> u_int
>>>> cmd, u_long arg)
>>>> case OTPGETREGIONCOUNT:
>>>> case OTPGETREGIONINFO:
>>>> case OTPLOCK:
>>>> + case OTPERASE:
>>>
>>> This is not a Safe IOCTL. We are destroying OTP data. Need to check
>>> for
>>> write permission before allowing the ioctl right?
>>
>> Ah yes, of course. But this makes me wonder why OTPLOCK
>> is considered a safe command. As well as MEMLOCK and
>> MEMUNLOCK. And MEMSETBADBLOCK. Shouldn't these also
>> require write permissions?
>>
>
> Well, one argument would be that LOCK/UNLOCK in itself won't modify
> data
> and thus does not need write permission.. Although can brick a flash
> from ever being writable again and change content of flash registers.
Whether not you can brick a device (I agree with you), it is writing
to the protection bits. But what is more imporant is that OTPLOCK
is actually write-once.
> I am fine with moving these to require write permissions as well
> (probably OTPLOCK as well).
Ok, I'm unsure about MEMSETBADBLOCK, though.
-michael
WARNING: multiple messages have this Message-ID (diff)
From: Michael Walle <michael@walle.cc>
To: Vignesh Raghavendra <vigneshr@ti.com>
Cc: linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org,
linux-api@vger.kernel.org,
Miquel Raynal <miquel.raynal@bootlin.com>,
Richard Weinberger <richard@nod.at>,
Tudor.Ambarus@microchip.com
Subject: Re: [RFC PATCH] mtd: add OTP (one-time-programmable) erase ioctl
Date: Tue, 02 Mar 2021 17:59:31 +0100 [thread overview]
Message-ID: <be9c984f7366aa891591f4e2d003a8b1@walle.cc> (raw)
In-Reply-To: <a4464459-dc49-d5de-d969-b9ea96b025d6@ti.com>
Am 2021-03-02 17:33, schrieb Vignesh Raghavendra:
> On 3/2/21 9:49 PM, Michael Walle wrote:
>> Am 2021-03-02 16:30, schrieb Vignesh Raghavendra:
>>> Hi,
>>>
>>> On 3/2/21 4:39 PM, Michael Walle wrote:
>>>> This may sound like a contradiction but some SPI-NOR flashes really
>>>> support erasing their OTP region until it is finally locked. Having
>>>> the
>>>> possibility to erase an OTP region might come in handy during
>>>> development.
>>>>
>>>> The ioctl argument follows the OTPLOCK style.
>>>>
>>>> Signed-off-by: Michael Walle <michael@walle.cc>
>>>> ---
>>>> OTP support for SPI-NOR flashes may be merged soon:
>>>> https://lore.kernel.org/linux-mtd/20210216162807.13509-1-michael@walle.cc/
>>>>
>>>>
>>>> Tudor suggested to add support for the OTP erase operation most
>>>> SPI-NOR
>>>> flashes have:
>>>> https://lore.kernel.org/linux-mtd/d4f74b1b-fa1b-97ec-858c-d807fe1f9e57@microchip.com/
>>>>
>>>>
>>>> Therefore, this is an RFC to get some feedback on the MTD side, once
>>>> this
>>>> is finished, I can post a patch for mtd-utils. Then we'll have a
>>>> foundation
>>>> to add the support to SPI-NOR.
>>>>
>>>> drivers/mtd/mtdchar.c | 7 ++++++-
>>>> drivers/mtd/mtdcore.c | 12 ++++++++++++
>>>> include/linux/mtd/mtd.h | 3 +++
>>>> include/uapi/mtd/mtd-abi.h | 2 ++
>>>> 4 files changed, 23 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/mtd/mtdchar.c b/drivers/mtd/mtdchar.c
>>>> index 323035d4f2d0..da423dd031ae 100644
>>>> --- a/drivers/mtd/mtdchar.c
>>>> +++ b/drivers/mtd/mtdchar.c
>>>> @@ -661,6 +661,7 @@ static int mtdchar_ioctl(struct file *file,
>>>> u_int
>>>> cmd, u_long arg)
>>>> case OTPGETREGIONCOUNT:
>>>> case OTPGETREGIONINFO:
>>>> case OTPLOCK:
>>>> + case OTPERASE:
>>>
>>> This is not a Safe IOCTL. We are destroying OTP data. Need to check
>>> for
>>> write permission before allowing the ioctl right?
>>
>> Ah yes, of course. But this makes me wonder why OTPLOCK
>> is considered a safe command. As well as MEMLOCK and
>> MEMUNLOCK. And MEMSETBADBLOCK. Shouldn't these also
>> require write permissions?
>>
>
> Well, one argument would be that LOCK/UNLOCK in itself won't modify
> data
> and thus does not need write permission.. Although can brick a flash
> from ever being writable again and change content of flash registers.
Whether not you can brick a device (I agree with you), it is writing
to the protection bits. But what is more imporant is that OTPLOCK
is actually write-once.
> I am fine with moving these to require write permissions as well
> (probably OTPLOCK as well).
Ok, I'm unsure about MEMSETBADBLOCK, though.
-michael
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
next prev parent reply other threads:[~2021-03-03 3:11 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-02 11:09 [RFC PATCH] mtd: add OTP (one-time-programmable) erase ioctl Michael Walle
2021-03-02 11:09 ` Michael Walle
2021-03-02 12:46 ` Miquel Raynal
2021-03-02 12:46 ` Miquel Raynal
2021-03-02 13:06 ` Michael Walle
2021-03-02 13:06 ` Michael Walle
2021-03-02 15:30 ` Vignesh Raghavendra
2021-03-02 15:30 ` Vignesh Raghavendra
2021-03-02 16:19 ` Michael Walle
2021-03-02 16:19 ` Michael Walle
2021-03-02 16:33 ` Vignesh Raghavendra
2021-03-02 16:33 ` Vignesh Raghavendra
2021-03-02 16:59 ` Michael Walle [this message]
2021-03-02 16:59 ` Michael Walle
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=be9c984f7366aa891591f4e2d003a8b1@walle.cc \
--to=michael@walle.cc \
--cc=Tudor.Ambarus@microchip.com \
--cc=linux-api@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=miquel.raynal@bootlin.com \
--cc=richard@nod.at \
--cc=vigneshr@ti.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.