[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v5 2/8] iommu: introduce dom0-iommu option
To select the iommu configuration used by Dom0. This option supersedes iommu=dom0-strict|dom0-passthrough. Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> --- Changes since v4: - Move the iommu_dom0_* variable renaming to a previous patch. - Use dom0-iommu=passthrough|strict booleans, like the iommu option used. Changes since v2: - Change the style and text used in the xen command line document. - Don't allow none, strict or relaxed to use the no- prefix. Changes since v1: - New in this version. --- Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Cc: George Dunlap <George.Dunlap@xxxxxxxxxxxxx> Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> Cc: Jan Beulich <jbeulich@xxxxxxxx> Cc: Julien Grall <julien.grall@xxxxxxx> Cc: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> Cc: Stefano Stabellini <sstabellini@xxxxxxxxxx> Cc: Tim Deegan <tim@xxxxxxx> Cc: Wei Liu <wei.liu2@xxxxxxxxxx> --- docs/misc/xen-command-line.markdown | 19 +++++++++++++++++++ xen/drivers/passthrough/iommu.c | 26 ++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/docs/misc/xen-command-line.markdown b/docs/misc/xen-command-line.markdown index 65b4754418..0292f9bb03 100644 --- a/docs/misc/xen-command-line.markdown +++ b/docs/misc/xen-command-line.markdown @@ -681,6 +681,19 @@ Flag that makes a dom0 boot in PVHv2 mode. Flag that makes a dom0 use shadow paging. Only works when "pvh" is enabled. +### dom0-iommu +> `= List of [ passthrough | strict ]` + +This list of booleans control the iommu usage by Dom0: + +* `passthrough`: disables DMA remapping for Dom0. Default is `false`. + +* `strict`: sets up DMA remapping only for the RAM Dom0 actually got assigned. + Default is `false` which means Dom0 will get mappings for all the host + RAM except regions in use by Xen. Note that this option is hard coded to + `true` for a PVH Dom0 and any attempt to overwrite it from the command line + is ignored. + ### dom0\_ioports\_disable (x86) > `= List of <hex>-<hex>` @@ -1150,12 +1163,18 @@ detection of systems known to misbehave upon accesses to that port. > `dom0-passthrough` +> **WARNING: This command line option is deprecated, and superseded by +> _dom0-iommu=passthrough_ - using both options in combination is undefined.** + > Default: `false` >> Control whether to disable DMA remapping for Dom0. > `dom0-strict` +> **WARNING: This command line option is deprecated, and superseded by +> _dom0-iommu=strict_ - using both options in combination is undefined.** + > Default: `false` >> Control whether to set up DMA remapping only for the memory Dom0 actually diff --git a/xen/drivers/passthrough/iommu.c b/xen/drivers/passthrough/iommu.c index 06b77eaa31..6c3aa904dc 100644 --- a/xen/drivers/passthrough/iommu.c +++ b/xen/drivers/passthrough/iommu.c @@ -136,6 +136,32 @@ static int __init parse_iommu_param(const char *s) return rc; } +static int __init parse_dom0_iommu_param(const char *s) +{ + const char *ss; + int rc = 0; + + do { + int val; + + ss = strchr(s, ','); + if ( !ss ) + ss = strchr(s, '\0'); + + if ( (val = parse_boolean("passthrough", s, ss)) >= 0 ) + iommu_hwdom_passthrough = val; + else if ( (val = parse_boolean("strict", s, ss)) >= 0 ) + iommu_hwdom_strict = val; + else + rc = -EINVAL; + + s = ss + 1; + } while ( *ss ); + + return rc; +} +custom_param("dom0-iommu", parse_dom0_iommu_param); + int iommu_domain_init(struct domain *d) { struct domain_iommu *hd = dom_iommu(d); -- 2.18.0 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |