| | 181 | |
| | 182 | * QEMUの引数に追加されるものの例 |
| | 183 | {{{ |
| | 184 | 01:00.0 Multimedia controller [0480]: Altera Corporation Device [1172:4c15] (rev 01) |
| | 185 | }}} |
| | 186 | {{{ |
| | 187 | -device vfio-pci,host=01:00.0,id=hostdev0,bus=pci.0,addr=0x9 |
| | 188 | }}} |
| | 189 | |
| | 190 | == Marvell controller == |
| | 191 | * [https://bbs.archlinux.org/viewtopic.php?id=185182 Intel IOMMU not working for Marvell SSD Controller / Kernel & Hardware / Arch Linux Forums] |
| | 192 | * [https://bugzilla.kernel.org/show_bug.cgi?id=42679 Bug 42679 – DMA Read on Marvell 88SE9128 fails when Intel's IOMMU is on] |
| | 193 | * https://bugzilla.kernel.org/show_bug.cgi?id=42679#c94 {{{Note, for google: this is the controller embedded in the Plextor m6e M.2 SSD}}} |
| | 194 | * http://lxr.free-electrons.com/source/drivers/pci/quirks.c#L3570 |
| | 195 | |
| | 196 | === PX-G128M6e === |
| | 197 | * lspci -nnv |
| | 198 | {{{ |
| | 199 | 02:00.0 SATA controller [0106]: Lite-On IT Corp. / Plextor M6e PCI Express SSD [Marvell 88SS9183] [1c28:0122] (rev 14) (prog-if 01 [AHCI 1.0]) |
| | 200 | Subsystem: Marvell Technology Group Ltd. Device [1b4b:9183] |
| | 201 | }}} |
| | 202 | |
| | 203 | * root@archiso ~ # uname -a |
| | 204 | {{{ |
| | 205 | Linux archiso 4.0.4-2-ARCH #1 SMP PREEMPT Fri May 22 03:05:23 UTC 2015 x86_64 GNU/Linux |
| | 206 | }}} |
| | 207 | * root@archiso ~ # cat /proc/cmdline |
| | 208 | {{{ |
| | 209 | BOOT_IMAGE=boot/x86_64/vmlinuz archisobasedir=arch archisolabel=ARCH_201506 initrd=boot/intel_ucode.img,boot/x86_64/archiso.img intel_iommu=on |
| | 210 | }}} |
| | 211 | * root@archiso ~ # dmesg|grep -i -e DMAR -e IOMMU |
| | 212 | {{{ |
| | 213 | [ 0.000000] Command line: BOOT_IMAGE=boot/x86_64/vmlinuz archisobasedir=arch archisolabel=ARCH_201506 initrd=boot/intel_ucode.img,boot/x86_64/archiso.img intel_iommu=on |
| | 214 | [ 0.000000] ACPI: DMAR 0x00000000DAC6CED0 0000B8 (v01 INTEL BDW 00000001 INTL 00000001) |
| | 215 | [ 0.000000] Kernel command line: BOOT_IMAGE=boot/x86_64/vmlinuz archisobasedir=arch archisolabel=ARCH_201506 initrd=boot/intel_ucode.img,boot/x86_64/archiso.img intel_iommu=on |
| | 216 | [ 0.000000] Intel-IOMMU: enabled |
| | 217 | [ 0.086964] dmar: Host address width 39 |
| | 218 | [ 0.086969] dmar: DRHD base: 0x000000fed90000 flags: 0x0 |
| | 219 | [ 0.086987] dmar: IOMMU 0: reg_base_addr fed90000 ver 1:0 cap c0000020660462 ecap f0101a |
| | 220 | [ 0.086990] dmar: DRHD base: 0x000000fed91000 flags: 0x1 |
| | 221 | [ 0.087000] dmar: IOMMU 1: reg_base_addr fed91000 ver 1:0 cap d2008c20660462 ecap f010da |
| | 222 | [ 0.087003] dmar: RMRR base: 0x000000dbe7b000 end: 0x000000dbe89fff |
| | 223 | [ 0.087006] dmar: RMRR base: 0x000000dd000000 end: 0x000000df1fffff |
| | 224 | [ 0.087011] IOAPIC id 8 under DRHD base 0xfed91000 IOMMU 1 |
| | 225 | [ 7.370829] DMAR: No ATSR found |
| | 226 | [ 7.371048] IOMMU: dmar0 using Queued invalidation |
| | 227 | [ 7.371051] IOMMU: dmar1 using Queued invalidation |
| | 228 | [ 7.371056] IOMMU: Setting RMRR: |
| | 229 | [ 7.371083] IOMMU: Setting identity map for device 0000:00:02.0 [0xdd000000 - 0xdf1fffff] |
| | 230 | [ 7.371527] IOMMU: Setting identity map for device 0000:00:14.0 [0xdbe7b000 - 0xdbe89fff] |
| | 231 | [ 7.371577] IOMMU: Setting identity map for device 0000:00:1a.0 [0xdbe7b000 - 0xdbe89fff] |
| | 232 | [ 7.371616] IOMMU: Setting identity map for device 0000:00:1d.0 [0xdbe7b000 - 0xdbe89fff] |
| | 233 | [ 7.371644] IOMMU: Prepare 0-16MiB unity mapping for LPC |
| | 234 | [ 7.371661] IOMMU: Setting identity map for device 0000:00:1f.0 [0x0 - 0xffffff] |
| | 235 | [ 7.673577] [drm] DMAR active, disabling use of stolen memory |
| | 236 | [ 7.673740] dmar: DRHD: handling fault status reg 2 |
| | 237 | [ 7.673744] dmar: DMAR:[DMA Write] Request device [02:00.1] fault addr fffe0000 |
| | 238 | DMAR:[fault reason 02] Present bit in context entry is clear |
| | 239 | [ 7.986473] dmar: DRHD: handling fault status reg 3 |
| | 240 | [ 7.986493] dmar: DMAR:[DMA Write] Request device [02:00.1] fault addr fffe0000 |
| | 241 | DMAR:[fault reason 02] Present bit in context entry is clear |
| | 242 | [ 9.337664] dmar: DRHD: handling fault status reg 2 |
| | 243 | [ 9.337683] dmar: DMAR:[DMA Write] Request device [00:02.0] fault addr 74ff240000 |
| | 244 | DMAR:[fault reason 05] PTE Write access is not set |
| | 245 | [ 12.985456] dmar: DRHD: handling fault status reg 2 |
| | 246 | [ 12.985519] dmar: DMAR:[DMA Write] Request device [02:00.1] fault addr fffe0000 |
| | 247 | DMAR:[fault reason 02] Present bit in context entry is clear |
| | 248 | [ 13.298243] dmar: DRHD: handling fault status reg 3 |
| | 249 | [ 13.298307] dmar: DMAR:[DMA Write] Request device [02:00.1] fault addr fffe0000 |
| | 250 | DMAR:[fault reason 02] Present bit in context entry is clear |
| | 251 | [ 18.297124] dmar: DRHD: handling fault status reg 2 |
| | 252 | [ 18.297152] dmar: DMAR:[DMA Write] Request device [02:00.1] fault addr fffe0000 |
| | 253 | DMAR:[fault reason 02] Present bit in context entry is clear |
| | 254 | [ 18.609924] dmar: DRHD: handling fault status reg 3 |
| | 255 | [ 18.609971] dmar: DMAR:[DMA Write] Request device [02:00.1] fault addr fffe0000 |
| | 256 | DMAR:[fault reason 02] Present bit in context entry is clear |
| | 257 | [ 23.608862] dmar: DRHD: handling fault status reg 2 |
| | 258 | [ 23.608924] dmar: DMAR:[DMA Write] Request device [02:00.1] fault addr fffe0000 |
| | 259 | DMAR:[fault reason 02] Present bit in context entry is clear |
| | 260 | }}} |
| | 261 | |
| | 262 | * PX-G128M6eを取り外すと以下のようになる |
| | 263 | {{{ |
| | 264 | [ 0.000000] Command line: BOOT_IMAGE=/vmlinuz-linux root=UUID=0f566cb2-aec8-4122-a80a-f2e5f48e4426 rw intel_iommu=on |
| | 265 | [ 0.000000] ACPI: DMAR 0x00000000DAC6CED0 0000B8 (v01 INTEL BDW 00000001 INTL 00000001) |
| | 266 | [ 0.000000] Kernel command line: BOOT_IMAGE=/vmlinuz-linux root=UUID=0f566cb2-aec8-4122-a80a-f2e5f48e4426 rw intel_iommu=on |
| | 267 | [ 0.000000] Intel-IOMMU: enabled |
| | 268 | [ 0.107383] dmar: Host address width 39 |
| | 269 | [ 0.107388] dmar: DRHD base: 0x000000fed90000 flags: 0x0 |
| | 270 | [ 0.107406] dmar: IOMMU 0: reg_base_addr fed90000 ver 1:0 cap c0000020660462 ecap f0101a |
| | 271 | [ 0.107409] dmar: DRHD base: 0x000000fed91000 flags: 0x1 |
| | 272 | [ 0.107419] dmar: IOMMU 1: reg_base_addr fed91000 ver 1:0 cap d2008c20660462 ecap f010da |
| | 273 | [ 0.107422] dmar: RMRR base: 0x000000dbe7b000 end: 0x000000dbe89fff |
| | 274 | [ 0.107425] dmar: RMRR base: 0x000000dd000000 end: 0x000000df1fffff |
| | 275 | [ 0.107430] IOAPIC id 8 under DRHD base 0xfed91000 IOMMU 1 |
| | 276 | [ 0.677861] DMAR: No ATSR found |
| | 277 | [ 0.678093] IOMMU: dmar0 using Queued invalidation |
| | 278 | [ 0.678096] IOMMU: dmar1 using Queued invalidation |
| | 279 | [ 0.678100] IOMMU: Setting RMRR: |
| | 280 | [ 0.678127] IOMMU: Setting identity map for device 0000:00:02.0 [0xdd000000 - 0xdf1fffff] |
| | 281 | [ 0.678608] IOMMU: Setting identity map for device 0000:00:14.0 [0xdbe7b000 - 0xdbe89fff] |
| | 282 | [ 0.678655] IOMMU: Setting identity map for device 0000:00:1a.0 [0xdbe7b000 - 0xdbe89fff] |
| | 283 | [ 0.678697] IOMMU: Setting identity map for device 0000:00:1d.0 [0xdbe7b000 - 0xdbe89fff] |
| | 284 | [ 0.678725] IOMMU: Prepare 0-16MiB unity mapping for LPC |
| | 285 | [ 0.678743] IOMMU: Setting identity map for device 0000:00:1f.0 [0x0 - 0xffffff] |
| | 286 | [ 4.326005] [drm] DMAR active, disabling use of stolen memory |
| | 287 | }}} |