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