correctly mark code segments as code in SELF
[coreboot.git] / util / superiotool / superiotool.c
index 6786b0a47f085fcc8516de83bb4c25d85bbcc57c..293aaa617d018ef156abe976668616fab4d50862 100644 (file)
@@ -58,11 +58,23 @@ void exit_conf_mode_winbond_fintek_ite_8787(uint16_t port)
        regwrite(port, 0x02, 0x02);     /* ITE */
 }
 
+void enter_conf_mode_fintek_7777(uint16_t port)
+{
+       OUTB(0x77, port);
+       OUTB(0x77, port);
+}
+
+void exit_conf_mode_fintek_7777(uint16_t port)
+{
+       OUTB(0xaa, port);               /* Fintek */
+}
+
 int superio_unknown(const struct superio_registers reg_table[], uint16_t id)
 {
        return !strncmp(get_superio_name(reg_table, id), "<unknown>", 9);
 }
 
+
 const char *get_superio_name(const struct superio_registers reg_table[],
                             uint16_t id)
 {
@@ -93,7 +105,10 @@ static void dump_regs(const struct superio_registers reg_table[],
                        printf(" (%s)", reg_table[i].ldn[j].name);
                regwrite(port, ldn_sel, reg_table[i].ldn[j].ldn);
        } else {
-               printf("Register dump:");
+               if (reg_table[i].ldn[j].name == NULL)
+                       printf("Register dump:");
+               else
+                       printf("(%s)", reg_table[i].ldn[j].name);
        }
 
        idx = reg_table[i].ldn[j].idx;
@@ -282,6 +297,13 @@ int main(int argc, char *argv[])
 
        print_version();
 
+#ifdef PCI_SUPPORT
+       /* Do some basic libpci init. */
+       pacc = pci_alloc();
+       pci_init(pacc);
+       pci_scan_bus(pacc);
+#endif
+
        for (i = 0; i < ARRAY_SIZE(superio_ports_table); i++) {
                for (j = 0; superio_ports_table[i].ports[j] != EOT; j++)
                        superio_ports_table[i].probe_idregs(