On 12/30/10 12:13 PM, Stefan Reinauer wrote:
> On 12/28/10 11:51 PM, David Hendricks wrote:
>> On Tue, Dec 28, 2010 at 4:13 AM, Frantisek Rysanek
>> <[email protected] <mailto:[email protected]>> wrote:
>>
>>     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()
>>     and
>>       ite.c :: probe_idregs_ite()
>>     call
>>       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.
>>
>
> That function is called with a port address. There can only be one
> chip at one port address. So leaving the function after a chip has
> been found at that address seems like the right thing to do. The bug
> is that chip_found is a global variable and not a local variable.
>
> Attached patch should fix the issue.
And an equivalent change is needed for winbond.c I guess.
-- 
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to