Re: [v10, 3/7] soc: fsl: add GUTS driver for QorIQ platforms

2016-07-15 Thread Paul Gortmaker
[Re: [v10, 3/7] soc: fsl: add GUTS driver for QorIQ platforms] On 15/07/2016 
(Fri 14:12) Scott Wood wrote:

> On Fri, 2016-07-15 at 12:43 -0400, Paul Gortmaker wrote:
> > > +source "drivers/soc/fsl/qe/Kconfig"

[...]

> > > +
> > > +config FSL_GUTS
> > > +   bool
> > > diff --git a/drivers/soc/fsl/Makefile b/drivers/soc/fsl/Makefile
> > > index 203307f..02afb7f 100644
> > > --- a/drivers/soc/fsl/Makefile
> > > +++ b/drivers/soc/fsl/Makefile
> > > @@ -4,3 +4,4 @@
> > > 
> > >  obj-$(CONFIG_QUICC_ENGINE) += qe/
> > >  obj-$(CONFIG_CPM)  += qe/
> > > +obj-$(CONFIG_FSL_GUTS) += guts.o
> > > diff --git a/drivers/soc/fsl/guts.c b/drivers/soc/fsl/guts.c
> > > new file mode 100644
> > > index 000..fa155e6
> > > --- /dev/null
> > > +++ b/drivers/soc/fsl/guts.c
> > > @@ -0,0 +1,119 @@
> > > +/*
> > > + * Freescale QorIQ Platforms GUTS Driver
> > > + *
> > > + * Copyright (C) 2016 Freescale Semiconductor, Inc.
> > > + *
> > > + * This program is free software; you can redistribute it and/or modify
> > > + * it under the terms of the GNU General Public License as published by
> > > + * the Free Software Foundation; either version 2 of the License, or
> > > + * (at your option) any later version.
> > > + */
> > > +
> > > +#include 
> > > +#include 
> > Seems there was lots of discussion on this.  If it does end up being
> > resent, it would be nice to get the module.h and other modular stuff
> > gone since it is a bool Kconfig.
> 
> I plan to resend just the GUTS driver portion and send it through the PPC
> tree.
> 
> I don't see any modular stuff in there besides the linux/module.h include.

Great.  Normally I'm seeing the MODULE_DEVICE_TABLE and MODULE_AUTHOR
and MODULE_LICENSE etc, so it has (unfortunately) become a knee jerk
reaction to assume the latter follows a module.h presence...  thanks for
removing the extraneous include.

Paul.
--

> 
> -Scott
> 
> 
___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


Re: [v10, 3/7] soc: fsl: add GUTS driver for QorIQ platforms

