habanalabs: expose only valid debugfs nodes
In case security is enabled on the device, some debugfs nodes will fail. Hence, we do not expose them. Signed-off-by: Ofir Bitton <obitton@habana.ai> Reviewed-by: Oded Gabbay <ogabbay@kernel.org> Signed-off-by: Oded Gabbay <ogabbay@kernel.org>
This commit is contained in:
parent
168fc71857
commit
08f0aa9548
|
@ -130,14 +130,16 @@ Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: ogabbay@kernel.org
|
Contact: ogabbay@kernel.org
|
||||||
Description: Sets I2C device address for I2C transaction that is generated
|
Description: Sets I2C device address for I2C transaction that is generated
|
||||||
by the device's CPU
|
by the device's CPU, Not available when device is loaded with secured
|
||||||
|
firmware
|
||||||
|
|
||||||
What: /sys/kernel/debug/habanalabs/hl<n>/i2c_bus
|
What: /sys/kernel/debug/habanalabs/hl<n>/i2c_bus
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: ogabbay@kernel.org
|
Contact: ogabbay@kernel.org
|
||||||
Description: Sets I2C bus address for I2C transaction that is generated by
|
Description: Sets I2C bus address for I2C transaction that is generated by
|
||||||
the device's CPU
|
the device's CPU, Not available when device is loaded with secured
|
||||||
|
firmware
|
||||||
|
|
||||||
What: /sys/kernel/debug/habanalabs/hl<n>/i2c_data
|
What: /sys/kernel/debug/habanalabs/hl<n>/i2c_data
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
|
@ -145,39 +147,45 @@ KernelVersion: 5.1
|
||||||
Contact: ogabbay@kernel.org
|
Contact: ogabbay@kernel.org
|
||||||
Description: Triggers an I2C transaction that is generated by the device's
|
Description: Triggers an I2C transaction that is generated by the device's
|
||||||
CPU. Writing to this file generates a write transaction while
|
CPU. Writing to this file generates a write transaction while
|
||||||
reading from the file generates a read transaction
|
reading from the file generates a read transaction, Not available
|
||||||
|
when device is loaded with secured firmware
|
||||||
|
|
||||||
What: /sys/kernel/debug/habanalabs/hl<n>/i2c_len
|
What: /sys/kernel/debug/habanalabs/hl<n>/i2c_len
|
||||||
Date: Dec 2021
|
Date: Dec 2021
|
||||||
KernelVersion: 5.17
|
KernelVersion: 5.17
|
||||||
Contact: obitton@habana.ai
|
Contact: obitton@habana.ai
|
||||||
Description: Sets I2C length in bytes for I2C transaction that is generated by
|
Description: Sets I2C length in bytes for I2C transaction that is generated by
|
||||||
the device's CPU
|
the device's CPU, Not available when device is loaded with secured
|
||||||
|
firmware
|
||||||
|
|
||||||
What: /sys/kernel/debug/habanalabs/hl<n>/i2c_reg
|
What: /sys/kernel/debug/habanalabs/hl<n>/i2c_reg
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: ogabbay@kernel.org
|
Contact: ogabbay@kernel.org
|
||||||
Description: Sets I2C register id for I2C transaction that is generated by
|
Description: Sets I2C register id for I2C transaction that is generated by
|
||||||
the device's CPU
|
the device's CPU, Not available when device is loaded with secured
|
||||||
|
firmware
|
||||||
|
|
||||||
What: /sys/kernel/debug/habanalabs/hl<n>/led0
|
What: /sys/kernel/debug/habanalabs/hl<n>/led0
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: ogabbay@kernel.org
|
Contact: ogabbay@kernel.org
|
||||||
Description: Sets the state of the first S/W led on the device
|
Description: Sets the state of the first S/W led on the device, Not available
|
||||||
|
when device is loaded with secured firmware
|
||||||
|
|
||||||
What: /sys/kernel/debug/habanalabs/hl<n>/led1
|
What: /sys/kernel/debug/habanalabs/hl<n>/led1
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: ogabbay@kernel.org
|
Contact: ogabbay@kernel.org
|
||||||
Description: Sets the state of the second S/W led on the device
|
Description: Sets the state of the second S/W led on the device, Not available
|
||||||
|
when device is loaded with secured firmware
|
||||||
|
|
||||||
What: /sys/kernel/debug/habanalabs/hl<n>/led2
|
What: /sys/kernel/debug/habanalabs/hl<n>/led2
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: ogabbay@kernel.org
|
Contact: ogabbay@kernel.org
|
||||||
Description: Sets the state of the third S/W led on the device
|
Description: Sets the state of the third S/W led on the device, Not available
|
||||||
|
when device is loaded with secured firmware
|
||||||
|
|
||||||
What: /sys/kernel/debug/habanalabs/hl<n>/memory_scrub
|
What: /sys/kernel/debug/habanalabs/hl<n>/memory_scrub
|
||||||
Date: May 2022
|
Date: May 2022
|
||||||
|
|
|
@ -1562,6 +1562,53 @@ static const struct file_operations hl_debugfs_fops = {
|
||||||
.release = single_release,
|
.release = single_release,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static void add_secured_nodes(struct hl_dbg_device_entry *dev_entry)
|
||||||
|
{
|
||||||
|
debugfs_create_u8("i2c_bus",
|
||||||
|
0644,
|
||||||
|
dev_entry->root,
|
||||||
|
&dev_entry->i2c_bus);
|
||||||
|
|
||||||
|
debugfs_create_u8("i2c_addr",
|
||||||
|
0644,
|
||||||
|
dev_entry->root,
|
||||||
|
&dev_entry->i2c_addr);
|
||||||
|
|
||||||
|
debugfs_create_u8("i2c_reg",
|
||||||
|
0644,
|
||||||
|
dev_entry->root,
|
||||||
|
&dev_entry->i2c_reg);
|
||||||
|
|
||||||
|
debugfs_create_u8("i2c_len",
|
||||||
|
0644,
|
||||||
|
dev_entry->root,
|
||||||
|
&dev_entry->i2c_len);
|
||||||
|
|
||||||
|
debugfs_create_file("i2c_data",
|
||||||
|
0644,
|
||||||
|
dev_entry->root,
|
||||||
|
dev_entry,
|
||||||
|
&hl_i2c_data_fops);
|
||||||
|
|
||||||
|
debugfs_create_file("led0",
|
||||||
|
0200,
|
||||||
|
dev_entry->root,
|
||||||
|
dev_entry,
|
||||||
|
&hl_led0_fops);
|
||||||
|
|
||||||
|
debugfs_create_file("led1",
|
||||||
|
0200,
|
||||||
|
dev_entry->root,
|
||||||
|
dev_entry,
|
||||||
|
&hl_led1_fops);
|
||||||
|
|
||||||
|
debugfs_create_file("led2",
|
||||||
|
0200,
|
||||||
|
dev_entry->root,
|
||||||
|
dev_entry,
|
||||||
|
&hl_led2_fops);
|
||||||
|
}
|
||||||
|
|
||||||
void hl_debugfs_add_device(struct hl_device *hdev)
|
void hl_debugfs_add_device(struct hl_device *hdev)
|
||||||
{
|
{
|
||||||
struct hl_dbg_device_entry *dev_entry = &hdev->hl_debugfs;
|
struct hl_dbg_device_entry *dev_entry = &hdev->hl_debugfs;
|
||||||
|
@ -1632,50 +1679,6 @@ void hl_debugfs_add_device(struct hl_device *hdev)
|
||||||
dev_entry,
|
dev_entry,
|
||||||
&hl_power_fops);
|
&hl_power_fops);
|
||||||
|
|
||||||
debugfs_create_u8("i2c_bus",
|
|
||||||
0644,
|
|
||||||
dev_entry->root,
|
|
||||||
&dev_entry->i2c_bus);
|
|
||||||
|
|
||||||
debugfs_create_u8("i2c_addr",
|
|
||||||
0644,
|
|
||||||
dev_entry->root,
|
|
||||||
&dev_entry->i2c_addr);
|
|
||||||
|
|
||||||
debugfs_create_u8("i2c_reg",
|
|
||||||
0644,
|
|
||||||
dev_entry->root,
|
|
||||||
&dev_entry->i2c_reg);
|
|
||||||
|
|
||||||
debugfs_create_u8("i2c_len",
|
|
||||||
0644,
|
|
||||||
dev_entry->root,
|
|
||||||
&dev_entry->i2c_len);
|
|
||||||
|
|
||||||
debugfs_create_file("i2c_data",
|
|
||||||
0644,
|
|
||||||
dev_entry->root,
|
|
||||||
dev_entry,
|
|
||||||
&hl_i2c_data_fops);
|
|
||||||
|
|
||||||
debugfs_create_file("led0",
|
|
||||||
0200,
|
|
||||||
dev_entry->root,
|
|
||||||
dev_entry,
|
|
||||||
&hl_led0_fops);
|
|
||||||
|
|
||||||
debugfs_create_file("led1",
|
|
||||||
0200,
|
|
||||||
dev_entry->root,
|
|
||||||
dev_entry,
|
|
||||||
&hl_led1_fops);
|
|
||||||
|
|
||||||
debugfs_create_file("led2",
|
|
||||||
0200,
|
|
||||||
dev_entry->root,
|
|
||||||
dev_entry,
|
|
||||||
&hl_led2_fops);
|
|
||||||
|
|
||||||
debugfs_create_file("device",
|
debugfs_create_file("device",
|
||||||
0200,
|
0200,
|
||||||
dev_entry->root,
|
dev_entry->root,
|
||||||
|
@ -1754,6 +1757,9 @@ void hl_debugfs_add_device(struct hl_device *hdev)
|
||||||
entry->info_ent = &hl_debugfs_list[i];
|
entry->info_ent = &hl_debugfs_list[i];
|
||||||
entry->dev_entry = dev_entry;
|
entry->dev_entry = dev_entry;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!hdev->asic_prop.fw_security_enabled)
|
||||||
|
add_secured_nodes(dev_entry);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hl_debugfs_remove_device(struct hl_device *hdev)
|
void hl_debugfs_remove_device(struct hl_device *hdev)
|
||||||
|
|
Loading…
Reference in New Issue