I was trying to compile a linux kernel and the compressed uImage boots properly on leopard DM355 with a simple RAMDISK file system.
But when i created an uncompressed kernel image using the following command
mkimage -A arm -O linux -C none -T kernel -a 0x80700000 -e 0x80700000 -n 'linux-2.6.32-rc2-davinci1' -d ../git/arch/arm/boot/Image uImage
the kernel gets stuck...
DM355 LEOPARD# bootm 0x80700000
## Booting image at 80700000 ...
Image Name: linux-2.6
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2831680 Bytes = 2.7 MB
Load Address: 80700000
Entry Point: 80700000
Verifying Checksum ... OK
XIP Kernel Image ... OK
Starting kernel ...
That is almost always because your bootloader is identifying the hardware with one machine ID and the kernel is expecting another machine ID, so it stops in it tracks so the hardware doesn't get hurt.
For example, in the RidgeRun Leopard365 board file
MACHINE_START(DM365_LEOPARD, "DM365 Leopard")
.phys_io = IO_PHYS,
.io_pg_offst = (__IO_ADDRESS(IO_PHYS) >> 18) & 0xfffc,
.boot_params = (0x80000100),
.map_io = dm365_leopard_map_io,
.init_irq = dm365_leopard_irq_init,
.timer = &davinci_timer,
.init_machine = dm365_leopard_init,
where the machine ID is the DM365_LEOPARD.
I believe the bootloader pre-loaded on leo365 uses the TI DM365 EVM machine ID.