[PATCH V5 for-next 00/21] Broadcom RoCE Driver (bnxt_re)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This series introduces the RoCE driver for the Broadcom
NetXtreme-E 10/25/40/50G RoCE HCAs.
This driver is dependent on the bnxt_en NIC driver and is
based on the for-4.11 branch in linux-rdma repository.
bnxt_en changes required for this patch series are already
available afore mentioned branch.

These changes are available for your reference in
the bnxt_re_v5 branch of following repository.
https://github.com/Broadcom/linux-rdma-nxt/

Doug,
This patchset addresses review comments from you and Leon.
This series also includes some changes required for the latest FW.
Please consider applying this to linux-rdma tree.

Thanks,
Selvin Xavier

v4->v5:
  * Removes rdev ref_count as this is not necessary. 
  * Adds a check to see if the device is supporting RoCE
  * Updating the PF FW communication channel offset as per
    the latest FW changes
  * Use min_t macro to calculate the number CQ and QP entries
  * Adds ib_udata parameter to create_ah verb
  * Uses ETH_P_IBOE macro for RoCE ethertype
  * Code refactoring based on the review comments from Leon

v3->v4:
  * Changes driver folder name to bnxt_re and remove the bnxt_re/bnxt
    prefix from the individual files inside the driver folder.
  * Changes the file name bnxtre-abi to bnxt_re-abi.h to align with
    convention <module_name>-abi.h
  * Updates the Makefile and Kconfig file with new format change.

v2->v3:
  * Fix 0day build breakage
  * Fix cocci, kbuild robot, sparse, smatch and checkpatch warnings
  * Changed the filename bnxt_re_uverbs_abi.h  to bnxtre-abi.h
  * Removed the __packed qualifier from the uverbs structure and adjusted
    the structure alignment to 64bits.
  * Added retry count to bail out in case of delayed or no response
    to FW commands
  * Removed the debugfs support from this patch series
  * Changed some of the defines as inline functions based on Jason's comment
  * Split two functions to get rid of switch within switch construct
  * Removed bnxt_re_copy_to_udata as it is just a wrapper for ib_copy_to_udata
  * Added maintainers information to MAINTAINERS file

v1-> v2:
  * The license text in each file updated to reflect Dual license.
  * Makefile and Kconfig changes are pushed to the last patch
  * Moved bnxt_re_uverbs_abi.h to include/uapi/rdma folder
  * Remove duplicate structure definitions from bnxt_re_hsi.h as
    it is available in the corresponding bnxt_en header file (bnxt_hsi.h)
  * Removed some unused code reported during code review.
  * Fixed few sparse warnings

Selvin Xavier (21):
  RDMA/bnxt_re: Add bnxt_re RoCE driver files
  RDMA/bnxt_re: Introducing autogenerated Host Software Interface(hsi)
    file
  RDMA/bnxt_re: register with the NIC driver
  RDMA/bnxt_re: Enabling RoCE control path
  RDMA/bnxt_re: Adding Notification Queue support
  RDMA/bnxt_re: Support for PD, ucontext and mmap verbs
  RDMA/bnxt_re: Support for query and modify device verbs
  RDMA/bnxt_re: Adding support for port related verbs
  RDMA/bnxt_re: Support for GID related verbs
  RDMA/bnxt_re: Support for CQ verbs
  RDMA/bnxt_re: Support for AH verbs
  RDMA/bnxt_re: Support memory registration verbs
  RDMA/bnxt_re: Support QP verbs
  RDMA/bnxt_re: Support post_send verb
  RDMA/bnxt_re: Support post_recv
  RDMA/bnxt_re: Support poll_cq verb
  RDMA/bnxt_re: Handling dispatching of events to IB stack
  RDMA/bnxt_re: Support for DCB
  RDMA/bnxt_re: Set uverbs command mask
  RDMA/bnxt_re: Add QP event handling
  RDMA/bnxt_re: Add bnxt_re driver build support

 MAINTAINERS                                |   11 +
 drivers/infiniband/Kconfig                 |    2 +
 drivers/infiniband/hw/Makefile             |    1 +
 drivers/infiniband/hw/bnxt_re/Kconfig      |    9 +
 drivers/infiniband/hw/bnxt_re/Makefile     |    6 +
 drivers/infiniband/hw/bnxt_re/bnxt_re.h    |  146 ++
 drivers/infiniband/hw/bnxt_re/ib_verbs.c   | 3202 ++++++++++++++++++++++++++++
 drivers/infiniband/hw/bnxt_re/ib_verbs.h   |  197 ++
 drivers/infiniband/hw/bnxt_re/main.c       | 1315 ++++++++++++
 drivers/infiniband/hw/bnxt_re/qplib_fp.c   | 2167 +++++++++++++++++++
 drivers/infiniband/hw/bnxt_re/qplib_fp.h   |  439 ++++
 drivers/infiniband/hw/bnxt_re/qplib_rcfw.c |  694 ++++++
 drivers/infiniband/hw/bnxt_re/qplib_rcfw.h |  231 ++
 drivers/infiniband/hw/bnxt_re/qplib_res.c  |  825 +++++++
 drivers/infiniband/hw/bnxt_re/qplib_res.h  |  223 ++
 drivers/infiniband/hw/bnxt_re/qplib_sp.c   |  838 ++++++++
 drivers/infiniband/hw/bnxt_re/qplib_sp.h   |  160 ++
 drivers/infiniband/hw/bnxt_re/roce_hsi.h   | 2821 ++++++++++++++++++++++++
 include/uapi/rdma/bnxt_re-abi.h            |   89 +
 19 files changed, 13376 insertions(+)
 create mode 100644 drivers/infiniband/hw/bnxt_re/Kconfig
 create mode 100644 drivers/infiniband/hw/bnxt_re/Makefile
 create mode 100644 drivers/infiniband/hw/bnxt_re/bnxt_re.h
 create mode 100644 drivers/infiniband/hw/bnxt_re/ib_verbs.c
 create mode 100644 drivers/infiniband/hw/bnxt_re/ib_verbs.h
 create mode 100644 drivers/infiniband/hw/bnxt_re/main.c
 create mode 100644 drivers/infiniband/hw/bnxt_re/qplib_fp.c
 create mode 100644 drivers/infiniband/hw/bnxt_re/qplib_fp.h
 create mode 100644 drivers/infiniband/hw/bnxt_re/qplib_rcfw.c
 create mode 100644 drivers/infiniband/hw/bnxt_re/qplib_rcfw.h
 create mode 100644 drivers/infiniband/hw/bnxt_re/qplib_res.c
 create mode 100644 drivers/infiniband/hw/bnxt_re/qplib_res.h
 create mode 100644 drivers/infiniband/hw/bnxt_re/qplib_sp.c
 create mode 100644 drivers/infiniband/hw/bnxt_re/qplib_sp.h
 create mode 100644 drivers/infiniband/hw/bnxt_re/roce_hsi.h
 create mode 100644 include/uapi/rdma/bnxt_re-abi.h

-- 
2.5.5

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux