target/loongarch: Add system emulation introduction
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn> Signed-off-by: Song Gao <gaosong@loongson.cn> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20220606124333.2060567-19-yangxiaojuan@loongson.cn> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
14f2b0b741
commit
d88b51dc26
|
@ -1122,6 +1122,14 @@ F: include/hw/net/lasi_82596.h
|
||||||
F: include/hw/pci-host/dino.h
|
F: include/hw/pci-host/dino.h
|
||||||
F: pc-bios/hppa-firmware.img
|
F: pc-bios/hppa-firmware.img
|
||||||
|
|
||||||
|
LoongArch Machines
|
||||||
|
------------------
|
||||||
|
Virt
|
||||||
|
M: Xiaojuan Yang <yangxiaojuan@loongson.cn>
|
||||||
|
M: Song Gao <gaosong@loongson.cn>
|
||||||
|
S: Maintained
|
||||||
|
F: docs/system/loongarch/loongson3.rst
|
||||||
|
|
||||||
M68K Machines
|
M68K Machines
|
||||||
-------------
|
-------------
|
||||||
an5206
|
an5206
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
:orphan:
|
||||||
|
|
||||||
|
==========================================
|
||||||
|
loongson3 virt generic platform (``virt``)
|
||||||
|
==========================================
|
||||||
|
|
||||||
|
The ``virt`` machine use gpex host bridge, and there are some
|
||||||
|
emulated devices on virt board, such as loongson7a RTC device,
|
||||||
|
IOAPIC device, ACPI device and so on.
|
||||||
|
|
||||||
|
Supported devices
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
The ``virt`` machine supports:
|
||||||
|
- Gpex host bridge
|
||||||
|
- Ls7a RTC device
|
||||||
|
- Ls7a IOAPIC device
|
||||||
|
- Ls7a ACPI device
|
||||||
|
- Fw_cfg device
|
||||||
|
- PCI/PCIe devices
|
||||||
|
- Memory device
|
||||||
|
- CPU device. Type: Loongson-3A5000.
|
||||||
|
|
||||||
|
CPU and machine Type
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
The ``qemu-system-loongarch64`` provides emulation for virt
|
||||||
|
machine. You can specify the machine type ``virt`` and
|
||||||
|
cpu type ``Loongson-3A5000``.
|
||||||
|
|
||||||
|
Boot options
|
||||||
|
------------
|
||||||
|
|
||||||
|
Now the ``virt`` machine can run test program in ELF format and the
|
||||||
|
method of compiling is in target/loongarch/README.
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ qemu-system-loongarch64 -machine virt -m 4G -cpu Loongson-3A5000 \
|
||||||
|
-smp 1 -kernel hello -monitor none -display none \
|
||||||
|
-chardev file,path=hello.out,id=output -serial chardev:output
|
|
@ -8,3 +8,57 @@
|
||||||
|
|
||||||
We can get the latest loongarch documents at https://github.com/loongson/LoongArch-Documentation/tags.
|
We can get the latest loongarch documents at https://github.com/loongson/LoongArch-Documentation/tags.
|
||||||
|
|
||||||
|
|
||||||
|
- System emulation
|
||||||
|
|
||||||
|
Mainly emulate a virt 3A5000 board and ls7a bridge that is not exactly the same as the host.
|
||||||
|
3A5000 support multiple interrupt cascading while here we just emulate the extioi interrupt
|
||||||
|
cascading. LS7A1000 host bridge support multiple devices, such as sata, gmac, uart, rtc
|
||||||
|
and so on. But we just realize the rtc. Others use the qemu common devices. It does not affect
|
||||||
|
the general use. We also introduced the emulation of devices at docs/system/loongarch/loongson3.rst.
|
||||||
|
|
||||||
|
This version only supports running binary files in ELF format, and does not depend on BIOS and kernel file.
|
||||||
|
You can compile the test program with 'make & make check-tcg' and run the test case with the following command:
|
||||||
|
|
||||||
|
1. Install LoongArch cross-tools on X86 machines.
|
||||||
|
|
||||||
|
Download cross-tools.
|
||||||
|
|
||||||
|
wget https://github.com/loongson/build-tools/releases/latest/download/loongarch64-clfs-20211202-cross-tools.tar.xz
|
||||||
|
|
||||||
|
tar -vxf loongarch64-clfs-20211202-cross-tools.tar.xz -C /opt
|
||||||
|
|
||||||
|
Config cross-tools env.
|
||||||
|
|
||||||
|
. setenv.sh
|
||||||
|
|
||||||
|
setenv.sh:
|
||||||
|
|
||||||
|
#!/bin/sh
|
||||||
|
set -x
|
||||||
|
CC_PREFIX=/opt/cross-tools
|
||||||
|
|
||||||
|
export PATH=$CC_PREFIX/bin:$PATH
|
||||||
|
export LD_LIBRARY_PATH=$CC_PREFIX/lib:$LD_LIBRARY_PATH
|
||||||
|
export LD_LIBRARY_PATH=$CC_PREFIX/loongarch64-unknown-linux-gnu/lib/:$LD_LIBRARY_PATH
|
||||||
|
set +x
|
||||||
|
|
||||||
|
2. Test tests/tcg/multiarch.
|
||||||
|
|
||||||
|
./configure --disable-rdma --disable-pvrdma --prefix=/usr \
|
||||||
|
--target-list="loongarch64-softmmu" \
|
||||||
|
--disable-libiscsi --disable-libnfs --disable-libpmem \
|
||||||
|
--disable-glusterfs --enable-libusb --enable-usb-redir \
|
||||||
|
--disable-opengl --disable-xen --enable-spice --disable-werror \
|
||||||
|
--enable-debug --disable-capstone --disable-kvm --enable-profiler
|
||||||
|
|
||||||
|
cd build/
|
||||||
|
|
||||||
|
make && make check-tcg
|
||||||
|
|
||||||
|
or
|
||||||
|
|
||||||
|
./build/qemu-system-loongarch64 -machine virt -m 4G -cpu Loongson-3A5000 -smp 1 -kernel build/tests/tcg/loongarch64-softmmu/hello -monitor none -display none -chardev file,path=hello.out,id=output -serial chardev:output
|
||||||
|
|
||||||
|
- Note.
|
||||||
|
We can get the latest LoongArch documents or LoongArch tools at https://github.com/loongson/
|
||||||
|
|
Loading…
Reference in New Issue