<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/iommu/dmar.c, branch v3.12-rc6</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>iommu/vt-d: DMAR reporting table needs at least one DRHD</title>
<updated>2013-06-20T14:39:28+00:00</updated>
<author>
<name>Li, Zhen-Hua</name>
<email>zhen-hual@hp.com</email>
</author>
<published>2013-05-20T07:57:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=7cef33471a35c6973ddad2926e9e88c52e9e1c1b'/>
<id>7cef33471a35c6973ddad2926e9e88c52e9e1c1b</id>
<content type='text'>
In intel vt-d spec , chapter 8.1 , DMA Remapping Reporting Structure.
In the end of the table, it says:

Remapping Structures[]
-
A list of structures. The list will contain one or
more DMA Remapping Hardware Unit Definition
(DRHD) structures, and zero or more Reserved
Memory Region Reporting (RMRR) and Root Port
ATS Capability Reporting (ATSR) structures.
These structures are described below.

So, there should be at least one DRHD structure in DMA Remapping
reporting table. If there is no DRHD found, a warning is necessary.

Signed-off-by: Li, Zhen-Hua &lt;zhen-hual@hp.com&gt;
Signed-off-by: Joerg Roedel &lt;joro@8bytes.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In intel vt-d spec , chapter 8.1 , DMA Remapping Reporting Structure.
In the end of the table, it says:

Remapping Structures[]
-
A list of structures. The list will contain one or
more DMA Remapping Hardware Unit Definition
(DRHD) structures, and zero or more Reserved
Memory Region Reporting (RMRR) and Root Port
ATS Capability Reporting (ATSR) structures.
These structures are described below.

So, there should be at least one DRHD structure in DMA Remapping
reporting table. If there is no DRHD found, a warning is necessary.

Signed-off-by: Li, Zhen-Hua &lt;zhen-hual@hp.com&gt;
Signed-off-by: Joerg Roedel &lt;joro@8bytes.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>iommu/vt-d: Remove warning for HPET scope type</title>
<updated>2013-04-24T17:53:31+00:00</updated>
<author>
<name>Linn Crosetto</name>
<email>linn@hp.com</email>
</author>
<published>2013-04-23T18:26:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=ae3e7f3aba4441eca7a1ff5cb3e089824318ba79'/>
<id>ae3e7f3aba4441eca7a1ff5cb3e089824318ba79</id>
<content type='text'>
ACPI_DMAR_SCOPE_TYPE_HPET is parsed by ir_parse_ioapic_hpet_scope() and
should not be flagged as an unsupported type.

Signed-off-by: Linn Crosetto &lt;linn@hp.com&gt;
Signed-off-by: Joerg Roedel &lt;joro@8bytes.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
ACPI_DMAR_SCOPE_TYPE_HPET is parsed by ir_parse_ioapic_hpet_scope() and
should not be flagged as an unsupported type.

Signed-off-by: Linn Crosetto &lt;linn@hp.com&gt;
Signed-off-by: Joerg Roedel &lt;joro@8bytes.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>iommu/vt-d: Disable translation if already enabled</title>
<updated>2013-04-23T12:47:08+00:00</updated>
<author>
<name>Takao Indoh</name>
<email>indou.takao@jp.fujitsu.com</email>
</author>
<published>2013-04-23T08:35:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=3a93c841c2b3b14824f7728dd74bd00a1cedb806'/>
<id>3a93c841c2b3b14824f7728dd74bd00a1cedb806</id>
<content type='text'>
This patch disables translation(dma-remapping) before its initialization
if it is already enabled.

This is needed for kexec/kdump boot. If dma-remapping is enabled in the
first kernel, it need to be disabled before initializing its page table
during second kernel boot. Wei Hu also reported that this is needed
when second kernel boots with intel_iommu=off.

Basically iommu-&gt;gcmd is used to know whether translation is enabled or
disabled, but it is always zero at boot time even when translation is
enabled since iommu-&gt;gcmd is initialized without considering such a
case. Therefor this patch synchronizes iommu-&gt;gcmd value with global
command register when iommu structure is allocated.

