From fb348035a38f1f01afeb6928c8abbdc2051ecf80 Mon Sep 17 00:00:00 2001 From: Uwe Hermann Date: Sat, 19 Jan 2008 09:40:17 +0000 Subject: [PATCH] Small superiotool fix to detect more Winbond W83627EHF chips. The patch is tested on actual hardware. As per datasheet the ID should be 0x886? for those chips. Not mentioned in the datasheet, but sensors-detect says 0x8853 is also possible. Also, the ASUS A8V-E Deluxe (W83627EHF) has an ID of 0x8854 (verified on actual hardware). So assume all 0x88?? IDs to mean W83627EHF/EF/EHG/EG. Signed-off-by: Uwe Hermann Acked-by: Carl-Daniel Hailfinger git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3063 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- util/superiotool/winbond.c | 105 ++++++++++++++++++++----------------- 1 file changed, 56 insertions(+), 49 deletions(-) diff --git a/util/superiotool/winbond.c b/util/superiotool/winbond.c index 9acf10a2f..1b67e9c1a 100644 --- a/util/superiotool/winbond.c +++ b/util/superiotool/winbond.c @@ -195,54 +195,6 @@ static const struct superio_registers reg_table[] = { {0x00,0x48,0x48,0x48,0x48,0x00,0x00,0x48,0x00,0x00, EOT}}, {EOT}}}, - {0x886, "W83627EHF/EF/EHG/EG", { /* sensors-detect: 0x8853 possible */ - {NOLDN, NULL, - {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28, - 0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,EOT}, - {0x88,MISC,0xff,0x00,MISC,0x00,MISC,RSVD,0x50, - 0x04,0x00,RSVD,0x00,0x21,0x00,0x00,EOT}}, - {0x0, "Floppy", - {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,0xf2,0xf4, - 0xf5,EOT}, - {0x01,0x03,0xf0,0x06,0x02,0x8e,0x00,0xff,0x00, - 0x00,EOT}}, - {0x1, "Parallel port", - {0x30,0x60,0x61,0x70,0x74,0xf0,EOT}, - {0x01,0x03,0x78,0x07,0x04,0x3f,EOT}}, - {0x2, "COM1", - {0x30,0x60,0x61,0x70,0xf0,EOT}, - {0x01,0x03,0xf8,0x04,0x00,EOT}}, - {0x3, "COM2", - {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT}, - {0x01,0x02,0xf8,0x03,0x00,0x00,EOT}}, - {0x5, "Keyboard", - {0x30,0x60,0x61,0x62,0x63,0x70,0x72,0xf0,EOT}, - {0x01,0x00,0x60,0x00,0x64,0x01,0x0c,0x83,EOT}}, - {0x6, "Serial flash interface", - {0x30,0x62,0x63,EOT}, - {0x00,0x00,0x00,EOT}}, - {0x7, "GPIO 1, GPIO 6, game port, MIDI port", - {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3, - 0xf4,0xf5,0xf6,0xf7,EOT}, - {0x00,0x02,0x01,0x03,0x30,0x09,0xff,0x00,0x00,0x00, - 0xff,0x00,0x00,0x00,EOT}}, - {0x8, "WDTO#, PLED", - {0x30,0xf5,0xf6,0xf7,EOT}, - {0x00,0x00,0x00,0x00,EOT}}, - {0x9, "GPIO 2, GPIO 3, GPIO 4, GPIO 5, SUSLED", - {0x30,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xf0,0xf1,0xf2, - 0xf3,0xf4,0xf5,0xf6,0xf7,EOT}, - {0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00, - 0x00,0xff,0x00,0x00,0x00,EOT}}, - {0xa, "ACPI", - {0x30,0x70,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7, - 0xe8,0xf2,0xf3,0xf4,0xf6,0xf7,EOT}, - {0x00,0x00,0x01,0x00,0xff,0x08,0x00,RSVD,0x00,0x00, - RSVD,0x7c,0x00,0x00,0x00,0x00,EOT}}, - {0xb, "Hardware monitor", - {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT}, - {0x00,0x00,0x00,0x00,0xc1,0x00,EOT}}, - {EOT}}}, {0xa23, "W83627UHG", {/* TODO: Not yet in sensors-detect */ {EOT}}}, @@ -412,6 +364,61 @@ static const struct superio_registers reg_table[] = { {0x30,0x60,0x61,0xf0,0xf1,0xf2,EOT}, {0x00,0x00,0x00,0xff,0x00,0x00,EOT}}, {EOT}}}, + {0x88, "W83627EHF/EF/EHG/EG", { + /* + * As per datasheet the ID should be 0x886? here. + * Not mentioned in the datasheet, but sensors-detect says + * 0x8853 is also possible. Also, the ASUS A8V-E Deluxe + * (W83627EHF) has an ID of 0x8854 (verified on hardware). + * So we now assume all 0x88?? IDs to mean W83627EHF/EF/EHG/EG. + */ + {NOLDN, NULL, + {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28, + 0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,EOT}, + {0x88,MISC,0xff,0x00,MISC,0x00,MISC,RSVD,0x50, + 0x04,0x00,RSVD,0x00,0x21,0x00,0x00,EOT}}, + {0x0, "Floppy", + {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,0xf2,0xf4, + 0xf5,EOT}, + {0x01,0x03,0xf0,0x06,0x02,0x8e,0x00,0xff,0x00, + 0x00,EOT}}, + {0x1, "Parallel port", + {0x30,0x60,0x61,0x70,0x74,0xf0,EOT}, + {0x01,0x03,0x78,0x07,0x04,0x3f,EOT}}, + {0x2, "COM1", + {0x30,0x60,0x61,0x70,0xf0,EOT}, + {0x01,0x03,0xf8,0x04,0x00,EOT}}, + {0x3, "COM2", + {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT}, + {0x01,0x02,0xf8,0x03,0x00,0x00,EOT}}, + {0x5, "Keyboard", + {0x30,0x60,0x61,0x62,0x63,0x70,0x72,0xf0,EOT}, + {0x01,0x00,0x60,0x00,0x64,0x01,0x0c,0x83,EOT}}, + {0x6, "Serial flash interface", + {0x30,0x62,0x63,EOT}, + {0x00,0x00,0x00,EOT}}, + {0x7, "GPIO 1, GPIO 6, game port, MIDI port", + {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3, + 0xf4,0xf5,0xf6,0xf7,EOT}, + {0x00,0x02,0x01,0x03,0x30,0x09,0xff,0x00,0x00,0x00, + 0xff,0x00,0x00,0x00,EOT}}, + {0x8, "WDTO#, PLED", + {0x30,0xf5,0xf6,0xf7,EOT}, + {0x00,0x00,0x00,0x00,EOT}}, + {0x9, "GPIO 2, GPIO 3, GPIO 4, GPIO 5, SUSLED", + {0x30,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xf0,0xf1,0xf2, + 0xf3,0xf4,0xf5,0xf6,0xf7,EOT}, + {0x00,0xff,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00, + 0x00,0xff,0x00,0x00,0x00,EOT}}, + {0xa, "ACPI", + {0x30,0x70,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7, + 0xe8,0xf2,0xf3,0xf4,0xf6,0xf7,EOT}, + {0x00,0x00,0x01,0x00,0xff,0x08,0x00,RSVD,0x00,0x00, + RSVD,0x7c,0x00,0x00,0x00,0x00,EOT}}, + {0xb, "Hardware monitor", + {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT}, + {0x00,0x00,0x00,0x00,0xc1,0x00,EOT}}, + {EOT}}}, /* ID[3..0] */ {0xa, "W83877F", { @@ -450,7 +457,7 @@ static void probe_idregs_winbond_helper(const char *init, uint16_t port) rev = regval(port, DEVICE_REV_REG); olddevid = regval(port, DEVICE_ID_REG_OLD) & 0x0f; - if (devid == 0x52 || devid == 0x68) + if (devid == 0x52 || devid == 0x68 || devid == 0x88) id = devid; /* ID only */ else if ((devid == 0x97) && ((rev & 0xf0) == 0x70)) id = (devid << 8) | rev; /* ID and rev */ -- 2.25.1