Author: stefanct
Date: Fri Feb 22 16:58:45 2013
New Revision: 1650
URL: http://flashrom.org/trac/flashrom/changeset/1650

Log:
Add a bunch of new/tested stuff and various small changes 17.

Tested Mainboards:
OK:
 - Acer V75-M (used in IBM Aptiva 2170-G)
   http://www.flashrom.org/pipermail/flashrom/2012-December/010300.html
 - Acorp 6M810C
   http://www.flashrom.org/pipermail/flashrom/2013-January/010433.html
 - ASRock G31M-S rev 2.0
   http://www.flashrom.org/pipermail/flashrom/2013-February/010538.html
 - ASUS F1A75-V PRO
   http://paste.flashrom.org/view.php?id=1528
 - ASUS M5A97 (rev. 1.0)
   http://www.flashrom.org/pipermail/flashrom/2013-February/010483.html
 - ASUS P5KPL-AM IN/GB
   http://www.flashrom.org/pipermail/flashrom/2013-January/010455.html
 - GABYTE GA-H77M-D3H
   http://www.flashrom.org/pipermail/flashrom/2013-February/010538.html

NOT OK:
 - GIGABYTE GA-Z77MX-D3H
   http://paste.flashrom.org/view.php?id=1529
   http://paste.flashrom.org/view.php?id=1530

Tested flash chips:
 - Winbond W25X10 to PREW (+PREW)
   Reported on IRC(?)
 - Eon EN25Q32(A/B) to PREW (+REW)
   http://www.flashrom.org/pipermail/flashrom/2013-February/010533.html
 - Eon EN25Q64 to PREW (+PREW)
   http://www.flashrom.org/pipermail/flashrom/2013-January/010466.html

Miscellaneous:
- Fix superflouos line breaks in wiki mainboard and laptop output.
- Use the .nh (no hyphenation) command in the manpage to enforce
  single-line URLs where useful.
- Reference the manpage (besides the Laptops wiki page) in the laptop warning.
- Minor output and whitespace fixes.
- Add Fidelix IDs.
- Add ISSE clones of PMC chips.
- Fix typo: EMST -> ESMT.
- Add ID of ESMT F25D08QA.
- Refine GigaDevice GD25Q series (missing voltages and comments).
- Use underscore instead of lower-case x as wildcard in Sharp chip names.

Signed-off-by: Stefan Tauner <[email protected]>
Acked-by: Stefan Tauner <[email protected]>

Modified:
   trunk/flashchips.c
   trunk/flashchips.h
   trunk/flashrom.8
   trunk/internal.c
   trunk/it87spi.c
   trunk/print.c
   trunk/print_wiki.c

