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

Reply via email to