Skip to content

Commit 39215bb

Browse files
dhsrivaswilldeacon
authored andcommitted
iommu/amd: Add documentation for AMD IOMMU debugfs support
Add documentation describing how to use AMD IOMMU debugfs support to dump IOMMU data structures - IRT table, Device table, Registers (MMIO and Capability) and command buffer. Signed-off-by: Dheeraj Kumar Srivastava <[email protected]> Reviewed-by: Vasant Hegde <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Will Deacon <[email protected]>
1 parent 349ad6d commit 39215bb

File tree

1 file changed

+114
-0
lines changed

1 file changed

+114
-0
lines changed
Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
What: /sys/kernel/debug/iommu/amd/iommu<x>/mmio
2+
Date: January 2025
3+
Contact: Dheeraj Kumar Srivastava <[email protected]>
4+
Description:
5+
This file provides read/write access for user input. Users specify the
6+
MMIO register offset for iommu<x>, and the file outputs the corresponding
7+
MMIO register value of iommu<x>
8+
9+
Example:
10+
$ echo "0x18" > /sys/kernel/debug/iommu/amd/iommu00/mmio
11+
$ cat /sys/kernel/debug/iommu/amd/iommu00/mmio
12+
13+
Output:
14+
Offset:0x18 Value:0x000c22000003f48d
15+
16+
What: /sys/kernel/debug/iommu/amd/iommu<x>/capability
17+
Date: January 2025
18+
Contact: Dheeraj Kumar Srivastava <[email protected]>
19+
Description:
20+
This file provides read/write access for user input. Users specify the
21+
capability register offset for iommu<x>, and the file outputs the
22+
corresponding capability register value of iommu<x>.
23+
24+
Example:
25+
$ echo "0x10" > /sys/kernel/debug/iommu/amd/iommu00/capability
26+
$ cat /sys/kernel/debug/iommu/amd/iommu00/capability
27+
28+
Output:
29+
Offset:0x10 Value:0x00203040
30+
31+
What: /sys/kernel/debug/iommu/amd/iommu<x>/cmdbuf
32+
Date: January 2025
33+
Contact: Dheeraj Kumar Srivastava <[email protected]>
34+
Description:
35+
This file is a read-only output file containing iommu<x> command
36+
buffer entries.
37+
38+
Examples:
39+
$ cat /sys/kernel/debug/iommu/amd/iommu<x>/cmdbuf
40+
41+
Output:
42+
CMD Buffer Head Offset:339 Tail Offset:339
43+
0: 00835001 10000001 00003c00 00000000
44+
1: 00000000 30000005 fffff003 7fffffff
45+
2: 00835001 10000001 00003c01 00000000
46+
3: 00000000 30000005 fffff003 7fffffff
47+
4: 00835001 10000001 00003c02 00000000
48+
5: 00000000 30000005 fffff003 7fffffff
49+
6: 00835001 10000001 00003c03 00000000
50+
7: 00000000 30000005 fffff003 7fffffff
51+
8: 00835001 10000001 00003c04 00000000
52+
9: 00000000 30000005 fffff003 7fffffff
53+
10: 00835001 10000001 00003c05 00000000
54+
11: 00000000 30000005 fffff003 7fffffff
55+
[...]
56+
57+
What: /sys/kernel/debug/iommu/amd/devid
58+
Date: January 2025
59+
Contact: Dheeraj Kumar Srivastava <[email protected]>
60+
Description:
61+
This file provides read/write access for user input. Users specify the
62+
device ID, which can be used to dump IOMMU data structures such as the
63+
interrupt remapping table and device table.
64+
65+
Example:
66+
1.
67+
$ echo 0000:01:00.0 > /sys/kernel/debug/iommu/amd/devid
68+
$ cat /sys/kernel/debug/iommu/amd/devid
69+
70+
Output:
71+
0000:01:00.0
72+
73+
2.
74+
$ echo 01:00.0 > /sys/kernel/debug/iommu/amd/devid
75+
$ cat /sys/kernel/debug/iommu/amd/devid
76+
77+
Output:
78+
0000:01:00.0
79+
80+
What: /sys/kernel/debug/iommu/amd/devtbl
81+
Date: January 2025
82+
Contact: Dheeraj Kumar Srivastava <[email protected]>
83+
Description:
84+
This file is a read-only output file containing the device table entry
85+
for the device ID provided in /sys/kernel/debug/iommu/amd/devid.
86+
87+
Example:
88+
$ cat /sys/kernel/debug/iommu/amd/devtbl
89+
90+
Output:
91+
DeviceId QWORD[3] QWORD[2] QWORD[1] QWORD[0] iommu
92+
0000:01:00.0 0000000000000000 20000001373b8013 0000000000000038 6000000114d7b603 iommu3
93+
94+
What: /sys/kernel/debug/iommu/amd/irqtbl
95+
Date: January 2025
96+
Contact: Dheeraj Kumar Srivastava <[email protected]>
97+
Description:
98+
This file is a read-only output file containing valid IRT table entries
99+
for the device ID provided in /sys/kernel/debug/iommu/amd/devid.
100+
101+
Example:
102+
$ cat /sys/kernel/debug/iommu/amd/irqtbl
103+
104+
Output:
105+
DeviceId 0000:01:00.0
106+
IRT[0000] 0000000000000020 0000000000000241
107+
IRT[0001] 0000000000000020 0000000000000841
108+
IRT[0002] 0000000000000020 0000000000002041
109+
IRT[0003] 0000000000000020 0000000000008041
110+
IRT[0004] 0000000000000020 0000000000020041
111+
IRT[0005] 0000000000000020 0000000000080041
112+
IRT[0006] 0000000000000020 0000000000200041
113+
IRT[0007] 0000000000000020 0000000000800041
114+
[...]

0 commit comments

Comments
 (0)