[coreboot] superiotool sometimes skips further SuperIO chips in the system - suggested remedy included

Frantisek Rysanek Frantisek.Rysanek at post.cz
Tue Dec 28 13:13:53 CET 2010

Dear maintainers of the superiotool,

I have the following "feature request" (maybe not a bug report):
I have this idea that superiotool should be able to detect more than 
one SuperIO chip in the system. Such detection of multiple chips may 
work in some cases, but may fail in others. 

The primary cause seems to be that
  winbond.c :: probe_idregs_winbond()
   ite.c :: probe_idregs_ite()
   if (chip_found) return;   // this is a global variable!
after every "init sequence" tried.

Therefore, after the first chip detected (of any kind),
only the first init sequence is ever tried, in any subsequent calls 
to the aforementioned probe_* functions.

My immediate hack was to comment out all occurrences of
   if (chip_found) return;
in those probe functions.
Makes me wonder if this has some adverse effects, such as repeatedly 
scanning some EFER bases / init sequences by probes belonging to 
different chip families.
And my conclusion for the moment is that this repeated probing should 
be harmless, and that the current behavior (stop after the first init 
sequence tried) is flawed anyway :-)

My motivation is simple: right now I'm working with an embedded PC 
that has two SuperIO chips on the inside: W83627 + W83977.
But I've seen other models in the past as well.

Your SuperIOtool is quite useful for a quick overview of the SuperIO 
chips in the system, including a thorough dump of their registers.
In the past I myself have written and reused some simple snippet of 
code / a tiny library (in DOS) to help me debug/tweak SuperIO stuff, 
but I never got as far as making it truly universal and extensible. 
As for SuperIOtool, I could fancy a writing capability, and maybe an 
external configuration file, potentially allowing for extensions 
without coding in C, maybe human-readable interpretations / 
annotations of the register dump etc - but I admit that's too much 
work to be worth the bother, certainly for me at the moment :-)

Keep up the excellent work that you're doing...

Frank Rysanek

More information about the coreboot mailing list