[U-Boot-Users] Kernel XIP

shivappa.kushtagi at wipro.com shivappa.kushtagi at wipro.com
Thu Jun 16 14:15:46 CEST 2005


I configured for kernel XIP and created xipImage. When I tried to load
it through u-boot, it complained about invalid magic number. Later I
added a 64 byte header required for u-boot with the following mkimage

mkimage -A arm -O linux -T kernel -C none -a 0x00080000 -e 0x00080040 -d
xipImage XIPImage.

Actually some of the document found at CELF wiki specifies that we need
to give "-x" option to mkimage. With -x option, mkimage fails with the
following error message :

mkimage: Bad file: "xipImage" has invalid buffer for XIP.

After looking into the mkimage source code, found that it expects 0xFF
for the first 64 bytes of xipImage. Which is missing in the xipImage I
have built. There must be some in-consistency between the way xipImage
is built or mkimage command.

Also, I didn't find any significance of the code for "-x" if we specify
the "entry point" correctly (load address + 0x40).

After the mkimage, I flashed the XIPImage at address 0x00080000. After
resetting the board, I got the following boot messages :

## Booting image at 00080000 ...
   Image Name:
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2009016 Bytes =  1.9 MB
   Load Address: 00080000
   Entry Point:  00080040
   Verifying Checksum ... OK
   XIP Kernel Image ... OK

Starting kernel ...

And it stops here....

Any idea what is going wrong here ?

My configuration:

Processor       : ARM926EJ-Sid(wb) rev 3 (v5l)
Kernel          : 2.6.10


More information about the U-Boot mailing list