forked from Minki/linux
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
|
||||
Contact: ogabbay@kernel.org
|
||||
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
|
||||
Date: Jan 2019
|
||||
KernelVersion: 5.1
|
||||
Contact: ogabbay@kernel.org
|
||||
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
|
||||
Date: Jan 2019
|
||||
@ -145,39 +147,45 @@ KernelVersion: 5.1
|
||||
Contact: ogabbay@kernel.org
|
||||
Description: Triggers an I2C transaction that is generated by the device's
|
||||
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
|
||||
Date: Dec 2021
|
||||
KernelVersion: 5.17
|
||||
Contact: obitton@habana.ai
|
||||
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
|
||||
Date: Jan 2019
|
||||
KernelVersion: 5.1
|
||||
Contact: ogabbay@kernel.org
|
||||
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
|
||||
Date: Jan 2019
|
||||
KernelVersion: 5.1
|
||||
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
|
||||
Date: Jan 2019
|
||||
KernelVersion: 5.1
|
||||
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
|
||||
Date: Jan 2019
|
||||
KernelVersion: 5.1
|
||||
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
|
||||
Date: May 2022
|
||||
|
@ -1562,6 +1562,53 @@ static const struct file_operations hl_debugfs_fops = {
|
||||
.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)
|
||||
{
|
||||
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,
|
||||
&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",
|
||||
0200,
|
||||
dev_entry->root,
|
||||
@ -1754,6 +1757,9 @@ void hl_debugfs_add_device(struct hl_device *hdev)
|
||||
entry->info_ent = &hl_debugfs_list[i];
|
||||
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)
|
||||
|
Loading…
Reference in New Issue
Block a user