Subject: Re: NMI on Compaq 1850R
To: David Laight <david@l8s.co.uk>
From: Chris Ross <cross+netbsd@distal.com>
List: port-i386
Date: 01/22/2007 11:22:10
On Jan 20, 2007, at 6:07 PM, David Laight wrote:
> What value does your bios set these bits to ?

   I added code to check this, and it sets them to 10.

> From reading your mails (I've not looked at the Intel specs) it looks
> as though the 2 bits modify the number of clocks in some part of the
> DRAM memory cycle.
> So I presume that changing them to 01 shortens the DRAM timings, which
> probably causes memory errors when you populate all 4 memory slots
> due to the additional capacitive load on the memory bus requiring
> more relaxed timing.

   Quite reasonable.  The specs refer to those bits (which are part  
of the "SDRAM Control Register") as:

Idle/Pipeline DRAM Leadoff Timing (IPDLT). Adds a clock delay to the  
lead-off clock count
when bits 9:8 are set to 01. All other settings are illegal.

   Now, I'm not sure what to assume settings *other* than 10 mean.   
As noted, they're documented as illegal.  *shrug*  The other byte of  
that control register has most of the normal timing bits you'd expect  
in it.  "Mode Select", "Leadoff Command Timing", "CAS# latency",  
"SDRAM RAS# to CAS# Delay," and "SDRAM RAS# Precharge."  As well as  
another reference to driving the banks of DIMMS that works in  
correlation with the DRAM Control Register.

   My hardware Fu isn't deep enough to understand all of this, but  
from the surface, the 1998 document I quote above says that "other  
than 01, nothing is legal".  But then again, my machine seems to work  
fine, with rev 0x03 of the 82443BX chip, with it set [by the BIOS] to  
10.

   The 2001 specification update, which I referenced in my earlier  
email, indicates a bit setting issue that relates to "a marginal  
internal timing path," but does not list that issue as affecting rev  
0x03, just revs 0x00, 0x01, and 0x02.  From that I take that revs  
beyond 0x02 won't be vulnerable to this.  As there are no more  
updates to this document from Intel, I assume there *are* no revs  
beyond 0x03, but don't know that for 100% certain.

   In any case.  Thanks.  And now you have the answer to your  
question, and [too] much more information.  :-)

   Please let me know if the earlier patch can be committed.  Thank you.

                                              - Chris