On 2/4/10 12:27 AM, Michael Karcher wrote:
> Am Donnerstag, den 04.02.2010, 00:12 +0100 schrieb Stefan Reinauer:
>
>> Here's a failure log for a starter
>>
> Problem is obvious. In svn r868, where the Winbond chips were changed to
> standard JEDEC procedures the unlocking code (call to
> unlock_winbond_fwhub in erase_winbond_fwhub) got lost. This applies to
> w39v080fa in standard mode and in dual partition mode. As the chip is no
> longer unlocked, erase doesn't work. Write would fail, too.
>
> Regards,
> Michael Karcher
>
>
>
I can verify that this is the case.
The attached hack fixes erase for me.
--
coresystems GmbH • Brahmsstr. 16 • D-79104 Freiburg i. Br.
Tel.: +49 761 7668825 • Fax: +49 761 7664613
Email: [email protected] • http://www.coresystems.de/
Registergericht: Amtsgericht Freiburg • HRB 7656
Geschäftsführer: Stefan Reinauer • Ust-IdNr.: DE245674866
Index: jedec.c
===================================================================
--- jedec.c (revision 875)
+++ jedec.c (working copy)
@@ -28,6 +28,9 @@
#define MASK_FULL 0xffff
#define MASK_2AA 0x7ff
+int unlock_winbond_fwhub(struct flashchip *flash);
+static int unlocked = 0;
+
/* Check one byte for odd parity */
uint8_t oddparity(uint8_t val)
{
@@ -203,6 +206,11 @@
{
chipaddr bios = flash->virtual_memory;
+ if (!unlocked) {
+ unlock_winbond_fwhub(flash);
+ unlocked=1;
+ }
+
/* Issue the Sector Erase command */
chip_writeb(0xAA, bios + (0x5555 & mask));
programmer_delay(10);
_______________________________________________
flashrom mailing list
[email protected]
http://www.flashrom.org/mailman/listinfo/flashrom