On Wed, Jan 27, 2010 at 12:58:34AM +0100, Michael Karcher wrote:
This board has no subsystem IDs, but thankfully the DMI patch is in now, which is a real life safer. There are *WAY* to many 440BX/PIIX4 boards out there to match this without DMI.
Signed-off-by: Michael Karcher flashrom@mkarcher.dialup.fu-berlin.de
board_enable.c | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/board_enable.c b/board_enable.c index e535d4f..40db653 100644 --- a/board_enable.c +++ b/board_enable.c @@ -651,6 +651,14 @@ static int board_epox_ep_bx3(const char *name) }
/**
- Suited for Intel SE440BX-2
- */
+static int intel_piix4_gpo27_lower(const char *name) +{
return intel_piix4_gpo_set(27, 0);
+}
+/**
- Set a GPIO line on a given intel ICH LPC controller.
*/ static int intel_ich_gpio_set(int gpio, int raise) @@ -1218,6 +1226,7 @@ struct board_pciid_enable board_pciid_enables[] = { {0x1002, 0x438d, 0x1458, 0x5001, 0x1002, 0x5956, 0x1002, 0x5956, NULL, NULL, NULL, "GIGABYTE", "GA-MA790FX-DQ6", 0, it87xx_probe_spi_flash}, {0x1166, 0x0223, 0x103c, 0x320d, 0x102b, 0x0522, 0x103c, 0x31fa, NULL, "hp", "dl145_g3", "HP", "DL145 G3", 0, board_hp_dl145_g3_enable}, {0x1166, 0x0205, 0x1014, 0x0347, 0x1002, 0x515E, 0x1014, 0x0325, NULL, NULL, NULL, "IBM", "x3455", 0, board_ibm_x3455},
- {0x8086, 0x7190, 0, 0, 0x8086, 0x7110, 0, 0, "^SE440BX-2$", NULL, NULL, "Intel", "SE440BX-2", 0, intel_piix4_gpo27_lower}, {0x1039, 0x5513, 0x8086, 0xd61f, 0x1039, 0x6330, 0x8086, 0xd61f, NULL, NULL, NULL, "Intel", "D201GLY", 0, wbsio_check_for_spi}, {0x1022, 0x7468, 0, 0, 0, 0, 0, 0, NULL, "iwill", "dk8_htx", "IWILL", "DK8-HTX", 0, w83627hf_gpio24_raise_2e}, {0x8086, 0x27A0, 0, 0, 0x8086, 0x27b8, 0, 0, NULL, "kontron", "986lcd-m", "Kontron", "986LCD-M", 0, board_kontron_986lcd_m},
--
And my piix4 code might finally get tested too :)
Luc Verhaegen.
Intel datasheet says "byte accesses only". Looks like they mean it.
Signed-off-by: Michael Karcher flashrom@mkarcher.dialup.fu-berlin.de --- board_enable.c | 11 +++++++---- 1 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/board_enable.c b/board_enable.c index 5d89929..76b5a6a 100644 --- a/board_enable.c +++ b/board_enable.c @@ -578,6 +578,7 @@ static int board_artecgroup_dbe6x(const char *name) */ static int intel_piix4_gpo_set(unsigned int gpo, int raise) { + unsigned int gpo_byte, gpo_bit; struct pci_dev *dev; uint32_t tmp, base;
@@ -632,12 +633,14 @@ static int intel_piix4_gpo_set(unsigned int gpo, int raise) /* PM IO base */ base = pci_read_long(dev, 0x40) & 0x0000FFC0;
- tmp = INL(base + 0x34); /* GPO register */ + gpo_byte = gpo >> 3; + gpo_bit = gpo & 7; + tmp = INB(base + 0x34 + gpo_byte); /* GPO register */ if (raise) - tmp |= 0x01 << gpo; + tmp |= 0x01 << gpo_bit; else - tmp |= ~(0x01 << gpo); - OUTL(tmp, base + 0x34); + tmp |= ~(0x01 << gpo_bit); + OUTB(tmp, base + 0x34 + gpo_byte);
return 0; }
[mail for having this statement in patchwork]
Am Mittwoch, den 27.01.2010, 01:39 +0100 schrieb Luc Verhaegen:
/**
- Suited for Intel SE440BX-2
- */
+static int intel_piix4_gpo27_lower(const char *name) +{
return intel_piix4_gpo_set(27, 0);
+}
And my piix4 code might finally get tested too :)
Even after fixing that code, this board enable doesn't work, as I described in http://www.flashrom.org/pipermail/flashrom/2010-February/002272.html
Regards, Michael Karcher