85f6d04f528b6fcbf57326117477e5dab9e686e1
[linux-2.6-microblaze.git] / Documentation / ABI / testing / debugfs-driver-habanalabs
1 What:           /sys/kernel/debug/habanalabs/hl<n>/addr
2 Date:           Jan 2019
3 KernelVersion:  5.1
4 Contact:        ogabbay@kernel.org
5 Description:    Sets the device address to be used for read or write through
6                 PCI bar, or the device VA of a host mapped memory to be read or
7                 written directly from the host. The latter option is allowed
8                 only when the IOMMU is disabled.
9                 The acceptable value is a string that starts with "0x"
10
11 What:           /sys/kernel/debug/habanalabs/hl<n>/clk_gate
12 Date:           May 2020
13 KernelVersion:  5.8
14 Contact:        ogabbay@kernel.org
15 Description:    This setting is now deprecated as clock gating is handled solely by the f/w
16
17 What:           /sys/kernel/debug/habanalabs/hl<n>/command_buffers
18 Date:           Jan 2019
19 KernelVersion:  5.1
20 Contact:        ogabbay@kernel.org
21 Description:    Displays a list with information about the currently allocated
22                 command buffers
23
24 What:           /sys/kernel/debug/habanalabs/hl<n>/command_submission
25 Date:           Jan 2019
26 KernelVersion:  5.1
27 Contact:        ogabbay@kernel.org
28 Description:    Displays a list with information about the currently active
29                 command submissions
30
31 What:           /sys/kernel/debug/habanalabs/hl<n>/command_submission_jobs
32 Date:           Jan 2019
33 KernelVersion:  5.1
34 Contact:        ogabbay@kernel.org
35 Description:    Displays a list with detailed information about each JOB (CB) of
36                 each active command submission
37
38 What:           /sys/kernel/debug/habanalabs/hl<n>/data32
39 Date:           Jan 2019
40 KernelVersion:  5.1
41 Contact:        ogabbay@kernel.org
42 Description:    Allows the root user to read or write directly through the
43                 device's PCI bar. Writing to this file generates a write
44                 transaction while reading from the file generates a read
45                 transaction. This custom interface is needed (instead of using
46                 the generic Linux user-space PCI mapping) because the DDR bar
47                 is very small compared to the DDR memory and only the driver can
48                 move the bar before and after the transaction.
49
50                 If the IOMMU is disabled, it also allows the root user to read
51                 or write from the host a device VA of a host mapped memory
52
53 What:           /sys/kernel/debug/habanalabs/hl<n>/data64
54 Date:           Jan 2020
55 KernelVersion:  5.6
56 Contact:        ogabbay@kernel.org
57 Description:    Allows the root user to read or write 64 bit data directly
58                 through the device's PCI bar. Writing to this file generates a
59                 write transaction while reading from the file generates a read
60                 transaction. This custom interface is needed (instead of using
61                 the generic Linux user-space PCI mapping) because the DDR bar
62                 is very small compared to the DDR memory and only the driver can
63                 move the bar before and after the transaction.
64
65                 If the IOMMU is disabled, it also allows the root user to read
66                 or write from the host a device VA of a host mapped memory
67
68 What:           /sys/kernel/debug/habanalabs/hl<n>/data_dma
69 Date:           Apr 2021
70 KernelVersion:  5.13
71 Contact:        ogabbay@kernel.org
72 Description:    Allows the root user to read from the device's internal
73                 memory (DRAM/SRAM) through a DMA engine.
74                 This property is a binary blob that contains the result of the
75                 DMA transfer.
76                 This custom interface is needed (instead of using the generic
77                 Linux user-space PCI mapping) because the amount of internal
78                 memory is huge (>32GB) and reading it via the PCI bar will take
79                 a very long time.
80                 This interface doesn't support concurrency in the same device.
81                 In GAUDI and GOYA, this action can cause undefined behavior
82                 in case the it is done while the device is executing user
83                 workloads.
84                 Only supported on GAUDI at this stage.
85
86 What:           /sys/kernel/debug/habanalabs/hl<n>/device
87 Date:           Jan 2019
88 KernelVersion:  5.1
89 Contact:        ogabbay@kernel.org
90 Description:    Enables the root user to set the device to specific state.
91                 Valid values are "disable", "enable", "suspend", "resume".
92                 User can read this property to see the valid values
93
94 What:           /sys/kernel/debug/habanalabs/hl<n>/device_release_watchdog_timeout
95 Date:           Oct 2022
96 KernelVersion:  6.2
97 Contact:        ttayar@habana.ai
98 Description:    The watchdog timeout value in seconds for a device relese upon
99                 certain error cases, after which the device is reset.
100
101 What:           /sys/kernel/debug/habanalabs/hl<n>/dma_size
102 Date:           Apr 2021
103 KernelVersion:  5.13
104 Contact:        ogabbay@kernel.org
105 Description:    Specify the size of the DMA transaction when using DMA to read
106                 from the device's internal memory. The value can not be larger
107                 than 128MB. Writing to this value initiates the DMA transfer.
108                 When the write is finished, the user can read the "data_dma"
109                 blob
110
111 What:           /sys/kernel/debug/habanalabs/hl<n>/dump_razwi_events
112 Date:           Aug 2022
113 KernelVersion:  5.20
114 Contact:        fkassabri@habana.ai
115 Description:    Dumps all razwi events to dmesg if exist.
116                 After reading the status register of an existing event
117                 the routine will clear the status register.
118                 Usage: cat dump_razwi_events
119
120 What:           /sys/kernel/debug/habanalabs/hl<n>/dump_security_violations
121 Date:           Jan 2021
122 KernelVersion:  5.12
123 Contact:        ogabbay@kernel.org
124 Description:    Dumps all security violations to dmesg. This will also ack
125                 all security violations meanings those violations will not be
126                 dumped next time user calls this API
127
128 What:           /sys/kernel/debug/habanalabs/hl<n>/engines
129 Date:           Jul 2019
130 KernelVersion:  5.3
131 Contact:        ogabbay@kernel.org
132 Description:    Displays the status registers values of the device engines and
133                 their derived idle status
134
135 What:           /sys/kernel/debug/habanalabs/hl<n>/i2c_addr
136 Date:           Jan 2019
137 KernelVersion:  5.1
138 Contact:        ogabbay@kernel.org
139 Description:    Sets I2C device address for I2C transaction that is generated
140                 by the device's CPU, Not available when device is loaded with secured
141                 firmware
142
143 What:           /sys/kernel/debug/habanalabs/hl<n>/i2c_bus
144 Date:           Jan 2019
145 KernelVersion:  5.1
146 Contact:        ogabbay@kernel.org
147 Description:    Sets I2C bus address for I2C transaction that is generated by
148                 the device's CPU, Not available when device is loaded with secured
149                 firmware
150
151 What:           /sys/kernel/debug/habanalabs/hl<n>/i2c_data
152 Date:           Jan 2019
153 KernelVersion:  5.1
154 Contact:        ogabbay@kernel.org
155 Description:    Triggers an I2C transaction that is generated by the device's
156                 CPU. Writing to this file generates a write transaction while
157                 reading from the file generates a read transaction, Not available
158                 when device is loaded with secured firmware
159
160 What:           /sys/kernel/debug/habanalabs/hl<n>/i2c_len
161 Date:           Dec 2021
162 KernelVersion:  5.17
163 Contact:        obitton@habana.ai
164 Description:    Sets I2C length in bytes for I2C transaction that is generated by
165                 the device's CPU, Not available when device is loaded with secured
166                 firmware
167
168 What:           /sys/kernel/debug/habanalabs/hl<n>/i2c_reg
169 Date:           Jan 2019
170 KernelVersion:  5.1
171 Contact:        ogabbay@kernel.org
172 Description:    Sets I2C register id for I2C transaction that is generated by
173                 the device's CPU, Not available when device is loaded with secured
174                 firmware
175
176 What:           /sys/kernel/debug/habanalabs/hl<n>/led0
177 Date:           Jan 2019
178 KernelVersion:  5.1
179 Contact:        ogabbay@kernel.org
180 Description:    Sets the state of the first S/W led on the device, Not available
181                 when device is loaded with secured firmware
182
183 What:           /sys/kernel/debug/habanalabs/hl<n>/led1
184 Date:           Jan 2019
185 KernelVersion:  5.1
186 Contact:        ogabbay@kernel.org
187 Description:    Sets the state of the second S/W led on the device, Not available
188                 when device is loaded with secured firmware
189
190 What:           /sys/kernel/debug/habanalabs/hl<n>/led2
191 Date:           Jan 2019
192 KernelVersion:  5.1
193 Contact:        ogabbay@kernel.org
194 Description:    Sets the state of the third S/W led on the device, Not available
195                 when device is loaded with secured firmware
196
197 What:           /sys/kernel/debug/habanalabs/hl<n>/memory_scrub
198 Date:           May 2022
199 KernelVersion:  5.19
200 Contact:        dhirschfeld@habana.ai
201 Description:    Allows the root user to scrub the dram memory. The scrubbing
202                 value can be set using the debugfs file memory_scrub_val.
203
204 What:           /sys/kernel/debug/habanalabs/hl<n>/memory_scrub_val
205 Date:           May 2022
206 KernelVersion:  5.19
207 Contact:        dhirschfeld@habana.ai
208 Description:    The value to which the dram will be set to when the user
209                 scrubs the dram using 'memory_scrub' debugfs file and
210                 the scrubbing value when using module param 'memory_scrub'
211
212 What:           /sys/kernel/debug/habanalabs/hl<n>/mmu
213 Date:           Jan 2019
214 KernelVersion:  5.1
215 Contact:        ogabbay@kernel.org
216 Description:    Displays the hop values and physical address for a given ASID
217                 and virtual address. The user should write the ASID and VA into
218                 the file and then read the file to get the result.
219                 e.g. to display info about VA 0x1000 for ASID 1 you need to do:
220                 echo "1 0x1000" > /sys/kernel/debug/habanalabs/hl0/mmu
221
222 What:           /sys/kernel/debug/habanalabs/hl<n>/mmu_error
223 Date:           Mar 2021
224 KernelVersion:  5.12
225 Contact:        fkassabri@habana.ai
226 Description:    Check and display page fault or access violation mmu errors for
227                 all MMUs specified in mmu_cap_mask.
228                 e.g. to display error info for MMU hw cap bit 9, you need to do:
229                 echo "0x200" > /sys/kernel/debug/habanalabs/hl0/mmu_error
230                 cat /sys/kernel/debug/habanalabs/hl0/mmu_error
231
232 What:           /sys/kernel/debug/habanalabs/hl<n>/monitor_dump
233 Date:           Mar 2022
234 KernelVersion:  5.19
235 Contact:        osharabi@habana.ai
236 Description:    Allows the root user to dump monitors status from the device's
237                 protected config space.
238                 This property is a binary blob that contains the result of the
239                 monitors registers dump.
240                 This custom interface is needed (instead of using the generic
241                 Linux user-space PCI mapping) because this space is protected
242                 and cannot be accessed using PCI read.
243                 This interface doesn't support concurrency in the same device.
244                 Only supported on GAUDI.
245
246 What:           /sys/kernel/debug/habanalabs/hl<n>/monitor_dump_trig
247 Date:           Mar 2022
248 KernelVersion:  5.19
249 Contact:        osharabi@habana.ai
250 Description:    Triggers dump of monitor data. The value to trigger the operation
251                 must be 1. Triggering the monitor dump operation initiates dump of
252                 current registers values of all monitors.
253                 When the write is finished, the user can read the "monitor_dump"
254                 blob
255
256 What:           /sys/kernel/debug/habanalabs/hl<n>/set_power_state
257 Date:           Jan 2019
258 KernelVersion:  5.1
259 Contact:        ogabbay@kernel.org
260 Description:    Sets the PCI power state. Valid values are "1" for D0 and "2"
261                 for D3Hot
262
263 What:           /sys/kernel/debug/habanalabs/hl<n>/skip_reset_on_timeout
264 Date:           Jun 2021
265 KernelVersion:  5.13
266 Contact:        ynudelman@habana.ai
267 Description:    Sets the skip reset on timeout option for the device. Value of
268                 "0" means device will be reset in case some CS has timed out,
269                 otherwise it will not be reset.
270
271 What:           /sys/kernel/debug/habanalabs/hl<n>/state_dump
272 Date:           Oct 2021
273 KernelVersion:  5.15
274 Contact:        ynudelman@habana.ai
275 Description:    Gets the state dump occurring on a CS timeout or failure.
276                 State dump is used for debug and is created each time in case of
277                 a problem in a CS execution, before reset.
278                 Reading from the node returns the newest state dump available.
279                 Writing an integer X discards X state dumps, so that the
280                 next read would return X+1-st newest state dump.
281
282 What:           /sys/kernel/debug/habanalabs/hl<n>/stop_on_err
283 Date:           Mar 2020
284 KernelVersion:  5.6
285 Contact:        ogabbay@kernel.org
286 Description:    Sets the stop-on_error option for the device engines. Value of
287                 "0" is for disable, otherwise enable.
288                 Relevant only for GOYA and GAUDI.
289
290 What:           /sys/kernel/debug/habanalabs/hl<n>/timeout_locked
291 Date:           Sep 2021
292 KernelVersion:  5.16
293 Contact:        obitton@habana.ai
294 Description:    Sets the command submission timeout value in seconds.
295
296 What:           /sys/kernel/debug/habanalabs/hl<n>/userptr
297 Date:           Jan 2019
298 KernelVersion:  5.1
299 Contact:        ogabbay@kernel.org
300 Description:    Displays a list with information about the currently user
301                 pointers (user virtual addresses) that are pinned and mapped
302                 to DMA addresses
303
304 What:           /sys/kernel/debug/habanalabs/hl<n>/userptr_lookup
305 Date:           Oct 2021
306 KernelVersion:  5.15
307 Contact:        ogabbay@kernel.org
308 Description:    Allows to search for specific user pointers (user virtual
309                 addresses) that are pinned and mapped to DMA addresses, and see
310                 their resolution to the specific dma address.
311
312 What:           /sys/kernel/debug/habanalabs/hl<n>/vm
313 Date:           Jan 2019
314 KernelVersion:  5.1
315 Contact:        ogabbay@kernel.org
316 Description:    Displays a list with information about all the active virtual
317                 address mappings per ASID and all user mappings of HW blocks