Hi,
I've extended the ite.c part to include dumping the environmental
controller register contents too. It's amazingly easy to add such
things. Only IT8716f (that's the only datasheet I have at the moment).
Signed-off-by: Ronald Hoogenboom <[EMAIL PROTECTED]>
Index: superiotool/ite.c
===================================================================
--- superiotool/ite.c (revision 3113)
+++ superiotool/ite.c (working copy)
@@ -324,6 +324,32 @@
{EOT}
};
+static const struct superio_registers ec_table[] = {
+ {0x8716, "IT8716F", {
+ {NOLDN, NULL,
+ {0x00,0x04,0x05,0x06,0x07,0x08,0x09,0x0b,0x0c,0x10,0x11,0x12,0x13,
+ 0x14,0x15,0x16,0x17,0x1b,0x1c,0x1d,0x30,0x31,0x32,0x33,0x34,0x35,
+ 0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,0x42,
+ 0x43,0x44,0x45,0x48,0x50,0x51,0x52,0x53,0x54,0x56,0x57,0x59,0x5c,
+ EOT},
+ {0x18,0x00,0x00,0x00,0x00,0x00,0x80,0x09,0x00,NANA,NANA,NANA,0x07,
+ 0x50,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
+ NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
+ NANA,NANA,NANA,RSVD,0x00,0x00,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,
+ EOT}},
+ {NOLDN, NULL,
+ {0x5d,0x5e,0x5f,0x60,0x61,0x62,0x63,0x64,0x65,0x68,0x69,0x6a,0x6b,
+ 0x6c,0x6d,0x70,0x71,0x72,0x73,0x74,0x75,0x84,0x85,0x86,0x87,0x88,
+ 0x89,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,0x95,0x98,0x99,
+ 0x9a,0x9b,0x9c,0x9d,EOT},
+ {0x00,0x00,0x00,0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,
+ 0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x7f,NANA,NANA,NANA,NANA,0x00,
+ 0x00,0x02,0x00,0x99,0x99,0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x7f,0x7f,
+ 0x7f,0x00,0x00,0x7f,EOT}},
+ {EOT}}},
+ {EOT}
+};
+
/**
* IT871[01]F and IT8708F use 0x87, 0x87
* IT8761F uses 0x87, 0x61, 0x55, 0x55/0xaa
@@ -368,6 +394,17 @@
chip_found = 1;
dump_superio("ITE", reg_table, port, id);
+
+ if (dump_ec) {
+ uint16_t ecport;
+ regwrite(port, 0x07, 0x04); /*EC LDN*/
+ ecport = regval(port, 0x60) << 8;
+ ecport |= regval(port, 0x61);
+ ecport += 5;
+
+ printf("Environment Controller (0x%04x)\n",ecport);
+ dump_superio("ITE-EC", ec_table, ecport, id);
+ }
}
void probe_idregs_ite(uint16_t port)
Index: superiotool/superiotool.c
===================================================================
--- superiotool/superiotool.c (revision 3113)
+++ superiotool/superiotool.c (working copy)
@@ -24,7 +24,7 @@
#include "superiotool.h"
/* Command line options. */
-int dump = 0, verbose = 0;
+int dump = 0, verbose = 0, dump_ec = 0;
/* Global flag which indicates whether a chip was detected at all. */
int chip_found = 0;
@@ -208,6 +208,7 @@
static const struct option long_options[] = {
{"dump", no_argument, NULL, 'd'},
+ {"dump ec too", no_argument, NULL, 'e'},
{"list-supported", no_argument, NULL, 'l'},
{"verbose", no_argument, NULL, 'V'},
{"version", no_argument, NULL, 'v'},
@@ -215,12 +216,15 @@
{0, 0, 0, 0}
};
- while ((opt = getopt_long(argc, argv, "dlVvh",
+ while ((opt = getopt_long(argc, argv, "delVvh",
long_options, &option_index)) != EOF) {
switch (opt) {
case 'd':
dump = 1;
break;
+ case 'e':
+ dump_ec = 1;
+ break;
case 'l':
print_list_of_supported_chips();
exit(0);
Index: superiotool/superiotool.h
===================================================================
--- superiotool/superiotool.h (revision 3113)
+++ superiotool/superiotool.h (working copy)
@@ -56,7 +56,7 @@
#define MAXNUMPORTS (6 + 1) /* Maximum number of Super I/O ports */
/* Command line parameters. */
-extern int dump, verbose;
+extern int dump, verbose, dump_ec;
extern int chip_found;
--
coreboot mailing list
[email protected]
http://www.coreboot.org/mailman/listinfo/coreboot