ChangeLog/9.0: Difference between revisions

From QEMU
Line 26: Line 26:
* New board types:
* New board types:
** b-l475e-iot01a : the B-L475E-IOT01A board (currently minimal support only)
** b-l475e-iot01a : the B-L475E-IOT01A board (currently minimal support only)
** mps3-an536 : a Cortex-R52 board modelling the AN536 firmware image for the MPS3 development board


* Changes to existing board types:
* Changes to existing board types:
Line 32: Line 33:
** Raspberry Pi boards now support the SPI controller
** Raspberry Pi boards now support the SPI controller
** The npcm7xx based boards now support the ethernet controllers
** The npcm7xx based boards now support the ethernet controllers
** The virt board now wires up non-secure EL2 virtual timer IRQ when EL2 emulation is enabled with 'virtualization=on'.
Note that when the virt board uses the non-secure EL2 virtual timer IRQ, this will trip a bug in older versions of the EDK2 guest firmware, which causes EDK2 to assert on bootup with "ASSERT [ArmTimerDxe] /home/kraxel/projects/qemu/roms/edk2/ArmVirtPkg/Library/ArmVirtTimerFdtClientLib/ArmVirtTimerFdtClientLib.c(72): PropSize == 36 || PropSize == 48". If you see that assertion you should do one of:
* update your EDK2 binaries to edk2-stable202311 or newer
* use the 'virt-8.2' versioned machine type
* not use 'virtualization=on'


=== AVR ===
=== AVR ===

Revision as of 11:02, 16 February 2024

System emulation

Removed features and incompatible changes

Consult the 'Removed features' page for details of suggested replacement functionality.

  • Running QEMU with KVM requires Linux 4.4 or newer. A future version of QEMU will increase the minimum requirement for Arm hosts to Linux 4.19 (also when running KVM); if this is too restrictive for your use case, please contact us at qemu-devel@nongnu.org.
  • The behaviour of the '-serial none' option when used together with other '-serial' options has been corrected. Previously when '-serial none' was followed by '-serial something' the '-serial none' was effectively ignored. Now it controls the existence of the first serial port, and the following '-serial' option controls the behaviour of the second serial port; this brings it in to line with how all other cases of multiple '-serial' options work. If you have a command line that was accidentally relying on the old behaviour, you can simply delete the unnecessary '-serial none'.

New deprecated options and features

Consult the "Deprecated Features" chapter of the QEMU System Emulation User's Guide for further details of the deprecations and their suggested replacements.

  • The CRIS architecture has been marked deprecated

68k

Alpha

Arm

  • New architectural features now emulated:
    • FEAT_NV
    • FEAT_NV2
  • New board types:
    • b-l475e-iot01a : the B-L475E-IOT01A board (currently minimal support only)
    • mps3-an536 : a Cortex-R52 board modelling the AN536 firmware image for the MPS3 development board
  • Changes to existing board types:
    • The Freescale i.MX6 now models the cache controller and the PCIe controller
    • The Allwinner R40 and Bananapi boards now model the USB controllers, the AHCI/SATA controller and the watchdog timer
    • Raspberry Pi boards now support the SPI controller
    • The npcm7xx based boards now support the ethernet controllers
    • The virt board now wires up non-secure EL2 virtual timer IRQ when EL2 emulation is enabled with 'virtualization=on'.

Note that when the virt board uses the non-secure EL2 virtual timer IRQ, this will trip a bug in older versions of the EDK2 guest firmware, which causes EDK2 to assert on bootup with "ASSERT [ArmTimerDxe] /home/kraxel/projects/qemu/roms/edk2/ArmVirtPkg/Library/ArmVirtTimerFdtClientLib/ArmVirtTimerFdtClientLib.c(72): PropSize == 36 || PropSize == 48". If you see that assertion you should do one of:

  • update your EDK2 binaries to edk2-stable202311 or newer
  • use the 'virt-8.2' versioned machine type
  • not use 'virtualization=on'

AVR

Hexagon

