Hello Zach Stuart,
could you please try this patch? You find it at http://patchwork.coreboot.org/patch/910/
Regards, Michael Karcher
Am Donnerstag, den 11.02.2010, 19:48 +0100 schrieb Michael Karcher:
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;
elsetmp |= 0x01 << gpo_bit;
tmp |= ~(0x01 << gpo);
- OUTL(tmp, base + 0x34);
tmp |= ~(0x01 << gpo_bit);
OUTB(tmp, base + 0x34 + gpo_byte);
return 0;
}