[coreboot] x86: best approach to debug consumer hardware?
Andrey Korolyov
andrey at xdel.ru
Mon Jul 17 22:10:49 CEST 2017
On Sun, Jul 9, 2017 at 2:56 AM, Andrey Korolyov <andrey at xdel.ru> wrote:
>>
>> I'd expect the clockgen to be the culprit too. But this C-state number
>> could be a typo and also be the reason for your trouble (though, I'd
>> wonder why it works on the T60). This number is used to map ACPI C-state
>> semantics to the states presented in _CST. ACPI knows three C states and
>> those rarely match the actual C states of the hardware. Basically, a 3
>> instead of a 2 tells ACPI to flush caches before entering this state.
>> Also, ACPI C3 is to be avoided if bus-master activity is expected.
>>
>
> It turned out to be again very simple thing: by some reason yet to be
> found, write within ics954309_init could succeed only for first eight
> data addresses on this board, it would ultimately return nothing for
> higher data addresses within 0x69 so boot which is trying to write
> smbus-type-width block will hang as it has been reported earlier.
> Magically, cutting chip initialization in this crude way appears to
> work against C3 behavour. I would take a look on the exact PLL chip
> model upon next disassembly and also would dump i2c data with vendor
> BIOS to get this properly (vendor BIOS does prevent access to clock
> generator bits, as well to SPD data, just to mention).
>
> Forgot to mention that I`ve of course tried straightforward _CST fix
> before, with no success at all. Someone with working T60/X60 could try
> to check 'fixed' cst_entries ordering in mainboard.c and post the
> results, right now all mine X60s are far away from the working state.
As expected, vendor bios sets up the PLL with completely different
parameters, though setting lower eight bytes from x60-based setup was
'good enough' to make C3 work. As vendor does not allow allow clockgen
bits to be accessed programmatically, most complex part was to solder
two unshielded wires on neighbor pins of the MLF64 package. There are
a few issues remaining (certain regression with i915 consolefb while
using binary vgabios on newest kernels and interrupt assignment issue
with iw3945 in Win7), I would resolve them before pushing the board
supporting code.
Thanks again for useful hints!
More information about the coreboot
mailing list