From: James Smart <jsmart2021@gmail.com>
To: linux-scsi@vger.kernel.org
Cc: James Smart <jsmart2021@gmail.com>
Subject: [PATCH 00/32] [NEW] efct: Broadcom (Emulex) FC Target driver
Date: Wed, 23 Oct 2019 14:55:25 -0700 [thread overview]
Message-ID: <20191023215557.12581-1-jsmart2021@gmail.com> (raw)
This patch set is a request to incorporate the new Broadcom
(Emulex) FC target driver, efct, into the kernel source tree.
The driver source has been Announced a couple of times, the last
version on 12/18/2018. The driver has been hosted on gitlab for
review has had contributions from the community.
gitlab (git@gitlab.com:jsmart/efct-Emulex_FC_Target.git)
The driver integrates into the source tree at the (new) drivers/scsi/elx
subdirectory.
The driver consists of the following components:
- A libefc_sli subdirectory: This subdirectory contains a library that
encapsulates common definitions and routines for an Emulex SLI-4
adapter.
- A libefc subdirectory: This subdirectory contains a library of
common routines. Of major import is a number of routines that
implement a FC Discovery engine for target mode.
- An efct subdirectory: This subdirectory contains the efct target
mode device driver. The driver utilizes the above librarys and
plugs into the SCSI LIO interfaces. The driver is SCSI only at
this time.
The patches populate the libraries and device driver and can only
be compiled as a complete set.
This driver is completely independent from the lpfc device driver
and there is no overlap on PCI ID's.
The patches have been cut against the 5.5/scsi-queue branch.
Thank you to those that have contributed to the driver in the past.
Review comments welcome!
-- james
James Smart (32):
elx: libefc_sli: SLI-4 register offsets and field definitions
elx: libefc_sli: SLI Descriptors and Queue entries
elx: libefc_sli: Data structures and defines for mbox commands
elx: libefc_sli: queue create/destroy/parse routines
elx: libefc_sli: Populate and post different WQEs
elx: libefc_sli: bmbx routines and SLI config commands
elx: libefc_sli: APIs to setup SLI library
elx: libefc: Generic state machine framework
elx: libefc: Emulex FC discovery library APIs and definitions
elx: libefc: FC Domain state machine interfaces
elx: libefc: SLI and FC PORT state machine interfaces
elx: libefc: Remote node state machine interfaces
elx: libefc: Fabric node state machine interfaces
elx: libefc: FC node ELS and state handling
elx: efct: Data structures and defines for hw operations
elx: efct: Driver initialization routines
elx: efct: Hardware queues creation and deletion
elx: efct: RQ buffer, memory pool allocation and deallocation APIs
elx: efct: Hardware IO and SGL initialization
elx: efct: Hardware queues processing
elx: efct: Unsolicited FC frame processing routines
elx: efct: Extended link Service IO handling
elx: efct: SCSI IO handling routines
elx: efct: LIO backend interface routines
elx: efct: Hardware IO submission routines
elx: efct: link statistics and SFP data
elx: efct: xport and hardware teardown routines
elx: efct: IO timeout handling routines
elx: efct: Firmware update, async link processing
elx: efct: scsi_transport_fc host interface support
elx: efct: Add Makefile and Kconfig for efct driver
elx: efct: Tie into kernel Kconfig and build process
MAINTAINERS | 8 +
drivers/scsi/Kconfig | 2 +
drivers/scsi/Makefile | 1 +
drivers/scsi/elx/Kconfig | 8 +
drivers/scsi/elx/Makefile | 30 +
drivers/scsi/elx/efct/efct_driver.c | 1243 +++++
drivers/scsi/elx/efct/efct_driver.h | 154 +
drivers/scsi/elx/efct/efct_els.c | 2676 +++++++++++
drivers/scsi/elx/efct/efct_els.h | 139 +
drivers/scsi/elx/efct/efct_hw.c | 7866 ++++++++++++++++++++++++++++++++
drivers/scsi/elx/efct/efct_hw.h | 1275 ++++++
drivers/scsi/elx/efct/efct_hw_queues.c | 1964 ++++++++
drivers/scsi/elx/efct/efct_hw_queues.h | 66 +
drivers/scsi/elx/efct/efct_io.c | 288 ++
drivers/scsi/elx/efct/efct_io.h | 219 +
drivers/scsi/elx/efct/efct_lio.c | 2643 +++++++++++
drivers/scsi/elx/efct/efct_lio.h | 371 ++
drivers/scsi/elx/efct/efct_scsi.c | 1970 ++++++++
drivers/scsi/elx/efct/efct_scsi.h | 401 ++
drivers/scsi/elx/efct/efct_unsol.c | 1156 +++++
drivers/scsi/elx/efct/efct_unsol.h | 49 +
drivers/scsi/elx/efct/efct_utils.c | 662 +++
drivers/scsi/elx/efct/efct_utils.h | 113 +
drivers/scsi/elx/efct/efct_xport.c | 1728 +++++++
drivers/scsi/elx/efct/efct_xport.h | 216 +
drivers/scsi/elx/include/efc_common.h | 44 +
drivers/scsi/elx/libefc/efc.h | 188 +
drivers/scsi/elx/libefc/efc_device.c | 1977 ++++++++
drivers/scsi/elx/libefc/efc_device.h | 72 +
drivers/scsi/elx/libefc/efc_domain.c | 1393 ++++++
drivers/scsi/elx/libefc/efc_domain.h | 57 +
drivers/scsi/elx/libefc/efc_fabric.c | 2252 +++++++++
drivers/scsi/elx/libefc/efc_fabric.h | 116 +
drivers/scsi/elx/libefc/efc_lib.c | 263 ++
drivers/scsi/elx/libefc/efc_node.c | 1878 ++++++++
drivers/scsi/elx/libefc/efc_node.h | 196 +
drivers/scsi/elx/libefc/efc_sm.c | 275 ++
drivers/scsi/elx/libefc/efc_sm.h | 171 +
drivers/scsi/elx/libefc/efc_sport.c | 1157 +++++
drivers/scsi/elx/libefc/efc_sport.h | 52 +
drivers/scsi/elx/libefc/efclib.h | 796 ++++
drivers/scsi/elx/libefc_sli/sli4.c | 7522 ++++++++++++++++++++++++++++++
drivers/scsi/elx/libefc_sli/sli4.h | 4845 ++++++++++++++++++++
43 files changed, 48502 insertions(+)
create mode 100644 drivers/scsi/elx/Kconfig
create mode 100644 drivers/scsi/elx/Makefile
create mode 100644 drivers/scsi/elx/efct/efct_driver.c
create mode 100644 drivers/scsi/elx/efct/efct_driver.h
create mode 100644 drivers/scsi/elx/efct/efct_els.c
create mode 100644 drivers/scsi/elx/efct/efct_els.h
create mode 100644 drivers/scsi/elx/efct/efct_hw.c
create mode 100644 drivers/scsi/elx/efct/efct_hw.h
create mode 100644 drivers/scsi/elx/efct/efct_hw_queues.c
create mode 100644 drivers/scsi/elx/efct/efct_hw_queues.h
create mode 100644 drivers/scsi/elx/efct/efct_io.c
create mode 100644 drivers/scsi/elx/efct/efct_io.h
create mode 100644 drivers/scsi/elx/efct/efct_lio.c
create mode 100644 drivers/scsi/elx/efct/efct_lio.h
create mode 100644 drivers/scsi/elx/efct/efct_scsi.c
create mode 100644 drivers/scsi/elx/efct/efct_scsi.h
create mode 100644 drivers/scsi/elx/efct/efct_unsol.c
create mode 100644 drivers/scsi/elx/efct/efct_unsol.h
create mode 100644 drivers/scsi/elx/efct/efct_utils.c
create mode 100644 drivers/scsi/elx/efct/efct_utils.h
create mode 100644 drivers/scsi/elx/efct/efct_xport.c
create mode 100644 drivers/scsi/elx/efct/efct_xport.h
create mode 100644 drivers/scsi/elx/include/efc_common.h
create mode 100644 drivers/scsi/elx/libefc/efc.h
create mode 100644 drivers/scsi/elx/libefc/efc_device.c
create mode 100644 drivers/scsi/elx/libefc/efc_device.h
create mode 100644 drivers/scsi/elx/libefc/efc_domain.c
create mode 100644 drivers/scsi/elx/libefc/efc_domain.h
create mode 100644 drivers/scsi/elx/libefc/efc_fabric.c
create mode 100644 drivers/scsi/elx/libefc/efc_fabric.h
create mode 100644 drivers/scsi/elx/libefc/efc_lib.c
create mode 100644 drivers/scsi/elx/libefc/efc_node.c
create mode 100644 drivers/scsi/elx/libefc/efc_node.h
create mode 100644 drivers/scsi/elx/libefc/efc_sm.c
create mode 100644 drivers/scsi/elx/libefc/efc_sm.h
create mode 100644 drivers/scsi/elx/libefc/efc_sport.c
create mode 100644 drivers/scsi/elx/libefc/efc_sport.h
create mode 100644 drivers/scsi/elx/libefc/efclib.h
create mode 100644 drivers/scsi/elx/libefc_sli/sli4.c
create mode 100644 drivers/scsi/elx/libefc_sli/sli4.h
--
2.13.7
next reply other threads:[~2019-10-23 21:56 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-23 21:55 James Smart [this message]
2019-10-23 21:55 ` [PATCH 01/32] elx: libefc_sli: SLI-4 register offsets and field definitions James Smart
2019-10-24 16:22 ` Daniel Wagner
2019-10-25 23:04 ` James Smart
2019-10-23 21:55 ` [PATCH 02/32] elx: libefc_sli: SLI Descriptors and Queue entries James Smart
2019-10-25 9:59 ` Daniel Wagner
2019-10-25 23:00 ` James Smart
2019-10-23 21:55 ` [PATCH 03/32] elx: libefc_sli: Data structures and defines for mbox commands James Smart
2019-10-25 11:19 ` Daniel Wagner
2019-10-25 12:20 ` Steffen Maier
2019-10-25 22:10 ` James Smart
2019-10-25 22:42 ` James Smart
2019-10-23 21:55 ` [PATCH 04/32] elx: libefc_sli: queue create/destroy/parse routines James Smart
2019-10-25 15:35 ` Daniel Wagner
2019-10-25 22:24 ` James Smart
2019-10-23 21:55 ` [PATCH 05/32] elx: libefc_sli: Populate and post different WQEs James Smart
2019-10-23 21:55 ` [PATCH 06/32] elx: libefc_sli: bmbx routines and SLI config commands James Smart
2019-10-23 21:55 ` [PATCH 07/32] elx: libefc_sli: APIs to setup SLI library James Smart
2019-10-23 21:55 ` [PATCH 08/32] elx: libefc: Generic state machine framework James Smart
2019-10-23 21:55 ` [PATCH 09/32] elx: libefc: Emulex FC discovery library APIs and definitions James Smart
2019-10-23 21:55 ` [PATCH 10/32] elx: libefc: FC Domain state machine interfaces James Smart
2019-10-23 21:55 ` [PATCH 11/32] elx: libefc: SLI and FC PORT " James Smart
2019-10-23 21:55 ` [PATCH 12/32] elx: libefc: Remote node " James Smart
2019-10-23 21:55 ` [PATCH 13/32] elx: libefc: Fabric " James Smart
2019-10-23 21:55 ` [PATCH 14/32] elx: libefc: FC node ELS and state handling James Smart
2019-10-23 21:55 ` [PATCH 15/32] elx: efct: Data structures and defines for hw operations James Smart
2019-10-23 21:55 ` [PATCH 16/32] elx: efct: Driver initialization routines James Smart
2019-10-23 21:55 ` [PATCH 17/32] elx: efct: Hardware queues creation and deletion James Smart
2019-10-23 21:55 ` [PATCH 18/32] elx: efct: RQ buffer, memory pool allocation and deallocation APIs James Smart
2019-10-23 21:55 ` [PATCH 19/32] elx: efct: Hardware IO and SGL initialization James Smart
2019-10-23 21:55 ` [PATCH 20/32] elx: efct: Hardware queues processing James Smart
2019-10-23 21:55 ` [PATCH 21/32] elx: efct: Unsolicited FC frame processing routines James Smart
2019-10-23 21:55 ` [PATCH 22/32] elx: efct: Extended link Service IO handling James Smart
2019-10-23 21:55 ` [PATCH 23/32] elx: efct: SCSI IO handling routines James Smart
2019-10-23 21:55 ` [PATCH 24/32] elx: efct: LIO backend interface routines James Smart
2019-10-24 22:27 ` Bart Van Assche
2019-10-28 17:49 ` James Smart
2019-10-28 18:31 ` Bart Van Assche
2019-10-23 21:55 ` [PATCH 25/32] elx: efct: Hardware IO submission routines James Smart
2019-10-23 21:55 ` [PATCH 26/32] elx: efct: link statistics and SFP data James Smart
2019-10-23 21:55 ` [PATCH 27/32] elx: efct: xport and hardware teardown routines James Smart
2019-10-23 21:55 ` [PATCH 28/32] elx: efct: IO timeout handling routines James Smart
2019-10-23 21:55 ` [PATCH 29/32] elx: efct: Firmware update, async link processing James Smart
2019-10-23 21:55 ` [PATCH 30/32] elx: efct: scsi_transport_fc host interface support James Smart
2019-10-23 21:55 ` [PATCH 31/32] elx: efct: Add Makefile and Kconfig for efct driver James Smart
2019-10-25 15:55 ` Daniel Wagner
2019-10-25 22:47 ` James Smart
2019-10-23 21:55 ` [PATCH 32/32] elx: efct: Tie into kernel Kconfig and build process James Smart
2019-10-26 0:34 ` kbuild test robot
2019-10-26 0:39 ` Randy Dunlap
2019-10-26 14:13 ` kbuild test robot
2019-10-26 14:13 ` [RFC PATCH] elx: efct: efct_libefc_templ can be static kbuild test robot
2019-10-25 15:56 ` [PATCH 00/32] [NEW] efct: Broadcom (Emulex) FC Target driver Daniel Wagner
2019-10-25 22:31 ` James Smart
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191023215557.12581-1-jsmart2021@gmail.com \
--to=jsmart2021@gmail.com \
--cc=linux-scsi@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox