Message ID | 20200328031448.50794-1-snelson@pensando.io |
---|---|
Headers | show |
Series | ionic support for firmware upgrade | expand |
From: Shannon Nelson <snelson@pensando.io> Date: Fri, 27 Mar 2020 20:14:40 -0700 > The Pensando Distributed Services Card can get firmware upgrades from > the off-host centralized management suite, and can be upgraded without a > host reboot or driver reload. This patchset sets up the support for fw > upgrade in the Linux driver. > > When the upgrade begins, the DSC first brings the link down, then stops > the firmware. The driver will notice this and quiesce itself by stopping > the queues and releasing DMA resources, then monitoring for firmware to > start back up. When the upgrade is finished the firmware is restarted > and link is brought up, and the driver rebuilds the queues and restarts > traffic flow. > > First we separate the Link state from the netdev state, then reorganize a > few things to prepare for partial tear-down of the queues. Next we fix > up the state machine so that we take the Tx and Rx queues down and back > up when we get LINK_DOWN and LINK_UP events. Lastly, we add handling of > the FW reset itself by tearing down the lif internals and rebuilding them > with the new FW setup. > > v2: This changes the design from (ab)using the full .ndo_stop and > .ndo_open routines to getting a better separation between the > alloc and the init functions so that we can keep our resource > allocations as long as possible. Series applied, thank you.