Am 01.02.2010 13:28, schrieb Patrick Georgi:
So there really is some difference at least in the ram stages of fallback and normal. For closer analysis, I'd need the files' content.
Knut, thank you for sending me the files off-list.
For some reason, there are differences in the memory map for those two builds.
h8dmr: Program Header: LOAD off 0x00001000 vaddr 0x00200000 paddr 0x00200000 align 2**12 filesz 0x0002e130 memsz 0x00030b3c flags rwx LOAD off 0x00030000 vaddr 0x00240000 paddr 0x00240000 align 2**12 filesz 0x00000000 memsz 0x00018000 flags rw- STACK off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**2 filesz 0x00000000 memsz 0x00000000 flags rwx
h8qme: Program Header: LOAD off 0x00001000 vaddr 0x00200000 paddr 0x00200000 align 2**12 filesz 0x0002d560 memsz 0x00048000 flags rwx STACK off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**2 filesz 0x00000000 memsz 0x00000000 flags rwx
So h8dmr zeroes out a larger chunk of memory - up to 0x258000, while the h8qme build only loads data up to 0x248000.
I have absolutely no idea what makes the compiler behave that way on two practically identical builds, but I have seen that you use the distribution's compiler - we have no control over the changes they add, so we created crossgcc at some point.
Maybe it helps to try to build with crossgcc (you can find that in util/crossgcc in your coreboot tree)
Regards, Patrick