The default sunxi boot.scr for ArchLinuxARM includes provision for booting from zImage as well as uImage and it will boot zImage in preference to uImage if both exist.
To boot zImage, an additional file "/boot/dtbs/${fdtfile}" is required and "/boot/initramfs-linux.img" is optional.
I have a couple of questions...
There is no provision for an initramfs when booting uImage. Is this is because uImage files can contain the kernel AND the initramfs images? If it is, and such an image is presented to U-Boot, does bootm automatically invoke such an initramfs when called (e.g bootm ${kernel_addr_r}) ?
If that is correct, is it documented anywhere how to produce such a uImage ?
My other question is about using zImage. I'd like to understand how this works. Why do I need the fdt file (and where do I get it - there isn't one in the linux-sunxi package for the cubieboard2) ? Why doesn't bootm need it, given the embedded kernel image is the same? Is script.bin doing the same thing and, if so, can that be used with bootz ?
I tried extracting a working zImage from a uImage and booting it with a command-line like the below but it didn't work
$this->bbcode_second_pass_code('', 'mmc dev 0
load mmc 0:1 ${kernel_addr_r} /boot/zImage
setenv bootargs console=${console} root=/dev/sda6 rw rootwait
bootz ${kernel_addr_r}')