fix: read QEMU firmware from its loaders

Entries that cited only pc-bios/meson.build now cite the code that opens them.

bios-256k.bin is the firmware of the pc and q35 machines (pc_piix.c:466, pc_q35.c:349) and pc is the machine the core starts for an .iso, so it is required, and a missing image exits in x86_bios_rom_init. bios.bin is read only by the ISA PC or when the firmware option is cleared, so it is optional. qboot.rom is microvm's firmware with ACPI off. The pxe-*.rom images and efi-eepro100.rom are read through a romfile= option, the EDK2 code images through -bios.

The three EDK2 variable store templates and vof-nvram.bin are removed: no code resolves them through the data directory, a pflash drive is opened by path and the core runs from the content folder (ui/libretro.c:697).
This commit is contained in:
Abdessamad Derraz committed 2026-11-10 13:34:25 +01:00
1 parent 26c71d03dc
commit 6cbfca1197
1 file changed
+36 -64
+36 -64
View File
@@ -39,11 +39,11 @@ files:
sha1: "f402170ee4f374c304a7ce0b139d6cecb1732aff"
md5: "e9ca30100c47a26b66488444c5b0bd15"
size: 131072
required: true
required: false
note: >
SeaBIOS legacy BIOS for x86/x86_64 PC emulation. Default firmware
loaded by pc_sysfw.c for standard PC machine types.
source_ref: "source hw/i386/pc_sysfw.c:222, 243"
SeaBIOS for the ISA PC machine, and for a PC machine whose firmware
option is cleared. The pc and q35 machines load bios-256k.bin.
source_ref: "source hw/i386/pc_sysfw.c:222, 243, source hw/i386/x86-common.c:993-994"
- name: "SeaBIOS (256 KB)"
installed_on: [retrodeck]
@@ -51,11 +51,12 @@ files:
sha1: "5fe6078506094333106e6b3f33c7185dea7f0268"
md5: "d3dab3095c73cad67afd3cc16a88479c"
size: 262144
required: false
required: true
note: >
SeaBIOS 256 KB variant. Some machine types or configurations
may prefer this larger image.
source_ref: "source pc-bios/meson.build:30"
Firmware of the pc and q35 machines, set by their default machine
options. pc is the default machine the core starts for an .iso,
.img or .qcow, and a missing image stops QEMU.
source_ref: "source pc-bios/meson.build:30, source ui/libretro.c:24-29, 734, source hw/i386/pc_piix.c:466, 486, source hw/i386/pc_q35.c:349, source hw/i386/x86-common.c:993-1003, 1043-1045"
- name: "SeaBIOS microvm"
installed_on: [retrodeck]
@@ -76,8 +77,8 @@ files:
md5: "387c48aef9497c6c2b914b1e6b9bc7aa"
size: 16384
required: false
note: "Minimal x86 firmware for fast Linux kernel booting."
source_ref: "source pc-bios/meson.build:32"
note: "Firmware of the microvm machine when ACPI is off."
source_ref: "source pc-bios/meson.build:32, source hw/i386/microvm.c:57, 277-281, source hw/i386/x86-common.c:993-994"
# ========================================================
# x86 VGA BIOS (SeaVGABIOS / LGPL VGA BIOS)
@@ -248,7 +249,7 @@ files:
size: 67072
required: false
note: "iPXE PXE boot ROM for Intel e1000 NIC (8086:100e)."
source_ref: "source pc-bios/meson.build:47"
source_ref: "source pc-bios/meson.build:47, source hw/pci/pci.c:2362-2363"
- name: "PXE eepro100"
installed_on: [retrodeck]
@@ -268,7 +269,7 @@ files:
size: 61440
required: false
note: "iPXE PXE boot ROM for NE2000 PCI NIC (1050:0940)."
source_ref: "source pc-bios/meson.build:49"
source_ref: "source pc-bios/meson.build:49, source hw/pci/pci.c:2362-2363"
- name: "PXE pcnet"
installed_on: [retrodeck]
@@ -278,7 +279,7 @@ files:
size: 61440
required: false
note: "iPXE PXE boot ROM for AMD PCnet NIC (1022:2000)."
source_ref: "source pc-bios/meson.build:50"
source_ref: "source pc-bios/meson.build:50, source hw/pci/pci.c:2362-2363"
- name: "PXE rtl8139"
installed_on: [retrodeck]
@@ -288,7 +289,7 @@ files:
size: 61440
required: false
note: "iPXE PXE boot ROM for Realtek RTL8139 NIC (10ec:8139)."
source_ref: "source pc-bios/meson.build:51"
source_ref: "source pc-bios/meson.build:51, source hw/pci/pci.c:2362-2363"
- name: "PXE virtio"
installed_on: [retrodeck]
@@ -298,7 +299,7 @@ files:
size: 60416
required: false
note: "iPXE PXE boot ROM for VirtIO NIC (1af4:1000)."
source_ref: "source pc-bios/meson.build:52"
source_ref: "source pc-bios/meson.build:52, source hw/pci/pci.c:2362-2363"
# ========================================================
# EFI NETWORK BOOT ROMs (iPXE UEFI)
@@ -331,7 +332,7 @@ files:
size: 159232
required: false
note: "iPXE EFI boot ROM for Intel eepro100 NIC."
source_ref: "source pc-bios/meson.build:54"
source_ref: "source pc-bios/meson.build:54, source hw/pci/pci.c:2362-2363"
- name: "EFI ne2k_pci"
installed_on: [retrodeck]
@@ -392,7 +393,7 @@ files:
size: 3653632
required: false
note: "TianoCore UEFI firmware for x86_64. Built from edk2-stable202302."
source_ref: "source pc-bios/meson.build:12"
source_ref: "source pc-bios/meson.build:12, source hw/i386/x86-common.c:993-994"
- name: "EDK2 x86_64 Secure Boot UEFI"
path: "qemu/edk2-x86_64-secure-code.fd"
@@ -400,7 +401,7 @@ files:
size: 3653632
required: false
note: "TianoCore UEFI firmware for x86_64 with Secure Boot support."
source_ref: "source pc-bios/meson.build:13"
source_ref: "source pc-bios/meson.build:13, source hw/i386/x86-common.c:993-994"
- name: "EDK2 i386 UEFI"
path: "qemu/edk2-i386-code.fd"
@@ -408,7 +409,7 @@ files:
size: 3653632
required: false
note: "TianoCore UEFI firmware for i386."
source_ref: "source pc-bios/meson.build:9"
source_ref: "source pc-bios/meson.build:9, source hw/i386/x86-common.c:993-994"
- name: "EDK2 i386 Secure Boot UEFI"
path: "qemu/edk2-i386-secure-code.fd"
@@ -416,15 +417,7 @@ files:
size: 3653632
required: false
note: "TianoCore UEFI firmware for i386 with Secure Boot support."
source_ref: "source pc-bios/meson.build:10"
- name: "EDK2 i386 UEFI vars template"
path: "qemu/edk2-i386-vars.fd"
sha1: "b62e676c9317a32aaa9ee1d76268d8c55663bd6e"
size: 540672
required: false
note: "UEFI variable store template for i386/x86_64 EDK2 firmware."
source_ref: "source pc-bios/meson.build:11"
source_ref: "source pc-bios/meson.build:10, source hw/i386/x86-common.c:993-994"
- name: "EDK2 AArch64 UEFI"
path: "qemu/edk2-aarch64-code.fd"
@@ -432,7 +425,7 @@ files:
size: 67108864
required: false
note: "TianoCore UEFI firmware for AArch64 (ARM 64-bit)."
source_ref: "source pc-bios/meson.build:4"
source_ref: "source pc-bios/meson.build:4, source hw/arm/virt.c:1331"
- name: "EDK2 ARM UEFI"
path: "qemu/edk2-arm-code.fd"
@@ -440,15 +433,7 @@ files:
size: 67108864
required: false
note: "TianoCore UEFI firmware for ARM (32-bit)."
source_ref: "source pc-bios/meson.build:5"
- name: "EDK2 ARM UEFI vars template"
path: "qemu/edk2-arm-vars.fd"
sha1: "b051167e0e57bd13d77ed92ef7b474872f44ec6d"
size: 67108864
required: false
note: "UEFI variable store template for ARM/AArch64 EDK2 firmware."
source_ref: "source pc-bios/meson.build:6"
source_ref: "source pc-bios/meson.build:5, source hw/arm/virt.c:1331"
- name: "EDK2 RISC-V UEFI"
path: "qemu/edk2-riscv-code.fd"
@@ -456,15 +441,7 @@ files:
size: 33554432
required: false
note: "TianoCore UEFI firmware for RISC-V 64-bit."
source_ref: "source pc-bios/meson.build:7"
- name: "EDK2 RISC-V UEFI vars template"
path: "qemu/edk2-riscv-vars.fd"
sha1: "c4e6cce4247ba8f32f528c1c69f49228f616677f"
size: 33554432
required: false
note: "UEFI variable store template for RISC-V EDK2 firmware."
source_ref: "source pc-bios/meson.build:8"
source_ref: "source pc-bios/meson.build:7, source hw/riscv/boot.c:89-92"
# ========================================================
# POWERPC FIRMWARE
@@ -507,15 +484,6 @@ files:
note: "Minimal Open Firmware shim for -machine pseries,x-vof=on. Also default for Pegasos II."
source_ref: "source hw/ppc/spapr.c:107, source hw/ppc/pegasos2.c:43"
- name: "VOF NVRAM"
installed_on: [retrodeck]
path: "qemu/vof-nvram.bin"
sha1: "5d1184609b87f78635f0575467a1c3f440900ff0"
size: 16384
required: false
note: "NVRAM template for VOF (Virtual Open Firmware)."
source_ref: "source pc-bios/meson.build:83"
- name: "U-Boot e500"
installed_on: [retrodeck]
path: "qemu/u-boot.e500"
@@ -532,7 +500,7 @@ files:
size: 524288
required: false
note: "U-Boot for Sam460ex (AmigaOne) PowerPC board."
source_ref: "source pc-bios/meson.build:74"
source_ref: "source pc-bios/meson.build:74, source hw/ppc/sam460ex.c:46, 120-126, source hw/core/loader.c:1078-1079"
- name: "QEMU VGA Mac driver"
installed_on: [retrodeck]
@@ -752,7 +720,7 @@ files:
size: 9882
required: false
note: "Device tree blob for Xilinx Petalogix ML605 MicroBlaze board. MicroBlaze target not built in libretro core."
source_ref: "source pc-bios/meson.build:91"
source_ref: "source pc-bios/meson.build:91, source hw/microblaze/petalogix_ml605_mmu.c:49, 209, source hw/microblaze/boot.c:133"
- name: "Petalogix S3ADSP1800 DTB (MicroBlaze)"
installed_on: [retrodeck]
@@ -761,7 +729,7 @@ files:
size: 8161
required: false
note: "Device tree blob for Xilinx Petalogix S3ADSP1800 MicroBlaze board. MicroBlaze target not built in libretro core."
source_ref: "source pc-bios/meson.build:90"
source_ref: "source pc-bios/meson.build:90, source hw/microblaze/petalogix_s3adsp1800_mmu.c:44, 129, source hw/microblaze/boot.c:133"
- name: "Virtex ML507 DTB (PPC)"
path: "qemu/virtex-ml507.dtb"
@@ -776,16 +744,20 @@ notes:
this path via qemu_add_data_dir() in ui/libretro.c:659-660.
default_usage: >
For typical x86/x86_64 usage (loading .iso/.img/.qcow files directly),
only bios.bin (or bios-256k.bin) and vgabios.bin are strictly needed.
Other VGA BIOS variants are loaded depending on the emulated GPU.
PXE/EFI ROMs are only needed for network booting.
the default pc machine needs bios-256k.bin and the VGA BIOS of its
display. Other VGA BIOS variants are loaded depending on the emulated GPU.
A NIC reads its default romfile. The pxe-*.rom images and efi-eepro100.rom
are read only when a romfile= option names them (hw/pci/pci.c:2362-2363).
multi_arch: >
The libretro build targets 17 architectures. Non-x86 firmware
is only needed when using .qemu_cmd_line files that invoke a different
qemu-system-* binary (e.g. qemu-system-ppc for MacOS 9).
edk2: >
EDK2 UEFI firmware is shipped as bz2-compressed blobs in pc-bios/. These
provide UEFI boot for x86, ARM, and RISC-V machine types. Users specify
them via -bios or pflash in .qemu_cmd_line files.
provide UEFI boot for x86, ARM, and RISC-V machine types. No machine
names them: a .qemu_cmd_line names a code image with -bios, which is
looked up in the data directory. pflash drives, the variable store
templates included, are opened by path from the content folder
(ui/libretro.c:697).
experimental: "This core is marked is_experimental=true in its .info file."
version: "Based on QEMU 9.0.50 (io12/qemu-libretro)"