From: Julien Grall <julien.grall@linaro.org>
To: xen-devel@lists.xenproject.org
Cc: stefano.stabellini@citrix.com,
Julien Grall <julien.grall@linaro.org>,
tim@xen.org, ian.campbell@citrix.com
Subject: [PATCH v4 00/21] IOMMU support for ARM
Date: Tue, 22 Apr 2014 14:14:14 +0100 [thread overview]
Message-ID: <1398172475-27873-1-git-send-email-julien.grall@linaro.org> (raw)
Hello
This is the fourth version of this serie to add support for IOMMU on ARM. It
also adds ARM SMMU driver which is used for instance on Midway.
The ARM IOMMU architecture assumes that page table is shared between the
processor and each IOMMU.
Major changes in v4:
- Support upstream Linux DOM0 without any change (see patch #18)
- Support 40bits address space in the SMMU drivers
- Rebase on the latest Xen (some patches clashed with the hwdom series)
The patch series is divided following:
- #1-#4: Small fixes on ARM code
- #5: Fix grant-table with IOMMU. Will be necessary for ARM later
- #6-#8: Small changes in amd and vtd IOMMU drivers
- #10-#11: Add new device tree helpers
- #12-#14: Prepare IOMMU code to add support for ARM
- #15-#19: Add IOMMU architecture for ARM
- #20: Add SMMU driver
- #21: Add new bindings to notify Linux the device is protected by
an IOMMU. This patch is not mandatory and just here for improvement.
This series also dependency on the interrupt series I've sent earlier
(see "xen/arm: Interrupt management reworking").
A working tree can be found here:
git://xenbits.xen.org/people/julieng/xen-unstable.git branch smmu-v4
Sincerely yours,
Julien Grall (21):
xen/arm: map_device: Don't hardcode dom0 in print message
xen/arm: Constify address pointer for cache helpers
xen/arm: p2m: Move comment that was misplaced
xen/arm: p2m: apply_p2m_changes: Only load domain P2M when we flush
TLBs
xen/common: grant-table: only call IOMMU if paging mode translate is
disabled
xen/passthrough: amd: Remove domain_id from hvm_iommu
xen/passthrough: amd: rename iommu_has_feature into
amd_iommu_has_feature
xen/passthrough: vtd: iommu_set_hwdom_mapping is VTD specific
xen/dts: Add dt_property_read_bool
xen/dts: Add dt_parse_phandle_with_args and dt_parse_phandle
xen/passthrough: rework hwdom_pvh_reqs to use it also on ARM
xen/passthrough: iommu: Split generic IOMMU code
xen/passthrough: iommu: Introduce arch specific code
xen/passthrough: iommu: Basic support of device tree assignment
xen/passthrough: Introduce IOMMU ARM architecture
MAINTAINERS: Add drivers/passthrough/arm
xen/arm: Don't give IOMMU devices to dom0 when iommu is disabled
xen/arm: p2m: Clean cache PT when the IOMMU doesn't support coherent
walk
xen/arm: grant: Add another entry to map MFN 1:1 in dom0 p2m
drivers/passthrough: arm: Add support for SMMU drivers
xen/arm: Add the property "protected-devices" in the hypervisor node
MAINTAINERS | 1 +
xen/arch/arm/Rules.mk | 1 +
xen/arch/arm/device.c | 15 +
xen/arch/arm/domain.c | 7 +
xen/arch/arm/domain_build.c | 86 +-
xen/arch/arm/kernel.h | 3 +
xen/arch/arm/mm.c | 33 +-
xen/arch/arm/p2m.c | 49 +-
xen/arch/arm/setup.c | 2 +
xen/arch/x86/domctl.c | 6 +-
xen/arch/x86/hvm/io.c | 2 +-
xen/arch/x86/tboot.c | 3 +-
xen/common/device_tree.c | 161 ++-
xen/common/grant_table.c | 7 +-
xen/drivers/passthrough/Makefile | 6 +-
xen/drivers/passthrough/amd/iommu_cmd.c | 3 +-
xen/drivers/passthrough/amd/iommu_detect.c | 2 +-
xen/drivers/passthrough/amd/iommu_guest.c | 8 +-
xen/drivers/passthrough/amd/iommu_init.c | 16 +-
xen/drivers/passthrough/amd/iommu_map.c | 56 +-
xen/drivers/passthrough/amd/pci_amd_iommu.c | 53 +-
xen/drivers/passthrough/arm/Makefile | 2 +
xen/drivers/passthrough/arm/iommu.c | 72 +
xen/drivers/passthrough/arm/smmu.c | 1750 +++++++++++++++++++++++++
xen/drivers/passthrough/device_tree.c | 111 ++
xen/drivers/passthrough/iommu.c | 516 +-------
xen/drivers/passthrough/pci.c | 387 ++++++
xen/drivers/passthrough/vtd/extern.h | 2 +
xen/drivers/passthrough/vtd/iommu.c | 76 +-
xen/drivers/passthrough/vtd/x86/vtd.c | 2 +-
xen/drivers/passthrough/x86/Makefile | 1 +
xen/drivers/passthrough/x86/iommu.c | 145 ++
xen/include/asm-arm/device.h | 13 +-
xen/include/asm-arm/domain.h | 2 +
xen/include/asm-arm/hvm/iommu.h | 10 +
xen/include/asm-arm/iommu.h | 36 +
xen/include/asm-arm/page.h | 8 +-
xen/include/asm-x86/hvm/iommu.h | 22 +
xen/include/asm-x86/hvm/svm/amd-iommu-proto.h | 2 +-
xen/include/asm-x86/iommu.h | 43 +
xen/include/xen/device_tree.h | 89 ++
xen/include/xen/hvm/iommu.h | 27 +-
xen/include/xen/iommu.h | 83 +-
43 files changed, 3225 insertions(+), 694 deletions(-)
create mode 100644 xen/drivers/passthrough/arm/Makefile
create mode 100644 xen/drivers/passthrough/arm/iommu.c
create mode 100644 xen/drivers/passthrough/arm/smmu.c
create mode 100644 xen/drivers/passthrough/device_tree.c
create mode 100644 xen/drivers/passthrough/x86/iommu.c
create mode 100644 xen/include/asm-arm/hvm/iommu.h
create mode 100644 xen/include/asm-arm/iommu.h
create mode 100644 xen/include/asm-x86/iommu.h
--
1.7.10.4
next reply other threads:[~2014-04-22 13:14 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-22 13:14 Julien Grall [this message]
2014-04-22 13:14 ` [PATCH v4 01/21] xen/arm: map_device: Don't hardcode dom0 in print message Julien Grall
2014-04-28 13:49 ` Ian Campbell
2014-04-22 13:14 ` [PATCH v4 02/21] xen/arm: Constify address pointer for cache helpers Julien Grall
2014-04-28 13:52 ` Ian Campbell
2014-04-22 13:14 ` [PATCH v4 03/21] xen/arm: p2m: Move comment that was misplaced Julien Grall
2014-04-28 13:52 ` Ian Campbell
2014-04-22 13:14 ` [PATCH v4 04/21] xen/arm: p2m: apply_p2m_changes: Only load domain P2M when we flush TLBs Julien Grall
2014-04-28 13:54 ` Ian Campbell
2014-04-28 13:57 ` Julien Grall
2014-04-22 13:14 ` [PATCH v4 05/21] xen/common: grant-table: only call IOMMU if paging mode translate is disabled Julien Grall
2014-04-22 13:14 ` [PATCH v4 06/21] xen/passthrough: amd: Remove domain_id from hvm_iommu Julien Grall
2014-04-28 16:38 ` Julien Grall
2014-04-29 7:43 ` Jan Beulich
2014-04-30 4:02 ` Suravee Suthikulpanit
2014-04-30 3:56 ` Suravee Suthikulpanit
2014-04-30 11:32 ` Julien Grall
2014-04-22 13:14 ` [PATCH v4 07/21] xen/passthrough: amd: rename iommu_has_feature into amd_iommu_has_feature Julien Grall
2014-04-28 13:56 ` Ian Campbell
2014-04-28 16:38 ` Julien Grall
2014-05-02 13:11 ` Julien Grall
2014-05-02 16:35 ` Aravind Gopalakrishnan
2014-04-22 13:14 ` [PATCH v4 08/21] xen/passthrough: vtd: iommu_set_hwdom_mapping is VTD specific Julien Grall
2014-04-22 13:41 ` Jan Beulich
2014-04-22 14:47 ` Julien Grall
2014-04-22 13:14 ` [PATCH v4 09/21] xen/dts: Add dt_property_read_bool Julien Grall
2014-04-22 13:14 ` [PATCH v4 10/21] xen/dts: Add dt_parse_phandle_with_args and dt_parse_phandle Julien Grall
2014-04-22 13:14 ` [PATCH v4 11/21] xen/passthrough: rework hwdom_pvh_reqs to use it also on ARM Julien Grall
2014-04-28 13:57 ` Ian Campbell
2014-04-22 13:14 ` [PATCH v4 12/21] xen/passthrough: iommu: Split generic IOMMU code Julien Grall
2014-04-22 13:48 ` Jan Beulich
2014-04-22 13:52 ` Jan Beulich
2014-04-22 14:58 ` Julien Grall
2014-04-22 16:33 ` Jan Beulich
2014-04-22 16:45 ` Julien Grall
2014-04-22 16:59 ` Jan Beulich
2014-04-22 18:02 ` Julien Grall
2014-04-23 8:43 ` Jan Beulich
2014-04-23 12:42 ` Julien Grall
2014-04-22 13:14 ` [PATCH v4 13/21] xen/passthrough: iommu: Introduce arch specific code Julien Grall
2014-04-28 16:39 ` Julien Grall
[not found] ` <CAAAAutDRYoqdSBdDsETqtzVDdXmy6jq1Jnm1ck8c5eTqbkMUFw@mail.gmail.com>
2014-05-05 21:12 ` Fwd: " Aravind Gopalakrishnan
2014-04-22 13:14 ` [PATCH v4 14/21] xen/passthrough: iommu: Basic support of device tree assignment Julien Grall
2014-04-28 14:01 ` Ian Campbell
2014-04-28 14:12 ` Julien Grall
2014-04-22 13:14 ` [PATCH v4 15/21] xen/passthrough: Introduce IOMMU ARM architecture Julien Grall
2014-04-28 14:04 ` Ian Campbell
2014-04-28 14:21 ` Julien Grall
2014-04-22 13:14 ` [PATCH v4 16/21] MAINTAINERS: Add drivers/passthrough/arm Julien Grall
2014-04-22 13:50 ` Jan Beulich
2014-04-22 15:02 ` Julien Grall
2014-04-22 16:35 ` Jan Beulich
2014-04-22 18:02 ` Julien Grall
2014-04-22 13:14 ` [PATCH v4 17/21] xen/arm: Don't give IOMMU devices to dom0 when iommu is disabled Julien Grall
2014-04-22 13:14 ` [PATCH v4 18/21] xen/arm: p2m: Clean cache PT when the IOMMU doesn't support coherent walk Julien Grall
2014-04-28 14:09 ` Ian Campbell
2014-04-28 14:46 ` Julien Grall
2014-04-28 16:34 ` Julien Grall
2014-04-29 7:40 ` Jan Beulich
2014-05-02 15:15 ` Julien Grall
2014-04-22 13:14 ` [PATCH v4 19/21] xen/arm: grant: Add another entry to map MFN 1:1 in dom0 p2m Julien Grall
2014-04-28 14:11 ` Ian Campbell
2014-04-28 14:47 ` Julien Grall
2014-04-22 13:14 ` [PATCH v4 20/21] drivers/passthrough: arm: Add support for SMMU drivers Julien Grall
2014-04-28 14:13 ` Ian Campbell
2014-04-22 13:14 ` [PATCH v4 21/21] xen/arm: Add the property "protected-devices" in the hypervisor node Julien Grall
2014-05-02 12:54 ` [PATCH v4 00/21] IOMMU support for ARM Ian Campbell
2014-05-02 13:09 ` Julien Grall
2014-05-02 13:15 ` Julien Grall
2014-05-02 13:25 ` Ian Campbell
2014-05-02 13:29 ` Julien Grall
2014-05-02 14:20 ` Ian Campbell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1398172475-27873-1-git-send-email-julien.grall@linaro.org \
--to=julien.grall@linaro.org \
--cc=ian.campbell@citrix.com \
--cc=stefano.stabellini@citrix.com \
--cc=tim@xen.org \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).