Hi,
seabios 1.9.0 was released in November, missing hard freeze by a few days. Now 2.5 is out of the door and the master branch is open, time to care about the update now, so here we go.
The patch series carries the seabios update itself, a few build and config adjustments and acpi cleanups.
The update is also available here: git://git.kraxel.org/qemu work/seabios
Please test & review, Gerd
PS: Pull request will most likely have to wait until january, when I'm back online after xmas and newyear vacation.
Gerd Hoffmann (6): seabios: update submodule to release 1.9.0 seabios: update 128k bios config seabios: use new EXTRAVERSION to tag qemu builds seabios: stop updating aml files seabios: update binaries to release 1.9.0 q35: skip q35-acpi-dsdt.aml load if not needed
hw/i386/pc_q35.c | 5 ++++- pc-bios/bios-256k.bin | Bin 262144 -> 262144 bytes pc-bios/bios.bin | Bin 131072 -> 131072 bytes pc-bios/vgabios-cirrus.bin | Bin 38400 -> 38400 bytes pc-bios/vgabios-qxl.bin | Bin 38400 -> 38912 bytes pc-bios/vgabios-stdvga.bin | Bin 38400 -> 38912 bytes pc-bios/vgabios-virtio.bin | Bin 38400 -> 38912 bytes pc-bios/vgabios-vmware.bin | Bin 38400 -> 38912 bytes pc-bios/vgabios.bin | Bin 38400 -> 38400 bytes roms/Makefile | 7 +++---- roms/config.seabios-128k | 2 ++ roms/seabios | 2 +- 12 files changed, 10 insertions(+), 6 deletions(-)
Highlights / user visible changes in seabios: * boot menu key is ESC now. * virtio 1.0 support. * sdcard support. * fw_cfg dma suport. * usual share of bugfixes ;)
In vgabios: * Emulates leal instruction. Works around a bug in old x86emu versions, which makes old xorg vesa drivers work (RHEL-5 for example).
full shortlog rel-1.8.2..rel-1.9.0 ----------------------------------
Ameya Palande (1): x86: add barrier to read{b,w,l} and write{b,w,l} functions
Andreas Färber (1): checkrom: Fix typo in error message
Chen Fan (1): pci: enable SERR# for error forwarding in bridge control register
Gerd Hoffmann (28): vga: simplify vga builds vga: rework virtio-vga support vga: add virtio-vga to kconfig pci: allow to loop over capabilities virtio: run drivers in 32bit mode virtio: add struct vp_device virtio: pass struct pci_device to vp_init_simple virtio: add version 1.0 structs and #defines virtio: add version 0.9.5 struct virtio: find version 1.0 virtio capabilities virtio: create vp_cap struct for legacy bar virtio: add read/write functions and macros virtio: make features 64bit, support version 1.0 features virtio: add version 1.0 support to vp_{get,set}_status virtio: add version 1.0 support to vp_get_isr virtio: add version 1.0 support to vp_reset virtio: add version 1.0 support to vp_notify virtio: remove unused vp_del_vq virtio: add version 1.0 support to vp_find_vq virtio-scsi: fix initialization for version 1.0 virtio-blk: fix initialization for version 1.0 virtio: use version 1.0 if available (flip the big switch) virtio: also probe version 1.0 pci ids virtio: legacy cleanup virtio-blk: 32bit cleanup virtio-scsi: 32bit cleanup virtio-ring: 32bit cleanup virtio-pci: use high memory for rings
Julius Werner (1): xhci: Count new Max Scratchpad Bufs bits from XHCI 1.1
Kevin O'Connor (126): docs: add page for SeaVGABIOS docs: Add page describing the patch contribution process docs: Add page on available CBFS/fw_cfg runtime config files docs: Prefer triple backticks to multiple lines with single backticks smp: Fix smp race introduced in 0673b787 docs: Note release date of 1.8.1 vgabios: On bda_save_restore() the saved vbe_mode also has flags in it vgabios: Don't use extra stack if it appears a modern OS is in use docs: Clarify that pci-optionrom-exec doesn't apply to roms in cbfs checkstack: Replace function information tuple with class checkstack: Simplify yield calculations checkstack: Prefer passing "function" class instead of function address smbios: Use integer signature instead of string signature vgabios: Don't use "smsww" instruction - it confuses x86emu vgabios: Add config option for assembler fixups vgabios: Emulate "leal" instruction checkstack: Minor - continue if not a regular asm line Don't forward declare functions with "inline" in headers build: Support "make VERSION=xyz" to override the default build version tcg: Use seabios setup()/prepboot() calling convention for tcg build: CONFIG_VGA_FIXUP_ASM should depend on CONFIG_BUILD_VGABIOS bootorder: Update "extra pci root" buses bootorder format to match qemu Make sure all code checks for malloc failures docs: Note release date of 1.8.2 block: Split process_op() command dispatch up into multiple functions block: Introduce default_process_op() with common command handling codes block: Route scsi style commands through 'struct disk_op_s' blockcmd: Introduce scsi_fill_cmd() ata: Handle ATA ATAPI drives directly via 'struct disk_op_s' requests ahci: Handle AHCI ATAPI drives directly via 'struct disk_op_s' requests usb-msc: Handle USB drives directly via 'struct disk_op_s' requests usb-uas: Handle USB drives directly via 'struct disk_op_s' requests lsi-scsi: Handle LSI drives directly via 'struct disk_op_s' requests esp-scsi: Handle ESP drives directly via 'struct disk_op_s' requests megasas: Handle Megasas drives directly via 'struct disk_op_s' requests virtio-scsi: Handle virtio drives directly via 'struct disk_op_s' requests pvscsi: Move pvscsi_fill_req() code into pvscsi_cmd() pvscsi: Handle pvscsi drives directly via 'struct disk_op_s' requests blockcmd: Remove unused scsi_process_op() and cdb_cmd_data() blockcmd: Convert cdb_is_read() to scsi_is_read() block: Rename process_XXX_op() functions to XXX_process_op() coreboot: Try to auto-detect if the CBFS anchor pointer is a relative pointer ps2: Support mode for polling the PS2 port instead of using irqs ata: Make sure "chanid" is relative to PCI device for bootorder file Don't enable interrupts prior to IVT and PIC setup ps2: Don't wait 100ms to discard possible extra reset receive byte timer: Delay timestamp counter init until after pmtimer is probed timer: Add CONFIG_TSC_TIMER build option to disable the CPU TSC timer ramdisk: Allow ramdisk support (CONFIG_FLASH_FLOPPY) under QEMU Minor - move declaration of CDRom_locks to code that uses it smm: ignore bits 16,18-31 of SMM revision ID at runtime too vgafb: Minor - move gfx_common() variables outside of switch statement sdcard: Check if card is present before sending commands to card sdcard: Implement controller frequency setting according to sdhci spec sdcard: Make sure controller support 3.3V before enabling it sdcard: Set timeout control register during init (to max allowed timeout) sdcard: Improve SD card initialization command sequence sdcard: Add proper delays during card power up mptable: Don't create mptable if it is very large optionroms: Don't run option rom on PCI bar if CBFS/fw_cfg version exists edd: Pass the segment/offset from int 1348 calls using a 'struct segoff_s' edd: Reduce parameters to fill_generic_edd() Move CanInterrupt check to check_irqs() Call cpu_relax() if yielding prior to interrupts being enabled sdcard: Fix typo - use sdcard_pio() instead of sdcard_pio_app() sdcard: Fill command bits according to spec sdcard: Support SDHCI v3.00 spec clock setting sdcard: Move power setup to new function sdcard_set_power() sdcard: Power controller up to maximum voltage supported sdcard: Power down controller on failure sdcard: The card should never be in a busy state at start of sdcard_pio() sdcard: Implement timeout on every block read in sdcard_pio_transfer() sdcard: Rename waitw() to sdcard_waitw() and simplify sdcard: Perform a controller reset at start of init sdcard: Check for error events during sdcard_pio() sdcard: Initial support for MMC cards sdcard: Allow the sdcard driver to run on real hardware rtc: Support disabling the RTC timer irq support Add minimal support for machines without hardware interrupts ps2: Eliminate "etc/ps2-poll-only"; use CONFIG_HARDWARE_IRQ instead sdcard: Allow sdcard addresses to be specified in CBFS files xhci: Minor - add USB port type comments to xhci_hub_reset() docs: Don't use an add-symbol-file offset when describing gdb debugging rtc: Disable NMI in rtc_mask() sdcard: Move sdcard_set_frequency()/sdcard_set_power() in sdcard.c sdcard: Move frequency setting into sdcard_card_setup() sdcard: Move drive registration to sdcard_card_setup() sdcard: Turn card_type into a bitmap and store if card is MMC type sdcard: Display sdcard product name in boot menu sdcard: Obtain card capacity and report it on the boot menu megasas: Use outl() on MFI_IDB register minor - correct spelling error in comment Simplify transition16/32 assembler code docs: Minor - add "code relocation" link to "Execution and code flow" document Unify smm/sloppy variants of call32_prep/post and call16_helper Rename Call32Data to Call16Data Unify inline assembler in variants of call16 functions Unify call32_sloppy() and call32() Use transition32_nmi_off from call32() and call16_back() Consolidate code16*() functions Always enable caching on transition32; backup/restore cr0 on call32 e820: Introduce e820_remove() and avoid exporting E820_HOLE e820: Rename memmap.c to e820map.c and use consistent "e820_" prefix e820: Update debugging messages to report 64bit values virtio: Simplify vring alignment code virtio: Move standard definitions from virtio-ring.h to standard headers malloc: Use consistent naming for internal low-level "alloc" functions malloc: Introduce common helper alloc_new_detail() malloc: Add warning if free() called on invalid memory malloc: Don't mix virtual and physical addresses memmap: Introduce SYMBOL() macro to access linker script symbols build: Rework version generation; don't allow make version override build: Report gcc and binutils versions in debug log build: Generate "reproducible" version strings on "clean" builds stacks: Use macro wrappers for call32() and stack_hop_back() malloc: Rename csm_malloc_preinit() to malloc_csm_preinit() build: Be more permissive in buildversion.py tool version scan docs: Document 'make EXTRAVERSION=xyz' and scripts/tarball.sh build: Allow official tarball builds to be considered "clean" coreboot: Minor - avoid K&R style function declaration biostables: Minor - fix incorrect indentation virtio: Minor - replace tab characters with space docs: Minor - replace seavgabios text in Build_overview.md with link buildversion: Avoid subprocess.check_output() as that requires python2.7 buildversion: Add debugging messages docs: Note v1.9.0 release
Kyösti Mälkki (1): PCI SDHCI driver: Fix base address
Magnus Granberg (1): build: use -fstack-check=no when available
Marc Marí (1): Add QEMU fw_cfg DMA interface
Marcel Apfelbaum (2): fw/pci: scan all buses if extraroots romfile is present fw/pci: map memory and IO regions for multiple pci root buses
Paolo Bonzini (4): boot.c: delay exiting boot if menu key is ESC boot: switch default menu key to ESC smm: ignore bits 16,18-31 of SMM revision ID smm: fix outl argument order
Paulo Alcantara (1): ich9: initialise RCBA register through LPC interface
Quan Xu (1): make SeaBios compatible with Xen vTPM.
Stefan Berger (9): Add an implementation of a TPM TIS driver Implementation of the TCG BIOS extensions Support for BIOS interrupt handler Add 'measurement' code to the BIOS tpm: Introduce a #define for command tag tpm: Be consistent with array sizes in tcgbios.c tpm: clean up parameters to build_and_send_cmd tpm: Clean up in tcgbios.h tpm: Move call to tpm_option_rom into init_optionrom
Stefan Weil (2): megasas: Fix outw, outl argument order Fix typos found by codespell
Vladimir Serbinenko (3): ahci: Ignore max_ports. Link rom.o with -N option. Add multiboot support.
tpearson@raptorengineeringinc.com (1): Add an option to only execute option ROMs contained in CBFS
Signed-off-by: Gerd Hoffmann kraxel@redhat.com --- roms/seabios | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/roms/seabios b/roms/seabios index 33fbe13..01a84be 160000 --- a/roms/seabios +++ b/roms/seabios @@ -1 +1 @@ -Subproject commit 33fbe13a3e2a01e0ba1087a8feed801a0451db21 +Subproject commit 01a84bea2d28a19d2405c1ecac4bdef17683cc0c
Turn off OHCI + TPM support to keep the size below 128k.
Signed-off-by: Gerd Hoffmann kraxel@redhat.com --- roms/config.seabios-128k | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/roms/config.seabios-128k b/roms/config.seabios-128k index c719ba6..0a9da77 100644 --- a/roms/config.seabios-128k +++ b/roms/config.seabios-128k @@ -3,6 +3,8 @@ CONFIG_QEMU=y CONFIG_ROM_SIZE=128 CONFIG_XEN=n +CONFIG_USB_OHCI=n CONFIG_USB_XHCI=n CONFIG_USB_UAS=n CONFIG_SDCARD=n +CONFIG_TCGBIOS=n
Signed-off-by: Gerd Hoffmann kraxel@redhat.com --- roms/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/roms/Makefile b/roms/Makefile index 09e33b5..01f2701 100644 --- a/roms/Makefile +++ b/roms/Makefile @@ -35,7 +35,7 @@ powerpc_cross_prefix := $(call find-cross-prefix,powerpc) x86_64_cross_prefix := $(call find-cross-prefix,x86_64)
# tag our seabios builds -SEABIOS_VERSION="$(shell cd seabios; git describe --tags --long) by qemu-project.org" +SEABIOS_EXTRAVERSION="-prebuilt.qemu-project.org"
# # EfiRom utility is shipped with edk2 / tianocore, in BaseTools/ @@ -78,12 +78,12 @@ build-seabios-config-%: config.% mkdir -p seabios/builds/$* cp $< seabios/builds/$*/.config $(MAKE) -C seabios \ - VERSION=$(SEABIOS_VERSION) \ + EXTRAVERSION=$(SEABIOS_EXTRAVERSION) \ CROSS_COMPILE=$(x86_64_cross_prefix) \ KCONFIG_CONFIG=$(CURDIR)/seabios/builds/$*/.config \ OUT=$(CURDIR)/seabios/builds/$*/ oldnoconfig $(MAKE) -C seabios \ - VERSION=$(SEABIOS_VERSION) \ + EXTRAVERSION=$(SEABIOS_EXTRAVERSION) \ CROSS_COMPILE=$(x86_64_cross_prefix) \ KCONFIG_CONFIG=$(CURDIR)/seabios/builds/$*/.config \ OUT=$(CURDIR)/seabios/builds/$*/ all
ACPI aml files traditionally have been managed in the seabios repo. In qemu version 2.0 we've switched over to have qemu generate the acpi tables and provide them to the firmware via fw_cfg.
The old aml files are still there and used for old machine types. Well, actually the q35 file only, the piix4 version is compiled into seabios (unless built with CONFIG_ACPI_DSDT=n) and is there for reference only.
The aml files havn't been touched for a long time, and given that new features requiring acpi changes are typically only added to new machine types this is unlikely to change in the future. So stop updating them.
That allows to cleanup things a bit on the seabios side in the future.
Signed-off-by: Gerd Hoffmann kraxel@redhat.com --- roms/Makefile | 1 - 1 file changed, 1 deletion(-)
diff --git a/roms/Makefile b/roms/Makefile index 01f2701..7bd1252 100644 --- a/roms/Makefile +++ b/roms/Makefile @@ -64,7 +64,6 @@ default: bios: build-seabios-config-seabios-128k build-seabios-config-seabios-256k cp seabios/builds/seabios-128k/bios.bin ../pc-bios/bios.bin cp seabios/builds/seabios-256k/bios.bin ../pc-bios/bios-256k.bin - cp seabios/builds/seabios-256k/src/fw/*dsdt.aml ../pc-bios/
seavgabios: $(patsubst %,seavgabios-%,$(vgabios_variants))
Only old machine types which don't use the acpi builder (qemu 1.7 + older) have to load that file for proper acpi support.
Signed-off-by: Gerd Hoffmann kraxel@redhat.com --- hw/i386/pc_q35.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index 133bc68..727269e 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -129,7 +129,10 @@ static void pc_q35_init(MachineState *machine) }
pc_cpus_init(pcms); - pc_acpi_init("q35-acpi-dsdt.aml"); + if (!has_acpi_build) { + /* only machine types 1.7 & older need this */ + pc_acpi_init("q35-acpi-dsdt.aml"); + }
kvmclock_create();
M On 12/17/2015 12:40 PM, Gerd Hoffmann wrote:
Only old machine types which don't use the acpi builder (qemu 1.7 + older) have to load that file for proper acpi support.
Signed-off-by: Gerd Hoffmann kraxel@redhat.com
hw/i386/pc_q35.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index 133bc68..727269e 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -129,7 +129,10 @@ static void pc_q35_init(MachineState *machine) }
pc_cpus_init(pcms);
- pc_acpi_init("q35-acpi-dsdt.aml");
- if (!has_acpi_build) {
/* only machine types 1.7 & older need this */
Actually 1.6 and older, right? (I might be wrong)
pc_acpi_init("q35-acpi-dsdt.aml");
}
kvmclock_create();
It looks OK to me.
Reviewed-by: Marcel Apfelbaum marcel@redhat.com
Thanks, Marcel
On Thu, Dec 17, 2015 at 11:40:49AM +0100, Gerd Hoffmann wrote:
Only old machine types which don't use the acpi builder (qemu 1.7 + older) have to load that file for proper acpi support.
Signed-off-by: Gerd Hoffmann kraxel@redhat.com
hw/i386/pc_q35.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index 133bc68..727269e 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -129,7 +129,10 @@ static void pc_q35_init(MachineState *machine) }
pc_cpus_init(pcms);
- pc_acpi_init("q35-acpi-dsdt.aml");
- if (!has_acpi_build) {
/* only machine types 1.7 & older need this */
pc_acpi_init("q35-acpi-dsdt.aml");
- }
This conflicts with:
Subject: [Qemu-devel] [PATCH v3 0/6] pc: Initialization and compat function cleanup Date: Tue, 1 Dec 2015 20:58:02 -0200 Message-Id: 1449010688-19205-1-git-send-email-ehabkost@redhat.com
But rebasing it is very simple (just replace has_acpi_build with pcmc->has_acpi_build).
But I would prefer to finally apply the series that deletes pc-q35-2.3 and older (submitted in August), so we just can delete this code.
Hi,
But I would prefer to finally apply the series that deletes pc-q35-2.3 and older (submitted in August), so we just can delete this code.
... and just delete the pc-bios/*.aml files too (see patch 4/6 in this series).
Makes sense to me.
cheers, Gerd