summaryrefslogtreecommitdiff
path: root/pc-bios
AgeCommit message (Collapse)AuthorFilesLines
2019-02-05optionrom/pvh: load initrd from fw_cfgStefano Garzarella2-2/+19
If we found initrd through fw_cfg, we can load it and use the first module of hvm_start_info to pass initrd address and size to the kernel. Signed-off-by: Stefano Garzarella <sgarzare@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Liam Merwick <liam.merwick@oracle.com> Based-on: <1547554687-12687-1-git-send-email-liam.merwick@oracle.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2019-02-05optionrom: add new PVH option romStefano Garzarella4-1/+320
The new pvh.bin option rom can be used with SeaBIOS to boot uncompressed kernel using the x86/HVM direct boot ABI. pvh.S contains the entry point of the option rom. It runs in real mode, loads the e820 table querying the BIOS, and then it switches to 32bit protected mode and jumps to the pvh_load_kernel() written in pvh_main.c. pvh_load_kernel() loads the cmdline and kernel entry_point using fw_cfg, then it looks for RSDP, fills the hvm_start_info required by x86/HVM ABI, and finally jumps to the kernel entry_point. Signed-off-by: Stefano Garzarella <sgarzare@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Liam Merwick <liam.merwick@oracle.com>
2019-02-05linuxboot_dma: move common functions in a new headerStefano Garzarella3-83/+221
In order to allow other option roms to use these common useful functions and definitions, this patch put them in two new C header files called optrom.h and optrom_fw_cfg.h. We also add useful out*() in*() functions for different size, and new fw_cfg functions to use when DMA feature is not available. Signed-off-by: Stefano Garzarella <sgarzare@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Liam Merwick <liam.merwick@oracle.com>
2019-02-05linuxboot_dma: remove duplicate definitions of FW_CFGStefano Garzarella1-16/+4
FW_CFG_DMA_CTL_* bits and struct fw_cfg_dma_access are defined in the qemu_fw_cfg.h header file already included in linuxboot_dma.c, so we can remove the definition of BIOS_CFG_DMA_CTL_* and struct FWCfgDmaAccess. Signed-off-by: Stefano Garzarella <sgarzare@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Liam Merwick <liam.merwick@oracle.com> Based-on: <1547554687-12687-1-git-send-email-liam.merwick@oracle.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2019-02-04QemuMacDrivers: update qemu_vga.ndrv to 90c488d built from submoduleMark Cave-Ayland1-0/+0
This update to qemu_vga.ndrv includes the following changes: - Build guest resolution list from QEMU EDID data if enabled - Fixes to re-enable 256 color mode Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2019-02-04pseries: Update SLOF firmware imageAlexey Kardashevskiy2-1/+1
This includes spapr-vio and usb-storage fixes, phandles fix for NVLink2 pass through support and other compile improvements. The full list of changes is: * vio-vscsi: Support multiple channels / buses * board-qemu/slof/vio-vscsi: Scan up to 64 SCSI IDs * usb/storage: Implement block write support * usb/storage: Invert the logic of the IF-statements * fdt: Fix phandles for NVLink/NVLink2 * fdt: Factor out code to replace a phandle in place * pci: use appropriate base class ids * Makefile: Set a proper DRIVER_NAME when building from a git tree * romfs/tools: Silence more compiler warnings with GCC 8.1 * romfs/tools: Silence GCC 8.1 compiler warning with FLASHFS_MAGIC * romfs/tools: Remove superfluous union around the rom header struct * make.rules: Compile SLOF with -fno-asynchronous-unwind-tables Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2019-01-23Merge remote-tracking branch 'remotes/kraxel/tags/ui-20190121-pull-request' ↵Peter Maydell2-976/+0
into staging ui: highres logo for sdl and gtk, bugfixes for vnc and egl. # gpg: Signature made Mon 21 Jan 2019 14:11:39 GMT # gpg: using RSA key 4CB6D8EED3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>" # gpg: aka "Gerd Hoffmann <gerd@kraxel.org>" # gpg: aka "Gerd Hoffmann (private) <kraxel@gmail.com>" # Primary key fingerprint: A032 8CFF B93A 17A7 9901 FE7D 4CB6 D8EE D3E8 7138 * remotes/kraxel/tags/ui-20190121-pull-request: egl-helpers.h: do not depend on X11 Window type, use EGLNativeWindowType vnc: detect and optimize pageflips sdl: add support for high resolution window icon ui: fix icon display for GTK frontend under GNOME Shell with Wayland ui: install logo icons to $prefix/share/icons Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-01-22Merge remote-tracking branch ↵Peter Maydell8-0/+0
'remotes/kraxel/tags/ipxe-20190122-pull-request' into staging ipxe: update to latest git master # gpg: Signature made Tue 22 Jan 2019 06:33:53 GMT # gpg: using RSA key 4CB6D8EED3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>" # gpg: aka "Gerd Hoffmann <gerd@kraxel.org>" # gpg: aka "Gerd Hoffmann (private) <kraxel@gmail.com>" # Primary key fingerprint: A032 8CFF B93A 17A7 9901 FE7D 4CB6 D8EE D3E8 7138 * remotes/kraxel/tags/ipxe-20190122-pull-request: ipxe: update to latest git master Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-01-22ipxe: update to latest git masterGerd Hoffmann8-0/+0
git shortlog ipxe-qemu-20170717-0600d3ae94-0..ipxe-qemu-20190122-de4565cbe7-0 ----------------------------------------------------------------------------- Aaron Young (1): [libc] Fix strcmp()/strncmp() to return proper values Ameer Mahagneh (1): [golan] Set log_max_qp to 1 Bruce Rogers (1): [build] Disable gcc stringop-truncation warnings Christian Hesse (1): [build] Handle R_X86_64_PLT32 from binutils 2.31 Hannes Reinecke (1): [iscsi] Parse IPv6 address in root path Heinrich Schuchardt (2): [efi] Accept (and ignore) R_ARM_V4BX relocations [efi] Add support for R_ARM_REL32 relocations Ignat Korchagin (1): [efi] Fix error handling path in efi_snp_probe Janos Mattyasovszky (1): [intel] Add PCI device ID for X550-T2 Joseph Wong (1): [tg3] Add support for SerDes PHY initialization Ladi Prosek (1): [crypto] Fail fast if cross-certificate source is empty Laurent Gourvénec (1): [acpi] Compute and check checksum for ACPI tables Martin Habets (2): [netdevice] Make netdev_irq_enabled() independent of netdev_irq_supported() [sfc] Add support for X25xx adapters Michael Brown (88): [efi] Enumerate PCI BARs in same order as SnpDxe [build] Conditionalise use of -mabi=lp64 for ARM64 builds [build] Fix use of inline assembly on GCC 4.8 ARM64 builds [build] Fix ARM32 EFI builds with current EDK2 headers [acpi] Fix spurious uninitialised-variable warning on some gcc versions [hyperv] Do not steal ownership from the Gen 2 UEFI firmware [shell] Enable "shell" command even when BANNER_TIMEOUT is zero [romprefix] Avoid unaligned accesses within ROM headers [malloc] Avoid false positive warnings from valgrind [linux] Impose receive quota on tap driver [efi] Raise TPL when calling UNDI entry point [netdevice] Cancel all pending transmissions on any transmit error [monojob] Check for job progress only once per timer tick [job] Allow jobs to report an arbitrary status message [downloader] Allow underlying downloads to provide detailed job progress [monojob] Display job status message, if present [peerdist] Gather and report peer statistics during download [netdevice] Add "hwaddr" setting [resolv] Use pass-through interfaces for name resolution multiplexer [dns] Report current DNS query as job progress status message [efi] Check buffer length for packets retrieved via our SNP protocol [efi] Match behaviour of SnpDxe for truncated received packets [dns] Ensure DNS names are NUL-terminated when used as diagnostic strings [efi] Continue to connect remaining handles after connection errors [build] Exclude selected directories from Secure Boot builds [efi] Inhibit our driver Start() method during disconnection attempts [efi] Allow for building with older versions of elf.h system header [crypto] Fix endianness typo in comment [crypto] Eliminate repetitions in MD5 round constant table [crypto] Add MD4 message digest algorithm [ntlm] Add support for NTLM authentication mechanism [http] Gracefully handle offers of multiple authentication schemes [http] Handle parsing of WWW-Authenticate header within authentication scheme [http] Add support for NTLM authentication [xen] Skip probing of any unsupported device types [http] Include error messages for 4xx and 5xx response codes [http] Report unsuccessful response status lines at DBGVL_LOG [image] Omit URI query string and fragment from download progress messages [legal] Add missing FILE_LICENCE declarations [legal] Add missing FILE_LICENCE declarations [build] Avoid use of "ld --oformat binary" [ena] Add driver for Amazon ENA virtual function NIC [skel] Remove MII interface [ena] Fix spurious uninitialised variable warning on older versions of gcc [xhci] Assume an invalid PSI table if any invalid PSI value is observed [intel] Work around broken reset mechanism in i219 devices [http] Allow for domain names within NTLM user names [xhci] Consume event TRB before reporting completion to USB core [efi] Run at TPL_CALLBACK to protect against UEFI timers [efi] Raise TPL within EFI_SIMPLE_NETWORK_PROTOCOL entry points [efi] Raise TPL within EFI_USB_IO_PROTOCOL entry points [process] Include process name in debug messages [efi] Drop to TPL_APPLICATION when gathering entropy [efi] Raise TPL within EFI_DRIVER_BINDING_PROTOCOL entry points [librm] Add facility to provide register and stack dump for CPU exceptions [golan] Do not assume all devices are identical [lacp] Mark link as blocked if partner is not yet up and running [lacp] Fix debug message to match documentation [tftp] Prevent potential division by zero [profile] Prevent potential division by zero [ocsp] Centralise test for whether or not an OCSP check is required [ocsp] Allow OCSP checks to be disabled [lacp] Check the partner's own state when checking for blocked links [efi] Provide Map_Mem() and associated UNDI callbacks [time] Add support for the ACPI power management timer [rng] Use fixed-point calculations for min-entropy quantities [build] Prevent use of MMX and SSE registers [undi] Treat invalid IRQ numbers as non-fatal errors [librm] Provide symbols for inline code placed into other sections [librm] Ensure that inline code symbols are unique [tls] Ensure received data list is initialised before calling tls_free() [list] Add list_is_first_entry() and list_is_last_entry() [tls] Rename tls_session to tls_connection [tls] Ensure that window change is propagated to plainstream interface [efi] Release SNP devices before starting SAN boot image [efi] Do not raise TPL within EFI_DRIVER_BINDING_PROTOCOL.Supported() [undi] Include subsystem IDs in broken interrupt device check [rhine] Fix usage of mii_read() [velocity] Fix usage of mii_read() and mii_write() [mii] Separate concepts of MII interface and MII device [tcp] Add missing packed attribute on struct tcp_header [mii] Fix typo in parameter name [http] Work around stateful authentication schemes [build] Use positive-form tests when checking for supported warnings [rndis] Clean up error handling path in register_rndis() [ethernet] Use standard 1500 byte MTU unless explicitly overridden [intelxl] Add driver for Intel 40 Gigabit Ethernet NICs [zbin] Fix compiler warning with GCC 9 Peter von Konigsmark (2): [exanic] Power up optical PHYs (if present) [exanic] Add PCI device ID for another X40 variant Petr Borsodi (3): [pci] Correct invalid base-class/sub-class/prog-if order in PCIR [util] Improve processing of ROM images in Option::ROM [util] Add support for EFI ROM images Richard Moore (1): [intel] Add various PCI device IDs Rob Taglang (3): [intel] Add PCI_ROM entry for Intel i354 NIC [intelx] Add PCI_ROM entry for Intel X553 NIC [efi] Exclude link-layer header length from MaxPacketSize Robin Smidsrød (1): [util] Support reversed sort ordering when generating NIC list Roman Kagan (2): [rndis] Register netdev with MAC filled [vmbus] Do not expect version in version_response Steven Haber (1): [intelx] Add support for Intel X552 NIC Sylvie Barlow (3): [mii] Add mii_find() [mii] Add bit-bashing interface [icplus] Add driver for IC+ network card Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2019-01-21ui: install logo icons to $prefix/share/iconsDaniel P. Berrangé2-976/+0
QEMU currently installs logos to $prefix/share/qemu/ which means no GUI toolkit or applications can find them by default. The accepted standards for desktop applications declare that application logos / icons should be installed under $prefix/share/icons, so use this directory location. Pre-rendered icons are provided at the standard sizes expected for GUI applications, along with the scalable SVG, to ensure maximum portability. The PNGs are rendered from the SVG using inkscape, however, this is not wired up into the default make rules to avoid requiring inkscape as a mandatory tool in build systems / developer workstations. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Message-id: 20190110120047.25369-2-berrange@redhat.com Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2019-01-18pc-bios/s390-ccw: Use proper register names for ClangThomas Huth1-7/+7
When compiling the s390-ccw firmware with Clang 7.0.1, I get the following errors: pc-bios/s390-ccw/start.S:62:19: error: invalid use of length addressing stctg 0,0,0(15) ^ pc-bios/s390-ccw/start.S:63:12: error: invalid use of length addressing oi 6(15), 0x2 ^ pc-bios/s390-ccw/start.S:64:19: error: invalid use of length addressing lctlg 0,0,0(15) ^ pc-bios/s390-ccw/start.S:76:19: error: invalid use of length addressing stctg 0,0,0(15) ^ pc-bios/s390-ccw/start.S:77:12: error: invalid use of length addressing ni 6(15), 0xfd ^ pc-bios/s390-ccw/start.S:78:19: error: invalid use of length addressing lctlg 0,0,0(15) ^ pc-bios/s390-ccw/start.S:79:12: error: invalid operand for instruction br 14 ^ Let's use proper register names like in the rest of this file to fix it. Signed-off-by: Thomas Huth <thuth@redhat.com> Message-Id: <1547123559-30476-1-git-send-email-thuth@redhat.com> Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Cornelia Huck <cohuck@redhat.com>
2019-01-10Merge remote-tracking branch 'remotes/kraxel/tags/ui-20190110-pull-request' ↵Peter Maydell5-180/+351
into staging ui: bugfixes, drop keymap include support, drop dead code. # gpg: Signature made Thu 10 Jan 2019 08:47:10 GMT # gpg: using RSA key 4CB6D8EED3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>" # gpg: aka "Gerd Hoffmann <gerd@kraxel.org>" # gpg: aka "Gerd Hoffmann (private) <kraxel@gmail.com>" # Primary key fingerprint: A032 8CFF B93A 17A7 9901 FE7D 4CB6 D8EE D3E8 7138 * remotes/kraxel/tags/ui-20190110-pull-request: spice: Remove unused include keymaps: drop support for include files keymaps: remove common include keymaps: drop nl-be map keymaps: remove modifiers include ui/console: Remove qemu_create_display_surface_guestmem() configure: bump spice-server required version to 0.12.5 egl-headless: add egl_create_context Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-01-10keymaps: remove common includeGerd Hoffmann3-176/+351
Copy the content into the sl and sv files (the only ones left which are not generated by qemu-keymap). Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Message-id: 20181116104319.10329-4-kraxel@redhat.com
2019-01-10keymaps: drop nl-be mapGerd Hoffmann1-3/+0
It doesn't define any keys, only includes "common". Which makes it effectively an "en-us" map. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Message-id: 20181116104319.10329-3-kraxel@redhat.com
2019-01-10keymaps: remove modifiers includeGerd Hoffmann2-19/+18
"common" is the only file using it, so we can just include it directly. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Message-id: 20181116104319.10329-2-kraxel@redhat.com
2019-01-08pc-bios: Update palcode-clipperRichard Henderson1-0/+0
Do not double-update the PC after OPCDEC. Fixes: https://bugs.launchpad.net/bugs/1810545 Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
2018-11-20update seabios to 1.12Gerd Hoffmann10-0/+0
Seabios 1.12 has been released yesterday. Update our snapshot builds to the final release. git shortlog ============ Kevin O'Connor (2): shadow: Rework bios copy code to prevent gcc array-bounds warning docs: Note v1.12.0 release Shmuel Eiderman (1): pvscsi: Scan all 64 possible targets Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2018-11-12target-alpha: use HTTPS git URL for palcodeStefan Hajnoczi1-1/+1
When you clone the repository without previous commit history, 'git://' doesn't protect from man-in-the-middle attacks. HTTPS is more secure since the client verifies the server certificate. Cc: Richard Henderson <rth@twiddle.net> Suggested-by: Eric Blake <eblake@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> Acked-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Message-id: 20181108111531.30671-8-stefanha@redhat.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2018-11-12git: use HTTPS git URLs for repo.or.czStefan Hajnoczi1-1/+1
When you clone the repository without previous commit history, 'git://' doesn't protect from man-in-the-middle attacks. HTTPS is more secure since the client verifies the server certificate. Suggested-by: Eric Blake <eblake@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-id: 20181108111531.30671-6-stefanha@redhat.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2018-11-12README: use 'https://' instead of 'git://'Stefan Hajnoczi1-2/+2
When you clone the repository without previous commit history, 'git://' doesn't protect from man-in-the-middle attacks. HTTPS is more secure since the client verifies the server certificate. Reported-by: Jann Horn <jannh@google.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Message-id: 20181108111531.30671-2-stefanha@redhat.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2018-11-06update seabios to master snapshotGerd Hoffmann10-0/+0
seabios 1.12 release is planned for november. update seabios to a master branch snapshot so it gets more testing and to make the delta smaller when updating to -final during freeze. git shortlog rel-1.11.2..14221cd86e =================================== Gerd Hoffmann (12): optionrom: enable non-vga display devices cbvga: factor out cbvga_setup_modes() qemu: add bochs-display support cbvga_setup_modes: use real mode number instead of 0x140 cbvga_list_modes: don't list current mode twice cbvga_set_mode: disable clearmem in windows x86 emulator. bochs_display_setup: return error on failure pmm: use tmp zone on oom vgasrc: add allocate_pmm() qemu: add qemu ramfb support cbvga_set_mode: refine clear display logic pretty boot menu entry for cdrom drives Jing Liu (3): pci: fix the return value for truncated capability pci: clean up the debug message for pci capability found pci: recognize RH PCI legacy bridge resource reservation capability Kevin O'Connor (8): docs: Add sercon-port to Runtime_config.md documentation paravirt: Only enable sercon in NOGRAPHIC mode if no other console specified shadow: Don't invoke a shutdown on reboot unless in a reboot loop build: Use git describe --always docs: Update Download.md to use git clone via https ssdt: Fix building of legacy acpi tables on current iasl compiler docs: Update download file link sdcard: Increase SDHCI_POWER_ON_TIME to 5ms Marc-André Lureau (4): x86: add readq() tpm: generalize init_timeout() tpm: use get_tpm_version() callback tpm: add TPM CRB device support Marcel Apfelbaum (1): pci: fix 'io hints' capability for RedHat PCI bridges Matt DeVillier (2): nvme: fix I/O queue length calculation overflow SeaVGABios/cbvga: Fix bpp for coreboot framebuffer Nikolay Nikolov (11): floppy: Introduce the floppy_dor_read() function floppy: Introduce floppy_dor_mask() floppy: Introduce FLOPPY_DOR_XXX constants floppy: Preserve motor and drive sel bits when resetting the floppy controller floppy: Reset the floppy motor count in floppy_drive_pio() floppy: Use timer_check() in floppy_wait_irq() floppy: hold the DOR reset bit low for 4 microseconds, when resetting floppy: Execute a SPECIFY command after sensing the media type floppy: Support up to 4 floppy drives when turning on the floppy motor floppy: Wait for the floppy motor to reach a stable speed, after starting floppy: Send 4 sense interrupt commands during controller initialization Paul Menzel (1): docs/Download: Use more secure HTTPS URLs where possible Stefan Berger (5): tpm: Add support for TPM2 ACPI table tpm: Wait for tpmRegValidSts flag on CRB interface before probing tpm: revert return values for successful/failed CRB probing tpm: when CRB is active, select, lock it, and check addresses tpm: Request access to locality 0 Stephen Douthit (3): tpm: Refactor duplicated wait code in tis_wait_sts() & crb_wait_reg() tpm: Wait for interface startup when probing tpm: Handle unimplemented TIS_REG_IFACE_ID in tis_get_tpm_version() Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2018-10-05Update OpenBIOS images to 441a84d3 built from submodule.Mark Cave-Ayland3-0/+0
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
2018-09-25trivial: Make bios files and source files non-executableThomas Huth4-0/+0
These files can not be executed on the host, so they should not be marked as executable. Reviewed-by: David Hildenbrand <david@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
2018-08-31Update OpenBIOS images to a1280807 built from submodule.Mark Cave-Ayland3-0/+0
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
2018-08-23Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into stagingPeter Maydell2-3/+16
* x86 TCG fixes for 64-bit call gates (Andrew) * qumu-guest-agent freeze-hook tweak (Christian) * pm_smbus improvements (Corey) * Move validation to pre_plug for pc-dimm (David) * Fix memory leaks (Eduardo, Marc-André) * synchronization profiler (Emilio) * Convert the CPU list to RCU (Emilio) * LSI support for PPR Extended Message (George) * vhost-scsi support for protection information (Greg) * Mark mptsas as a storage device in the help (Guenter) * checkpatch tweak cherry-picked from Linux (me) * Typos, cleanups and dead-code removal (Julia, Marc-André) * qemu-pr-helper support for old libmultipath (Murilo) * Annotate fallthroughs (me) * MemoryRegionOps cleanup (me, Peter) * Make s390 qtests independent from libqos, which doesn't actually support it (me) * Make cpu_get_ticks independent from BQL (me) * Introspection fixes (Thomas) * Support QEMU_MODULE_DIR environment variable (ryang) # gpg: Signature made Thu 23 Aug 2018 17:46:30 BST # gpg: using RSA key BFFBD25F78C7AE83 # gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" # gpg: aka "Paolo Bonzini <pbonzini@redhat.com>" # 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 * remotes/bonzini/tags/for-upstream: (69 commits) KVM: cleanup unnecessary #ifdef KVM_CAP_... target/i386: update MPX flags when CPL changes i2c: pm_smbus: Add the ability to force block transfer enable i2c: pm_smbus: Don't delay host status register busy bit when interrupts are enabled i2c: pm_smbus: Add interrupt handling i2c: pm_smbus: Add block transfer capability i2c: pm_smbus: Make the I2C block read command read-only i2c: pm_smbus: Fix the semantics of block I2C transfers i2c: pm_smbus: Clean up some style issues pc-dimm: assign and verify the "addr" property during pre_plug pc: drop memory region alignment check for 0 util/oslib-win32: indicate alignment for qemu_anon_ram_alloc() pc-dimm: assign and verify the "slot" property during pre_plug ipmi: Use proper struct reference for BT vmstate vhost-scsi: expose 't10_pi' property for VIRTIO_SCSI_F_T10_PI vhost-scsi: unify vhost-scsi get_features implementations vhost-user-scsi: move host_features into VHostSCSICommon cpus: allow cpu_get_ticks out of BQL cpus: protect TimerState writes with a spinlock seqlock: add QemuLockable support ... Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2018-08-23fw_cfg: import & use linux/qemu_fw_cfg.hMarc-André Lureau2-3/+16
Use kernel common header for fw_cfg. (unfortunately, optionrom.h must have its own define, since it's actually an assembler header) Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20180817155910.5722-2-marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2018-08-21pseries: Update SLOF firmware imageAlexey Kardashevskiy2-1/+1
This includes gcc8.1 fixes and the image is compiled using gcc 8.1 as well. The full list of changes is: > Fix bad assembler statements for compiling with gcc 8.1 / as 2.30 > libelf: Add REL32 to the list of ignored relocations Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2018-07-09sam460ex: Update u-boot-sam460ex firmwareBALATON Zoltan1-0/+0
Update the submodule and u-boot-sam460-20100605.bin to include following fixes from Sebastian Bauer: - Fix build with newer gcc - Decrease unnecessary delay which fixes slow booting from CD Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2018-07-02seabios: update bios and vgabios binariesGerd Hoffmann10-0/+0
Adds two new vgabios binaries, for ramfb and bochs-display. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2018-06-22pseries: Update SLOF firmware image to qemu-slof-20180621Alexey Kardashevskiy2-1/+1
The changes are: 1. fixed broken_sc1; 2. added switching between boot consoles; 3. added PXE boot. The full list is: > lib/libnet/pxelinux: Fix two off-by-one bugs in the pxelinux.cfg parser > lib/libnet/pxelinux: Make the size handling for pxelinux_load_cfg more logical > libc: Add a simple implementation of an assert() function > libnet: Support UUID-based pxelinux.cfg file names > slof: Add a helper function to get the contents of a property in C code > libnet: Add support for DHCPv4 options 209 and 210 > libnet: Wire up pxelinux.cfg network booting > libnet: Add functions for downloading and parsing pxelinux.cfg files > libnet: Put code for determing TFTP error strings into a separate function > libc: Add the snprintf() function > libnet: Pass ip_version via struct filename_ip > resolve ihandle and xt handle in the input command (like for the output) > Fix output word > obp-tftp: Make sure to not overwrite paflof in memory > libnet: Get rid of unused huge_load and block_size parameters > libc: Check for NULL pointers in free() > libc: Implement strrchr() > libnet: Get rid of unnecessary (char *) casts > broken_sc1: check for H_PRIVILEGE > OF: Use new property "stdout-path" for boot console Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2018-06-20Merge remote-tracking branch 'remotes/cohuck/tags/s390x-20180619' into stagingPeter Maydell8-83/+173
- cleanup in virtio-ccw - accommodate guests using vfio-ccw without specifying unlimited prefetch, but actually working fine - add cpu model for the z14 Model ZR1 - add support for pxelinux.cfg-style network booting to the s390x firmware # gpg: Signature made Tue 19 Jun 2018 10:33:06 BST # gpg: using RSA key DECF6B93C6F02FAF # gpg: Good signature from "Cornelia Huck <conny@cornelia-huck.de>" # gpg: aka "Cornelia Huck <huckc@linux.vnet.ibm.com>" # gpg: aka "Cornelia Huck <cornelia.huck@de.ibm.com>" # gpg: aka "Cornelia Huck <cohuck@kernel.org>" # gpg: aka "Cornelia Huck <cohuck@redhat.com>" # Primary key fingerprint: C3D0 D66D C362 4FF6 A8C0 18CE DECF 6B93 C6F0 2FAF * remotes/cohuck/tags/s390x-20180619: pc-bios/s390-ccw: Update the s390-netboot.img binary pc-bios/s390-ccw: Optimize the s390-netboot.img for size pc-bios/s390-ccw/net: Try to load pxelinux.cfg file accoring to the UUID pc-bios/s390-ccw/net: Add support for pxelinux-style config files pc-bios/s390-ccw/net: Update code for the latest changes in SLOF roms: Update SLOF submodule to current status pc-bios/s390-ccw: define loadparm length s390x/cpumodels: add z14 Model ZR1 s390x/ipl: Try to detect Linux vs non Linux for initial IPL PSW vfio-ccw: remove orb.c64 (64 bit data addresses) check vfio-ccw: add force unlimited prefetch property virtio-ccw: clean up notify Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2018-06-18Update OpenBIOS images to 8fe6f5f96f built from submodule.Mark Cave-Ayland3-0/+0
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
2018-06-18pc-bios/s390-ccw: Update the s390-netboot.img binaryThomas Huth1-0/+0
This binary now contains the support for pxelinux.cfg-style network booting. Signed-off-by: Thomas Huth <thuth@redhat.com>
2018-06-18pc-bios/s390-ccw: Optimize the s390-netboot.img for sizeThomas Huth2-2/+3
The -O2 optimization flag is passed via CFLAGS to the firmware Makefile, but in netbook.mak, we've got some rules that only use QEMU_CFLAGS for compiling the libc and libnet from SLOF, so these files get compiled without optimization so far. Use CFLAGS here, too, to create faster and smaller code. We can additionally save some more bytes in the firmware images by compi- ling the code with -fno-asynchronous-unwind-tables. This will omit some ELF sections (used for stack unwinding for example) from the image that we do not need in the firmware. Acked-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
2018-06-18pc-bios/s390-ccw/net: Try to load pxelinux.cfg file accoring to the UUIDThomas Huth1-1/+55
With the STSI instruction, we can get the UUID of the current VM instance, so we can support loading pxelinux config files via UUID in the file name, too. Acked-by: Christian Borntraeger <borntraeger@de.ibm.com> Tested-by: Viktor Mihajlovski <mihajlov@linux.vnet.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
2018-06-18pc-bios/s390-ccw/net: Add support for pxelinux-style config filesThomas Huth2-4/+89
Since it is quite cumbersome to manually create a combined kernel with initrd image for network booting, we now support loading via pxelinux configuration files, too. In these files, the kernel, initrd and command line parameters can be specified seperately, and the firmware then takes care of glueing everything together in memory after the files have been downloaded. See this URL for details about the config file layout: https://www.syslinux.org/wiki/index.php?title=PXELINUX The user can either specify a config file directly as bootfile via DHCP (but in this case, the file has to start either with "default" or a "#" comment so we can distinguish it from binary kernels), or a folder (i.e. the bootfile name must end with "/") where the firmware should look for the typical pxelinux.cfg file names, e.g. based on MAC or IP address. We also support the pxelinux.cfg DHCP options 209 and 210 from RFC 5071. Acked-by: Christian Borntraeger <borntraeger@de.ibm.com> Tested-by: Viktor Mihajlovski <mihajlov@linux.vnet.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
2018-06-18pc-bios/s390-ccw/net: Update code for the latest changes in SLOFThomas Huth2-70/+18
The ip_version information now has to be stored in the filename_ip_t structure, and there is now a common function called tftp_get_error_info() which can be used to get the error string for a TFTP error code. We can also get rid of some superfluous "(char *)" casts now. Acked-by: Christian Borntraeger <borntraeger@de.ibm.com> Tested-by: Viktor Mihajlovski <mihajlov@linux.vnet.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
2018-06-18pc-bios/s390-ccw: define loadparm lengthCollin Walling4-7/+9
Loadparm is defined by the s390 architecture to be 8 bytes in length. Let's define this size in the s390-ccw bios. Suggested-by: Laszlo Ersek <lersek@redhat.com> Signed-off-by: Collin Walling <walling@linux.ibm.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
2018-05-14pc-bios/s390-ccw: struct tpi_info must be declared as aligned(4)Thomas Huth1-1/+1
I've run into a compilation error today with the current version of GCC 8: In file included from s390-ccw.h:49, from main.c:12: cio.h:128:1: error: alignment 1 of 'struct tpi_info' is less than 4 [-Werror=packed-not-aligned] } __attribute__ ((packed)); ^ cc1: all warnings being treated as errors Since the struct tpi_info contains an element ("struct subchannel_id schid") which is marked as aligned(4), we've got to mark the struct tpi_info as aligned(4), too. CC: qemu-stable@nongnu.org Signed-off-by: Thomas Huth <thuth@redhat.com> Message-Id: <1525774672-11913-1-git-send-email-thuth@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Acked-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Cornelia Huck <cohuck@redhat.com>
2018-05-02pc-bios/s390: Update firmware imagesThomas Huth2-0/+0
s390-ccw.img contains fixes for the boot menu, and s390-netboot.img contains the support for .INS files and the patch for resetting the machine with diag308. Signed-off-by: Thomas Huth <thuth@redhat.com>
2018-05-02s390-ccw: force diag 308 subcode to unsigned longCornelia Huck1-1/+2
We currently pass an integer as the subcode parameter. However, the upper bits of the register containing the subcode need to be 0, which is not guaranteed unless we explicitly specify the subcode to be an unsigned long value. Fixes: d046c51dad3 ("pc-bios/s390-ccw: Get device address via diag 308/6") Cc: qemu-stable@nongnu.org Signed-off-by: Cornelia Huck <cohuck@redhat.com> Acked-by: Christian Borntraeger <borntraeger@de.ibm.com> Tested-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
2018-05-02pc-bios/s390-ccw/net: Add support for .INS config filesThomas Huth1-5/+95
The .INS config files can normally be found on CD-ROM ISO images, so by supporting these files, it is now possible to boot directly when the TFTP server is set up with the contents of such an CD-ROM image. Acked-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
2018-05-02pc-bios/s390-ccw/net: Use diag308 to reset machine before jumping to the OSThomas Huth7-69/+111
The netboot firmware so far simply jumped directly into the OS kernel after the download has been completed. This, however, bears the risk that the virtio-net device still might be active in the background and incoming packets are still placed into the buffers - which could destroy memory of the now-running Linux kernel in case it did not take over the device fast enough. Also the SCLP console is not put into a well-defined state here. We should hand over the system in a clean state when jumping into the kernel, so let's use the same mechanism as it's done in the main s390-ccw firmware and reset the machine with diag308 into a clean state before jumping into the OS kernel code. To be able to share the code with the main s390-ccw firmware, the related functions are now extracted from bootmap.c into a new file called jump2ipl.c. Since we now also set the boot device schid at address 184 for the network boot device, this patch also slightly changes the way how we detect the entry points for non-ELF binary images: The code now looks for the "S390EP" magic first and then jumps to 0x10000 in case it has been found. This is necessary for booting from network devices, since the normal kernel code (where the PSW at ddress 0 points to) tries to do a block load from the boot device. This of course fails for a virtio-net device and causes the kernel to abort with a panic-PSW silently. Acked-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
2018-05-02pc-bios/s390-ccw/net: Split up net_load() into init, load and release partsThomas Huth1-26/+37
When we want to support pxelinux-style network booting later, we've got to do several TFTP transfers - and we do not want to apply for a new IP address via DHCP each time. So split up net_load into three parts: 1. net_init(), which initializes virtio-net, gets an IP address via DHCP and prints out the related information. 2. The tftp_load call is now moved directly into the main() function 3. A new net_release() function which should tear down the network stack before we are done in the firmware. This will make it easier to extend the code in the next patches. Acked-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
2018-05-02pc-bios/s390-ccw: fix non-sequential boot entries (enum)Collin Walling3-15/+28
zIPL boot menu entries can be non-sequential. Let's account for this issue for the s390 enumerated boot menu. Since we can no longer print a range of available entries to the user, we have to present a list of each available entry. An example of this menu: s390-ccw Enumerated Boot Menu. [0] default [1] [2] [7] [8] [9] [11] [12] Please choose: Signed-off-by: Collin Walling <walling@linux.ibm.com> Reported-by: Vasily Gorbik <gor@linux.ibm.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Janosch Frank <frankja@linux.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
2018-05-02pc-bios/s390-ccw: fix non-sequential boot entries (eckd)Collin Walling1-9/+20
zIPL boot menu entries can be non-sequential. Let's account for this issue for the s390 zIPL boot menu. Since this boot menu is actually an imitation and is not completely capable of everything the real zIPL menu can do, let's also print a different banner to the user. Signed-off-by: Collin Walling <walling@linux.ibm.com> Reported-by: Vasily Gorbik <gor@linux.ibm.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Janosch Frank <frankja@linux.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
2018-05-02pc-bios/s390-ccw: fix loadparm initialization and int conversionCollin Walling1-7/+7
Rename the loadparm char array in main.c to loadparm_str and increased the size by one byte to account for a null termination when converting the loadparm string to an int via atoui. We also allow the boot menu to be enabled when loadparm is set to an empty string or a series of spaces. Signed-off-by: Collin Walling <walling@linux.ibm.com> Reported-by: Vasily Gorbik <gor@linux.ibm.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Janosch Frank <frankja@linux.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
2018-05-02pc-bios/s390-ccw: rename MAX_TABLE_ENTRIES to MAX_BOOT_ENTRIESCollin Walling3-5/+5
The MAX_TABLE_ENTRIES constant has a name that is too generic. As we want to declare a limit for boot menu entries, let's rename it to a more fitting MAX_BOOT_ENTRIES and set its value to 31 (30 boot entries and 1 default entry). Also we move it from bootmap.h to s390-ccw.h to make it available for menu.c in a later patch. Signed-off-by: Collin Walling <walling@linux.ibm.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Janosch Frank <frankja@linux.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
2018-05-02pc-bios/s390-ccw: size_t should be unsignedThomas Huth2-2/+2
"size_t" should be an unsigned type according to the C standard. Thus we should also use this convention in the s390-ccw firmware to avoid confusion. I checked the sources, and apart from one spot in libc.c, the code should all be fine with this change. Buglink: https://bugs.launchpad.net/qemu/+bug/1753437 Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com> Reviewed-by: Halil Pasic <pasic@linux.vnet.ibm.com> Reviewed-by: Collin Walling <walling@linux.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
2018-04-09pc-bios/s390: update imagesCornelia Huck2-0/+0
Contains the following commits: - s390: Do not pass inofficial IPL type to the guest For s390-netboot.img, this also contains the following commits (update was forgotten last time): - pc-bios/s390-ccw: Move string arrays from bootmap header to .c file - pc-bios/s390-ccw: Increase virtio timeout to 30 seconds Signed-off-by: Cornelia Huck <cohuck@redhat.com>