Re: [PATCH v4] PCI: hotplug: Add OCTEON PCI hotplug controller driver
From: Shijith Thotton
Date: Tue Nov 12 2024 - 04:26:24 EST
>> This patch introduces a PCI hotplug controller driver for the OCTEON
>> PCIe device. The OCTEON PCIe device is a multi-function device where the
>> first function serves as the PCI hotplug controller.
>>
>> +--------------------------------+
>> | Root Port |
>> +--------------------------------+
>> |
>> PCIe
>> |
>> +---------------------------------------------------------------+
>> | OCTEON PCIe Multifunction Device |
>> +---------------------------------------------------------------+
>> | | | |
>> | | | |
>> +---------------------+ +----------------+ +-----+ +----------------+
>> | Function 0 | | Function 1 | | ... | | Function 7 |
>> | (Hotplug controller)| | (Hotplug slot) | | | | (Hotplug slot) |
>> +---------------------+ +----------------+ +-----+ +----------------+
>> |
>> |
>> +-------------------------+
>> | Controller Firmware |
>> +-------------------------+
>>
>> The hotplug controller driver enables hotplugging of non-controller
>> functions within the same device. During probing, the driver removes
>> the non-controller functions and registers them as PCI hotplug slots.
>> These slots are added back by the driver, only upon request from the
>> device firmware.
>>
>> The controller uses MSI-X interrupts to notify the host of hotplug
>> events initiated by the OCTEON firmware. Additionally, the driver
>> allows users to enable or disable individual functions via sysfs slot
>> entries, as provided by the PCI hotplug framework.
>
>Can we say something here about what the benefit of this driver is?
>For example, does it save power?
The driver enables hotplugging of non-controller functions within the device
without requiring a fully implemented switch, reducing both power consumption
and product cost.
>What causes the function 0 firmware to request a hot-add or
>hot-removal of another function?
The firmware will enable the required number of non-controller functions based
on runtime demand, allowing control over these functions. For example, in a
vDPA scenario, each function could act as a different type of device (such as
net, crypto, or storage) depending on the firmware configuration.
Hot removal is useful in cases of live firmware updates.
I will update the commit log with above details.
Thanks,
Shijith