diff --git a/50-seabios-256k.json b/50-seabios-256k.json new file mode 100644 index 0000000..5d86e42 --- /dev/null +++ b/50-seabios-256k.json @@ -0,0 +1,35 @@ +{ + "description": "SeaBIOS", + "interface-types": [ + "bios" + ], + "mapping": { + "device": "memory", + "filename": "/usr/share/qemu/bios-256k.bin" + }, + "targets": [ + { + "architecture": "i386", + "machines": [ + "pc-i440fx-*", + "pc-q35-*" + ] + }, + { + "architecture": "x86_64", + "machines": [ + "pc-i440fx-*", + "pc-q35-*" + ] + } + ], + "features": [ + "acpi-s3", + "acpi-s4" + ], + "tags": [ + "CONFIG_QEMU=y", + "CONFIG_ROM_SIZE=256", + "CONFIG_ATA_DMA=n" + ] +} diff --git a/60-seabios-128k.json b/60-seabios-128k.json new file mode 100644 index 0000000..77480e2 --- /dev/null +++ b/60-seabios-128k.json @@ -0,0 +1,47 @@ +{ + "description": "SeaBIOS", + "interface-types": [ + "bios" + ], + "mapping": { + "device": "memory", + "filename": "/usr/share/qemu/bios.bin" + }, + "targets": [ + { + "architecture": "i386", + "machines": [ + "pc-i440fx-*", + "pc-q35-*" + ] + }, + { + "architecture": "x86_64", + "machines": [ + "pc-i440fx-*", + "pc-q35-*" + ] + } + ], + "features": [ + "acpi-s3", + "acpi-s4" + ], + "tags": [ + "CONFIG_QEMU=y", + "CONFIG_ROM_SIZE=128", + "CONFIG_ATA_DMA=n", + "CONFIG_BOOTSPLASH=n", + "CONFIG_XEN=n", + "CONFIG_USB_OHCI=n", + "CONFIG_USB_XHCI=n", + "CONFIG_USB_UAS=n", + "CONFIG_SDCARD=n", + "CONFIG_TCGBIOS=n", + "CONFIG_MPT_SCSI=n", + "CONFIG_PVSCSI=n", + "CONFIG_NVME=n", + "CONFIG_USE_SMM=n", + "CONFIG_VGAHOOKS=n" + ] +} diff --git a/Conditionalize-ui-bitmap-installation-be.patch b/Conditionalize-ui-bitmap-installation-be.patch index a67baa3..1dbcbc9 100644 --- a/Conditionalize-ui-bitmap-installation-be.patch +++ b/Conditionalize-ui-bitmap-installation-be.patch @@ -8,10 +8,10 @@ Signed-off-by: Bruce Rogers 1 file changed, 2 insertions(+) diff --git a/Makefile b/Makefile -index 00ed716275743a161ea05e7d2a1e..ab4d8683ad8f86aa680b343310e1 100644 +index 52881cbb12e7d980e0ed51f21174..edc3de72e6a94ef0503da640bbfe 100644 --- a/Makefile +++ b/Makefile -@@ -887,6 +887,7 @@ ifneq ($(DESCS),) +@@ -913,6 +913,7 @@ ifneq ($(DESCS),) "$(DESTDIR)$(qemu_datadir)/firmware/$$x"; \ done endif @@ -19,7 +19,7 @@ index 00ed716275743a161ea05e7d2a1e..ab4d8683ad8f86aa680b343310e1 100644 for s in $(ICON_SIZES); do \ mkdir -p "$(DESTDIR)$(qemu_icondir)/hicolor/$${s}/apps"; \ $(INSTALL_DATA) $(SRC_PATH)/ui/icons/qemu_$${s}.png \ -@@ -901,6 +902,7 @@ endif +@@ -927,6 +928,7 @@ endif mkdir -p "$(DESTDIR)$(qemu_desktopdir)" $(INSTALL_DATA) $(SRC_PATH)/ui/qemu.desktop \ "$(DESTDIR)$(qemu_desktopdir)/qemu.desktop" diff --git a/Disable-Waddress-of-packed-member-for-GC.patch b/Disable-Waddress-of-packed-member-for-GC.patch deleted file mode 100644 index cb78fb1..0000000 --- a/Disable-Waddress-of-packed-member-for-GC.patch +++ /dev/null @@ -1,29 +0,0 @@ -From: Stewart Smith -Date: Tue, 18 Jun 2019 16:09:44 +1000 -Subject: Disable -Waddress-of-packed-member for GCC9 - -Git-commit: b904cb733750de1bb0e04e5012c391a9c3094d11 - -We throw a bunch of errors in errorlog code otherwise, which we should -fix, but we don't *have* to yet. - -Signed-off-by: Stewart Smith -Signed-off-by: Bruce Rogers ---- - Makefile.main | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/roms/skiboot/Makefile.main b/roms/skiboot/Makefile.main -index a8e34d16c4729921901871b3f9e3..91dc73e06903e8f10c6ad09c1db9 100644 ---- a/roms/skiboot/Makefile.main -+++ b/roms/skiboot/Makefile.main -@@ -120,7 +120,8 @@ endif - CFLAGS += $(call try-cflag,$(CC),-Wjump-misses-init) \ - $(call try-cflag,$(CC),-Wsuggest-attribute=const) \ - $(call try-cflag,$(CC),-Wsuggest-attribute=noreturn) \ -- $(call try-cflag,$(CC),-Wstack-usage=1024) -+ $(call try-cflag,$(CC),-Wstack-usage=1024) \ -+ $(call try-cflag,$(CC),-Wno-error=address-of-packed-member) - - CFLAGS += $(CWARNS) $(OPTS) $(DBG) - diff --git a/Enable-cross-compile-prefix-for-C-compil.patch b/Enable-cross-compile-prefix-for-C-compil.patch new file mode 100644 index 0000000..9c7d26d --- /dev/null +++ b/Enable-cross-compile-prefix-for-C-compil.patch @@ -0,0 +1,30 @@ +From: Bruce Rogers +Date: Fri, 1 Nov 2019 19:41:52 -0600 +Subject: Enable cross compile prefix for C compiler invocation + +Signed-off-by: Bruce Rogers +--- + Makefile | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/roms/qboot/Makefile b/roms/qboot/Makefile +index adbf1b319e4a7bee78e2f95c5e51..cdde20fc37b13a1877668cd20e2f 100644 +--- a/roms/qboot/Makefile ++++ b/roms/qboot/Makefile +@@ -1,3 +1,4 @@ ++CROSS_COMPILE ?= + obj-y = code16.o entry.o main.o string.o printf.o cstart.o fw_cfg.o + obj-y += linuxboot.o malloc.o tables.o hwsetup.o pci.o code32seg.o + obj-y += mptable.o +@@ -25,9 +26,9 @@ autodepend-flags = -MMD -MF .deps/cc-$(patsubst %/,%,$(dir $*))-$(notdir $*).d + + .PRECIOUS: %.o + %.o: %.c +- $(CC) $(CFLAGS) $(BIOS_CFLAGS) $($@-cflags) -c -s $< -o $@ ++ $(CROSS_COMPILE)$(CC) $(CFLAGS) $(BIOS_CFLAGS) $($@-cflags) -c -s $< -o $@ + %.o: %.S +- $(CC) $(CFLAGS) $(BIOS_CFLAGS) -c -s $< -o $@ ++ $(CROSS_COMPILE)$(CC) $(CFLAGS) $(BIOS_CFLAGS) -c -s $< -o $@ + + bios.bin.elf: $(obj-y) flat.lds + $(LD) -T flat.lds -o bios.bin.elf $(obj-y) diff --git a/Make-char-muxer-more-robust-wrt-small-FI.patch b/Make-char-muxer-more-robust-wrt-small-FI.patch index 6f8c21a..0ef1eac 100644 --- a/Make-char-muxer-more-robust-wrt-small-FI.patch +++ b/Make-char-muxer-more-robust-wrt-small-FI.patch @@ -108,7 +108,7 @@ index 572cefd517c8fa9d605cbd10fc21..6e80785bd9c12b85e747fa9f924e 100644 int mux_cnt; int term_got_escape; diff --git a/tests/test-char.c b/tests/test-char.c -index f9440cdcfdb51f98b2f6542e6f21..d1f99632de1acb95ba8e1b4a8584 100644 +index 45e42af290d4c55c0d8ed9358ef2..8e8c983dc0adce3dea739c9d85fc 100644 --- a/tests/test-char.c +++ b/tests/test-char.c @@ -1,3 +1,4 @@ diff --git a/Make-installed-scripts-explicitly-python.patch b/Make-installed-scripts-explicitly-python.patch index f020405..215e10c 100644 --- a/Make-installed-scripts-explicitly-python.patch +++ b/Make-installed-scripts-explicitly-python.patch @@ -23,7 +23,7 @@ index e527eb168e9ce7c3944094ec6701..fd376eac71f73e6366a9e17a1c51 100755 # Migration Stream Analyzer # diff --git a/scripts/vmstate-static-checker.py b/scripts/vmstate-static-checker.py -index d3467288dcc5dd2f7274576262f7..2046b1feddb4c225c8f3bee080ac 100755 +index f8b7b8f77252f2c03d6d7db9dc60..754159069dfae6838edaac14856f 100755 --- a/scripts/vmstate-static-checker.py +++ b/scripts/vmstate-static-checker.py @@ -1,4 +1,4 @@ diff --git a/PPC-KVM-Disable-mmu-notifier-check.patch b/PPC-KVM-Disable-mmu-notifier-check.patch index 302d522..308ed04 100644 --- a/PPC-KVM-Disable-mmu-notifier-check.patch +++ b/PPC-KVM-Disable-mmu-notifier-check.patch @@ -14,10 +14,10 @@ Signed-off-by: Bruce Rogers 1 file changed, 2 insertions(+) diff --git a/exec.c b/exec.c -index 3e78de3b8f8bb1914811a7965377..d2183f58816f53f15ef64e844291 100644 +index ffdb5185353bdbacc613d4730228..0d0c0618bb70f9747c71048f5cde 100644 --- a/exec.c +++ b/exec.c -@@ -2339,11 +2339,13 @@ RAMBlock *qemu_ram_alloc_from_fd(ram_addr_t size, MemoryRegion *mr, +@@ -2291,11 +2291,13 @@ RAMBlock *qemu_ram_alloc_from_fd(ram_addr_t size, MemoryRegion *mr, return NULL; } diff --git a/README.PACKAGING b/README.PACKAGING index eca4025..260c1a0 100644 --- a/README.PACKAGING +++ b/README.PACKAGING @@ -5,36 +5,32 @@ you make be acceptable to the package maintainers. The qemu.spec file is generated from a qemu.spec.in template, so to make changes to the spec file (besides the script generated patch references), you'll need to edit the template, not the spec file. The spec file patch references are inserted -by scripts, which are described below. +by a script as described below. If you are not modifying any patches or their order, but just need to update the spec file from a changed template, run 'bash ./update_git.sh refresh'. If the set of patches is being modified, including their order, you will want to first run 'bash ./update_git.sh pkg2git', which makes the current package patch -queue available in a local git branch named frombundle (see confi.sh for the +queue available in a local git branch named frombundle (see config.sh for the locations). This set of patches comes from a "bundle of git bundles", the bundles.tar.xz file, which is included as a package source file. You will then -create an altered patch queue in the $GIT_BRANCH branch ( again,see config.sh), -and use the frombundle branch as the starting point for your changes (eg perhaps -start by doing git reset --hard frombundle, then cherry-pick upstream patches -from there). Once you have the patch queue ready to go run 'bash ./update_git.sh -git2pkg' which updates the bunndles.tar.xz file, as well as the spec and patch -files. +create an altered patch queue in the branch which corresponds to this release +(eg: opensuse-4.2), using the frombundle branch as the starting point for your +changes (eg perhaps start by doing git reset --hard frombundle, then cherry-pick +upstream patches from there). Once you have the patch queue ready to go run +'bash ./update_git.sh git2pkg' which updates the bundles.tar.xz file, as well as +the spec and patch files. + +The maintainer and automation use another workflow mode dealing with packaging +the latest upstream qemu. See 'LATEST' references in the scripts for details. ** SPECIAL NOTE ABOUT CURRENT STATUS *** -The current status as of 03 Oct 2019 is that for this incarnation of qemu +The current status as of 31 Oct 2019 is that for this incarnation of qemu packaging, the previous workflow which relied on the patches being in a shared git repo on github or gitlab is no longer supported. This new bundle based workflos is still a work in progress. If it isn't working right, please contact Bruce Rogers . - -Also note that qemu now takes advantage of the MultiBuild feature of the Build -Service. No longer do the qemu-linux-user and qemu-testsuite packages have build -service links to the qemu package, but instead are generated straight from the -main qemu spec file via the use of a _multibuild file which identifies those -package variants. -- Bruce Rogers *** END SPECIAL NOTE *** Additional Notes: diff --git a/Raise-soft-address-space-limit-to-hard-l.patch b/Raise-soft-address-space-limit-to-hard-l.patch index 66a2509..aaaed51 100644 --- a/Raise-soft-address-space-limit-to-hard-l.patch +++ b/Raise-soft-address-space-limit-to-hard-l.patch @@ -16,26 +16,26 @@ Signed-off-by: Bruce Rogers 1 file changed, 12 insertions(+) diff --git a/vl.c b/vl.c -index b426b3213461210565bd1db15a0c..2b864f7dbe8b60ace40fa3258a37 100644 +index 6a65a64bfd647afcf539145f9cf9..57e68fdc4526b7156af155be933f 100644 --- a/vl.c +++ b/vl.c -@@ -30,6 +30,7 @@ - #include "qemu/cutils.h" - #include "qemu/help_option.h" +@@ -33,6 +33,7 @@ #include "qemu/uuid.h" + #include "sysemu/reset.h" + #include "sysemu/runstate.h" +#include #include "sysemu/seccomp.h" #include "sysemu/tcg.h" -@@ -2889,6 +2890,7 @@ int main(int argc, char **argv, char **envp) - bool list_data_dirs = false; +@@ -2861,6 +2862,7 @@ int main(int argc, char **argv, char **envp) char *dir, **dirs; BlockdevOptionsQueue bdo_queue = QSIMPLEQ_HEAD_INITIALIZER(bdo_queue); + QemuPluginList plugin_list = QTAILQ_HEAD_INITIALIZER(plugin_list); + struct rlimit rlimit_as; os_set_line_buffering(); -@@ -2900,6 +2902,16 @@ int main(int argc, char **argv, char **envp) +@@ -2872,6 +2874,16 @@ int main(int argc, char **argv, char **envp) qemu_mutex_lock_iothread(); diff --git a/Switch-order-of-libraries-for-mpath-supp.patch b/Switch-order-of-libraries-for-mpath-supp.patch index 1b16950..e102404 100644 --- a/Switch-order-of-libraries-for-mpath-supp.patch +++ b/Switch-order-of-libraries-for-mpath-supp.patch @@ -9,10 +9,10 @@ Signed-off-by: Bruce Rogers 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile -index 85862fb81a1d276c41133a31b2d9..00ed716275743a161ea05e7d2a1e 100644 +index b437a346d71a55d75f207f36e85b..52881cbb12e7d980e0ed51f21174 100644 --- a/Makefile +++ b/Makefile -@@ -556,7 +556,7 @@ fsdev/virtfs-proxy-helper$(EXESUF): LIBS += -lcap +@@ -579,7 +579,7 @@ fsdev/virtfs-proxy-helper$(EXESUF): LIBS += -lcap scsi/qemu-pr-helper$(EXESUF): scsi/qemu-pr-helper.o scsi/utils.o $(authz-obj-y) $(crypto-obj-y) $(io-obj-y) $(qom-obj-y) $(COMMON_LDADDS) ifdef CONFIG_MPATH @@ -22,10 +22,10 @@ index 85862fb81a1d276c41133a31b2d9..00ed716275743a161ea05e7d2a1e 100644 qemu-img-cmds.h: $(SRC_PATH)/qemu-img-cmds.hx $(SRC_PATH)/scripts/hxtool diff --git a/configure b/configure -index 714e7fb6a1fbd72ccdcd92b506ce..578d208b374261803d84c22c2479 100755 +index 6099be1d848c7f52ea02694d6d86..09a33aecfd6ef543eeee8c5023b6 100755 --- a/configure +++ b/configure -@@ -3781,7 +3781,7 @@ int main(void) { +@@ -3836,7 +3836,7 @@ int main(void) { return 0; } EOF diff --git a/acpi_piix4-Fix-migration-from-SLE11-SP2.patch b/acpi_piix4-Fix-migration-from-SLE11-SP2.patch index 1e37521..f4e361d 100644 --- a/acpi_piix4-Fix-migration-from-SLE11-SP2.patch +++ b/acpi_piix4-Fix-migration-from-SLE11-SP2.patch @@ -16,15 +16,15 @@ Signed-off-by: Andreas Färber 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c -index ec4e186cec7ccff739b7bad8dcc4..be5529867ab426b38b26dab5498a 100644 +index 93aec2dd2ce1767784076c3544b0..1f2a8ea850e9115b689af90bf708 100644 --- a/hw/acpi/piix4.c +++ b/hw/acpi/piix4.c -@@ -306,7 +306,7 @@ static bool piix4_vmstate_need_smbus(void *opaque, int version_id) +@@ -273,7 +273,7 @@ static bool piix4_vmstate_need_smbus(void *opaque, int version_id) static const VMStateDescription vmstate_acpi = { .name = "piix4_pm", .version_id = 3, - .minimum_version_id = 3, + .minimum_version_id = 2, /* qemu-kvm */ - .minimum_version_id_old = 1, - .load_state_old = acpi_load_old, .post_load = vmstate_acpi_post_load, + .fields = (VMStateField[]) { + VMSTATE_PCI_DEVICE(parent_obj, PIIX4PMState), diff --git a/ati-add-edid-support.patch b/ati-add-edid-support.patch deleted file mode 100644 index d38b5d5..0000000 --- a/ati-add-edid-support.patch +++ /dev/null @@ -1,159 +0,0 @@ -From: Gerd Hoffmann -Date: Mon, 18 Mar 2019 15:43:53 +0100 -Subject: ati: add edid support. - -Git-commit: 588eb12163b51c4d402383369456ce1cd1ec86ab - -Read EDID blob via i2c, store in VBE_edid. - -Signed-off-by: Gerd Hoffmann -Signed-off-by: Bruce Rogers ---- - vgasrc/atiext.c | 114 ++++++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 114 insertions(+) - -diff --git a/roms/seabios/vgasrc/atiext.c b/roms/seabios/vgasrc/atiext.c -index 0586279ce214fac7d2a7e6c87a94..8c9e6966db47f083646193d7faf6 100644 ---- a/roms/seabios/vgasrc/atiext.c -+++ b/roms/seabios/vgasrc/atiext.c -@@ -19,6 +19,8 @@ - #define MM_DATA 0x0004 - #define CRTC_GEN_CNTL 0x0050 - #define CRTC_EXT_CNTL 0x0054 -+#define GPIO_VGA_DDC 0x0060 -+#define GPIO_DVI_DDC 0x0064 - #define CRTC_H_TOTAL_DISP 0x0200 - #define CRTC_V_TOTAL_DISP 0x0208 - #define CRTC_OFFSET 0x0224 -@@ -106,6 +108,20 @@ static inline void ati_write(u32 reg, u32 val) - } - } - -+static inline u32 ati_read(u32 reg) -+{ -+ u32 io_addr = GET_GLOBAL(ati_io_addr); -+ u32 val; -+ -+ if (reg < 0x100) { -+ val = inl(io_addr + reg); -+ } else { -+ outl(reg, io_addr + MM_INDEX); -+ reg = inl(io_addr + MM_DATA); -+ } -+ return val; -+} -+ - static void ati_clear(u32 offset, u32 size) - { - u8 data[64]; -@@ -180,6 +196,97 @@ ati_set_mode(struct vgamode_s *vmode_g, int flags) - return stdvga_set_mode(vmode_g, flags); - } - -+/**************************************************************** -+ * edid -+ ****************************************************************/ -+ -+static void -+ati_i2c_set_scl_sda(int scl, int sda) -+{ -+ u32 data = 0; -+ -+ if (!scl) -+ data |= (1 << 17); -+ if (!sda) -+ data |= (1 << 16); -+ ati_write(GPIO_DVI_DDC, data); -+} -+ -+static int -+ati_i2c_get_sda(void) -+{ -+ u32 data = ati_read(GPIO_DVI_DDC); -+ -+ return data & (1 << 8) ? 1 : 0; -+} -+ -+static void ati_i2c_start(void) -+{ -+ ati_i2c_set_scl_sda(1, 1); -+ ati_i2c_set_scl_sda(1, 0); -+ ati_i2c_set_scl_sda(0, 0); -+} -+ -+static void ati_i2c_ack(void) -+{ -+ ati_i2c_set_scl_sda(0, 0); -+ ati_i2c_set_scl_sda(1, 0); -+ ati_i2c_set_scl_sda(0, 0); -+} -+ -+static void ati_i2c_stop(void) -+{ -+ ati_i2c_set_scl_sda(0, 0); -+ ati_i2c_set_scl_sda(1, 0); -+ ati_i2c_set_scl_sda(1, 1); -+} -+ -+static void ati_i2c_send_byte(u8 byte) -+{ -+ int i, bit; -+ -+ for (i = 0; i < 8; i++) { -+ bit = (1 << (7-i)) & byte ? 1 : 0; -+ ati_i2c_set_scl_sda(0, bit); -+ ati_i2c_set_scl_sda(1, bit); -+ ati_i2c_set_scl_sda(0, bit); -+ } -+} -+ -+static u8 ati_i2c_recv_byte(void) -+{ -+ u8 byte = 0; -+ int i, bit; -+ -+ for (i = 0; i < 8; i++) { -+ ati_i2c_set_scl_sda(0, 1); -+ ati_i2c_set_scl_sda(1, 1); -+ bit = ati_i2c_get_sda(); -+ ati_i2c_set_scl_sda(0, 1); -+ if (bit) -+ byte |= (1 << (7-i)); -+ } -+ -+ return byte; -+} -+ -+static void ati_i2c_edid(void) -+{ -+ u8 byte; -+ int i; -+ -+ dprintf(1, "ati: reading edid blob\n"); -+ ati_i2c_start(); -+ ati_i2c_send_byte(0x50 << 1 | 1); -+ ati_i2c_ack(); -+ for (i = 0; i < 128; i++) { -+ byte = ati_i2c_recv_byte(); -+ ati_i2c_ack(); -+ SET_VGA(VBE_edid[i], byte); -+ } -+ ati_i2c_stop(); -+} -+ - /**************************************************************** - * init - ****************************************************************/ -@@ -241,5 +348,12 @@ ati_setup(void) - } - } - -+ u16 device = pci_config_readw(bdf, PCI_DEVICE_ID); -+ switch (device) { -+ case 0x5159: -+ ati_i2c_edid(); -+ break; -+ } -+ - return 0; - } diff --git a/ati-vga-add-rage128-edid-support.patch b/ati-vga-add-rage128-edid-support.patch deleted file mode 100644 index 08f7446..0000000 --- a/ati-vga-add-rage128-edid-support.patch +++ /dev/null @@ -1,78 +0,0 @@ -From: Gerd Hoffmann -Date: Mon, 24 Jun 2019 13:35:46 +0200 -Subject: ati-vga: add rage128 edid support - -Git-commit: 020bc4fc5ce93107c8e1bc731b9802cee56a123e - -Signed-off-by: Gerd Hoffmann -Signed-off-by: Bruce Rogers ---- - vgasrc/atiext.c | 25 +++++++++++++++++++++++++ - 1 file changed, 25 insertions(+) - -diff --git a/roms/seabios/vgasrc/atiext.c b/roms/seabios/vgasrc/atiext.c -index 71dfa859a22dc569ed2fd1312c6b..69dfd46e550a8865734def85c62d 100644 ---- a/roms/seabios/vgasrc/atiext.c -+++ b/roms/seabios/vgasrc/atiext.c -@@ -21,6 +21,7 @@ - #define CRTC_EXT_CNTL 0x0054 - #define GPIO_VGA_DDC 0x0060 - #define GPIO_DVI_DDC 0x0064 -+#define GPIO_MONID 0x0068 - #define CRTC_H_TOTAL_DISP 0x0200 - #define CRTC_V_TOTAL_DISP 0x0208 - #define CRTC_OFFSET 0x0224 -@@ -47,6 +48,7 @@ static u32 ati_i2c_reg VAR16; - static u32 ati_i2c_bit_scl_out VAR16; - static u32 ati_i2c_bit_sda_out VAR16; - static u32 ati_i2c_bit_sda_in VAR16; -+static u32 ati_i2c_bit_enable VAR16 = -1; - - - int -@@ -208,8 +210,11 @@ ati_set_mode(struct vgamode_s *vmode_g, int flags) - static void - ati_i2c_set_scl_sda(int scl, int sda) - { -+ u32 enable = GET_GLOBAL(ati_i2c_bit_enable); - u32 data = 0; - -+ if (enable != -1) -+ data |= (1 << enable); - if (!scl) - data |= (1 << GET_GLOBAL(ati_i2c_bit_scl_out)); - if (!sda) -@@ -316,6 +321,23 @@ static void ati_i2c_edid_radeon(void) - dprintf(1, "ati: ... %s\n", valid ? "good" : "invalid"); - } - -+static void ati_i2c_edid_rage128(void) -+{ -+ int valid; -+ -+ SET_VGA(ati_i2c_bit_enable, 25); -+ SET_VGA(ati_i2c_bit_scl_out, 18); -+ SET_VGA(ati_i2c_bit_sda_out, 17); -+ SET_VGA(ati_i2c_bit_sda_in, 9); -+ SET_VGA(ati_i2c_reg, GPIO_MONID); -+ -+ dprintf(1, "ati: reading edid blob (rage128) ... \n"); -+ ati_i2c_edid(); -+ valid = (GET_GLOBAL(VBE_edid[0]) == 0x00 && -+ GET_GLOBAL(VBE_edid[1]) == 0xff); -+ dprintf(1, "ati: ... %s\n", valid ? "good" : "invalid"); -+} -+ - /**************************************************************** - * init - ****************************************************************/ -@@ -379,6 +401,9 @@ ati_setup(void) - - u16 device = pci_config_readw(bdf, PCI_DEVICE_ID); - switch (device) { -+ case 0x5046: -+ ati_i2c_edid_rage128(); -+ break; - case 0x5159: - ati_i2c_edid_radeon(); - break; diff --git a/ati-vga-fix-ati_read.patch b/ati-vga-fix-ati_read.patch deleted file mode 100644 index 953c5a6..0000000 --- a/ati-vga-fix-ati_read.patch +++ /dev/null @@ -1,28 +0,0 @@ -From: Gerd Hoffmann -Date: Mon, 24 Jun 2019 12:09:31 +0200 -Subject: ati-vga: fix ati_read() - -Git-commit: 136e2612bd48ef06562625f15259fbacf7bcf66f - -Cut & paste bug probably. Had no bad effect so far because the code -doesn't read registers larger than 0x100. - -Signed-off-by: Gerd Hoffmann -Signed-off-by: Bruce Rogers ---- - vgasrc/atiext.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/roms/seabios/vgasrc/atiext.c b/roms/seabios/vgasrc/atiext.c -index b3975226c47852c80ec4278b9a95..a24b980638a9562daaa37fe236b4 100644 ---- a/roms/seabios/vgasrc/atiext.c -+++ b/roms/seabios/vgasrc/atiext.c -@@ -117,7 +117,7 @@ static inline u32 ati_read(u32 reg) - val = inl(io_addr + reg); - } else { - outl(reg, io_addr + MM_INDEX); -- reg = inl(io_addr + MM_DATA); -+ val = inl(io_addr + MM_DATA); - } - return val; - } diff --git a/ati-vga-make-i2c-register-and-bits-confi.patch b/ati-vga-make-i2c-register-and-bits-confi.patch deleted file mode 100644 index ed21d54..0000000 --- a/ati-vga-make-i2c-register-and-bits-confi.patch +++ /dev/null @@ -1,95 +0,0 @@ -From: Gerd Hoffmann -Date: Mon, 24 Jun 2019 12:08:32 +0200 -Subject: ati-vga: make i2c register and bits configurable - -Git-commit: ae9a9796ec395e66ff0ed6d4484ea40ce85c0300 - -Prepare to support other ati cards. Also log access mode and whenever -we got a valid edid block. - -Signed-off-by: Gerd Hoffmann -Signed-off-by: Bruce Rogers ---- - vgasrc/atiext.c | 34 +++++++++++++++++++++++++++------- - 1 file changed, 27 insertions(+), 7 deletions(-) - -diff --git a/roms/seabios/vgasrc/atiext.c b/roms/seabios/vgasrc/atiext.c -index a24b980638a9562daaa37fe236b4..901e82d013837f54f4db292628d1 100644 ---- a/roms/seabios/vgasrc/atiext.c -+++ b/roms/seabios/vgasrc/atiext.c -@@ -43,6 +43,11 @@ - #define CRT_CRTC_ON 0x00008000 - - static u32 ati_io_addr VAR16 = 0; -+static u32 ati_i2c_reg VAR16; -+static u32 ati_i2c_bit_scl_out VAR16; -+static u32 ati_i2c_bit_sda_out VAR16; -+static u32 ati_i2c_bit_sda_in VAR16; -+ - - int - is_ati_mode(struct vgamode_s *vmode_g) -@@ -206,18 +211,18 @@ ati_i2c_set_scl_sda(int scl, int sda) - u32 data = 0; - - if (!scl) -- data |= (1 << 17); -+ data |= (1 << GET_GLOBAL(ati_i2c_bit_scl_out)); - if (!sda) -- data |= (1 << 16); -- ati_write(GPIO_DVI_DDC, data); -+ data |= (1 << GET_GLOBAL(ati_i2c_bit_sda_out)); -+ ati_write(GET_GLOBAL(ati_i2c_reg), data); - } - - static int - ati_i2c_get_sda(void) - { -- u32 data = ati_read(GPIO_DVI_DDC); -+ u32 data = ati_read(GET_GLOBAL(ati_i2c_reg)); - -- return data & (1 << 8) ? 1 : 0; -+ return data & (1 << GET_GLOBAL(ati_i2c_bit_sda_in)) ? 1 : 0; - } - - static void ati_i2c_start(void) -@@ -275,7 +280,6 @@ static void ati_i2c_edid(void) - u8 byte; - int i; - -- dprintf(1, "ati: reading edid blob\n"); - ati_i2c_start(); - ati_i2c_send_byte(0x50 << 1 | 1); - ati_i2c_ack(); -@@ -287,6 +291,22 @@ static void ati_i2c_edid(void) - ati_i2c_stop(); - } - -+static void ati_i2c_edid_radeon(void) -+{ -+ int valid; -+ -+ SET_VGA(ati_i2c_bit_scl_out, 17); -+ SET_VGA(ati_i2c_bit_sda_out, 16); -+ SET_VGA(ati_i2c_bit_sda_in, 8); -+ -+ dprintf(1, "ati: reading edid blob (radeon dvi) ... \n"); -+ SET_VGA(ati_i2c_reg, GPIO_DVI_DDC); -+ ati_i2c_edid(); -+ valid = (GET_GLOBAL(VBE_edid[0]) == 0x00 && -+ GET_GLOBAL(VBE_edid[1]) == 0xff); -+ dprintf(1, "ati: ... %s\n", valid ? "good" : "invalid"); -+} -+ - /**************************************************************** - * init - ****************************************************************/ -@@ -351,7 +371,7 @@ ati_setup(void) - u16 device = pci_config_readw(bdf, PCI_DEVICE_ID); - switch (device) { - case 0x5159: -- ati_i2c_edid(); -+ ati_i2c_edid_radeon(); - break; - } - diff --git a/ati-vga-make-less-verbose.patch b/ati-vga-make-less-verbose.patch deleted file mode 100644 index 059203a..0000000 --- a/ati-vga-make-less-verbose.patch +++ /dev/null @@ -1,27 +0,0 @@ -From: Gerd Hoffmann -Date: Mon, 24 Jun 2019 12:09:52 +0200 -Subject: ati-vga: make less verbose - -Git-commit: ce52a31f612e33df66ac3553d9633732e34a277b - -Reduce loglevel for mode line removals from 1 to 3. - -Signed-off-by: Gerd Hoffmann -Signed-off-by: Bruce Rogers ---- - vgasrc/atiext.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/roms/seabios/vgasrc/atiext.c b/roms/seabios/vgasrc/atiext.c -index 8c9e6966db47f083646193d7faf6..b3975226c47852c80ec4278b9a95 100644 ---- a/roms/seabios/vgasrc/atiext.c -+++ b/roms/seabios/vgasrc/atiext.c -@@ -343,7 +343,7 @@ ati_setup(void) - height > 0xfff || - mem > totalmem || - memmodel != MM_DIRECT) { -- dprintf(1, "ati: removing mode 0x%x\n", GET_GLOBAL(m->mode)); -+ dprintf(3, "ati: removing mode 0x%x\n", GET_GLOBAL(m->mode)); - SET_VGA(m->mode, 0xffff); - } - } diff --git a/ati-vga-try-vga-ddc-first.patch b/ati-vga-try-vga-ddc-first.patch deleted file mode 100644 index 099ef77..0000000 --- a/ati-vga-try-vga-ddc-first.patch +++ /dev/null @@ -1,35 +0,0 @@ -From: Gerd Hoffmann -Date: Mon, 24 Jun 2019 12:17:28 +0200 -Subject: ati-vga: try vga ddc first - -Git-commit: af573dceef7b9a45d13192ec5abf29b73c78540e - -Try vga ddc bus before dvi ddc bus. -Return early in case we got valid data. - -Signed-off-by: Gerd Hoffmann -Signed-off-by: Bruce Rogers ---- - vgasrc/atiext.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/roms/seabios/vgasrc/atiext.c b/roms/seabios/vgasrc/atiext.c -index 901e82d013837f54f4db292628d1..71dfa859a22dc569ed2fd1312c6b 100644 ---- a/roms/seabios/vgasrc/atiext.c -+++ b/roms/seabios/vgasrc/atiext.c -@@ -299,6 +299,15 @@ static void ati_i2c_edid_radeon(void) - SET_VGA(ati_i2c_bit_sda_out, 16); - SET_VGA(ati_i2c_bit_sda_in, 8); - -+ dprintf(1, "ati: reading edid blob (radeon vga) ... \n"); -+ SET_VGA(ati_i2c_reg, GPIO_VGA_DDC); -+ ati_i2c_edid(); -+ valid = (GET_GLOBAL(VBE_edid[0]) == 0x00 && -+ GET_GLOBAL(VBE_edid[1]) == 0xff); -+ dprintf(1, "ati: ... %s\n", valid ? "good" : "invalid"); -+ if (valid) -+ return; -+ - dprintf(1, "ati: reading edid blob (radeon dvi) ... \n"); - SET_VGA(ati_i2c_reg, GPIO_DVI_DDC); - ati_i2c_edid(); diff --git a/bundles.tar.xz b/bundles.tar.xz index fe211ab..63af1cf 100644 --- a/bundles.tar.xz +++ b/bundles.tar.xz @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e298b3bf15adb6636508ea8533f64bf155f5afd6da75078522d133bddb6e21f6 -size 37264 +oid sha256:c6bfd1cc60007363229f3ac8ed21c098ca30a8119ad90ba37a38b5594a277a6b +size 29340 diff --git a/config.sh b/config.sh index 0042873..e619826 100644 --- a/config.sh +++ b/config.sh @@ -7,7 +7,7 @@ # The following specifies the upstream tag or commit upon which our patchqueue # gets rebased. The special value LATEST may be used to "automatically" track # the upstream development tree in the master branch -GIT_UPSTREAM_COMMIT_ISH=v4.1.1 +GIT_UPSTREAM_COMMIT_ISH=LATEST # WARNING: If transitioning from using LATEST to not, MANUALLY re-set the # tarball present. If transitioning TO LATEST, make sure that # NEXT_RELEASE_IS_MAJOR is set correctly @@ -17,9 +17,9 @@ NEXT_RELEASE_IS_MAJOR=0 # Unfortunately, SeaBIOS doesn't always follow an "always increasing" version # model, so there may be times we should overide the automated version setting. # We can do so by specifing the value here: -# SEABIOS_VERSION=1.12.1+ +SEABIOS_VERSION=1.12.1+ -# The shared openSUSE specific git repo, on which $GIT_LOCAL_TREE is based +# The shared git repo, on which $GIT_LOCAL_TREE is based GIT_TREE=git://github.com/openSUSE/qemu.git # Temporary directories used by this script @@ -31,7 +31,7 @@ BUNDLE_DIR=/dev/shm/qemu-factory-bundle-dir NUMBERED_PATCHES=0 PATCH_RANGE=1000 -REPO_COUNT=26 +REPO_COUNT=27 # Perhaps we need to instead use the terminal local dirname as the index # and store the ~/git/ as a separate VARIABLE @@ -50,6 +50,7 @@ LOCAL_REPO_MAP=( ~/git/qemu-slirp ~/git/qemu-u-boot ~/git/qemu-openhackware + ~/git/qemu-qboot ~/git/qemu-dtc ~/git/qemu-opensbi ~/git/qemu-edk2-openssl @@ -79,6 +80,7 @@ PATCH_PATH_MAP=( "slirp/" "roms/u-boot/" "roms/openhackware/" + "roms/qboot/" "dtc/" "roms/opensbi/" "roms/edk2/CryptoPkg/Library/OpensslLib/openssl/" diff --git a/configure-only-populate-roms-if-softmmu.patch b/configure-only-populate-roms-if-softmmu.patch index 41fff5b..ad8753b 100644 --- a/configure-only-populate-roms-if-softmmu.patch +++ b/configure-only-populate-roms-if-softmmu.patch @@ -8,21 +8,14 @@ roms is being added to. Signed-off-by: Bruce Rogers --- - configure | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) + configure | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure b/configure -index 578d208b374261803d84c22c2479..6cfe739061d2d8fef6d89147fcd5 100755 +index 09a33aecfd6ef543eeee8c5023b6..94984691ab378620ac2e0ae771ca 100755 --- a/configure +++ b/configure -@@ -6211,12 +6211,13 @@ if { test "$cpu" = "i386" || test "$cpu" = "x86_64"; } && \ - fi - done - fi --if test "$ARCH" = "ppc64" && test "$targetos" != "Darwin" ; then -+if test "$ARCH" = "ppc64" && test "$targetos" != "Darwin" && \ -+ test "$softmmu" = yes ; then - roms="$roms spapr-rtas" +@@ -6327,7 +6327,7 @@ if { test "$cpu" = "i386" || test "$cpu" = "x86_64"; } && \ fi # Only build s390-ccw bios if we're on s390x and the compiler has -march=z900 diff --git a/enable-cross-compilation-on-ARM.patch b/enable-cross-compilation-on-ARM.patch index d47786d..038f0e3 100644 --- a/enable-cross-compilation-on-ARM.patch +++ b/enable-cross-compilation-on-ARM.patch @@ -8,7 +8,7 @@ Signed-off-by: Bruce Rogers 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roms/seabios/Makefile b/roms/seabios/Makefile -index bd34cfc2394a9103fec2e951bb67..7b8a5cd6b17254685df89798ed10 100644 +index ca8d0283922bbfa931e85511e921..d807c558ef0f09b5975f6ccc38f1 100644 --- a/roms/seabios/Makefile +++ b/roms/seabios/Makefile @@ -13,7 +13,7 @@ export CONFIG_SHELL := sh diff --git a/ensure-headers-included-are-compatible-w.patch b/ensure-headers-included-are-compatible-w.patch new file mode 100644 index 0000000..724b927 --- /dev/null +++ b/ensure-headers-included-are-compatible-w.patch @@ -0,0 +1,52 @@ +From: Bruce Rogers +Date: Fri, 1 Nov 2019 19:32:57 -0600 +Subject: ensure headers included are compatible with freestanding mode + +Certain standard headers are designated for use in freestanding mode +while others are prohibited. To conform to these rules, use +instead of as well as switch one reference to +the "string.h" implemented in project. + +Signed-off-by: Bruce Rogers +--- + include/bios.h | 2 +- + malloc.c | 2 +- + pci.c | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/roms/qboot/include/bios.h b/roms/qboot/include/bios.h +index f36638b977864c220bf3ed9a612f..7f8f677671d7b47e7c07f800646c 100644 +--- a/roms/qboot/include/bios.h ++++ b/roms/qboot/include/bios.h +@@ -1,7 +1,7 @@ + #ifndef BIOS_H_ + #define BIOS_H_ + +-#include ++#include + #include + #include + +diff --git a/roms/qboot/malloc.c b/roms/qboot/malloc.c +index 8738373b774358425b2767fc7e9f..bd0ac0f23ee1e3c4a8f5e003ff1d 100644 +--- a/roms/qboot/malloc.c ++++ b/roms/qboot/malloc.c +@@ -1,4 +1,4 @@ +-#include ++#include + #include "string.h" + #include "bios.h" + +diff --git a/roms/qboot/pci.c b/roms/qboot/pci.c +index 65c9e81793ab7aad9b5d1679e78e..63ebda6a0580463ea2b562317cec 100644 +--- a/roms/qboot/pci.c ++++ b/roms/qboot/pci.c +@@ -1,7 +1,7 @@ + #include "bios.h" + #include "ioport.h" + #include "pci.h" +-#include ++#include "string.h" + + static uint16_t addend; + static uint8_t bus, bridge_head; diff --git a/hdata-vpd-fix-printing-char-0x00.patch b/hdata-vpd-fix-printing-char-0x00.patch deleted file mode 100644 index c2d22a0..0000000 --- a/hdata-vpd-fix-printing-char-0x00.patch +++ /dev/null @@ -1,64 +0,0 @@ -From: Stewart Smith -Date: Tue, 18 Jun 2019 16:06:44 +1000 -Subject: hdata/vpd: fix printing (char*)0x00 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Git-commit: ba977f2e4406f9de318afcdf5d666e77585ef269 - -GCC9 now catches this bug: - -In file included from hdata/vpd.c:17: -In function ‘vpd_vini_parse’, - inlined from ‘vpd_data_parse’ at hdata/vpd.c:416:3: -/home/stewart/skiboot/include/skiboot.h:93:31: error: ‘%s’ directive argument is null [-Werror=format-overflow=] - 93 | #define prlog(l, f, ...) do { _prlog(l, pr_fmt(f), ##__VA_ARGS__); } while(0) - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -hdata/vpd.c:390:5: note: in expansion of macro ‘prlog’ - 390 | prlog(PR_WARNING, - | ^~~~~ -hdata/vpd.c: In function ‘vpd_data_parse’: -hdata/vpd.c:391:46: note: format string is defined here - 391 | "VPD: CCIN desc not available for: %s\n", - | ^~ -cc1: all warnings being treated as errors - -Signed-off-by: Stewart Smith -Signed-off-by: Bruce Rogers ---- - hdata/vpd.c | 9 +++++---- - 1 file changed, 5 insertions(+), 4 deletions(-) - -diff --git a/roms/skiboot/hdata/vpd.c b/roms/skiboot/hdata/vpd.c -index 129b5062356a48d900c6aa5a140d..5a01bcc9f6fa2faef2a118eca938 100644 ---- a/roms/skiboot/hdata/vpd.c -+++ b/roms/skiboot/hdata/vpd.c -@@ -328,6 +328,7 @@ static void vpd_vini_parse(struct dt_node *node, - const void *fruvpd, unsigned int fruvpd_sz) - { - const void *kw; -+ const char *desc; - uint8_t sz; - const struct card_info *cinfo; - -@@ -381,15 +382,15 @@ static void vpd_vini_parse(struct dt_node *node, - dt_add_property_string(node, - "description", cinfo->description); - } else { -- kw = vpd_find(fruvpd, fruvpd_sz, "VINI", "DR", &sz); -- if (kw) { -+ desc = vpd_find(fruvpd, fruvpd_sz, "VINI", "DR", &sz); -+ if (desc) { - dt_add_prop_sanitize_val(node, -- "description", kw, sz); -+ "description", desc, sz); - } else { - dt_add_property_string(node, "description", "Unknown"); - prlog(PR_WARNING, - "VPD: CCIN desc not available for: %s\n", -- (char *)kw); -+ (char*)kw); - } - } - } diff --git a/hw-intc-exynos4210_gic-provide-more-room.patch b/hw-intc-exynos4210_gic-provide-more-room.patch index 6ce8523..760b054 100644 --- a/hw-intc-exynos4210_gic-provide-more-room.patch +++ b/hw-intc-exynos4210_gic-provide-more-room.patch @@ -41,10 +41,10 @@ Signed-off-by: Bruce Rogers 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/intc/exynos4210_gic.c b/hw/intc/exynos4210_gic.c -index e37d457fcf3ae8f37ae3c4047161..640f146a50af42ccd03aa18786f2 100644 +index a1b699b6babc3105bfd4ad9a8383..17317c961caa9a09c476e9ecbd3f 100644 --- a/hw/intc/exynos4210_gic.c +++ b/hw/intc/exynos4210_gic.c -@@ -288,8 +288,8 @@ static void exynos4210_gic_realize(DeviceState *dev, Error **errp) +@@ -290,8 +290,8 @@ static void exynos4210_gic_realize(DeviceState *dev, Error **errp) SysBusDevice *sbd = SYS_BUS_DEVICE(obj); const char cpu_prefix[] = "exynos4210-gic-alias_cpu"; const char dist_prefix[] = "exynos4210-gic-alias_dist"; diff --git a/hw-smbios-handle-both-file-formats-regar.patch b/hw-smbios-handle-both-file-formats-regar.patch index dc9b261..bb18a7d 100644 --- a/hw-smbios-handle-both-file-formats-regar.patch +++ b/hw-smbios-handle-both-file-formats-regar.patch @@ -16,10 +16,10 @@ Signed-off-by: Bruce Rogers 1 file changed, 39 insertions(+), 4 deletions(-) diff --git a/hw/smbios/smbios.c b/hw/smbios/smbios.c -index 7bcd67b098e91a0e724b77b224c1..44e62c2a627195d71ac569e9de49 100644 +index 11d476c4a2cbdabc546c02b4f076..570ffa3acfa48b3721bdc578ee57 100644 --- a/hw/smbios/smbios.c +++ b/hw/smbios/smbios.c -@@ -965,6 +965,7 @@ void smbios_entry_add(QemuOpts *opts, Error **errp) +@@ -964,6 +964,7 @@ void smbios_entry_add(QemuOpts *opts, Error **errp) struct smbios_structure_header *header; int size; struct smbios_table *table; /* legacy mode only */ @@ -27,7 +27,7 @@ index 7bcd67b098e91a0e724b77b224c1..44e62c2a627195d71ac569e9de49 100644 qemu_opts_validate(opts, qemu_smbios_file_opts, &err); if (err) { -@@ -979,11 +980,21 @@ void smbios_entry_add(QemuOpts *opts, Error **errp) +@@ -978,11 +979,21 @@ void smbios_entry_add(QemuOpts *opts, Error **errp) } /* @@ -53,7 +53,7 @@ index 7bcd67b098e91a0e724b77b224c1..44e62c2a627195d71ac569e9de49 100644 header = (struct smbios_structure_header *)(smbios_tables + smbios_tables_len); -@@ -998,6 +1009,19 @@ void smbios_entry_add(QemuOpts *opts, Error **errp) +@@ -997,6 +1008,19 @@ void smbios_entry_add(QemuOpts *opts, Error **errp) header->type); return; } @@ -73,7 +73,7 @@ index 7bcd67b098e91a0e724b77b224c1..44e62c2a627195d71ac569e9de49 100644 set_bit(header->type, have_binfile_bitmap); if (header->type == 4) { -@@ -1018,6 +1042,17 @@ void smbios_entry_add(QemuOpts *opts, Error **errp) +@@ -1017,6 +1041,17 @@ void smbios_entry_add(QemuOpts *opts, Error **errp) * delete the one we don't need from smbios_set_defaults(), * once we know which machine version has been requested. */ diff --git a/hw-usb-dev-mtp-Fix-GCC-9-build-warning.patch b/hw-usb-dev-mtp-Fix-GCC-9-build-warning.patch index 8e90ffb..78ddf5d 100644 --- a/hw-usb-dev-mtp-Fix-GCC-9-build-warning.patch +++ b/hw-usb-dev-mtp-Fix-GCC-9-build-warning.patch @@ -17,10 +17,10 @@ Signed-off-by: Bruce Rogers 1 file changed, 13 insertions(+) diff --git a/hw/usb/dev-mtp.c b/hw/usb/dev-mtp.c -index fd1b3394a5b4b4827deece722e0c..8de503cc4d55423ae0bd070867c0 100644 +index 7c07295519d33d13fd3755ea7e0a..13815df4737ef8f46e6f857153b1 100644 --- a/hw/usb/dev-mtp.c +++ b/hw/usb/dev-mtp.c -@@ -1720,9 +1720,22 @@ static void usb_mtp_write_metadata(MTPState *s, uint64_t dlen) +@@ -1722,9 +1722,22 @@ static void usb_mtp_write_metadata(MTPState *s, uint64_t dlen) assert(!s->write_pending); assert(p != NULL); diff --git a/hw-usb-hcd-xhci-Fix-GCC-9-build-warning.patch b/hw-usb-hcd-xhci-Fix-GCC-9-build-warning.patch index a97b911..a7eac2c 100644 --- a/hw-usb-hcd-xhci-Fix-GCC-9-build-warning.patch +++ b/hw-usb-hcd-xhci-Fix-GCC-9-build-warning.patch @@ -28,10 +28,10 @@ Signed-off-by: Bruce Rogers 1 file changed, 1 insertion(+) diff --git a/hw/usb/hcd-xhci.c b/hw/usb/hcd-xhci.c -index 5894a186633414970fe748dbd9f4..47ea8dd3a5f6a09e361f0f59c7b9 100644 +index 80988bb305a149f2974d329576a0..00b59bee44f4780727ca0279ced5 100644 --- a/hw/usb/hcd-xhci.c +++ b/hw/usb/hcd-xhci.c -@@ -3324,6 +3324,7 @@ static void usb_xhci_init(XHCIState *xhci) +@@ -3330,6 +3330,7 @@ static void usb_xhci_init(XHCIState *xhci) usb_bus_new(&xhci->bus, sizeof(xhci->bus), &xhci_bus_ops, dev); for (i = 0; i < usbports; i++) { diff --git a/i8254-Fix-migration-from-SLE11-SP2.patch b/i8254-Fix-migration-from-SLE11-SP2.patch index 7f8f44a..06286d0 100644 --- a/i8254-Fix-migration-from-SLE11-SP2.patch +++ b/i8254-Fix-migration-from-SLE11-SP2.patch @@ -16,10 +16,10 @@ Signed-off-by: Andreas Färber 1 file changed, 7 insertions(+) diff --git a/hw/timer/i8254_common.c b/hw/timer/i8254_common.c -index 76ca6ec4446998f62d384a909814..fb9d5047f8c50df8ad0e662a42ac 100644 +index 050875b49738809ac586ba9ed259..59aa28b8a72590e7fdda0feecefe 100644 --- a/hw/timer/i8254_common.c +++ b/hw/timer/i8254_common.c -@@ -261,6 +261,12 @@ static int pit_dispatch_post_load(void *opaque, int version_id) +@@ -224,6 +224,12 @@ static int pit_dispatch_post_load(void *opaque, int version_id) return 0; } @@ -32,7 +32,7 @@ index 76ca6ec4446998f62d384a909814..fb9d5047f8c50df8ad0e662a42ac 100644 static const VMStateDescription vmstate_pit_common = { .name = "i8254", .version_id = 3, -@@ -270,6 +276,7 @@ static const VMStateDescription vmstate_pit_common = { +@@ -231,6 +237,7 @@ static const VMStateDescription vmstate_pit_common = { .pre_save = pit_dispatch_pre_save, .post_load = pit_dispatch_post_load, .fields = (VMStateField[]) { diff --git a/increase-x86_64-physical-bits-to-42.patch b/increase-x86_64-physical-bits-to-42.patch index d60827f..9609f30 100644 --- a/increase-x86_64-physical-bits-to-42.patch +++ b/increase-x86_64-physical-bits-to-42.patch @@ -18,10 +18,10 @@ Signed-off-by: Andreas Färber 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/i386/cpu.h b/target/i386/cpu.h -index 8b3dc5533e6994bf9066f88f1a5e..3440f1e4297940d8db2e533d5cb1 100644 +index cde2a16b941adeb1123d5d7411f3..39b9327a64d42bdace0d7346e038 100644 --- a/target/i386/cpu.h +++ b/target/i386/cpu.h -@@ -1713,7 +1713,7 @@ uint64_t cpu_get_tsc(CPUX86State *env); +@@ -1928,7 +1928,7 @@ uint64_t cpu_get_tsc(CPUX86State *env); /* XXX: This value should match the one returned by CPUID * and in exec.c */ # if defined(TARGET_X86_64) diff --git a/linux-user-Fake-proc-cpuinfo.patch b/linux-user-Fake-proc-cpuinfo.patch index da16445..5155876 100644 --- a/linux-user-Fake-proc-cpuinfo.patch +++ b/linux-user-Fake-proc-cpuinfo.patch @@ -21,10 +21,10 @@ Signed-off-by: Andreas Färber 1 file changed, 24 insertions(+) diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index cf5de07a09235e6d92735332dc7f..3bb2c8921fc203264bbc0a37fe1d 100644 +index 57be4c98555e50f2263811cd11f4..243ec2a1e3bde8e6b3ac48989554 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c -@@ -6958,6 +6958,27 @@ static int open_self_stat(void *cpu_env, int fd) +@@ -7068,6 +7068,27 @@ static int open_self_stat(void *cpu_env, int fd) return 0; } @@ -52,7 +52,7 @@ index cf5de07a09235e6d92735332dc7f..3bb2c8921fc203264bbc0a37fe1d 100644 static int open_self_auxv(void *cpu_env, int fd) { CPUState *cpu = env_cpu((CPUArchState *)cpu_env); -@@ -7100,6 +7121,9 @@ static int do_openat(void *cpu_env, int dirfd, const char *pathname, int flags, +@@ -7210,6 +7231,9 @@ static int do_openat(void *cpu_env, int dirfd, const char *pathname, int flags, #if defined(TARGET_SPARC) { "/proc/cpuinfo", open_cpuinfo, is_proc }, #endif diff --git a/linux-user-add-binfmt-wrapper-for-argv-0.patch b/linux-user-add-binfmt-wrapper-for-argv-0.patch index 09ab0a7..c05b021 100644 --- a/linux-user-add-binfmt-wrapper-for-argv-0.patch +++ b/linux-user-add-binfmt-wrapper-for-argv-0.patch @@ -35,12 +35,12 @@ Signed-off-by: Andreas Färber 3 files changed, 57 insertions(+) diff --git a/Makefile.target b/Makefile.target -index 933b27453a1dbb9273e0a9ff2d58..6e401da667fe4295acec4dc11302 100644 +index 24d79d26ebd00034bd97309fe5a7..1e9600834a25544063c313eba92a 100644 --- a/Makefile.target +++ b/Makefile.target -@@ -42,6 +42,10 @@ STPFILES= - # Makefile Tests - include $(SRC_PATH)/tests/tcg/Makefile.include +@@ -39,6 +39,10 @@ endif + PROGS=$(QEMU_PROG) $(QEMU_PROGW) + STPFILES= +ifdef CONFIG_LINUX_USER +PROGS+=$(QEMU_PROG)-binfmt @@ -49,7 +49,7 @@ index 933b27453a1dbb9273e0a9ff2d58..6e401da667fe4295acec4dc11302 100644 config-target.h: config-target.h-timestamp config-target.h-timestamp: config-target.mak -@@ -134,6 +138,8 @@ QEMU_CFLAGS+=-I$(SRC_PATH)/linux-user/$(TARGET_ABI_DIR) \ +@@ -133,6 +137,8 @@ QEMU_CFLAGS+=-I$(SRC_PATH)/linux-user/$(TARGET_ABI_DIR) \ obj-y += linux-user/ obj-y += gdbstub.o thunk.o @@ -58,7 +58,7 @@ index 933b27453a1dbb9273e0a9ff2d58..6e401da667fe4295acec4dc11302 100644 endif #CONFIG_LINUX_USER ######################################################### -@@ -175,7 +181,11 @@ generated-files-y += config-devices.h +@@ -174,7 +180,11 @@ generated-files-y += config-devices.h endif # CONFIG_SOFTMMU @@ -70,7 +70,7 @@ index 933b27453a1dbb9273e0a9ff2d58..6e401da667fe4295acec4dc11302 100644 all-obj-y := $(obj-y) include $(SRC_PATH)/Makefile.objs -@@ -212,6 +222,9 @@ ifdef CONFIG_DARWIN +@@ -211,6 +221,9 @@ ifdef CONFIG_DARWIN $(call quiet-command,SetFile -a C $@,"SETFILE","$(TARGET_DIR)$@") endif diff --git a/linux-user-lseek-explicitly-cast-non-set.patch b/linux-user-lseek-explicitly-cast-non-set.patch index b9d1997..4106bb8 100644 --- a/linux-user-lseek-explicitly-cast-non-set.patch +++ b/linux-user-lseek-explicitly-cast-non-set.patch @@ -15,10 +15,10 @@ Signed-off-by: Alexander Graf 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index 8aa653262154326beced64bbe782..5360786be3466c44554b373b4238 100644 +index 61d976cca146a6deb2d74c95ec59..926a7dd587b39d0615cbbb077ef2 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c -@@ -7619,8 +7619,13 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_ulong arg1, +@@ -7729,8 +7729,13 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_ulong arg1, return ret; #endif #ifdef TARGET_NR_lseek diff --git a/linux-user-properly-test-for-infinite-ti.patch b/linux-user-properly-test-for-infinite-ti.patch index 35503d3..499d5dd 100644 --- a/linux-user-properly-test-for-infinite-ti.patch +++ b/linux-user-properly-test-for-infinite-ti.patch @@ -15,10 +15,10 @@ Signed-off-by: Andreas Schwab 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index 5360786be3466c44554b373b4238..330fbecb120ebc9ebc1c0ec121f6 100644 +index 926a7dd587b39d0615cbbb077ef2..9330a1ec6a15f16e4f7fd0f825c2 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c -@@ -9646,7 +9646,7 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_ulong arg1, +@@ -9758,7 +9758,7 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_ulong arg1, { struct timespec ts, *pts; diff --git a/linux-user-use-target_ulong.patch b/linux-user-use-target_ulong.patch index 2e0fc1e..ebe069d 100644 --- a/linux-user-use-target_ulong.patch +++ b/linux-user-use-target_ulong.patch @@ -16,10 +16,10 @@ Signed-off-by: Alexander Graf 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/linux-user/qemu.h b/linux-user/qemu.h -index aac0334627003fbf375dfd4c88d0..abd0b4569699ff87d015c951e651 100644 +index f6f5fe5fbb553c151cb57146350c..b45b68221434e29636bb34c9f0b0 100644 --- a/linux-user/qemu.h +++ b/linux-user/qemu.h -@@ -207,10 +207,10 @@ abi_long memcpy_to_target(abi_ulong dest, const void *src, +@@ -206,10 +206,10 @@ abi_long memcpy_to_target(abi_ulong dest, const void *src, void target_set_brk(abi_ulong new_brk); abi_long do_brk(abi_ulong new_brk); void syscall_init(void); @@ -35,10 +35,10 @@ index aac0334627003fbf375dfd4c88d0..abd0b4569699ff87d015c951e651 100644 extern __thread CPUState *thread_cpu; void cpu_loop(CPUArchState *env); diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index 3bb2c8921fc203264bbc0a37fe1d..8aa653262154326beced64bbe782 100644 +index 243ec2a1e3bde8e6b3ac48989554..61d976cca146a6deb2d74c95ec59 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c -@@ -7264,10 +7264,10 @@ static int host_to_target_cpu_mask(const unsigned long *host_mask, +@@ -7374,10 +7374,10 @@ static int host_to_target_cpu_mask(const unsigned long *host_mask, * of syscall results, can be performed. * All errnos that do_syscall() returns must be -TARGET_. */ @@ -53,7 +53,7 @@ index 3bb2c8921fc203264bbc0a37fe1d..8aa653262154326beced64bbe782 100644 { CPUState *cpu = env_cpu(cpu_env); abi_long ret; -@@ -10013,7 +10013,7 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1, +@@ -10125,7 +10125,7 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1, */ ret = -TARGET_EINVAL; if (cpu_isar_feature(aa64_sve, env_archcpu(cpu_env)) @@ -62,7 +62,7 @@ index 3bb2c8921fc203264bbc0a37fe1d..8aa653262154326beced64bbe782 100644 CPUARMState *env = cpu_env; ARMCPU *cpu = env_archcpu(env); uint32_t vq, old_vq; -@@ -11993,10 +11993,10 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1, +@@ -12116,10 +12116,10 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1, return ret; } diff --git a/qemu-4.1.1.tar.xz b/qemu-4.1.1.tar.xz deleted file mode 100644 index 8f70a93..0000000 --- a/qemu-4.1.1.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ed6fdbbdd272611446ff8036991e9b9f04a2ab2e3ffa9e79f3bab0eb9a95a1d2 -size 61932460 diff --git a/qemu-4.1.1.tar.xz.sig b/qemu-4.1.1.tar.xz.sig deleted file mode 100644 index d724c8f..0000000 Binary files a/qemu-4.1.1.tar.xz.sig and /dev/null differ diff --git a/qemu-4.2.0-rc3.tar.xz b/qemu-4.2.0-rc3.tar.xz new file mode 100644 index 0000000..a747e1e --- /dev/null +++ b/qemu-4.2.0-rc3.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:253687e815ad57e1a61b6ed16251e7d275661a1507e065886cdbf24552150b69 +size 64784720 diff --git a/qemu-binfmt-conf-Modify-default-path.patch b/qemu-binfmt-conf-Modify-default-path.patch index 771be4d..d6c799b 100644 --- a/qemu-binfmt-conf-Modify-default-path.patch +++ b/qemu-binfmt-conf-Modify-default-path.patch @@ -13,10 +13,10 @@ Signed-off-by: Andreas Färber 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/qemu-binfmt-conf.sh b/scripts/qemu-binfmt-conf.sh -index b5a16742a149c0d2e08c6a34d08e..4f1358e2fd8c0da34cf06a763ca8 100755 +index 9f1580a91c7d3ad64120fe8ee66d..246546b10ca5df38035e5ba46a09 100755 --- a/scripts/qemu-binfmt-conf.sh +++ b/scripts/qemu-binfmt-conf.sh -@@ -319,7 +319,7 @@ BINFMT_SET=qemu_register_interpreter +@@ -323,7 +323,7 @@ BINFMT_SET=qemu_register_interpreter SYSTEMDDIR="/etc/binfmt.d" DEBIANDIR="/usr/share/binfmts" diff --git a/qemu-binfmt-conf-use-qemu-ARCH-binfmt.patch b/qemu-binfmt-conf-use-qemu-ARCH-binfmt.patch index d56150f..00d17eb 100644 --- a/qemu-binfmt-conf-use-qemu-ARCH-binfmt.patch +++ b/qemu-binfmt-conf-use-qemu-ARCH-binfmt.patch @@ -12,10 +12,10 @@ Signed-off-by: Andreas Färber 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/qemu-binfmt-conf.sh b/scripts/qemu-binfmt-conf.sh -index 4f1358e2fd8c0da34cf06a763ca8..13add7775eb7d24c52735b02cd51 100755 +index 246546b10ca5df38035e5ba46a09..e0666a3afdc81f0f8277a53f3e1e 100755 --- a/scripts/qemu-binfmt-conf.sh +++ b/scripts/qemu-binfmt-conf.sh -@@ -262,7 +262,7 @@ qemu_generate_register() { +@@ -266,7 +266,7 @@ qemu_generate_register() { flags="${flags}F" fi @@ -24,7 +24,7 @@ index 4f1358e2fd8c0da34cf06a763ca8..13add7775eb7d24c52735b02cd51 100755 } qemu_register_interpreter() { -@@ -301,9 +301,9 @@ qemu_set_binfmts() { +@@ -305,9 +305,9 @@ qemu_set_binfmts() { continue fi diff --git a/qemu-cvs-gettimeofday.patch b/qemu-cvs-gettimeofday.patch index ec559c0..0f2fea2 100644 --- a/qemu-cvs-gettimeofday.patch +++ b/qemu-cvs-gettimeofday.patch @@ -11,10 +11,10 @@ Signed-off-by: Bruce Rogers 1 file changed, 3 insertions(+) diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index 8367cb138dfe075e06ca455009cc..17914fadfc9f3390d4b8ab8d74a6 100644 +index 171c0caef3a191c861e76493ccfc..25b0f3bba38b8629cb4bc027be96 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c -@@ -8446,6 +8446,9 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1, +@@ -8558,6 +8558,9 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1, case TARGET_NR_gettimeofday: { struct timeval tv; diff --git a/qemu-cvs-ioctl_debug.patch b/qemu-cvs-ioctl_debug.patch index 3cd1bc9..d836d98 100644 --- a/qemu-cvs-ioctl_debug.patch +++ b/qemu-cvs-ioctl_debug.patch @@ -13,10 +13,10 @@ Signed-off-by: Bruce Rogers 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index 17914fadfc9f3390d4b8ab8d74a6..25fd641816c0a54e49a167f5e818 100644 +index 25b0f3bba38b8629cb4bc027be96..49db231f031015265f6d8cead831 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c -@@ -5043,7 +5043,19 @@ static abi_long do_ioctl(int fd, int cmd, abi_long arg) +@@ -5151,7 +5151,19 @@ static abi_long do_ioctl(int fd, int cmd, abi_long arg) ie = ioctl_entries; for(;;) { if (ie->target_cmd == 0) { diff --git a/qemu-cvs-ioctl_nodirection.patch b/qemu-cvs-ioctl_nodirection.patch index 7bc2051..ada3a73 100644 --- a/qemu-cvs-ioctl_nodirection.patch +++ b/qemu-cvs-ioctl_nodirection.patch @@ -16,10 +16,10 @@ Signed-off-by: Bruce Rogers 1 file changed, 8 insertions(+) diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index 25fd641816c0a54e49a167f5e818..cf5de07a09235e6d92735332dc7f 100644 +index 49db231f031015265f6d8cead831..57be4c98555e50f2263811cd11f4 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c -@@ -5084,6 +5084,13 @@ static abi_long do_ioctl(int fd, int cmd, abi_long arg) +@@ -5192,6 +5192,13 @@ static abi_long do_ioctl(int fd, int cmd, abi_long arg) arg_type++; target_size = thunk_type_size(arg_type, 0); switch(ie->access) { @@ -33,7 +33,7 @@ index 25fd641816c0a54e49a167f5e818..cf5de07a09235e6d92735332dc7f 100644 case IOC_R: ret = get_errno(safe_ioctl(fd, ie->host_cmd, buf_temp)); if (!is_error(ret)) { -@@ -5102,6 +5109,7 @@ static abi_long do_ioctl(int fd, int cmd, abi_long arg) +@@ -5210,6 +5217,7 @@ static abi_long do_ioctl(int fd, int cmd, abi_long arg) unlock_user(argptr, arg, 0); ret = get_errno(safe_ioctl(fd, ie->host_cmd, buf_temp)); break; diff --git a/qemu.changes b/qemu.changes index c6b000e..af3f4e6 100644 --- a/qemu.changes +++ b/qemu.changes @@ -1,3 +1,42 @@ +------------------------------------------------------------------- +Wed Nov 27 03:10:09 UTC 2019 - Bruce Rogers + +- Update to v4.2.0-rc3: See http://wiki.qemu.org/ChangeLog/4.2 +* Patches dropped (upstream unless otherwise noted): + ati-add-edid-support.patch + ati-vga-add-rage128-edid-support.patch + ati-vga-fix-ati_read.patch + ati-vga-make-i2c-register-and-bits-confi.patch + ati-vga-make-less-verbose.patch + ati-vga-try-vga-ddc-first.patch + Disable-Waddress-of-packed-member-for-GC.patch + hdata-vpd-fix-printing-char-0x00.patch + target-i386-add-PSCHANGE_NO-bit-for-the-.patch + target-i386-Export-TAA_NO-bit-to-guests.patch + vbe-add-edid-support.patch + vga-add-ati-bios-tables.patch + vga-add-atiext-driver.patch + vga-make-memcpy_high-public.patch + vga-move-modelist-from-bochsvga.c-to-new.patch +* Patches added: + Enable-cross-compile-prefix-for-C-compil.patch + ensure-headers-included-are-compatible-w.patch + roms-Makefile-enable-cross-compile-for-b.patch +* Add qemu-ui-spice-app package containing ui-spice-app.so +* Add qemu-microvm package containing bios-microvm.bin +- Add descriptors for the 128k and 256k SeaBios firmware images +- For the record, the following issues reported for SUSE SLE15-SP1 + are either fixed in this current package, or are otherwise not an + issue: bsc#1079730 bsc#1098403 bsc#1111025 bsc#1128106 bsc#1133031 + bsc#1134883 bsc#1135210 bsc#1135902 bsc#1136540 bsc#1136778 + bsc#1138534 bsc#1140402 bsc#1143794 bsc#1145379 bsc#1144087 + bsc#1145427 bsc#1145436 bsc#1145774 bsc#1146873 bsc#1149811 + bsc#1152506 bsc#1155812 bsc#1156642 CVE-2018-12207 CVE-2019-5008 + CVE-2019-11135 CVE-2019-12068 CVE-2019-12155 CVE-2019-13164 + CVE-2019-14378 CVE-2019-15890, and the following feature requests + are satisfied by this package: fate#327410 fate#327764 fate#327796 + jira-SLE-4883 jira-SLE-6132 jira-SLE-6237 jira-SLE-6754 + ------------------------------------------------------------------- Tue Nov 19 19:13:41 UTC 2019 - Bruce Rogers diff --git a/qemu.spec b/qemu.spec index 6597e92..5206b33 100644 --- a/qemu.spec +++ b/qemu.spec @@ -1,7 +1,7 @@ # # spec file for package qemu # -# Copyright (c) 2019 SUSE LLC. +# Copyright (c) 2019 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -87,9 +87,9 @@ %define summary_string Machine emulator and virtualizer %endif -%define qemuver 4.1.1 -%define srcver 4.1.1 -%define sbver 1.12.1 +%define qemuver 4.1.93 +%define srcver 4.2.0-rc3 +%define sbver 1.12.1+ %define srcname qemu Name: qemu%{name_suffix} URL: https://www.qemu.org/ @@ -99,7 +99,6 @@ Group: System/Emulators/PC Version: %qemuver Release: 0 Source: https://wiki.qemu.org/download/%{srcname}-%{srcver}.tar.xz -Source99: https://wiki.qemu.org/download/%{srcname}-%{srcver}.tar.xz.sig Source100: %{srcname}.keyring Source1: 80-kvm.rules Source2: kvm.conf @@ -114,6 +113,8 @@ Source10: supported.arm.txt Source11: supported.ppc.txt Source12: supported.x86.txt Source13: supported.s390.txt +Source14: 50-seabios-256k.json +Source15: 60-seabios-128k.json Source200: qemu-rpmlintrc Source300: bundles.tar.xz Source301: update_git.sh @@ -123,63 +124,51 @@ Source303: README.PACKAGING # This patch queue is auto-generated - see README.PACKAGING for process # Patches applied in base project: -Patch00000: target-i386-add-PSCHANGE_NO-bit-for-the-.patch -Patch00001: target-i386-Export-TAA_NO-bit-to-guests.patch -Patch00002: XXX-dont-dump-core-on-sigabort.patch -Patch00003: qemu-binfmt-conf-Modify-default-path.patch -Patch00004: qemu-cvs-gettimeofday.patch -Patch00005: qemu-cvs-ioctl_debug.patch -Patch00006: qemu-cvs-ioctl_nodirection.patch -Patch00007: linux-user-add-binfmt-wrapper-for-argv-0.patch -Patch00008: PPC-KVM-Disable-mmu-notifier-check.patch -Patch00009: linux-user-binfmt-support-host-binaries.patch -Patch00010: linux-user-Fake-proc-cpuinfo.patch -Patch00011: linux-user-use-target_ulong.patch -Patch00012: Make-char-muxer-more-robust-wrt-small-FI.patch -Patch00013: linux-user-lseek-explicitly-cast-non-set.patch -Patch00014: AIO-Reduce-number-of-threads-for-32bit-h.patch -Patch00015: xen_disk-Add-suse-specific-flush-disable.patch -Patch00016: qemu-bridge-helper-reduce-security-profi.patch -Patch00017: qemu-binfmt-conf-use-qemu-ARCH-binfmt.patch -Patch00018: linux-user-properly-test-for-infinite-ti.patch -Patch00019: roms-Makefile-pass-a-packaging-timestamp.patch -Patch00020: Raise-soft-address-space-limit-to-hard-l.patch -Patch00021: increase-x86_64-physical-bits-to-42.patch -Patch00022: vga-Raise-VRAM-to-16-MiB-for-pc-0.15-and.patch -Patch00023: i8254-Fix-migration-from-SLE11-SP2.patch -Patch00024: acpi_piix4-Fix-migration-from-SLE11-SP2.patch -Patch00025: Switch-order-of-libraries-for-mpath-supp.patch -Patch00026: Make-installed-scripts-explicitly-python.patch -Patch00027: hw-smbios-handle-both-file-formats-regar.patch -Patch00028: xen-add-block-resize-support-for-xen-dis.patch -Patch00029: tests-qemu-iotests-Triple-timeout-of-i-o.patch -Patch00030: tests-Fix-block-tests-to-be-compatible-w.patch -Patch00031: xen-ignore-live-parameter-from-xen-save-.patch -Patch00032: Conditionalize-ui-bitmap-installation-be.patch -Patch00033: tests-change-error-message-in-test-162.patch -Patch00034: hw-usb-hcd-xhci-Fix-GCC-9-build-warning.patch -Patch00035: hw-usb-dev-mtp-Fix-GCC-9-build-warning.patch -Patch00036: hw-intc-exynos4210_gic-provide-more-room.patch -Patch00037: configure-only-populate-roms-if-softmmu.patch -Patch00038: pc-bios-s390-ccw-net-avoid-warning-about.patch -Patch00039: roms-change-cross-compiler-naming-to-be-.patch -Patch00040: tests-Disable-some-block-tests-for-now.patch -Patch00041: test-add-mapping-from-arch-of-i686-to-qe.patch +Patch00000: XXX-dont-dump-core-on-sigabort.patch +Patch00001: qemu-binfmt-conf-Modify-default-path.patch +Patch00002: qemu-cvs-gettimeofday.patch +Patch00003: qemu-cvs-ioctl_debug.patch +Patch00004: qemu-cvs-ioctl_nodirection.patch +Patch00005: linux-user-add-binfmt-wrapper-for-argv-0.patch +Patch00006: PPC-KVM-Disable-mmu-notifier-check.patch +Patch00007: linux-user-binfmt-support-host-binaries.patch +Patch00008: linux-user-Fake-proc-cpuinfo.patch +Patch00009: linux-user-use-target_ulong.patch +Patch00010: Make-char-muxer-more-robust-wrt-small-FI.patch +Patch00011: linux-user-lseek-explicitly-cast-non-set.patch +Patch00012: AIO-Reduce-number-of-threads-for-32bit-h.patch +Patch00013: xen_disk-Add-suse-specific-flush-disable.patch +Patch00014: qemu-bridge-helper-reduce-security-profi.patch +Patch00015: qemu-binfmt-conf-use-qemu-ARCH-binfmt.patch +Patch00016: linux-user-properly-test-for-infinite-ti.patch +Patch00017: roms-Makefile-pass-a-packaging-timestamp.patch +Patch00018: Raise-soft-address-space-limit-to-hard-l.patch +Patch00019: increase-x86_64-physical-bits-to-42.patch +Patch00020: vga-Raise-VRAM-to-16-MiB-for-pc-0.15-and.patch +Patch00021: i8254-Fix-migration-from-SLE11-SP2.patch +Patch00022: acpi_piix4-Fix-migration-from-SLE11-SP2.patch +Patch00023: Switch-order-of-libraries-for-mpath-supp.patch +Patch00024: Make-installed-scripts-explicitly-python.patch +Patch00025: hw-smbios-handle-both-file-formats-regar.patch +Patch00026: xen-add-block-resize-support-for-xen-dis.patch +Patch00027: tests-qemu-iotests-Triple-timeout-of-i-o.patch +Patch00028: tests-Fix-block-tests-to-be-compatible-w.patch +Patch00029: xen-ignore-live-parameter-from-xen-save-.patch +Patch00030: Conditionalize-ui-bitmap-installation-be.patch +Patch00031: tests-change-error-message-in-test-162.patch +Patch00032: hw-usb-hcd-xhci-Fix-GCC-9-build-warning.patch +Patch00033: hw-usb-dev-mtp-Fix-GCC-9-build-warning.patch +Patch00034: hw-intc-exynos4210_gic-provide-more-room.patch +Patch00035: configure-only-populate-roms-if-softmmu.patch +Patch00036: pc-bios-s390-ccw-net-avoid-warning-about.patch +Patch00037: roms-change-cross-compiler-naming-to-be-.patch +Patch00038: tests-Disable-some-block-tests-for-now.patch +Patch00039: test-add-mapping-from-arch-of-i686-to-qe.patch +Patch00040: roms-Makefile-enable-cross-compile-for-b.patch # Patches applied in roms/seabios/: Patch01000: seabios-use-python2-explicitly-as-needed.patch Patch01001: seabios-switch-to-python3-as-needed.patch Patch01002: enable-cross-compilation-on-ARM.patch -Patch01003: vga-move-modelist-from-bochsvga.c-to-new.patch -Patch01004: vga-make-memcpy_high-public.patch -Patch01005: vga-add-atiext-driver.patch -Patch01006: vga-add-ati-bios-tables.patch -Patch01007: vbe-add-edid-support.patch -Patch01008: ati-add-edid-support.patch -Patch01009: ati-vga-make-less-verbose.patch -Patch01010: ati-vga-fix-ati_read.patch -Patch01011: ati-vga-make-i2c-register-and-bits-confi.patch -Patch01012: ati-vga-try-vga-ddc-first.patch -Patch01013: ati-vga-add-rage128-edid-support.patch # Patches applied in roms/ipxe/: Patch02000: stub-out-the-SAN-req-s-in-int13.patch Patch02001: ipxe-Makefile-fix-issues-of-build-reprod.patch @@ -189,11 +178,11 @@ Patch02004: Do-not-apply-WORKAROUND_CFLAGS-for-host-.patch # Patches applied in roms/sgabios/: Patch03000: sgabios-Makefile-fix-issues-of-build-rep.patch Patch03001: roms-sgabios-Fix-csum8-to-be-built-by-ho.patch -# Patches applied in roms/skiboot/: -Patch05000: Disable-Waddress-of-packed-member-for-GC.patch -Patch05001: hdata-vpd-fix-printing-char-0x00.patch # Patches applied in ui/keycodemapdb/: Patch08000: Make-keycode-gen-output-reproducible-use.patch +# Patches applied in roms/qboot/: +Patch12000: ensure-headers-included-are-compatible-w.patch +Patch12001: Enable-cross-compile-prefix-for-C-compil.patch # Please do not add patches manually here. @@ -259,35 +248,38 @@ BuildRequires: e2fsprogs-devel BuildRequires: fdupes BuildRequires: flex BuildRequires: gcc-c++ -BuildRequires: glib2-devel -%if 0%{?with_glusterfs} -BuildRequires: glusterfs-devel +BuildRequires: glib2-devel >= 2.48 +%if build_x86_firmware_from_source +BuildRequires: glibc-devel-32bit %endif -BuildRequires: gtk3-devel +%if 0%{?with_glusterfs} +BuildRequires: glusterfs-devel >= 3 +%endif +BuildRequires: gtk3-devel >= 3.16 BuildRequires: libaio-devel BuildRequires: libattr-devel BuildRequires: libbz2-devel %if 0%{?is_opensuse} -BuildRequires: libcacard-devel +BuildRequires: libcacard-devel >= 2.5.1 %endif BuildRequires: libcap-devel BuildRequires: libcap-ng-devel BuildRequires: libdrm-devel BuildRequires: libepoxy-devel -BuildRequires: libfdt-devel +BuildRequires: libfdt-devel >= 1.4.2 BuildRequires: libgbm-devel -BuildRequires: libgcrypt-devel -BuildRequires: libgnutls-devel -BuildRequires: libiscsi-devel +BuildRequires: libgcrypt-devel >= 1.5.0 +BuildRequires: libgnutls-devel >= 3.1.18 +BuildRequires: libiscsi-devel >= 1.9.0 BuildRequires: libjpeg-devel %if 0%{?is_opensuse} -BuildRequires: libnfs-devel +BuildRequires: libnfs-devel >= 1.9.3 %endif %ifnarch %arm s390x BuildRequires: libnuma-devel %endif BuildRequires: libpcap-devel -BuildRequires: libpixman-1-0-devel +BuildRequires: libpixman-1-0-devel >= 0.21.8 %ifarch x86_64 BuildRequires: libpmem-devel %endif @@ -300,11 +292,11 @@ BuildRequires: librbd-devel BuildRequires: libSDL2-devel BuildRequires: libSDL2_image-devel %endif -BuildRequires: libseccomp-devel -BuildRequires: libspice-server-devel -BuildRequires: libssh-devel +BuildRequires: libseccomp-devel >= 2.3.0 +BuildRequires: libspice-server-devel >= 0.12.5 +BuildRequires: libssh-devel >= 0.8 BuildRequires: libudev-devel -BuildRequires: libusb-1_0-devel +BuildRequires: libusb-1_0-devel >= 1.0.13 BuildRequires: libvdeplug-devel %if 0%{?is_opensuse} BuildRequires: lzfse-devel @@ -325,17 +317,17 @@ BuildRequires: python3-Sphinx BuildRequires: python3-base BuildRequires: rdma-core-devel BuildRequires: snappy-devel -BuildRequires: spice-protocol-devel +BuildRequires: spice-protocol-devel >= 0.12.3 BuildRequires: systemd %{?systemd_requires} %if %{kvm_available} BuildRequires: pkgconfig(udev) %endif -BuildRequires: usbredir-devel +BuildRequires: usbredir-devel >= 0.6 BuildRequires: virglrenderer-devel >= 0.4.1 BuildRequires: vte-devel %ifarch x86_64 -BuildRequires: xen-devel +BuildRequires: xen-devel >= 4.2 %endif BuildRequires: xfsprogs-devel %if %{build_x86_firmware_from_source} @@ -384,6 +376,7 @@ BuildRequires: qemu-ui-gtk = %{qemuver} %if 0%{?is_opensuse} BuildRequires: qemu-ui-sdl = %{qemuver} %endif +BuildRequires: qemu-ui-spice-app = %{qemuver} BuildRequires: qemu-vgabios = %{sbver} BuildRequires: qemu-x86 = %{qemuver} %endif @@ -404,6 +397,7 @@ Recommends: qemu-ui-gtk %if 0%{?is_opensuse} Recommends: qemu-ui-sdl %endif +Recommends: qemu-ui-spice-app Recommends: qemu-x86 %ifarch ppc ppc64 ppc64le Recommends: qemu-ppc @@ -437,6 +431,7 @@ Suggests: qemu-lang %if 0%{?is_opensuse} Recommends: qemu-ksm = %{qemuver} %endif +Suggests: qemu-microvm Suggests: qemu-vhost-user-gpu Provides: qemu-audio-oss = %{qemuver} Obsoletes: qemu-audio-oss < %{qemuver} @@ -462,6 +457,7 @@ Version: %{qemuver} Release: 0 Requires: %name = %{qemuver} Requires: qemu-ipxe +Requires: qemu-microvm Requires: qemu-seabios Requires: qemu-sgabios Requires: qemu-vgabios @@ -691,6 +687,16 @@ Release: 0 This package contains a module for doing SDL based UI for QEMU. %endif +%package ui-spice-app +Summary: Spice UI support for QEMU +Group: System/Emulators/PC +Version: %{qemuver} +Release: 0 +%{qemu_module_conflicts} + +%description ui-spice-app +This package contains a module for doing Spice based UI for QEMU. + %package audio-alsa Summary: ALSA based audio support for QEMU Group: System/Emulators/PC @@ -769,6 +775,17 @@ This package contains the QEMU guest agent. It is installed in the linux guest to provide information and control at the guest OS level. %ifarch %{build_rom_arch} +%package microvm +Summary: x86 MicroVM BIOS for QEMU +Group: System/Emulators/PC +Version: %{qemuver} +Release: 0 +BuildArch: noarch + +%description microvm +MicroVM (qboot) is a miniam x86 firmware for booting Linux kernel. +It provides the minimum resources needed to boot PVH and bzImages. + %package seabios Summary: x86 Legacy BIOS for QEMU Group: System/Emulators/PC @@ -895,21 +912,9 @@ This package provides a service file for starting and stopping KSM. %patch00038 -p1 %patch00039 -p1 %patch00040 -p1 -%patch00041 -p1 %patch01000 -p1 %patch01001 -p1 %patch01002 -p1 -%patch01003 -p1 -%patch01004 -p1 -%patch01005 -p1 -%patch01006 -p1 -%patch01007 -p1 -%patch01008 -p1 -%patch01009 -p1 -%patch01010 -p1 -%patch01011 -p1 -%patch01012 -p1 -%patch01013 -p1 %if 0%{?patch-possibly-applied-elsewhere} %patch02000 -p1 %endif @@ -921,9 +926,9 @@ This package provides a service file for starting and stopping KSM. %endif %patch03000 -p1 %patch03001 -p1 -%patch05000 -p1 -%patch05001 -p1 %patch08000 -p1 +%patch12000 -p1 +%patch12001 -p1 %if "%{name}" != "qemu-linux-user" # for the record, this set of firmware files is installed, but we don't @@ -935,19 +940,20 @@ This package provides a service file for starting and stopping KSM. # This first list group isn't specific to what this instance builds %define ppc_default_firmware {%nil} %define ppc_extra_firmware {skiboot.lid slof.bin} -%define ppc64_only_default_firmware {spapr-rtas.bin} +%define ppc64_only_default_firmware {%nil} %define ppc64_only_extra_firmware {%nil} -%define riscv64_default_firmware {opensbi-riscv64-sifive_u-fw_jump.bin opensbi-riscv64-virt-fw_jump.bin} +%define riscv64_default_firmware {opensbi-riscv64-sifive_u-fw_jump.bin \ +opensbi-riscv64-virt-fw_jump.bin} %define riscv64_extra_firmware {%nil} %define s390x_default_firmware {s390-ccw.img s390-netboot.img} %define s390x_extra_firmware {%nil} %define x86_default_firmware {linuxboot.bin linuxboot_dma.bin multiboot.bin \ kvmvapic.bin pvh.bin} -%define x86_extra_firmware {bios.bin bios-256k.bin pxe-e1000.rom \ -pxe-eepro100.rom pxe-ne2k_pci.rom pxe-pcnet.rom pxe-rtl8139.rom pxe-virtio.rom \ -sgabios.bin vgabios-ati.bin vgabios-bochs-display.bin vgabios.bin \ -vgabios-cirrus.bin vgabios-qxl.bin vgabios-ramfb.bin vgabios-stdvga.bin \ -vgabios-virtio.bin vgabios-vmware.bin} +%define x86_extra_firmware {bios.bin bios-256k.bin bios-microvm.bin \ +pxe-e1000.rom pxe-eepro100.rom pxe-ne2k_pci.rom pxe-pcnet.rom pxe-rtl8139.rom \ +pxe-virtio.rom sgabios.bin vgabios-ati.bin vgabios-bochs-display.bin \ +vgabios.bin vgabios-cirrus.bin vgabios-qxl.bin vgabios-ramfb.bin \ +vgabios-stdvga.bin vgabios-virtio.bin vgabios-vmware.bin} %define x86_64_only_default_firmware {%nil} %define x86_64_only_extra_firmware {edk2-aarch64-code.fd.bz2 \ edk2-arm-code.fd.bz2 edk2-arm-vars.fd.bz2 edk2-i386-code.fd.bz2 \ @@ -1139,6 +1145,7 @@ cd %mybuilddir %endif --enable-opengl \ --enable-parallels \ + --disable-plugins \ --enable-pvrdma \ --enable-qcow1 \ --enable-qed \ @@ -1176,6 +1183,7 @@ cd %mybuilddir --enable-vhost-net \ --enable-vhost-scsi \ --enable-vhost-user \ + --enable-vhost-user-fs \ --enable-vhost-vsock \ --enable-virglrenderer \ --enable-virtfs \ @@ -1194,6 +1202,7 @@ cd %mybuilddir --disable-xen \ %endif --enable-xfsctl \ + --enable-xkbcommon \ # ------------------------------------------------------------------------ %else # qemu-linux-user --without-default-devices \ @@ -1216,6 +1225,7 @@ cd %mybuilddir --disable-malloc-trim \ --enable-membarrier \ --disable-parallels \ + --disable-plugins \ --disable-qcow1 \ --disable-qed \ --disable-replication \ @@ -1228,9 +1238,11 @@ cd %mybuilddir --disable-vhost-net \ --disable-vhost-scsi \ --disable-vhost-user \ + --disable-vhost-user-fs \ --disable-vhost-vsock \ --disable-vnc \ --disable-vvfat \ + --disable-xkbcommon \ %endif # qemu-linux-user %if "%{name}" == "qemu" @@ -1282,6 +1294,8 @@ make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms bios \ HOSTCC=cc \ %endif +make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms bios-microvm + %ifnarch %ix86 %if %{provide_edk2_firmware} make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms efi \ @@ -1310,7 +1324,9 @@ make -C %{_builddir}/%buildsubdir/roms sgabios \ HOSTCC=cc %if %{force_fit_virtio_pxe_rom} +pushd %{_builddir}/%buildsubdir patch -p1 < %_sourcedir/stub-out-the-SAN-req-s-in-int13.patch +popd make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms pxerom_variants=virtio pxerom_targets=1af41000 pxerom %endif @@ -1494,6 +1510,8 @@ unlink %{buildroot}%_datadir/%name/edk2-licenses.txt || true unlink %{buildroot}%_datadir/%name/edk2-x86_64-code.fd unlink %{buildroot}%_datadir/%name/edk2-x86_64-secure-code.fd %endif +install -D -m 0644 %{SOURCE14} %{buildroot}%_datadir/%name/firmware/50-seabios-256k.json +install -D -m 0644 %{SOURCE15} %{buildroot}%_datadir/%name/firmware/60-seabios-128k.json %endif %if 0%{?do_more_edk2_unlinks} || %{provide_edk2_firmware} == 0 unlink %{buildroot}%_datadir/%name/edk2-licenses.txt || true @@ -1627,7 +1645,7 @@ fi # ======================================================================== %files %defattr(-, root, root) -%doc Changelog README VERSION +%doc Changelog README.rst VERSION %license COPYING COPYING.LIB LICENSE %if "%{name}" == "qemu" @@ -1648,6 +1666,7 @@ fi %_docdir/%name/interop/vhost-user.html %_docdir/%name/specs/.buildinfo %_docdir/%name/specs/_static/* +%_docdir/%name/specs/acpi_hw_reduced_hotplug.html %_docdir/%name/specs/genindex.html %_docdir/%name/specs/index.html %_docdir/%name/specs/objects.inv @@ -1723,7 +1742,6 @@ fi %_datadir/%name/qemu_vga.ndrv %_datadir/%name/skiboot.lid %_datadir/%name/slof.bin -%_datadir/%name/spapr-rtas.bin %_datadir/%name/u-boot.e500 %_datadir/%name/u-boot-sam460-20100605.bin %if 0%{?is_opensuse} == 0 @@ -1860,6 +1878,11 @@ fi %_libdir/%name/ui-sdl.so %endif +%files ui-spice-app +%defattr(-, root, root) +%dir %_libdir/%name +%_libdir/%name/ui-spice-app.so + %files audio-alsa %defattr(-, root, root) %dir %_libdir/%name @@ -1886,6 +1909,13 @@ fi %dir %_datadir/%name %_datadir/%name/bios.bin %_datadir/%name/bios-256k.bin +%_datadir/%name/firmware/50-seabios-256k.json +%_datadir/%name/firmware/60-seabios-128k.json + +%files microvm +%defattr(-, root, root) +%dir %_datadir/%name +%_datadir/%name/bios-microvm.bin %files vgabios %defattr(-, root, root) @@ -1976,6 +2006,8 @@ fi %files guest-agent %defattr(-, root, root) +%dir %_docdir/%name/interop +%_docdir/%name/interop/qemu-ga.html %_mandir/man8/qemu-ga.8.gz %attr(0755,root,kvm) %_bindir/qemu-ga %{_unitdir}/qemu-ga@.service diff --git a/qemu.spec.in b/qemu.spec.in index a574150..9592b1d 100644 --- a/qemu.spec.in +++ b/qemu.spec.in @@ -1,7 +1,7 @@ # # spec file for package qemu # -# Copyright (c) 2019 SUSE LLC. +# Copyright (c) 2019 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -111,6 +111,8 @@ Source10: supported.arm.txt Source11: supported.ppc.txt Source12: supported.x86.txt Source13: supported.s390.txt +Source14: 50-seabios-256k.json +Source15: 60-seabios-128k.json Source200: qemu-rpmlintrc Source300: bundles.tar.xz Source301: update_git.sh @@ -185,35 +187,38 @@ BuildRequires: e2fsprogs-devel BuildRequires: fdupes BuildRequires: flex BuildRequires: gcc-c++ -BuildRequires: glib2-devel -%if 0%{?with_glusterfs} -BuildRequires: glusterfs-devel +BuildRequires: glib2-devel >= 2.48 +%if build_x86_firmware_from_source +BuildRequires: glibc-devel-32bit %endif -BuildRequires: gtk3-devel +%if 0%{?with_glusterfs} +BuildRequires: glusterfs-devel >= 3 +%endif +BuildRequires: gtk3-devel >= 3.16 BuildRequires: libaio-devel BuildRequires: libattr-devel BuildRequires: libbz2-devel %if 0%{?is_opensuse} -BuildRequires: libcacard-devel +BuildRequires: libcacard-devel >= 2.5.1 %endif BuildRequires: libcap-devel BuildRequires: libcap-ng-devel BuildRequires: libdrm-devel BuildRequires: libepoxy-devel -BuildRequires: libfdt-devel +BuildRequires: libfdt-devel >= 1.4.2 BuildRequires: libgbm-devel -BuildRequires: libgcrypt-devel -BuildRequires: libgnutls-devel -BuildRequires: libiscsi-devel +BuildRequires: libgcrypt-devel >= 1.5.0 +BuildRequires: libgnutls-devel >= 3.1.18 +BuildRequires: libiscsi-devel >= 1.9.0 BuildRequires: libjpeg-devel %if 0%{?is_opensuse} -BuildRequires: libnfs-devel +BuildRequires: libnfs-devel >= 1.9.3 %endif %ifnarch %arm s390x BuildRequires: libnuma-devel %endif BuildRequires: libpcap-devel -BuildRequires: libpixman-1-0-devel +BuildRequires: libpixman-1-0-devel >= 0.21.8 %ifarch x86_64 BuildRequires: libpmem-devel %endif @@ -226,11 +231,11 @@ BuildRequires: librbd-devel BuildRequires: libSDL2-devel BuildRequires: libSDL2_image-devel %endif -BuildRequires: libseccomp-devel -BuildRequires: libspice-server-devel -BuildRequires: libssh-devel +BuildRequires: libseccomp-devel >= 2.3.0 +BuildRequires: libspice-server-devel >= 0.12.5 +BuildRequires: libssh-devel >= 0.8 BuildRequires: libudev-devel -BuildRequires: libusb-1_0-devel +BuildRequires: libusb-1_0-devel >= 1.0.13 BuildRequires: libvdeplug-devel %if 0%{?is_opensuse} BuildRequires: lzfse-devel @@ -251,17 +256,17 @@ BuildRequires: python3-Sphinx BuildRequires: python3-base BuildRequires: rdma-core-devel BuildRequires: snappy-devel -BuildRequires: spice-protocol-devel +BuildRequires: spice-protocol-devel >= 0.12.3 BuildRequires: systemd %{?systemd_requires} %if %{kvm_available} BuildRequires: pkgconfig(udev) %endif -BuildRequires: usbredir-devel +BuildRequires: usbredir-devel >= 0.6 BuildRequires: virglrenderer-devel >= 0.4.1 BuildRequires: vte-devel %ifarch x86_64 -BuildRequires: xen-devel +BuildRequires: xen-devel >= 4.2 %endif BuildRequires: xfsprogs-devel %if %{build_x86_firmware_from_source} @@ -310,6 +315,7 @@ BuildRequires: qemu-ui-gtk = %{qemuver} %if 0%{?is_opensuse} BuildRequires: qemu-ui-sdl = %{qemuver} %endif +BuildRequires: qemu-ui-spice-app = %{qemuver} BuildRequires: qemu-vgabios = %{sbver} BuildRequires: qemu-x86 = %{qemuver} %endif @@ -330,6 +336,7 @@ Recommends: qemu-ui-gtk %if 0%{?is_opensuse} Recommends: qemu-ui-sdl %endif +Recommends: qemu-ui-spice-app Recommends: qemu-x86 %ifarch ppc ppc64 ppc64le Recommends: qemu-ppc @@ -363,6 +370,7 @@ Suggests: qemu-lang %if 0%{?is_opensuse} Recommends: qemu-ksm = %{qemuver} %endif +Suggests: qemu-microvm Suggests: qemu-vhost-user-gpu Provides: qemu-audio-oss = %{qemuver} Obsoletes: qemu-audio-oss < %{qemuver} @@ -388,6 +396,7 @@ Version: %{qemuver} Release: 0 Requires: %name = %{qemuver} Requires: qemu-ipxe +Requires: qemu-microvm Requires: qemu-seabios Requires: qemu-sgabios Requires: qemu-vgabios @@ -617,6 +626,16 @@ Release: 0 This package contains a module for doing SDL based UI for QEMU. %endif +%package ui-spice-app +Summary: Spice UI support for QEMU +Group: System/Emulators/PC +Version: %{qemuver} +Release: 0 +%{qemu_module_conflicts} + +%description ui-spice-app +This package contains a module for doing Spice based UI for QEMU. + %package audio-alsa Summary: ALSA based audio support for QEMU Group: System/Emulators/PC @@ -695,6 +714,17 @@ This package contains the QEMU guest agent. It is installed in the linux guest to provide information and control at the guest OS level. %ifarch %{build_rom_arch} +%package microvm +Summary: x86 MicroVM BIOS for QEMU +Group: System/Emulators/PC +Version: %{qemuver} +Release: 0 +BuildArch: noarch + +%description microvm +MicroVM (qboot) is a miniam x86 firmware for booting Linux kernel. +It provides the minimum resources needed to boot PVH and bzImages. + %package seabios Summary: x86 Legacy BIOS for QEMU Group: System/Emulators/PC @@ -792,19 +822,20 @@ PATCH_EXEC # This first list group isn't specific to what this instance builds %define ppc_default_firmware {%nil} %define ppc_extra_firmware {skiboot.lid slof.bin} -%define ppc64_only_default_firmware {spapr-rtas.bin} +%define ppc64_only_default_firmware {%nil} %define ppc64_only_extra_firmware {%nil} -%define riscv64_default_firmware {opensbi-riscv64-sifive_u-fw_jump.bin opensbi-riscv64-virt-fw_jump.bin} +%define riscv64_default_firmware {opensbi-riscv64-sifive_u-fw_jump.bin \ +opensbi-riscv64-virt-fw_jump.bin} %define riscv64_extra_firmware {%nil} %define s390x_default_firmware {s390-ccw.img s390-netboot.img} %define s390x_extra_firmware {%nil} %define x86_default_firmware {linuxboot.bin linuxboot_dma.bin multiboot.bin \ kvmvapic.bin pvh.bin} -%define x86_extra_firmware {bios.bin bios-256k.bin pxe-e1000.rom \ -pxe-eepro100.rom pxe-ne2k_pci.rom pxe-pcnet.rom pxe-rtl8139.rom pxe-virtio.rom \ -sgabios.bin vgabios-ati.bin vgabios-bochs-display.bin vgabios.bin \ -vgabios-cirrus.bin vgabios-qxl.bin vgabios-ramfb.bin vgabios-stdvga.bin \ -vgabios-virtio.bin vgabios-vmware.bin} +%define x86_extra_firmware {bios.bin bios-256k.bin bios-microvm.bin \ +pxe-e1000.rom pxe-eepro100.rom pxe-ne2k_pci.rom pxe-pcnet.rom pxe-rtl8139.rom \ +pxe-virtio.rom sgabios.bin vgabios-ati.bin vgabios-bochs-display.bin \ +vgabios.bin vgabios-cirrus.bin vgabios-qxl.bin vgabios-ramfb.bin \ +vgabios-stdvga.bin vgabios-virtio.bin vgabios-vmware.bin} %define x86_64_only_default_firmware {%nil} %define x86_64_only_extra_firmware {edk2-aarch64-code.fd.bz2 \ edk2-arm-code.fd.bz2 edk2-arm-vars.fd.bz2 edk2-i386-code.fd.bz2 \ @@ -996,6 +1027,7 @@ cd %mybuilddir %endif --enable-opengl \ --enable-parallels \ + --disable-plugins \ --enable-pvrdma \ --enable-qcow1 \ --enable-qed \ @@ -1033,6 +1065,7 @@ cd %mybuilddir --enable-vhost-net \ --enable-vhost-scsi \ --enable-vhost-user \ + --enable-vhost-user-fs \ --enable-vhost-vsock \ --enable-virglrenderer \ --enable-virtfs \ @@ -1051,6 +1084,7 @@ cd %mybuilddir --disable-xen \ %endif --enable-xfsctl \ + --enable-xkbcommon \ # ------------------------------------------------------------------------ %else # qemu-linux-user --without-default-devices \ @@ -1073,6 +1107,7 @@ cd %mybuilddir --disable-malloc-trim \ --enable-membarrier \ --disable-parallels \ + --disable-plugins \ --disable-qcow1 \ --disable-qed \ --disable-replication \ @@ -1085,9 +1120,11 @@ cd %mybuilddir --disable-vhost-net \ --disable-vhost-scsi \ --disable-vhost-user \ + --disable-vhost-user-fs \ --disable-vhost-vsock \ --disable-vnc \ --disable-vvfat \ + --disable-xkbcommon \ %endif # qemu-linux-user %if "%{name}" == "qemu" @@ -1139,6 +1176,8 @@ make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms bios \ HOSTCC=cc \ %endif +make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms bios-microvm + %ifnarch %ix86 %if %{provide_edk2_firmware} make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms efi \ @@ -1167,7 +1206,9 @@ make -C %{_builddir}/%buildsubdir/roms sgabios \ HOSTCC=cc %if %{force_fit_virtio_pxe_rom} +pushd %{_builddir}/%buildsubdir patch -p1 < %_sourcedir/stub-out-the-SAN-req-s-in-int13.patch +popd make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms pxerom_variants=virtio pxerom_targets=1af41000 pxerom %endif @@ -1351,6 +1392,8 @@ unlink %{buildroot}%_datadir/%name/edk2-licenses.txt || true unlink %{buildroot}%_datadir/%name/edk2-x86_64-code.fd unlink %{buildroot}%_datadir/%name/edk2-x86_64-secure-code.fd %endif +install -D -m 0644 %{SOURCE14} %{buildroot}%_datadir/%name/firmware/50-seabios-256k.json +install -D -m 0644 %{SOURCE15} %{buildroot}%_datadir/%name/firmware/60-seabios-128k.json %endif %if 0%{?do_more_edk2_unlinks} || %{provide_edk2_firmware} == 0 unlink %{buildroot}%_datadir/%name/edk2-licenses.txt || true @@ -1484,7 +1527,7 @@ fi # ======================================================================== %files %defattr(-, root, root) -%doc Changelog README VERSION +%doc Changelog README.rst VERSION %license COPYING COPYING.LIB LICENSE %if "%{name}" == "qemu" @@ -1505,6 +1548,7 @@ fi %_docdir/%name/interop/vhost-user.html %_docdir/%name/specs/.buildinfo %_docdir/%name/specs/_static/* +%_docdir/%name/specs/acpi_hw_reduced_hotplug.html %_docdir/%name/specs/genindex.html %_docdir/%name/specs/index.html %_docdir/%name/specs/objects.inv @@ -1580,7 +1624,6 @@ fi %_datadir/%name/qemu_vga.ndrv %_datadir/%name/skiboot.lid %_datadir/%name/slof.bin -%_datadir/%name/spapr-rtas.bin %_datadir/%name/u-boot.e500 %_datadir/%name/u-boot-sam460-20100605.bin %if 0%{?is_opensuse} == 0 @@ -1717,6 +1760,11 @@ fi %_libdir/%name/ui-sdl.so %endif +%files ui-spice-app +%defattr(-, root, root) +%dir %_libdir/%name +%_libdir/%name/ui-spice-app.so + %files audio-alsa %defattr(-, root, root) %dir %_libdir/%name @@ -1743,6 +1791,13 @@ fi %dir %_datadir/%name %_datadir/%name/bios.bin %_datadir/%name/bios-256k.bin +%_datadir/%name/firmware/50-seabios-256k.json +%_datadir/%name/firmware/60-seabios-128k.json + +%files microvm +%defattr(-, root, root) +%dir %_datadir/%name +%_datadir/%name/bios-microvm.bin %files vgabios %defattr(-, root, root) @@ -1833,6 +1888,8 @@ fi %files guest-agent %defattr(-, root, root) +%dir %_docdir/%name/interop +%_docdir/%name/interop/qemu-ga.html %_mandir/man8/qemu-ga.8.gz %attr(0755,root,kvm) %_bindir/qemu-ga %{_unitdir}/qemu-ga@.service diff --git a/roms-Makefile-enable-cross-compile-for-b.patch b/roms-Makefile-enable-cross-compile-for-b.patch new file mode 100644 index 0000000..c8b0545 --- /dev/null +++ b/roms-Makefile-enable-cross-compile-for-b.patch @@ -0,0 +1,22 @@ +From: Bruce Rogers +Date: Sun, 3 Nov 2019 07:21:40 -0700 +Subject: roms/Makefile: enable cross compile for building microvm bios + +Signed-off-by: Bruce Rogers +--- + roms/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/roms/Makefile b/roms/Makefile +index 091ad51c1e91a2b9709c5810e562..a6f084820f489bef42c6f487a6b2 100644 +--- a/roms/Makefile ++++ b/roms/Makefile +@@ -198,7 +198,7 @@ opensbi64-sifive_u: + cp opensbi/build/platform/sifive/fu540/firmware/fw_jump.bin ../pc-bios/opensbi-riscv64-sifive_u-fw_jump.bin + + bios-microvm: +- $(MAKE) -C qboot ++ $(MAKE) -C qboot CROSS_COMPILE=$(x86_64_cross_prefix) CC=gcc + cp qboot/bios.bin ../pc-bios/bios-microvm.bin + + clean: diff --git a/roms-Makefile-pass-a-packaging-timestamp.patch b/roms-Makefile-pass-a-packaging-timestamp.patch index 5022ea0..4eaff01 100644 --- a/roms-Makefile-pass-a-packaging-timestamp.patch +++ b/roms-Makefile-pass-a-packaging-timestamp.patch @@ -20,7 +20,7 @@ Signed-off-by: Bruce Rogers 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/roms/Makefile b/roms/Makefile -index 775c963f9dd55bfa17772afb73f4..6efeb1ef7c38fb71556b762d6bf1 100644 +index 28e1e557b0763cabe6da3d07602d..091ad51c1e91a2b9709c5810e562 100644 --- a/roms/Makefile +++ b/roms/Makefile @@ -51,6 +51,12 @@ SEABIOS_EXTRAVERSION="-prebuilt.qemu.org" @@ -33,10 +33,10 @@ index 775c963f9dd55bfa17772afb73f4..6efeb1ef7c38fb71556b762d6bf1 100644 +# build. +PACKAGING_TIMESTAMP = $(shell date -r ../VERSION +%s) + - default: + default help: @echo "nothing is build by default" @echo "available build targets:" -@@ -99,7 +105,7 @@ build-seabios-config-%: config.% +@@ -100,7 +106,7 @@ build-seabios-config-%: config.% .PHONY: sgabios skiboot sgabios: @@ -45,7 +45,7 @@ index 775c963f9dd55bfa17772afb73f4..6efeb1ef7c38fb71556b762d6bf1 100644 cp sgabios/sgabios.bin ../pc-bios -@@ -119,11 +125,13 @@ efi-rom-%: build-pxe-roms build-efi-roms edk2-basetools +@@ -120,11 +126,13 @@ efi-rom-%: build-pxe-roms build-efi-roms edk2-basetools build-pxe-roms: $(MAKE) -C ipxe/src CONFIG=qemu \ @@ -59,7 +59,7 @@ index 775c963f9dd55bfa17772afb73f4..6efeb1ef7c38fb71556b762d6bf1 100644 CROSS_COMPILE=$(x86_64_cross_prefix) \ $(patsubst %,bin-i386-efi/%.efidrv,$(pxerom_targets)) \ $(patsubst %,bin-x86_64-efi/%.efidrv,$(pxerom_targets)) -@@ -145,7 +153,9 @@ edk2-basetools: +@@ -147,7 +155,9 @@ edk2-basetools: EXTRA_LDFLAGS='$(EDK2_BASETOOLS_LDFLAGS)' slof: diff --git a/roms-change-cross-compiler-naming-to-be-.patch b/roms-change-cross-compiler-naming-to-be-.patch index 4a8056d..8ff9919 100644 --- a/roms-change-cross-compiler-naming-to-be-.patch +++ b/roms-change-cross-compiler-naming-to-be-.patch @@ -8,7 +8,7 @@ Signed-off-by: Bruce Rogers 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/roms/edk2-funcs.sh b/roms/edk2-funcs.sh -index a9fae7ee891bc4cadbe1a3cb3f54..d70bed1729cf0a3ce41ab72df78e 100644 +index 3f4485b201f1f6f8cff47a9933da..5a3a8d885c9138d3c857d8b1e6d0 100644 --- a/roms/edk2-funcs.sh +++ b/roms/edk2-funcs.sh @@ -113,7 +113,15 @@ qemu_edk2_get_cross_prefix() diff --git a/seabios-switch-to-python3-as-needed.patch b/seabios-switch-to-python3-as-needed.patch index 9f6f0ad..b8b1349 100644 --- a/seabios-switch-to-python3-as-needed.patch +++ b/seabios-switch-to-python3-as-needed.patch @@ -17,7 +17,7 @@ Signed-off-by: Bruce Rogers 5 files changed, 19 insertions(+), 19 deletions(-) diff --git a/roms/seabios/Makefile b/roms/seabios/Makefile -index 629185ed9f7153fa08ba56c121ee..bd34cfc2394a9103fec2e951bb67 100644 +index de1fa90035b82ef3608d68d62f59..ca8d0283922bbfa931e85511e921 100644 --- a/roms/seabios/Makefile +++ b/roms/seabios/Makefile @@ -22,7 +22,7 @@ LD=$(CROSS_PREFIX)ld diff --git a/seabios-use-python2-explicitly-as-needed.patch b/seabios-use-python2-explicitly-as-needed.patch index 53803d4..5c84806 100644 --- a/seabios-use-python2-explicitly-as-needed.patch +++ b/seabios-use-python2-explicitly-as-needed.patch @@ -14,7 +14,7 @@ Signed-off-by: Bruce Rogers 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/roms/seabios/Makefile b/roms/seabios/Makefile -index d2d11dbef87521d82c30a7c6f0bf..629185ed9f7153fa08ba56c121ee 100644 +index 5f7d5370198abac950b24e08a7aa..de1fa90035b82ef3608d68d62f59 100644 --- a/roms/seabios/Makefile +++ b/roms/seabios/Makefile @@ -22,7 +22,7 @@ LD=$(CROSS_PREFIX)ld diff --git a/target-i386-Export-TAA_NO-bit-to-guests.patch b/target-i386-Export-TAA_NO-bit-to-guests.patch deleted file mode 100644 index 72153e3..0000000 --- a/target-i386-Export-TAA_NO-bit-to-guests.patch +++ /dev/null @@ -1,34 +0,0 @@ -From: Pawan Gupta -Date: Mon, 18 Nov 2019 23:23:27 -0800 -Subject: target/i386: Export TAA_NO bit to guests - -Git-commit: 7fac38635e1cc5ebae34eb6530da1009bd5808e4 -Reference: bsc#1152506 CVE-2019-11135 - -TSX Async Abort (TAA) is a side channel attack on internal buffers in -some Intel processors similar to Microachitectural Data Sampling (MDS). - -Some future Intel processors will use the ARCH_CAP_TAA_NO bit in the -IA32_ARCH_CAPABILITIES MSR to report that they are not vulnerable to -TAA. Make this bit available to guests. - -Signed-off-by: Pawan Gupta -Signed-off-by: Paolo Bonzini -Signed-off-by: Bruce Rogers ---- - target/i386/cpu.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/target/i386/cpu.c b/target/i386/cpu.c -index 5191367f89ee4d1131c4309633de..530942baed87c5ff76beaf36df14 100644 ---- a/target/i386/cpu.c -+++ b/target/i386/cpu.c -@@ -1189,7 +1189,7 @@ static FeatureWordInfo feature_word_info[FEATURE_WORDS] = { - .feat_names = { - "rdctl-no", "ibrs-all", "rsba", "skip-l1dfl-vmentry", - "ssb-no", "mds-no", "pschange-mc-no", NULL, -- NULL, NULL, NULL, NULL, -+ "taa-no", NULL, NULL, NULL, - NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, diff --git a/target-i386-add-PSCHANGE_NO-bit-for-the-.patch b/target-i386-add-PSCHANGE_NO-bit-for-the-.patch deleted file mode 100644 index 9c926f2..0000000 --- a/target-i386-add-PSCHANGE_NO-bit-for-the-.patch +++ /dev/null @@ -1,29 +0,0 @@ -From: Paolo Bonzini -Date: Wed, 13 Nov 2019 15:54:35 +0100 -Subject: target/i386: add PSCHANGE_NO bit for the ARCH_CAPABILITIES MSR - -Git-commit: 7f7a585d5bd3c7f1275d28c77d9d67513c1de36c -Reference: bsc#1155812 CVE-2018-12207 - -This is required to disable ITLB multihit mitigations in nested -hypervisors. - -Signed-off-by: Paolo Bonzini -Signed-off-by: Bruce Rogers ---- - target/i386/cpu.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/target/i386/cpu.c b/target/i386/cpu.c -index 19751e37a71fee27944526fe507c..5191367f89ee4d1131c4309633de 100644 ---- a/target/i386/cpu.c -+++ b/target/i386/cpu.c -@@ -1188,7 +1188,7 @@ static FeatureWordInfo feature_word_info[FEATURE_WORDS] = { - .type = MSR_FEATURE_WORD, - .feat_names = { - "rdctl-no", "ibrs-all", "rsba", "skip-l1dfl-vmentry", -- "ssb-no", "mds-no", NULL, NULL, -+ "ssb-no", "mds-no", "pschange-mc-no", NULL, - NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, diff --git a/tests-Disable-some-block-tests-for-now.patch b/tests-Disable-some-block-tests-for-now.patch index 77a3c9f..4f1eb47 100644 --- a/tests-Disable-some-block-tests-for-now.patch +++ b/tests-Disable-some-block-tests-for-now.patch @@ -14,13 +14,15 @@ v4.1.0 qemu: disable 065, 129, 169, 182, 205, 218, 242, 248, 250 (other architectures not evaluated at this time) +27NOV2019 - added 161 since it is failing on s390x and ppc consistently + Signed-off-by: Bruce Rogers --- - tests/qemu-iotests/group | 18 +++++++++--------- - 1 file changed, 9 insertions(+), 9 deletions(-) + tests/qemu-iotests/group | 20 ++++++++++---------- + 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/tests/qemu-iotests/group b/tests/qemu-iotests/group -index 3070d160d5ae9108ca5e5a9ed234..0f6640db8a0a783b29aafb66eca2 100644 +index 6b10a6a762..150800ce1c 100644 --- a/tests/qemu-iotests/group +++ b/tests/qemu-iotests/group @@ -86,7 +86,7 @@ @@ -38,10 +40,15 @@ index 3070d160d5ae9108ca5e5a9ed234..0f6640db8a0a783b29aafb66eca2 100644 128 rw quick -129 rw quick +#DISABLE FOR NOW 129 rw quick - 130 rw auto quick + 130 rw quick 131 rw quick 132 rw quick -@@ -186,7 +186,7 @@ +@@ -182,11 +182,11 @@ + 158 rw auto quick + 159 rw auto quick + 160 rw quick +-161 rw auto quick ++#DISABLE FOR NOW 161 rw auto quick 162 quick 163 rw 165 rw quick @@ -96,3 +103,6 @@ index 3070d160d5ae9108ca5e5a9ed234..0f6640db8a0a783b29aafb66eca2 100644 251 rw auto quick 252 rw auto backing quick 253 rw quick +-- +2.24.0 + diff --git a/tests-Fix-block-tests-to-be-compatible-w.patch b/tests-Fix-block-tests-to-be-compatible-w.patch index e327b34..36b902f 100644 --- a/tests-Fix-block-tests-to-be-compatible-w.patch +++ b/tests-Fix-block-tests-to-be-compatible-w.patch @@ -3,7 +3,9 @@ Date: Tue, 15 Oct 2019 11:16:14 -0600 Subject: tests: Fix block tests to be compatible with membarrier configuration The use of membarriers collides with the block test's practice of -SIGKILLing test vm's. Have them quit politely. Tests: 130, 153, 161 +SIGKILLing test vm's. Have them quit politely. Tests: 130, 153 - and +though test 161 seems to have the same issue, it is not yet fixed, but +just marked here as possibly needing a fix. Signed-off-by: Bruce Rogers --- @@ -11,8 +13,7 @@ Signed-off-by: Bruce Rogers tests/qemu-iotests/130.out | 2 ++ tests/qemu-iotests/153 | 6 ++++-- tests/qemu-iotests/153.out | 4 ++++ - tests/qemu-iotests/161 | 3 +++ - 5 files changed, 17 insertions(+), 4 deletions(-) + 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/tests/qemu-iotests/130 b/tests/qemu-iotests/130 index 77ad2aa13a06094f26d2c8991e48..fd84a4c77d192e15ee961b07994b 100755 @@ -83,19 +84,19 @@ index c969a1a16ff8382b9bb69252f6de..39d6da725bff3932a7cb88acff8e 100755 echo echo "== Detecting -U and force-share conflicts ==" diff --git a/tests/qemu-iotests/153.out b/tests/qemu-iotests/153.out -index e9694200066280fa0637292de3ef..177b08b7e3e6606db552d7e54c8e 100644 +index f7464dd8d345a853f7b64a67c6d0..8bc14f6abf94662473d6d93b5672 100644 --- a/tests/qemu-iotests/153.out +++ b/tests/qemu-iotests/153.out -@@ -416,6 +416,8 @@ Is another process using the image [TEST_DIR/t.qcow2]? - +@@ -421,6 +421,8 @@ Is another process using the image [TEST_DIR/t.qcow2]? _qemu_img_wrapper commit -b TEST_DIR/t.qcow2.b TEST_DIR/t.qcow2.c + { 'execute': 'qmp_capabilities' } {"return": {}} +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}} +{"return": {}} Adding drive + { 'execute': 'human-monitor-command', 'arguments': { 'command-line': 'drive_add 0 if=none,id=d0,file=TEST_DIR/t.IMGFMT' } } {"return": "OKrn"} - -@@ -443,6 +445,8 @@ Closing the other +@@ -454,6 +456,8 @@ Closing the other {"return": ""} _qemu_io_wrapper TEST_DIR/t.qcow2 -c write 0 512 @@ -104,31 +105,3 @@ index e9694200066280fa0637292de3ef..177b08b7e3e6606db552d7e54c8e 100644 == Detecting -U and force-share conflicts == -diff --git a/tests/qemu-iotests/161 b/tests/qemu-iotests/161 -index 456a4bd8c4cb54c9c0d295f83bed..990af8a412d72fd522068490638b 100755 ---- a/tests/qemu-iotests/161 -+++ b/tests/qemu-iotests/161 -@@ -68,6 +68,7 @@ _send_qemu_cmd $QEMU_HANDLE \ - 'qemu-io none0 \"reopen -o backing.detect-zeroes=on\"' } }" \ - "return" - -+_send_qemu_cmd $QEMU_HANDLE "{ 'execute': 'quit' }" '' - _cleanup_qemu - - # Second test: stream $TEST_IMG.base into $TEST_IMG.int and then -@@ -96,6 +97,7 @@ _send_qemu_cmd $QEMU_HANDLE \ - 'qemu-io none0 \"reopen -o backing.detect-zeroes=on\"' } }" \ - "return" - -+_send_qemu_cmd $QEMU_HANDLE "{ 'execute': 'quit' }" '' - _cleanup_qemu - - # Third test: commit $TEST_IMG.int into $TEST_IMG.base and then reopen -@@ -129,6 +131,7 @@ _send_qemu_cmd $QEMU_HANDLE \ - 'qemu-io none0 \"reopen -o backing.detect-zeroes=on\"' } }" \ - "return" - -+_send_qemu_cmd $QEMU_HANDLE "{ 'execute': 'quit' }" '' - _cleanup_qemu - - # success, all done diff --git a/tests-change-error-message-in-test-162.patch b/tests-change-error-message-in-test-162.patch index 87e1ca5..a7c779c 100644 --- a/tests-change-error-message-in-test-162.patch +++ b/tests-change-error-message-in-test-162.patch @@ -13,14 +13,14 @@ Signed-off-by: Bruce Rogers 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/qemu-iotests/162.out b/tests/qemu-iotests/162.out -index 3c5be2c5699a225cc80bbdc40bec..390cca9027e918f1a0d252753ce5 100644 +index 5a00d36d17878376380430dad705..390cca9027e918f1a0d252753ce5 100644 --- a/tests/qemu-iotests/162.out +++ b/tests/qemu-iotests/162.out @@ -1,7 +1,7 @@ QA output created by 162 === NBD === --qemu-img: Could not open 'json:{"driver": "nbd", "host": 42}': Failed to connect socket: Invalid argument +-qemu-img: Could not open 'json:{"driver": "nbd", "host": -1}': address resolution failed for -1:10809: Name or service not known +qemu-img: Could not open 'json:{"driver": "nbd", "host": 42}': Failed to connect socket: Network is unreachable image: nbd://localhost:PORT image: nbd+unix://?socket=42 diff --git a/tests-qemu-iotests-Triple-timeout-of-i-o.patch b/tests-qemu-iotests-Triple-timeout-of-i-o.patch index bdc1ca7..d4ed236 100644 --- a/tests-qemu-iotests-Triple-timeout-of-i-o.patch +++ b/tests-qemu-iotests-Triple-timeout-of-i-o.patch @@ -13,7 +13,7 @@ Signed-off-by: Bruce Rogers 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/qemu-iotests/common.qemu b/tests/qemu-iotests/common.qemu -index 8d2021a7eb0c7085802c6f4c0597..e19ea76fff5789e4bc5b925bdcb9 100644 +index de680cf1c7c92e50b82aa2bc0262..4f2557cc568beed038223af7660b 100644 --- a/tests/qemu-iotests/common.qemu +++ b/tests/qemu-iotests/common.qemu @@ -76,7 +76,7 @@ _timed_wait_for() diff --git a/update_git.sh b/update_git.sh index 6e38ce6..ccabfbf 100644 --- a/update_git.sh +++ b/update_git.sh @@ -8,6 +8,26 @@ # # (default is git2pkg) +# TODO NOTES: + +# after ensuring current status of local repo is clean, incl submodules, we checkout master+submodules, then also ensure they're clean, then checkout the commit or tag corresponding to latest / stable-release + submodules (but don't bother to verift that's clean) - so this is a detached HEAD for stable-release and IS master (almost certainly) for LATEST. WOW - is that what we need to be doing!?!?! At least it seems to be working for the cases I've seen!!!! +# initbundle operates from the current checked out state of the local superproject, to get the submodule ids - CORRECT!!!! +# the LATEST processing of cloning the local repo, clones master - but perhaps it doesn't matter? because it adds upstream as a remote and probably gets most things from there? INVESTIGATE!!!!!!!!!!!!!!!!!!!1 +# bundle2local checks out master in local repo to ensure we're off the frombundle branch (doesn't seem needed the way the script currently is). It fetches the bundle's head (FETCH_HEAD) REQUIRING that the base commit be present (which it seems to be. Then it creates the frombundle branch, with the current FETCH_HEAD (SAME AS IN BUNDLE, RIGHT?) +# The LATEST's rebase loop checks out the frombundle branch (with force), so we are now OFF of the "correct checkout" that happened at the beginning, it DELETES the GIT_BRANCH (so in this case it DIDN'T MATTER WHAT WAS THERE WHEN SCRIPT STARTED !!!!!!! WARNING !!!!!, branches off of the frombundle branch (w/checkout), then rebases that (which came from bundle) onto the current superproject, or submodule commit id. +# At this point, if the GIT_BRANCH rebased ok, it's ready for making a patchqueue, out of, if the rebase failed, it's time to manually fix that.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1 + +# LATEST processing implies updated upstream/master IS the right thing +# HOW do we protect against a bad bundle being created (we do have the build service's tracking of previous files - is that sufficient? +# initbundle - what does it need? Currently we take the default branch in local superproject for the superproject and submodule commit ids, so it needs to be right! (ie which ever branch it is (DECIDE!), make it the RIGHT ONE for this release. It takes the commits from the $GIT_BUNDLE branch of each of superproject and submodule repos, which are beyond above found commits. IT CERTIANLY SEEMS REASONABLE THAT WE WOULD HAVE THE $$GIT_BRANCH BRANCH BE THE DEFAULT AND CORRECT BUT HOW DO WE GUARANTEE THATS OK? GIVEN OUR REQS HERE QEMU_VERSION CAN BE GRABBED HERE IN LOCAL SUPERPROJECT RIGHT AWAY! +# bundle2local - what does it need? This checks out local master just to get off of frombundle (could have been $GIT_BRANCH as well) No other req's +# bundle2spec - what does it need? THIS SHOULD HAVE LATEST SPLIT OUT!!!! We allow this alone, so see what setup it alone needs - for this one particularly, we don't want to REQUIRE local repo. FOR NOW I ASSUME THE RIGHT THING IS CHECKED OUT! +# +# SEEMS WE SHOULD NOT,NOT,NOT require user to have previously updated, or set local repo a certain way, but for us to enforce it or actually do it +# TODO: confirm local repo present, correct remotes, correct local branches, somehow validate local branch content against remote, ... +# +# In both cases we DO require the $GIT_BRANCH to exist, and should confirm that the appropriate upstream basis commit is indeed part of that. In the LATEST case, we can treat master as a source for initial current upstream. + set -e source ./config.sh @@ -52,6 +72,7 @@ REQUIRED_LOCAL_REPO_MAP=( ~/git/qemu-sgabios ~/git/qemu-skiboot ~/git/qemu-keycodemapdb + ~/git/qemu-qboot ) # Validate that all the local repos that we currently have patches in are available diff --git a/vbe-add-edid-support.patch b/vbe-add-edid-support.patch deleted file mode 100644 index 46addf6..0000000 --- a/vbe-add-edid-support.patch +++ /dev/null @@ -1,87 +0,0 @@ -From: Gerd Hoffmann -Date: Tue, 19 Mar 2019 11:09:33 +0100 -Subject: vbe: add edid support. - -Git-commit: a307d0adc50f41787424a9453145293248a1908c - -VBE subfunction 0x15, read ddc data. - -Add VBE_edid where drivers can fill in a EDID data blob. -If we find valid data there (checking the first two header -bytes), then report the function as supported and hand out -the data. - -Signed-off-by: Gerd Hoffmann -Signed-off-by: Bruce Rogers ---- - vgasrc/vbe.c | 30 ++++++++++++++++++++++++++++++ - vgasrc/vgautil.h | 1 + - 2 files changed, 31 insertions(+) - -diff --git a/roms/seabios/vgasrc/vbe.c b/roms/seabios/vgasrc/vbe.c -index 724c1bad6d7a8f612e05c198223f..66afb011ada034d53b518f8de068 100644 ---- a/roms/seabios/vgasrc/vbe.c -+++ b/roms/seabios/vgasrc/vbe.c -@@ -25,6 +25,7 @@ u32 VBE_total_memory VAR16 = 256 * 1024; - u32 VBE_capabilities VAR16; - u32 VBE_framebuffer VAR16; - u16 VBE_win_granularity VAR16; -+u8 VBE_edid[256] VAR16; - - static void - vbe_104f00(struct bregs *regs) -@@ -400,6 +401,34 @@ vbe_104f10(struct bregs *regs) - regs->ax = 0x004f; - } - -+static void -+vbe_104f15(struct bregs *regs) -+{ -+ int offset; -+ -+ switch (regs->bl) { -+ case 0x00: -+ if (GET_GLOBAL(VBE_edid[0]) != 0x00 || -+ GET_GLOBAL(VBE_edid[1]) != 0xff) -+ goto err; -+ regs->bx = 0x0103; -+ break; -+ case 0x01: -+ offset = regs->dx * 128; -+ if (offset >= sizeof(VBE_edid)) -+ goto err; -+ memcpy_far(regs->es, (void*)(regs->di+0), -+ get_global_seg(), VBE_edid + offset, -+ 128); -+ break; -+ err: -+ default: -+ regs->ax = 0x014f; -+ return; -+ } -+ regs->ax = 0x004f; -+} -+ - static void - vbe_104fXX(struct bregs *regs) - { -@@ -427,6 +456,7 @@ handle_104f(struct bregs *regs) - case 0x08: vbe_104f08(regs); break; - case 0x0a: vbe_104f0a(regs); break; - case 0x10: vbe_104f10(regs); break; -+ case 0x15: vbe_104f15(regs); break; - default: vbe_104fXX(regs); break; - } - } -diff --git a/roms/seabios/vgasrc/vgautil.h b/roms/seabios/vgasrc/vgautil.h -index a9940402e45bf293f95b29bbdc2c..dd1aa189547a212ae45bae941f61 100644 ---- a/roms/seabios/vgasrc/vgautil.h -+++ b/roms/seabios/vgasrc/vgautil.h -@@ -89,6 +89,7 @@ extern u32 VBE_total_memory; - extern u32 VBE_capabilities; - extern u32 VBE_framebuffer; - extern u16 VBE_win_granularity; -+extern u8 VBE_edid[256]; - void handle_104f(struct bregs *regs); - - // vgafonts.c diff --git a/vga-Raise-VRAM-to-16-MiB-for-pc-0.15-and.patch b/vga-Raise-VRAM-to-16-MiB-for-pc-0.15-and.patch index 1abb733..56f7aa1 100644 --- a/vga-Raise-VRAM-to-16-MiB-for-pc-0.15-and.patch +++ b/vga-Raise-VRAM-to-16-MiB-for-pc-0.15-and.patch @@ -24,10 +24,10 @@ Signed-off-by: Bruce Rogers 1 file changed, 25 insertions(+) diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c -index c2280c72effb7e2a4dd5aec1eed4..53ee84b542496cbdfebb2eebaa1c 100644 +index 1bd70d1abbc434edb8b5ca69ee5d..d760d3589607daf4997ea76854c4 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c -@@ -800,6 +800,31 @@ static void pc_i440fx_0_15_machine_options(MachineClass *m) +@@ -804,6 +804,31 @@ static void pc_i440fx_0_15_machine_options(MachineClass *m) { static GlobalProperty compat[] = { PC_CPU_MODEL_IDS("0.15") diff --git a/vga-add-ati-bios-tables.patch b/vga-add-ati-bios-tables.patch deleted file mode 100644 index ee85291..0000000 --- a/vga-add-ati-bios-tables.patch +++ /dev/null @@ -1,79 +0,0 @@ -From: Gerd Hoffmann -Date: Fri, 8 Mar 2019 11:42:25 +0100 -Subject: vga: add ati bios tables - -Git-commit: f4c6e4c19daf3deac2d7fc3288db5294aba955ad - -Needed to make drivers happy which try to gather -informations from these tables. - -Signed-off-by: Gerd Hoffmann -Signed-off-by: Bruce Rogers ---- - vgasrc/ati-tables.S | 43 +++++++++++++++++++++++++++++++++++++++++++ - vgasrc/vgaentry.S | 3 +++ - 2 files changed, 46 insertions(+) - -diff --git a/roms/seabios/vgasrc/ati-tables.S b/roms/seabios/vgasrc/ati-tables.S -new file mode 100644 -index 0000000000000000000000000000000000000000..cdbde2fa4aec74f62da898be8b79e4a7c16f6c11 ---- /dev/null -+++ b/roms/seabios/vgasrc/ati-tables.S -@@ -0,0 +1,43 @@ -+// -+// Fake ati bios tables. -+// -+// aty128fb and radeonfb try to gather informations from these tables, -+// so add some stuff here to make the drivers happy. Specifically -+// radeonfb needs the pll information, otherwise it'll crash with a -+// division by zero ... -+// -+ .org 0x48 -+ .word _ati_main -+ -+ // main info -+ .org 0x50 -+_ati_main: -+ .org 0x50 + 0x30 -+ .word _ati_pll -+ .org 0x50 + 0x50 -+ .word _ati_connector -+ -+ // pll info -+ .org 0x100 -+_ati_pll: -+ .word 0 // ??? (not used by radeonfb) -+ .word 0 -+ .word 0 -+ .word 0 -+ .word 23000 // sclk -+ .word 23000 // mclk -+ .word 0 -+ .word 2700 // ref_clk -+ .word 4 // ref_div -+ .long 12000 // ppll_min -+ .long 35000 // ppll_max -+ -+ // connector info -+ .org 0x140 -+_ati_connector: -+ .byte 0x10 // one chip -+ .byte 0x01 // one connector -+ .word 0x3000 // type DVI-I -+ .word 0 // end of list -+ -+ .org 0x200 -diff --git a/roms/seabios/vgasrc/vgaentry.S b/roms/seabios/vgasrc/vgaentry.S -index 53be2b38ca520c691a4fde927bd8..f9624fce2ed9c570d6283b2905f4 100644 ---- a/roms/seabios/vgasrc/vgaentry.S -+++ b/roms/seabios/vgasrc/vgaentry.S -@@ -40,6 +40,9 @@ _rom_header_other2: - _rom_header_signature: - .asciz "IBM" - -+#if CONFIG_VGA_ATI -+#include "ati-tables.S" -+#endif - - /**************************************************************** - * Entry points diff --git a/vga-add-atiext-driver.patch b/vga-add-atiext-driver.patch deleted file mode 100644 index 736b272..0000000 --- a/vga-add-atiext-driver.patch +++ /dev/null @@ -1,381 +0,0 @@ -From: Gerd Hoffmann -Date: Mon, 25 Feb 2019 10:51:37 +0100 -Subject: vga: add atiext driver - -Git-commit: 34b6ecc160749a691b80fcb8638216518d971c65 - -Supports qemu emulated ati cards. They have been added in qemu 4.0. -Acceleration support (in qemu) is pretty rough still. A simple -framebuffer works fine though. - -Available models: - * ati rage 128 pro - * ati rv100 - -Signed-off-by: Gerd Hoffmann -Signed-off-by: Bruce Rogers ---- - Makefile | 2 +- - vgasrc/Kconfig | 11 +++ - vgasrc/atiext.c | 245 +++++++++++++++++++++++++++++++++++++++++++++++ - vgasrc/vgahw.h | 8 ++ - vgasrc/vgautil.h | 6 ++ - 5 files changed, 271 insertions(+), 1 deletion(-) - -diff --git a/roms/seabios/Makefile b/roms/seabios/Makefile -index 79b264ef87565106987fc88eeffe..ecec084825e706cc9d5afacefc10 100644 ---- a/roms/seabios/Makefile -+++ b/roms/seabios/Makefile -@@ -212,7 +212,7 @@ SRCVGA=src/output.c src/string.c src/hw/pci.c src/hw/serialio.c \ - vgasrc/vgainit.c vgasrc/vgabios.c vgasrc/vgafb.c vgasrc/swcursor.c \ - vgasrc/vgafonts.c vgasrc/vbe.c \ - vgasrc/stdvga.c vgasrc/stdvgamodes.c vgasrc/stdvgaio.c \ -- vgasrc/clext.c vgasrc/svgamodes.c vgasrc/bochsvga.c vgasrc/geodevga.c \ -+ vgasrc/clext.c vgasrc/svgamodes.c vgasrc/atiext.c vgasrc/bochsvga.c vgasrc/geodevga.c \ - src/fw/coreboot.c vgasrc/cbvga.c vgasrc/bochsdisplay.c vgasrc/ramfb.c - - ifeq "$(CONFIG_VGA_FIXUP_ASM)" "y" -diff --git a/roms/seabios/vgasrc/Kconfig b/roms/seabios/vgasrc/Kconfig -index f6d843e0900bda3900bc268fae97..c8fac36fb92baa27e06076ec68c5 100644 ---- a/roms/seabios/vgasrc/Kconfig -+++ b/roms/seabios/vgasrc/Kconfig -@@ -27,6 +27,15 @@ menu "VGA ROM" - and Bochs emulators. This is for emulators; it is not - intended for use on real Cirrus hardware. - -+ config VGA_ATI -+ depends on QEMU -+ bool "QEMU ATI SVGA" -+ select VGA_STDVGA_PORTS -+ help -+ Build support for ATI VGA emulation found on QEMU -+ and emulators. This is for emulators; it is not -+ intended for use on real ATI hardware. -+ - config VGA_BOCHS - depends on QEMU - bool "QEMU/Bochs VBE SVGA" -@@ -182,6 +191,7 @@ menu "VGA ROM" - hex - prompt "PCI Vendor ID" if OVERRIDE_PCI_ID - default 0x1013 if VGA_CIRRUS -+ default 0x1002 if VGA_ATI - default 0x1234 if VGA_BOCHS_STDVGA - default 0x15ad if VGA_BOCHS_VMWARE - default 0x1b36 if VGA_BOCHS_QXL -@@ -198,6 +208,7 @@ menu "VGA ROM" - hex - prompt "PCI Vendor ID" if OVERRIDE_PCI_ID - default 0x00b8 if VGA_CIRRUS -+ default 0x5159 if VGA_ATI - default 0x1111 if VGA_BOCHS_STDVGA - default 0x0405 if VGA_BOCHS_VMWARE - default 0x0100 if VGA_BOCHS_QXL -diff --git a/roms/seabios/vgasrc/atiext.c b/roms/seabios/vgasrc/atiext.c -new file mode 100644 -index 0000000000000000000000000000000000000000..0586279ce214fac7d2a7e6c87a9409a6e32eb5af ---- /dev/null -+++ b/roms/seabios/vgasrc/atiext.c -@@ -0,0 +1,245 @@ -+// QEMU ATI VGABIOS Extension. -+// -+// This file may be distributed under the terms of the GNU LGPLv3 license. -+ -+#include "biosvar.h" // GET_GLOBAL -+#include "bregs.h" // struct bregs -+#include "hw/pci.h" // pci_config_readl -+#include "hw/pci_regs.h" // PCI_BASE_ADDRESS_0 -+#include "output.h" // dprintf -+#include "stdvga.h" // VGAREG_SEQU_ADDRESS -+#include "string.h" // memset16_far -+#include "vgabios.h" // SET_VGA -+#include "vgautil.h" // VBE_total_memory -+#include "vgafb.h" // memset_high -+ -+#include "svgamodes.h" -+ -+#define MM_INDEX 0x0000 -+#define MM_DATA 0x0004 -+#define CRTC_GEN_CNTL 0x0050 -+#define CRTC_EXT_CNTL 0x0054 -+#define CRTC_H_TOTAL_DISP 0x0200 -+#define CRTC_V_TOTAL_DISP 0x0208 -+#define CRTC_OFFSET 0x0224 -+#define CRTC_PITCH 0x022c -+ -+/* CRTC control values (CRTC_GEN_CNTL) */ -+#define CRTC2_EXT_DISP_EN 0x01000000 -+#define CRTC2_EN 0x02000000 -+ -+#define CRTC_PIX_WIDTH_MASK 0x00000700 -+#define CRTC_PIX_WIDTH_4BPP 0x00000100 -+#define CRTC_PIX_WIDTH_8BPP 0x00000200 -+#define CRTC_PIX_WIDTH_15BPP 0x00000300 -+#define CRTC_PIX_WIDTH_16BPP 0x00000400 -+#define CRTC_PIX_WIDTH_24BPP 0x00000500 -+#define CRTC_PIX_WIDTH_32BPP 0x00000600 -+ -+/* CRTC_EXT_CNTL */ -+#define CRT_CRTC_DISPLAY_DIS 0x00000400 -+#define CRT_CRTC_ON 0x00008000 -+ -+static u32 ati_io_addr VAR16 = 0; -+ -+int -+is_ati_mode(struct vgamode_s *vmode_g) -+{ -+ unsigned int mcount = GET_GLOBAL(svga_mcount); -+ -+ return (vmode_g >= &svga_modes[0].info && -+ vmode_g <= &svga_modes[mcount-1].info); -+} -+ -+struct vgamode_s * -+ati_find_mode(int mode) -+{ -+ u32 io_addr = GET_GLOBAL(ati_io_addr); -+ struct generic_svga_mode *table_g = svga_modes; -+ unsigned int mcount = GET_GLOBAL(svga_mcount); -+ -+ if (io_addr) { -+ while (table_g < &svga_modes[mcount]) { -+ if (GET_GLOBAL(table_g->mode) == mode) -+ return &table_g->info; -+ table_g++; -+ } -+ } -+ -+ return stdvga_find_mode(mode); -+} -+ -+void -+ati_list_modes(u16 seg, u16 *dest, u16 *last) -+{ -+ u32 io_addr = GET_GLOBAL(ati_io_addr); -+ unsigned int mcount = GET_GLOBAL(svga_mcount); -+ -+ dprintf(1, "%s: ati ext %s\n", __func__, io_addr ? "yes" : "no"); -+ if (io_addr) { -+ int i; -+ for (i=0; iinfo.width); -+ u32 height = GET_GLOBAL(table->info.height); -+ u32 depth = GET_GLOBAL(table->info.depth); -+ u32 stride = width; -+ u32 offset = 0; -+ u32 pxmask = 0; -+ u32 bytes = 0; -+ -+ dprintf(1, "%s: 0x%x, %dx%d-%d\n", __func__, -+ GET_GLOBAL(table->mode), -+ width, height, depth); -+ -+ switch (depth) { -+ case 8: pxmask = CRTC_PIX_WIDTH_8BPP; bytes = 1; break; -+ case 15: pxmask = CRTC_PIX_WIDTH_15BPP; bytes = 2; break; -+ case 16: pxmask = CRTC_PIX_WIDTH_16BPP; bytes = 2; break; -+ case 24: pxmask = CRTC_PIX_WIDTH_24BPP; bytes = 3; break; -+ case 32: pxmask = CRTC_PIX_WIDTH_32BPP; bytes = 4; break; -+ } -+ -+ /* disable display */ -+ ati_write(CRTC_EXT_CNTL, CRT_CRTC_DISPLAY_DIS); -+ -+ /* modeset */ -+ ati_write(CRTC_GEN_CNTL, CRTC2_EXT_DISP_EN | CRTC2_EN | pxmask); -+ ati_write(CRTC_H_TOTAL_DISP, ((width / 8) - 1) << 16); -+ ati_write(CRTC_V_TOTAL_DISP, (height - 1) << 16); -+ ati_write(CRTC_OFFSET, offset); -+ ati_write(CRTC_PITCH, stride / 8); -+ -+ /* clear screen */ -+ if (!(flags & MF_NOCLEARMEM)) { -+ u32 size = width * height * bytes; -+ ati_clear(offset, size); -+ } -+ -+ /* enable display */ -+ ati_write(CRTC_EXT_CNTL, 0); -+ -+ return 0; -+} -+ -+int -+ati_set_mode(struct vgamode_s *vmode_g, int flags) -+{ -+ struct generic_svga_mode *table_g = -+ container_of(vmode_g, struct generic_svga_mode, info); -+ -+ if (is_ati_mode(vmode_g)) { -+ return ati_ext_mode(table_g, flags); -+ } -+ -+ ati_write(CRTC_GEN_CNTL, 0); -+ return stdvga_set_mode(vmode_g, flags); -+} -+ -+/**************************************************************** -+ * init -+ ****************************************************************/ -+ -+int -+ati_setup(void) -+{ -+ int ret = stdvga_setup(); -+ if (ret) -+ return ret; -+ -+ dprintf(1, "%s:%d\n", __func__, __LINE__); -+ -+ if (GET_GLOBAL(HaveRunInit)) -+ return 0; -+ -+ int bdf = GET_GLOBAL(VgaBDF); -+ if (!CONFIG_VGA_PCI || bdf == 0) -+ return 0; -+ -+ u32 bar = pci_config_readl(bdf, PCI_BASE_ADDRESS_0); -+ u32 lfb_addr = bar & PCI_BASE_ADDRESS_MEM_MASK; -+ pci_config_writel(bdf, PCI_BASE_ADDRESS_0, ~0); -+ u32 barmask = pci_config_readl(bdf, PCI_BASE_ADDRESS_0); -+ u32 totalmem = ~(barmask & PCI_BASE_ADDRESS_MEM_MASK) + 1; -+ pci_config_writel(bdf, PCI_BASE_ADDRESS_0, bar); -+ -+ bar = pci_config_readl(bdf, PCI_BASE_ADDRESS_1); -+ u32 io_addr = bar & PCI_BASE_ADDRESS_IO_MASK; -+ -+ bar = pci_config_readl(bdf, PCI_BASE_ADDRESS_2); -+ u32 mmio_addr = bar & PCI_BASE_ADDRESS_MEM_MASK; -+ -+ dprintf(1, "ati: bdf %02x:%02x.%x, lfb 0x%x, %d MB, io 0x%x, mmio 0x%x\n", -+ pci_bdf_to_bus(bdf), pci_bdf_to_dev(bdf), pci_bdf_to_fn(bdf), -+ lfb_addr, totalmem / (1024 * 1024), io_addr, mmio_addr); -+ -+ SET_VGA(VBE_framebuffer, lfb_addr); -+ SET_VGA(VBE_total_memory, totalmem); -+ SET_VGA(ati_io_addr, io_addr); -+ -+ // Validate modes -+ struct generic_svga_mode *m = svga_modes; -+ unsigned int mcount = GET_GLOBAL(svga_mcount); -+ for (; m < &svga_modes[mcount]; m++) { -+ u8 memmodel = GET_GLOBAL(m->info.memmodel); -+ u16 width = GET_GLOBAL(m->info.width); -+ u16 height = GET_GLOBAL(m->info.height); -+ u32 mem = (height * DIV_ROUND_UP(width * vga_bpp(&m->info), 8) -+ * stdvga_vram_ratio(&m->info)); -+ -+ if (width % 8 != 0 || -+ width > 0x7ff * 8 || -+ height > 0xfff || -+ mem > totalmem || -+ memmodel != MM_DIRECT) { -+ dprintf(1, "ati: removing mode 0x%x\n", GET_GLOBAL(m->mode)); -+ SET_VGA(m->mode, 0xffff); -+ } -+ } -+ -+ return 0; -+} -diff --git a/roms/seabios/vgasrc/vgahw.h b/roms/seabios/vgasrc/vgahw.h -index 51777458da629a759f762317e9f6..c774f4f2c6b7c8012096bac2f0ed 100644 ---- a/roms/seabios/vgasrc/vgahw.h -+++ b/roms/seabios/vgasrc/vgahw.h -@@ -12,6 +12,8 @@ - static inline struct vgamode_s *vgahw_find_mode(int mode) { - if (CONFIG_VGA_CIRRUS) - return clext_find_mode(mode); -+ if (CONFIG_VGA_ATI) -+ return ati_find_mode(mode); - if (CONFIG_VGA_BOCHS) - return bochsvga_find_mode(mode); - if (CONFIG_VGA_EMULATE_TEXT) -@@ -22,6 +24,8 @@ static inline struct vgamode_s *vgahw_find_mode(int mode) { - static inline int vgahw_set_mode(struct vgamode_s *vmode_g, int flags) { - if (CONFIG_VGA_CIRRUS) - return clext_set_mode(vmode_g, flags); -+ if (CONFIG_VGA_ATI) -+ return ati_set_mode(vmode_g, flags); - if (CONFIG_VGA_BOCHS) - return bochsvga_set_mode(vmode_g, flags); - if (CONFIG_VGA_EMULATE_TEXT) -@@ -32,6 +36,8 @@ static inline int vgahw_set_mode(struct vgamode_s *vmode_g, int flags) { - static inline void vgahw_list_modes(u16 seg, u16 *dest, u16 *last) { - if (CONFIG_VGA_CIRRUS) - clext_list_modes(seg, dest, last); -+ if (CONFIG_VGA_ATI) -+ ati_list_modes(seg, dest, last); - else if (CONFIG_VGA_BOCHS) - bochsvga_list_modes(seg, dest, last); - else if (CONFIG_VGA_EMULATE_TEXT) -@@ -43,6 +49,8 @@ static inline void vgahw_list_modes(u16 seg, u16 *dest, u16 *last) { - static inline int vgahw_setup(void) { - if (CONFIG_VGA_CIRRUS) - return clext_setup(); -+ if (CONFIG_VGA_ATI) -+ return ati_setup(); - if (CONFIG_VGA_BOCHS) - return bochsvga_setup(); - if (CONFIG_VGA_GEODEGX2 || CONFIG_VGA_GEODELX) -diff --git a/roms/seabios/vgasrc/vgautil.h b/roms/seabios/vgasrc/vgautil.h -index 4f37bf947c42e9f73f7148f668c8..a9940402e45bf293f95b29bbdc2c 100644 ---- a/roms/seabios/vgasrc/vgautil.h -+++ b/roms/seabios/vgasrc/vgautil.h -@@ -42,6 +42,12 @@ struct bregs; - void clext_1012(struct bregs *regs); - int clext_setup(void); - -+// atiext.c -+struct vgamode_s *ati_find_mode(int mode); -+void ati_list_modes(u16 seg, u16 *dest, u16 *last); -+int ati_set_mode(struct vgamode_s *vmode_g, int flags); -+int ati_setup(void); -+ - // stdvgaio.c - u8 stdvga_pelmask_read(void); - void stdvga_pelmask_write(u8 val); diff --git a/vga-make-memcpy_high-public.patch b/vga-make-memcpy_high-public.patch deleted file mode 100644 index cea49f6..0000000 --- a/vga-make-memcpy_high-public.patch +++ /dev/null @@ -1,39 +0,0 @@ -From: Gerd Hoffmann -Date: Fri, 8 Mar 2019 12:34:38 +0100 -Subject: vga: make memcpy_high() public - -Git-commit: 03f5061c0a44dcf8d73a05a6f375e3fe5005f050 - -Signed-off-by: Gerd Hoffmann -Signed-off-by: Bruce Rogers ---- - vgasrc/vgafb.c | 3 +-- - vgasrc/vgafb.h | 1 + - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/roms/seabios/vgasrc/vgafb.c b/roms/seabios/vgasrc/vgafb.c -index 46adfb5e06143d63eeb46ddb122b..f8f35c2d2fbabb2bf816b5652e4f 100644 ---- a/roms/seabios/vgasrc/vgafb.c -+++ b/roms/seabios/vgasrc/vgafb.c -@@ -187,8 +187,7 @@ gfx_packed(struct gfx_op *op) - ****************************************************************/ - - // Use int 1587 call to copy memory to/from the framebuffer. --static void --memcpy_high(void *dest, void *src, u32 len) -+void memcpy_high(void *dest, void *src, u32 len) - { - u64 gdt[6]; - gdt[2] = GDT_DATA | GDT_LIMIT(0xfffff) | GDT_BASE((u32)src); -diff --git a/roms/seabios/vgasrc/vgafb.h b/roms/seabios/vgasrc/vgafb.h -index ccdc70355caf9e05327e3fb4c39c..aae6b9b3a873d3c3d42a9107ae23 100644 ---- a/roms/seabios/vgasrc/vgafb.h -+++ b/roms/seabios/vgasrc/vgafb.h -@@ -29,6 +29,7 @@ struct carattr { - }; - - // vgafb.c -+void memcpy_high(void *dest, void *src, u32 len); - void init_gfx_op(struct gfx_op *op, struct vgamode_s *vmode_g); - void handle_gfx_op(struct gfx_op *op); - void *text_address(struct cursorpos cp); diff --git a/vga-move-modelist-from-bochsvga.c-to-new.patch b/vga-move-modelist-from-bochsvga.c-to-new.patch deleted file mode 100644 index 13e1610..0000000 --- a/vga-move-modelist-from-bochsvga.c-to-new.patch +++ /dev/null @@ -1,272 +0,0 @@ -From: Gerd Hoffmann -Date: Fri, 8 Mar 2019 11:10:59 +0100 -Subject: vga: move modelist from bochsvga.c to new svgamodes.c - -Git-commit: 004f5b3ae561df688595b341e6880182ed5794ed - -So other drivers can simply use the same list too. - -Signed-off-by: Gerd Hoffmann -Signed-off-by: Bruce Rogers ---- - Makefile | 2 +- - vgasrc/bochsvga.c | 102 +++++++-------------------------------------- - vgasrc/svgamodes.c | 80 +++++++++++++++++++++++++++++++++++ - vgasrc/svgamodes.h | 12 ++++++ - 4 files changed, 109 insertions(+), 87 deletions(-) - -diff --git a/roms/seabios/Makefile b/roms/seabios/Makefile -index 7b8a5cd6b17254685df89798ed10..79b264ef87565106987fc88eeffe 100644 ---- a/roms/seabios/Makefile -+++ b/roms/seabios/Makefile -@@ -212,7 +212,7 @@ SRCVGA=src/output.c src/string.c src/hw/pci.c src/hw/serialio.c \ - vgasrc/vgainit.c vgasrc/vgabios.c vgasrc/vgafb.c vgasrc/swcursor.c \ - vgasrc/vgafonts.c vgasrc/vbe.c \ - vgasrc/stdvga.c vgasrc/stdvgamodes.c vgasrc/stdvgaio.c \ -- vgasrc/clext.c vgasrc/bochsvga.c vgasrc/geodevga.c \ -+ vgasrc/clext.c vgasrc/svgamodes.c vgasrc/bochsvga.c vgasrc/geodevga.c \ - src/fw/coreboot.c vgasrc/cbvga.c vgasrc/bochsdisplay.c vgasrc/ramfb.c - - ifeq "$(CONFIG_VGA_FIXUP_ASM)" "y" -diff --git a/roms/seabios/vgasrc/bochsvga.c b/roms/seabios/vgasrc/bochsvga.c -index ec5d1018686e6dbefd5e944db659..479582f1dd4e066de7c8ba50341b 100644 ---- a/roms/seabios/vgasrc/bochsvga.c -+++ b/roms/seabios/vgasrc/bochsvga.c -@@ -23,98 +23,25 @@ - * Mode tables - ****************************************************************/ - --static struct bochsvga_mode --{ -- u16 mode; -- struct vgamode_s info; --} bochsvga_modes[] VAR16 = { -- /* standard modes */ -- { 0x100, { MM_PACKED, 640, 400, 8, 8, 16, SEG_GRAPH } }, -- { 0x101, { MM_PACKED, 640, 480, 8, 8, 16, SEG_GRAPH } }, -- { 0x102, { MM_PLANAR, 800, 600, 4, 8, 16, SEG_GRAPH } }, -- { 0x103, { MM_PACKED, 800, 600, 8, 8, 16, SEG_GRAPH } }, -- { 0x104, { MM_PLANAR, 1024, 768, 4, 8, 16, SEG_GRAPH } }, -- { 0x105, { MM_PACKED, 1024, 768, 8, 8, 16, SEG_GRAPH } }, -- { 0x106, { MM_PLANAR, 1280, 1024, 4, 8, 16, SEG_GRAPH } }, -- { 0x107, { MM_PACKED, 1280, 1024, 8, 8, 16, SEG_GRAPH } }, -- { 0x10D, { MM_DIRECT, 320, 200, 15, 8, 16, SEG_GRAPH } }, -- { 0x10E, { MM_DIRECT, 320, 200, 16, 8, 16, SEG_GRAPH } }, -- { 0x10F, { MM_DIRECT, 320, 200, 24, 8, 16, SEG_GRAPH } }, -- { 0x110, { MM_DIRECT, 640, 480, 15, 8, 16, SEG_GRAPH } }, -- { 0x111, { MM_DIRECT, 640, 480, 16, 8, 16, SEG_GRAPH } }, -- { 0x112, { MM_DIRECT, 640, 480, 24, 8, 16, SEG_GRAPH } }, -- { 0x113, { MM_DIRECT, 800, 600, 15, 8, 16, SEG_GRAPH } }, -- { 0x114, { MM_DIRECT, 800, 600, 16, 8, 16, SEG_GRAPH } }, -- { 0x115, { MM_DIRECT, 800, 600, 24, 8, 16, SEG_GRAPH } }, -- { 0x116, { MM_DIRECT, 1024, 768, 15, 8, 16, SEG_GRAPH } }, -- { 0x117, { MM_DIRECT, 1024, 768, 16, 8, 16, SEG_GRAPH } }, -- { 0x118, { MM_DIRECT, 1024, 768, 24, 8, 16, SEG_GRAPH } }, -- { 0x119, { MM_DIRECT, 1280, 1024, 15, 8, 16, SEG_GRAPH } }, -- { 0x11A, { MM_DIRECT, 1280, 1024, 16, 8, 16, SEG_GRAPH } }, -- { 0x11B, { MM_DIRECT, 1280, 1024, 24, 8, 16, SEG_GRAPH } }, -- { 0x11C, { MM_PACKED, 1600, 1200, 8, 8, 16, SEG_GRAPH } }, -- { 0x11D, { MM_DIRECT, 1600, 1200, 15, 8, 16, SEG_GRAPH } }, -- { 0x11E, { MM_DIRECT, 1600, 1200, 16, 8, 16, SEG_GRAPH } }, -- { 0x11F, { MM_DIRECT, 1600, 1200, 24, 8, 16, SEG_GRAPH } }, -- /* BOCHS modes */ -- { 0x140, { MM_DIRECT, 320, 200, 32, 8, 16, SEG_GRAPH } }, -- { 0x141, { MM_DIRECT, 640, 400, 32, 8, 16, SEG_GRAPH } }, -- { 0x142, { MM_DIRECT, 640, 480, 32, 8, 16, SEG_GRAPH } }, -- { 0x143, { MM_DIRECT, 800, 600, 32, 8, 16, SEG_GRAPH } }, -- { 0x144, { MM_DIRECT, 1024, 768, 32, 8, 16, SEG_GRAPH } }, -- { 0x145, { MM_DIRECT, 1280, 1024, 32, 8, 16, SEG_GRAPH } }, -- { 0x146, { MM_PACKED, 320, 200, 8, 8, 16, SEG_GRAPH } }, -- { 0x147, { MM_DIRECT, 1600, 1200, 32, 8, 16, SEG_GRAPH } }, -- { 0x148, { MM_PACKED, 1152, 864, 8, 8, 16, SEG_GRAPH } }, -- { 0x149, { MM_DIRECT, 1152, 864, 15, 8, 16, SEG_GRAPH } }, -- { 0x14a, { MM_DIRECT, 1152, 864, 16, 8, 16, SEG_GRAPH } }, -- { 0x14b, { MM_DIRECT, 1152, 864, 24, 8, 16, SEG_GRAPH } }, -- { 0x14c, { MM_DIRECT, 1152, 864, 32, 8, 16, SEG_GRAPH } }, -- { 0x175, { MM_DIRECT, 1280, 768, 16, 8, 16, SEG_GRAPH } }, -- { 0x176, { MM_DIRECT, 1280, 768, 24, 8, 16, SEG_GRAPH } }, -- { 0x177, { MM_DIRECT, 1280, 768, 32, 8, 16, SEG_GRAPH } }, -- { 0x178, { MM_DIRECT, 1280, 800, 16, 8, 16, SEG_GRAPH } }, -- { 0x179, { MM_DIRECT, 1280, 800, 24, 8, 16, SEG_GRAPH } }, -- { 0x17a, { MM_DIRECT, 1280, 800, 32, 8, 16, SEG_GRAPH } }, -- { 0x17b, { MM_DIRECT, 1280, 960, 16, 8, 16, SEG_GRAPH } }, -- { 0x17c, { MM_DIRECT, 1280, 960, 24, 8, 16, SEG_GRAPH } }, -- { 0x17d, { MM_DIRECT, 1280, 960, 32, 8, 16, SEG_GRAPH } }, -- { 0x17e, { MM_DIRECT, 1440, 900, 16, 8, 16, SEG_GRAPH } }, -- { 0x17f, { MM_DIRECT, 1440, 900, 24, 8, 16, SEG_GRAPH } }, -- { 0x180, { MM_DIRECT, 1440, 900, 32, 8, 16, SEG_GRAPH } }, -- { 0x181, { MM_DIRECT, 1400, 1050, 16, 8, 16, SEG_GRAPH } }, -- { 0x182, { MM_DIRECT, 1400, 1050, 24, 8, 16, SEG_GRAPH } }, -- { 0x183, { MM_DIRECT, 1400, 1050, 32, 8, 16, SEG_GRAPH } }, -- { 0x184, { MM_DIRECT, 1680, 1050, 16, 8, 16, SEG_GRAPH } }, -- { 0x185, { MM_DIRECT, 1680, 1050, 24, 8, 16, SEG_GRAPH } }, -- { 0x186, { MM_DIRECT, 1680, 1050, 32, 8, 16, SEG_GRAPH } }, -- { 0x187, { MM_DIRECT, 1920, 1200, 16, 8, 16, SEG_GRAPH } }, -- { 0x188, { MM_DIRECT, 1920, 1200, 24, 8, 16, SEG_GRAPH } }, -- { 0x189, { MM_DIRECT, 1920, 1200, 32, 8, 16, SEG_GRAPH } }, -- { 0x18a, { MM_DIRECT, 2560, 1600, 16, 8, 16, SEG_GRAPH } }, -- { 0x18b, { MM_DIRECT, 2560, 1600, 24, 8, 16, SEG_GRAPH } }, -- { 0x18c, { MM_DIRECT, 2560, 1600, 32, 8, 16, SEG_GRAPH } }, -- { 0x18d, { MM_DIRECT, 1280, 720, 16, 8, 16, SEG_GRAPH } }, -- { 0x18e, { MM_DIRECT, 1280, 720, 24, 8, 16, SEG_GRAPH } }, -- { 0x18f, { MM_DIRECT, 1280, 720, 32, 8, 16, SEG_GRAPH } }, -- { 0x190, { MM_DIRECT, 1920, 1080, 16, 8, 16, SEG_GRAPH } }, -- { 0x191, { MM_DIRECT, 1920, 1080, 24, 8, 16, SEG_GRAPH } }, -- { 0x192, { MM_DIRECT, 1920, 1080, 32, 8, 16, SEG_GRAPH } }, --}; -+#include "svgamodes.h" - - static int dispi_found VAR16 = 0; - - static int is_bochsvga_mode(struct vgamode_s *vmode_g) - { -- return (vmode_g >= &bochsvga_modes[0].info -- && vmode_g <= &bochsvga_modes[ARRAY_SIZE(bochsvga_modes)-1].info); -+ unsigned int mcount = GET_GLOBAL(svga_mcount); -+ -+ return (vmode_g >= &svga_modes[0].info -+ && vmode_g <= &svga_modes[mcount-1].info); - } - - struct vgamode_s *bochsvga_find_mode(int mode) - { -- struct bochsvga_mode *m = bochsvga_modes; -+ struct generic_svga_mode *m = svga_modes; -+ unsigned int mcount = GET_GLOBAL(svga_mcount); -+ - if (GET_GLOBAL(dispi_found)) -- for (; m < &bochsvga_modes[ARRAY_SIZE(bochsvga_modes)]; m++) -+ for (; m < &svga_modes[mcount]; m++) - if (GET_GLOBAL(m->mode) == mode) - return &m->info; - return stdvga_find_mode(mode); -@@ -123,9 +50,11 @@ struct vgamode_s *bochsvga_find_mode(int mode) - void - bochsvga_list_modes(u16 seg, u16 *dest, u16 *last) - { -- struct bochsvga_mode *m = bochsvga_modes; -+ struct generic_svga_mode *m = svga_modes; -+ unsigned int mcount = GET_GLOBAL(svga_mcount); -+ - if (GET_GLOBAL(dispi_found)) { -- for (; m < &bochsvga_modes[ARRAY_SIZE(bochsvga_modes)] && destmode); - if (mode == 0xffff) - continue; -@@ -429,8 +358,9 @@ bochsvga_setup(void) - u16 max_xres = dispi_read(VBE_DISPI_INDEX_XRES); - u16 max_bpp = dispi_read(VBE_DISPI_INDEX_BPP); - dispi_write(VBE_DISPI_INDEX_ENABLE, en); -- struct bochsvga_mode *m = bochsvga_modes; -- for (; m < &bochsvga_modes[ARRAY_SIZE(bochsvga_modes)]; m++) { -+ struct generic_svga_mode *m = svga_modes; -+ unsigned int mcount = GET_GLOBAL(svga_mcount); -+ for (; m < &svga_modes[mcount]; m++) { - u16 width = GET_GLOBAL(m->info.width); - u16 height = GET_GLOBAL(m->info.height); - u8 depth = GET_GLOBAL(m->info.depth); -diff --git a/roms/seabios/vgasrc/svgamodes.c b/roms/seabios/vgasrc/svgamodes.c -new file mode 100644 -index 0000000000000000000000000000000000000000..013504c3e691b7d533fd0baa3b62b77b087dd39c ---- /dev/null -+++ b/roms/seabios/vgasrc/svgamodes.c -@@ -0,0 +1,80 @@ -+#include "stdvga.h" // SEG_GRAPH -+#include "vgabios.h" // VAR16 -+ -+#include "svgamodes.h" -+ -+struct generic_svga_mode svga_modes[] VAR16 = { -+ /* standard modes */ -+ { 0x100, { MM_PACKED, 640, 400, 8, 8, 16, SEG_GRAPH } }, -+ { 0x101, { MM_PACKED, 640, 480, 8, 8, 16, SEG_GRAPH } }, -+ { 0x102, { MM_PLANAR, 800, 600, 4, 8, 16, SEG_GRAPH } }, -+ { 0x103, { MM_PACKED, 800, 600, 8, 8, 16, SEG_GRAPH } }, -+ { 0x104, { MM_PLANAR, 1024, 768, 4, 8, 16, SEG_GRAPH } }, -+ { 0x105, { MM_PACKED, 1024, 768, 8, 8, 16, SEG_GRAPH } }, -+ { 0x106, { MM_PLANAR, 1280, 1024, 4, 8, 16, SEG_GRAPH } }, -+ { 0x107, { MM_PACKED, 1280, 1024, 8, 8, 16, SEG_GRAPH } }, -+ { 0x10D, { MM_DIRECT, 320, 200, 15, 8, 16, SEG_GRAPH } }, -+ { 0x10E, { MM_DIRECT, 320, 200, 16, 8, 16, SEG_GRAPH } }, -+ { 0x10F, { MM_DIRECT, 320, 200, 24, 8, 16, SEG_GRAPH } }, -+ { 0x110, { MM_DIRECT, 640, 480, 15, 8, 16, SEG_GRAPH } }, -+ { 0x111, { MM_DIRECT, 640, 480, 16, 8, 16, SEG_GRAPH } }, -+ { 0x112, { MM_DIRECT, 640, 480, 24, 8, 16, SEG_GRAPH } }, -+ { 0x113, { MM_DIRECT, 800, 600, 15, 8, 16, SEG_GRAPH } }, -+ { 0x114, { MM_DIRECT, 800, 600, 16, 8, 16, SEG_GRAPH } }, -+ { 0x115, { MM_DIRECT, 800, 600, 24, 8, 16, SEG_GRAPH } }, -+ { 0x116, { MM_DIRECT, 1024, 768, 15, 8, 16, SEG_GRAPH } }, -+ { 0x117, { MM_DIRECT, 1024, 768, 16, 8, 16, SEG_GRAPH } }, -+ { 0x118, { MM_DIRECT, 1024, 768, 24, 8, 16, SEG_GRAPH } }, -+ { 0x119, { MM_DIRECT, 1280, 1024, 15, 8, 16, SEG_GRAPH } }, -+ { 0x11A, { MM_DIRECT, 1280, 1024, 16, 8, 16, SEG_GRAPH } }, -+ { 0x11B, { MM_DIRECT, 1280, 1024, 24, 8, 16, SEG_GRAPH } }, -+ { 0x11C, { MM_PACKED, 1600, 1200, 8, 8, 16, SEG_GRAPH } }, -+ { 0x11D, { MM_DIRECT, 1600, 1200, 15, 8, 16, SEG_GRAPH } }, -+ { 0x11E, { MM_DIRECT, 1600, 1200, 16, 8, 16, SEG_GRAPH } }, -+ { 0x11F, { MM_DIRECT, 1600, 1200, 24, 8, 16, SEG_GRAPH } }, -+ /* other modes */ -+ { 0x140, { MM_DIRECT, 320, 200, 32, 8, 16, SEG_GRAPH } }, -+ { 0x141, { MM_DIRECT, 640, 400, 32, 8, 16, SEG_GRAPH } }, -+ { 0x142, { MM_DIRECT, 640, 480, 32, 8, 16, SEG_GRAPH } }, -+ { 0x143, { MM_DIRECT, 800, 600, 32, 8, 16, SEG_GRAPH } }, -+ { 0x144, { MM_DIRECT, 1024, 768, 32, 8, 16, SEG_GRAPH } }, -+ { 0x145, { MM_DIRECT, 1280, 1024, 32, 8, 16, SEG_GRAPH } }, -+ { 0x146, { MM_PACKED, 320, 200, 8, 8, 16, SEG_GRAPH } }, -+ { 0x147, { MM_DIRECT, 1600, 1200, 32, 8, 16, SEG_GRAPH } }, -+ { 0x148, { MM_PACKED, 1152, 864, 8, 8, 16, SEG_GRAPH } }, -+ { 0x149, { MM_DIRECT, 1152, 864, 15, 8, 16, SEG_GRAPH } }, -+ { 0x14a, { MM_DIRECT, 1152, 864, 16, 8, 16, SEG_GRAPH } }, -+ { 0x14b, { MM_DIRECT, 1152, 864, 24, 8, 16, SEG_GRAPH } }, -+ { 0x14c, { MM_DIRECT, 1152, 864, 32, 8, 16, SEG_GRAPH } }, -+ { 0x175, { MM_DIRECT, 1280, 768, 16, 8, 16, SEG_GRAPH } }, -+ { 0x176, { MM_DIRECT, 1280, 768, 24, 8, 16, SEG_GRAPH } }, -+ { 0x177, { MM_DIRECT, 1280, 768, 32, 8, 16, SEG_GRAPH } }, -+ { 0x178, { MM_DIRECT, 1280, 800, 16, 8, 16, SEG_GRAPH } }, -+ { 0x179, { MM_DIRECT, 1280, 800, 24, 8, 16, SEG_GRAPH } }, -+ { 0x17a, { MM_DIRECT, 1280, 800, 32, 8, 16, SEG_GRAPH } }, -+ { 0x17b, { MM_DIRECT, 1280, 960, 16, 8, 16, SEG_GRAPH } }, -+ { 0x17c, { MM_DIRECT, 1280, 960, 24, 8, 16, SEG_GRAPH } }, -+ { 0x17d, { MM_DIRECT, 1280, 960, 32, 8, 16, SEG_GRAPH } }, -+ { 0x17e, { MM_DIRECT, 1440, 900, 16, 8, 16, SEG_GRAPH } }, -+ { 0x17f, { MM_DIRECT, 1440, 900, 24, 8, 16, SEG_GRAPH } }, -+ { 0x180, { MM_DIRECT, 1440, 900, 32, 8, 16, SEG_GRAPH } }, -+ { 0x181, { MM_DIRECT, 1400, 1050, 16, 8, 16, SEG_GRAPH } }, -+ { 0x182, { MM_DIRECT, 1400, 1050, 24, 8, 16, SEG_GRAPH } }, -+ { 0x183, { MM_DIRECT, 1400, 1050, 32, 8, 16, SEG_GRAPH } }, -+ { 0x184, { MM_DIRECT, 1680, 1050, 16, 8, 16, SEG_GRAPH } }, -+ { 0x185, { MM_DIRECT, 1680, 1050, 24, 8, 16, SEG_GRAPH } }, -+ { 0x186, { MM_DIRECT, 1680, 1050, 32, 8, 16, SEG_GRAPH } }, -+ { 0x187, { MM_DIRECT, 1920, 1200, 16, 8, 16, SEG_GRAPH } }, -+ { 0x188, { MM_DIRECT, 1920, 1200, 24, 8, 16, SEG_GRAPH } }, -+ { 0x189, { MM_DIRECT, 1920, 1200, 32, 8, 16, SEG_GRAPH } }, -+ { 0x18a, { MM_DIRECT, 2560, 1600, 16, 8, 16, SEG_GRAPH } }, -+ { 0x18b, { MM_DIRECT, 2560, 1600, 24, 8, 16, SEG_GRAPH } }, -+ { 0x18c, { MM_DIRECT, 2560, 1600, 32, 8, 16, SEG_GRAPH } }, -+ { 0x18d, { MM_DIRECT, 1280, 720, 16, 8, 16, SEG_GRAPH } }, -+ { 0x18e, { MM_DIRECT, 1280, 720, 24, 8, 16, SEG_GRAPH } }, -+ { 0x18f, { MM_DIRECT, 1280, 720, 32, 8, 16, SEG_GRAPH } }, -+ { 0x190, { MM_DIRECT, 1920, 1080, 16, 8, 16, SEG_GRAPH } }, -+ { 0x191, { MM_DIRECT, 1920, 1080, 24, 8, 16, SEG_GRAPH } }, -+ { 0x192, { MM_DIRECT, 1920, 1080, 32, 8, 16, SEG_GRAPH } }, -+}; -+unsigned int svga_mcount VAR16 = ARRAY_SIZE(svga_modes); -diff --git a/roms/seabios/vgasrc/svgamodes.h b/roms/seabios/vgasrc/svgamodes.h -new file mode 100644 -index 0000000000000000000000000000000000000000..782d30b9768f4a7cb8bfea6c1d24c483d68b45ed ---- /dev/null -+++ b/roms/seabios/vgasrc/svgamodes.h -@@ -0,0 +1,12 @@ -+#ifndef __SVGAMODES_H -+#define __SVGAMODES_H -+ -+struct generic_svga_mode { -+ u16 mode; -+ struct vgamode_s info; -+}; -+ -+extern struct generic_svga_mode svga_modes[] VAR16; -+extern unsigned int svga_mcount VAR16; -+ -+#endif /* __SVGAMODES_H */ diff --git a/xen-add-block-resize-support-for-xen-dis.patch b/xen-add-block-resize-support-for-xen-dis.patch index 0177ba3..3f800a0 100644 --- a/xen-add-block-resize-support-for-xen-dis.patch +++ b/xen-add-block-resize-support-for-xen-dis.patch @@ -15,10 +15,10 @@ Signed-off-by: Bruce Rogers 1 file changed, 3 insertions(+) diff --git a/hw/block/xen-block.c b/hw/block/xen-block.c -index 9bc6db52b4be8510e322e61ba5a7..1f8c8ae85abde736b5a58d1f4cb9 100644 +index 0007ee64c75f38a2a3256f0b9462..86de57f9c6f7405bc26303065d2c 100644 --- a/hw/block/xen-block.c +++ b/hw/block/xen-block.c -@@ -273,6 +273,9 @@ static void xen_block_realize(XenDevice *xendev, Error **errp) +@@ -274,6 +274,9 @@ static void xen_block_realize(XenDevice *xendev, Error **errp) xen_block_set_size(blockdev); diff --git a/xen-ignore-live-parameter-from-xen-save-.patch b/xen-ignore-live-parameter-from-xen-save-.patch index 27e5da8..6e3ccad 100644 --- a/xen-ignore-live-parameter-from-xen-save-.patch +++ b/xen-ignore-live-parameter-from-xen-save-.patch @@ -27,10 +27,10 @@ Signed-off-by: Bruce Rogers 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/migration/savevm.c b/migration/savevm.c -index 79ed44d47576ff2942da04827eae..106e6e640e87c99b655aca3a5d96 100644 +index a71b930b91f71ed9763fcb07b525..c5cc5fed211e693723538e19850b 100644 --- a/migration/savevm.c +++ b/migration/savevm.c -@@ -2693,7 +2693,7 @@ void qmp_xen_save_devices_state(const char *filename, bool has_live, bool live, +@@ -2774,7 +2774,7 @@ void qmp_xen_save_devices_state(const char *filename, bool has_live, bool live, * So call bdrv_inactivate_all (release locks) here to let the other * side of the migration take controle of the images. */ diff --git a/xen_disk-Add-suse-specific-flush-disable.patch b/xen_disk-Add-suse-specific-flush-disable.patch index 7fe7a3a..01973b3 100644 --- a/xen_disk-Add-suse-specific-flush-disable.patch +++ b/xen_disk-Add-suse-specific-flush-disable.patch @@ -18,10 +18,10 @@ Signed-off-by: Olaf Hering 1 file changed, 12 insertions(+) diff --git a/hw/block/xen-block.c b/hw/block/xen-block.c -index 69d73196e2a074e771f5fb771649..9bc6db52b4be8510e322e61ba5a7 100644 +index 879fc310a4c5dfa4a7d8936f7d8e..0007ee64c75f38a2a3256f0b9462 100644 --- a/hw/block/xen-block.c +++ b/hw/block/xen-block.c -@@ -741,6 +741,8 @@ static XenBlockDrive *xen_block_drive_create(const char *id, +@@ -743,6 +743,8 @@ static XenBlockDrive *xen_block_drive_create(const char *id, const char *mode = qdict_get_try_str(opts, "mode"); const char *direct_io_safe = qdict_get_try_str(opts, "direct-io-safe"); const char *discard_enable = qdict_get_try_str(opts, "discard-enable"); @@ -30,7 +30,7 @@ index 69d73196e2a074e771f5fb771649..9bc6db52b4be8510e322e61ba5a7 100644 char *driver = NULL; char *filename = NULL; XenBlockDrive *drive = NULL; -@@ -810,6 +812,16 @@ static XenBlockDrive *xen_block_drive_create(const char *id, +@@ -812,6 +814,16 @@ static XenBlockDrive *xen_block_drive_create(const char *id, } }