All mentioned north bridges have been checked against data sheet. That's all north bridges google found a datasheet for with "byte enable" included.
Signed-off-by: Michael Karcher flashrom@mkarcher.dialup.fu-berlin.de --- chipset_enable.c | 34 ++++++++++++++++++++++++++++++++++ 1 files changed, 34 insertions(+), 0 deletions(-)
diff --git a/chipset_enable.c b/chipset_enable.c index fc60484..6ef1f8d 100644 --- a/chipset_enable.c +++ b/chipset_enable.c @@ -639,6 +639,32 @@ static int enable_flash_ich10(struct pci_dev *dev, const char *name) return enable_flash_ich_dc_spi(dev, name, 10); }
+static void via_do_byte_merge(void * arg) +{ + struct pci_dev * dev = arg; + uint8_t val; + + printf_debug("Re-enabling byte merging\n"); + val = pci_read_byte(dev, 0x71); + val |= 0x40; + pci_write_byte(dev, 0x71, val); +} + +static int via_no_byte_merge(struct pci_dev *dev, const char *name) +{ + uint8_t val; + + val = pci_read_byte(dev, 0x71); + if (val & 0x40) + { + printf_debug("Disabling byte merging\n"); + val &= ~0x40; + pci_write_byte(dev, 0x71, val); + register_shutdown(via_do_byte_merge, dev); + } + return 0; +} + static int enable_flash_vt823x(struct pci_dev *dev, const char *name) { uint8_t val; @@ -1405,6 +1431,14 @@ const struct penable chipset_enables[] = { {0x1039, 0x0746, NT, "SiS", "746", enable_flash_sis540}, {0x1039, 0x0748, NT, "SiS", "748", enable_flash_sis540}, {0x1039, 0x0755, NT, "SiS", "755", enable_flash_sis540}, + /* VIA northbridges */ + {0x1106, 0x0585, NT, "VIA", "VT82C585VPX", via_no_byte_merge}, + {0x1106, 0x0595, NT, "VIA", "VT82C595", via_no_byte_merge}, + {0x1106, 0x0597, NT, "VIA", "VT82C597", via_no_byte_merge}, + {0x1106, 0x0691, NT, "VIA", "VT82C69x", via_no_byte_merge}, /* 691, 693a, 694t, 694x checked */ + {0x1106, 0x0601, NT, "VIA", "VT8601/VT8601A", via_no_byte_merge}, + {0x1106, 0x8601, NT, "VIA", "VT8601T", via_no_byte_merge}, + /* VIA southbridges */ {0x1106, 0x8324, OK, "VIA", "CX700", enable_flash_vt823x}, {0x1106, 0x8231, NT, "VIA", "VT8231", enable_flash_vt823x}, {0x1106, 0x3074, NT, "VIA", "VT8233", enable_flash_vt823x},