diff --git a/emulators/qemu.yml b/emulators/qemu.yml index b8bce138b..ebcf2f8ec 100644 --- a/emulators/qemu.yml +++ b/emulators/qemu.yml @@ -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)"