-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-2…
…0210108' into staging target-arm queue: * intc/arm_gic: Fix gic_irq_signaling_enabled() for vCPUs * target/arm: Fix MTE0_ACTIVE * target/arm: Implement v8.1M and Cortex-M55 model * hw/arm/highbank: Drop dead KVM support code * util/qemu-timer: Make timer_free() imply timer_del() * various devices: Use ptimer_free() in finalize function * docs/system: arm: Add sabrelite board description * sabrelite: Minor fixes to allow booting U-Boot # gpg: Signature made Fri 08 Jan 2021 15:34:25 GMT # gpg: using RSA key E1A5C593CD419DE28E8315CF3C2525ED14360CDE # gpg: issuer "[email protected]" # gpg: Good signature from "Peter Maydell <[email protected]>" [ultimate] # gpg: aka "Peter Maydell <[email protected]>" [ultimate] # gpg: aka "Peter Maydell <[email protected]>" [ultimate] # Primary key fingerprint: E1A5 C593 CD41 9DE2 8E83 15CF 3C25 25ED 1436 0CDE * remotes/pmaydell/tags/pull-target-arm-20210108: (23 commits) docs/system: arm: Add sabrelite board description hw/arm: sabrelite: Connect the Ethernet PHY at address 6 hw/msic: imx6_ccm: Correct register value for silicon type hw/misc: imx6_ccm: Update PMU_MISC0 reset value exynos4210_mct: Use ptimer_free() in the finalize function to avoid memleaks musicpal: Use ptimer_free() in the finalize function to avoid memleaks mss-timer: Use ptimer_free() in the finalize function to avoid memleaks exynos4210_pwm: Use ptimer_free() in the finalize function to avoid memleaks exynos4210_rtc: Use ptimer_free() in the finalize function to avoid memleaks allwinner-a10-pit: Use ptimer_free() in the finalize function to avoid memleaks digic-timer: Use ptimer_free() in the finalize function to avoid memleaks target/arm: Remove timer_del()/timer_deinit() before timer_free() Remove superfluous timer_del() calls scripts/coccinelle: New script to remove unnecessary timer_del() calls util/qemu-timer: Make timer_free() imply timer_del() hw/arm/highbank: Drop dead KVM support code target/arm: Implement Cortex-M55 model target/arm: Implement FPCXT_NS fp system register target/arm: Correct store of FPSCR value via FPCXT_S hw/intc/armv7m_nvic: Correct handling of CCR.BFHFNMIGN ... Signed-off-by: Peter Maydell <[email protected]>
- Loading branch information
Showing
65 changed files
with
421 additions
and
111 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.