forked from tianocore/edk2
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
OvmfPkg/LoongArchVirt: Add self introduction file
Add self introduction file for LoongArch virtual machine. BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4584 Cc: Ard Biesheuvel <[email protected]> Cc: Jiewen Yao <[email protected]> Cc: Jordan Justen <[email protected]> Cc: Gerd Hoffmann <[email protected]> Cc: Bibo Mao <[email protected]> Cc: Dongyan Qian <[email protected]> Signed-off-by: Chao Li <[email protected]> Reviewed-by: Bibo Mao <[email protected]>
- Loading branch information
1 parent
d6dcf62
commit c2d6efa
Showing
1 changed file
with
69 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
# LoongArch QEMU virt platform | ||
|
||
## Overview | ||
|
||
LoongArch QEMU virt is a generic platform that does not require any actual hardware. | ||
The minimum required QEMU version is [8.1](https://gitlab.com/qemu-project/qemu/-/tags), the minimum required GCC version is [GCC13](https://gcc.gnu.org/gcc-13/), the minimum required Binutils version is [2.40](https://ftp.gnu.org/gnu/binutils/). | ||
|
||
## Prepare (X86 Linux Environment) | ||
|
||
### Fedora39 and higher | ||
Install LoongArch64 cross compiler, LoongArch system QEMU. | ||
|
||
yum install gcc-loongarch64-linux-gnu | ||
yum install qemu-system-loongarch64 | ||
|
||
### Others X86 OS ENV | ||
#### Configure cross-tools | ||
|
||
**Download:** | ||
|
||
wget https://github.com/loongson/build-tools/releases/download/2023.08.08/x86_64-cross-tools-loongarch64-binutils_2.41-gcc_13.2.0.tar.xz | ||
|
||
**Configure the cross-tools environment:** | ||
|
||
mkdir /opt/loongarch64_cross-toolchain/ | ||
tar -vxf x86_64-cross-tools-loongarch64-binutils_2.41-gcc_13.2.0.tar.xz -C /opt/loongarch64_cross-toolchain/ | ||
export PATH=/opt/loongarch64_cross-toolchain/cross-tools/bin:$PATH | ||
|
||
Note: Please obtain [the latest cross-compilation](https://github.com/loongson/build-tools) toolchains. | ||
|
||
#### Build QEMU | ||
|
||
git clone https://gitlab.com/qemu-project/qemu.git | ||
|
||
Note: Please refer to QEMU compilation rules, located in qemu/doc/system/loongarch/virt.rst. | ||
|
||
|
||
## Build LoongArch QEMU virtual machine firmware | ||
#### Get edk2 resouces | ||
|
||
git clone --recurse-submodule https://github.com/tianocore/edk2.git | ||
|
||
#### Building LoongArch QEMU virt FW with GCC | ||
|
||
export WORKSPACE=`pwd` | ||
export GCC5_LOONGARCH64_PREFIX=loongarch64-unknown-linux-gnu- | ||
export PACKAGES_PATH=$WORKSPACE/edk2 | ||
export EDK_TOOLS_PATH=$WORKSPACE/edk2/BaseTools | ||
source edk2/edksetup.sh --reconfig | ||
make -C edk2/BaseTools | ||
source edk2/edksetup.sh BaseTools | ||
build -b RELEASE -t GCC5 -a LOONGARCH64 -p OvmfPkg/LoongArchVirt/LoongArchVirtQemu.dsc | ||
|
||
## Test LoongArch QEMU virtual machine firmware | ||
qemu-system-loongarch64 \ | ||
-m 4G \ | ||
-M virt \ | ||
-smp 2 \ | ||
-cpu la464 \ | ||
-bios Build/LoongArchVirtQemu/RELEASE_GCC5/FV/QEMU_EFI.fd \ | ||
-serial stdio | ||
|
||
## Test LoongArch QEMU virtual machine OS | ||
|
||
* Download ArchLinux QCOW [images](https://mirrors.pku.edu.cn/loongarch/archlinux/images) for LoongArch. | ||
|
||
* [Running LoongArch ArchLinux on virtual machine](https://mirrors.pku.edu.cn/loongarch/archlinux/images/README.html). | ||
|
||
* Download openEuler 22.03 LTS QCOW [images](https://mirrors.nju.edu.cn/openeuler/openEuler-22.03-LTS/virtual_machine_img/loongarch64/openEuler-22.03-LTS-LoongArch-loongarch64.qcow2.xz) for LoongArch. |