[U-Boot] Booting Linux from Memory Hangs

I've gone through the archives a bit but still can't figure out what I'm doing wrong.
I have a ARM board that has 128MB of DDR memory from 0x00000000 - 0x07FFFFFF. I don't yet have flash working so I'm trying to get everything working from DDR memory.
I connect through JTAG and download a u-boot built to be running out of memory. I load the u-boot image to 0x01000000. Then I put my uncompressed uImage [1.5MB] at address 0x04000000 (or some sufficiently high address away from everything else). I set the pc to 0x01000000 and resume and uBoot loads fine. No problems at all. So then I go to load the linux kernel and run it and this is the output I get:
boot > printenv bootargs bootargs=console=ttyAM0,115200 boot > bootm 04000000 ## Booting image at 04000000 ... Image Name: Linux-2.6.23.17-Pegasus Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 1536048 Bytes = 1.5 MB Load Address: 00008000 Entry Point: 00008000 Verifying Checksum ... OK OK
Starting kernel ...
Uncompressing Linux..................
and that's it. It hangs there. Depending on where I put the uImage in memory I can get the .'s to continue on for a long time before it finally stops. But no "OK, done" or anything. It just stops.
I've taken care to make sure things are far enough away in memory that they shouldn't be overlapping with anything. It should just be copying the uImage from 0x04000000 to 0x00008000 and then running it there, right? I have a feeling it's something with the load address and entry point but those are the standard ones for ARM, I believe.
Just to recap:
128MB DDR Memory: 0x00000000 - 0x07FFFFFF uBoot image: 0x01000000 ~ [162KB] uImage: 0x04000000 ~ [1.5MB] load address: 0x00008000
(I even have a initrd ramdisk built, but it doesn't seem to matter if I use it or not -- I get the same results either way.)
Thank you very much!
participants (1)
-
binaryboy