0
votes

I've recently started projects related to board bring up on imx6 and I see u-boot to be used in all projects.

Doing research on u-boot I startd out on wikipedia ( https://en.wikipedia.org/wiki/Das_U-Boot#References )

Where it states that the u-boot boots the operating system by reading kernel and any other related data like dts files, it then executes the kernel with appropriate arguments. However while we load images we only load the u-boot, kernel and rootfs, so how can the u-boot boot the operating system? Is it already present in the boards internal memory? Or Is the running instance of kernel called operating system?

1
Any extra comments/questions/thoughts that may help us helping you ? - thanks. - Frant

1 Answers

1
votes

You did not provide the exact commands you were using, but you may have been confused by the fact that you loaded a file named uImage (what you are refering to as the u-boot kernel image):

However while we load images we only load the u-boot kernel and rootfs

If this is the case, please note that it is not a u-boot image (you are running u-boot already if you can use commands such as bootm), but rather a Linux kernel image in u-boot image format created using the u-boot mkimage utility - see here.

uImage is in fact the Linux Kernel image itself that was converted into a file using a special u-boot format by the u-boot utility mkimage.

A typical command to create a uImage from a Linux kernel zImage file would be for example:
mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n "Linux kernel" -d arch/arm/boot/zImage uImage. uImage does contain the Linux Operating system, and this is why you were able to boot your system by loading it along with the rootfs.