* Convert the NSC code to the common code structure all other Super I/Os use.

* Improve the --verbose output a bit more. Print the "Probing..." text for
   all Super I/Os and if a Super I/O is not known, show the data we were
   able to read from the chip (what data this is is very vendor/chip specific).

 * Thus the common no_superio_found() is dropped, it's not useful.
   The "read from 0x20" part was wrong for all Super I/Os other than the
   NSC ones anyway.

 * Winbond: For the 'olddevid' only use bits 3..0, mask away the others.

 * SMSC: Print which ID registers we try to read (in --verbose mode).

 * Minor cosmetic fixes.
   * Rename PC8374 to PC8374L (as per datasheet).
   * Rename probe_idregs_simple() to probe_idregs_nsc().
   * Rename dump_readable_ns8374() to dump_readable_pc8374l().

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@2821 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
Uwe Hermann
2007-10-04 15:23:38 +00:00
parent 573ff508ab
commit 8b8d03974e
8 changed files with 77 additions and 46 deletions

View File

@@ -40,6 +40,8 @@
Per default (no options) superiotool will just probe for a Super I/O\n\
and print its vendor, name, ID, revision, and config port.\n"
#define NOTFOUND " Failed. Returned data: "
#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
#define EOT -1 /* End Of Table */
@@ -79,7 +81,7 @@ const char *get_superio_name(const struct superio_registers reg_table[],
void dump_superio(const char *name, const struct superio_registers reg_table[],
uint16_t port, uint16_t id);
void dump_superio_readable(uint16_t port);
void no_superio_found(const char *vendor, const char *info, uint16_t port);
void probing_for(const char *vendor, const char *info, uint16_t port);
/* ali.c */
void probe_idregs_ali(uint16_t port);
@@ -91,7 +93,7 @@ void probe_idregs_fintek(uint16_t port);
void probe_idregs_ite(uint16_t port);
/* nsc.c */
void probe_idregs_simple(uint16_t port);
void probe_idregs_nsc(uint16_t port);
/* smsc.c */
void probe_idregs_smsc(uint16_t port);
@@ -105,7 +107,7 @@ const static struct {
int ports[MAXNUMPORTS]; /* Signed, as we need EOT. */
} superio_ports_table[] = {
{probe_idregs_ali, {0x3f0, 0x370, EOT}},
{probe_idregs_simple, {0x2e, 0x4e, EOT}},
{probe_idregs_nsc, {0x2e, 0x4e, EOT}},
{probe_idregs_fintek, {0x2e, 0x4e, EOT}},
{probe_idregs_ite, {0x2e, 0x4e, EOT}},
{probe_idregs_smsc, {0x2e, 0x4e, 0x3f0, 0x370, EOT}},