Random minor fixes. Use svn revision as superiotool version number.
Make the -V output more informative. 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@2814 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
parent
945045b1ea
commit
afe8309202
|
@ -1,5 +1,5 @@
|
||||||
##
|
##
|
||||||
## This file is part of the LinuxBIOS project.
|
## This file is part of the superiotool project.
|
||||||
##
|
##
|
||||||
## Copyright (C) 2007 Uwe Hermann <uwe@hermann-uwe.de>
|
## Copyright (C) 2007 Uwe Hermann <uwe@hermann-uwe.de>
|
||||||
##
|
##
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of the LinuxBIOS project.
|
* This file is part of the superiotool project.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2007 Uwe Hermann <uwe@hermann-uwe.de>
|
* Copyright (C) 2007 Uwe Hermann <uwe@hermann-uwe.de>
|
||||||
*
|
*
|
||||||
|
@ -79,7 +79,7 @@ void probe_idregs_ali(uint16_t port)
|
||||||
rev = regval(port, DEVICE_REV_REG);
|
rev = regval(port, DEVICE_REV_REG);
|
||||||
|
|
||||||
if (superio_unknown(reg_table, id)) {
|
if (superio_unknown(reg_table, id)) {
|
||||||
no_superio_found(port);
|
no_superio_found("ALi", "", port);
|
||||||
exit_conf_mode_ali(port);
|
exit_conf_mode_ali(port);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of the LinuxBIOS project.
|
* This file is part of the superiotool project.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2006 coresystems GmbH <info@coresystems.de>
|
* Copyright (C) 2006 coresystems GmbH <info@coresystems.de>
|
||||||
* Copyright (C) 2007 Uwe Hermann <uwe@hermann-uwe.de>
|
* Copyright (C) 2007 Uwe Hermann <uwe@hermann-uwe.de>
|
||||||
|
@ -145,7 +145,7 @@ void probe_idregs_fintek(uint16_t port)
|
||||||
vid |= (regval(port, VENDOR_ID_BYTE2_REG) << 8);
|
vid |= (regval(port, VENDOR_ID_BYTE2_REG) << 8);
|
||||||
|
|
||||||
if (vid != FINTEK_VENDOR_ID || superio_unknown(reg_table, did)) {
|
if (vid != FINTEK_VENDOR_ID || superio_unknown(reg_table, did)) {
|
||||||
no_superio_found(port);
|
no_superio_found("Fintek", "", port);
|
||||||
exit_conf_mode_winbond_fintek_ite_8787(port);
|
exit_conf_mode_winbond_fintek_ite_8787(port);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of the LinuxBIOS project.
|
* This file is part of the superiotool project.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2007 Carl-Daniel Hailfinger
|
* Copyright (C) 2007 Carl-Daniel Hailfinger
|
||||||
* Copyright (C) 2007 Uwe Hermann <uwe@hermann-uwe.de>
|
* Copyright (C) 2007 Uwe Hermann <uwe@hermann-uwe.de>
|
||||||
|
@ -261,7 +261,7 @@ static void exit_conf_mode_ite(uint16_t port)
|
||||||
regwrite(port, 0x02, 0x02);
|
regwrite(port, 0x02, 0x02);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void probe_idregs_ite_helper(uint16_t port)
|
static void probe_idregs_ite_helper(const char *init, uint16_t port)
|
||||||
{
|
{
|
||||||
uint16_t id, chipver;
|
uint16_t id, chipver;
|
||||||
|
|
||||||
|
@ -270,7 +270,7 @@ static void probe_idregs_ite_helper(uint16_t port)
|
||||||
chipver = regval(port, CHIP_VERSION_REG) & 0x0f; /* Only bits 3..0 */
|
chipver = regval(port, CHIP_VERSION_REG) & 0x0f; /* Only bits 3..0 */
|
||||||
|
|
||||||
if (superio_unknown(reg_table, id)) {
|
if (superio_unknown(reg_table, id)) {
|
||||||
no_superio_found(port);
|
no_superio_found("ITE", init, port);
|
||||||
exit_conf_mode_ite(port);
|
exit_conf_mode_ite(port);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -285,11 +285,11 @@ static void probe_idregs_ite_helper(uint16_t port)
|
||||||
void probe_idregs_ite(uint16_t port)
|
void probe_idregs_ite(uint16_t port)
|
||||||
{
|
{
|
||||||
enter_conf_mode_ite(port);
|
enter_conf_mode_ite(port);
|
||||||
probe_idregs_ite_helper(port);
|
probe_idregs_ite_helper("(init=0x87,0x01,0x55,0x55/0xaa) ", port);
|
||||||
exit_conf_mode_ite(port);
|
exit_conf_mode_ite(port);
|
||||||
|
|
||||||
enter_conf_mode_winbond_fintek_ite_8787(port);
|
enter_conf_mode_winbond_fintek_ite_8787(port);
|
||||||
probe_idregs_ite_helper(port);
|
probe_idregs_ite_helper("(init=0x87,0x87) ", port);
|
||||||
exit_conf_mode_winbond_fintek_ite_8787(port);
|
exit_conf_mode_winbond_fintek_ite_8787(port);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of the LinuxBIOS project.
|
* This file is part of the superiotool project.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2006 Ronald Minnich <rminnich@gmail.com>
|
* Copyright (C) 2006 Ronald Minnich <rminnich@gmail.com>
|
||||||
*
|
*
|
||||||
|
@ -65,7 +65,7 @@ void probe_idregs_simple(uint16_t port)
|
||||||
|
|
||||||
outb(0x20, port);
|
outb(0x20, port);
|
||||||
if (inb(port) != 0x20) {
|
if (inb(port) != 0x20) {
|
||||||
no_superio_found(port);
|
no_superio_found("NSC", "", port);
|
||||||
/* TODO: Exit config mode? */
|
/* TODO: Exit config mode? */
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of the LinuxBIOS project.
|
* This file is part of the superiotool project.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2007 Uwe Hermann <uwe@hermann-uwe.de>
|
* Copyright (C) 2007 Uwe Hermann <uwe@hermann-uwe.de>
|
||||||
*
|
*
|
||||||
|
@ -140,7 +140,7 @@ static void probe_idregs_smsc_helper(uint16_t port, uint8_t idreg,
|
||||||
rev = regval(port, revreg);
|
rev = regval(port, revreg);
|
||||||
|
|
||||||
if (superio_unknown(reg_table, id)) {
|
if (superio_unknown(reg_table, id)) {
|
||||||
no_superio_found(port);
|
no_superio_found("SMSC", "", port);
|
||||||
exit_conf_mode_smsc(port);
|
exit_conf_mode_smsc(port);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of the LinuxBIOS project.
|
* This file is part of the superiotool project.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2006 Ronald Minnich <rminnich@gmail.com>
|
* Copyright (C) 2006 Ronald Minnich <rminnich@gmail.com>
|
||||||
* Copyright (C) 2007 Uwe Hermann <uwe@hermann-uwe.de>
|
* Copyright (C) 2007 Uwe Hermann <uwe@hermann-uwe.de>
|
||||||
|
@ -155,15 +155,17 @@ void dump_superio_readable(uint16_t port)
|
||||||
printf("No human-readable dump available for this Super I/O\n");
|
printf("No human-readable dump available for this Super I/O\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
void no_superio_found(uint16_t port)
|
void no_superio_found(const char *vendor, const char *info, uint16_t port)
|
||||||
{
|
{
|
||||||
if (!verbose)
|
if (!verbose)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (inb(port) == 0xff)
|
if (inb(port) == 0xff)
|
||||||
printf("No Super I/O chip found at 0x%04x\n", port);
|
/* Yes, there's no space between '%s' and 'at'! */
|
||||||
|
printf("Probing for %s Super I/O %sat 0x%x... failed\n",
|
||||||
|
vendor, info, port);
|
||||||
else
|
else
|
||||||
printf("Probing 0x%04x, failed (0x%02x), data returns 0x%02x\n",
|
printf("Probing 0x%x, failed (0x%02x), data returns 0x%02x\n",
|
||||||
port, inb(port), inb(port + 1));
|
port, inb(port), inb(port + 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of the LinuxBIOS project.
|
* This file is part of the superiotool project.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2007 Carl-Daniel Hailfinger
|
* Copyright (C) 2007 Carl-Daniel Hailfinger
|
||||||
* Copyright (C) 2007 Uwe Hermann <uwe@hermann-uwe.de>
|
* Copyright (C) 2007 Uwe Hermann <uwe@hermann-uwe.de>
|
||||||
|
@ -29,7 +29,7 @@
|
||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
#include <sys/io.h>
|
#include <sys/io.h>
|
||||||
|
|
||||||
#define SUPERIOTOOL_VERSION "0.1"
|
#define SUPERIOTOOL_VERSION "r$Rev$"
|
||||||
|
|
||||||
#define USAGE "Usage: superiotool [-d] [-D] [-V] [-v] [-h]\n\n\
|
#define USAGE "Usage: superiotool [-d] [-D] [-V] [-v] [-h]\n\n\
|
||||||
-d | --dump Dump Super I/O registers\n\
|
-d | --dump Dump Super I/O registers\n\
|
||||||
|
@ -38,7 +38,7 @@
|
||||||
-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\
|
||||||
Per default (no options) superiotool will just probe for a Super I/O\n\
|
Per default (no options) superiotool will just probe for a Super I/O\n\
|
||||||
and print its vendor, name, ID, version, and config port.\n"
|
and print its vendor, name, ID, revision, and config port.\n"
|
||||||
|
|
||||||
#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
|
#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
|
||||||
|
|
||||||
|
@ -79,7 +79,7 @@ const char *get_superio_name(const struct superio_registers reg_table[],
|
||||||
void dump_superio(const char *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);
|
uint16_t port, uint16_t id);
|
||||||
void dump_superio_readable(uint16_t port);
|
void dump_superio_readable(uint16_t port);
|
||||||
void no_superio_found(uint16_t port);
|
void no_superio_found(const char *vendor, const char *info, uint16_t port);
|
||||||
|
|
||||||
/* ali.c */
|
/* ali.c */
|
||||||
void probe_idregs_ali(uint16_t port);
|
void probe_idregs_ali(uint16_t port);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of the LinuxBIOS project.
|
* This file is part of the superiotool project.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2007 Uwe Hermann <uwe@hermann-uwe.de>
|
* Copyright (C) 2007 Uwe Hermann <uwe@hermann-uwe.de>
|
||||||
*
|
*
|
||||||
|
@ -179,7 +179,7 @@ static void enter_conf_mode_winbond_86(uint16_t port)
|
||||||
outb(0x86, port);
|
outb(0x86, port);
|
||||||
}
|
}
|
||||||
|
|
||||||
void probe_idregs_winbond_helper(uint16_t port)
|
void probe_idregs_winbond_helper(const char *init, uint16_t port)
|
||||||
{
|
{
|
||||||
uint16_t id;
|
uint16_t id;
|
||||||
uint8_t devid, rev, olddevid;
|
uint8_t devid, rev, olddevid;
|
||||||
|
@ -199,7 +199,7 @@ void probe_idregs_winbond_helper(uint16_t port)
|
||||||
id = olddevid & 0x0f; /* ID[3..0] */
|
id = olddevid & 0x0f; /* ID[3..0] */
|
||||||
|
|
||||||
if (superio_unknown(reg_table, id)) {
|
if (superio_unknown(reg_table, id)) {
|
||||||
no_superio_found(port);
|
no_superio_found("Winbond", init, port);
|
||||||
exit_conf_mode_winbond_fintek_ite_8787(port);
|
exit_conf_mode_winbond_fintek_ite_8787(port);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -220,20 +220,20 @@ void probe_idregs_winbond(uint16_t port)
|
||||||
{
|
{
|
||||||
/* TODO: Not all init sequences are valid for all ports. */
|
/* TODO: Not all init sequences are valid for all ports. */
|
||||||
|
|
||||||
enter_conf_mode_winbond_fintek_ite_8787(port);
|
|
||||||
probe_idregs_winbond_helper(port);
|
|
||||||
exit_conf_mode_winbond_fintek_ite_8787(port);
|
|
||||||
|
|
||||||
enter_conf_mode_winbond_88(port);
|
enter_conf_mode_winbond_88(port);
|
||||||
probe_idregs_winbond_helper(port);
|
probe_idregs_winbond_helper("(init=0x88) ", port);
|
||||||
exit_conf_mode_winbond_fintek_ite_8787(port);
|
exit_conf_mode_winbond_fintek_ite_8787(port);
|
||||||
|
|
||||||
enter_conf_mode_winbond_89(port);
|
enter_conf_mode_winbond_89(port);
|
||||||
probe_idregs_winbond_helper(port);
|
probe_idregs_winbond_helper("(init=0x89) ", port);
|
||||||
exit_conf_mode_winbond_fintek_ite_8787(port);
|
exit_conf_mode_winbond_fintek_ite_8787(port);
|
||||||
|
|
||||||
enter_conf_mode_winbond_86(port);
|
enter_conf_mode_winbond_86(port);
|
||||||
probe_idregs_winbond_helper(port);
|
probe_idregs_winbond_helper("(init=0x86,0x86) ", port);
|
||||||
|
exit_conf_mode_winbond_fintek_ite_8787(port);
|
||||||
|
|
||||||
|
enter_conf_mode_winbond_fintek_ite_8787(port);
|
||||||
|
probe_idregs_winbond_helper("(init=0x87,0x87) ", port);
|
||||||
exit_conf_mode_winbond_fintek_ite_8787(port);
|
exit_conf_mode_winbond_fintek_ite_8787(port);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue