[LinuxBIOS] Winbond W39V040BPZ support in flash_rom?

Carl-Daniel U. Hailfinger c-d.hailfinger.devel.2006 at gmx.net
Mon Jul 31 16:45:11 CEST 2006

With the following (whitespace-damaged) patch

Index: flash.h
--- flash.h     (Revision 2350)
+++ flash.h     (Arbeitskopie)
@@ -59,6 +59,7 @@
 #define W_29C011          0xC1 /* Winbond w29c011 device code */
 #define W_29C020C         0x45 /* Winbond w29c020c device code */
 #define W_39V040A         0x3D /* Winbond w39v040a device code */
+#define W_39V040B         0x54 /* Winbond w39v040b device code */
 #define W_49F002U         0x0B /* Winbond w49F002u device code */
 #define W_49V002A         0xB0  /* Winbond W49V002A device code */
 #define W_49V002FA        0x32  /* Winbond W49V002FA device code */
Index: flash_enable.c
--- flash_enable.c      (Revision 2350)
+++ flash_enable.c      (Arbeitskopie)
@@ -396,6 +396,7 @@
        {0x1022, 0x7468, "AMD8111", enable_flash_amd8111},
        // this fallthrough looks broken.
         {0x10de, 0x0050, "NVIDIA CK804", enable_flash_ck804}, // LPC
+        {0x10de, 0x0261, "NVIDIA C51", enable_flash_ck804},
         {0x10de, 0x0051, "NVIDIA CK804", enable_flash_ck804}, // Pro
         {0x10de, 0x00d3, "NVIDIA CK804", enable_flash_ck804}, // Slave, should not be here, to fix known bug for A01.
        {0x1002, 0x4377, "ATI SB400", enable_flash_sb400}, // ATI Technologies Inc IXP SB400 PCI-ISA Bridge (rev 80)
Index: flashchips.c
--- flashchips.c        (Revision 2350)
+++ flashchips.c        (Arbeitskopie)
@@ -88,6 +88,8 @@
         probe_jedec,   erase_chip_jedec, write_49f002, NULL},
        {"W39V040A",    WINBOND_ID,     W_39V040A,      NULL, 512, 64*1024,
         probe_jedec,   erase_chip_jedec, write_39sf020, NULL},
+       {"W39V040B",    WINBOND_ID,     W_39V040B,      NULL, 512, 64*1024,
+        probe_jedec,   erase_chip_jedec, write_39sf020, NULL},
        {"M29F040B",    ST_ID,          ST_M29F040B,    NULL, 512, 64 * 1024,
         probe_29f040b, erase_29f040b,  write_29f040b,  NULL},
        {"M29F400BT",   ST_ID,          ST_M29F400BT,   NULL, 512, 64 * 1024,

I get this result:
# LinuxBIOSv2/util/flashrom/flashrom 
Calibrating delay loop... ok
No LinuxBIOS table found.
Enabling flash write on NVIDIA C51...OK
W39V040B found at physical address: 0xfff80000
Flash part is W39V040B
OK, only ENABLING flash write, but NOT FLASHING.

There is one small problem: I depend on this board very much since my laptop is in repair. So I can't test whether writing would work. The only difference between W39V040B (new) and W39V040A (supported) ist that W39V040B is a LPC chip instead of FWH. I don't know whether that matters for flashing.


Echte DSL-Flatrate dauerhaft für 0,- Euro*. Nur noch kurze Zeit!
"Feel free" mit GMX DSL: http://www.gmx.net/de/go/dsl

More information about the coreboot mailing list