Detection support for more Super I/Os. Small fixes (trivial).

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@2975 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
Uwe Hermann 2007-11-17 17:13:52 +00:00
parent 70ab323ae6
commit 74b29b9e33
5 changed files with 26 additions and 4 deletions

View File

@ -30,9 +30,9 @@ Installation
Usage Usage
----- -----
$ superiotool [-d] [-D] [-V] [-v] [-h] $ superiotool [-d] [-V] [-v] [-h]
-d | --dump Dump Super I/O registers -d | --dump Dump Super I/O register contents
-V | --verbose Verbose mode -V | --verbose Verbose mode
-v | --version Show the superiotool version -v | --version Show the superiotool version
-h | --help Show a short help text -h | --help Show a short help text

View File

@ -53,6 +53,8 @@ static const struct superio_registers reg_table[] = {
{0x30,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,EOT}, {0x30,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,EOT},
{0x00,0x35,0x14,0x11,0x71,RSVD,0x05,EOT}}, {0x00,0x35,0x14,0x11,0x71,RSVD,0x05,EOT}},
{EOT}}}, {EOT}}},
{0x2351, "M512x", {
{EOT}}},
{EOT} {EOT}
}; };
@ -78,6 +80,8 @@ void probe_idregs_ali(uint16_t port)
id = regval(port, DEVICE_ID_BYTE1_REG) << 8; id = regval(port, DEVICE_ID_BYTE1_REG) << 8;
id |= regval(port, DEVICE_ID_BYTE2_REG); id |= regval(port, DEVICE_ID_BYTE2_REG);
/* TODO: Not documented/available on M512x (?) */
rev = regval(port, DEVICE_REV_REG); rev = regval(port, DEVICE_REV_REG);
if (superio_unknown(reg_table, id)) { if (superio_unknown(reg_table, id)) {

View File

@ -28,10 +28,19 @@
static const struct superio_registers reg_table[] = { static const struct superio_registers reg_table[] = {
/* The following Super I/Os use the 0x20/0x21 ID registers. */ /* The following Super I/Os use the 0x20/0x21 ID registers. */
{0x03, "FDC37C93xFR", {
/* FIXME: There's another 0x03 but found on port 0x0d/0x0e! */
{EOT}}},
{0x0a, "FDC37N971", {
{EOT}}},
{0x0b, "FDC37N972", {
{EOT}}},
{0x0e, "LPC47N252", { /* From sensors-detect */ {0x0e, "LPC47N252", { /* From sensors-detect */
{EOT}}}, {EOT}}},
{0x14, "LPC47M172", { {0x14, "LPC47M172", {
{EOT}}}, {EOT}}},
{0x30, "FDC37C93xAPM", {
{EOT}}},
{0x40, "FDC37C67x", { /* E.g. FDC37C672. Chiprev: 0x01 */ {0x40, "FDC37C67x", { /* E.g. FDC37C672. Chiprev: 0x01 */
{EOT}}}, {EOT}}},
{0x42, "FDC37B80x/FDC37M707", { {0x42, "FDC37B80x/FDC37M707", {
@ -79,6 +88,8 @@ static const struct superio_registers reg_table[] = {
{0x30,0x60,0x61,0x70,0xf0,EOT}, {0x30,0x60,0x61,0x70,0xf0,EOT},
{0x00,0x00,0x00,NANA,NANA,EOT}}, {0x00,0x00,0x00,NANA,NANA,EOT}},
{EOT}}}, {EOT}}},
{0x43, "FDC37B77x", {
{EOT}}},
{0x44, "FDC37B78x", { {0x44, "FDC37B78x", {
{NOLDN, NULL, {NOLDN, NULL,
{0x03,0x07,0x20,0x21,0x22,0x23,0x24,0x26,0x27,0x28, {0x03,0x07,0x20,0x21,0x22,0x23,0x24,0x26,0x27,0x28,
@ -337,10 +348,14 @@ static const struct superio_registers reg_table[] = {
{0x03, "FDC37C669", { {0x03, "FDC37C669", {
/* Init: 0x55, 0x55. Exit: 0xaa. Ports: 0x3f0/0x370. */ /* Init: 0x55, 0x55. Exit: 0xaa. Ports: 0x3f0/0x370. */
/* Chiprev: 0x02. */ /* Chiprev: 0x02. */
/* FIXME: There's another 0x03 but found on port 0x20/0x21! */
{EOT}}}, {EOT}}},
{0x04, "FDC37C669FR", { /* TODO: Not yet in sensors-detect. */ {0x04, "FDC37C669FR", { /* TODO: Not yet in sensors-detect. */
/* Init: 0x55, 0x55. Exit: 0xaa. Ports: 0x3f0/0x370. */ /* Init: 0x55, 0x55. Exit: 0xaa. Ports: 0x3f0/0x370. */
{EOT}}}, {EOT}}},
{0x13, "LPC47N237", {
/* Init: 0x55. Exit: 0xaa. Ports: 0x2e/0x4e. */
{EOT}}},
{0x28, "FDC37N769", { {0x28, "FDC37N769", {
/* Init: 0x55. Exit: 0xaa. Ports: 0x3f0/0x370. */ /* Init: 0x55. Exit: 0xaa. Ports: 0x3f0/0x370. */
{NOLDN, NULL, {NOLDN, NULL,
@ -355,6 +370,9 @@ static const struct superio_registers reg_table[] = {
0x80,0x00,0x3c,RSVD,RSVD,0x00,0x00,0x00,0x00,0x00, 0x80,0x00,0x3c,RSVD,RSVD,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,RSVD,0x00,0x00,0x03,0x00,0x00,EOT}}, 0x00,0x00,RSVD,0x00,0x00,0x03,0x00,0x00,EOT}},
{EOT}}}, {EOT}}},
{0x29, "FDC37N3869/FDC37N869", {
/* Init: 0x55. Exit: 0xaa. Ports: 0x3f0/0x370. */
{EOT}}},
{0x5a, "LPC47N227", { {0x5a, "LPC47N227", {
/* Init: 0x55. Exit: 0xaa. Ports: 0x2e/0x4e. */ /* Init: 0x55. Exit: 0xaa. Ports: 0x2e/0x4e. */
{NOLDN, NULL, {NOLDN, NULL,

View File

@ -74,7 +74,7 @@ detailed information about the
.TP .TP
.B "\-V, \-\-verbose" .B "\-V, \-\-verbose"
Enable verbose mode. This option can be used together with the Enable verbose mode. This option can be used together with the
.BR "\-d" " or " "\-D" " option (or both)." .BR "\-d" " option."
.sp .sp
The verbose output will not only list for which type of Super I/O the tool The verbose output will not only list for which type of Super I/O the tool
is scanning, but also at which configuration port it's probing, and which is scanning, but also at which configuration port it's probing, and which

View File

@ -30,7 +30,7 @@
#include <sys/io.h> #include <sys/io.h>
#define USAGE "Usage: superiotool [-d] [-V] [-v] [-h]\n\n\ #define USAGE "Usage: superiotool [-d] [-V] [-v] [-h]\n\n\
-d | --dump Dump Super I/O registers\n\ -d | --dump Dump Super I/O register contents\n\
-V | --verbose Verbose mode\n\ -V | --verbose Verbose mode\n\
-v | --version Show the superiotool version\n\ -v | --version Show the superiotool version\n\
-h | --help Show a short help text\n\n\ -h | --help Show a short help text\n\n\