[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] roms: Support compile the efi bios for loongarch
From: |
bibo mao |
Subject: |
Re: [PATCH] roms: Support compile the efi bios for loongarch |
Date: |
Thu, 10 Aug 2023 17:58:35 +0800 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 |
Xianglai,
I reply inline.
在 2023/8/10 15:42, xianglai li 写道:
> 1.Add edk2-platform submodule
> 2.Added loongarch UEFI BIOS support to compiled scripts.
The description is somewhat too simple, it should be paragraph.
> 3.The cross-compilation toolchain on x86 can be obtained from the link below:
> https://github.com/loongson/build-tools/tree/2022.09.06
Fedora38 has LoongArch cross-compiler rpm package, maybe we do not need this.
>
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Cc: "Marc-André Lureau" <marcandre.lureau@redhat.com>
> Cc: "Daniel P. Berrangé" <berrange@redhat.com>
> Cc: Thomas Huth <thuth@redhat.com>
> Cc: "Philippe Mathieu-Daudé" <philmd@linaro.org>
> Cc: Gerd Hoffmann <kraxel@redhat.com>
> Cc: Xiaojuan Yang <yangxiaojuan@loongson.cn>
> Cc: Song Gao <gaosong@loongson.cn>
> Cc: Bibo Mao <maobibo@loongson.cn>
> Signed-off-by: xianglai li <lixianglai@loongson.cn>
> ---
> .gitmodules | 3 +++
> meson.build | 2 +-
> pc-bios/meson.build | 2 ++
> roms/edk2-build.config | 14 ++++++++++++++
> roms/edk2-build.py | 4 ++--
> roms/edk2-platforms | 1 +
> 6 files changed, 23 insertions(+), 3 deletions(-)
> create mode 160000 roms/edk2-platforms
>
> diff --git a/.gitmodules b/.gitmodules
> index 73cae4cd4d..0cb57123fa 100644
> --- a/.gitmodules
> +++ b/.gitmodules
> @@ -43,3 +43,6 @@
> [submodule "tests/lcitool/libvirt-ci"]
> path = tests/lcitool/libvirt-ci
> url = https://gitlab.com/libvirt/libvirt-ci.git
> +[submodule "roms/edk2-platforms"]
> + path = roms/edk2-platforms
> + url = https://github.com/tianocore/edk2-platforms.git
> diff --git a/meson.build b/meson.build
> index 98e68ef0b1..b398caf2ce 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -153,7 +153,7 @@ if targetos != 'darwin'
> modular_tcg = ['i386-softmmu', 'x86_64-softmmu']
> endif
>
> -edk2_targets = [ 'arm-softmmu', 'aarch64-softmmu', 'i386-softmmu',
> 'x86_64-softmmu' ]
> +edk2_targets = [ 'arm-softmmu', 'aarch64-softmmu', 'i386-softmmu',
> 'x86_64-softmmu', 'loongarch64-softmmu' ]
> unpack_edk2_blobs = false
> foreach target : edk2_targets
> if target in target_dirs
> diff --git a/pc-bios/meson.build b/pc-bios/meson.build
> index a7224ef469..fc73222b6c 100644
> --- a/pc-bios/meson.build
> +++ b/pc-bios/meson.build
> @@ -9,6 +9,8 @@ if unpack_edk2_blobs
> 'edk2-i386-vars.fd',
> 'edk2-x86_64-code.fd',
> 'edk2-x86_64-secure-code.fd',
> + 'edk2-loongarch64-code.fd',
> + 'edk2-loongarch64-vars.fd',
> ]
>
> foreach f : fds
> diff --git a/roms/edk2-build.config b/roms/edk2-build.config
> index 66ef9ffcb9..7960c4c2c5 100644
> --- a/roms/edk2-build.config
> +++ b/roms/edk2-build.config
> @@ -1,5 +1,6 @@
> [global]
> core = edk2
> +pkgs = edk2-platforms
>
>
> ####################################################################################
> # options
> @@ -122,3 +123,16 @@ plat = RiscVVirtQemu
> dest = ../pc-bios
> cpy1 = FV/RISCV_VIRT.fd edk2-riscv.fd
> pad1 = edk2-riscv.fd 32m
> +
> +####################################################################################
> +# LoongArch64
> +
> +[build.loongach64.qemu]
> +conf = Platform/Loongson/LoongArchQemuPkg/Loongson.dsc
> +arch = LOONGARCH64
> +plat = LoongArchQemu
> +dest = ../pc-bios
> +cpy1 = FV/QEMU_EFI.fd edk2-loongarch64-code.fd
> +pad1 = edk2-loongarch64-code.fd 4m
> +cpy2 = FV/QEMU_VARS.fd edk2-loongarch64-vars.fd
> +pad2 = edk2-loongarch64-vars.fd 16m
> diff --git a/roms/edk2-build.py b/roms/edk2-build.py
> index 870893f7c8..dbd641e51e 100755
> --- a/roms/edk2-build.py
> +++ b/roms/edk2-build.py
> @@ -269,8 +269,8 @@ def prepare_env(cfg):
> # for cross builds
> if binary_exists('arm-linux-gnu-gcc'):
> os.environ['GCC5_ARM_PREFIX'] = 'arm-linux-gnu-'
> - if binary_exists('loongarch64-linux-gnu-gcc'):
> - os.environ['GCC5_LOONGARCH64_PREFIX'] = 'loongarch64-linux-gnu-'
> + if binary_exists('loongarch64-unknown-linux-gnu-gcc'):
> + os.environ['GCC5_LOONGARCH64_PREFIX'] =
> 'loongarch64-unknown-linux-gnu-'
I think loongarch64-unknown-linux- is not necessary here, loongarch64-linux-gnu-
is default prefix on Fedora38, else there will be too many prefix names :)
Regards
Bibo Mao
>
> hostarch = os.uname().machine
> if binary_exists('aarch64-linux-gnu-gcc') and hostarch != 'aarch64':
> diff --git a/roms/edk2-platforms b/roms/edk2-platforms
> new file mode 160000
> index 0000000000..84ccada592
> --- /dev/null
> +++ b/roms/edk2-platforms
> @@ -0,0 +1 @@
> +Subproject commit 84ccada59257a8151a592a416017fbb03b8ed3cf