[LinuxBIOS] row_offset

popkonserve popkonserve at gmx.de
Sat Aug 18 18:43:31 CEST 2007

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 
2. calculate starting address:
  if (previous_DRB == 0)
  {starting_address = 0;}
  {starting_address = (1<<22)<<(previous_DRB - 1);}
                   4MB ^^^^^    ^^^^^^^^^^^^^^ no. of additional 4MB 

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.

More information about the coreboot mailing list