a8a506c390
Emulate a 3A5000 board use the new loongarch instruction. 3A5000 belongs to the Loongson3 series processors. The board consists of a 3A5000 cpu model and the virt bridge. The host 3A5000 board is really complicated and contains many functions.Now for the tcg softmmu mode only part functions are emulated. More detailed info you can see https://github.com/loongson/LoongArch-Documentation 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-31-yangxiaojuan@loongson.cn> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> |
||
---|---|---|
.. | ||
insn_trans | ||
constant_timer.c | ||
cpu-csr.h | ||
cpu-param.h | ||
cpu.c | ||
cpu.h | ||
csr_helper.c | ||
disas.c | ||
fpu_helper.c | ||
helper.h | ||
insns.decode | ||
internals.h | ||
iocsr_helper.c | ||
Kconfig | ||
machine.c | ||
meson.build | ||
op_helper.c | ||
README | ||
tlb_helper.c | ||
translate.c | ||
translate.h |
- Introduction LoongArch is the general processor architecture of Loongson. The following versions of the LoongArch core are supported core: 3A5000 https://github.com/loongson/LoongArch-Documentation/releases/download/2021.08.17/LoongArch-Vol1-v1.00-EN.pdf 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/