On Fri, 2025-09-19 at 21:35 +0000, Alejandro Jimenez wrote:
> From: Joao Martins <[joao.m.martins@oracle.com](mailto:joao.m.martins@oracle.com)>
>
> To be later reused by AMD, now that it shares similar property.
>
> Signed-off-by: Joao Martins <[joao.m.martins@oracle.com](mailto:joao.m.martins@oracle.com)>
> Signed-off-by: Alejandro Jimenez <[alejandro.j.jimenez@oracle.com](mailto:alejandro.j.jimenez@oracle.com)>
Hi Alejandro,
Most commits messages for the Intel IOMMU are formatted like "intel_iommu: XYZ".
We should probably stick to that.
Otherwise, the change looks good to me.
Thanks
cmd
> ---
> hw/i386/intel_iommu.c | 5 ++---
> hw/i386/x86-iommu.c | 1 +
> include/hw/i386/x86-iommu.h | 1 +
> 3 files changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c
> index 83c5e444131a3..2b848d094cfb7 100644
> --- a/hw/i386/intel_iommu.c
> +++ b/hw/i386/intel_iommu.c
> @@ -2701,7 +2701,7 @@ static void vtd_handle_gcmd_write(IntelIOMMUState *s)
> uint32_t changed = status ^ val;
>
> trace_vtd_reg_write_gcmd(status, val);
> - if ((changed & VTD_GCMD_TE) && s->dma_translation) {
> + if ((changed & VTD_GCMD_TE) && x86_iommu->dma_translation) {
> /* Translation enable/disable */
> vtd_handle_gcmd_te(s, val & VTD_GCMD_TE);
> }
> @@ -3835,7 +3835,6 @@ static const Property vtd_properties[] = {
> DEFINE_PROP_BOOL("snoop-control", IntelIOMMUState, snoop_control, false),
> DEFINE_PROP_BOOL("x-pasid-mode", IntelIOMMUState, pasid, false),
> DEFINE_PROP_BOOL("dma-drain", IntelIOMMUState, dma_drain, true),
> - DEFINE_PROP_BOOL("dma-translation", IntelIOMMUState, dma_translation, true),
> DEFINE_PROP_BOOL("stale-tm", IntelIOMMUState, stale_tm, false),
> DEFINE_PROP_BOOL("fs1gp", IntelIOMMUState, fs1gp, true),
> };
> @@ -4553,7 +4552,7 @@ static void vtd_cap_init(IntelIOMMUState *s)
> if (s->dma_drain) {
> s->cap |= VTD_CAP_DRAIN;
> }
> - if (s->dma_translation) {
> + if (x86_iommu->dma_translation) {
> if (s->aw_bits >= VTD_HOST_AW_39BIT) {
> s->cap |= VTD_CAP_SAGAW_39bit;
> }
> diff --git a/hw/i386/x86-iommu.c b/hw/i386/x86-iommu.c
> index d34a6849f4ae9..c127a44bb4bc8 100644
> --- a/hw/i386/x86-iommu.c
> +++ b/hw/i386/x86-iommu.c
> @@ -130,6 +130,7 @@ static const Property x86_iommu_properties[] = {
> intr_supported, ON_OFF_AUTO_AUTO),
> DEFINE_PROP_BOOL("device-iotlb", X86IOMMUState, dt_supported, false),
> DEFINE_PROP_BOOL("pt", X86IOMMUState, pt_supported, true),
> + DEFINE_PROP_BOOL("dma-translation", X86IOMMUState, dma_translation, true),
> };
>
> static void x86_iommu_class_init(ObjectClass *klass, const void *data)
> diff --git a/include/hw/i386/x86-iommu.h b/include/hw/i386/x86-iommu.h
> index bfd21649d0838..e89f55a5c215c 100644
> --- a/include/hw/i386/x86-iommu.h
> +++ b/include/hw/i386/x86-iommu.h
> @@ -64,6 +64,7 @@ struct X86IOMMUState {
> OnOffAuto intr_supported; /* Whether vIOMMU supports IR */
> bool dt_supported; /* Whether vIOMMU supports DT */
> bool pt_supported; /* Whether vIOMMU supports pass-through */
> + bool dma_translation; /* Whether vIOMMU supports DMA translation */
> QLIST_HEAD(, IEC_Notifier) iec_notifiers; /* IEC notify list */
> };
>