fwctl/bnxt: Add DMA buffer support for HWRM commandsSeveral HWRM commands carry __le64 DMA address fields in their inputstructures; firmware reads from or writes to the memory those addressespoin
fwctl/bnxt: Add DMA buffer support for HWRM commandsSeveral HWRM commands carry __le64 DMA address fields in their inputstructures; firmware reads from or writes to the memory those addressespoint to.Have a static per-command descriptor table in the driver that recordsthe details of the DMA fields in each supported HWRM input struct. Whena DMA-bearing HWRM command arrives, the driver reads the userspacepointer out of each declared address field and clears the field, allocatesa DMA-coherent kernel buffer sized from the command's own lengthinformation, copies data to/from the userspace pointer, and patches thefield with the real DMA bus address before the command is sent to firmware.Responses are copied back to the original userspace pointer afterward.Scope-gated allow-list and timeout value list are updated with the newthe commands.Signed-off-by: Pavan Chebbi <pavan.chebbi@broadcom.com>Link: https://patch.msgid.link/20260807125846.45570-3-pavan.chebbi@broadcom.comSigned-off-by: Jason Gunthorpe <jgg@nvidia.com>
show more ...
fwctl/bnxt_fwctl: Add bnxt fwctl deviceCreate bnxt_fwctl device. This will bind to bnxt's aux device.On the upper edge, it will register with the fwctl subsystem.It will make use of bnxt's ULP fu
fwctl/bnxt_fwctl: Add bnxt fwctl deviceCreate bnxt_fwctl device. This will bind to bnxt's aux device.On the upper edge, it will register with the fwctl subsystem.It will make use of bnxt's ULP functions to send FW commands.Link: https://patch.msgid.link/r/20260314151605.932749-5-pavan.chebbi@broadcom.comReviewed-by: Andy Gospodarek <gospo@broadcom.com>Reviewed-by: Dave Jiang <dave.jiang@intel.com>Signed-off-by: Pavan Chebbi <pavan.chebbi@broadcom.com>Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>