mbox series

[00/11] opencapi: enable card reset and link retraining

Message ID 20190909154600.19917-1-fbarrat@linux.ibm.com (mailing list archive)
Headers show
Series opencapi: enable card reset and link retraining | expand

Message

Frederic Barrat Sept. 9, 2019, 3:45 p.m. UTC
This is the linux part of the work to use the PCI hotplug framework to
control an opencapi card so that it can be reset and re-read after
flashing a new FPGA image. I had posted it earlier as an RFC and this
version is mostly similar, with just some minor editing.

It needs support in skiboot:
http://patchwork.ozlabs.org/project/skiboot/list/?series=129724
On an old skiboot, it will do nothing.

A virtual PCI slot is created for the opencapi adapter, and its state
can be controlled through the pnv-php hotplug driver:

  echo 0|1 > /sys/bus/pci/slots/OPENCAPI-<...>/power

Note that the power to the card is not really turned off, as the card
needs to stay on to be flashed with a new image. Instead the card is
in reset.

The first part of the series mostly deals with the pci/ioda state, as
the opencapi devices can now go away and the state needs to be cleaned
up.

The second part is modifications to the PCI hotplug driver on powernv,
so that a virtual slot is created for the opencapi adapters found in
the device tree.



Frederic Barrat (11):
  powerpc/powernv/ioda: Fix ref count for devices with their own PE
  powerpc/powernv/ioda: Protect PE list
  powerpc/powernv/ioda: set up PE on opencapi device when enabling
  powerpc/powernv/ioda: Release opencapi device
  powerpc/powernv/ioda: Find opencapi slot for a device node
  pci/hotplug/pnv-php: Remove erroneous warning
  pci/hotplug/pnv-php: Improve error msg on power state change failure
  pci/hotplug/pnv-php: Register opencapi slots
  pci/hotplug/pnv-php: Relax check when disabling slot
  pci/hotplug/pnv-php: Wrap warnings in macro
  ocxl: Add PCI hotplug dependency to Kconfig

 arch/powerpc/include/asm/pnv-pci.h        |   1 +
 arch/powerpc/platforms/powernv/pci-ioda.c | 107 ++++++++++++++--------
 arch/powerpc/platforms/powernv/pci.c      |  10 +-
 drivers/misc/ocxl/Kconfig                 |   1 +
 drivers/pci/hotplug/pnv_php.c             |  82 ++++++++++-------
 5 files changed, 125 insertions(+), 76 deletions(-)

Comments

Alexey Kardashevskiy Sept. 24, 2019, 4:24 a.m. UTC | #1
Hi Fred,

what is this made against of? It does not apply on the master. Thanks,


On 10/09/2019 01:45, Frederic Barrat wrote:
> This is the linux part of the work to use the PCI hotplug framework to
> control an opencapi card so that it can be reset and re-read after
> flashing a new FPGA image. I had posted it earlier as an RFC and this
> version is mostly similar, with just some minor editing.
> 
> It needs support in skiboot:
> http://patchwork.ozlabs.org/project/skiboot/list/?series=129724
> On an old skiboot, it will do nothing.
> 
> A virtual PCI slot is created for the opencapi adapter, and its state
> can be controlled through the pnv-php hotplug driver:
> 
>   echo 0|1 > /sys/bus/pci/slots/OPENCAPI-<...>/power
> 
> Note that the power to the card is not really turned off, as the card
> needs to stay on to be flashed with a new image. Instead the card is
> in reset.
> 
> The first part of the series mostly deals with the pci/ioda state, as
> the opencapi devices can now go away and the state needs to be cleaned
> up.
> 
> The second part is modifications to the PCI hotplug driver on powernv,
> so that a virtual slot is created for the opencapi adapters found in
> the device tree.
> 
> 
> 
> Frederic Barrat (11):
>   powerpc/powernv/ioda: Fix ref count for devices with their own PE
>   powerpc/powernv/ioda: Protect PE list
>   powerpc/powernv/ioda: set up PE on opencapi device when enabling
>   powerpc/powernv/ioda: Release opencapi device
>   powerpc/powernv/ioda: Find opencapi slot for a device node
>   pci/hotplug/pnv-php: Remove erroneous warning
>   pci/hotplug/pnv-php: Improve error msg on power state change failure
>   pci/hotplug/pnv-php: Register opencapi slots
>   pci/hotplug/pnv-php: Relax check when disabling slot
>   pci/hotplug/pnv-php: Wrap warnings in macro
>   ocxl: Add PCI hotplug dependency to Kconfig
> 
>  arch/powerpc/include/asm/pnv-pci.h        |   1 +
>  arch/powerpc/platforms/powernv/pci-ioda.c | 107 ++++++++++++++--------
>  arch/powerpc/platforms/powernv/pci.c      |  10 +-
>  drivers/misc/ocxl/Kconfig                 |   1 +
>  drivers/pci/hotplug/pnv_php.c             |  82 ++++++++++-------
>  5 files changed, 125 insertions(+), 76 deletions(-)
>
Frederic Barrat Sept. 24, 2019, 6:39 a.m. UTC | #2
Le 24/09/2019 à 06:24, Alexey Kardashevskiy a écrit :
> Hi Fred,
> 
> what is this made against of? It does not apply on the master. Thanks,

It applies on v5.3. And I can see there's a conflict with the current 
state in the merge window. I'll resubmit.

   Fred



