[coreboot] [Patch] Flashrom: Add nforce2 chipset enable.

Luc Verhaegen libv at skynet.be
Mon May 25 14:41:06 CEST 2009


Since no-one seems to have solid information as to the origins of 
the supposedly known brokenness of flashrom on the Asus A7N8X-E, i 
attach here a patch to add nforce2 support, which will hopefully fix 
this board.

Attached as well is some lspci info i managed to pluck off the interweb.
No subsystem ids though, but a board specific enable does not seem 
necessary for this board.

Luc Verhaegen.
-------------- next part --------------
Add NForce2 chipset enable.

This should, hopefully, fix the ASUS A7N8X-E.

While the other chipset enables for nvidia could potentially also work,
this one, by not touching other bits, seems like the safest solution.

Signed-off-by Luc Verhaegen <libv at skynet.be>

Index: chipset_enable.c
===================================================================
--- chipset_enable.c	(revision 545)
+++ chipset_enable.c	(working copy)
@@ -769,6 +769,19 @@
 	return 0;
 }
 
+static int enable_flash_nvidia_nforce2(struct pci_dev *dev, const char *name)
+{
+    uint8_t tmp;
+
+    pci_write_byte(dev, 0x92, 0);
+
+    tmp = pci_read_byte(dev, 0x6d);
+    tmp |= 0x01;
+    pci_write_byte(dev, 0x6d, tmp);
+
+    return 0;
+}
+
 static int enable_flash_ck804(struct pci_dev *dev, const char *name)
 {
 	uint8_t old, new;
@@ -981,6 +994,7 @@
 	{0x8086, 0x122e, OK, "Intel", "PIIX",		enable_flash_piix4},
 	{0x10de, 0x0050, OK, "NVIDIA", "CK804",		enable_flash_ck804}, /* LPC */
 	{0x10de, 0x0051, OK, "NVIDIA", "CK804",		enable_flash_ck804}, /* Pro */
+	{0x10de, 0x0060, NT, "NVIDIA", "NForce2",       enable_flash_nvidia_nforce2},
 	/* Slave, should not be here, to fix known bug for A01. */
 	{0x10de, 0x00d3, OK, "NVIDIA", "CK804",		enable_flash_ck804},
 	{0x10de, 0x0260, NT, "NVIDIA", "MCP51",		enable_flash_ck804},
Index: board_enable.c
===================================================================
--- board_enable.c	(revision 546)
+++ board_enable.c	(working copy)
@@ -784,7 +784,6 @@
 const struct board_info boards_bad[] = {
 	/* Verified non-working boards (for now). */
 	{ "Abit",		"IS-10", },
-	{ "ASUS",		"A7N8X-E Deluxe", },
 	{ "ASUS",		"MEW-AM", },
 	{ "ASUS",		"MEW-VM", },
 	{ "ASUS",		"P3B-F", },
-------------- next part --------------
# lspci
0000:00:00.0 Host bridge: nVidia Corporation nForce2 AGP (different version?) (rev c1)
0000:00:00.1 RAM memory: nVidia Corporation nForce2 Memory Controller 1 (rev c1)
0000:00:00.2 RAM memory: nVidia Corporation nForce2 Memory Controller 4 (rev c1)
0000:00:00.3 RAM memory: nVidia Corporation nForce2 Memory Controller 3 (rev c1)
0000:00:00.4 RAM memory: nVidia Corporation nForce2 Memory Controller 2 (rev c1)
0000:00:00.5 RAM memory: nVidia Corporation nForce2 Memory Controller 5 (rev c1)
0000:00:01.0 ISA bridge: nVidia Corporation nForce2 ISA Bridge (rev a4)
0000:00:01.1 SMBus: nVidia Corporation nForce2 SMBus (MCP) (rev a2)
0000:00:02.0 USB Controller: nVidia Corporation nForce2 USB Controller (rev a4)
0000:00:02.1 USB Controller: nVidia Corporation nForce2 USB Controller (rev a4)
0000:00:02.2 USB Controller: nVidia Corporation nForce2 USB Controller (rev a4)
0000:00:04.0 Ethernet controller: nVidia Corporation nForce2 Ethernet Controller (rev a1)
0000:00:08.0 PCI bridge: nVidia Corporation nForce2 External PCI Bridge (rev a3)
0000:00:09.0 IDE interface: nVidia Corporation nForce2 IDE (rev a2)
0000:00:0d.0 FireWire (IEEE 1394): nVidia Corporation nForce2 FireWire (IEEE 1394) Controller (rev a3)
0000:00:1e.0 PCI bridge: nVidia Corporation nForce2 AGP (rev c1)
0000:01:04.0 Ethernet controller: Marvell Technology Group Ltd. Yukon Gigabit Ethernet 10/100/1000Base-T Adapter (rev 13)
0000:01:08.0 Multimedia audio controller: Creative Labs: Unknown device 0008
0000:01:0b.0 RAID bus controller: Silicon Image, Inc. (formerly CMD Technology 
Inc) SiI 3112 [SATALink/SATARaid] Serial ATA Controller (rev 02)
0000:03:00.0 VGA compatible controller: nVidia Corporation: Unknown device 0326 (rev a1)

# lspci -n
0000:00:00.0 0600: 10de:01e0 (rev c1)
0000:00:00.1 0500: 10de:01eb (rev c1)
0000:00:00.2 0500: 10de:01ee (rev c1)
0000:00:00.3 0500: 10de:01ed (rev c1)
0000:00:00.4 0500: 10de:01ec (rev c1)
0000:00:00.5 0500: 10de:01ef (rev c1)
0000:00:01.0 0601: 10de:0060 (rev a4)
0000:00:01.1 0c05: 10de:0064 (rev a2)
0000:00:02.0 0c03: 10de:0067 (rev a4)
0000:00:02.1 0c03: 10de:0067 (rev a4)
0000:00:02.2 0c03: 10de:0068 (rev a4)
0000:00:04.0 0200: 10de:0066 (rev a1)
0000:00:08.0 0604: 10de:006c (rev a3)
0000:00:09.0 0101: 10de:0065 (rev a2)
0000:00:0d.0 0c00: 10de:006e (rev a3)
0000:00:1e.0 0604: 10de:01e8 (rev c1)
0000:01:04.0 0200: 11ab:4320 (rev 13)
0000:01:08.0 0401: 1102:0008
0000:01:0b.0 0104: 1095:3112 (rev 02)
0000:03:00.0 0300: 10de:0326 (rev a1)



More information about the coreboot mailing list