I'm working with a ramdisk file as it is built by buildroot.
I am able to boot fine if I do this...
U-Boot> setenv bootargs 'console=ttymxc0,115200 ip=dhcp'
U-Boot> tftpboot 0x11800000 uramdisk.img; tftpboot 0x12000000 uImage_w_dtb; bootm 0x12000000 0x11800000
however, the kernel crashes saying it can't find rootfs if I do this:
U-Boot> setenv bootargs 'console=ttymxc0,115200 initrd=0x11800000 ip=dhcp'
U-Boot> tftpboot 0x11800000 uramdisk.img; tftpboot 0x12000000 uImage_w_dtb; bootm
Shouldn't either of these boot methods work the same way?
Had your issue got resolved? If yes, we are going to close the discussion in 3 days. If you still need help please feel
free to contact Freescale.
Ed, your second set of commands above would only work if you have the initrd already compiled with kernel and in that case tftping the rootfs is irrelevant. So you either tftp both kernel and ramdisk and you have to provide both addresses separately or you boot a kernel that already has the ramdisk linked to it then you would only bootm the kernel. Check the related config parameters while you are compiling the kernel. For having the ramdisk part of the kernel you will have to provide the path where kernel finds a ramdisk while compiling it. Hope this helps.
Not sure what you mean here. According to Documentation/kernel-parameters.txt, the "initrd=" parameter is used to specify the location of the initial ramdisk. Isn't that the same purpose as the "RDADDR" argument with the "bootm LOADADDR RDADDR" command?
I have a question for your first approach.
To use bootcmd with two parameter, you must be using mkimage to process uImage.
What value have you set for -A and -e option?
I have a similar problem.
But in my case, using bootcmd with two parameter is not working either.
I assume you mean "... To use bootm command..."
I use this mkimage command line:
mkimage -A arm -O linux -T kernel -C none -a 0x10008000 -e 0x10008000 -d arch/arm/boot/zImage /tftpboot/uImage