Fwd: [ANNOUNCE] QEMU 5.1.0 is now available

Joel Stanley joel at jms.id.au
Tue Aug 18 16:23:54 AEST 2020


Qemu 5.1 contains a number of enhancements for emulating aspeed
machines. In addition to the large amount of refactoring that was
performed, it gained support for:

 - AST2600 SMP booting
 - AST2600 A1 revision
 - Fixes for running the AST2600 u-boot (particularly memory training
for the A1)
 - Simplified network device command line
 - Removed need to pass cpu count and memory size
 - A new machine type from Facebook

Qemu 5.1 has landed in Debian unstable as of today.

If you haven't used qemu before, here are some ways it can be used:

To boot an ast2600 EVB machine with an emmc device from your kernel
build tree tree:

qemu-system-arm -machine ast2600-evb \
                -nographic -no-reboot \
                -net nic,model=ftgmac100,netdev=netdev1 -netdev
user,id=netdev1 \
                -dtb arch/arm/boot/dts/aspeed-ast2600-evb.dtb \
                -drive file=rootfs.ext4.qcow2,if=sd,index=2" \
                -append "console=ttyS4 rootwait root=/dev/mmcblk0"

The rootfs.ext4.qcow2 can be grabbed from here:
https://github.com/shenki/continuous-integration/raw/master/images/arm/rootfs.ext4.qcow2.

Note that qemu doesn't yet support booting from eMMC directly with the
Aspeed machine type. Patches are welcome.

---

To boot an openbmc image on the ast2500, such as Romulus, grab the
flash image from Jenkins:

https://jenkins.openbmc.org/view/latest/job/latest-master/label=docker-builder,target=romulus/lastSuccessfulBuild/artifact/openbmc/build/tmp/deploy/images/romulus/flash-romulus

and then boot it as follows:

qemu-system-arm -machine romulus-bmc \
                -nographic -no-reboot \
                -net nic,model=ftgmac100,netdev=netdev1 -netdev
user,id=netdev1 \
                -drive file=flash-romulus,format=raw,if=mtd

---

You can use this to test a kernel built by yocto:

Download this file:
https://jenkins.openbmc.org/view/latest/job/latest-master/label=docker-builder,target=romulus/lastSuccessfulBuild/artifact/openbmc/build/tmp/deploy/images/romulus/image-kernel

Run qemu with the 'tftp' option set to the directory where you
downloaded the above image-kernel. You will need to halt it at the
u-boot prompt, set a ethaddr, and run 'dhcp image-kernel':

qemu-system-arm -machine romulus-bmc \
                -nographic -no-reboot \
                -net nic,model=ftgmac100,netdev=netdev1 -netdev
user,id=netdev1,tftp=$PWD \
                -drive file=flash-romulus,format=raw,if=mtd
U-Boot 2016.07 (Jan 16 2019 - 00:21:48 +0000)

Hit any key to stop autoboot:  1
ast# setenv ethaddr DE:AD:BE:EF:CA:FE
ast# dhcp image-kernel
aspeednic#0: PHY at 0x00
set_mac_control_register 1453
Found NCSI Network Controller at (0, 0)
Found NCSI Network Controller at (0, 1)
BOOTP broadcast 1
DHCP client bound to address 10.0.2.15 (2 ms)
Using  device
TFTP from server 10.0.2.2; our IP address is 10.0.2.15
Filename 'image-kernel'.
Load address: 0x83000000
Loading: #################################################################
     #################################################################
     #################################################################
     #################################################################
     ###############################################
     62.2 MiB/s
done
Bytes transferred = 4372700 (42b8dc hex)
ast# bootm
## Loading kernel from FIT Image at 83000000 ...
   Using 'conf at aspeed-bmc-opp-romulus.dtb' configuration
   Trying 'kernel at 1' kernel subimage
     Description:  Linux kernel
     Type:         Kernel Image

---

Here are the commit stats for aspeed code in Qemu 5.1:

$ git diff --stat v5.0.0..v5.1.0  -- hw/**/*aspeed* hw/net/ftgmac100.c
 hw/arm/aspeed.c         | 350
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------------------------------------------------------------
 hw/arm/aspeed_ast2600.c | 261
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 hw/arm/aspeed_soc.c     | 181
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------------------------------------------------------------
 hw/gpio/aspeed_gpio.c   |   9 +++------
 hw/i2c/aspeed_i2c.c     |   3 +--
 hw/misc/aspeed_scu.c    |  11 +++++------
 hw/misc/aspeed_sdmc.c   |  72
++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------
 hw/net/ftgmac100.c      |  31 +++++++++++++++++++++++++++----
 hw/sd/aspeed_sdhci.c    |  15 ++++-----------
 hw/ssi/aspeed_smc.c     |   1 -
 10 files changed, 509 insertions(+), 425 deletions(-)


$ git shortlog  v5.0.0..v5.1.0  -- hw/**/*aspeed* hw/net/ftgmac100.c
Cédric Le Goater (2):
      arm/aspeed: Compute the number of CPUs from the SoC definition
      arm/aspeed: Rework NIC attachment

Erik Smit (1):
      Implement configurable descriptor size in ftgmac100

Joel Stanley (3):
      aspeed: Add boot stub for smp booting
      aspeed: Support AST2600A1 silicon revision
      aspeed: sdmc: Implement AST2600 locking behaviour

Markus Armbruster (22):
      qom: Drop object_property_set_description() parameter @errp
      qom: Drop parameter @errp of object_property_add() & friends
      qdev: Convert uses of qdev_create() with Coccinelle
      ssi: ssi_auto_connect_slaves() never does anything, drop
      ssi: Convert uses of ssi_create_slave_no_init() with Coccinelle
      qom: Tidy up a few object_initialize_child() calls
      qom: Less verbose object_initialize_child()
      sysbus: Drop useless OBJECT() in sysbus_init_child_obj() calls
      sysbus: Convert qdev_set_parent_bus() use with Coccinelle, part 2
      sysbus: Convert qdev_set_parent_bus() use with Coccinelle, part 4
      qdev: Convert bus-less devices to qdev_realize() with Coccinelle
      qdev: Make qdev_prop_set_drive() match the other helpers
      arm/aspeed: Drop aspeed_board_init_flashes() parameter @errp
      aspeed: Clean up roundabout error propagation
      hw/arm: Drop useless object_property_set_link() error handling
      aspeed: Fix realize error API violation
      qdev: Use returned bool to check for qdev_realize() etc. failure
      qapi: Use returned bool to check for failure, Coccinelle part
      qom: Put name parameter before value / visitor parameter
      qom: Use returned bool to check for failure, Coccinelle part
      error: Avoid unnecessary error_propagate() after error_setg()
      error: Eliminate error_propagate() with Coccinelle, part 1

Patrick Williams (1):
      aspeed: Add support for the sonorapass-bmc board

Philippe Mathieu-Daudé (13):
      hw/gpio/aspeed_gpio: Remove dead assignment
      hw: Remove unnecessary DEVICE() cast
      hw/arm/aspeed: Correct DRAM container region size
      hw/arm/aspeed: Remove extraneous MemoryRegion object owner
      hw/arm/aspeed: Rename AspeedBoardState as AspeedMachineState
      hw/arm/aspeed: QOM'ify AspeedMachineState
      hw/arm/aspeed: Describe each PCA9552 device
      hw/arm/aspeed: Do not create and attach empty SD cards by default
      hw/i2c/aspeed_i2c: Simplify aspeed_i2c_get_bus()
      hw/i2c: Rename i2c_try_create_slave() as i2c_slave_new()
      hw/i2c: Rename i2c_realize_and_unref() as i2c_slave_realize_and_unref()
      hw/i2c: Rename i2c_create_slave() as i2c_slave_create_simple()
      hw/misc/aspeed_sdmc: Fix incorrect memory size

erik-smit (1):
      ftgmac100: fix dblac write test


---------- Forwarded message ---------
From: Michael Roth <mdroth at linux.vnet.ibm.com>
Date: Tue, 11 Aug 2020 at 22:26
Subject: [ANNOUNCE] QEMU 5.1.0 is now available
To: <qemu-devel at nongnu.org>
Cc: <peter.maydell at linaro.org>


Hello,

On behalf of the QEMU Team, I'd like to announce the availability of
the QEMU 5.1.0 release. This release contains 2500+ commits from 235
authors.

You can grab the tarball from our download page here:

  https://www.qemu.org/download/#source

The full list of changes are available at:

  https://wiki.qemu.org/ChangeLog/5.1

Highlights include:

 * ARM: support for ARMv8.2 TTS2UXN architecture feature
 * ARM: support for ARMv8.5 MemTag architecture feature
 * ARM: new board support for sonorapass-bmc
 * ARM: virt: support for memory hot-unplug
 * ARM: support for nvdimm hotplug for ACPI guests
 * AVR: new architecture support for AVR CPUs
 * AVR: new board support for Arduino Duemilanove, Arduino Mega 2560,
   Arduino Mega, and Arduino UNO
 * MIPS: support for Loongson 3A CPUs (R1 and R4)
 * MIPS: performance improvements for FPU and MSA instruction
   emulation
 * PowerPC: support for guest error recovery via FWNMI
 * RISC-V: support for SiFive E34 and Ibex CPUs
 * RISC-V: new board support for HiFive1 revB and OpenTitan
 * RISC-V: Spike machine now supports more than 1 CPU
 * s390: KVM support for protected virtualization (secure execution mode)
 * x86: improvements to HVF acceleration support on macOS
 * x86: reduced virtualization overhead for non-enlightened Windows
   guests via Windows ACPI Emulated Device Table

 * block: support for 2MB logical/physical blocksizes for virtual
   storage devices
 * crypto: support for passing secrets to QEMU via Linux keyring
 * crypto: support for LUKS keyslot management via qemu-img
 * NVMe: support for Persistent Memory Region from NVMe 1.4 spec
 * qemu-img: additional features added for map/convert/measure commands,
   as well as support for zstd compression
 * qemu-img: support for new 'bitmap' command for manipulating
   persistent bitmaps in qcow2 files
 * virtio: TCG guests can now use vhost-user threads
 * virtio: vhost-user now supports registering more than 8 RAM slots

 * and lots more...

Thank you to everyone involved!


More information about the openbmc mailing list