[OpenBIOS] Intel holding back information
Niklas Ekström
t97nek at student.tdb.uu.se
Sun Aug 8 13:59:29 CEST 1999
On Sat, 7 Aug 1999, David J. Coffin wrote:
> You cannot get a DRAM-sizing algorithm from Intel with-
> out signing an NDA, and the NDA forbids you to share your
> source code without Intel's written permission.
Ok, like I suspected :/... (I was pretty certain that someone on this list
could confirm this! :-)
> VIA Technologies publishes their DRAM-sizing algorithms
> without restriction. The VIA 580VP chipset matches the Intel
> 430FX almost bit-for-bit, so this is a good place to start.
Great tip, thanks!
I do think that I have an idea on how to detect the DRAM sizes. So if I
write the algorithm here, you or someone else can comment on it and say if
you think it will work. Here goes:
disable all caching (if it isn't already disabled (which it probably is));
set all DRAM Boundary registers (DRBs) to it's maximum value (63 * 4MB), \
which is >128MB which is the most the chipset can use;
previous_drb_val = 0; // variable used below
for (n = 0; n < 5; n++) {
write (some randon) dword of data, k != 0, to address \
previous_drb_val * 4MB and read back y from the same address;
if (y != k) {
previous_drb_val += 0; // NOP
write previous_drb_val to DRB reg n;
continue; // for next n
}
for (j = 1; j <= 16; j++) { // 16 * 4MB is the most a row can hold
write (some random) dword of data, p != 0, to address \
(previous_drb_val + j) * 4MB; // check for wrap-around
read back y from address previous_drb_val * 4MB;
if (y == p) {
previous_drb_val += j;
write previous_drb_val to DRB reg n;
break;
}
}
}
And that should be it (ofcourse the algorithm must be written without the
use of the stack or any other memory).
On the 440BX, DRAM-sizing seems much less complicated, using the Serial
Presence Detect (SPD) of the 168-pin DIMMs (correct?).
> For an example of actual code, disassemble an Award,
> AMI, or Phoenix BIOS. Don't read the BIOS from shadow RAM;
> copy it off the chip or find it on the web. The DRAM- and
> cache-sizing code are easy to find, because most everything
> else is compressed to resemble random noise.
I have been thinking about doing that, but wouldn't that make me unable to
write the bios after that (legally that is) ?
/ Niklas
-
To unsubscribe: send mail to majordomo at freiburg.linux.de
with 'unsubscribe openbios' in the body of the message
More information about the openbios
mailing list