On Wed, 7 May 2014, Kevin Hilman wrote:
Hmm, if atags are not used, then u-boot will not be able to pass an initramfs in memory. That's a bit of a problem for my current setup.
I rely on initramfs because MMC and NFS rootfs setups break rather often, so I like to rely on initramfs, and then switch_root to MMC/NFS.
You still can pass initrd=<phys_addr>,<size> to the kernel via the cmdline string. And if neither ATAGS nor DT are provided you'll have to use the cmdline to pass the memory information as well. This can be hardcoded into the kernel with CONFIG_CMDLINE.
However a better solution that doesn't involve hardcoding anything in the kernel if you want to use a multi-platform kernel is to use CONFIG_ARM_APPENDED_DTB and:
make zImage cat arch/arm/boot/zImage your_board.dtb > zImage_with_dtb mkimage ... # to create uImage using zImage_with_dtb
Obviously you shouldn't have to rebuild your_board.dtb each time you build a new kernel for the same board.
Nicolas