|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3 13/13] drivers/passthrough: arm: Add support for SMMU drivers
On Tue, 2014-03-11 at 15:49 +0000, Julien Grall wrote:
> This patch add support for ARM architected SMMU driver. It's based on the
> linux drivers (drivers/iommu/arm-smmu) commit 89ac23cd.
>
> The major differences with the Linux driver are:
> - Fault by default if the SMMU is enabled to translate an
> address (Linux is bypassing the SMMU)
> - Using P2M page table instead of creating new one
> - Dropped stage-1 support
> - Dropped chained SMMUs support for now
> - Reworking device assignment and the different structures
>
> Xen is programming each IOMMU by:
> - Using stage-2 mode translation
> - Sharing the page table with the processor
> - Injecting a fault if the device has made a wrong translation
>
> Signed-off-by: Julien Grall<julien.grall@xxxxxxxxxx>
> Cc: Xiantao Zhang <xiantao.zhang@xxxxxxxxx>
> Cc: Jan Beulich <jbeulich@xxxxxxxx>
I don't think it is sensible to try and review this code in great detail
given you no doubt did so as you imported it. I looked through the bits
which seemed like they were new Xen code rather than imported Linux
code. It mostly looks good, one question and when grammar nit.
> +static __init void arm_smmu_device_reset(struct arm_smmu_device *smmu)
> +{
> +[...]
> + /* Don't upgrade barriers */
> + reg &= ~(SMMU_sCR0_BSU_MASK << SMMU_sCR0_BSU_SHIFT);
No? Is that safe when a vcpu migrates around pCPUs?
> +
> +static int __init smmu_init(struct dt_device_node *dev,
> + const void *data)
> +{
> + struct arm_smmu_device *smmu;
> + int res;
> + u64 addr, size;
> + unsigned int num_irqs, i;
> + struct dt_phandle_args masterspec;
> + struct rb_node *node;
> +
> + /* Even if the device can't be initialized, we don't want to give to
> + * dom0 the smmu device
"we don't want to give the smmu device to dom0"
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |