Hello Ard,

On 11/10/22 14:47, Ard Biesheuvel wrote:
Currently, we only expose the EFI_RNG_PROTOCOL in ArmVirtQemu if QEMU
provides a virtio-rng device, and it doesn't do so by default.

Given that KVM exposes the ARM architected TRNG service (and has done so
for a while now), let's incorporate the RngDxe driver which has recently
grown support for the ARM firmware/hypervisor service.

If both the service and the virtio device are available, two
implementations of the RNG protocol will be exposed, but this is fine:
callers that don't care about the distinction will grab the first one
available.

Signed-off-by: Ard Biesheuvel <a...@kernel.org>
---
  ArmVirtPkg/ArmVirtQemu.dsc           | 11 +++++++++++
  ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc |  5 +++++
  ArmVirtPkg/ArmVirtQemuKernel.dsc     | 11 +++++++++++
  3 files changed, 27 insertions(+)

diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc
index f77443229e8e..1771ad562225 100644
--- a/ArmVirtPkg/ArmVirtQemu.dsc
+++ b/ArmVirtPkg/ArmVirtQemu.dsc
@@ -140,6 +140,8 @@ [PcdsFeatureFlag.common]
gArmVirtTokenSpaceGuid.PcdTpm2SupportEnabled|$(TPM2_ENABLE) + gArmTokenSpaceGuid.PcdMonitorConduitHvc|TRUE
+

It seems that the PSCI conduit needs to be dynamically set.
The psci conduit that should be used is configured by qemu depending on the
virtualization=[on|off] parameter. When off, HVC must be used (SMC otherwise).
Cf:
https://github.com/qemu/qemu/blob/master/hw/arm/virt.c#L2052

If using the wrong conduit, qemu traps the instruction and stops.
For KvmTool, the conduit is always HVC.

Command used:
[PATH_TO]/qemu/build/qemu-system-aarch64 \
        -serial stdio -M virt,highmem=on,virtualization=off \
        -cpu cortex-a57 -smp 4 -m 4096 \
        -drive file=pflash0.img,format=raw,if=pflash,readonly=on \
        -drive file=pflash1.img,format=raw,if=pflash

Regards,
Pierre


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#96499): https://edk2.groups.io/g/devel/message/96499
Mute This Topic: https://groups.io/mt/94935841/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to