[coreboot] r3393 - trunk/util/flashrom
Carl-Daniel Hailfinger
c-d.hailfinger.devel.2006 at gmx.net
Sun Jun 29 01:26:52 CEST 2008
On 29.06.2008 00:41, Stefan Reinauer wrote:
> Carl-Daniel Hailfinger wrote:
>
>
>>>>> Ok, I just checked the mail traffic on that one. How do the bios straps
>>>>> look on those systems?
>>>>>
>>>>> Is there any method of finding out whether there is something on the SPI
>>>>> bus physically?
>>>>>
>>>>>
>>>> In theory every command which returns something should return a stream
>>>> of 0xff if the bus is unpopulated.
>>>>
>>>>
>>> on ICH7 CDS does not go to 1.
>>>
>>>
>> Hmmm. How about a timeout?
>>
>>
> There is a timeout. But since it is very generic code, and some commands
> may take up to 30s according to the code, the timeout is currently 60s.
> So sleeps 60s for each SPI chip in the list. Not so good. Probing is
> pretty slow already.
>
Pietro, does the probing continue after a few minutes?
>>> See the mail that was sent to flashrom at coreboot.org today.
>>>
>>>
>>>
>> Unfortunately the debug output is not detailed enough to actually find
>> the reason for the hang.
>>
>>
>
> If you look at the code there are not many places where it could
> actually hang. program_opcodes is not one of them.
>
Actually, the chipset documentation says it is perfectly valid to hang
here. (Well, not directly, but writing the opcode table can trigger SMI
which can wreak havoc.)
> The sparse debug printfs create a wrong impression here.
Then we should definitely apply my patch to make sure nobody gets a
wrong impression in the future.
> It hangs in this function call:
>
> if (run_opcode(opcode_index, *opcode, addr, count, data) != 0) {
> printf_debug("run OPCODE 0x%02x failed\n", opcode->opcode);
> return 1;
> }
>
> And here is the loop we are talking about:
>
> /* wait for cycle complete */
> timeout = 1000 * 60; // 60s is a looong timeout.
> while (((REGREAD16(ICH7_REG_SPIS) & SPIS_CDS) == 0) && --timeout) {
> myusec_delay(1000);
> }
> if (!timeout) {
> printf_debug("timeout\n");
> }
>
>> Pietro, can you try the patch below? Flashrom will still hang, but with
>> that patch we will know why.
>>
>
> No need to try,... see above.
>
We don't know yet which timeouts (if any) Pietro is seeing.
Regards,
Carl-Daniel
--
http://www.hailfinger.org/
More information about the coreboot
mailing list