2016-07-15 Thread Scott Wood
On Fri, 2016-07-15 at 12:43 -0400, Paul Gortmaker wrote:
> On Wed, May 4, 2016 at 11:12 PM, Yangbo Lu  wrote:
> > 
> > The global utilities block controls power management, I/O device
> > enabling, power-onreset(POR) configuration monitoring, alternate
> > function selection for multiplexed signals,and clock control.
> > 
> > This patch adds GUTS driver to manage and access global utilities
> > block.
> > 
> > Signed-off-by: Yangbo Lu 
> > Acked-by: Scott Wood 
> > ---
> > Changes for v4:
> > - Added this patch
> > Changes for v5:
> > - Modified copyright info
> > - Changed MODULE_LICENSE to GPL
> > - Changed EXPORT_SYMBOL_GPL to EXPORT_SYMBOL
> > - Made FSL_GUTS user-invisible
> > - Added a complete compatible list for GUTS
> > - Stored guts info in file-scope variable
> > - Added mfspr() getting SVR
> > - Redefined GUTS APIs
> > - Called fsl_guts_init rather than using platform driver
> > - Removed useless parentheses
> > - Removed useless 'extern' key words
> > Changes for v6:
> > - Made guts thread safe in fsl_guts_init
> > Changes for v7:
> > - Removed 'ifdef' for function declaration in guts.h
> > Changes for v8:
> > - Fixes lines longer than 80 characters checkpatch issue
> > - Added 'Acked-by: Scott Wood'
> > Changes for v9:
> > - None
> > Changes for v10:
> > - None
> > ---
> >  drivers/soc/Kconfig  |   2 +-
> >  drivers/soc/fsl/Kconfig  |   8 +++
> >  drivers/soc/fsl/Makefile |   1 +
> >  drivers/soc/fsl/guts.c   | 119
> > 
> >  include/linux/fsl/guts.h | 126 +-
> > -
> >  5 files changed, 207 insertions(+), 49 deletions(-)
> >  create mode 100644 drivers/soc/fsl/Kconfig
> >  create mode 100644 drivers/soc/fsl/guts.c
> > 
> > diff --git a/drivers/soc/Kconfig b/drivers/soc/Kconfig
> > index cb58ef0..7106463 100644
> > --- a/drivers/soc/Kconfig
> > +++ b/drivers/soc/Kconfig
> > @@ -2,7 +2,7 @@ menu "SOC (System On Chip) specific Drivers"
> > 
> >  source "drivers/soc/bcm/Kconfig"
> >  source "drivers/soc/brcmstb/Kconfig"
> > -source "drivers/soc/fsl/qe/Kconfig"
> > +source "drivers/soc/fsl/Kconfig"
> >  source "drivers/soc/mediatek/Kconfig"
> >  source "drivers/soc/qcom/Kconfig"
> >  source "drivers/soc/rockchip/Kconfig"
> > diff --git a/drivers/soc/fsl/Kconfig b/drivers/soc/fsl/Kconfig
> > new file mode 100644
> > index 000..b313759
> > --- /dev/null
> > +++ b/drivers/soc/fsl/Kconfig
> > @@ -0,0 +1,8 @@
> > +#
> > +# Freescale SOC drivers
> > +#
> > +
> > +source "drivers/soc/fsl/qe/Kconfig"
> > +
> > +config FSL_GUTS
> > +   bool
> > diff --git a/drivers/soc/fsl/Makefile b/drivers/soc/fsl/Makefile
> > index 203307f..02afb7f 100644
> > --- a/drivers/soc/fsl/Makefile
> > +++ b/drivers/soc/fsl/Makefile
> > @@ -4,3 +4,4 @@
> > 
> >  obj-$(CONFIG_QUICC_ENGINE) += qe/
> >  obj-$(CONFIG_CPM)  += qe/
> > +obj-$(CONFIG_FSL_GUTS) += guts.o
> > diff --git a/drivers/soc/fsl/guts.c b/drivers/soc/fsl/guts.c
> > new file mode 100644
> > index 000..fa155e6
> > --- /dev/null
> > +++ b/drivers/soc/fsl/guts.c
> > @@ -0,0 +1,119 @@
> > +/*
> > + * Freescale QorIQ Platforms GUTS Driver
> > + *
> > + * Copyright (C) 2016 Freescale Semiconductor, Inc.
> > + *
> > + * This program is free software; you can redistribute it and/or modify
> > + * it under the terms of the GNU General Public License as published by
> > + * the Free Software Foundation; either version 2 of the License, or
> > + * (at your option) any later version.
> > + */
> > +
> > +#include 
> > +#include 
> Seems there was lots of discussion on this.  If it does end up being
> resent, it would be nice to get the module.h and other modular stuff
> gone since it is a bool Kconfig.

I plan to resend just the GUTS driver portion and send it through the PPC
tree.

I don't see any modular stuff in there besides the linux/module.h include.

-Scott


___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Re: [PATCH v4 6/8] iommu/arm-smmu: Implement of_xlate() for SMMUv3

2016-07-15 Thread Robin Murphy
On 15/07/16 14:55, Lorenzo Pieralisi wrote:
> On Fri, Jul 01, 2016 at 05:50:15PM +0100, Robin Murphy wrote:
> 
> [...]
> 
>> +static int arm_smmu_of_xlate(struct device *dev, struct of_phandle_args 
>> *args)
>> +{
>> +int ret;
>> +
>> +/* We only support PCI, for now */
>> +if (!dev_is_pci(dev))
>> +return -ENODEV;
> 
> Given that a) the check above is removed in a later patch and b)
> code below does not depend on SMMU v3, I think the aim should
> be to make this a core function (ie I am asking this since I will
> need it in IORT based translation and I do not want to add yet another
> *_xlate hook to iommu_op), iommu_fwspec_xlate() ?