Signed-off-by: Takao Indoh &lt;indou.takao@jp.fujitsu.com&gt;
Signed-off-by: Joerg Roedel &lt;joro@8bytes.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch disables translation(dma-remapping) before its initialization
if it is already enabled.

This is needed for kexec/kdump boot. If dma-remapping is enabled in the
first kernel, it need to be disabled before initializing its page table
during second kernel boot. Wei Hu also reported that this is needed
when second kernel boots with intel_iommu=off.

Basically iommu-&gt;gcmd is used to know whether translation is enabled or
disabled, but it is always zero at boot time even when translation is
enabled since iommu-&gt;gcmd is initialized without considering such a
case. Therefor this patch synchronizes iommu-&gt;gcmd value with global
command register when iommu structure is allocated.

Signed-off-by: Takao Indoh &lt;indou.takao@jp.fujitsu.com&gt;
Signed-off-by: Joerg Roedel &lt;joro@8bytes.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>iommu/vt-d: dmar_fault should only clear PPF/PFO field.</title>
<updated>2013-03-26T16:17:54+00:00</updated>
<author>
<name>Li, Zhen-Hua</name>
<email>zhen-hual@hp.com</email>
</author>
<published>2013-03-25T08:20:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=bd5cdad0c8e0f0adcd6e9c582abe4c4233c19b03'/>
<id>bd5cdad0c8e0f0adcd6e9c582abe4c4233c19b03</id>
<content type='text'>
When there is a dmar irq, dmar_fault is called and all of the fields
in FSTS are cleared. But ICE/IQE/ITE should not be cleared here,
they need to be processed and cleared in function qi_check_fault.

[Minor cleanup by Joerg Roedel]

Signed-off-by: Li, Zhen-Hua &lt;zhen-hual@hp.com&gt;
Signed-off-by: Joerg Roedel &lt;joro@8bytes.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When there is a dmar irq, dmar_fault is called and all of the fields
in FSTS are cleared. But ICE/IQE/ITE should not be cleared here,
they need to be processed and cleared in function qi_check_fault.

[Minor cleanup by Joerg Roedel]

Signed-off-by: Li, Zhen-Hua &lt;zhen-hual@hp.com&gt;
Signed-off-by: Joerg Roedel &lt;joro@8bytes.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>iommu, x86: Add DMA remap fault reason</title>
<updated>2013-03-06T08:41:51+00:00</updated>
<author>
<name>Li, Zhen-Hua</name>
<email>zhen-hual@hp.com</email>
</author>
<published>2013-03-06T02:43:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=4ecccd9edd5eb4dd185486e6e593c671484691bc'/>
<id>4ecccd9edd5eb4dd185486e6e593c671484691bc</id>
<content type='text'>
The number of DMA fault reasons in intel's document are from 1
to 0xD, but in dmar.c fault reason 0xD is not printed out.

In this document:

 "Intel Virtualization Technology for Directed I/O Architecture Specification"
 http://download.intel.com/technology/computing/vptech/Intel(r)_VT_for_Direct_IO.pdf

Chapter 4. Support For Device-IOTLBs

Table 6. Unsuccessful Translated Requests

There is fault reason for 0xD not listed in kernel:

    Present context-entry used to process translation request
    specifies blocking of Translation Requests (Translation Type (T)
    field value not equal to 01b).

This patch adds reason 0xD as well.

Signed-off-by: Li, Zhen-Hua &lt;zhen-hual@hp.com&gt;
Cc: Joerg Roedel &lt;joro@8bytes.org&gt;
Cc: Donald Dutile &lt;ddutile@redhat.com&gt;
Cc: Suresh Siddha &lt;suresh.b.siddha@intel.com&gt;
Cc: Hannes Reinecke &lt;hare@suse.de&gt;
Link: http://lkml.kernel.org/r/1362537797-6034-1-git-send-email-zhen-hual@hp.com
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The number of DMA fault reasons in intel's document are from 1
to 0xD, but in dmar.c fault reason 0xD is not printed out.

