Bin Meng <[email protected]> writes:
> From: Bin Meng <[email protected]> > > This adds the target guide for SABRE Lite board, and documents how > to boot a Linux kernel and U-Boot bootloader. > > Signed-off-by: Bin Meng <[email protected]> Awesome documentation 👏 Reviewed-by: Alex Bennée <[email protected]> > > --- > > Changes in v2: > - new patch: add sabrelite target guide > > docs/system/arm/sabrelite.rst | 119 > ++++++++++++++++++++++++++++++++++++++++++ > docs/system/target-arm.rst | 1 + > 2 files changed, 120 insertions(+) > create mode 100644 docs/system/arm/sabrelite.rst > > diff --git a/docs/system/arm/sabrelite.rst b/docs/system/arm/sabrelite.rst > new file mode 100644 > index 0000000..4c5d101 > --- /dev/null > +++ b/docs/system/arm/sabrelite.rst > @@ -0,0 +1,119 @@ > +Boundary Devices SABRE Lite (``sabrelite``) > +=========================================== > + > +Boundary Devices SABRE Lite i.MX6 Development Board is a low-cost development > +platform featuring the powerful Freescale / NXP Semiconductor's i.MX 6 Quad > +Applications Processor. > + > +Supported devices > +----------------- > + > +The SABRE Lite machine supports the following devices: > + > + * Up to 4 Cortex A9 cores > + * Generic Interrupt Controller > + * 1 Clock Controller Module > + * 1 System Reset Controller > + * 5 UARTs > + * 2 EPIC timers > + * 1 GPT timer > + * 2 Watchdog timers > + * 1 FEC ethernet controller > + * 3 I2C controllers > + * 7 GPIO controllers > + * 4 SDHC storage controllers > + * 4 USB 2.0 host controllers > + * 5 ECSPI controllers > + * 1 SST 25VF016B flash > + > +Please note above list is a complete superset the QEMU SABRE Lite machine can > +support. For a normal use case, a device tree blob that reprents a real world > +SABRE Lite board, only exposes a subset of devices to the guest software. > + > +Boot options > +------------ > + > +The SABRE Lite machine can start using the standard -kernel functionality > +for loading a Linux kernel, U-Boot bootloader or ELF executable. > + > +Running Linux kernel > +-------------------- > + > +Linux mainline v5.10 release is tested at the time of writing. To build a > Linux > +mainline kernel that can be booted by the SABRE Lite machine, simply > configure > +the kernel using the imx_v6_v7_defconfig configuration: > + > +.. code-block:: bash > + > + $ export ARCH=arm > + $ export CROSS_COMPILE=arm-linux-gnueabihf- > + $ make imx_v6_v7_defconfig > + $ make > + > +To boot the newly built Linux kernel in QEMU with the SABRE Lite machine, > use: > + > +.. code-block:: bash > + > + $ qemu-system-arm -M sabrelite -smp 4 -m 1G \ > + -display none -serial null -serial stdio \ > + -kernel arch/arm/boot/zImage \ > + -dtb arch/arm/boot/dts/imx6q-sabrelite.dtb \ > + -initrd /path/to/rootfs.ext4 \ > + -append "root=/dev/ram" > + > +Running U-Boot > +-------------- > + > +U-Boot mainline v2020.10 release is tested at the time of writing. To build a > +U-Boot mainline bootloader that can be booted by the SABRE Lite machine, use > +the mx6qsabrelite_defconfig with similar commands as described above for > Linux: > + > +.. code-block:: bash > + > + $ export CROSS_COMPILE=arm-linux-gnueabihf- > + $ make mx6qsabrelite_defconfig > + > +Note we need to adjust settings by: > + > +.. code-block:: bash > + > + $ make menuconfig > + > +then manually select the following configuration in U-Boot: > + > + Device Tree Control > Provider of DTB for DT Control > Embedded DTB > + > +To start U-Boot using the SABRE Lite machine, provide the u-boot binary to > +the -kernel argument, along with an SD card image with rootfs: > + > +.. code-block:: bash > + > + $ qemu-system-arm -M sabrelite -smp 4 -m 1G \ > + -display none -serial null -serial stdio \ > + -kernel u-boot > + > +The following example shows booting Linux kernel from dhcp, and uses the > +rootfs on an SD card. This requies some additional command line parameters > +for QEMU: > + > +.. code-block:: none > + > + -nic user,tftp=/path/to/kernel/zImage \ > + -drive file=sdcard.img,id=rootfs -device sd-card,drive=rootfs > + > +The directory for the built-in TFTP server should also contain the device > tree > +blob of the SABRE Lite board. The sample SD card image was populated with the > +root file system with one single partition. You may adjust the kernel "root=" > +boot parameter accordingly. > + > +After U-Boot boots, type the following commands in the U-Boot command shell > to > +boot the Linux kernel: > + > +.. code-block:: none > + > + => setenv ethaddr 00:11:22:33:44:55 > + => setenv bootfile zImage > + => dhcp > + => tftpboot 14000000 imx6q-sabrelite.dtb > + => setenv bootargs root=/dev/mmcblk3p1 > + => bootz 12000000 - 14000000 > diff --git a/docs/system/target-arm.rst b/docs/system/target-arm.rst > index bde4b8e..edd013c 100644 > --- a/docs/system/target-arm.rst > +++ b/docs/system/target-arm.rst > @@ -83,6 +83,7 @@ undocumented; you can get a complete list by running > arm/versatile > arm/vexpress > arm/aspeed > + arm/sabrelite > arm/digic > arm/musicpal > arm/gumstix -- Alex Bennée
