On Wed, Jan 04, 2012 at 10:32:35PM +0100, Elisenda Cuadros wrote:
Hello,
Happy New Year to everyone :-)
Kevin, thank you very much for your help.
I changed the code according to your message.
Now "a,b,c,d" appears in the log. I donĀ“t know if this is a good symptom or not.
What can I do to debug more into this problem? I feel pretty useless...
[...]
On 04/01/2012 4:12, Kevin O'Connor wrote:
On Thu, Dec 29, 2011 at 07:23:44PM +0100, Elisenda Cuadros wrote: startBoot(void) { // Clear low-memory allocations (required by PMM spec).
dprintf(1, "d\n"); memset((void*)BUILD_STACK_ADDR, 0, BUILD_EBDA_MINIMUM - BUILD_STACK_ADDR);
dprintf(3, "Jump to int19\n");
Well, since you saw "d", but not "Jump to int19" it would indicate that it died in the memcpy (I assume your debug level was set to something higher than 3). That's really strange - I don't know why it would halt there. You could change the first dprintf to read something like:
dprintf(1, "d addr=%p len=%x\n", (void*)BUILD_STACK_ADDR, BUILD_EBDA_MINIMUM - BUILD_STACK_ADDR);
If the output makes sense (it should report 0x7000 and 0x89000) and it is really halting in the memset, then maybe coreboot is mapping something into the first 1 meg of ram - though that's just a wild guess.
-Kevin