In this document:

 "Intel Virtualization Technology for Directed I/O Architecture Specification"
 http://download.intel.com/technology/computing/vptech/Intel(r)_VT_for_Direct_IO.pdf

Chapter 4. Support For Device-IOTLBs

Table 6. Unsuccessful Translated Requests

There is fault reason for 0xD not listed in kernel:

    Present context-entry used to process translation request
    specifies blocking of Translation Requests (Translation Type (T)
    field value not equal to 01b).

This patch adds reason 0xD as well.

Signed-off-by: Li, Zhen-Hua &lt;zhen-hual@hp.com&gt;
Cc: Joerg Roedel &lt;joro@8bytes.org&gt;
Cc: Donald Dutile &lt;ddutile@redhat.com&gt;
Cc: Suresh Siddha &lt;suresh.b.siddha@intel.com&gt;
Cc: Hannes Reinecke &lt;hare@suse.de&gt;
Link: http://lkml.kernel.org/r/1362537797-6034-1-git-send-email-zhen-hual@hp.com
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge tag 'iommu-updates-v3.9' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu</title>
<updated>2013-02-26T19:09:17+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2013-02-26T19:09:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=f6c0ffa8f0b0781f4954cb06f0a81d6c10c1b434'/>
<id>f6c0ffa8f0b0781f4954cb06f0a81d6c10c1b434</id>
<content type='text'>
Pull IOMMU Updates from Joerg Roedel:
 "Besides some fixes and cleanups in the code there are three more
  important changes to point out this time:

	* New IOMMU driver for the ARM SHMOBILE platform
	* An IOMMU-API extension for non-paging IOMMUs (required for
	  upcoming PAMU driver)
	* Rework of the way the Tegra IOMMU driver accesses its
	  registetrs - register windows are easier to extend now.

  There are also a few changes to non-iommu code, but that is acked by
  the respective maintainers."

* tag 'iommu-updates-v3.9' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (23 commits)
  iommu/tegra: assume CONFIG_OF in SMMU driver
  iommu/tegra: assume CONFIG_OF in gart driver
  iommu/amd: Remove redundant NULL check before dma_ops_domain_free().
  iommu/amd: Initialize device table after dma_ops
  iommu/vt-d: Zero out allocated memory in dmar_enable_qi
  iommu/tegra: smmu: Fix incorrect mask for regbase
  iommu/exynos: Make exynos_sysmmu_disable static
  ARM: mach-shmobile: r8a7740: Add IPMMU device
  ARM: mach-shmobile: sh73a0: Add IPMMU device
  ARM: mach-shmobile: sh7372: Add IPMMU device
  iommu/shmobile: Add iommu driver for Renesas IPMMU modules
  iommu: Add DOMAIN_ATTR_WINDOWS domain attribute
  iommu: Add domain window handling functions
  iommu: Implement DOMAIN_ATTR_PAGING attribute
  iommu: Check for valid pgsize_bitmap in iommu_map/unmap
  iommu: Make sure DOMAIN_ATTR_MAX is really the maximum
  iommu/tegra: smmu: Change SMMU's dependency on ARCH_TEGRA
  iommu/tegra: smmu: Use helper function to check for valid register offset
  iommu/tegra: smmu: Support variable MMIO ranges/blocks
  iommu/tegra: Add missing spinlock initialization
  ...
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Pull IOMMU Updates from Joerg Roedel:
 "Besides some fixes and cleanups in the code there are three more
  important changes to point out this time:

	* New IOMMU driver for the ARM SHMOBILE platform
	* An IOMMU-API extension for non-paging IOMMUs (required for
	  upcoming PAMU driver)
	* Rework of the way the Tegra IOMMU driver accesses its
	  registetrs - register windows are easier to extend now.

  There are also a few changes to non-iommu code, but that is acked by
  the respective maintainers."

