On Fri, Feb 12, 2016 at 1:46 AM, Hatim Kanchwala hatim@hatimak.me wrote:
On Friday 12 February 2016 01:18 AM, Hatim Kanchwala wrote:
Signed-off-by: Hatim Kanchwala hatim@hatimak.me
flashchips.c | 40 ++++++++++++++++++++++++++++++++++++++++ flashchips.h | 1 + 2 files changed, 41 insertions(+)
diff --git a/flashchips.c b/flashchips.c index c60514b..26a8d89 100644 --- a/flashchips.c +++ b/flashchips.c @@ -6246,20 +6246,60 @@ const struct flashchip flashchips[] = { } }, .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, .voltage = {2700, 3600}, },
{
.vendor = "GigaDevice",
.name = "GD25VQ41B",
.bustype = BUS_SPI,
.manufacture_id = GIGADEVICE_ID,
.model_id = GIGADEVICE_GD25VQ41B,
.total_size = 512,
.page_size = 256,
/* OTP: 3 * 512B total; read 0x48, write 0x42, erase 0x44 */
.feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI,
These arent "truly/100%" OTP, but one-time-lockable "security registers" - the effect is most likely the same (=if they're used they're most likely locked and that makes them effectively ROM), so I'm ok with the FEATURE_OTP, but maybe change the comment, my suggestion: /* Lockable Security Registers: 3 * 512B pages, read 0x48, write 0x42, erase 0x44 */