[SRU][Impish][Pull] Broadcom mpi3mr driver submission request

Michael Reed michael.reed at canonical.com
Fri Dec 3 00:43:58 UTC 2021


BugLink:  https://launchpad.net/bugs/1933359

SRU Justification:

[Impact]
Broadcom is coming up with next generation high performance Storage IO and RAID controllers. For details, follow: https://www.spinics.net/lists/linux-scsi/msg147868.html
This family of controllers is managed by "mpi3mr" Linux device driver(written from scratch). First patchset of the driver is accepted by Linux upstream.
The driver is available in git branch - 5.14/scsi-staging of Linux SCSI tree: https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git
The driver will be part of 5.14 mainline Linux kernel release. Here is the list of commit ids:

[Fixes]
9fc4abfe5a5f scsi: mpi3mr: Add event handling debug prints
74e1f30a2868 scsi: mpi3mr: Add EEDP DIF DIX support
28cbe2f420d3 scsi: mpi3mr: Add support for DSN secure firmware check
2f9c4d520aa6 scsi: mpi3mr: Add support for PM suspend and resume
44dc724f5eec scsi: mpi3mr: Wait for pending I/O completions upon detection of VD I/O timeout
71e80106d059 scsi: mpi3mr: Print pending host I/Os for debugging
f061178e0762 scsi: mpi3mr: Complete support for soft reset
463429f8dd5c scsi: mpi3mr: Add support for threaded ISR
392bbeb85b2a scsi: mpi3mr: Hardware workaround for UNMAP commands to NVMe drives
82141ddba90a scsi: mpi3mr: Allow certain commands during pci-remove hook
0ea177343f1f scsi: mpi3mr: Add change queue depth support
e844adb1fbdc scsi: mpi3mr: Implement SCSI error handler hooks
8f9c6173ca46 scsi: mpi3mr: Add bios_param SCSI host template hook
ff9561e910fc scsi: mpi3mr: Print IOC info for debugging
54dfcffb4191 scsi: mpi3mr: Add support for timestamp sync with firmware
fb9b04574f14 scsi: mpi3mr: Add support for recovering controller
e36710dc06e3 scsi: mpi3mr: Additional event handling
8e653455547a scsi: mpi3mr: Add support for PCIe device event handling
13ef29ea4aa0 scsi: mpi3mr: Add support for device add/remove event handling
672ae26c8216 scsi: mpi3mr: Add support for internal watchdog thread
023ab2a9b4ed scsi: mpi3mr: Add support for queue command processing
c9566231cfaf scsi: mpi3mr: Create operational request and reply queue pair
824a156633df scsi: mpi3mr: Base driver code
c4f7ac64616e scsi: mpi3mr: Add mpi30 Rev-R headers and Kconfig


[Testing]
Load the driver
Run IO

[Regression Risk]
No extra test cases are needed, normal regression test cases such as driver load & running IOs are enough.

[Other Info]
https://code.launchpad.net/~mreed8855/ubuntu/+source/linux/+git/impish/+ref/mpi3mr_driver_bcom2


The following changes since commit b188ba567fc92eebd36f679de7ba1b8c2354839d:

  UBUNTU: Ubuntu-5.13.0-23.23 (2021-11-26 12:14:32 +0100)

are available in the Git repository at:

  https://git.launchpad.net/~mreed8855/ubuntu/+source/linux/+git/impish mpi3mr_driver_bcom2

for you to fetch changes up to 10819371706eec8f7d057f92bfdaaf777dc1ffe2:

  scsi: mpi3mr: Add event handling debug prints (2021-12-02 14:53:03 -0600)

----------------------------------------------------------------
Kashyap Desai (24):
      scsi: mpi3mr: Add mpi30 Rev-R headers and Kconfig
      scsi: mpi3mr: Base driver code
      scsi: mpi3mr: Create operational request and reply queue pair
      scsi: mpi3mr: Add support for queue command processing
      scsi: mpi3mr: Add support for internal watchdog thread
      scsi: mpi3mr: Add support for device add/remove event handling
      scsi: mpi3mr: Add support for PCIe device event handling
      scsi: mpi3mr: Additional event handling
      scsi: mpi3mr: Add support for recovering controller
      scsi: mpi3mr: Add support for timestamp sync with firmware
      scsi: mpi3mr: Print IOC info for debugging
      scsi: mpi3mr: Add bios_param SCSI host template hook
      scsi: mpi3mr: Implement SCSI error handler hooks
      scsi: mpi3mr: Add change queue depth support
      scsi: mpi3mr: Allow certain commands during pci-remove hook
      scsi: mpi3mr: Hardware workaround for UNMAP commands to NVMe drives
      scsi: mpi3mr: Add support for threaded ISR
      scsi: mpi3mr: Complete support for soft reset
      scsi: mpi3mr: Print pending host I/Os for debugging
      scsi: mpi3mr: Wait for pending I/O completions upon detection of VD I/O timeout
      scsi: mpi3mr: Add support for PM suspend and resume
      scsi: mpi3mr: Add support for DSN secure firmware check
      scsi: mpi3mr: Add EEDP DIF DIX support
      scsi: mpi3mr: Add event handling debug prints

 drivers/scsi/Kconfig                      |    1 +
 drivers/scsi/Makefile                     |    1 +
 drivers/scsi/mpi3mr/Kconfig               |    7 +
 drivers/scsi/mpi3mr/Makefile              |    4 +
 drivers/scsi/mpi3mr/mpi/mpi30_cnfg.h      | 1880 +++++++++++++
 drivers/scsi/mpi3mr/mpi/mpi30_image.h     |  216 ++
 drivers/scsi/mpi3mr/mpi/mpi30_init.h      |  159 ++
 drivers/scsi/mpi3mr/mpi/mpi30_ioc.h       | 1004 +++++++
 drivers/scsi/mpi3mr/mpi/mpi30_sas.h       |   33 +
 drivers/scsi/mpi3mr/mpi/mpi30_transport.h |  463 ++++
 drivers/scsi/mpi3mr/mpi3mr.h              |  900 +++++++
 drivers/scsi/mpi3mr/mpi3mr_debug.h        |   60 +
 drivers/scsi/mpi3mr/mpi3mr_fw.c           | 3956 ++++++++++++++++++++++++++++
 drivers/scsi/mpi3mr/mpi3mr_os.c           | 4054 +++++++++++++++++++++++++++++
 14 files changed, 12738 insertions(+)
 create mode 100644 drivers/scsi/mpi3mr/Kconfig
 create mode 100644 drivers/scsi/mpi3mr/Makefile
 create mode 100644 drivers/scsi/mpi3mr/mpi/mpi30_cnfg.h
 create mode 100644 drivers/scsi/mpi3mr/mpi/mpi30_image.h
 create mode 100644 drivers/scsi/mpi3mr/mpi/mpi30_init.h
 create mode 100644 drivers/scsi/mpi3mr/mpi/mpi30_ioc.h
 create mode 100644 drivers/scsi/mpi3mr/mpi/mpi30_sas.h
 create mode 100644 drivers/scsi/mpi3mr/mpi/mpi30_transport.h
 create mode 100644 drivers/scsi/mpi3mr/mpi3mr.h
 create mode 100644 drivers/scsi/mpi3mr/mpi3mr_debug.h
 create mode 100644 drivers/scsi/mpi3mr/mpi3mr_fw.c
 create mode 100644 drivers/scsi/mpi3mr/mpi3mr_os.c



More information about the kernel-team mailing list