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 dhendrix@google.com Acked-by: Uwe Hermann uwe@hermann-uwe.de
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)