[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