Re: [v4,0/3] iommu/ipmmu-vmsa: r8a7796 support V4

From: Oleksandr
Date: Tue Sep 05 2017 - 12:52:44 EST



Hi, Magnus, maintainers, all.

On 19.06.17 14:04, Magnus Damm wrote:
iommu/ipmmu-vmsa: r8a7796 support V4

[PATCH v4 1/3] iommu/ipmmu-vmsa: Add r8a7796 DT binding
[PATCH v4 2/3] iommu/ipmmu-vmsa: Increase maximum micro-TLBS to 48
[PATCH v4 3/3] iommu/ipmmu-vmsa: Hook up r8a7796 DT matching code

This series adds r8a7796 support to the IPMMU driver. The DT binding
gets updated, maximum number of micro-TLBs are increased and the
driver is adjusted to match on the new DT binding.
I am interested in adding IPMMU-VMSA support to Xen hypervisor.

I did some preparations for making IPMMU-VMSA to feel comfortable [1] inside Xen
followed by direct porting Linux IPMMU-VMSA driver and ARM LPAE page-table allocator [2] to it.

I decided to base on the "BSP" driver [3] because it had more complete support than the "mainline" one [4].

During review I got a feedback that "BSP" driver wasn't the best choice to be ported.
Xen ARM maintainers worry about "BSP" driver which haven't had a thorough review by the Linux community and as the result might have bugs which will never be fixed, etc.

So, for the IPMMU-VMSA support to be accepted by Xen community I should either write our own driver based on BSP/mainline/whatever which contains only relevant to Xen things or
direct port from "mainline" driver. As the second option relies on the required support [5] which isn't in mainline yet, it is not clear when this support gets merged and how it will be modified/reworked before,
we preliminarily decided to follow the first option. But, I would like to consider second option again. Despite the complexity of second option, it has one significant benefit.

I see that Linux driver is being developed quite actively and looking over all related patch series I got a feeling that required support was about to reach upstream.

Could you, please, clarify some questions which, I hope, help us to make a decision:
1. Do you have approximate time-frame for getting this support in?
2. Are fundamental/significant changes planned for this support?

Also, may I ask for a link to github branch which contains current (and likely r8a7795 and 32-bit ARM update) patch series?

Thank you in advance!

And sorry for the most likely incorrect format of this email.

[1] https://www.mail-archive.com/xen-devel@xxxxxxxxxxxxx/msg115901.html
[2] https://lists.xen.org/archives/html/xen-devel/2017-07/msg02679.html
[3] https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas-bsp.git/tree/drivers/iommu/ipmmu-vmsa.c?h=v4.9/rcar-3.5.3
[4] http://elixir.free-electrons.com/linux/latest/source/drivers/iommu/ipmmu-vmsa.c
[5] https://lists.linuxfoundation.org/pipermail/iommu/2017-June/022567.html
https://lists.linuxfoundation.org/pipermail/iommu/2017-June/022577.html
https://lkml.org/lkml/2017/7/17/393

Changes since V3:
- Rebased on top of [PATCH v4 00/09] iommu/ipmmu-vmsa: r8a7795 support V4
- Patch 3/3 updated with Reviewed-by - thanks Geert!

Changes since V2:
- Patch 2/3 updated with an outer set of () - thanks Ramesh!
- Patch 2/3 updated with Reviewed-by - thanks Geert!
- Patch 3/3 updated to include white list support

Changes since V1:
- Patch 1/3 updated with more Acked-by tags
- Patch 2/3 updated with high I/O register range support

Patch 1/3 is ready for upstream merge and includes the following tags:
Signed-off-by: Magnus Damm <damm+renesas@xxxxxxxxxxxxx>
Acked-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
Acked-by: Rob Herring <robh@xxxxxxxxxx>
Acked-by: Simon Horman <horms+renesas@xxxxxxxxxxxx>
Acked-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>

Patch 2/3 and 3/3 are quite trivial but have no acked-by so far.

Signed-off-by: Magnus Damm <damm+renesas@xxxxxxxxxxxxx>
---

Developed on top of next-20170614 with the following series applied
[PATCH 00/04] iommu/ipmmu-vmsa: 32-bit ARM update
[PATCH v4 00/09] iommu/ipmmu-vmsa: r8a7795 support V4

Documentation/devicetree/bindings/iommu/renesas,ipmmu-vmsa.txt | 1
drivers/iommu/ipmmu-vmsa.c | 24 +++++++---
2 files changed, 18 insertions(+), 7 deletions(-)