qemu/pc-bios/meson.build
Xianglai Li b883fb93db 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>
2024-09-17 10:26:26 +02:00

115 lines
2.5 KiB
Meson

roms = []
if unpack_edk2_blobs
fds = [
'edk2-aarch64-code.fd',
'edk2-arm-code.fd',
'edk2-arm-vars.fd',
'edk2-riscv-code.fd',
'edk2-riscv-vars.fd',
'edk2-i386-code.fd',
'edk2-i386-secure-code.fd',
'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
roms += custom_target(f,
build_by_default: have_system,
output: f,
input: files('@0@.bz2'.format(f)),
capture: true,
install: get_option('install_blobs'),
install_dir: qemu_datadir,
command: [ bzip2, '-dc', '@INPUT0@' ])
endforeach
endif
blobs = [
'bios.bin',
'bios-256k.bin',
'bios-microvm.bin',
'qboot.rom',
'vgabios.bin',
'vgabios-cirrus.bin',
'vgabios-stdvga.bin',
'vgabios-vmware.bin',
'vgabios-qxl.bin',
'vgabios-virtio.bin',
'vgabios-ramfb.bin',
'vgabios-bochs-display.bin',
'vgabios-ati.bin',
'openbios-sparc32',
'openbios-sparc64',
'openbios-ppc',
'QEMU,tcx.bin',
'QEMU,cgthree.bin',
'pxe-e1000.rom',
'pxe-eepro100.rom',
'pxe-ne2k_pci.rom',
'pxe-pcnet.rom',
'pxe-rtl8139.rom',
'pxe-virtio.rom',
'efi-e1000.rom',
'efi-eepro100.rom',
'efi-ne2k_pci.rom',
'efi-pcnet.rom',
'efi-rtl8139.rom',
'efi-virtio.rom',
'efi-e1000e.rom',
'efi-vmxnet3.rom',
'qemu-nsis.bmp',
'multiboot.bin',
'multiboot_dma.bin',
'linuxboot.bin',
'linuxboot_dma.bin',
'kvmvapic.bin',
'pvh.bin',
's390-ccw.img',
's390-netboot.img',
'slof.bin',
'skiboot.lid',
'palcode-clipper',
'u-boot.e500',
'u-boot-sam460-20100605.bin',
'qemu_vga.ndrv',
'edk2-licenses.txt',
'hppa-firmware.img',
'hppa-firmware64.img',
'opensbi-riscv32-generic-fw_dynamic.bin',
'opensbi-riscv64-generic-fw_dynamic.bin',
'npcm7xx_bootrom.bin',
'vof.bin',
'vof-nvram.bin',
]
dtc = find_program('dtc', required: false)
foreach f : [
'bamboo.dts',
'canyonlands.dts',
'petalogix-s3adsp1800.dts',
'petalogix-ml605.dts',
]
out = fs.replace_suffix(f, '.dtb')
if dtc.found()
custom_target(f,
build_by_default: have_system,
input: files(f),
output: out,
install: get_option('install_blobs'),
install_dir: qemu_datadir,
command: [ dtc, '-I', 'dts', '-O', 'dtb', '-o', '@OUTPUT@', '@INPUT0@' ])
else
blobs += out
endif
endforeach
if get_option('install_blobs')
install_data(blobs, install_dir: qemu_datadir)
endif
subdir('descriptors')
subdir('keymaps')