 f548f20176
			
		
	
	
		f548f20176
		
	
	
	
	
		
			
			The official punctuation for Arm CPU names uses a hyphen, like "Cortex-A9". We mostly follow this, but in a few places usage without the hyphen has crept in. Fix those so we consistently use the same way of writing the CPU name. This commit was created with: git grep -z -l 'Cortex ' | xargs -0 sed -i 's/Cortex /Cortex-/' Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Message-id: 20210527095152.10968-1-peter.maydell@linaro.org
		
			
				
	
	
		
			120 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			120 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| 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
 |