mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-17 12:41:32 +00:00
doc: Add a reST document for qemu-ppce500
Add a reST document to describe how to build and run U-Boot for the QEMU ppce500 machine. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com>
This commit is contained in:
parent
1d636a0cd5
commit
b75ca06836
2 changed files with 89 additions and 0 deletions
|
@ -8,6 +8,7 @@ Emulation
|
|||
|
||||
qemu-arm
|
||||
qemu-mips
|
||||
qemu-ppce500
|
||||
qemu-riscv
|
||||
qemu-x86
|
||||
qemu_capsule_update
|
||||
|
|
88
doc/board/emulation/qemu-ppce500.rst
Normal file
88
doc/board/emulation/qemu-ppce500.rst
Normal file
|
@ -0,0 +1,88 @@
|
|||
.. SPDX-License-Identifier: GPL-2.0+
|
||||
.. Copyright (C) 2021, Bin Meng <bmeng.cn@gmail.com>
|
||||
|
||||
QEMU PPC E500
|
||||
=============
|
||||
|
||||
QEMU for PPC supports a special 'ppce500' machine designed for emulation and
|
||||
virtualization purposes. This document describes how to run U-Boot under it.
|
||||
|
||||
The QEMU ppce500 machine models a generic PowerPC E500 virtual machine with
|
||||
support for the VirtIO standard networking device connected to the built-in
|
||||
PCI host controller. Some common devices in the CCSBAR space are modeled,
|
||||
including MPIC, 16550A UART devices, GPIO, I2C and PCI host controller with
|
||||
MSI delivery to MPIC. It uses device-tree to pass configuration information
|
||||
to guest software.
|
||||
|
||||
Building U-Boot
|
||||
---------------
|
||||
Set the CROSS_COMPILE environment variable as usual, and run::
|
||||
|
||||
$ make qemu-ppce500_defconfig
|
||||
$ make
|
||||
|
||||
Running U-Boot
|
||||
--------------
|
||||
The minimal QEMU command line to get U-Boot up and running is::
|
||||
|
||||
$ qemu-system-ppc -nographic -machine ppce500 -bios u-boot
|
||||
|
||||
You can also run U-Boot using 'qemu-system-ppc64'::
|
||||
|
||||
$ qemu-system-ppc64 -nographic -machine ppce500 -bios u-boot
|
||||
|
||||
The commands above create a target with 128 MiB memory by default. A freely
|
||||
configurable amount of RAM can be created via the '-m' parameter. For example,
|
||||
'-m 2G' creates 2 GiB memory for the target, and the memory node in the
|
||||
embedded DTB created by QEMU reflects the new setting.
|
||||
|
||||
Both qemu-system-ppc and qemu-system-ppc64 provide emulation for the following
|
||||
32-bit PowerPC CPUs:
|
||||
|
||||
* e500v2
|
||||
* e500mc
|
||||
|
||||
Additionally qemu-system-ppc64 provides support for the following 64-bit CPUs:
|
||||
|
||||
* e5500
|
||||
* e6500
|
||||
|
||||
The CPU type can be specified via the '-cpu' command line. If not specified,
|
||||
it creates a machine with e500v2 core. The following example shows an e6500
|
||||
based machine creation::
|
||||
|
||||
$ qemu-system-ppc64 -nographic -machine ppce500 -cpu e6500 -bios u-boot
|
||||
|
||||
When U-Boot boots, you will notice the following::
|
||||
|
||||
CPU: Unknown, Version: 0.0, (0x00000000)
|
||||
Core: e6500, Version: 2.0, (0x80400020)
|
||||
|
||||
This is because we only specified a core name to QEMU and it does not have a
|
||||
meaningful SVR value which represents an actual SoC that integrates such core.
|
||||
You can specify a real world SoC device that QEMU has built-in support but all
|
||||
these SoCs are e500v2 based MPC85xx series, hence you cannot test anything
|
||||
built for P4080 (e500mc), P5020 (e5500) and T2080 (e6500).
|
||||
|
||||
By default a VirtIO standard PCI networking device is connected as an ethernet
|
||||
interface at PCI address 0.1.0, but we can switch that to an e1000 NIC by::
|
||||
|
||||
$ qemu-system-ppc -nographic -machine ppce500 -bios u-boot \
|
||||
-nic tap,ifname=tap0,script=no,downscript=no,model=e1000
|
||||
|
||||
VirtIO BLK driver is also enabled to support booting from a disk image where
|
||||
a kernel image is stored. Append the following to QEMU::
|
||||
|
||||
-drive file=disk.img,format=raw,id=disk0 -device virtio-blk-pci,drive=disk0
|
||||
|
||||
Pericom pt7c4338 RTC is supported so we can use the 'date' command::
|
||||
|
||||
=> date
|
||||
Date: 2021-02-18 (Thursday) Time: 15:33:20
|
||||
|
||||
Additionally, 'poweroff' command is supported to shut down the QEMU session::
|
||||
|
||||
=> poweroff
|
||||
poweroff ...
|
||||
|
||||
These have been tested in QEMU 5.2.0.
|
Loading…
Add table
Reference in a new issue