[PATCH 09/10] docs/system/arm: Document MCIMX6UL-EVK Buildroot boot
Bin Meng <[email protected]>
| Newsgroups | org.nongnu.qemu-arm,org.nongnu.qemu-devel |
|---|---|
| Message-ID | <[email protected]> |
Provide verified instructions for U-Boot and direct Linux boot using Buildroot images. Signed-off-by: Bin Meng <[email protected]> --- docs/system/arm/mcimx6ul-evk.rst | 67 ++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/docs/system/arm/mcimx6ul-evk.rst b/docs/system/arm/mcimx6ul-evk.rst index 8871138ab3..84331b734d 100644 --- a/docs/system/arm/mcimx6ul-evk.rst +++ b/docs/system/arm/mcimx6ul-evk.rst @@ -3,3 +3,70 @@ NXP MCIMX6UL-EVK (``mcimx6ul-evk``) The ``mcimx6ul-evk`` machine models the NXP i.MX6UltraLite Evaluation Kit MCIMX6UL-EVK development board. It has a single Cortex-A7 CPU. + +Booting Buildroot images +------------------------ + +Build the SD card image with the tested Buildroot version: + +.. code-block:: bash + + $ git clone https://gitlab.com/buildroot.org/buildroot.git + $ cd buildroot + $ git checkout 2026.05 + $ make imx6ulevk_defconfig + $ make + +The following examples use images generated by Buildroot:: + + IMAGES=/path/to/buildroot/output/images + QEMU_BUILD=/path/to/qemu/build + +The generated raw ``sdcard.img`` is about 84 MiB, which is not a capacity +supported by QEMU's SD card model. Resize the image in place to 128 MiB:: + + "$QEMU_BUILD/qemu-img" resize -f raw "$IMAGES/sdcard.img" 128M + +This modifies the Buildroot output image; rebuilding the image restores its +original size. + +The SD card must be attached to USDHC2 with ``index=1``. It is consequently +named ``mmc1`` by U-Boot and ``mmcblk1`` by Linux. The first partition contains +the kernel and device tree, while the second partition contains the root file +system. + +U-Boot boot +~~~~~~~~~~~ + +The machine does not model the i.MX6UL Boot ROM or its SPL loading sequence. +Load U-Boot proper at its linked address:: + +.. code-block:: bash + + "$QEMU_BUILD/qemu-system-arm" \ + -M mcimx6ul-evk -m 512M \ + -device loader,file="$IMAGES/u-boot.bin",addr=0x87800000,cpu-num=0 \ + -drive file="$IMAGES/sdcard.img",if=sd,index=1,format=raw \ + -nographic + +The default Buildroot U-Boot environment selects ``mmc1``, loads ``zImage`` +and ``imx6ul-14x14-evk.dtb`` from the first partition, and starts Linux with +``/dev/mmcblk1p2`` as the root file system. A ``bad CRC`` warning while loading +an uninitialized persistent U-Boot environment is expected; U-Boot continues +with its compiled-in defaults. + +Direct Linux boot +~~~~~~~~~~~~~~~~~ + +QEMU can load the Buildroot kernel and device tree directly. The kernel then +mounts the second SD card partition as its root file system:: + +.. code-block:: bash + + "$QEMU_BUILD/qemu-system-arm" \ + -M mcimx6ul-evk -m 512M \ + -kernel "$IMAGES/zImage" \ + -dtb "$IMAGES/imx6ul-14x14-evk.dtb" \ + -append "console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw" \ + -drive file="$IMAGES/sdcard.img",if=sd,index=1,format=raw \ + -nographic -- 2.53.0