[RFC 0/6] Add user OTP support in SPI-NOR
From: Rahul Bedarkar
Date: Fri Mar 17 2017 - 08:45:18 EST
Many NOR flash chips comes with One-Time-Programmable area a.k.a
security registers. This RFC patchset aims at adding generic OTP
support in SPI-NOR to read/write user OTP area.
In SPI-NOR framework, OTP specific read/write methods will use
read_xfer/write_xfer hooks. So PATCH 1, reverts "unused read_xfer/
write_xfer hooks."
PATCH 2 changes return value of read_xfer/write_xfer to allow
returning amount of data transferred and errors as read(2)/write(2).
This makes them inline with current read/write hooks.
PATCH 3 modified helpers in m25p80.c so that those can be used
from read_xfer/write_xfer methods.
PATCH 4 implements read_xfer/write_xfer in m25p80.c
PATCH 5 implements generic support to read/write user OTP.
And finally in PATCH 6 user OTP support for s25fl016k is enabled.
Overall changes are as follows:
New flag SPI_NOR_HAS_OTP is added to specify chip has OTP area. Using
OTP_INFO macro, details of OTP area can be specified. It includes size
of area, number of OTP areas/banks, starting address and difference
between consecutive OTP banks. OTP framework will give user linear
address view from 0 to size of OTP area. User don't need to specify
actual physical address of OTP area for reading/writing.
Details which could be specific to manufacturer like opcodes for
read/write/erase can be specified based on manufacturer.
Generic OTP read/write methods are added so as it can be used for OTP
support from other manufacturer.
This complete patchset is tested with Winbond NOR flash W25Q16DV which
is detected as "s25fl016k" by SPI-NOR.
I've plans to add support for locking these OTP areas and reading
factory OTP area as well. But before that I would to get comments
on this initial part to understand if I'm going in right direction.
Cc: David Woodhouse <dwmw2@xxxxxxxxxxxxx>
Cc: Brian Norris <computersforpeace@xxxxxxxxx>
Cc: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx>
Cc: Marek Vasut <marek.vasut@xxxxxxxxx>
Cc: Richard Weinberger <richard@xxxxxx>
Cc: Cyrille Pitchen <cyrille.pitchen@xxxxxxxxx>
Rahul Bedarkar (6):
Revert "mtd: spi-nor: remove unused read_xfer/write_xfer hooks"
mtd: spi-nor: change return value of read_xfer and write_xfer
mtd: m25p80: don't pass spi_nor to helper methods
mtd: m25p80: implement read_xfer and write_xfer
mtd: spi-nor: add support to read/write user OTP
mtd: spi-nor: enable OTP support for s25fl016k
drivers/mtd/devices/m25p80.c | 111 ++++++++++++---
drivers/mtd/spi-nor/spi-nor.c | 314 +++++++++++++++++++++++++++++++++++++++++-
include/linux/mtd/spi-nor.h | 52 +++++++
3 files changed, 460 insertions(+), 17 deletions(-)
--
2.6.2