summaryrefslogtreecommitdiffstats
path: root/util/superiotool/winbond.c
diff options
context:
space:
mode:
authorUwe Hermann <uwe@hermann-uwe.de>2007-10-16 18:15:25 +0000
committerUwe Hermann <uwe@hermann-uwe.de>2007-10-16 18:15:25 +0000
commitdc34cab5cbc99f30f9fecc97894230593107ee24 (patch)
tree43ac0f3b9b77113c22699cf49249efc3bc4b7538 /util/superiotool/winbond.c
parent92d3434f8720f362b27a99849c67d7b28b07227a (diff)
downloadcoreboot-dc34cab5cbc99f30f9fecc97894230593107ee24.tar.gz
coreboot-dc34cab5cbc99f30f9fecc97894230593107ee24.tar.bz2
coreboot-dc34cab5cbc99f30f9fecc97894230593107ee24.zip
Fix the detection for the Winbond W83697SF. Unfortunately the revision
has a slightly different format than that of the W83697UF/UG so we have to hack around it a bit. This patch has been verified to work on real hardware by Idwer Vollering <idwer_v@hotmail.com> on IRC (thanks!). Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de> Acked-by: Ronald G. Minnich <rminnich@gmail.com> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@2861 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'util/superiotool/winbond.c')
-rw-r--r--util/superiotool/winbond.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/util/superiotool/winbond.c b/util/superiotool/winbond.c
index 46efec0e334e..501ba26f9469 100644
--- a/util/superiotool/winbond.c
+++ b/util/superiotool/winbond.c
@@ -92,8 +92,6 @@ const static struct superio_registers reg_table[] = {
{EOT}}},
{0x610, "W83L517D/D-F", {
{EOT}}},
- {0x681, "W83697SF/UF/UG", {
- {EOT}}},
{0x708, "W83637HF/HG", {
{EOT}}},
{0x828, "W83627THF/THG", { /* We assume rev is bits 3..0 of 0x21. */
@@ -295,6 +293,8 @@ const static struct superio_registers reg_table[] = {
{0x30,0x60,0x61,0x70,0xf0,EOT},
{0x00,0x00,0x00,0x00,0x00,EOT}},
{EOT}}},
+ {0x68, "W83697SF/UF/UG", { /* TODO: Add comment. */
+ {EOT}}},
/* ID[3..0] */
{0xa, "W83877F", {
@@ -333,7 +333,7 @@ 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)
+ if (devid == 0x52 || devid == 0x68)
id = devid; /* ID only */
else if ((devid == 0x97) && ((rev & 0xf0) == 0x70))
id = (devid << 8) | rev; /* ID and rev */