mirror of
https://github.com/qemu/qemu.git
synced 2024-11-25 20:03:37 +08:00
docs/system: arm: Add sabrelite board description
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 <bin.meng@windriver.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Message-id: 20210106063504.10841-5-bmeng.cn@gmail.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
37e33be7ea
commit
c9f8511ea8
119
docs/system/arm/sabrelite.rst
Normal file
119
docs/system/arm/sabrelite.rst
Normal file
@ -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 represents 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 requires 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
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user