
Hi Wang,
the code is from arch/powerpc/boot/cuboot-bamboo.c, and the kernel is 2.6.30.1, the boot image I'm using is something like cuImage.bamboo, I checked zImage.ld.S, and found that when we're running cuImage.bamboo, we actually fall into arch/powerpc/boot/crt0.S:_zimage_start(), which will call platform_init() and then bamboo_init() finally. but sounds like if we passing r3 as fdt, then the code (platform_init, etc.., and even arch/powerpc/kernel/head_xxx.S start() function, only comments, though) is actually wrong, isn't it? Thank you very much for help.
This is the boot wrapper code only used if you are trying to boot a new kernel w/an old u-boot. If you are using a current u-boot you should just be using a plain old uImage as produced by the kernel build.
do you mean the default ``uImage'' file? I'm using u-boot-2009.06, and I can boot successfully with cuImage.mpc8548cds (I'm actually working on a mpc8548 cds board), but unable to boot ``uImage'', I'm sure the ``vmlinux'' is the same.
Booting such a new kernel, you'll need to pass an adress of an fdt too:
=> help bootm bootm [addr [arg ...]] - boot application image stored in memory passing arguments 'arg ...'; when booting a Linux kernel, 'arg' can be the address of an initrd image When booting a Linux kernel which requires a flat device-tree a third argument is required which is the address of the device-tree blob. To boot that kernel without an initrd image, use a '-' for the second argument. If you do not pass a third a bd_info struct will be passed instead
So try "bootm <kernel> - <fdt>"
Cheers Detlev