Hi Joseph,
if you get the size of the modules from the SPD you can ignore all
offset addressing stuff as long as you don't need to write anything to a
specific module row. SPD is a nice thing as it tells you everything you
need to set up the northbridge memory controller :)
if you would want to write to a special module row you could use code
like this to calculate the starting address:
1. assume the DRB stores the size of the memory module row in 4MB
granularity.
2. calculate starting address:
if (previous_DRB == 0)
{starting_address = 0;}
else
{starting_address = (1<<22)<<(previous_DRB - 1);}
4MB ^^^^^ ^^^^^^^^^^^^^^ no. of additional 4MB
portions
the last address of the previous memory row would btw. be:
last_address_of_prev_row = starting_address - 1;
i didn't take a look at the code for the i82810 yet, so i'm unaware why
and how the row_offset is used.
Holger
--
linuxbios mailing list
[email protected]
http://www.linuxbios.org/mailman/listinfo/linuxbios