Generating elf kernel ?

Guillaume Dargaud dargaud at
Thu Sep 16 17:25:49 EST 2010

> >> Please use simpleImage.<your target dts name>.elf.
> > 
> > Great, that seems to be it...
> > Except that nothing happens when I jump to 0x40000, no message from the
> 0x40000? I recalled the entry point should be 0x400000 for
> simepleImage.*.elf. So you have to change this on the file,
> arch/powerpc/boot/wrapper.

Correct, I skipped a zero, the address is indeed 0x400000

> And also you should confirm if the upstream kernel support your board.

Our board is a custom derivative from a ML405.
My previous project uses ARCH=PPC and has been working fine for 2 years.
I'm currently trying to go to ARCH=PowerPC and understand dts files in order to 
boot my first kernel.
I assume I shouldn't have to change anything in my bootloader.
After I jump to the kernel address, I don't even get the usual:
loaded at:     00400000 004F559C
board data at: 004F3520 004F359C
relocated to:  0040505C 004050D8
zimage at:     00405E48 004F211C
avail ram:     004F6000 08000000
Linux/PPC load: console=ttyUL0,115200 rw root=/dev/nfs ip=bootp
Uncompressing Linux...done.
Now booting the kernel

Something wrong with my serial console ?

> Additionally let's assume your bootloader create the map between the
> virtual address and the physical address as 1:1. If so you want to execute
> from 0x40000. But the actual PC address should be the loader address +
> offset. You can get this by readelf. Here if your loader address is zero,
> the offset will be pc address, not 0x40000. You can dump your memory to
> check this.

The bootloader has no concept of virtual address, right ?

Guillaume Dargaud

More information about the Linuxppc-dev mailing list