diff --git a/chipdrivers.h b/chipdrivers.h index a65cb9986..a6faf9f5d 100644 --- a/chipdrivers.h +++ b/chipdrivers.h @@ -119,6 +119,7 @@ int printlock_w39v040fc(struct flashchip *flash); int printlock_w39v080a(struct flashchip *flash); int printlock_w39v080fa(struct flashchip *flash); int printlock_w39v080fa_dual(struct flashchip *flash); +int unlock_w39v040fb(struct flashchip *flash); int unlock_w39v080fa(struct flashchip *flash); /* w29ee011.c */ diff --git a/flashchips.c b/flashchips.c index 80821609f..b6dff6c53 100644 --- a/flashchips.c +++ b/flashchips.c @@ -7706,6 +7706,7 @@ struct flashchip flashchips[] = { } }, .printlock = printlock_w39v040fb, + .unlock = unlock_w39v040fb, .write = write_jedec_1, .read = read_memmapped, }, diff --git a/w39.c b/w39.c index 65cf32f4b..06fabfdae 100644 --- a/w39.c +++ b/w39.c @@ -244,6 +244,16 @@ int printlock_w39v080fa_dual(struct flashchip *flash) return -1; } +int unlock_w39v040fb(struct flashchip *flash) +{ + if (unlock_w39_fwh(flash)) + return -1; + if (printlock_w39_common(flash, 0x7fff2)) + return -1; + + return 0; +} + int unlock_w39v080fa(struct flashchip *flash) { if (unlock_w39_fwh(flash))