Re: [RFC PATCH] mtd: add OTP (one-time-programmable) erase ioctl
From: Michael Walle <hidden>
Date: 2021-03-02 15:47:30
Also in:
lkml
Hi, Am 2021-03-02 13:46, schrieb Miquel Raynal:
Michael Walle [off-list ref] wrote on Tue, 2 Mar 2021 12:09:27 +0100:quoted
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 <redacted> --- OTP support for SPI-NOR flashes may be merged soon: https://lore.kernel.org/linux-mtd/20210216162807.13509-1-michael@walle.cc/ (local) 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/ (local) 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.
[..]
quoted
+int mtd_erase_user_prot_reg(struct mtd_info *mtd, loff_t from, size_t len) +{ + struct mtd_info *master = mtd_get_master(mtd); + + if (!master->_erase_user_prot_reg) + return -EOPNOTSUPP; + if (!len) + return 0;Should we add a sanity check enforcing that we don't try to access beyond the end of the OTP area?
This is checked in the op itself, as it is done for all the other OTP read/write/lock ops. Right at the moment, I don't see how this could be achieved in an elegant way. Without additional changes, you'd have to call mtd_get_user_prot_info() and iterate over the returned values and figure out whether from and len are valid. [..] -michael