On Fri, Apr 1, 2011 at 6:43 PM, Joseph Smith <joe(a)settoplinux.org> wrote:
On 04/01/2011 10:49 AM, Corey Osgood wrote:
Working on an Atom D500/NM10 system, trying to get some info on memory
init. Everything seems to go alright up to when it starts pulling SPD
data from the SMBus, but for some reason, the stock BIOS performs an
SMBus read at 0x60, checks and sees that the read completed
successfully, clears the success bit, and then, without reading the
data, tries 0x64, and does the same thing. It then moves on to 0x9c,
0xd3, and 0xd2. I've attached a log file, don't mind my notes. Any
ideas what might be causing this, and how to work around it?
Hmm could be probing to see if devices are present at those addresses? Is
there anything there? Thermal sensors?
So, it turns out this board really doesn't like it when I try
test/dump all 128 SMBus addresses, the SMBus stops working around 69h.
Not sure if it's because of the number of SMBus operations in a short
time span, or that SMBus work for very long after init. I did manage
to figure out that I'm rusty on SMBus, the addresses are all shifted
to the left one, so the address it's really trying to probe are 30h,
32h, 4Eh, and 69h, all of which have devices of some kind on them,
although I'm not sure if they're all sensors (kinda doubt it, but it's
possible) or for other functions like TV-out or clock controls. Also,
these are both read and write functions, and mostly write. It seems
like the SMBus only stays working for a short period of time after it
gets initialized, and I think the problem is that SerialICE makes the
SMBus operations take so much longer that they start failing before
the system has everything set up. So, I'm thinking there are a couple
options, one being to modify the lua script to not log access to the
SMBus addresses, but I don't think that will help much, because it
just eliminates printing the text to the screen (afaik). The other
being to try a BIOS from a really cheap NM10 board, that's not likely
to have the configurable clock chips and TV out, since all I'm really
interested in is RAM init, for the time being. Any opinions?