QEMU 9.0.0 emulates (almost) a complete Raspberry Pi 4B

QEMU version 9.0.0 will delight Raspberry Pi fans. There is SPI and I²C support for older models, and an almost complete Raspberry Pi 4B can be emulated.

Save to Pocket listen Print view
Ein Banner mit Comic-Pinguin und Open-Source-Schriftzug.

From ARM to Raspi, the new QEMU version offers a total of 2700 changes.

(Bild: iX)

5 min. read
By
  • Michael Plura
Contents
This article was originally published in German and has been automatically translated.

The QEMU developers have released version 9.0.0 of their free virtualization software. The new version contains a total of over 2,700 changes from no less than 220 developers. Skimming through the complete changelog, you will notice large blocks of changes/new features for ARM and RISC-V, but also for HPPA and LoongArch.

In ARM emulation, some old hardware will be removed: virtual boards that represent old ARM hardware with the PXA2xx and OMAP2 SoCs are to be removed in one of the next QEMU versions. One of the reasons is that no one can be found to maintain the obsolete code. These include akita, borzoi, cheetah, connex, mainstone, n800, n810, spitz, terrier, tosa, verdex and z2.

Some new functions have been added to the ARM emulation architecture, such as FEAT_ECV (Enhanced Counter Virtualization), FEAT_NV (Nested Virtualization) and FEAT_NV2 (Enhanced Nested Virtualization Support). QEMU 9.0.0 users can select three new ARM boards: b-l475e-iot01a (B-L475E-IOT01A, an STM32L4 Discovery Kit for IoT nodes) with minimal support for now, mps3-an536 (Cortex-R52 board with AN536 firmware for MPS3 development boards) and raspi4b, which can easily be recognized as the definition for a Raspberry Pi 4B.

Until now, QEMU emulated the popular single-board computers up to the Raspberry Pi 3B (raspi0 to raspi3b). The virtual Raspberry Pi 4B makes it possible to try out new software on virtual hardware. With QEMU 9.0.0. a virtual SPI (Serial Peripheral Interface) and an I²C (Inter Integrated Circuit) controller have been added for all Raspberry Pi variants. If you also emulate virtual sensors, this is very practical. Unfortunately, there is still no emulation for the PCI(e) interface. And much more painful: Ethernet. The developers hope to be able to deliver this with QEMU 10.

There is a cache and a PCIe controller for the i.MX6 model, Allwinner R40 and Banana Pi boards get virtual USB, AHCI/SATA and a watchdog timer. An Ethernet controller has been added to the npcm7xx boards.

RISC-V, the open platform standard for open source hardware under the BSD license, has received the most innovations. The Zacas extension with its three instructions for atomic compare and swap operations is highlighted. Support for profiles has been extended and now also includes RVA22. RVA23, which deals with crypto and special Android functions, is not yet included. Several other machine types and SMBIOS for RISC-V are also new in QEMU 9.0.0.

With QEMU, it is always pleasing to see that older architectures are apparently still being used and even further developed. A fix for the 68010 and the ability to use VirtIO devices on Q800 machines extend the classic 68k architecture. For HPPA, the Hewlett Packard Precision Architecture or Precision Architecture RISC (PA-RISC), there are fixes for the use of HP-Unix (HP-UX) and NetBSD as well as a SeaBIOS in version 16. The emulations for Renesas SH and IBM's s390x have also been extended.

The emulation of the LoongArch platform developed in China is also making significant progress. It is based on the MIPS64r6 architecture and, to put it simply, combines the best of MIPS and RISC-V, combined with its own extensions. QEMU 9.0.0 received LoongArch KVM support including the LSX/LASX extension. Virtual machines with LoongArch emulation can be started via UEFI.

The Virtio-blk block driver has been given multi-queue support so that different queues on a single hard disk can be processed by different I/O threads. This true multi-queue I/O for virtio-blk allows for better scalability. The crypto subsystem of QEMU 9.0.0 now allows the use of the SM4 cipher and can be used with the LUKS block driver.

Important: QEMU with KVM now requires the Linux kernel 4.4+. Older kernel versions are no longer supported. For future QEMU versions it is planned to increase the minimum requirements on ARM hosts to Linux kernel 4.19. Also planned and already marked as "deprecated" is the ETRAX CRIS architecture, a RISC ISA developed for the embedded market by Axis Communications in 1993. Apart from changes to the basic QEMU system, there have been no special innovations for Alpha, AVR, MIPS, PowerPC, SPARC or x86.

All changes and possible incompatibilities of QEMU 9.0.0 are documented in the changelog. The online documentation and the current source code are also available free of charge on the QEMU project page.

(are)