roms: Support compile the efi bios for loongarch
Added loongarch UEFI BIOS support to compiled scripts. UEFI code images require 16M alignment, flash images require 16M alignment, under the loongarch architecture.This is agreed upon when the firmware is loaded in QEMU under Loongarch. The naming of UEFI under loongarch refers to the x86 and arm naming methods, and the UEFI image names in x86 and arm are: edk2-i386-code.fd edk2-i386-vars.fd edk2-arm-code.fd edk2-arm-vars.fd So on loongarch, we named it: edk2-loongarch64-code.fd edk2-loongarch64-vars.fd Signed-off-by: Xianglai Li <lixianglai@loongson.cn> Message-ID: <20240724022245.1317884-1-lixianglai@loongson.cn> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
065e2ecf79
commit
b883fb93db
@ -64,7 +64,7 @@ Note: You need get the latest cross-tools at https://github.com/loongson/build-t
|
||||
|
||||
(3) Build BIOS:
|
||||
|
||||
See: https://github.com/tianocore/edk2-platforms/tree/master/Platform/Loongson/LoongArchQemuPkg#readme
|
||||
See: https://github.com/tianocore/edk2/tree/master/OvmfPkg/LoongArchVirt#readme
|
||||
|
||||
Note: To build the release version of the bios, set --buildtarget=RELEASE,
|
||||
the bios file path: Build/LoongArchQemu/RELEASE_GCC5/FV/QEMU_EFI.fd
|
||||
|
@ -93,7 +93,7 @@ else
|
||||
iasl = find_program(get_option('iasl'), required: true)
|
||||
endif
|
||||
|
||||
edk2_targets = [ 'arm-softmmu', 'aarch64-softmmu', 'i386-softmmu', 'x86_64-softmmu', 'riscv64-softmmu' ]
|
||||
edk2_targets = [ 'arm-softmmu', 'aarch64-softmmu', 'i386-softmmu', 'x86_64-softmmu', 'riscv64-softmmu', 'loongarch64-softmmu' ]
|
||||
unpack_edk2_blobs = false
|
||||
foreach target : edk2_targets
|
||||
if target in target_dirs
|
||||
|
31
pc-bios/descriptors/60-edk2-loongarch64.json
Normal file
31
pc-bios/descriptors/60-edk2-loongarch64.json
Normal file
@ -0,0 +1,31 @@
|
||||
{
|
||||
"description": "UEFI firmware for loongarch64",
|
||||
"interface-types": [
|
||||
"uefi"
|
||||
],
|
||||
"mapping": {
|
||||
"device": "flash",
|
||||
"executable": {
|
||||
"filename": "@DATADIR@/edk2-loongarch64-code.fd",
|
||||
"format": "raw"
|
||||
},
|
||||
"nvram-template": {
|
||||
"filename": "@DATADIR@/edk2-loongarch64-vars.fd",
|
||||
"format": "raw"
|
||||
}
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"architecture": "loongarch64",
|
||||
"machines": [
|
||||
"virt*"
|
||||
]
|
||||
}
|
||||
],
|
||||
"features": [
|
||||
|
||||
],
|
||||
"tags": [
|
||||
|
||||
]
|
||||
}
|
@ -5,7 +5,8 @@ if unpack_edk2_blobs and get_option('install_blobs')
|
||||
'60-edk2-aarch64.json',
|
||||
'60-edk2-arm.json',
|
||||
'60-edk2-i386.json',
|
||||
'60-edk2-x86_64.json'
|
||||
'60-edk2-x86_64.json',
|
||||
'60-edk2-loongarch64.json'
|
||||
]
|
||||
configure_file(input: files(f),
|
||||
output: f,
|
||||
|
@ -11,6 +11,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
|
||||
|
@ -131,3 +131,16 @@ cpy1 = FV/RISCV_VIRT_CODE.fd edk2-riscv-code.fd
|
||||
cpy2 = FV/RISCV_VIRT_VARS.fd edk2-riscv-vars.fd
|
||||
pad1 = edk2-riscv-code.fd 32m
|
||||
pad2 = edk2-riscv-vars.fd 32m
|
||||
|
||||
####################################################################################
|
||||
# LoongArch64
|
||||
|
||||
[build.loongarch64.qemu]
|
||||
conf = OvmfPkg/LoongArchVirt/LoongArchVirtQemu.dsc
|
||||
arch = LOONGARCH64
|
||||
plat = LoongArchVirtQemu
|
||||
dest = ../pc-bios
|
||||
cpy1 = FV/QEMU_EFI.fd edk2-loongarch64-code.fd
|
||||
pad1 = edk2-loongarch64-code.fd 16m
|
||||
cpy2 = FV/QEMU_VARS.fd edk2-loongarch64-vars.fd
|
||||
pad2 = edk2-loongarch64-vars.fd 16m
|
||||
|
Loading…
Reference in New Issue
Block a user