Modified: trunk/flashchips.c
==============================================================================
--- trunk/flashchips.c  Wed Feb 20 19:03:36 2013        (r1649)
+++ trunk/flashchips.c  Fri Feb 22 16:58:45 2013        (r1650)
@@ -2713,11 +2713,11 @@
        },
 
        {
-               .vendor         = "EMST",
+               .vendor         = "ESMT",
                .name           = "F49B002UA",
                .bustype        = BUS_PARALLEL,
-               .manufacture_id = EMST_ID,
-               .model_id       = EMST_F49B002UA,
+               .manufacture_id = ESMT_ID,
+               .model_id       = ESMT_F49B002UA,
                .total_size     = 256,
                .page_size      = 4096,
                .feature_bits   = FEATURE_EITHER_RESET,
@@ -2745,11 +2745,11 @@
        },
 
        {
-               .vendor         = "EMST",
+               .vendor         = "ESMT",
                .name           = "F25L008A",
                .bustype        = BUS_SPI,
-               .manufacture_id = EMST_ID,
-               .model_id       = EMST_F25L008A,
+               .manufacture_id = ESMT_ID,
+               .model_id       = ESMT_F25L008A,
                .total_size     = 1024,
                .page_size      = 256,
                .feature_bits   = FEATURE_WRSR_EITHER,
@@ -3748,7 +3748,7 @@
                .page_size      = 256,
                /* OTP: 512B total; enter 0x3A */
                .feature_bits   = FEATURE_WRSR_WREN | FEATURE_OTP,
-               .tested         = TEST_OK_PROBE,
+               .tested         = TEST_OK_PREW,
                .probe          = probe_spi_rdid,
                .probe_timing   = TIMING_ZERO,
                .block_erasers  =
@@ -3784,7 +3784,7 @@
                .page_size      = 256,
                /* OTP: 512B total; enter 0x3A */
                .feature_bits   = FEATURE_WRSR_WREN | FEATURE_OTP,
-               .tested         = TEST_UNTESTED,
+               .tested         = TEST_OK_PREW,
                .probe          = probe_spi_rdid,
                .probe_timing   = TIMING_ZERO,
                .block_erasers  =
@@ -4248,13 +4248,13 @@
 
        {
                .vendor         = "GigaDevice",
-               .name           = "GD25Q80",
+               .name           = "GD25Q80(B)",
                .bustype        = BUS_SPI,
                .manufacture_id = GIGADEVICE_ID,
                .model_id       = GIGADEVICE_GD25Q80,
                .total_size     = 1024,
                .page_size      = 256,
-               /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42 */
+               /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, 
erase 0x44 (B version only) */
                .feature_bits   = FEATURE_WRSR_WREN | FEATURE_OTP,
                .tested         = TEST_OK_PREW,
                .probe          = probe_spi_rdid,
@@ -4293,7 +4293,7 @@
                .model_id       = GIGADEVICE_GD25Q16,
                .total_size     = 2048,
                .page_size      = 256,
-               /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42 */
+               /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, 
erase 0x44 (B version only) */
                .feature_bits   = FEATURE_WRSR_WREN | FEATURE_OTP,
                .tested         = TEST_UNTESTED,
                .probe          = probe_spi_rdid,
@@ -4326,13 +4326,13 @@
 
        {
                .vendor         = "GigaDevice",
-               .name           = "GD25Q32",
+               .name           = "GD25Q32(B)",
                .bustype        = BUS_SPI,
                .manufacture_id = GIGADEVICE_ID,
                .model_id       = GIGADEVICE_GD25Q32,
                .total_size     = 4096,
                .page_size      = 256,
-               /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42 */
+               /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, 
erase 0x44 */
                .feature_bits   = FEATURE_WRSR_WREN | FEATURE_OTP,
                .tested         = TEST_UNTESTED,
                .probe          = probe_spi_rdid,
@@ -4365,13 +4365,13 @@
 
        {
                .vendor         = "GigaDevice",
-               .name           = "GD25Q64",
+               .name           = "GD25Q64(B)",
                .bustype        = BUS_SPI,
                .manufacture_id = GIGADEVICE_ID,
                .model_id       = GIGADEVICE_GD25Q64,
                .total_size     = 8192,
                .page_size      = 256,
-               /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42 */
+               /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, 
erase 0x44 */
                .feature_bits   = FEATURE_WRSR_WREN | FEATURE_OTP,
                .tested         = TEST_OK_PREW,
                .probe          = probe_spi_rdid,
@@ -4399,17 +4399,18 @@
                .unlock         = spi_disable_blockprotect,
                .write          = spi_chip_write_256,
                .read           = spi_chip_read,
+               .voltage        = {2700, 3600},
        },
 
        {
                .vendor         = "GigaDevice",
-               .name           = "GD25Q128",
+               .name           = "GD25Q128B",
                .bustype        = BUS_SPI,
                .manufacture_id = GIGADEVICE_ID,
                .model_id       = GIGADEVICE_GD25Q128,
                .total_size     = 16384,
                .page_size      = 256,
-               /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42 */
+               /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, 
erase 0x44 */
                .feature_bits   = FEATURE_WRSR_WREN | FEATURE_OTP,
                .tested         = TEST_UNTESTED,
                .probe          = probe_spi_rdid,
@@ -4437,6 +4438,7 @@
                .unlock         = spi_disable_blockprotect,
                .write          = spi_chip_write_256,
                .read           = spi_chip_read,
+               .voltage        = {2700, 3600},
        },
 
        {
@@ -4447,7 +4449,8 @@
                .model_id       = GIGADEVICE_GD25LQ32,
                .total_size     = 4096,
                .page_size      = 256,
-               .feature_bits   = FEATURE_WRSR_WREN,
+               /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, 
erase 0x44 */
+               .feature_bits   = FEATURE_WRSR_WREN | FEATURE_OTP,
                .tested         = TEST_OK_PREW,
                .probe          = probe_spi_rdid,
                .probe_timing   = TIMING_ZERO,
@@ -6687,7 +6690,7 @@
                .name           = "LH28F008BJT-BTLZ1",
                .bustype        = BUS_PARALLEL,
                .manufacture_id = SHARP_ID,
-               .model_id       = SHARP_LH28F008BJxxPB,
+               .model_id       = SHARP_LH28F008BJ__PB,
                .total_size     = 1024,
                .page_size      = 64 * 1024,
                .tested         = TEST_OK_PREW,

Modified: trunk/flashchips.h
==============================================================================
--- trunk/flashchips.h  Wed Feb 20 19:03:36 2013        (r1649)
+++ trunk/flashchips.h  Fri Feb 22 16:58:45 2013        (r1650)
@@ -201,9 +201,10 @@
 #define CATALYST_ID            0x31    /* Catalyst */
 #define CATALYST_CAT28F512     0xB8
 
-#define EMST_ID                        0x8C    /* EMST / EFST Elite Flash 
Storage */
-#define EMST_F25L008A          0x2014
-#define EMST_F49B002UA         0x00
+#define ESMT_ID                        0x8C    /* Elite Semiconductor Memory 
Technology (ESMT) / EFST Elite Flash Storage */
+#define ESMT_F25L008A          0x2014
+#define ESMT_F25D08QA          0x2534
+#define ESMT_F49B002UA         0x00
 
 /*
  * EN25 chips are SPI, first byte of device ID is memory type,
@@ -265,6 +266,15 @@
 #define EON_EN29F002T          0x7F92  /* Same as EN29F002A */
 #define EON_EN29F002B          0x7F97  /* Same as EN29F002AN */
 
+#define FIDELIX_ID             0xF8    /* Fidelix */
+#define FIDELIX_FM25M16                0x4215
+#define FIDELIX_FM25M32                0x4216
+#define FIDELIX_FM25M64                0x4217
+#define FIDELIX_FM25Q08                0x3214
+#define FIDELIX_FM25Q16                0x3215  /* Same as FM25S16 (which is 
apparently single I/O only) */
+#define FIDELIX_FM25Q32                0x3216
+#define FIDELIX_FM25Q64                0x3217
+
 #define FUJITSU_ID             0x04    /* Fujitsu */
 #define FUJITSU_MBM29DL400BC   0x0F
 #define FUJITSU_MBM29DL400TC   0x0C
@@ -299,11 +309,11 @@
 #define GIGADEVICE_ID          0xC8    /* GigaDevice */
 #define GIGADEVICE_GD25Q20     0x4012
 #define GIGADEVICE_GD25Q40     0x4013
-#define GIGADEVICE_GD25Q80     0x4014
-#define GIGADEVICE_GD25Q16     0x4015
-#define GIGADEVICE_GD25Q32     0x4016
-#define GIGADEVICE_GD25Q64     0x4017
-#define GIGADEVICE_GD25Q128    0x4018
+#define GIGADEVICE_GD25Q80     0x4014  /* Same as GD25Q80B (which has OTP) */
+#define GIGADEVICE_GD25Q16     0x4015  /* Same as GD25Q16B (which has OTP) */
+#define GIGADEVICE_GD25Q32     0x4016  /* Same as GD25Q32B */
+#define GIGADEVICE_GD25Q64     0x4017  /* Same as GD25Q64B */
+#define GIGADEVICE_GD25Q128    0x4018  /* GD25Q128B only? */
 #define GIGADEVICE_GD25LQ32    0x6016
 
 #define HYUNDAI_ID             0xAD    /* Hyundai */
@@ -451,10 +461,10 @@
 #define PMC_PM25LV016B         0x14
 #define PMC_PM29F002T          0x1D
 #define PMC_PM29F002B          0x2D
-#define PMC_PM39LV512          0x1B
-#define PMC_PM39F010           0x1C    /* Same as Pm39LV010 */
+#define PMC_PM39LV512          0x1B    /* Same as IS39LV512 */
+#define PMC_PM39F010           0x1C    /* Same as Pm39LV010, IS39LV010 */
 #define PMC_PM39LV020          0x3D
-#define PMC_PM39LV040          0x3E
+#define PMC_PM39LV040          0x3E    /* Same as IS39LV040 */
 #define PMC_PM39F020           0x4D
 #define PMC_PM39F040           0x4E
 #define PMC_PM49FL002          0x6D
@@ -469,11 +479,11 @@
 #define SANYO_LE25FW203A       0x1600
 
 #define SHARP_ID               0xB0    /* Sharp */
-#define SHARP_LH28F008BJxxPT   0xEC
-#define SHARP_LH28F008BJxxPB   0xED
-#define SHARP_LH28F800BVxxBTL  0x4B
-#define SHARP_LH28F800BVxxBV   0x4D
-#define SHARP_LH28F800BVxxTV   0x4C
+#define SHARP_LH28F008BJ__PT   0xEC
+#define SHARP_LH28F008BJ__PB   0xED
+#define SHARP_LH28F800BV__BTL  0x4B
+#define SHARP_LH28F800BV__BV   0x4D
+#define SHARP_LH28F800BV__TV   0x4C
 #define SHARP_LHF00L02         0xC9    /* Same as LHF00L06/LHF00L07 */
 #define SHARP_LHF00L04         0xCF    /* Same as LHF00L03/LHF00L05 */
 

Modified: trunk/flashrom.8
==============================================================================
--- trunk/flashrom.8    Wed Feb 20 19:03:36 2013        (r1649)
+++ trunk/flashrom.8    Fri Feb 22 16:58:45 2013        (r1650)
@@ -161,6 +161,7 @@
 .BR \-\-list\-supported ,
 but outputs the supported hardware in MediaWiki syntax, so that it can be
 easily pasted into the wiki page at
+.nh
 .BR http://www.flashrom.org/ .
 Please note that MediaWiki output is not compiled in by default.
 .TP
@@ -390,6 +391,7 @@
 .B BUGS
 section). The embedded controller (EC) in these
 machines often interacts badly with flashing.
+.nh
 .B http://www.flashrom.org/Laptops
 has more information. For example the EC firmware sometimes resides on the same
 flash chip as the host firmware. While flashrom tries to change the contents of
@@ -715,8 +717,10 @@
 (DLC 5).
 .sp
 More information about the RayeR hardware is available at
+.nh
 .BR "http://rayer.ic.cz/elektro/spipgm.htm " .
 The schematic of the Xilinx DLC 5 was published at
+.nh
 .BR "http://www.xilinx.com/itp/xilinx4/data/docs/pac/appendixb.html " .
 .SS
 .BR "pony_spi " programmer
@@ -730,6 +734,7 @@
 parameter accepts the values "si_prog" (default) or "serbang".
 .sp
 Information about the SI-Prog adapter can be found at
+.nh
 .BR "http://www.lancos.com/siprogsch.html " .
 .sp
 An example call to flashrom is
@@ -765,6 +770,7 @@
 section above.
 .sp
 More information about the hardware is available at
+.nh
 .BR http://wiki.opengraphics.org .
 .SS
 .BR "linux_spi " programmer
@@ -869,6 +875,7 @@
 too. Please provide a way to contact you later (e.g.\& a mail address) and be
 patient if there is no immediate reaction. Also, we provide a pastebin service
 at
+.nh
 .B http://paste.flashrom.org
 that is very useful when you want to share logs etc.\& without spamming the
 channel.
@@ -884,8 +891,8 @@
 .B internal programmer
 subsection of the
 .B PROGRAMMER SPECIFIC INFO
-section.
-.B "  http://www.flashrom.org/Laptops";
+section and the information in our wiki at
+.BR "http://www.flashrom.org/Laptops " .
 .SS
 One-time programmable (OTP) memory and unique IDs
 .sp

Modified: trunk/internal.c
==============================================================================
--- trunk/internal.c    Wed Feb 20 19:03:36 2013        (r1649)
+++ trunk/internal.c    Fri Feb 22 16:58:45 2013        (r1650)
@@ -299,7 +299,7 @@
                msg_perr("Laptops, notebooks and netbooks are difficult to 
support and we\n"
                         "recommend to use the vendor flashing utility. The 
embedded controller\n"
                         "(EC) in these machines often interacts badly with 
flashing.\n"
-                        "See http://www.flashrom.org/Laptops for details.\n\n"
+                        "See the manpage and http://www.flashrom.org/Laptops 
for details.\n\n"
                         "If flash is shared with the EC, erase is guaranteed 
to brick your laptop\n"
                         "and write may brick your laptop.\n"
                         "Read and probe may irritate your EC and cause fan 
failure, backlight\n"

Modified: trunk/it87spi.c
==============================================================================
--- trunk/it87spi.c     Wed Feb 20 19:03:36 2013        (r1649)
+++ trunk/it87spi.c     Fri Feb 22 16:58:45 2013        (r1650)
@@ -87,15 +87,12 @@
                case 0x86:
                case 0x87:
                        /* FIXME: Print revision for all models? */
-                       msg_pdbg("Found ITE Super I/O, ID 0x%04hx on port "
-                                "0x%x\n", s.model, s.port);
+                       msg_pdbg("Found ITE Super I/O, ID 0x%04hx on port 
0x%x\n", s.model, s.port);
                        register_superio(s);
                        break;
                case 0x85:
-                       msg_pdbg("Found ITE EC, ID 0x%04hx,"
-                                "Rev 0x%02x on port 0x%x.\n",
-                                s.model, sio_read(s.port, CHIP_VER_REG),
-                                s.port);
+                       msg_pdbg("Found ITE EC, ID 0x%04hx, Rev 0x%02x on port 
0x%x.\n",
+                                s.model, sio_read(s.port, CHIP_VER_REG), 
s.port);
                        register_superio(s);
                        break;
                }

Modified: trunk/print.c
==============================================================================
--- trunk/print.c       Wed Feb 20 19:03:36 2013        (r1649)
+++ trunk/print.c       Fri Feb 22 16:58:45 2013        (r1650)
@@ -519,6 +519,7 @@
        B("abit",       "VT6X4",                OK, NULL, NULL),
        B("Acer",       "V75-M",                OK, NULL, "This is an OEM board 
used by IBM in e.g. Aptiva 2170-G"),
        B("Acorp",      "6A815EPD",             OK, 
"http://web.archive.org/web/20021206163652/www.acorp.com.tw/English/default.asp";,
 NULL),
+       B("Acorp",      "6M810C",               OK, NULL, NULL),
        B("Advantech",  "PCM-5820",             OK, 
"http://www.emacinc.com/sbc_pc_compatible/pcm_5820.htm";, NULL),
        B("agami",      "Aruma",                OK, 
"http://web.archive.org/web/20080212111524/http://www.agami.com/site/ais-6000-series";,
 NULL),
        B("Albatron",   "PM266A Pro",           OK, 
"http://www.albatron.com.tw/English/Product/MB/pro_detail.asp?rlink=Overview&no=56";,
 NULL), /* FIXME */
@@ -540,6 +541,7 @@
        B("ASRock",     "ALiveNF6G-DVI",        OK, 
"http://www.asrock.com/mb/overview.asp?Model=ALiveNF6G-DVI";, NULL),
        B("ASRock",     "AM2NF6G-VSTA",         OK, 
"http://www.asrock.com/mb/overview.asp?Model=AM2NF6G-VSTA";, NULL),
        B("ASRock",     "E350M1/USB3",          OK, 
"http://www.asrock.com/mb/overview.asp?model=e350m1/usb3";, NULL),
+       B("ASRock",     "G31M-S rev 2.0",       OK, 
"http://www.asrock.com/mb/overview.asp?model=G31M-S";, NULL),
        B("ASRock",     "ConRoeXFire-eSATA2",   OK, 
"http://www.asrock.com/mb/overview.asp?model=conroexfire-esata2";, NULL),
        B("ASRock",     "H61M-ITX",             BAD, 
"http://www.asrock.com/mb/overview.asp?Model=H61M-ITX";, "Probing works 
(Macronix MX25L3205, 4096 kB, SPI), but parts of the flash are problematic: 
descriptor is r/o (conforming to ICH reqs), ME region is locked."),
        B("ASRock",     "H67M",                 BAD, 
"http://www.asrock.com/mb/overview.asp?Model=H67M";, "Probing works (Winbond 
W25Q64, 8192 kB, SPI), but parts of the flash are problematic: descriptor is 
r/o (conforming to ICH reqs), ME region is locked."),
@@ -577,6 +579,7 @@
        B("ASUS",       "Crosshair IV Extreme", OK, 
"http://www.asus.com/Motherboards/AMD_AM3/Crosshair_IV_Extreme/";, NULL),
        B("ASUS",       "DSAN-DX",              NT, 
"http://www.asus.com/Server_Workstation/Server_Motherboards/DSANDX/";, NULL),
        B("ASUS",       "E35M1-I DELUXE",       OK, 
"http://www.asus.com/Motherboards/AMD_CPU_on_Board/E35M1I_DELUXE/";, NULL),
+       B("ASUS",       "F1A75-V PRO",          OK, 
"http://www.asus.com/Motherboard/F1A75V_PRO/";, NULL),
        B("ASUS",       "K8N",                  OK, 
"http://www.asus.com/Motherboards/AMD_Socket_754/K8N/";, NULL),
        B("ASUS",       "K8V",                  OK, 
"http://www.asus.com/Motherboards/AMD_Socket_754/K8V/";, NULL),
        B("ASUS",       "K8V SE Deluxe",        OK, 
"http://www.asus.com/Motherboards/AMD_Socket_754/K8V_SE_Deluxe/";, NULL),
@@ -611,6 +614,7 @@
        B("ASUS",       "M4N68T V2",            OK, 
"http://www.asus.com/Motherboards/AMD_AM3/M4N68T_V2/";, NULL),
        B("ASUS",       "M4N78 PRO",            OK, 
"http://www.asus.com/Motherboards/AMD_AM2Plus/M4N78_PRO/";, NULL),
        B("ASUS",       "M5A78L-M LX",          OK, 
"http://www.asus.com/Motherboards/AMD_AM3Plus/M5A78LM_LX/";, "The MAC address of 
the onboard LAN NIC is stored in flash, hence overwritten by flashrom; see 
http://www.flashrom.org/pipermail/flashrom/2012-May/009200.html";),
+       B("ASUS",       "M5A97 (rev. 1.0)",     OK, 
"http://www.asus.com/Motherboard/M5A97/";, NULL),
        B("ASUS",       "M5A99X EVO",           OK, 
"http://www.asus.com/Motherboards/AMD_AM3Plus/M5A99X_EVO/";, NULL),
        B("ASUS",       "Maximus IV Extreme",   BAD, 
"http://www.asus.com/Motherboards/Intel_Socket_1155/Maximus_IV_Extreme/";, 
"Probing works (Macronix MX25L3205, 4096 kB, SPI), but parts of the flash are 
problematic: descriptor is r/o (conforming to ICH reqs), ME region is locked."),
        B("ASUS",       "MEW-AM",               BAD, NULL, "No public report 
found. Owned by Uwe Hermann <[email protected]>. May work now."),
@@ -656,6 +660,7 @@
        B("ASUS",       "P5K-V",                OK, 
"http://www.asus.com/Motherboards/Intel_Socket_775/P5KV/";, NULL),
        B("ASUS",       "P5K-VM",               OK, 
"http://www.asus.com/Motherboards/Intel_Socket_775/P5KVM/";, NULL),
        B("ASUS",       "P5KC",                 OK, 
"http://www.asus.com/Motherboards/Intel_Socket_775/P5KC/";, NULL),
+       B("ASUS",       "P5KPL-AM IN/GB",       OK, 
"http://support.asus.com/download.aspx?SLanguage=en&m=P5KPL-AM+IN%2fGB&os=29";, 
NULL),
        B("ASUS",       "P5KPL-CM",             OK, 
"http://www.asus.com/Motherboards/Intel_Socket_775/P5KPLCM/";, NULL),
        B("ASUS",       "P5L-MX",               OK, 
"http://www.asus.com/Motherboards/Intel_Socket_775/P5LMX/";, NULL),
        B("ASUS",       "P5L-VM 1394",          OK, 
"http://www.asus.com/Motherboards/Intel_Socket_775/P5LVM_1394/";, NULL),
@@ -777,6 +782,7 @@
        B("GIGABYTE",   "GA-H61M-D2-B3",        OK, 
"http://www.gigabyte.com/products/product-page.aspx?pid=3773";, NULL),
        B("GIGABYTE",   "GA-H61M-D2H-USB3",     OK, 
"http://www.gigabyte.com/products/product-page.aspx?pid=4004";, NULL),
        B("GIGABYTE",   "GA-H77-D3H",           OK, 
"http://www.gigabyte.com/products/product-page.aspx?pid=4141";, "Does only work 
with -p internal:ich_spi_mode=hwseq due to an evil twin of MX25L6405 and ICH 
SPI lockdown."),
+       B("GIGABYTE",   "GA-H77M-D3H",          OK, 
"http://www.gigabyte.com/products/product-page.aspx?pid=4388";, NULL),
        B("GIGABYTE",   "GA-EX58-UD4P",         OK, 
"http://www.gigabyte.com/products/product-page.aspx?pid=2986";, NULL),
        B("GIGABYTE",   "GA-K8N-SLI",           OK, 
"http://www.gigabyte.com/products/product-page.aspx?pid=1928";, NULL),
        B("GIGABYTE",   "GA-K8N51GMF",          OK, 
"http://www.gigabyte.com/products/product-page.aspx?pid=1950";, NULL),
@@ -804,6 +810,7 @@
        B("GIGABYTE",   "GA-X79-UD5", OK, NULL, NULL),
        B("GIGABYTE",   "GA-Z68MX-UD2H-B (rev. 1.3)", OK, 
"http://www.gigabyte.com/products/product-page.aspx?pid=3854";, NULL),
        B("GIGABYTE",   "GA-Z68XP-UD3 (rev. 1.0)", OK, 
"http://www.gigabyte.com/products/product-page.aspx?pid=3892";, NULL),
+       B("GIGABYTE",   "GA-Z77MX-D3H",         BAD, 
"http://www.gigabyte.com/products/product-page.aspx?pid=4145";, "Uses MX25L6436E 
and requires a small patch (but works flawlessly with that)."),
        B("HP",         "8100 Elite CMT PC (304Bh)", BAD, NULL, "SPI lock down, 
PR, read-only descriptor, locked ME region."),
        B("HP",         "e-Vectra P2706T",      OK, 
"http://h20000.www2.hp.com/bizsupport/TechSupport/Home.jsp?lang=en&cc=us&prodSeriesId=77515&prodTypeId=12454";,
 NULL),
        B("HP",         "ProLiant DL145 G3",    OK, 
"http://h20000.www2.hp.com/bizsupport/TechSupport/Document.jsp?objectID=c00816835&lang=en&cc=us&taskId=101&prodSeriesId=3219755&prodTypeId=15351";,
 NULL),

Modified: trunk/print_wiki.c
==============================================================================
--- trunk/print_wiki.c  Wed Feb 20 19:03:36 2013        (r1649)
+++ trunk/print_wiki.c  Fri Feb 22 16:58:45 2013        (r1650)
@@ -209,7 +209,7 @@
        /* end inner table if it did not fill the last column fully */
        if (((i % lines_per_col)) > 0)
                printf("\n|}\n\n");
-       printf("\n\n|}\n");
+       printf("|}\n");
 
        if (num_notes > 0)
                printf("\n<small>\n%s</small>\n", notes);

_______________________________________________
flashrom mailing list
[email protected]
http://www.flashrom.org/mailman/listinfo/flashrom

Reply via email to