aboutsummaryrefslogtreecommitdiff
path: root/pc-bios
AgeCommit message (Collapse)AuthorFilesLines
2023-03-20Merge tag 'edk2-stable202302-20230320-pull-request' of ↵Peter Maydell9-2/+2
https://gitlab.com/kraxel/qemu into staging update edk2 to 202302 stable tag # -----BEGIN PGP SIGNATURE----- # # iQIzBAABCgAdFiEEoDKM/7k6F6eZAf59TLbY7tPocTgFAmQYKWwACgkQTLbY7tPo # cTinlA/9EVWaAyb7UV56My5Zbo41okXev8xmZV8R0G2xAbGaM22v/mPZaifA9Iqn # JG19Go4xzTmX12Ttg/Def30Bu2RcjHfHccYycUQ7brd40rS8Gc2QYZX4p9NltUda # dJOMB4e+7MKkavCrqfiHB6LWGMk27cT5puvMkmt65+/WsoBV1gcc0SmFK8tWIM3N # dZqGdPr9ml72+fv7Cf7crShGEfwV/d3LkJ30Zccq0mbS08QcLm1SbyIB2+SdCyrE # 35okXRJePACdh7rOWQgWrYAy1CTb54Vup7Fraq0a9NjfknKoQBxWt0w1L95d3p0d # i8j0Yl1G5rD+Ybqvz/KgDLVNpKddttpkD1CECfZynOioHvwXWODrcJCKF9xsXcRR # 9Lmeq090ottEbrYXln/clAjwNnF5ALNMEdvmOBZnFBG1H1bxTMI7VwWZEwRBQ5nu # qtJf11oxuF9Lsi8OzIFcWx0hHkUmIrjCvnyNrVdxoMVPHcXXz1yD8MVV8vgg4jcL # Fs/s9h62ymv0n3L0OYbgCfXgVWgomcgAkWfHcv+k8sEyzRa2v2wQ9zyVMnjelNkJ # i/YEn+dupaZ20a6cLoYGQGBOACJ3iHyd1wZ0XzwSYYMq50X/ESRXAo5XofCAhzuz # 5LQ3VgzQevFOuRwwqjnAwaZHt5M6Ysj0V28iYpMBJDsk+sMP5nM= # =7oxT # -----END PGP SIGNATURE----- # gpg: Signature made Mon 20 Mar 2023 09:37:48 GMT # gpg: using RSA key A0328CFFB93A17A79901FE7D4CB6D8EED3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>" [full] # gpg: aka "Gerd Hoffmann <gerd@kraxel.org>" [full] # gpg: aka "Gerd Hoffmann (private) <kraxel@gmail.com>" [full] # Primary key fingerprint: A032 8CFF B93A 17A7 9901 FE7D 4CB6 D8EE D3E8 7138 * tag 'edk2-stable202302-20230320-pull-request' of https://gitlab.com/kraxel/qemu: edk2: update firmware binaries edk2: replace build scripts edk2: update submodule to edk2-stable202302 acpi: disable tests/data/acpi updates bios-tables-test: use 128M numa nodes on aarch64 acpi: enable tests/data/acpi updates Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2023-03-20replace TABs with spacesYeqi Fu1-131/+131
Bring the files in line with the QEMU coding style, with spaces for indentation. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/378 Signed-off-by: Yeqi Fu <fufuyqqqqqq@gmail.com> Message-Id: <20230315032649.57568-1-fufuyqqqqqq@gmail.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
2023-03-20edk2: update firmware binariesGerd Hoffmann8-0/+0
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2023-03-20edk2: update submodule to edk2-stable202302Gerd Hoffmann1-2/+2
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
2023-03-16update seabios binaries to 1.16.2Gerd Hoffmann12-0/+0
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2023-03-09Merge tag 'qemu-openbios-20230307' of https://github.com/mcayland/qemu into ↵Peter Maydell3-0/+0
staging qemu-openbios queue # -----BEGIN PGP SIGNATURE----- # # iQFSBAABCgA8FiEEzGIauY6CIA2RXMnEW8LFb64PMh8FAmQHzaMeHG1hcmsuY2F2 # ZS1heWxhbmRAaWxhbmRlLmNvLnVrAAoJEFvCxW+uDzIfF6oH/36gb8xmx7Pr9gj3 # QbR/ifskdvfjWXowoinaOVTBfOqEy3b3NrmbT+rG9MHZZSiMzUjYDekumrcy1vXE # GxmhPLUGsHhKb0NWG20vwAXPVkV1Frys/35uTUdXufJqHgzasBIgZEWOLD0FiYlD # +xrOvNlaXjiaefohke/Lzyulxiytt9Trn25tvnu+vFzufKwkT1IGg4+jqXNSYi/A # 6f++PjEzusoK5KzxEif3F0BGauujtP/xDz2cVkg5nKmJe+cXPhWfCZWPIya6cbHZ # vVgclmTRiPHQ8lKQM0oQfMut7s07qGoLhF8s4GUAyzLWR7s7udsmNJVphqa8AKxz # LD8zZb0= # =BK0K # -----END PGP SIGNATURE----- # gpg: Signature made Tue 07 Mar 2023 23:49:55 GMT # gpg: using RSA key CC621AB98E82200D915CC9C45BC2C56FAE0F321F # gpg: issuer "mark.cave-ayland@ilande.co.uk" # gpg: Good signature from "Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>" [full] # Primary key fingerprint: CC62 1AB9 8E82 200D 915C C9C4 5BC2 C56F AE0F 321F * tag 'qemu-openbios-20230307' of https://github.com/mcayland/qemu: roms/openbios: update OpenBIOS images to af97fd7a built from submodule Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2023-03-09Merge tag 'pull-request-2023-03-07' of https://gitlab.com/thuth/qemu into ↵Peter Maydell3-39/+148
staging * Refine the distro support policy * Deprecate 32-bit x86 and arm hosts for system emulation * Check bison version to be >= 3.0 * Compile vnc test only if vnc is really enabled * Check docs/config/ich9-ehci-uhci.cfg via the readconfig-test * s390x: Add support for list-directed IPL from ECKD DASD # -----BEGIN PGP SIGNATURE----- # # iQJFBAABCAAvFiEEJ7iIR+7gJQEY8+q5LtnXdP5wLbUFAmQIQD0RHHRodXRoQHJl # ZGhhdC5jb20ACgkQLtnXdP5wLbX+EA/5ATc/Rz9Y8TZF36/sUKrmjOxQnX91hgRW # zovgZejoHtek1AC4pLd9kcpo1JonXkOfmbkNRYTw6+1wY6Ipt2apkWAc+MqfvQ80 # dGznbLXnX/E2QHW7h5XqvAhRGvjog9b38zAQcR37PKZ9DkSfWBwMgTT2SXYpLUjR # YWgqPGBYRq1ViG4q7hv2dHqi/idzh+DOWFGU5NAQC1fEBOmPYN9u6vfbX86dwZsy # S9pqw16yN2MZKL2bgIViFIjdhPPMO3RFcv8NTPipzk3g/pHNIv58+xCE8r/Tp8LW # JRQzdh6JbGvj1BXH68igXWGUFW6dhOXZWhgmFe4QEDaiCj91pHGvQCYgo2agx2bl # rXaSQXSMhIcm+t9C9kO6UNxZf+1HohcM1ZlQXhvX6FcBPVMUx/52YEpiK+OtBKyq # 43AlKp4fp1xXLFSOyMNgSMR90sksng6CEoQqTr0jCZtF8H18wb+eHfb6dME3XRCw # SKQeNGhkP1FxaQnlRAkeBxW7GkDE5YBjf9pSIaLZ/8VsLdyo3SK/DLkre5+qnu/V # lksZlt1K7xDLxRFopBuVJ3MHeFSRazBDbWfrRFOALkdbGEEeZnnmEPFjD3mag+P4 # 1y9WmBJHRLlvhlm195WA8babenUZoOfLkPrL0k7mNLs9sZyx1eIkZfOUgCWjFE2V # 9VBOWL8oi/w= # =p13b # -----END PGP SIGNATURE----- # gpg: Signature made Wed 08 Mar 2023 07:58:53 GMT # gpg: using RSA key 27B88847EEE0250118F3EAB92ED9D774FE702DB5 # gpg: issuer "thuth@redhat.com" # gpg: Good signature from "Thomas Huth <th.huth@gmx.de>" [full] # gpg: aka "Thomas Huth <thuth@redhat.com>" [full] # gpg: aka "Thomas Huth <huth@tuxfamily.org>" [full] # gpg: aka "Thomas Huth <th.huth@posteo.de>" [unknown] # Primary key fingerprint: 27B8 8847 EEE0 2501 18F3 EAB9 2ED9 D774 FE70 2DB5 * tag 'pull-request-2023-03-07' of https://gitlab.com/thuth/qemu: pc-bios/s390-ccw: Update s390-ccw.img with the list-directed IPL fix pc-bios: Add support for List-Directed IPL from ECKD DASD docs/config: Set the "kvm" accelerator via "[accel]" section tests/qtest/readconfig: Test docs/config/ich9-ehci-uhci.cfg tests/qtest/readconfig: Rework test_object_rng_resp into a generic function gitlab-ci.d/crossbuilds: Drop the 32-bit arm system emulation jobs docs/about/deprecated: Deprecate 32-bit arm hosts for system emulation gitlab-ci.d/crossbuilds: Drop the i386 system emulation job docs/about/deprecated: Deprecate 32-bit x86 hosts for system emulation include/hw/i386: Clean up includes in x86.h test: Check vnc enable before compiling vnc test Hexagon (meson.build): define min bison version docs/about/build-platforms: Refine the distro support policy Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2023-03-08pc-bios/s390-ccw: Update s390-ccw.img with the list-directed IPL fixThomas Huth1-0/+0
This update includes the list-directed IPL fix from Jared Rossi. Signed-off-by: Thomas Huth <thuth@redhat.com>
2023-03-08pc-bios: Add support for List-Directed IPL from ECKD DASDJared Rossi2-39/+148
Check for a List Directed IPL Boot Record, which would supersede the CCW type entries. If the record is valid, proceed to use the new style pointers and perform LD-IPL. Each block pointer is interpreted as either an LD-IPL pointer or a legacy CCW pointer depending on the type of IPL initiated. In either case CCW- or LD-IPL is transparent to the user and will boot the same image regardless of which set of pointers is used. Because the interactive boot menu is only written with the old style pointers, the menu will be disabled for List Directed IPL from ECKD DASD. If the LD-IPL fails, retry the IPL using the CCW type pointers. If no LD-IPL boot record is found, simply perform CCW type IPL as usual. Signed-off-by: Jared Rossi <jrossi@linux.ibm.com> Message-Id: <20230221174548.1866861-2-jrossi@linux.ibm.com> [thuth: Drop some superfluous parantheses] Signed-off-by: Thomas Huth <thuth@redhat.com>
2023-03-07roms/openbios: update OpenBIOS images to af97fd7a built from submoduleMark Cave-Ayland3-0/+0
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
2023-03-05roms/opensbi: Upgrade from v1.1 to v1.2Bin Meng2-0/+0
Upgrade OpenSBI from v1.1 to v1.2 and the pre-built bios images. The v1.2 release includes the following commits: 994c8cf lib: sbi_timer: Added a conditional wait function which can timeout caa5eea lib: sbi: add check for ipi device for hsm start 0374ccf lib: sbi_hart: Shorten the code to set MPV bit 4e21cca lib: utils/serial: Update Shakti UART based on latest implementation 88b790f lib: sbi: Fix sbi_snprintf 1545afd lib: sbi: Fix counter index sanity check 83db3af lib: sbi: Add the bound check for events during config match 860a376 lib: sbi: Fix possible buffer overrun in counter validation 11c0008 lib: sbi: Fix fw_event_map initialization 8e86b23 lib: utils/fdt: Factor out common uart node code 7d28d3b lib: utils/serial: Initialize platform_uart_data to zero 7198e1d lib: serial: Clean up coding style in sifive-uart.c f272035 lib: utils/serial: Ensure baudrate is non-zero before using b9edf49 lib: sbi: Fix printf handling of long long 422f0e0 scripts: Add Kconfiglib v14.1.0 under scripts directory 662e631 Makefile: Add initial kconfig support for each platform de80e93 Makefile: Compile lib/utils sources separately for each platform 26bbff5 lib: utils/serial: Use kconfig for enabling/disabling drivers 2adc94b lib: utils/reset: Use kconfig for enabling/disabling drivers 3e76a60 lib: utils/sys: Use kconfig for enabling/disabling drivers 013dbb3 lib: utils/timer: Use kconfig for enabling/disabling drivers 76af9d4 lib: utils/ipi: Use kconfig for enabling/disabling drivers 0b1cf2f lib: utils/irqchip: Use kconfig for enabling/disabling drivers b126ce4 lib: utils/i2c: Use kconfig for enabling/disabling drivers 5616aa4 lib: utils/gpio: Use kconfig for enabling/disabling drivers 68d7b85 lib: utils/fdt: Use kconfig for enabling/disabling d514a8f platform: generic: Use kconfig for enabling/disabling overrides bc317a3 platform: generic: Use kconfig to set platform version and default name eccb9df platform: Remove redundant config.mk from all platforms 0723bab docs: Update documentation for kconfig support a6a8557 Makefile: Fix typo related to object.mk 9529e36 include: Add mstatus[h].GVA encodings 1fbe777 lib: sbi_trap: Save mstatus[h].GVA in trap->gva 1c4ce74 lib: sbi: Set gva when creating sbi_trap_info 5a0ca09 lib: sbi_trap: Set hypervisor CSRs for HS-mode a69eb6c lib: sbi_trap: Set hstatus.GVA when going to HS-mode 111afc1 lib: sbi_illegal_insn: Fix FENCE.TSO emulation infinite trap loop adf44b5 lib: sbi: Use the official extension name for AIA M-mode CSRs cbaa9b0 lib: utils: serial: Add Cadence UART driver 622cc5f include: Remove sideleg and sedeleg a90cf6b lib: sbi_pmu: Remove "event_idx" member from struct sbi_pmu_fw_event 1664d0e lib: sbi_pmu: Replace sbi_pmu_ctr_read() with sbi_pmu_ctr_fw_read() e238459 lib: sbi_pmu: Firmware counters are always 64 bits wide c9b388d lib: sbi_pmu: Simplify FW counters to reduce memory usage d10c1f4 lib: sbi_pmu: Add custom PMU device operations ee69f8e lib: sbi: Print platform PMU device at boot-time 5019fd1 include: sbi: Reduce includes in sbi_pmu.h d32b0a9 docs: pmu: fix Unmatched example typo 19664f6 docs: pmu: extend bindings example for Unmatched 37a0d83 lib: sbi_trap: Add helper to get GVA in sbi_trap_regs 46e744a lib: sbi_misaligned_ldst: Set GVA if not emulating 8ce486a lib: utils/fdt: Fix DT parsing in fdt_pmu_setup() 49372f2 lib: sbi: Fix sbi_strnlen wrong count decrement 7f09fba lib: utils/serial: add semihosting support 7105c18 docs/firmware: Update FW_JUMP documentation 3f3d401 docs: Fix some typos e54cb32 lib: sbi_pmu: move pmu irq information into pmu itself c316fa3 lib: sbi_hart: move hart_features struct to a public location 4f2acb5 lib: sbi_platform: expose hart_features to extension_init callback 2f63f24 platform: generic: add extensions_init handler and platform-override b6e520b platform: generic: allwinner: add support for c9xx pmu 98aa127 include: sbi: Fix typo in comment 11d14ae lib: sbi: Fix typo in comment 60b78fe include: sbi: Fix grammar in comment dcdaf30 lib: sbi: Add sbi_domain_root_add_memrange() API bd7ef41 platform: andes/ae350: Remove enabling cache from an350_final_init 9899b59 platform: andes/ae350: Use kconfig to set platform version and default name 88f58a3 platform: andes/ae350: Use fdt serial driver ef9f02e lib: utils/timer: Add Andes fdt timer support 8234fc1 lib: utils/reset: Add Andes fdt reset driver support 127a3f2 platform: andes/ae350: Use fdt irqchip driver 6f3258e platform: andes/ae350: Add fw_platform_init for platform initialization ce7c490 lib: utils/ipi: Add Andes fdt ipi driver support c8683c5 platform: andes/ae350: Add AE350 domain support d682a0a docs: andes-ae350.md: Update ae350 documentation for fdt driver support 0fee0bf Makefile: Add cscope support 51acd49 docs/firmware: update the document 9d54f43 Makefile: Add rules for carray sources in lib/sbi 56bed1a lib: sbi_ecall: Generate extensions list with carray 22f38ee lib: sbi_ecall: Add Kconfig option for each extension 85cf56c lib: utils/fdt: Remove redundant code 21ba418 lib: utils/fdt: Simplified code 8e9966c docs: fix some typos 7b29264 lib: utils/serial: Fix semihosting compile error using LLVM 14f5c4c lib: sbi_ecall: Split up sbi_ecall_replace 8e63716 firmware: payloads: Optimize usage of "ALIGN" 1b0d71b platform: generic/allwinner: Remove unused header files 9a740f5 platform: generic/allwinner: Remove ghostly type cast ba32021 Makefile: replace `echo` with `printf` for compatibility 49b0e35 Makefile: bugfix for handling platform paths 74e2029 lib: sbi: Simplified mmio match checking fc82e84 lib: sbi: Fix is_region_valid() f8eec91 lib: simplify fdt_parse_plmt_node() cc54184 lib: simplify fdt_parse_plicsw_node() e9bc7f1 lib: fix fdt_parse_plmt_node() 5daa0ef lib: fix fdt_parse_plicsw_node() 1f6866e lib: simplify fdt_translate_address() ad2ac29 lib: fix fdt_parse_aclint_node() cfbabb9 firmware: Minor optimization for relocate a36d455 platform: generic/andes: Enable generic platform support for AE350 6cd4b9b docs: platform: Update AE350 and generic platform documentation d3fcff7 docs: andes-ae350.md: fix watchdog nodename in dts example 4640d04 scripts/create-binary-archive.sh: remove andes/ae350 build directory e977512 lib: utils: Add fdt_fixup_node() helper function e1a0cb0 gitignore: add vim swap files ed8b8f5 platform: generic: Make use of fdt_match_node() 8b00be6 lib: fix is_region_valid() c2be214 lib: fix __fdt_parse_region() 7b08778 lib: fix irqchip_plic_update_hartid_table cb568b9 lib: sbi: Synchronize PMP settings with virtual memory system 506928a scripts: use env to invoke bash 64e8b9f lib: utils: serial: Add Renesas SCIF driver 0021b43 lib: utils: serial: Add FDT driver for Renesas SCIF 6840902 lib: utils/irqchip: Add compatible string for Andestech NCEPLIC100 8b1617d platform: generic: Add Renesas RZ/Five initial support 7a3354a docs: platform: Add documentation for Renesas RZ/Five SoC 34da663 lib: utils/irqchip: plic: Fix the off-by-one error in priority save/restore helpers 8509e46 lib: utils/irqchip: plic: Ensure no out-of-bound access in priority save/restore helpers 91c8a7d lib: utils/irqchip: plic: Fix the off-by-one error in plic_context_init() fabbc00 lib: utils/irqchip: plic: Fix the off-by-one error in context save/restore helpers 9a2eeb4 lib: utils/irqchip: plic: Ensure no out-of-bound access in context save/restore helpers a8ee82c lib: utils/ipi: mswi: add T-Head C9xx CLINT compatible ca7810a lib: utils/timer: mtimer: add a quirk for lacking mtime register b848d87 lib: utils/timer: mtimer: add T-Head C9xx CLINT compatible 391ec85 docs: pmu: fix binding example 0412460 docs: pmu: update a reference to a deprecated property name d5d12a9 docs: pmu: Update the pmu doc with removal of mcountinhbit restriction 6b5188c include: Bump-up version to 1.2 Signed-off-by: Bin Meng <bmeng@tinylab.org> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Message-id: <20230207044003.3669059-1-bmeng@tinylab.org> Signed-off-by: Alistair Francis <alistair.francis@wdc.com> Message-ID: <20230303202448.11911-3-palmer@rivosinc.com> Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
2023-02-27meson: fix dependency on qemu-keymapSteve Sistare1-1/+1
When qemu-keymap is not available on the host, and enable-xkbcommon is specified, parallel make fails with: % make clean ... % make -j 32 ... FAILED: pc-bios/keymaps/is ./qemu-keymap -f pc-bios/keymaps/is -l is /bin/sh: ./qemu-keymap: No such file or directory ... many similar messages ... The code always runs find_program, rather than waiting to build qemu-keymap, because it looks for CONFIG_XKBCOMMON in config_host rather than config_host_data. Making serially succeeds, by soft linking files from pc-bios/keymaps, but that is not the desired result for enable-xkbcommon. Examining all occurrences of 'in config_host' for similar bugs shows one instance in the docs, which is also fixed here. Fixes: 4113f4cfee ("meson: move xkbcommon to meson") Signed-off-by: Steve Sistare <steven.sistare@oracle.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <1675708442-74966-1-git-send-email-steven.sistare@oracle.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
2023-02-14hw/misc/sga: Remove the deprecated "sga" deviceThomas Huth3-7/+0
It's been deprecated since QEMU v6.2, so it should be OK to finally remove this now. Message-Id: <20230209161540.1054669-1-thuth@redhat.com> Reviewed-by: Juan Quintela <quintela@redhat.com> Acked-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
2022-11-28update seabios binaries to 1.16.1Gerd Hoffmann12-0/+0
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2022-11-16s390x: Fix spelling errorsThomas Huth3-3/+3
Fix typos (discovered with the 'codespell' utility). Note: Though "migrateable" still seems to be a valid spelling, we change it to "migratable" since this is the way more common spelling here. Message-Id: <20221111182828.282251-1-thuth@redhat.com> Reviewed-by: Stefan Weil <sw@weilnetz.de> Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
2022-10-06pc-bios/vof: Adopt meson style Make outputPaolo Bonzini1-4/+11
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20220929114231.583801-32-alex.bennee@linaro.org>
2022-10-06pc-bios/s390-ccw: Adopt meson style Make outputPaolo Bonzini2-16/+16
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20220929114231.583801-31-alex.bennee@linaro.org>
2022-10-06pc-bios/optionrom: Adopt meson style Make outputPaolo Bonzini1-7/+7
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20220929114231.583801-30-alex.bennee@linaro.org>
2022-10-06vof: add distclean targetPaolo Bonzini1-1/+3
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> [AJB: add clean dep to distclean] Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20220929114231.583801-16-alex.bennee@linaro.org>
2022-10-06pc-bios/s390-ccw: detect CC options just oncePaolo Bonzini2-13/+27
In preparation for adding Docker container support, detect compiler options just once rather than once per Make run; container startup overhead is substantial and doing the detection just once makes things faster. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20220929114231.583801-15-alex.bennee@linaro.org>
2022-10-06pc-bios/optionrom: detect CC options just oncePaolo Bonzini1-12/+25
In preparation for adding Docker container support, detect compiler options just once rather than once per Make run; container startup overhead is substantial and doing the detection just once makes things faster. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20220929114231.583801-14-alex.bennee@linaro.org>
2022-09-27configure: do not invoke as/ld directly for pc-bios/optionromPaolo Bonzini1-8/+4
Just use using the compiler binary, with -nostdlib in the case of the linker; the compiler driver (whether i686-*-gcc, or x86_64-*-gcc with the -m32 option) will then pick the right magic option to as and ld. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2022-09-27qboot: rebuild based on latest commitPaolo Bonzini1-0/+0
df22fbb751 ("qboot: update to latest submodule") updated the qboot submodule from a5300c49 to 8ca302e8. However, qboot isn't built during the QEMU's build process but rather is included in binary form. So rebuild it here. Cc: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> [Rebuilt it myself for paranoia. - Paolo] Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2022-09-07roms/opensbi: Upgrade from v1.0 to v1.1Bin Meng2-0/+0
Upgrade OpenSBI from v1.0 to v1.1 and the pre-built bios images. The v1.1 release includes the following commits: 5b99603 lib: utils/ipi: Fix size check in aclint_mswi_cold_init() 6dde435 lib: utils/sys: Extend HTIF library to allow custom base address 8257262 platform: sifive_fu740: do not use a global in da9063_reset/shutdown fb688d9 platform: sifive_fu740: fix reset when watchdog is running 5d025eb lib: fix pointer of type 'void *' used in arithmetic 632f593 lib: sbi: Map only the counters enabled in hardware 3b7c204 lib: sbi: Disable interrupt during config matching a26dc60 lib: sbi: Disable interrupt and inhibit counting in M-mode during init 5d53b55 Makefile: fix build with binutils 2.38 6ad8917 lib: fix compilation when strings.h is included ce4c018 lib: utils/serial: Round UART8250 baud rate divisor to nearest integer 01250d0 include: sbi: Add AIA related CSR defines 8f96070 lib: sbi: Detect AIA CSRs at boot-time 65b4c7c lib: sbi: Use AIA CSRs for local interrupts when available 222132f lib: sbi: Add sbi_trap_set_external_irqfn() API 5f56314 lib: utils/irqchip: Allow multiple FDT irqchip drivers 1050940 include: sbi: Introduce nascent_init() platform callback 55e79f8 lib: sbi: Enable mie.MEIE bit for IPIs based on external interrupts. 9f73669 lib: utils/irqchip: Add IMSIC library 811da5c lib: utils/irqchip: Add FDT based driver for IMSIC 7127aaa lib: utils: Disable appropriate IMSIC DT nodes in fdt_fixups() 9979265 lib: utils/irqchip: Add APLIC initialization library 3461219 lib: utils/irqchip: Add FDT based driver for APLIC 8e2ef4f lib: utils: Disable appropriate APLIC DT nodes in fdt_fixups() 3a69cc1 lib: sbi: fix typo in is_region_subset f2ccf2f lib: sbi: verbose sbi_domain_root_add_memregion f3f4604 lib: sbi: Add a simple external interrupt handling framework 4998a71 lib: utils: serial: Initial commit of xlnx-uartlite 2dfbd3c lib: pmp_set/pmp_get moved errors from runtime to compile time b6b7220 firmware: Fix code for accessing hart_count and stack_size d552fc8 lib: Add error messages via conditional compilation for the future 555bdb1 include: Use static asserts for SBI_PLATFORM_xxx_OFFSET defines 1b42d3a include: Use static asserts for SBI_SCRATCH_xxx_OFFSET defines 7924a0b include: Use static asserts for FW_DYNAMIC_INFO_xxx_OFFSET defines 722f80d include: Add defines for [m|h|s]envcfg CSRs 31fecad lib: sbi: Detect menvcfg CSR at boot time 47d6765 lib: sbi: Enable Zicbo[m|z] extensions in the menvcfg CSR 794986f lib: sbi: Enable Svpbmt extension in the menvcfg CSR 499601a lib: sbi: Add Smstateen extension defines d44568a lib: sbi: Detect Smstateen CSRs at boot-time 3383d6a lib: irqchip/imsic: configure mstateen 5c5cbb5 lib: utils/serial: support 'reg-offset' property c1e47d0 include: correct the definition of MSTATUS_VS 9cd95e1 lib: sbi/hart: preserve csr validation value 4035ae9 docs: pmu: Improve the PMU DT bindings d62f6da lib: sbi: Implement Sstc extension 474a9d4 lib: sbi: Fix mstatus_init() for RV32 when Sscofpmf is not available e576b3e include: sbi: Define SBI_PMU_HW_EVENT_MAX to 256 b0c9df5 lib: sbi: Fix mhpmeventh access for rv32 in absence of sscofpmf 1a754bb lib: sbi: Detect and print privileged spec version 5a6be99 lib: sbi: Remove 's' and 'u' from misa_string() output 5b8b377 lib: sbi: Update the name of ISA string printed at boot time d4b563c lib: sbi: Remove MCOUNTEREN and SCOUNTEREN hart features dbc3d8f lib: sbi: Remove MCOUNTINHIBT hart feature 97a17c2 lib: sbi: Remove MENVCFG hart feature a6ab94f lib: sbi: Fix AIA feature detection cad6c91 lib: sbi: Convert hart features into hart extensions be4903a lib: sbi: Detect hart features only once for each hart 994ace3 lib: sbi: Add sbi_hart_update_extension() function 023f0ad lib: sbi_platform: Add callback to populate HART extensions f726f2d Makefile: Allow generated C source to be anywhere in build directory 7fb474b Makefile: Add support for generating C array at compile time 73cf511 lib: utils/reset: Generate FDT reset driver list at compile-time 1e62705 lib: utils/serial: Generate FDT serial driver list at compile-time bfeb305 lib: utils/timer: Generate FDT timer driver list at compile-time 3a69d12 lib: utils/irqchip: Generate FDT irqchip driver list at compile-time 4ee0c57 lib: utils/ipi: Generate FDT ipi driver list at compile-time 998ed43 lib: utils/i2c: Generate FDT i2c adapter driver list at compile-time 4eacd82 lib: utils/gpio: Generate FDT gpio driver list at compile-time a3a3c60 platform: generic: Generate platform override module list at compile-time 9a7a677 platform: generic: Move Sifive platform overrides into own directory 851c14d lib: utils/irqchip: fix typo when checking for CPU node 90a9dd2 lib: utils/fdt: introduce fdt_node_is_enabled() 616da52 lib: utils: check if CPU node is enabled 575bb4e platform: generic: check if CPU node is enabled 1bc67db lib: utils/fdt: rename fdt_parse_max_hart_id f067bb8 lib: sbi: fix system_opcode_insn fab0379 lib: utils/fdt: Require match data to be const 295e5f3 lib: sbi_timer: Drop unnecessary get_platform_ticks wrapper ff65bfe lib: sbi_illegal_insn: Constify illegal_insn_table cb8271c lib: sbi_illegal_insn: Add emulation for fence.tso adc3388 lib: sbi_trap: Redirect exception based on hedeleg ce1d618 platform: generic: add overrides for vendor extensions b20ed9f lib: sbi_hsm: Call a device hook during hart resume 79e42eb lib: sbi_hsm: Assume a consistent resume address 2ea7799 lib: irqchip/plic: Constify plic_data pointers 8c362e7 lib: irqchip/plic: Factor out a context init function 415ecf2 lib: irqchip/plic: Add context save/restore helpers 2b79b69 lib: irqchip/plic: Add priority save/restore helpers 69be3df lib: utils/irqchip: Add FDT wrappers for PLIC save/restore functions 5e56758 lib: utils/irqchip: Add wrapper for T-HEAD PLIC delegation 9dc5ec5 platform: Add HSM implementation for Allwinner D1 551c70c include: sbi: Add mtinst/htinst psuedoinstructions 187127f lib: sbi: Fixup tinst for exceptions in sbi_misaligned_*() a07402a lib: sbi: Fix tval and tinst for sbi_get_insn() c653001 lib: utils: Remove CSRs that set/clear an IMSIC interrupt file bits 7738345 lib: utils/timer: Add a separate compatible for the D1 CLINT d76a196 lib: irqchip/plic: fix typo in plic_warm_irqchip_init 6f1fe98 lib: utils/timer: Remove Allwinner D1 CLINT compatibles c6fdbcf include: sbi: Change spec version to 1.0 3f66465 lib: pmu: allow to use the highest available counter 4489876 include: Bump-up version to 1.1 Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Message-Id: <20220713090613.204046-1-bmeng.cn@gmail.com> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
2022-09-02Merge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into stagingStefan Hajnoczi1-1/+0
* SCSI fixes for Mac OS 9 * Fix CPU reset for x86/KVM nested virtualization state * remove feature_not_found() from the configure script * Meson cleanups from muon * improved i386 TCG tests for BMI and SSE * SSE bugfixes # -----BEGIN PGP SIGNATURE----- # # iQFIBAABCAAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAmMQ+IQUHHBib256aW5p # QHJlZGhhdC5jb20ACgkQv/vSX3jHroNofQgArLRlbhua699UyDkTEGGv+gBVRRKg # qJndTFJp5cvjJo3fNeE1XyZGY0PGLH09ilwHKnGqvn7Bc996ty6zi3sLDC+iT/SO # cRik6EVgZH/0QseYZijviuz7NklL8so/bgn7sORP9ibRWwiojBzm91emUt4X2l5N # WOmxLYNIPXR/G8LOSv5Dh4C4WXU3zuaLvTmg/fWPoWTF8P+9LU0gEKUzyk0jMJu4 # hb9lVLXyNbgEcdtK+VewWjsdJcdmF1tMAR94GTmbUdwxbwmATqX8w16jGUbnXPt2 # FZfmjS6CJO90uV7wBA91NnFlrJpWyDn1dKQ+ozpW0ZOAO+wfghpVq7/IRA== # =VRK4 # -----END PGP SIGNATURE----- # gpg: Signature made Thu 01 Sep 2022 14:23:00 EDT # gpg: using RSA key F13338574B662389866C7682BFFBD25F78C7AE83 # gpg: issuer "pbonzini@redhat.com" # gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" [full] # gpg: aka "Paolo Bonzini <pbonzini@redhat.com>" [full] # Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4 E2F7 7E15 100C CD36 69B1 # Subkey fingerprint: F133 3857 4B66 2389 866C 7682 BFFB D25F 78C7 AE83 * tag 'for-upstream' of https://gitlab.com/bonzini/qemu: (39 commits) target/i386: AVX+AES helpers prep target/i386: AVX pclmulqdq prep target/i386: Rewrite blendv helpers target/i386: Misc AVX helper prep target/i386: Destructive FP helpers for AVX target/i386: Dot product AVX helper prep target/i386: reimplement AVX comparison helpers target/i386: Floating point arithmetic helper AVX prep target/i386: Destructive vector helpers for AVX target/i386: Misc integer AVX helper prep target/i386: Rewrite simple integer vector helpers target/i386: Rewrite vector shift helper target/i386: rewrite destructive 3DNow operations target/i386: Add CHECK_NO_VEX target/i386: do not cast gen_helper_* function pointers target/i386: Add size suffix to vector FP helpers target/i386: isolate MMX code more target/i386: check SSE table flags instead of hardcoding opcodes target/i386: Move 3DNOW decoder target/i386: Rework sse_op_table6/7 ... Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2022-09-01meson: remove dead codePaolo Bonzini1-1/+0
Found with "muon analyze". Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2022-08-30pseries: Update SLOF firmware imageAlexey Kardashevskiy2-1/+1
The only change is that now SLOF can also boot big endian zImage but kernel-addr=0 is still required. Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
2022-08-07pc-bios/s390-ccw: Update the s390-ccw.img with the block size fixThomas Huth1-0/+0
The new binary now gets the block size of virtio-blk devices right. Signed-off-by: Thomas Huth <thuth@redhat.com>
2022-08-07pc-bios/s390-ccw: Fix booting with logical block size < physical block sizeThomas Huth1-1/+1
For accessing single blocks during boot, it's the logical block size that matters. (Physical block sizes are rather interesting e.g. for creating file systems with the correct alignment for speed reasons etc.). So the s390-ccw bios has to use the logical block size for calculating sector numbers during the boot phase, the "physical_block_exp" shift value must not be taken into account. This change fixes the boot process when the guest hast been installed on a disk where the logical block size differs from the physical one, e.g. if the guest has been installed like this: qemu-system-s390x -nographic -accel kvm -m 2G \ -drive if=none,id=d1,file=fedora.iso,format=raw,media=cdrom \ -device virtio-scsi -device scsi-cd,drive=d1 \ -drive if=none,id=d2,file=test.qcow2,format=qcow2 -device virtio-blk,drive=d2,physical_block_size=4096,logical_block_size=512 Linux correctly uses the logical block size of 512 for the installation, but the s390-ccw bios tries to boot from a disk with 4096 block size so far, as long as this patch has not been applied yet (well, it used to work by accident in the past due to the virtio_assume_scsi() hack that used to enforce 512 byte sectors on all virtio-block disks, but that hack has been well removed in commit 5447de2619050a0a4d to fix other scenarios). Fixes: 5447de2619 ("pc-bios/s390-ccw/virtio-blkdev: Remove virtio_assume_scsi()") Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=2112303 Message-Id: <20220805094214.285223-1-thuth@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Reviewed-by: Eric Farman <farman@linux.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
2022-08-01misc: fix commonly doubled up wordsDaniel P. Berrangé1-1/+1
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Message-Id: <20220707163720.1421716-5-berrange@redhat.com> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Thomas Huth <thuth@redhat.com>
2022-07-13pc-bios/s390-ccw: add -Wno-array-boundsPaolo Bonzini1-0/+1
The option generates a lot of warnings for integers casted to pointers, for example: /home/pbonzini/work/upstream/qemu/pc-bios/s390-ccw/dasd-ipl.c:174:19: warning: array subscript 0 is outside array bounds of ‘CcwSeekData[0]’ [-Warray-bounds] 174 | seekData->cyl = 0x00; | ~~~~~~~~~~~~~~^~~~~~ Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2022-07-13datadir: Use bundle mechanismAkihiko Odaki2-25/+9
softmmu/datadir.c had its own implementation to find files in the build tree, but now bundle mechanism provides the unified implementation which works for datadir and the other files. Signed-off-by: Akihiko Odaki <akihiko.odaki@gmail.com> Message-Id: <20220624145039.49929-4-akihiko.odaki@gmail.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2022-07-12Merge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into stagingPeter Maydell5-35/+17
* fuzzing fixes (Alexander) * fix cross compilation CFLAGS and compiler choice * do not specify -bios option for tests/vm * miscellaneous fixes * preparation for pre-install tree in the build directory (Akihiko) # gpg: Signature made Tue 12 Jul 2022 13:47:19 BST # gpg: using RSA key F13338574B662389866C7682BFFBD25F78C7AE83 # gpg: issuer "pbonzini@redhat.com" # gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" [full] # gpg: aka "Paolo Bonzini <pbonzini@redhat.com>" [full] # Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4 E2F7 7E15 100C CD36 69B1 # Subkey fingerprint: F133 3857 4B66 2389 866C 7682 BFFB D25F 78C7 AE83 * tag 'for-upstream' of https://gitlab.com/bonzini/qemu: meson: place default firmware path under .../share qga: Relocate a path emitted in the help text build: Do not depend on pc-bios for config-host.mak accel: kvm: Fix memory leak in find_stats_descriptors audio/dbus: fix building fuzz: only use generic-fuzz targets on oss-fuzz build: improve -fsanitize-coverage-allowlist check build: try both native and cross compilers configure: pass whole target name to probe_target_compiler tests/tcg: compile system emulation tests as freestanding configure: write EXTRA_CFLAGS for all sub-Makefiles configure: allow more host/target combos to use the host compiler configure, pc-bios/vof: pass cross CFLAGS correctly configure, pc-bios/s390-ccw: pass cross CFLAGS correctly configure, pc-bios/optionrom: pass cross CFLAGS correctly pc-bios/optionrom: use -m16 unconditionally scsi/lsi53c895a: fix use-after-free in lsi_do_msgout (CVE-2022-0216) tests/vm: do not specify -bios option Signed-off-by: Peter Maydell <peter.maydell@linaro.org> # Conflicts: # pc-bios/s390-ccw/netboot.mak
2022-07-06pc-bios/s390-ccw: Update the s390-ccw bios binaries with the virtio-blk fixesThomas Huth2-0/+0
The binaries have been recompiled with the fixes from the previous patches. Signed-off-by: Thomas Huth <thuth@redhat.com>
2022-07-06pc-bios/s390-ccw/netboot.mak: Ignore Clang's warnings about GNU extensionsThomas Huth1-2/+5
When compiling the s390-ccw bios with Clang (v14.0), there is currently an unuseful warning like this: CC pc-bios/s390-ccw/ipv6.o ../../roms/SLOF/lib/libnet/ipv6.c:447:18: warning: variable length array folded to constant array as an extension [-Wgnu-folding-constant] unsigned short raw[ip6size]; ^ SLOF is currently GCC-only and cannot be compiled with Clang yet, so it is expected that such extensions sneak in there - and as long as we don't want to compile the code with a compiler that is neither GCC or Clang, it is also not necessary to avoid such extensions. Thus these GNU-extension related warnings are completely useless in the s390-ccw bios, especially in the code that is coming from SLOF, so we should simply disable the related warnings here now. Message-Id: <20220704111903.62400-13-thuth@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
2022-07-06pc-bios/s390-ccw/virtio: Remove "extern" keyword from prototypesThomas Huth1-6/+6
All the other protytpes in the headers here do not use the "extern" keyword, so let's unify this by removing the "extern" from the misfits, too. Message-Id: <20220704111903.62400-12-thuth@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
2022-07-06pc-bios/s390-ccw/virtio-blkdev: Request the right feature bitsThomas Huth1-0/+4
The virtio-blk code uses the block size and geometry fields in the config area. According to the virtio-spec, these have to be negotiated with the right feature bits during initialization, otherwise they might not be available. QEMU is so far very forgiving and always provides them, but we should not rely on this behavior, so let's better request them properly via the VIRTIO_BLK_F_GEOMETRY and VIRTIO_BLK_F_BLK_SIZE feature bits. Message-Id: <20220704111903.62400-11-thuth@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
2022-07-06pc-bios/s390-ccw: Split virtio-scsi code from virtio_blk_setup_device()Thomas Huth4-27/+38
The next patch is going to add more virtio-block specific code to virtio_blk_setup_device(), and if the virtio-scsi code is also in there, this is more cumbersome. And the calling function virtio_setup() in main.c looks at the device type already anyway, so it's more logical to separate the virtio-scsi stuff into a new function in virtio-scsi.c instead. Message-Id: <20220704111903.62400-10-thuth@redhat.com> Reviewed-by: Eric Farman <farman@linux.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
2022-07-06pc-bios/s390-ccw/virtio: Beautify the code for reading virtqueue configurationThomas Huth1-3/+2
It looks nicer if we separate the run_ccw() from the IPL_assert() statement, and the error message should talk about "virtio device" instead of "block device", since this code is nowadays used for non-block (i.e. network) devices, too. Message-Id: <20220704111903.62400-9-thuth@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Reviewed-by: Eric Farman <farman@linux.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
2022-07-06pc-bios/s390-ccw/virtio: Read device config after feature negotiationThomas Huth1-4/+3
Feature negotiation should be done first, since some fields in the config area can depend on the negotiated features and thus should rather be read afterwards. While we're at it, also adjust the error message here a little bit (the code is nowadays used for non-block virtio devices, too). Message-Id: <20220704111903.62400-8-thuth@redhat.com> Reviewed-by: Eric Farman <farman@linux.ibm.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
2022-07-06pc-bios/s390-ccw/virtio: Set missing status bits while initializingThomas Huth1-4/+14
According chapter "3.1.1 Driver Requirements: Device Initialization" of the Virtio specification (v1.1), a driver for a device has to set the ACKNOWLEDGE and DRIVER bits in the status field after resetting the device. The s390-ccw bios skipped these steps so far and seems like QEMU never cared. Anyway, it's better to follow the spec, so let's set these bits now in the right spots, too. Message-Id: <20220704111903.62400-7-thuth@redhat.com> Acked-by: Christian Borntraeger <borntraeger@linux.ibm.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Reviewed-by: Eric Farman <farman@linux.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
2022-07-06pc-bios/s390-ccw/virtio-blkdev: Remove virtio_assume_scsi()Thomas Huth2-25/+0
The virtio_assume_scsi() function is very questionable: First, it is only called for virtio-blk, and not for virtio-scsi, so the naming is already quite confusing. Second, it is called if we detected a "invalid" IPL disk, trying to fix it by blindly setting a sector size of 512. This of course won't work in most cases since disks might have a different sector size for a reason. Thus let's remove this strange function now. The calling code can also be removed completely, since there is another spot in main.c that does "IPL_assert(virtio_ipl_disk_is_valid(), ...)" to make sure that we do not try to IPL from an invalid device. Message-Id: <20220704111903.62400-6-thuth@redhat.com> Reviewed-by: Eric Farman <farman@linux.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
2022-07-06pc-bios/s390-ccw/virtio-blkdev: Simplify/fix virtio_ipl_disk_is_valid()Thomas Huth2-36/+7
The s390-ccw bios fails to boot if the boot disk is a virtio-blk disk with a sector size of 4096. For example: dasdfmt -b 4096 -d cdl -y -p -M quick /dev/dasdX fdasd -a /dev/dasdX install a guest onto /dev/dasdX1 using virtio-blk qemu-system-s390x -nographic -hda /dev/dasdX1 The bios then bails out with: ! Cannot read block 0 ! Looking at virtio_ipl_disk_is_valid() and especially the function virtio_disk_is_scsi(), it does not really make sense that we expect only such a limited disk geometry (like a block size of 512) for our boot disks. Let's relax the check and allow everything that remotely looks like a sane disk. Message-Id: <20220704111903.62400-5-thuth@redhat.com> Reviewed-by: Eric Farman <farman@linux.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
2022-07-06pc-bios/s390-ccw/bootmap: Improve the guessing logic in zipl_load_vblk()Thomas Huth1-4/+23
The logic of trying an final ISO or ECKD boot on virtio-block devices is very weird: Since the geometry hardly ever matches in virtio_disk_is_scsi(), virtio_blk_setup_device() always sets a "guessed" disk geometry via virtio_assume_scsi() (which is certainly also wrong in a lot of cases). zipl_load_vblk() then sees that there's been a "virtio_guessed_disk_nature" and tries to fix up the geometry again via virtio_assume_iso9660() before always trying to do ipl_iso_el_torito(). That's a very brain-twisting way of attempting to boot from ISO images, which won't work anymore after the following patches that will clean up the virtio_assume_scsi() mess (and thus get rid of the "virtio_guessed_disk_nature" here). Let's try a better approach instead: ISO files always have a magic string "CD001" at offset 0x8001 (see e.g. the ECMA-119 specification) which we can use to decide whether we should try to boot in ISO 9660 mode (which we should also try if we see a sector size of 2048). And if we were not able to boot in ISO mode here, the final boot attempt before panicking is to boot in ECKD mode. Since this is our last boot attempt anyway, simply always assume the ECKD geometry here (if the sector size was not 4096 yet), so that we also do not depend on the guessed disk geometry from virtio_blk_setup_device() here anymore. Message-Id: <20220704111903.62400-4-thuth@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
2022-07-06pc-bios/s390-ccw/virtio: Introduce a macro for the DASD block sizeThomas Huth2-1/+2
Use VIRTIO_DASD_DEFAULT_BLOCK_SIZE instead of the magic value 4096. Message-Id: <20220704111903.62400-3-thuth@redhat.com> Reviewed-by: Eric Farman <farman@linux.ibm.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
2022-07-06pc-bios/s390-ccw: Add a proper prototype for main()Thomas Huth2-2/+2
Older versions of Clang complain if there is no prototype for main(). Add one, and while we're at it, make sure that we use the same type for main.c and netmain.c - since the return value does not matter, declare the return type of main() as "void". Message-Id: <20220704111903.62400-2-thuth@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Reviewed-by: Eric Farman <farman@linux.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
2022-07-06configure, pc-bios/vof: pass cross CFLAGS correctlyPaolo Bonzini1-5/+3
Use the flags passed to the configure script for the ppc cross compiler, which in fact default to those that are needed to get the 32-bit ISA. Add the endianness flag so that it remains possible to use a ppc64le compiler to compile VOF. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2022-07-06configure, pc-bios/s390-ccw: pass cross CFLAGS correctlyPaolo Bonzini2-13/+13
QEMU_CFLAGS is not available in pc-bios/s390-ccw/netboot.mak, but the Makefile needs to access the flags passed to the configure script for the s390x cross compiler. Fix everything and rename QEMU_CFLAGS to EXTRA_CFLAGS for consistency with tests/tcg. Reviewed-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2022-07-06configure, pc-bios/optionrom: pass cross CFLAGS correctlyPaolo Bonzini1-1/+1
The optionrom build is disregarding the flags passed to the configure script via --cross-cflags-i386. Pass it down and add it to the Makefile. This will make it possible to get the -m32 flag from $target_cflags to force a 32-bit build on 64-bit hosts, instead of supplying manually the arcane -Wa,-32 and linker emulation options. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2022-07-06pc-bios/optionrom: use -m16 unconditionallyPaolo Bonzini2-17/+1
Remove support for .code16gcc, all supported platforms have -m16. Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>