[coreboot] v2: The elfboot process with 128MB RAM

Mats Erik Andersson mats.andersson at gisladisker.se
Sat Sep 6 02:03:47 CEST 2008

Hello Stefan, and all interested people,

Stefan Reinauer <stepan at coresystems.de> skrev
>Mats Erik Andersson wrote:
>> Hello all,
>> I could use some of your insight into the elfboot stage.
>> Appended to this message are two printouts of the elfboot
>> process for 128MB RAM (which comes to a halt), and for
>> 64MB RAM (which succeeds). It is jmp_to_elf_entry() in
>>    src/arch/i386/boot/boot.c
>> that is unable to complete the set task for 128MB RAM.
>> I suspect that the problem lies in the value of
>> 'bounce_buffer' that is determined in src/boot/elfboot.c,
>> but I fail to identify why a large value is causing
>> any problem at all. The informational "Candidate bounce_buffer"
>> is my addition at the loop end in get_bounce_buffer().
>> Since FILO never starts with 128MB, I cannot verify that the
>> linuxbios_table indeed gets the expected last entry
>Are you sure your second 64M are working correctly?
>This could well be a ram init problem.
>Which board?

It is a port to msi/ms6147 of the code Uwe Hammer developed
for msi/ms6119. Essentially, I have so far made two contributions:

1) the generic /src/sdram/generic_dump_spd.c, has been tailored
   and moved to the mainboard source directory,

2) an almost complete spd-detection mechanism for sdram has been
   incorporated into raminit.c.

Presently, I 

a) boot successfully with a single sided 64MB card in either DIMM-slot.
   "Success" meaning that I can get a Debian Sarge router to run with
   /usr on an IDE-CF disk, and the rest loaded into a ramdisk.

b) The tree cases of double sided 128MB card in either slot, or two
   single sided 64MB cards in both slots, are correctly detected and
   the RAM memory is verified in 0x07ffff00 to 0x07fffff0 in all these
   cases. However, the execution halts after the jump into filo.elf.
   I was got an error message from malloc() inside Filo!

c) When populating with two double sided 32MB cards, already the jump
   into Coreboot is unsuccessful after attempted RAM initialisation.
   This probably depends on the timing parameters, that I have not
   dynamically implemented as of yet.

Thus, I am now trying to understand why a large amount of memory,
i.e., 128MB instead of a mere 64MB, can prevent elfboot to succeed,
even though the memory is undisputably well initialised.

I will report in due time. Best regards,

Mats E Andersson

More information about the coreboot mailing list