PR: 236886
Diff Detail
- Lint
Lint Passed - Unit
No Test Coverage - Build Status
Buildable 23386 Build 22404: arc lint + arc unit
Event Timeline
jhb specifically asked me not to do this driver. Please be sure to get sign off from him.
Note, that automatic loading for cxgbe can do unexpected firmware update when user does first boot.
It's really @np who should sign off on this. I can blacklist the driver on my dev boxes since since there's now an rc.conf variable to exempt drivers from devmatch which would be sufficient for my needs.
Yep, I agree, and that's what I've been holding off for.
If people perceive the auto-upgrading of firmware as deleterious, maybe that's an indication of a feature that should be disabled? It could always be made a tunable to give users the option to opt in? It's not my driver -- I think np@ gets to make that call.
We have single machine, that after automatic firmware upgrade fails to attache the driver:
t5nex0: <Chelsio T580-LP-SO-CR> mem 0xfb300000-0xfb37ffff,0xfa000000-0xfaffffff,0xfb984000-0xfb985fff irq 64 at device 0.4 numa-domain 1 on pci9 t5nex0: firmware on card (1.16.63.0) is older than the version bundled with this driver, installing firmware 1.19.1.0 on card. t5nex0: fw init failed: 5. t5nex0: error during attach, adapter is now in recovery mode. device_attach: est5 attach returned 6
t5nex0: <Chelsio T580-LP-SO-CR> mem 0xfb300000-0xfb37ffff,0xfa000000-0xfaffffff,0xfb984000-0xfb985fff irq 64 at device 0.4 numa-domain 1 on pci9 t5nex0: firmware on card (1.19.1.0) is older than the version bundled with this driver, installing firmware 1.23.0.0 on card. t5nex0: fw init failed: 5. t5nex0: error during attach, adapter is now in recovery mode.
t5nex0: <Chelsio T580-LP-SO-CR> mem 0xfb300000-0xfb37ffff,0xfa000000-0xfaffffff,0xfb984000-0xfb985fff irq 64 at device 0.4 numa-domain 1 on pci9 t5nex0: failed to connect to the firmware: 16, 963208048. t5nex0: error during attach, adapter is now in recovery mode.
So, it can be dangerous...
Ok, that seems like maybe a misfeature in cxgbe :-(. I won't commit this with that unresolved (or without np@'s approval).
There's an tunable hw.cxgbe.fw_install which is default to 1 .
hw.cxgbe.fw_install 0 prohibits the driver from installing a firmware on the card. 1 allows the driver to install a new firmware if internal driver heuristics indicate that the new firmware is preferable to the one already on the card. 2 instructs the driver to always install the new firmware on the card as long as it is compatible with the driver and is a different version than the one already on the card. The default is 1.
Is it better to set it default to 0, and then enable PNP PCIID-based autoload ?