aboutsummaryrefslogtreecommitdiff
path: root/docs/system
diff options
context:
space:
mode:
authorXiaojuan Yang <yangxiaojuan@loongson.cn>2022-08-12 17:19:57 +0800
committerRichard Henderson <richard.henderson@linaro.org>2022-08-13 04:45:03 -0700
commit1f90ce64fc6043470209f825c7763950ec2067a1 (patch)
tree58590cda76c2ba039a378c85866aa59b736009a6 /docs/system
parent93f3dd604825824a7239aaf704baf74730aa3007 (diff)
docs/system/loongarch: Update the LoongArch document
1. Add some information about how to boot the LoongArch virt machine by uefi bios and linux kernel and how to access the source code or binary file. 2. Move the explanation of LoongArch system emulation in the target/loongarch/README to docs/system/loongarch/loongson3.rst Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn> Reviewed-by: Song Gao <gaosong@loongson.cn> Message-Id: <20220812091957.3338126-1-yangxiaojuan@loongson.cn> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'docs/system')
-rw-r--r--docs/system/loongarch/loongson3.rst104
1 files changed, 96 insertions, 8 deletions
diff --git a/docs/system/loongarch/loongson3.rst b/docs/system/loongarch/loongson3.rst
index fa3acd01c0..1bdab44e27 100644
--- a/docs/system/loongarch/loongson3.rst
+++ b/docs/system/loongarch/loongson3.rst
@@ -15,27 +15,115 @@ The ``virt`` machine supports:
- Gpex host bridge
- Ls7a RTC device
- Ls7a IOAPIC device
-- Ls7a ACPI device
+- ACPI GED device
- Fw_cfg device
- PCI/PCIe devices
- Memory device
-- CPU device. Type: Loongson-3A5000.
+- CPU device. Type: la464-loongarch-cpu.
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``.
+cpu type ``la464-loongarch-cpu``.
Boot options
------------
-Now the ``virt`` machine can run test program in ELF format and the
-method of compiling is in target/loongarch/README.
+We can boot the LoongArch virt machine by specifying the uefi bios,
+initrd, and linux kernel. And those source codes and binary files
+can be accessed by following steps.
+
+(1) booting command:
+
+.. code-block:: bash
+
+ $ qemu-system-loongarch64 -machine virt -m 4G -cpu la464-loongarch-cpu \
+ -smp 1 -bios QEMU_EFI.fd -kernel vmlinuz.efi -initrd initrd.img \
+ -append "root=/dev/ram rdinit=/sbin/init consol e=ttyS0,115200" \
+ --nographic
+
+Note: The running speed may be a little slow, as the performance of our
+qemu and uefi bios is not perfect, and it is being fixed.
+
+(2) cross compiler tools:
+
+.. code-block:: bash
+
+ wget https://github.com/loongson/build-tools/releases/download/ \
+ 2022.05.29/loongarch64-clfs-5.0-cross-tools-gcc-full.tar.xz
+
+ tar -vxf loongarch64-clfs-5.0-cross-tools-gcc-full.tar.xz
+
+(3) qemu compile configure option:
+
+.. code-block:: bash
+
+ ./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 \
+ --enable-debug --disable-capstone --disable-kvm \
+ --enable-profiler
+ make
+
+(4) uefi bios source code and compile method:
+
+.. code-block:: bash
+
+ git clone https://github.com/loongson/edk2-LoongarchVirt.git
+
+ cd edk2-LoongarchVirt
+
+ git submodule update --init
+
+ export PATH=$YOUR_COMPILER_PATH/bin:$PATH
+
+ export WORKSPACE=`pwd`
+
+ export PACKAGES_PATH=$WORKSPACE/edk2-LoongarchVirt
+
+ export GCC5_LOONGARCH64_PREFIX=loongarch64-unknown-linux-gnu-
+
+ edk2-LoongarchVirt/edksetup.sh
+
+ make -C edk2-LoongarchVirt/BaseTools
+
+ build --buildtarget=DEBUG --tagname=GCC5 --arch=LOONGARCH64 --platform=OvmfPkg/LoongArchQemu/Loongson.dsc
+
+ build --buildtarget=RELEASE --tagname=GCC5 --arch=LOONGARCH64 --platform=OvmfPkg/LoongArchQemu/Loongson.dsc
+
+The efi binary file path:
+
+ Build/LoongArchQemu/DEBUG_GCC5/FV/QEMU_EFI.fd
+
+ Build/LoongArchQemu/RELEASE_GCC5/FV/QEMU_EFI.fd
+
+(5) linux kernel source code and compile method:
.. 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
+ git clone https://github.com/loongson/linux.git
+
+ export PATH=$YOUR_COMPILER_PATH/bin:$PATH
+
+ export LD_LIBRARY_PATH=$YOUR_COMPILER_PATH/lib:$LD_LIBRARY_PATH
+
+ export LD_LIBRARY_PATH=$YOUR_COMPILER_PATH/loongarch64-unknown-linux-gnu/lib/:$LD_LIBRARY_PATH
+
+ make ARCH=loongarch CROSS_COMPILE=loongarch64-unknown-linux-gnu- loongson3_defconfig
+
+ make ARCH=loongarch CROSS_COMPILE=loongarch64-unknown-linux-gnu-
+
+ make ARCH=loongarch CROSS_COMPILE=loongarch64-unknown-linux-gnu- install
+
+ make ARCH=loongarch CROSS_COMPILE=loongarch64-unknown-linux-gnu- modules_install
+
+Note: The branch of linux source code is loongarch-next.
+
+(6) initrd file:
+
+ You can use busybox tool and the linux modules to make a initrd file. Or you can access the
+ binary files: https://github.com/yangxiaojuan-loongson/qemu-binary