Indeed, this is only tied to OF by the current datatypes, and that's
straightforward to change. Ultimately the purpose is just for
firmware/bus code to pass in some words of configuration data, and the
driver to respond with what corresponding runtime data it wants to
associate with the device. As I suggested over on the fsl-mc discussion,
the caller might not even really be 'firmware' at all.

> What I will do with my next RFC is move the iommu_fwspec out of
> OF_IOMMU code in a separate compilation unit and we will take the
> discussion from there.

Sounds good. If the end result starts looking clear, it might be an idea
to squash some patches and skip this intermediate OF-specific step
entirely (I was just hesitant to do that myself without a clear view of
the IORT side).

>> +
>> +ret = iommu_fwspec_init(dev, args->np);
>> +if (!ret)
>> +ret = iommu_fwspec_add_ids(dev, >args[0], 1);
>> +
>> +return ret;
>> +}
>> +
>>  static struct iommu_ops arm_smmu_ops = {
>>  .capable= arm_smmu_capable,
>>  .domain_alloc   = arm_smmu_domain_alloc,
>> @@ -1947,6 +1894,7 @@ static struct iommu_ops arm_smmu_ops = {
>>  .device_group   = pci_device_group,
>>  .domain_get_attr= arm_smmu_domain_get_attr,
>>  .domain_set_attr= arm_smmu_domain_set_attr,
>> +.of_xlate   = arm_smmu_of_xlate,
>>  .pgsize_bitmap  = -1UL, /* Restricted during device attach */
>>  };
>>  
>> @@ -2697,6 +2645,22 @@ static void __exit arm_smmu_exit(void)
>>  subsys_initcall(arm_smmu_init);
>>  module_exit(arm_smmu_exit);
>>  
>> +static int __init arm_smmu_of_init(struct device_node *np)
>> +{
>> +static bool registered;
>> +
>> +if (!registered)
>> +registered = !arm_smmu_init();
> 
> We also need a static variable in arm_smmu_init() to make sure
> we do not try to execute it multiple times :( (here and
> subsys_initcall).

Strictly, yes, although since there didn't seem to be any real issue
with just letting the initcall fail when register_driver() detects the
collision, I'd hoped we might be able to keep this bodge together in one
place. I guess it might end up printing some unwanted failure message
though, so I'll take another look.

Thanks,
Robin.

> Thanks,
> Lorenzo
> 
>> +
>> +if (!of_platform_device_create(np, NULL, platform_bus_type.dev_root))
>> +return -ENODEV;
>> +
>> +of_iommu_set_ops(np, _smmu_ops);
>> +
>> +return 0;
>> +}
>> +IOMMU_OF_DECLARE(arm_smmuv3, "arm,smmu-v3", arm_smmu_of_init);
>> +
>>  MODULE_DESCRIPTION("IOMMU API for ARM architected SMMUv3 implementations");
>>  MODULE_AUTHOR("Will Deacon ");
>>  MODULE_LICENSE("GPL v2");
>> -- 
>> 2.8.1.dirty
>>
> 

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


Re: [v10, 3/7] soc: fsl: add GUTS driver for QorIQ platforms

2016-07-15 Thread Paul Gortmaker
On Wed, May 4, 2016 at 11:12 PM, Yangbo Lu  wrote:
> The global utilities block controls power management, I/O device
> enabling, power-onreset(POR) configuration monitoring, alternate
> function selection for multiplexed signals,and clock control.
>
> This patch adds GUTS driver to manage and access global utilities
> block.
>
> Signed-off-by: Yangbo Lu 
> Acked-by: Scott Wood 
> ---
> Changes for v4:
> - Added this patch
> Changes for v5:
> - Modified copyright info
> - Changed MODULE_LICENSE to GPL
> - Changed EXPORT_SYMBOL_GPL to EXPORT_SYMBOL
> - Made FSL_GUTS user-invisible
> - Added a complete compatible list for GUTS
> - Stored guts info in file-scope variable
> - Added mfspr() getting SVR
> - Redefined GUTS APIs
> - Called fsl_guts_init rather than using platform driver
> - Removed useless parentheses
> - Removed useless 'extern' key words
> Changes for v6:
> - Made guts thread safe in fsl_guts_init
> Changes for v7:
> - Removed 'ifdef' for function declaration in guts.h
> Changes for v8:
> - Fixes lines longer than 80 characters checkpatch issue
> - Added 'Acked-by: Scott Wood'
> Changes for v9:
> - None
> Changes for v10:
> - None
> ---
>  drivers/soc/Kconfig  |   2 +-
>  drivers/soc/fsl/Kconfig  |   8 +++
>  drivers/soc/fsl/Makefile |   1 +
>  drivers/soc/fsl/guts.c   | 119 
>  include/linux/fsl/guts.h | 126 
> +--
>  5 files changed, 207 insertions(+), 49 deletions(-)
>  create mode 100644 drivers/soc/fsl/Kconfig
>  create mode 100644 drivers/soc/fsl/guts.c
>
> diff --git a/drivers/soc/Kconfig b/drivers/soc/Kconfig
> index cb58ef0..7106463 100644
> --- a/drivers/soc/Kconfig
> +++ b/drivers/soc/Kconfig
> @@ -2,7 +2,7 @@ menu "SOC (System On Chip) specific Drivers"
>
>  source "drivers/soc/bcm/Kconfig"
>  source "drivers/soc/brcmstb/Kconfig"
> -source "drivers/soc/fsl/qe/Kconfig"
> +source "drivers/soc/fsl/Kconfig"
>  source "drivers/soc/mediatek/Kconfig"
>  source "drivers/soc/qcom/Kconfig"
>  source "drivers/soc/rockchip/Kconfig"
> diff --git a/drivers/soc/fsl/Kconfig b/drivers/soc/fsl/Kconfig
> new file mode 100644
> index 000..b313759
> --- /dev/null
> +++ b/drivers/soc/fsl/Kconfig
> @@ -0,0 +1,8 @@
> +#
> +# Freescale SOC drivers
> +#
> +
> +source "drivers/soc/fsl/qe/Kconfig"
> +
> +config FSL_GUTS
> +   bool
> diff --git a/drivers/soc/fsl/Makefile b/drivers/soc/fsl/Makefile
> index 203307f..02afb7f 100644
> --- a/drivers/soc/fsl/Makefile
> +++ b/drivers/soc/fsl/Makefile
> @@ -4,3 +4,4 @@
>
>  obj-$(CONFIG_QUICC_ENGINE) += qe/
>  obj-$(CONFIG_CPM)  += qe/
> +obj-$(CONFIG_FSL_GUTS) += guts.o
> diff --git a/drivers/soc/fsl/guts.c b/drivers/soc/fsl/guts.c
> new file mode 100644
> index 000..fa155e6
> --- /dev/null
> +++ b/drivers/soc/fsl/guts.c
> @@ -0,0 +1,119 @@
> +/*
> + * Freescale QorIQ Platforms GUTS Driver
> + *
> + * Copyright (C) 2016 Freescale Semiconductor, Inc.
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License as published by
> + * the Free Software Foundation; either version 2 of the License, or
> + * (at your option) any later version.
> + */
> +
> +#include 
> +#include 

Seems there was lots of discussion on this.  If it does end up being
resent, it would be nice to get the module.h and other modular stuff
gone since it is a bool Kconfig.

Thanks,
Paul.
--

> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +
>
___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


Re: iommu/rockchip: Fix bugs and enable on ARM64

2016-07-15 Thread Joerg Roedel
On Fri, Jul 15, 2016 at 05:32:02PM +0200, Matthias Brugger wrote:
> >The drm rockchip patches are dependent on iommu/rockchip patches, can
> >you also apply these patches together? So that can avoid compile problem.
> >
> 
> While at it. I don't see patch 8 (iommu/Kconfig) in linux-next.
> I suppose you forgot to pick that one.

I picked it up first, but it causes compile errors, so I removed it for
now.


Joerg

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


Re: iommu/rockchip: Fix bugs and enable on ARM64

2016-07-15 Thread Matthias Brugger



On 08/07/16 03:01, Mark yao wrote:

On 2016年06月27日 20:57, Joerg Roedel wrote:

On Fri, Jun 24, 2016 at 10:13:25AM +0800, Shunqian Zheng wrote:

  drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 100 +++--
  drivers/gpu/drm/rockchip/rockchip_drm_drv.h |   3 +
  drivers/gpu/drm/rockchip/rockchip_drm_gem.c | 221
++--
  drivers/gpu/drm/rockchip/rockchip_drm_gem.h |   9 ++
  drivers/iommu/Kconfig   |   2 +-
  drivers/iommu/rockchip-iommu.c  | 181
+--
  6 files changed, 413 insertions(+), 103 deletions(-)

Applied the IOMMU patches, thanks.


Joerg






Hi Joerg

The drm rockchip patches are dependent on iommu/rockchip patches, can
you also apply these patches together? So that can avoid compile problem.



While at it. I don't see patch 8 (iommu/Kconfig) in linux-next.
I suppose you forgot to pick that one.

Regards,
Matthias
___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Re: [PATCH v4 6/8] iommu/arm-smmu: Implement of_xlate() for SMMUv3

2016-07-15 Thread Lorenzo Pieralisi
On Fri, Jul 01, 2016 at 05:50:15PM +0100, Robin Murphy wrote:

[...]

> +static int arm_smmu_of_xlate(struct device *dev, struct of_phandle_args 
> *args)
> +{
> + int ret;
> +
> + /* We only support PCI, for now */
> + if (!dev_is_pci(dev))
> + return -ENODEV;

Given that a) the check above is removed in a later patch and b)
code below does not depend on SMMU v3, I think the aim should
be to make this a core function (ie I am asking this since I will
need it in IORT based translation and I do not want to add yet another
*_xlate hook to iommu_op), iommu_fwspec_xlate() ?

What I will do with my next RFC is move the iommu_fwspec out of
OF_IOMMU code in a separate compilation unit and we will take the
discussion from there.

[...]

> +
> + ret = iommu_fwspec_init(dev, args->np);
> + if (!ret)
> + ret = iommu_fwspec_add_ids(dev, >args[0], 1);
> +
> + return ret;
> +}
> +
>  static struct iommu_ops arm_smmu_ops = {
>   .capable= arm_smmu_capable,
>   .domain_alloc   = arm_smmu_domain_alloc,
> @@ -1947,6 +1894,7 @@ static struct iommu_ops arm_smmu_ops = {
>   .device_group   = pci_device_group,
>   .domain_get_attr= arm_smmu_domain_get_attr,
>   .domain_set_attr= arm_smmu_domain_set_attr,
> + .of_xlate   = arm_smmu_of_xlate,
>   .pgsize_bitmap  = -1UL, /* Restricted during device attach */
>  };
>  
> @@ -2697,6 +2645,22 @@ static void __exit arm_smmu_exit(void)
>  subsys_initcall(arm_smmu_init);
>  module_exit(arm_smmu_exit);
>  
> +static int __init arm_smmu_of_init(struct device_node *np)
> +{
> + static bool registered;
> +
> + if (!registered)
> + registered = !arm_smmu_init();

We also need a static variable in arm_smmu_init() to make sure
we do not try to execute it multiple times :( (here and
subsys_initcall).

Thanks,
Lorenzo

> +
> + if (!of_platform_device_create(np, NULL, platform_bus_type.dev_root))
> + return -ENODEV;
> +
> + of_iommu_set_ops(np, _smmu_ops);
> +
> + return 0;
> +}
> +IOMMU_OF_DECLARE(arm_smmuv3, "arm,smmu-v3", arm_smmu_of_init);
> +
>  MODULE_DESCRIPTION("IOMMU API for ARM architected SMMUv3 implementations");
>  MODULE_AUTHOR("Will Deacon ");
>  MODULE_LICENSE("GPL v2");
> -- 
> 2.8.1.dirty
> 
___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


Re: [PATCH v2 00/10] Exynos IOMMU: proper runtime PM support (use device dependencies)

2016-07-15 Thread Tobias Jakobi
Tobias Jakobi wrote:
> Hello Marek,
> 
> I've tested the patchset on 4.7-rc7 and noticed that it breaks reboot on
> my ODROID-X2.
> 
> Going to check where exactly things break.
Sadly it's the last patch where everything comes together:
"iommu/exynos: Add proper runtime pm support"

I still have to check if forcing runpm status to 'on' makes a
difference. I suspect that the aggressive clock gating might be the reason?

With best wishes,
Tobias

> With best wishes,
> Tobias
> 
> 
> Marek Szyprowski wrote:
>> Hello,
>>
>> This patch series finally implements proper runtime PM support in Exynos
>> IOMMU driver. This has been achieved by using device links, which lets
>> SYSMMU controller's runtime PM to follow master's device runtime PM (the
>> device which actually performs DMA transaction). The main idea
>> behind this solution is an observation that any DMA activity from master
>> device can be done only when master device is active, thus when master
>> device is suspended SYSMMU controller device can also be suspended.
>>
>> This patchset solves the situation that power domains are always enabled,
>> because all SYSMMU controllers (which belongs to those domains) are
>> permanently active (because existing driver was simplified and kept
>> SYSMMU device active all the time after initialization).
>>
>> Patches 1-5 are resend of the "[RFC][PATCH 0/5] Functional dependencies
>> between devices" patchset:
>> http://thread.gmane.org/gmane.linux.power-management.general/67424/focus=2126379
>> I've included them here, because it is hard to find them all on mailing
>> list archives.
>>
>> Patches 6-8 are fixes to device dependencies/links code, which were
>> required to use this solution for Exynos IOMMU driver. I'm not PM/runtime
>> PM code expert, so please double check if my changes are really correct.
>>
>> This patchset requires my previous changes to Exynos IOMMU driver
>> submitted in the "Exynos IOMMU: improve clock management" thread:
>> http://www.spinics.net/lists/arm-kernel/msg505695.html
>>
>> Best regards
>> Marek Szyprowski
>> Samsung R Institute Poland
>>
>>
>> Changelog:
>> v2:
>> - replaced PM notifiers with generic device dependencies/links developped
>>   by Rafael J. Wysocki
>>
>> v1: http://www.spinics.net/lists/arm-kernel/msg509600.html
>> - initial version
>>
>>
>> Patch summary:
>>
>> Marek Szyprowski (5):
>>   driver core: Avoid endless recursion if device has more than one link
>>   driver core: Add support for links to already probed drivers
>>   PM core: Fix restoring devices with links during system PM transition
>>   iommu/exynos: Remove excessive, useless debug
>>   iommu/exynos: Add proper runtime pm support
>>
>> Rafael J. Wysocki (5):
>>   driver core: Add a wrapper around __device_release_driver()
>>   driver core: Functional dependencies tracking support
>>   PM core: Make async suspend/resume of devices use device links
>>   PM core: Make runtime PM of devices use device links
>>   PM core: Optimize the use of device links for runtime PM
>>
>>  drivers/base/base.h  |  13 ++
>>  drivers/base/core.c  | 410 
>> +++
>>  drivers/base/dd.c|  65 +--
>>  drivers/base/power/main.c|  68 ++-
>>  drivers/base/power/runtime.c | 130 +-
>>  drivers/iommu/exynos-iommu.c | 221 +++
>>  include/linux/device.h   |  41 +
>>  include/linux/pm.h   |   1 +
>>  include/linux/pm_runtime.h   |   6 +
>>  9 files changed, 809 insertions(+), 146 deletions(-)
>>
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" 
> in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu