qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/3] virt: wire up NS EL2 virtual timer IRQ
@ 2024-01-22 14:35 Peter Maydell
  2024-01-22 14:35 ` [PATCH v2 1/3] tests/qtest/bios-tables-test: Allow changes to virt GTDT Peter Maydell
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Peter Maydell @ 2024-01-22 14:35 UTC (permalink / raw)
  To: qemu-arm, qemu-devel
  Cc: Leif Lindholm, Marcin Juszkiewicz, Ard Biesheuvel, Shannon Zhao,
	Michael S. Tsirkin, Igor Mammedov, Ani Sinha

This patchset wires up the NS EL2 virtual timer IRQ on the virt
board, similarly to what commit 058262e0a8b2 did for the sbsa-ref board.

Version 1 was an RFC patchset, originally sent back in autumn:
https://patchew.org/QEMU/20230919101240.2569334-1-peter.maydell@linaro.org/
The main reason for it being an RFC is that the change, while correct,
triggers a bug in EDK2 guest firmware that makes EDK2 assert on bootup.
Since the RFC, we've upgraded our in-tree version of the EDK2 binaries
to a version that has the fix for that bug, so I think the QEMU side of
these patches is ready to go in now.

To accommodate users who might still be using older EDK2 binaries,
we only expose the IRQ in the DTB and ACPI tables for virt-9.0 and
later machine types.

If you see in the guest:
     ASSERT [ArmTimerDxe] /home/kraxel/projects/qemu/roms/edk2/ArmVirtPkg/Library/ArmVirtTimerFdtClientLib/ArmVirtTimerFdtClientLib.c(72): PropSize == 36 || PropSize == 48

then your options are:
 * update your EDK2 binaries to edk2-stable202311 or newer
 * use the 'virt-8.2' versioned machine type
 * not use 'virtualization=on'
                   
I'll put something about this into the release notes when this
goes into git. (There are other reasons why you probably want a
newer EDK2 for AArch64 guests, so this is worth flagging up to our
downstream distros who don't take our pre-built firmware binaries.)

changes v1->v2:
 * the change in DTB and ACPI tables is now tied to the machine version
 * handle change of the ARCH_TIMER_*_IRQ values from PPI numbers to INTIDs
 * bump the FADT header to indicate ACPI v6.3, since we might be using
   a 6.3 feature in the GTDT
 * the avocado tests now all pass, because we have updated our copy
   of EDK2 in pc-bios/ to a version which has the fix for the bug
   which would otherwise cause it to assert on bootup
 * patch 2 commit message improved to give details of the EDK2 assert and
   state the options for dealing with it (this will also go into the
   QEMU release notes)

thanks
-- PMM

Peter Maydell (3):
  tests/qtest/bios-tables-test: Allow changes to virt GTDT
  hw/arm/virt: Wire up non-secure EL2 virtual timer IRQ
  tests/qtest/bios-tables-tests: Update virt golden reference

 include/hw/arm/virt.h     |   2 ++
 hw/arm/virt-acpi-build.c  |  20 +++++++++----
 hw/arm/virt.c             |  60 ++++++++++++++++++++++++++++++++------
 tests/data/acpi/virt/FACP | Bin 276 -> 276 bytes
 tests/data/acpi/virt/GTDT | Bin 96 -> 104 bytes
 5 files changed, 67 insertions(+), 15 deletions(-)

-- 
2.34.1



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2024-02-14  8:57 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-01-22 14:35 [PATCH v2 0/3] virt: wire up NS EL2 virtual timer IRQ Peter Maydell
2024-01-22 14:35 ` [PATCH v2 1/3] tests/qtest/bios-tables-test: Allow changes to virt GTDT Peter Maydell
2024-01-22 14:35 ` [PATCH v2 2/3] hw/arm/virt: Wire up non-secure EL2 virtual timer IRQ Peter Maydell
2024-01-22 14:35 ` [PATCH v2 3/3] tests/qtest/bios-tables-tests: Update virt golden reference Peter Maydell
2024-02-01 13:33 ` [PATCH v2 0/3] virt: wire up NS EL2 virtual timer IRQ Peter Maydell
2024-02-14  8:55 ` Ard Biesheuvel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).