Re: [RFC v1 16/25] hw/arm/virt: Set proper conduit method for Realms

2026-07-07 Thread Philippe Mathieu-Daudé

On 8/7/26 00:42, Mathieu Poirier wrote:

From: Jean-Philippe Brucker 

The HVC conduit for PSCI is not supported for Realms, so default
to SMC.

Signed-off-by: Jean-Philippe Brucker 
Signed-off-by: Mathieu Poirier 
---
  hw/arm/virt.c | 8 +++-
  1 file changed, 7 insertions(+), 1 deletion(-)


Reviewed-by: Philippe Mathieu-Daudé 



[RFC v1 16/25] hw/arm/virt: Set proper conduit method for Realms

2026-07-07 Thread Mathieu Poirier
From: Jean-Philippe Brucker 

The HVC conduit for PSCI is not supported for Realms, so default
to SMC.

Signed-off-by: Jean-Philippe Brucker 
Signed-off-by: Mathieu Poirier 
---
 hw/arm/virt.c | 8 +++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index 6a3c69ba8f90..317816f942de 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -274,6 +274,11 @@ static const int a15irqmap[] = {
 [VIRT_PLATFORM_BUS] = 112, /* ...to 112 + PLATFORM_BUS_NUM_IRQS -1 */
 };
 
+static bool virt_machine_is_confidential(VirtMachineState *vms)
+{
+return MACHINE(vms)->cgs;
+}
+
 static void create_randomness(MachineState *ms, const char *node)
 {
 struct {
@@ -2952,10 +2957,11 @@ static void machvirt_init(MachineState *machine)
  * if the guest has EL2 then we will use SMC as the conduit,
  * and otherwise we will use HVC (for backwards compatibility and
  * because if we're using KVM then we must use HVC).
+ * Realm guests must also use SMC.
  */
 if (vms->secure && firmware_loaded) {
 vms->psci_conduit = QEMU_PSCI_CONDUIT_DISABLED;
-} else if (vms->virt) {
+} else if (vms->virt || virt_machine_is_confidential(vms)) {
 vms->psci_conduit = QEMU_PSCI_CONDUIT_SMC;
 } else {
 vms->psci_conduit = QEMU_PSCI_CONDUIT_HVC;
-- 
2.43.0