diff mbox series

[4/4] hw/arm/sbsa-ref: Use two-stage SMMU

Message ID 20240816161350.3706332-5-peter.maydell@linaro.org
State Superseded
Headers show
Series hw/arm: Enable 'nested' SMMU in virt, sbsa-ref | expand

Commit Message

Peter Maydell Aug. 16, 2024, 4:13 p.m. UTC
Now that our SMMU model supports enabling both stages of translation
at once, we can enable this in the sbsa-ref board.  Existing guest
code that only programs stage 1 and doesn't care about stage 2 should
continue to run with the same behaviour, but guests that do want to
do nested SMMU configurations can now do so.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
 hw/arm/sbsa-ref.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Marcin Juszkiewicz Aug. 19, 2024, 9:39 a.m. UTC | #1
W dniu 16.08.2024 o 18:13, Peter Maydell pisze:
> Now that our SMMU model supports enabling both stages of translation
> at once, we can enable this in the sbsa-ref board.  Existing guest
> code that only programs stage 1 and doesn't care about stage 2 should
> continue to run with the same behaviour, but guests that do want to
> do nested SMMU configurations can now do so.
> 
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Yay! Another step in getting (S)BSA ACS pass done:

Operating System View:
  304 : Check SMMU S-EL2 & stage1 support          : Result:  PASS
Hypervisor View:
  352 : Check SMMU S-EL2 & stage2 support          : Result:  PASS

Reviewed-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>

> ---
>   hw/arm/sbsa-ref.c | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/hw/arm/sbsa-ref.c b/hw/arm/sbsa-ref.c
> index ae37a923015..396abe9c1bd 100644
> --- a/hw/arm/sbsa-ref.c
> +++ b/hw/arm/sbsa-ref.c
> @@ -621,6 +621,7 @@ static void create_smmu(const SBSAMachineState *sms, PCIBus *bus)
>   
>       dev = qdev_new(TYPE_ARM_SMMUV3);
>   
> +    object_property_set_str(OBJECT(dev), "stage", "nested", &error_abort);
>       object_property_set_link(OBJECT(dev), "primary-bus", OBJECT(bus),
>                                &error_abort);
>       sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal);
diff mbox series

Patch

diff --git a/hw/arm/sbsa-ref.c b/hw/arm/sbsa-ref.c
index ae37a923015..396abe9c1bd 100644
--- a/hw/arm/sbsa-ref.c
+++ b/hw/arm/sbsa-ref.c
@@ -621,6 +621,7 @@  static void create_smmu(const SBSAMachineState *sms, PCIBus *bus)
 
     dev = qdev_new(TYPE_ARM_SMMUV3);
 
+    object_property_set_str(OBJECT(dev), "stage", "nested", &error_abort);
     object_property_set_link(OBJECT(dev), "primary-bus", OBJECT(bus),
                              &error_abort);
     sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal);