What's the difference between "bootm LOADADDR RDADDR" and initrd=RDADDR on kernel cmdline?

cancel
Showing results for 
Search instead for 
Did you mean: 

What's the difference between "bootm LOADADDR RDADDR" and initrd=RDADDR on kernel cmdline?

2,168 Views
Senior Contributor II

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?

Ed

Labels (2)
0 Kudos
7 Replies

43 Views
Senior Contributor IV

Ed

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.

Thanks,
Yixing

0 Kudos

43 Views
Senior Contributor II

Yixing,

No it hasn't been resolved, but its not that important. I would like to get an answer, but if you need to close this out for some reason go for it..

Ed

0 Kudos

43 Views
Senior Contributor IV

Ed

I am going to branch your discussion into an internal group and assign engineer to answer your questions.

Regards,

Yixing

0 Kudos

43 Views
Senior Contributor III

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.

Sinan Akman

0 Kudos

43 Views
Senior Contributor II

Sinan,

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?

Ed

0 Kudos

43 Views
Contributor I

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.

0 Kudos

43 Views
Senior Contributor II

Hi,

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

Ed

0 Kudos