xref: /linux/Documentation/ABI/testing/debugfs-driver-habanalabs (revision 063565aca3734de4e73639a0e460a58d9418b3cd)
1What:           /sys/kernel/debug/habanalabs/hl<n>/addr
2Date:           Jan 2019
3KernelVersion:  5.1
4Contact:        ogabbay@kernel.org
5Description:    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
11What:           /sys/kernel/debug/habanalabs/hl<n>/clk_gate
12Date:           May 2020
13KernelVersion:  5.8
14Contact:        ogabbay@kernel.org
15Description:    Allow the root user to disable/enable in runtime the clock
16                gating mechanism in Gaudi. Due to how Gaudi is built, the
17                clock gating needs to be disabled in order to access the
18                registers of the TPC and MME engines. This is sometimes needed
19                during debug by the user and hence the user needs this option.
20                The user can supply a bitmask value, each bit represents
21                a different engine to disable/enable its clock gating feature.
22                The bitmask is composed of 20 bits:
23
24                =======   ============
25                0  -  7   DMA channels
26                8  - 11   MME engines
27                12 - 19   TPC engines
28                =======   ============
29
30                The bit's location of a specific engine can be determined
31                using (1 << GAUDI_ENGINE_ID_*). GAUDI_ENGINE_ID_* values
32                are defined in uapi habanalabs.h file in enum gaudi_engine_id
33
34What:           /sys/kernel/debug/habanalabs/hl<n>/command_buffers
35Date:           Jan 2019
36KernelVersion:  5.1
37Contact:        ogabbay@kernel.org
38Description:    Displays a list with information about the currently allocated
39                command buffers
40
41What:           /sys/kernel/debug/habanalabs/hl<n>/command_submission
42Date:           Jan 2019
43KernelVersion:  5.1
44Contact:        ogabbay@kernel.org
45Description:    Displays a list with information about the currently active
46                command submissions
47
48What:           /sys/kernel/debug/habanalabs/hl<n>/command_submission_jobs
49Date:           Jan 2019
50KernelVersion:  5.1
51Contact:        ogabbay@kernel.org
52Description:    Displays a list with detailed information about each JOB (CB) of
53                each active command submission
54
55What:           /sys/kernel/debug/habanalabs/hl<n>/data32
56Date:           Jan 2019
57KernelVersion:  5.1
58Contact:        ogabbay@kernel.org
59Description:    Allows the root user to read or write directly through the
60                device's PCI bar. Writing to this file generates a write
61                transaction while reading from the file generates a read
62                transaction. This custom interface is needed (instead of using
63                the generic Linux user-space PCI mapping) because the DDR bar
64                is very small compared to the DDR memory and only the driver can
65                move the bar before and after the transaction.
66
67                If the IOMMU is disabled, it also allows the root user to read
68                or write from the host a device VA of a host mapped memory
69
70What:           /sys/kernel/debug/habanalabs/hl<n>/data64
71Date:           Jan 2020
72KernelVersion:  5.6
73Contact:        ogabbay@kernel.org
74Description:    Allows the root user to read or write 64 bit data directly
75                through the device's PCI bar. Writing to this file generates a
76                write transaction while reading from the file generates a read
77                transaction. This custom interface is needed (instead of using
78                the generic Linux user-space PCI mapping) because the DDR bar
79                is very small compared to the DDR memory and only the driver can
80                move the bar before and after the transaction.
81
82                If the IOMMU is disabled, it also allows the root user to read
83                or write from the host a device VA of a host mapped memory
84
85What:           /sys/kernel/debug/habanalabs/hl<n>/data_dma
86Date:           Apr 2021
87KernelVersion:  5.13
88Contact:        ogabbay@kernel.org
89Description:    Allows the root user to read from the device's internal
90                memory (DRAM/SRAM) through a DMA engine.
91                This property is a binary blob that contains the result of the
92                DMA transfer.
93                This custom interface is needed (instead of using the generic
94                Linux user-space PCI mapping) because the amount of internal
95                memory is huge (>32GB) and reading it via the PCI bar will take
96                a very long time.
97                This interface doesn't support concurrency in the same device.
98                In GAUDI and GOYA, this action can cause undefined behavior
99                in case the it is done while the device is executing user
100                workloads.
101                Only supported on GAUDI at this stage.
102
103What:           /sys/kernel/debug/habanalabs/hl<n>/device
104Date:           Jan 2019
105KernelVersion:  5.1
106Contact:        ogabbay@kernel.org
107Description:    Enables the root user to set the device to specific state.
108                Valid values are "disable", "enable", "suspend", "resume".
109                User can read this property to see the valid values
110
111What:           /sys/kernel/debug/habanalabs/hl<n>/dma_size
112Date:           Apr 2021
113KernelVersion:  5.13
114Contact:        ogabbay@kernel.org
115Description:    Specify the size of the DMA transaction when using DMA to read
116                from the device's internal memory. The value can not be larger
117                than 128MB. Writing to this value initiates the DMA transfer.
118                When the write is finished, the user can read the "data_dma"
119                blob
120
121What:           /sys/kernel/debug/habanalabs/hl<n>/dump_security_violations
122Date:           Jan 2021
123KernelVersion:  5.12
124Contact:        ogabbay@kernel.org
125Description:    Dumps all security violations to dmesg. This will also ack
126                all security violations meanings those violations will not be
127                dumped next time user calls this API
128
129What:           /sys/kernel/debug/habanalabs/hl<n>/engines
130Date:           Jul 2019
131KernelVersion:  5.3
132Contact:        ogabbay@kernel.org
133Description:    Displays the status registers values of the device engines and
134                their derived idle status
135
136What:           /sys/kernel/debug/habanalabs/hl<n>/i2c_addr
137Date:           Jan 2019
138KernelVersion:  5.1
139Contact:        ogabbay@kernel.org
140Description:    Sets I2C device address for I2C transaction that is generated
141                by the device's CPU
142
143What:           /sys/kernel/debug/habanalabs/hl<n>/i2c_bus
144Date:           Jan 2019
145KernelVersion:  5.1
146Contact:        ogabbay@kernel.org
147Description:    Sets I2C bus address for I2C transaction that is generated by
148                the device's CPU
149
150What:           /sys/kernel/debug/habanalabs/hl<n>/i2c_data
151Date:           Jan 2019
152KernelVersion:  5.1
153Contact:        ogabbay@kernel.org
154Description:    Triggers an I2C transaction that is generated by the device's
155                CPU. Writing to this file generates a write transaction while
156                reading from the file generates a read transaction
157
158What:           /sys/kernel/debug/habanalabs/hl<n>/i2c_len
159Date:           Dec 2021
160KernelVersion:  5.17
161Contact:        obitton@habana.ai
162Description:    Sets I2C length in bytes for I2C transaction that is generated by
163                the device's CPU
164
165What:           /sys/kernel/debug/habanalabs/hl<n>/i2c_reg
166Date:           Jan 2019
167KernelVersion:  5.1
168Contact:        ogabbay@kernel.org
169Description:    Sets I2C register id for I2C transaction that is generated by
170                the device's CPU
171
172What:           /sys/kernel/debug/habanalabs/hl<n>/led0
173Date:           Jan 2019
174KernelVersion:  5.1
175Contact:        ogabbay@kernel.org
176Description:    Sets the state of the first S/W led on the device
177
178What:           /sys/kernel/debug/habanalabs/hl<n>/led1
179Date:           Jan 2019
180KernelVersion:  5.1
181Contact:        ogabbay@kernel.org
182Description:    Sets the state of the second S/W led on the device
183
184What:           /sys/kernel/debug/habanalabs/hl<n>/led2
185Date:           Jan 2019
186KernelVersion:  5.1
187Contact:        ogabbay@kernel.org
188Description:    Sets the state of the third S/W led on the device
189
190What:           /sys/kernel/debug/habanalabs/hl<n>/mmu
191Date:           Jan 2019
192KernelVersion:  5.1
193Contact:        ogabbay@kernel.org
194Description:    Displays the hop values and physical address for a given ASID
195                and virtual address. The user should write the ASID and VA into
196                the file and then read the file to get the result.
197                e.g. to display info about VA 0x1000 for ASID 1 you need to do:
198                echo "1 0x1000" > /sys/kernel/debug/habanalabs/hl0/mmu
199
200What:           /sys/kernel/debug/habanalabs/hl<n>/mmu_error
201Date:           Mar 2021
202KernelVersion:  5.12
203Contact:        fkassabri@habana.ai
204Description:    Check and display page fault or access violation mmu errors for
205                all MMUs specified in mmu_cap_mask.
206                e.g. to display error info for MMU hw cap bit 9, you need to do:
207                echo "0x200" > /sys/kernel/debug/habanalabs/hl0/mmu_error
208                cat /sys/kernel/debug/habanalabs/hl0/mmu_error
209
210What:           /sys/kernel/debug/habanalabs/hl<n>/set_power_state
211Date:           Jan 2019
212KernelVersion:  5.1
213Contact:        ogabbay@kernel.org
214Description:    Sets the PCI power state. Valid values are "1" for D0 and "2"
215                for D3Hot
216
217What:           /sys/kernel/debug/habanalabs/hl<n>/skip_reset_on_timeout
218Date:           Jun 2021
219KernelVersion:  5.13
220Contact:        ynudelman@habana.ai
221Description:    Sets the skip reset on timeout option for the device. Value of
222                "0" means device will be reset in case some CS has timed out,
223                otherwise it will not be reset.
224
225What:           /sys/kernel/debug/habanalabs/hl<n>/state_dump
226Date:           Oct 2021
227KernelVersion:  5.15
228Contact:        ynudelman@habana.ai
229Description:    Gets the state dump occurring on a CS timeout or failure.
230                State dump is used for debug and is created each time in case of
231                a problem in a CS execution, before reset.
232                Reading from the node returns the newest state dump available.
233                Writing an integer X discards X state dumps, so that the
234                next read would return X+1-st newest state dump.
235
236What:           /sys/kernel/debug/habanalabs/hl<n>/stop_on_err
237Date:           Mar 2020
238KernelVersion:  5.6
239Contact:        ogabbay@kernel.org
240Description:    Sets the stop-on_error option for the device engines. Value of
241                "0" is for disable, otherwise enable.
242
243What:           /sys/kernel/debug/habanalabs/hl<n>/timeout_locked
244Date:           Sep 2021
245KernelVersion:  5.16
246Contact:        obitton@habana.ai
247Description:    Sets the command submission timeout value in seconds.
248
249What:           /sys/kernel/debug/habanalabs/hl<n>/userptr
250Date:           Jan 2019
251KernelVersion:  5.1
252Contact:        ogabbay@kernel.org
253Description:    Displays a list with information about the currently user
254                pointers (user virtual addresses) that are pinned and mapped
255                to DMA addresses
256
257What:           /sys/kernel/debug/habanalabs/hl<n>/userptr_lookup
258Date:           Aug 2021
259KernelVersion:  5.15
260Contact:        ogabbay@kernel.org
261Description:    Allows to search for specific user pointers (user virtual
262                addresses) that are pinned and mapped to DMA addresses, and see
263                their resolution to the specific dma address.
264
265What:           /sys/kernel/debug/habanalabs/hl<n>/vm
266Date:           Jan 2019
267KernelVersion:  5.1
268Contact:        ogabbay@kernel.org
269Description:    Displays a list with information about all the active virtual
270                address mappings per ASID and all user mappings of HW blocks
271