No kernel log at all? What happens if you pull the disk? Do you get a 'normal' kernel log then?
No. With disk pulled the kernel will still not start.
With disk kernel loads but doesn't show any output, but without disk the kernel doesn't even load? Very strange. According to the environment the bootcmd is:
bootcmd=run loadzimage; run loadinitrd; run mk_mtdparts; setenv bootargs $(console) $(bootargs_root) $(bootargs_end) $(mtdparts); bootm 0x40000 0x900000
while loadzimage and loadinitrd are
loadzimage=nand read.e 0x40000 $(kernel_start) $(kernel_size)
loadinitrd=nand read.e 0x900000 $(initrd_start) $(initrd_size)
Actually I would have expected something like 'load kernel from disk, and only if that fails, load kernel from nand'.
So it seems that the kernel and initrd files I wrote to the NAND are not working. Perhaps I should review the instructions for that again...
Anything I should watch out for? Source of known working zImage and initrd files?
The only source I'm aware of is the recovery image. BTW, you can also load them using fatload or tftpboot in memory, and then call bootm to boot them directly. The sequence should be something like
fatload kernel 0x40000
fatload initrd 0x900000
setenv bootargs $(console) $(bootargs_root) $(bootargs_end) $(mtdparts)
bootm 0x40000 0x900000
The 'setenv bootargs' part is because u-boot passes a commandline to the kernel on boot. This should work as good as loading the kernel and initrd in any other way.
method to copy them to USb that preserves binary format, etc. etc...
No. Just copy them. They have an internal checksum. Bootm will tell if the image is correct.