Boot an application image. This has become the standard image starting mechanism and it can start uImages aswell as zImages and barebox images.
bootm [OPTIONS] image
|-c||crc check uImage data|
|-r <initrd>||specify an initrd image|
|-L <load addr>||specify initrd load address|
|-a <load addr>||specify os load address|
|-e <ofs>||entry point to the image relative to start (0)|
|-o <oftree>||specify oftree|
Additionally to the above commandline options the behaviour of the bootm command can be configured with environment variables. This allows to configure the bootm command before executing it, and then running bootm without additional arguments later. commandline switches will override the environment settings. The environment variables bootm understands are:
|global.bootm.image||bootm default boot image|
|global.bootm.initrd||bootm default initrd|
|global.linux.bootargs.*||Linux bootargs variables|
|global.linux.mtdparts.*||Linux mtdparts variables|
bootm iterates over all existing variables beginning with 'global.linux.bootargs.'. This means that an additional bootarg can be specified with:
Similarly bootm iterates over all existing variables beginning with 'global.linux.mtdparts.', but these all are concatenated into a single 'mtdparts=”<desc1>:<desc2>…' option.
The bootm command automatically detects the image type. This works for uImages, ARM zImages and to a certain extent for barebox images. If no supported image type is found, the -f option can be used to use a fallback handler and barebox tries to make the best out of this image.
The load addresses normally don't need to be specified, barebox automatically uses the right addresses for the image type. It also makes sure that the addresses images are written to in are SDRAM and do not overwrite vital things like barebox itself. Only if this doesn't work the -L, -a and -e options should be passed.
uImages have a hardcoded load address in them. This is not suitable for uImages intended for multiple SoCs with different SDRAM addresses. U-Boot now has a new image type IH_TYPE_KERNEL_NOLOAD for these kinds of images. barebox additionally supports a load address of 0xffffffff which means that barebox can choose a suitable load address. This has the advantage that it works with other image types aswell. You can overwrite the image addresses with -L, -a and -e. This also includes overwriting these addresses with 0xffffffff to invalidate a load address.