From fa6ff60c8c0daf2bbae6ab505e023bc8af073bb7 Mon Sep 17 00:00:00 2001 From: Angel Pons Date: Fri, 28 Sep 2018 21:03:47 +0200 Subject: [PATCH] util/superiotool/smsc.c: Add some register dumps The SCH3112, SCH3116 and SCH5127 were lacking a pin dump. Since their datasheets are available, add their pin dumps. The SCH3112, SCH3114 and SCH3116 are almost identical, they only differ in the number of serial ports. Some values in the SCH3114 dump were inaccurate, that has been fixed as well. Datasheets used: - SCH311X: DS00001872A - SCH5127: DS00002081A Change-Id: Ic985526be9b09e0452eaf883904dfaf709b7e907 Signed-off-by: Angel Pons Reviewed-on: https://review.coreboot.org/28794 Tested-by: build bot (Jenkins) Reviewed-by: Felix Held --- util/superiotool/smsc.c | 99 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 93 insertions(+), 6 deletions(-) diff --git a/util/superiotool/smsc.c b/util/superiotool/smsc.c index 21763ec3c1..820bc1678a 100644 --- a/util/superiotool/smsc.c +++ b/util/superiotool/smsc.c @@ -733,12 +733,10 @@ static const struct superio_registers reg_table[] = { 0x00,0x00,0x00,0x00,RSVD,0x00,0x00,0x80,EOT}}, {EOT}}}, {0x7c, "SCH3112", { - {EOT}}}, - {0x7d, "SCH3114", { {NOLDN, NULL, - {0x02,0x03,0x20,0x21,0x22,0x23,0x24,0x26,0x27, + {0x02,0x03,0x19,0x21,0x22,0x23,0x24,0x25,0x26,0x27, 0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,EOT}, - {0x00,RSVD,0x7D,RSVD,0x00,RSVD,0x44,MISC,0x00, + {0x00,RSVD,RSVD,MISC,0x00,RSVD,0x44,RSVD,MISC,MISC, RSVD,0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT}}, {0x0, "Floppy", {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,0xf2,0xf4, @@ -759,7 +757,34 @@ static const struct superio_registers reg_table[] = { {0x00,0x00,0x00,0x00,EOT}}, {0xa, "Runtime registers", {0x30,0x60,0x61,0x62,0x63,0xf0,0xf1,0xf2,EOT}, - {0x00,0x00,0x00,0x00,0x00,NANA,0x00,0x04,EOT}}, + {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,EOT}}, + {EOT}}}, + {0x7d, "SCH3114", { + {NOLDN, NULL, + {0x02,0x03,0x19,0x21,0x22,0x23,0x24,0x25,0x26,0x27, + 0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,EOT}, + {0x00,RSVD,RSVD,MISC,0x00,RSVD,0x44,RSVD,MISC,MISC, + RSVD,0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT}}, + {0x0, "Floppy", + {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,0xf2,0xf4, + 0xf5,EOT}, + {0x00,0x03,0xf0,0x06,0x02,0x0e,0x00,0xff,0x00, + 0x00,EOT}}, + {0x3, "Parallel port", + {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT}, + {0x00,0x00,0x00,0x00,0x04,0x3c,0x00,EOT}}, + {0x4, "COM1", + {0x30,0x60,0x61,0x70,0xf0,EOT}, + {0x00,0x00,0x00,0x00,0x00,EOT}}, + {0x5, "COM2", + {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT}, + {0x00,0x00,0x00,0x00,0x00,0x02,0x03,EOT}}, + {0x7, "Keyboard", + {0x30,0x70,0x72,0xf0,EOT}, + {0x00,0x00,0x00,0x00,EOT}}, + {0xa, "Runtime registers", + {0x30,0x60,0x61,0x62,0x63,0xf0,0xf1,0xf2,EOT}, + {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,EOT}}, {0xb, "COM3", {0x30,0x60,0x61,0x70,0xf0,EOT}, {0x00,0x00,0x00,0x00,0x00,EOT}}, @@ -768,6 +793,43 @@ static const struct superio_registers reg_table[] = { {0x00,0x00,0x00,0x00,0x00,EOT}}, {EOT}}}, {0x7f, "SCH3116", { + {NOLDN, NULL, + {0x02,0x03,0x19,0x21,0x22,0x23,0x24,0x25,0x26,0x27, + 0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,EOT}, + {0x00,RSVD,RSVD,MISC,0x00,RSVD,0x44,RSVD,MISC,MISC, + RSVD,0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT}}, + {0x0, "Floppy", + {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,0xf2,0xf4, + 0xf5,EOT}, + {0x00,0x03,0xf0,0x06,0x02,0x0e,0x00,0xff,0x00, + 0x00,EOT}}, + {0x3, "Parallel port", + {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT}, + {0x00,0x00,0x00,0x00,0x04,0x3c,0x00,EOT}}, + {0x4, "COM1", + {0x30,0x60,0x61,0x70,0xf0,EOT}, + {0x00,0x00,0x00,0x00,0x00,EOT}}, + {0x5, "COM2", + {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT}, + {0x00,0x00,0x00,0x00,0x00,0x02,0x03,EOT}}, + {0x7, "Keyboard", + {0x30,0x70,0x72,0xf0,EOT}, + {0x00,0x00,0x00,0x00,EOT}}, + {0xa, "Runtime registers", + {0x30,0x60,0x61,0x62,0x63,0xf0,0xf1,0xf2,EOT}, + {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,EOT}}, + {0xb, "COM3", + {0x30,0x60,0x61,0x70,0xf0,EOT}, + {0x00,0x00,0x00,0x00,0x00,EOT}}, + {0xc, "COM4", + {0x30,0x60,0x61,0x70,0xf0,EOT}, + {0x00,0x00,0x00,0x00,0x00,EOT}}, + {0xd, "COM5", + {0x30,0x60,0x61,0x70,0xf0,EOT}, + {0x00,0x00,0x00,0x00,0x00,EOT}}, + {0xe, "COM6", + {0x30,0x60,0x61,0x70,0xf0,EOT}, + {0x00,0x00,0x00,0x00,0x00,EOT}}, {EOT}}}, {0x81, "SCH5307", { {EOT}}}, @@ -776,7 +838,32 @@ static const struct superio_registers reg_table[] = { {0x85, "SCH5317", { /* From sensors-detect */ /* The SCH5317 can have either 0x85 or 0x8c as device ID. */ {EOT}}}, - {0x86, "SCH5127", { /* From sensors-detect */ + {0x86, "SCH5127", { /* From sensors-detect, dump from datasheet */ + {NOLDN, NULL, + {0x02,0x03,0x21,0x22,0x23,0x24,0x26,0x27, + 0x28,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,EOT}, + {0x00,RSVD,MISC,0x00,0x00,0x44,MISC,0x00, + RSVD,0x00,0x00,0x00,0x00,0x00,0x00,EOT}}, + {0x0, "Floppy", + {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,0xf2,0xf4, + 0xf5,EOT}, + {0x00,0x03,0xf0,0x06,0x02,0x0e,0x00,0xff,0x00, + 0x00,EOT}}, + {0x3, "Parallel port", + {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT}, + {0x00,0x00,0x00,0x00,0x04,0x3c,0x00,EOT}}, + {0x4, "COM1", + {0x30,0x60,0x61,0x70,0xf0,EOT}, + {0x00,0x00,0x00,0x00,0x00,EOT}}, + {0x5, "COM2", + {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT}, + {0x00,0x00,0x00,0x00,0x00,0x02,0x03,EOT}}, + {0x7, "Keyboard", + {0x30,0x70,0x72,0xf0,EOT}, + {0x00,0x00,0x00,0x00,EOT}}, + {0xa, "Runtime registers", + {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT}, + {0x00,0x00,0x00,0x00,0x00,RSVD,EOT}}, {EOT}}}, {0x89, "SCH5027", { /* From sensors-detect (no public datasheet) */ {EOT}}},