> On 10/09/2019 01:45, Frederic Barrat wrote:
>> This is the linux part of the work to use the PCI hotplug framework to
>> control an opencapi card so that it can be reset and re-read after
>> flashing a new FPGA image. I had posted it earlier as an RFC and this
>> version is mostly similar, with just some minor editing.
>>
>> It needs support in skiboot:
>> http://patchwork.ozlabs.org/project/skiboot/list/?series=129724
>> On an old skiboot, it will do nothing.
>>
>> A virtual PCI slot is created for the opencapi adapter, and its state
>> can be controlled through the pnv-php hotplug driver:
>>
>>    echo 0|1 > /sys/bus/pci/slots/OPENCAPI-<...>/power
>>
>> Note that the power to the card is not really turned off, as the card
>> needs to stay on to be flashed with a new image. Instead the card is
>> in reset.
>>
>> The first part of the series mostly deals with the pci/ioda state, as
>> the opencapi devices can now go away and the state needs to be cleaned
>> up.
>>
>> The second part is modifications to the PCI hotplug driver on powernv,
>> so that a virtual slot is created for the opencapi adapters found in
>> the device tree.
>>
>>
>>
>> Frederic Barrat (11):
>>    powerpc/powernv/ioda: Fix ref count for devices with their own PE
>>    powerpc/powernv/ioda: Protect PE list
>>    powerpc/powernv/ioda: set up PE on opencapi device when enabling
>>    powerpc/powernv/ioda: Release opencapi device
>>    powerpc/powernv/ioda: Find opencapi slot for a device node
>>    pci/hotplug/pnv-php: Remove erroneous warning
>>    pci/hotplug/pnv-php: Improve error msg on power state change failure
>>    pci/hotplug/pnv-php: Register opencapi slots
>>    pci/hotplug/pnv-php: Relax check when disabling slot
>>    pci/hotplug/pnv-php: Wrap warnings in macro
>>    ocxl: Add PCI hotplug dependency to Kconfig
>>
>>   arch/powerpc/include/asm/pnv-pci.h        |   1 +
>>   arch/powerpc/platforms/powernv/pci-ioda.c | 107 ++++++++++++++--------
>>   arch/powerpc/platforms/powernv/pci.c      |  10 +-
>>   drivers/misc/ocxl/Kconfig                 |   1 +
>>   drivers/pci/hotplug/pnv_php.c             |  82 ++++++++++-------
>>   5 files changed, 125 insertions(+), 76 deletions(-)
>>
>
Alexey Kardashevskiy Sept. 25, 2019, 12:20 a.m. UTC | #3
On 24/09/2019 16:39, Frederic Barrat wrote:
> 
> 
> Le 24/09/2019 à 06:24, Alexey Kardashevskiy a écrit :
>> Hi Fred,
>>
>> what is this made against of? It does not apply on the master. Thanks,
> 
> It applies on v5.3. And I can see there's a conflict with the current
> state in the merge window. I'll resubmit.


Not really necessary, just mention the exact sha1 or tag in the cover
letter next time. Thanks,



> 
>   Fred
> 
> 
> 
>> On 10/09/2019 01:45, Frederic Barrat wrote:
>>> This is the linux part of the work to use the PCI hotplug framework to
>>> control an opencapi card so that it can be reset and re-read after
>>> flashing a new FPGA image. I had posted it earlier as an RFC and this
>>> version is mostly similar, with just some minor editing.
>>>
>>> It needs support in skiboot:
>>> http://patchwork.ozlabs.org/project/skiboot/list/?series=129724
>>> On an old skiboot, it will do nothing.
>>>
>>> A virtual PCI slot is created for the opencapi adapter, and its state
>>> can be controlled through the pnv-php hotplug driver:
>>>
>>>    echo 0|1 > /sys/bus/pci/slots/OPENCAPI-<...>/power
>>>
>>> Note that the power to the card is not really turned off, as the card
>>> needs to stay on to be flashed with a new image. Instead the card is
>>> in reset.
>>>
>>> The first part of the series mostly deals with the pci/ioda state, as
>>> the opencapi devices can now go away and the state needs to be cleaned
>>> up.
>>>
>>> The second part is modifications to the PCI hotplug driver on powernv,
>>> so that a virtual slot is created for the opencapi adapters found in
>>> the device tree.
>>>
>>>
>>>
>>> Frederic Barrat (11):
>>>    powerpc/powernv/ioda: Fix ref count for devices with their own PE
>>>    powerpc/powernv/ioda: Protect PE list
>>>    powerpc/powernv/ioda: set up PE on opencapi device when enabling
>>>    powerpc/powernv/ioda: Release opencapi device
>>>    powerpc/powernv/ioda: Find opencapi slot for a device node
>>>    pci/hotplug/pnv-php: Remove erroneous warning
>>>    pci/hotplug/pnv-php: Improve error msg on power state change failure
>>>    pci/hotplug/pnv-php: Register opencapi slots
>>>    pci/hotplug/pnv-php: Relax check when disabling slot
>>>    pci/hotplug/pnv-php: Wrap warnings in macro
>>>    ocxl: Add PCI hotplug dependency to Kconfig
>>>
>>>   arch/powerpc/include/asm/pnv-pci.h        |   1 +
>>>   arch/powerpc/platforms/powernv/pci-ioda.c | 107 ++++++++++++++--------
>>>   arch/powerpc/platforms/powernv/pci.c      |  10 +-
>>>   drivers/misc/ocxl/Kconfig                 |   1 +
>>>   drivers/pci/hotplug/pnv_php.c             |  82 ++++++++++-------
>>>   5 files changed, 125 insertions(+), 76 deletions(-)
>>>
>>
>