[coreboot] SB600 SPI hangs explained
c-d.hailfinger.devel.2006 at gmx.net
Thu May 14 01:50:49 CEST 2009
It took me a while, but now I understand why SB600 SPI accesses hang on
The problem is not related to the presence or absence of a SPI chip. It
is also not related to usage of GPIO lines for SPI or GPIO.
On some boards (with LPC flash) the SPI_BaseAddr is 0. The code did not
check for that condition and assumed the BAR was really at address zero.
Of course, every machine has RAM there and all writes to the SB600 SPI
controller ended up scribbling over the zero page in RAM. That also
means the SB600 SPI driver never got the expected response from the SPI
controller because the controller never saw the writes.
Fortunately, the bug is fixed in r491 in the new flashrom repository.
If anyone still wondered why we were seeing these hangs, the above
explanation should hopefully be sufficient.
More information about the coreboot