[coreboot] Some work on the cn700 ram init

Corey Osgood corey.osgood at gmail.com
Wed Feb 27 06:44:57 CET 2008


On Sat, 2008-02-23 at 13:35 +0100, Peter Stuge wrote:
> On Fri, Feb 22, 2008 at 05:25:51PM -0500, Corey Osgood wrote:
> > > > +static int ram_speeds[6] = {100, 133, 166, 200, 266, 333};
> > > > +/* Transform spd byte 40's tRFC value into a decimal */
> > > > +static int byte_40_tRFC[6] = {0, 25, 33, 50, 66, 75 };
> > >
> > > Could this be something like:
> > >
> > > static int ram_speed_tRFC[][2] = {
> > >        {100, 0}, {133, 25}, {166, 33}, {200, 50}, {266, 66}, {333, 75}
> > > }
> > >
> > > instead?
> > 
> > 
> > Yes, but I really don't like it. The two are used entirely
> > independently, I don't like combining two tables that are
> > completely unrelated to one another.
> 
> Hm. Maybe I misunderstood.
> 
> I thought one [] was used to find an index from a known/probed value,
> and that index then used to look up a value in the other [].
> 
> Never mind my comment if that's not what's happening. :)

Sorry I didn't reply, been crazy busy lately (haven't even had time to
watch Stargate). It sort of is, the value from ram_speeds[] is used
multiple times for most of the timings, it gets a MHz speed for the ram
from the register value, which is then converted to a nanosecond cycle
time. byte_40_tRFC[] is only used once, to sort out the mess JEDEC made
with tRFC, and that part uses the ram_speeds[] value too. If there's
some size/speed benefit, then it's fine, but otherwise, combining them
just adds unnecessary confusion. Still waiting for a sign off from
Urbez.

-Corey





More information about the coreboot mailing list