* tag 'iommu-updates-v3.9' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (23 commits)
  iommu/tegra: assume CONFIG_OF in SMMU driver
  iommu/tegra: assume CONFIG_OF in gart driver
  iommu/amd: Remove redundant NULL check before dma_ops_domain_free().
  iommu/amd: Initialize device table after dma_ops
  iommu/vt-d: Zero out allocated memory in dmar_enable_qi
  iommu/tegra: smmu: Fix incorrect mask for regbase
  iommu/exynos: Make exynos_sysmmu_disable static
  ARM: mach-shmobile: r8a7740: Add IPMMU device
  ARM: mach-shmobile: sh73a0: Add IPMMU device
  ARM: mach-shmobile: sh7372: Add IPMMU device
  iommu/shmobile: Add iommu driver for Renesas IPMMU modules
  iommu: Add DOMAIN_ATTR_WINDOWS domain attribute
  iommu: Add domain window handling functions
  iommu: Implement DOMAIN_ATTR_PAGING attribute
  iommu: Check for valid pgsize_bitmap in iommu_map/unmap
  iommu: Make sure DOMAIN_ATTR_MAX is really the maximum
  iommu/tegra: smmu: Change SMMU's dependency on ARCH_TEGRA
  iommu/tegra: smmu: Use helper function to check for valid register offset
  iommu/tegra: smmu: Support variable MMIO ranges/blocks
  iommu/tegra: Add missing spinlock initialization
  ...
</pre>
</div>
</content>
</entry>
<entry>
<title>iommu/vt-d: Zero out allocated memory in dmar_enable_qi</title>
<updated>2013-02-07T21:00:29+00:00</updated>
<author>
<name>Hannes Reinecke</name>
<email>hare@suse.de</email>
</author>
<published>2013-02-06T08:50:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=37a407101e08e444a193837a1e1d4f6f66c8dad4'/>
<id>37a407101e08e444a193837a1e1d4f6f66c8dad4</id>
<content type='text'>
kmemcheck complained about the use of uninitialized memory.
Fix by using kzalloc instead of kmalloc.

Cc: David Woodhouse &lt;dwmw2@infradead.org&gt;
Signed-off-by: Hannes Reinecke &lt;hare@suse.de&gt;
Signed-off-by: Joerg Roedel &lt;joro@8bytes.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
kmemcheck complained about the use of uninitialized memory.
Fix by using kzalloc instead of kmalloc.

Cc: David Woodhouse &lt;dwmw2@infradead.org&gt;
Signed-off-by: Hannes Reinecke &lt;hare@suse.de&gt;
Signed-off-by: Joerg Roedel &lt;joro@8bytes.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>x86, irq: Move irq_remapping_enabled declaration to iommu code</title>
<updated>2013-01-28T11:17:26+00:00</updated>
<author>
<name>Joerg Roedel</name>
<email>joro@8bytes.org</email>
</author>
<published>2012-09-26T10:44:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=078e1ee26a061663bd7a4773c06b33cdb997380d'/>
<id>078e1ee26a061663bd7a4773c06b33cdb997380d</id>
<content type='text'>
Remove the last left-over from this flag from x86 code.

Signed-off-by: Joerg Roedel &lt;joro@8bytes.org&gt;
Acked-by: Sebastian Andrzej Siewior &lt;sebastian@breakpoint.cc&gt;
Reviewed-by: Konrad Rzeszutek Wilk &lt;konrad.wilk@oracle.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove the last left-over from this flag from x86 code.

Signed-off-by: Joerg Roedel &lt;joro@8bytes.org&gt;
Acked-by: Sebastian Andrzej Siewior &lt;sebastian@breakpoint.cc&gt;
Reviewed-by: Konrad Rzeszutek Wilk &lt;konrad.wilk@oracle.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>iommu/dmar: Use pr_format() instead of PREFIX to tidy up pr_*() calls</title>
<updated>2012-06-11T08:27:44+00:00</updated>
<author>
<name>Donald Dutile</name>
<email>ddutile@redhat.com</email>
</author>
<published>2012-06-08T21:13:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=e9071b0be5e7ce4903b7f7c370769d485774d3e3'/>
<id>e9071b0be5e7ce4903b7f7c370769d485774d3e3</id>
<content type='text'>
Joe Perches recommended getting rid of the redundant
formatting of adding "PREFIX" to all the uses of pr_*() calls.

