aboutsummaryrefslogtreecommitdiff
path: root/pc-bios
diff options
context:
space:
mode:
Diffstat (limited to 'pc-bios')
-rw-r--r--pc-bios/descriptors/meson.build2
-rw-r--r--pc-bios/keymaps/meson.build30
-rw-r--r--pc-bios/meson.build65
-rw-r--r--pc-bios/optionrom/Makefile10
-rw-r--r--pc-bios/s390-ccw/Makefile3
5 files changed, 90 insertions, 20 deletions
diff --git a/pc-bios/descriptors/meson.build b/pc-bios/descriptors/meson.build
index 7c715bace8..3798d32372 100644
--- a/pc-bios/descriptors/meson.build
+++ b/pc-bios/descriptors/meson.build
@@ -10,5 +10,5 @@ foreach f: [
output: f,
configuration: {'DATADIR': config_host['qemu_datadir']},
install: install_blobs,
- install_dir: config_host['qemu_datadir'] / 'firmware')
+ install_dir: qemu_datadir / 'firmware')
endforeach
diff --git a/pc-bios/keymaps/meson.build b/pc-bios/keymaps/meson.build
index b737c82230..2e2e0dfa3b 100644
--- a/pc-bios/keymaps/meson.build
+++ b/pc-bios/keymaps/meson.build
@@ -38,19 +38,29 @@ if meson.is_cross_build() or 'CONFIG_XKBCOMMON' not in config_host
else
native_qemu_keymap = qemu_keymap
endif
+
t = []
foreach km, args: keymaps
- t += custom_target(km,
- build_by_default: true,
- output: km,
- command: [native_qemu_keymap, '-f', '@OUTPUT@', args.split()],
- install_dir: config_host['qemu_datadir'] / 'keymaps')
+ if native_qemu_keymap.found()
+ # generate with qemu-kvm
+ t += custom_target(km,
+ build_by_default: true,
+ output: km,
+ command: [native_qemu_keymap, '-f', '@OUTPUT@', args.split()],
+ install_dir: qemu_datadir / 'keymaps')
+ else
+ # copy from source tree
+ t += custom_target(km,
+ build_by_default: true,
+ input: km,
+ output: km,
+ command: ['cp', '@INPUT@', '@OUTPUT@'],
+ install_dir: qemu_datadir / 'keymaps')
+ endif
endforeach
-if t.length() > 0
+
+if native_qemu_keymap.found()
alias_target('update-keymaps', t)
-else
- # install from the source tree
- install_data(keymaps.keys(), install_dir: config_host['qemu_datadir'] / 'keymaps')
endif
-install_data(['sl', 'sv'], install_dir: config_host['qemu_datadir'] / 'keymaps')
+install_data(['sl', 'sv'], install_dir: qemu_datadir / 'keymaps')
diff --git a/pc-bios/meson.build b/pc-bios/meson.build
index b6389f5148..8087e5c0a7 100644
--- a/pc-bios/meson.build
+++ b/pc-bios/meson.build
@@ -19,10 +19,73 @@ if 'DECOMPRESS_EDK2_BLOBS' in config_host
input: '@0@.bz2'.format(f),
capture: true,
install: install_blobs,
- install_dir: config_host['qemu_datadir'],
+ install_dir: qemu_datadir,
command: [ bzip2, '-dc', '@INPUT0@' ])
endforeach
endif
+blobs = files(
+ 'bios.bin',
+ 'bios-256k.bin',
+ 'bios-microvm.bin',
+ 'sgabios.bin',
+ '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',
+ 'bamboo.dtb',
+ 'canyonlands.dtb',
+ 'petalogix-s3adsp1800.dtb',
+ 'petalogix-ml605.dtb',
+ 'multiboot.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',
+ 'opensbi-riscv32-generic-fw_dynamic.bin',
+ 'opensbi-riscv64-generic-fw_dynamic.bin',
+ 'opensbi-riscv32-generic-fw_dynamic.elf',
+ 'opensbi-riscv64-generic-fw_dynamic.elf',
+)
+
+if install_blobs
+ install_data(blobs, install_dir: config_host['qemu_datadir'])
+endif
+
subdir('descriptors')
subdir('keymaps')
diff --git a/pc-bios/optionrom/Makefile b/pc-bios/optionrom/Makefile
index 51cb6ca9d8..084fc10f05 100644
--- a/pc-bios/optionrom/Makefile
+++ b/pc-bios/optionrom/Makefile
@@ -8,15 +8,12 @@ all: multiboot.bin linuxboot.bin linuxboot_dma.bin kvmvapic.bin pvh.bin
@true
include ../../config-host.mak
+CFLAGS = -O2 -g
quiet-command = $(if $(V),$1,$(if $(2),@printf " %-7s %s\n" $2 $3 && $1, @$1))
-cc-option = $(if $(shell $(CC) $1 -S -o /dev/null -xc /dev/null >/dev/null 2>&1 && echo OK), $1, $2)
+cc-option = $(if $(shell $(CC) $1 -c -o /dev/null -xc /dev/null >/dev/null 2>&1 && echo OK), $1, $2)
-# Compiling with no optimization creates ROMs that are too large
-ifeq ($(lastword $(filter -O%, -O0 $(CFLAGS))),-O0)
-override CFLAGS += -O2
-endif
-override CFLAGS += -march=i486
+override CFLAGS += -march=i486 -Wall
# Flags for dependency generation
override CPPFLAGS += -MMD -MP -MT $@ -MF $(@D)/$(*F).d
@@ -42,7 +39,6 @@ Wa = -Wa,
override ASFLAGS += -32
override CFLAGS += $(call cc-option, $(Wa)-32)
-
LD_I386_EMULATION ?= elf_i386
override LDFLAGS = -m $(LD_I386_EMULATION) -T $(SRC_DIR)/flat.lds
override LDFLAGS += $(LDFLAGS_NOPIE)
diff --git a/pc-bios/s390-ccw/Makefile b/pc-bios/s390-ccw/Makefile
index cc0f77baa6..3eb785048a 100644
--- a/pc-bios/s390-ccw/Makefile
+++ b/pc-bios/s390-ccw/Makefile
@@ -3,6 +3,7 @@ all: build-all
@true
include ../../config-host.mak
+CFLAGS = -O2 -g
quiet-command = $(if $(V),$1,$(if $(2),@printf " %-7s %s\n" $2 $3 && $1, @$1))
cc-option = $(if $(shell $(CC) $1 -S -o /dev/null -xc /dev/null > /dev/null \
@@ -28,7 +29,7 @@ QEMU_DGFLAGS = -MMD -MP -MT $@ -MF $(@D)/$(*F).d
OBJECTS = start.o main.o bootmap.o jump2ipl.o sclp.o menu.o \
virtio.o virtio-scsi.o virtio-blkdev.o libc.o cio.o dasd-ipl.o
-QEMU_CFLAGS := $(filter -W%, $(QEMU_CFLAGS))
+QEMU_CFLAGS := -Wall $(filter -W%, $(QEMU_CFLAGS))
QEMU_CFLAGS += -ffreestanding -fno-delete-null-pointer-checks -msoft-float
QEMU_CFLAGS += -march=z900 -fPIE -fno-strict-aliasing
QEMU_CFLAGS += -fno-asynchronous-unwind-tables