[coreboot] ram init help on the i82830

Joseph Smith joe at settoplinux.org
Thu Jun 5 17:44:17 CEST 2008




On Wed, 04 Jun 2008 14:14:49 +0200, Carl-Daniel Hailfinger
<c-d.hailfinger.devel.2006 at gmx.net> wrote:
> On 04.06.2008 04:59, Joseph Smith wrote:
>> Good News!!!
>> I think I got it working :-)
>>
> 
> Great!
> 
>> I am running memtest86 right now and if all goes well I build it again
> with
>> filo and test it.
>>
>> First I tried with initializing each dimm socket. I booted to memtest
> and
>> it kept erroring out at 256mb. Because this is a double sidded 512MB
>> so-dimm, I figured out that each side of each dimm needs to be
> initialized.
>> So I came up with this:
>>
>>
>> 	for (i = 0; i < MAX_DIMM_SIDES; i++) {
>> 		dimm_end = pci_read_config8(ctrl->d0, DRB + i);
>> 		if (dimm_end > dimm_start) {
>> 			PRINT_DEBUG("    Sending RAM command 0x");
>> 			PRINT_DEBUG_HEX32(reg32);
>> 			PRINT_DEBUG(" to 0x");
>> 			PRINT_DEBUG_HEX32((dimm_start * 32 * 1024 * 1024) + addr_offset);
>> 			PRINT_DEBUG("\r\n");
>> 			read32((dimm_start * 32 * 1024 * 1024) + addr_offset);
>> 		}
>> 		/* Set the start of the next DIMM. */
>> 		dimm_start = dimm_end;
>> 	}
>>
>> It seems to work good so far, hopefully I will be submitting a patch
> soon.
>>
> 
> Please submit a patch now, regardless of how ugly/polluted/unclean it
> is. We had too many losses of great patches in the past because
> computers died and an early not-ready patch is better than nothing.
> 
Oh, don't worry all be submitting a patch. I just want to make sure I have
my bases covered first.
I hope You don't think the code above is in any way
"ugly/polluted/unclean". I think it is a very clean, fast, and great way to
acomplish memory initialization.

-- 
Thanks,
Joseph Smith
Set-Top-Linux
www.settoplinux.org





More information about the coreboot mailing list