164baad62SSong Gao- Introduction 264baad62SSong Gao 364baad62SSong Gao LoongArch is the general processor architecture of Loongson. 464baad62SSong Gao 564baad62SSong Gao The following versions of the LoongArch core are supported 664baad62SSong Gao core: 3A5000 764baad62SSong Gao https://github.com/loongson/LoongArch-Documentation/releases/download/2021.08.17/LoongArch-Vol1-v1.00-EN.pdf 864baad62SSong Gao 964baad62SSong Gao We can get the latest loongarch documents at https://github.com/loongson/LoongArch-Documentation/tags. 1064baad62SSong Gao 11*d88b51dcSXiaojuan Yang 12*d88b51dcSXiaojuan Yang- System emulation 13*d88b51dcSXiaojuan Yang 14*d88b51dcSXiaojuan Yang Mainly emulate a virt 3A5000 board and ls7a bridge that is not exactly the same as the host. 15*d88b51dcSXiaojuan Yang 3A5000 support multiple interrupt cascading while here we just emulate the extioi interrupt 16*d88b51dcSXiaojuan Yang cascading. LS7A1000 host bridge support multiple devices, such as sata, gmac, uart, rtc 17*d88b51dcSXiaojuan Yang and so on. But we just realize the rtc. Others use the qemu common devices. It does not affect 18*d88b51dcSXiaojuan Yang the general use. We also introduced the emulation of devices at docs/system/loongarch/loongson3.rst. 19*d88b51dcSXiaojuan Yang 20*d88b51dcSXiaojuan Yang This version only supports running binary files in ELF format, and does not depend on BIOS and kernel file. 21*d88b51dcSXiaojuan Yang You can compile the test program with 'make & make check-tcg' and run the test case with the following command: 22*d88b51dcSXiaojuan Yang 23*d88b51dcSXiaojuan Yang 1. Install LoongArch cross-tools on X86 machines. 24*d88b51dcSXiaojuan Yang 25*d88b51dcSXiaojuan Yang Download cross-tools. 26*d88b51dcSXiaojuan Yang 27*d88b51dcSXiaojuan Yang wget https://github.com/loongson/build-tools/releases/latest/download/loongarch64-clfs-20211202-cross-tools.tar.xz 28*d88b51dcSXiaojuan Yang 29*d88b51dcSXiaojuan Yang tar -vxf loongarch64-clfs-20211202-cross-tools.tar.xz -C /opt 30*d88b51dcSXiaojuan Yang 31*d88b51dcSXiaojuan Yang Config cross-tools env. 32*d88b51dcSXiaojuan Yang 33*d88b51dcSXiaojuan Yang . setenv.sh 34*d88b51dcSXiaojuan Yang 35*d88b51dcSXiaojuan Yang setenv.sh: 36*d88b51dcSXiaojuan Yang 37*d88b51dcSXiaojuan Yang #!/bin/sh 38*d88b51dcSXiaojuan Yang set -x 39*d88b51dcSXiaojuan Yang CC_PREFIX=/opt/cross-tools 40*d88b51dcSXiaojuan Yang 41*d88b51dcSXiaojuan Yang export PATH=$CC_PREFIX/bin:$PATH 42*d88b51dcSXiaojuan Yang export LD_LIBRARY_PATH=$CC_PREFIX/lib:$LD_LIBRARY_PATH 43*d88b51dcSXiaojuan Yang export LD_LIBRARY_PATH=$CC_PREFIX/loongarch64-unknown-linux-gnu/lib/:$LD_LIBRARY_PATH 44*d88b51dcSXiaojuan Yang set +x 45*d88b51dcSXiaojuan Yang 46*d88b51dcSXiaojuan Yang 2. Test tests/tcg/multiarch. 47*d88b51dcSXiaojuan Yang 48*d88b51dcSXiaojuan Yang ./configure --disable-rdma --disable-pvrdma --prefix=/usr \ 49*d88b51dcSXiaojuan Yang --target-list="loongarch64-softmmu" \ 50*d88b51dcSXiaojuan Yang --disable-libiscsi --disable-libnfs --disable-libpmem \ 51*d88b51dcSXiaojuan Yang --disable-glusterfs --enable-libusb --enable-usb-redir \ 52*d88b51dcSXiaojuan Yang --disable-opengl --disable-xen --enable-spice --disable-werror \ 53*d88b51dcSXiaojuan Yang --enable-debug --disable-capstone --disable-kvm --enable-profiler 54*d88b51dcSXiaojuan Yang 55*d88b51dcSXiaojuan Yang cd build/ 56*d88b51dcSXiaojuan Yang 57*d88b51dcSXiaojuan Yang make && make check-tcg 58*d88b51dcSXiaojuan Yang 59*d88b51dcSXiaojuan Yang or 60*d88b51dcSXiaojuan Yang 61*d88b51dcSXiaojuan Yang ./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 62*d88b51dcSXiaojuan Yang 63*d88b51dcSXiaojuan Yang- Note. 64*d88b51dcSXiaojuan Yang We can get the latest LoongArch documents or LoongArch tools at https://github.com/loongson/ 65