Author: hailfinger Date: 2008-02-25 23:32:41 +0100 (Mon, 25 Feb 2008) New Revision: 3117
Modified: trunk/util/superiotool/README trunk/util/superiotool/ite.c trunk/util/superiotool/superiotool.8 trunk/util/superiotool/superiotool.c trunk/util/superiotool/superiotool.h Log: This patch adds support to dump other registers than the primary pnp-style configuration registers, using the new option -e/--extra-dump. This patch only adds dumping of the Environmental Controller configuration registers for the IT8716f chip.
Signed-off-by: Ronald Hoogenboom hoogenboom30@zonnet.nl
I (Carl-Daniel) checked the data sheets of the whole IT87[012] series and although the environment controller is sometimes called fan controller, the location of the register is the same for all models.
Acked-by: Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net
Modified: trunk/util/superiotool/README =================================================================== --- trunk/util/superiotool/README 2008-02-25 19:36:20 UTC (rev 3116) +++ trunk/util/superiotool/README 2008-02-25 22:32:41 UTC (rev 3117) @@ -33,6 +33,7 @@ $ superiotool [-d] [-l] [-V] [-v] [-h]
-d | --dump Dump Super I/O register contents + -e | --extra-dump Dump Secondary registers too (like EC registers etc.) -l | --list-supported Show the list of supported Super I/O chips -V | --verbose Verbose mode -v | --version Show the superiotool version @@ -95,9 +96,9 @@ Idwer Vollering idwer_v@hotmail.com Rasmus Wiman rasmus@wiman.org Robinson P. Tryon bishop.robinson@gmail.com +Ronald Hoogenboom hoogenboom30@zonnet.nl Ronald Minnich rminnich@gmail.com Stefan Reinauer stepan@coresystems.de Ulf Jordan jordan@chalmers.se Uwe Hermann uwe@hermann-uwe.de Ward Vandewege ward@gnu.org -
Modified: trunk/util/superiotool/ite.c =================================================================== --- trunk/util/superiotool/ite.c 2008-02-25 19:36:20 UTC (rev 3116) +++ trunk/util/superiotool/ite.c 2008-02-25 22:32:41 UTC (rev 3117) @@ -324,6 +324,36 @@ {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 +398,17 @@ chip_found = 1;
dump_superio("ITE", reg_table, port, id); + + if (extra_dump) { + 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)
Modified: trunk/util/superiotool/superiotool.8 =================================================================== --- trunk/util/superiotool/superiotool.8 2008-02-25 19:36:20 UTC (rev 3116) +++ trunk/util/superiotool/superiotool.8 2008-02-25 22:32:41 UTC (rev 3117) @@ -2,7 +2,7 @@ .SH NAME superiotool - Super I/O detection tool .SH SYNOPSIS -.B superiotool \fR[\fB-dlVvh\fR] +.B superiotool \fR[\fB-delVvh\fR] .SH DESCRIPTION .B superiotool is a GPL'd user-space utility which can @@ -73,6 +73,16 @@ detailed information about the .BR MM " fields." .TP +.B "-e, --extra-dump" +Dump extra secondary register contents too, if available. Only in combination +with the +.B --dump +option. This option will, for instance, dump the Environmental Controller +configuration registers for the ITE IT8716f chip. The format is similar to +the output of the +.B --dump +option. +.TP .B "-l, --list-supported" List all Super I/O chips recognized by .BR superiotool ". The phrase"
Modified: trunk/util/superiotool/superiotool.c =================================================================== --- trunk/util/superiotool/superiotool.c 2008-02-25 19:36:20 UTC (rev 3116) +++ trunk/util/superiotool/superiotool.c 2008-02-25 22:32:41 UTC (rev 3117) @@ -24,7 +24,7 @@ #include "superiotool.h"
/* Command line options. */ -int dump = 0, verbose = 0; +int dump = 0, verbose = 0, extra_dump = 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'}, + {"extra-dump", 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': + extra_dump = 1; + break; case 'l': print_list_of_supported_chips(); exit(0);
Modified: trunk/util/superiotool/superiotool.h =================================================================== --- trunk/util/superiotool/superiotool.h 2008-02-25 19:36:20 UTC (rev 3116) +++ trunk/util/superiotool/superiotool.h 2008-02-25 22:32:41 UTC (rev 3117) @@ -32,6 +32,7 @@
#define USAGE "Usage: superiotool [-d] [-l] [-V] [-v] [-h]\n\n\ -d | --dump Dump Super I/O register contents\n\ + -e | --extra-dump Dump Secondary registers too (like EC registers etc.)\n\ -l | --list-supported Show the list of supported Super I/O chips\n\ -V | --verbose Verbose mode\n\ -v | --version Show the superiotool version\n\ @@ -56,7 +57,7 @@ #define MAXNUMPORTS (6 + 1) /* Maximum number of Super I/O ports */
/* Command line parameters. */ -extern int dump, verbose; +extern int dump, verbose, extra_dump;
extern int chip_found;