Author: uwe
Date: Tue Aug 10 01:13:13 2010
New Revision: 5689
URL: https://tracker.coreboot.org/trac/coreboot/changeset/5689

Log:
Some chips do not require enter/exit sequences. This causes them to be
detected and printed multiple times in probe_idregs_* functions where a
simple series of enter --> probe/print --> exit calls are made.

This patch adds a simple check after each set of those calls to make the
functions quit after a chip is found.

Signed-off-by: David Hendricks <[email protected]>
Acked-by: Uwe Hermann <[email protected]>

Modified:
   trunk/util/superiotool/ite.c
   trunk/util/superiotool/winbond.c

Modified: trunk/util/superiotool/ite.c
==============================================================================
--- trunk/util/superiotool/ite.c        Mon Aug  9 15:28:18 2010        (r5688)
+++ trunk/util/superiotool/ite.c        Tue Aug 10 01:13:13 2010        (r5689)
@@ -755,30 +755,37 @@
                enter_conf_mode_ite_legacy(port, initkey_it8661f);
                probe_idregs_ite_helper("(init=legacy/it8661f) ", port);
                exit_conf_mode_ite(port);
+               if (chip_found) return;
 
                enter_conf_mode_ite_legacy(port, initkey_it8671f);
                probe_idregs_ite_helper("(init=legacy/it8671f) ", port);
                exit_conf_mode_ite(port);
+               if (chip_found) return;
        } else {
                enter_conf_mode_ite(port);
                probe_idregs_ite_helper("(init=standard) ", port);
                exit_conf_mode_ite(port);
+               if (chip_found) return;
 
                enter_conf_mode_ite_it8502e(port);
                probe_idregs_ite_helper("(init=it8502e) ", port);
                exit_conf_mode_ite(port);
+               if (chip_found) return;
 
                enter_conf_mode_ite_it8761e(port);
                probe_idregs_ite_helper("(init=it8761e) ", port);
                exit_conf_mode_ite(port);
+               if (chip_found) return;
 
                enter_conf_mode_ite_it8228e(port);
                probe_idregs_ite_helper("(init=it8228e) ", port);
                exit_conf_mode_ite(port);
+               if (chip_found) return;
 
                enter_conf_mode_winbond_fintek_ite_8787(port);
                probe_idregs_ite_helper("(init=0x87,0x87) ", port);
                exit_conf_mode_winbond_fintek_ite_8787(port);
+               if (chip_found) return;
        }
 }
 

Modified: trunk/util/superiotool/winbond.c
==============================================================================
--- trunk/util/superiotool/winbond.c    Mon Aug  9 15:28:18 2010        (r5688)
+++ trunk/util/superiotool/winbond.c    Tue Aug 10 01:13:13 2010        (r5689)
@@ -614,18 +614,22 @@
        enter_conf_mode_winbond_88(port);
        probe_idregs_winbond_helper("(init=0x88) ", port);
        exit_conf_mode_winbond_fintek_ite_8787(port);
+       if (chip_found) return;
 
        enter_conf_mode_winbond_89(port);
        probe_idregs_winbond_helper("(init=0x89) ", port);
        exit_conf_mode_winbond_fintek_ite_8787(port);
+       if (chip_found) return;
 
        enter_conf_mode_winbond_86(port);
        probe_idregs_winbond_helper("(init=0x86,0x86) ", port);
        exit_conf_mode_winbond_fintek_ite_8787(port);
+       if (chip_found) return;
 
        enter_conf_mode_winbond_fintek_ite_8787(port);
        probe_idregs_winbond_helper("(init=0x87,0x87) ", port);
        exit_conf_mode_winbond_fintek_ite_8787(port);
+       if (chip_found) return;
 }
 
 void print_winbond_chips(void)

-- 
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to