HPPA

  • SeaBIOS-hppa version 16
  • 64-bit and 32-bit SeaBIOS firmware binary
  • Fixed 32-bit HP-UX crashes on B160L (32-bit) machine
  • Fixed NetBSD boot failure due to power button in page zero
  • Fixed NetBSD FPU detection failure
  • Fixed OpenBSD 7.4 boot failure
  • Allows usage of up to 3840 MB of memory (instead of 3 GB)
  • Supports the qemu --nodefaults option
  • Added qemu-specific opcodes for "HALT QEMU", "RESET QEMU" and "RESTORE SHR" (restore shadow registers).
  • No abort on access failure in Astro/Elroy registers
  • Fixed tulip driver in NetBSD

LoongArch

ISA and Extensions

Machines

Microblaze

MIPS

Nios2

OpenRISC

PowerPC

Renesas RX

Renesas SH

RISC-V

ISA and Extensions

  • Add support for Zacas extension
  • Add amocas.[w,d,q] instructions
  • RVA22 profiles support
  • Add RVV CSRs to KVM
  • Add support for 'B' extension
  • Implement optional CSR mcontext of debug Sdtrig extension
  • Add support for Zaamo and Zalrsc
  • Enable xtheadsync under user mode

Machines

  • ACPI: Enable AIA, PLIC and update RHCT
  • Fix the interrupts-extended property format of PLIC
  • Document acpi parameter of virt machine
  • Remove group setting of KVM AIA if the machine only has 1 socket
  • sifive_u: Update S-mode U-Boot image build instructions
  • Support vlenb and vregs[] in KVM
  • Support new isa extension detection devicetree properties
  • SMBIOS support for RISC-V virt machine
  • Add rv32i,rv32e and rv64e CPUs

Fixes and Misc

  • Fix th.dcache.cval1 priviledge check
  • Don't allow write mstatus_vs without RVV
  • Fix machine IDs QOM getters
  • Fix KVM reg id sizes
  • Upgrade OpenSBI from v1.3.1 to v1.4
  • pmp: Ignore writes when RW=01 and MML=0
  • Don't adjust vscause for exceptions
  • Ensure mideleg is set correctly on reset
  • Check for 'A' extension on all atomic instructions

s390x

  • Fix access register handling in the emulation of the LOAD ADDRESS EXTENDED (LAE) instruction
  • Add emulation of CVDG, CVB, CVBY and CVBG instructions

SPARC

Tricore

x86

Xen emulation under KVM

TCG

Known issues

Xtensa

Device emulation and assignment

ACPI / SMBIOS

Audio

Block devices

Graphics

Hyper-V

I2C

Input devices

IPMI

Multi-process QEMU

Network devices

NVDIMM

NVMe

PCI/PCIe

SCSI

SD card

SMBIOS

TPM

UFS

USB

VFIO

virtio

vDPA

Xen

fw_cfg

9pfs

virtiofs

Semihosting

Audio

Character devices

Crypto subsystem

Authorization subsystem

GUI

GDBStub

  • the gdbstub now supports catching syscalls in user-mode

TCG Plugins

Host support

Memory backends

  • Memory backends specified on the QEMU commandline can now be preallocated concurrently/asynchronously in some configurations, to speedup QEMU startup with preallocation on multiple memory backends: one requirement is that memory backends that are getting preallocated have a "thread-context" set.
  • QEMU 8.2 accidentally allowed for creation of memory backends with sizes that are not aligned to the (huge) page size. This has been fixed.

Migration

  • Fixed migration for SUSPENDED VM, where we used to ignore the SUSPENDED state and kick off the VM even if it was suspended before the migration.

Monitor

QMP

HMP

Network

Block device backends and tools

Tracing

Semihosting

Miscellaneous

User-mode emulation

runtime

binfmt_misc

alpha

arm/arm64/aarch64

LoongArch

HPPA

s390

x86

TCG

Record/Replay

  • fixed record/replay to avoid problems with partial chardev drains
  • updated replay-dump.py for current ABI

RISC-V

Guest agent

Build Information

Build Dependencies

Docker Tweaks

Windows

Testing and CI

Known issues