The recommendation helps to reduce source and improve
readibility.

While cleaning up the PREFIX's, I saw that one of
the pr_warn() was redundant in dmar_parse_one_dev_scope(),
since the same message was printed after breaking out of the
while loop for the same condition, !pdev.
So, to avoid a duplicate message, I removed the one in the while
loop.

Reported-by: Joe Perches &lt;joe@perches.com&gt;
Signed-off-by: Donald Dutile &lt;ddutile@redhat.com&gt;
Cc: iommu@lists.linux-foundation.org
Cc: chrisw@redhat.com
Cc: suresh.b.siddha@intel.com
Cc: dwmw2@infradead.org
Link: http://lkml.kernel.org/r/1339189991-13129-1-git-send-email-ddutile@redhat.com
[ Small whitespace fixes. ]
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Joe Perches recommended getting rid of the redundant
formatting of adding "PREFIX" to all the uses of pr_*() calls.

The recommendation helps to reduce source and improve
readibility.

While cleaning up the PREFIX's, I saw that one of
the pr_warn() was redundant in dmar_parse_one_dev_scope(),
since the same message was printed after breaking out of the
while loop for the same condition, !pdev.
So, to avoid a duplicate message, I removed the one in the while
loop.

Reported-by: Joe Perches &lt;joe@perches.com&gt;
Signed-off-by: Donald Dutile &lt;ddutile@redhat.com&gt;
Cc: iommu@lists.linux-foundation.org
Cc: chrisw@redhat.com
Cc: suresh.b.siddha@intel.com
Cc: dwmw2@infradead.org
Link: http://lkml.kernel.org/r/1339189991-13129-1-git-send-email-ddutile@redhat.com
[ Small whitespace fixes. ]
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>iommu/dmar: Reserve mmio space used by the IOMMU, if the BIOS forgets to</title>
<updated>2012-06-08T10:15:43+00:00</updated>
<author>
<name>Donald Dutile</name>
<email>ddutile@redhat.com</email>
</author>
<published>2012-06-04T21:29:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=6f5cf52114dd87f9ed091678f7dfc8ff21bbe2b3'/>
<id>6f5cf52114dd87f9ed091678f7dfc8ff21bbe2b3</id>
<content type='text'>
Intel-iommu initialization doesn't currently reserve the memory
used for the IOMMU registers. This can allow the pci resource
allocator to assign a device BAR to the same address as the
IOMMU registers. This can cause some not so nice side affects
when the driver ioremap's that region.

Introduced two helper functions to map &amp; unmap the IOMMU
registers as well as simplify the init and exit paths.

Signed-off-by: Donald Dutile &lt;ddutile@redhat.com&gt;
Acked-by: Chris Wright &lt;chrisw@redhat.com&gt;
Cc: iommu@lists.linux-foundation.org
Cc: suresh.b.siddha@intel.com
Cc: dwmw2@infradead.org
Link: http://lkml.kernel.org/r/1338845342-12464-3-git-send-email-ddutile@redhat.com
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Intel-iommu initialization doesn't currently reserve the memory
used for the IOMMU registers. This can allow the pci resource
allocator to assign a device BAR to the same address as the
IOMMU registers. This can cause some not so nice side affects
when the driver ioremap's that region.

Introduced two helper functions to map &amp; unmap the IOMMU
registers as well as simplify the init and exit paths.

Signed-off-by: Donald Dutile &lt;ddutile@redhat.com&gt;
Acked-by: Chris Wright &lt;chrisw@redhat.com&gt;
Cc: iommu@lists.linux-foundation.org
Cc: suresh.b.siddha@intel.com
Cc: dwmw2@infradead.org
Link: http://lkml.kernel.org/r/1338845342-12464-3-git-send-email-ddutile@redhat.com
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
