816x EVM will not boot into kernel with initramfs
1. I started with a kernel that boots fine using a rootfs on the SD card
2. Then changed the config to add an initramfs path, built a kernel with 16MB (when uncompressed) initramfs, and tried booting again...
this kernel failed so early during boot that no printks were displayed!
3. Next I trimmed down the size of the initramfs by about half, and the boot got much farther but still did not complete. It hung during the driver init messages, before the point where the kernel tries to mount the rootfs.
4. Finally I rebuilt the kernel using a tiny "fake" initramfs, which contained just a single placeholder file rather than even a minimal rootfs. This kernel booted all the way to attempting to mount the rootfs (which failed as expected, since there was no init etc.)
From these experiments it appears that the extra size of the initramfs causes trouble, which implies that either the kernel overlaps itself during loading or fills memory space reserved for something else.
This is the memory map I found:
http://processors.wiki.ti.com/index.php/EZSDK_Memory_Map
Booting was done via tftp with temporary load address 0x92000000.
According to my calculations and the memory map above, there should be no overlap while uncompressing the kernel nor overrun of the Linux memory segment.
linux start:
0x80000000
-- uncompressed kernel and initramfs --
linux start + mem=256M + 16M uncompressed initramfs 0x91000000
u-boot temporary load address:
0x92000000
-- compressed kernel and initramfs --
tftp load + kernel + compressed initramfs:
0x928ac230
end of 364MB Linux memory section:
0x96C00000
Could I have made a mistake in my calculations, and there is overlap after all?
Or is there another memory area inside the first 364MB that must be avoided on the EVM?
Any other suggestions on getting a kernel with initramfs to work (has anyone been successful at booting kernel+initramfs on the EVM)?