[LinuxBIOS] Read SPD issue

Joseph Smith joe at smittys.pointclark.net
Sat Aug 11 22:54:24 CEST 2007

Quoting Corey Osgood <corey.osgood at gmail.com>:

> Stefan Reinauer wrote:
>> * Joseph Smith <joe at smittys.pointclark.net> [070811 18:52]:
>>> Hmm, I have an ICH4 i82801db southbridge and am using Corey's i82801xx
>>> src code.
>>> Corey, mabe you could shed some light on this?? Here is my serial
>>> console output, where it says "SPD is ff, ff, ff, ff" I just tried a
>>> bunch of different SPD bytes to see the return values.
>> Hm. maybe the spd roms are on a different position then. I think Corey's
>> code is known to work. They're usually at 0x50...0x53 but that may be
>> different on any other board.
> Yeah, the code works for me, and was a hack up of the other 82801s, so
> it should work for just about any. Can you do me a favor and check that
> the smbus device is located at device 0x1f (ie 31) function 3? That was
> one big assumption I made, I checked most of the datasheets but not all
> of them, and datasheets do lie. I did throw in a check just as a
> failsafe, but that may not have worked either. Also check your factory
> bios's smbus IO base, it should be programmed at d31f3 rx20-21, and will
> have an extra 1 at the end. If that's not 0x0f00, then try plugging it
> in as SMBUS_IO_BASE in i82801xx.h.

Yep datasheet says SMBus Controller - Bus 0:Device 31:Function 3

> The current code also makes no attempt to do give any sort of warning if
> an smbus timeout/error occurs. It was something that I wanted to do, but
> other things came up. You could probably drop in some debugging info
> there, as the functions already do return negative values in case of an
> error. The other thought is, run smbus_enable before enabling
> serial/console, and also try to force a full smbus dump using the
> debug.c that I left in with the i82810 (oops, meant to move that). It
> may be that your smbus needs a little time to initialize, if you're
> smbus dump starts pulling good values after the first few transactions,
> this is the case. It it is, let me know and I can take care of it, and
> for the time being just do an smbus dump before attempting to do ram init.
How would I call debug.c and from what file?

I noticed in auto.c there is a dump_spd_registers(&memctrl[0]);  
commented out. Could I try this to dump the SPD data??

Thanks - Joe

More information about the coreboot mailing list