| From: |
| Nilesh Javali <njavali-AT-marvell.com> |
| To: |
| <martin.petersen-AT-oracle.com> |
| Subject: |
| [PATCH 00/44] scsi: qla2xxx: Add QLA29xx series adapter support |
| Date: |
| Mon, 01 Jun 2026 15:58:09 +0530 |
| Message-ID: |
| <20260601102853.328426-1-njavali@marvell.com> |
| Cc: |
| <linux-scsi-AT-vger.kernel.org>, <GR-QLogic-Storage-Upstream-AT-marvell.com>, <agurumurthy-AT-marvell.com>, <emilne-AT-redhat.com>, <jmeneghi-AT-redhat.com>, <hare-AT-suse.com> |
| Archive-link: |
| Article |
Add support for the QLA29xx generation of Marvell/QLogic
Fibre Channel HBAs (ISP2091/ISP2291/ISP2099/ISP2299).
The 29xx family shares much of its architecture with the
existing 27xx/28xx adapters but introduces 128-byte request
and response ring entries (up from 64 bytes), requiring
extended IOCB definitions and updated ring management
throughout the driver.
The key hardware change is the wider IOCB format: every
request and response queue entry is now 128 bytes.
This propagates into every code path that builds, submits,
or processes IOCBs -- command submission, status completion,
marker, CT pass-through, ELS, logio, task management,
abort, ABTS, VP control, and NVMe.
The series is organised as follows:
Patches 01-08: Foundation and flash/firmware infrastructure
PCI device ID registration, ISP-flags wiring, flash read/write
interface, NVRAM configuration, queue initialisation, FC operational
firmware load, and BSG passthrough (flash block I/O, MPI firmware
load/dump).
Patches 09-13: 128-byte IOCB infrastructure
New qla_fw29.h header with extended structure definitions, status
continuation and marker IOCBs, removal of duplicate flash memo
block defines, IO-path updates to select the correct IOCB size, and
introduction of entry-size helper functions that centralise the
IS_QLA29XX() dispatch pattern.
Patches 14-26: Sysfs, mailbox commands, and core enablement
Sysfs attribute gating for unsupported 29xx features, mailbox command
enablement (get_fw_version, execute_fw, get_adapter_id,
init_firmware, get_firmware_state, serdes, ELS, echo_test,
data rate), shutdown path, ring-slot helpers, and memory allocation
updates.
Patches 27-44: Response-path IOCB handling and final wiring
Marker, status continuation, status entry, CT pass-through, PUREX,
ELS, logio, task management, abort, ABTS, VP control/config/report-ID,
NVMe IOCB unification, LS4 pass-through, NVMe ring advance
conversion, and BSG feature gating adjustments.
Anil Gurumurthy (5):
scsi: qla2xxx: Add 128-byte IOCB definitions for 29xx
scsi: qla2xxx: Add extended status continuation and marker IOCBs
scsi: qla2xxx: Remove duplicate flash memo block definitions
scsi: qla2xxx: Update IO path to use 128-byte IOCBs for 29xx
scsi: qla2xxx: Replace IS_QLA29XX() size checks with entry-size
helpers
Manish Rangankar (10):
scsi: qla2xxx: Add 29xx series PCI device ID support
scsi: qla2xxx: Add flash read/write interface for 29xx
scsi: qla2xxx: Add NVRAM config support for 29xx adapters
scsi: qla2xxx: Add get_flash_version support for 29xx adapters
scsi: qla2xxx: Add 29xx support in queue initialisation path
scsi: qla2xxx: Add FC operational firmware load for 29xx
scsi: qla2xxx: Add flash block read/write BSG support for 29xx
scsi: qla2xxx: Add BSG MPI firmware load/dump for 29xx
scsi: qla2xxx: Add LS4 pass-through IOCB handling for 29xx series
scsi: qla2xxx: Adjust feature gating in BSG paths for 29xx support
Nilesh Javali (29):
scsi: qla2xxx: Skip image-set-valid attribute for 29xx
scsi: qla2xxx: Skip unsupported sysfs attributes for 29xx
scsi: qla2xxx: Enable get_fw_version mailbox for 29xx
scsi: qla2xxx: Extend execute_fw mailbox to include 29xx
scsi: qla2xxx: Enable get_adapter_id mailbox for 29xx
scsi: qla2xxx: Enable init_firmware mailbox for 29xx
scsi: qla2xxx: Enable get_firmware_state for 29xx
scsi: qla2xxx: Enable serdes_word and get_resource_cnt for 29xx
scsi: qla2xxx: Enable set_els_cmds and echo_test for 29xx
scsi: qla2xxx: Add support for QLA29XX in data rate functions
scsi: qla2xxx: Enable qla2x00_shutdown for 29xx
scsi: qla2xxx: Use ring-slot helpers in __qla2x00_alloc_iocbs
scsi: qla2xxx: Add support for QLA29XX in memory allocation
scsi: qla2xxx: Refactor marker IOCB handling for 29xx series
scsi: qla2xxx: Handle sts_cont_entry_ext_t for 29xx adapters
scsi: qla2xxx: Update handling of status entries for 29xx series
scsi: qla2xxx: Enhance ct_entry_24xx_ext iocb handling for 29xx series
scsi: qla2xxx: Enhance purex_entry handling for 29xx series
scsi: qla2xxx: Update handling of ELS IOCBs for 29xx series
scsi: qla2xxx: Add size check for ELS status entry layout on 29xx
scsi: qla2xxx: Add 29xx extended logio IOCB support
scsi: qla2xxx: Enhance task management IOCB handling for 29xx series
scsi: qla2xxx: Add abort command handling for 29xx series
scsi: qla2xxx: Enhance ABTS processing for 29xx series
scsi: qla2xxx: Update VP control IOCB handling for 29xx series
scsi: qla2xxx: Add build-time size check for VP config IOCB layout
scsi: qla2xxx: Add size check for extended VP report ID entry
scsi: qla2xxx: Unify NVMe IOCB build path for 29xx and legacy adapters
scsi: qla2xxx: Convert NVMe ring advance to use qla_req_ring_advance()
drivers/scsi/qla2xxx/qla_attr.c | 26 +-
drivers/scsi/qla2xxx/qla_bsg.c | 440 ++++++++--
drivers/scsi/qla2xxx/qla_bsg.h | 34 +
drivers/scsi/qla2xxx/qla_dbg.c | 31 +-
drivers/scsi/qla2xxx/qla_def.h | 157 +++-
drivers/scsi/qla2xxx/qla_edif.c | 98 ++-
drivers/scsi/qla2xxx/qla_fw.h | 132 ++-
drivers/scsi/qla2xxx/qla_fw29.h | 807 +++++++++++++++++++
drivers/scsi/qla2xxx/qla_gbl.h | 38 +-
drivers/scsi/qla2xxx/qla_gs.c | 156 +++-
drivers/scsi/qla2xxx/qla_init.c | 660 ++++++++++++++-
drivers/scsi/qla2xxx/qla_inline.h | 247 +++++-
drivers/scsi/qla2xxx/qla_iocb.c | 1255 +++++++++++++++++++++++------
drivers/scsi/qla2xxx/qla_isr.c | 671 +++++++++------
drivers/scsi/qla2xxx/qla_mbx.c | 461 ++++++++---
drivers/scsi/qla2xxx/qla_mid.c | 50 +-
drivers/scsi/qla2xxx/qla_nvme.c | 274 +++++--
drivers/scsi/qla2xxx/qla_nvme.h | 4 +-
drivers/scsi/qla2xxx/qla_nx.c | 2 +-
drivers/scsi/qla2xxx/qla_os.c | 264 +++++-
drivers/scsi/qla2xxx/qla_sup.c | 694 +++++++++++++++-
21 files changed, 5587 insertions(+), 914 deletions(-)
create mode 100644 drivers/scsi/qla2xxx/qla_fw29.h
base-commit: 1801c8284d34d7927f1a158226e427c195936746
prerequisite-patch-id: 9cdf671a5c422facf4cee5626701f9135d076122
prerequisite-patch-id: 807b23211a696e9f032ae85b037aafeb08501768
prerequisite-patch-id: 1145e5762d000b371299b981054a7baabbbede6e
prerequisite-patch-id: ad6f2e8fdf93cc1341470516aee8ccdee0d99cfb
prerequisite-patch-id: 6df17c866b242df13f50eba6cd81f26d4dc0656c
prerequisite-patch-id: 05d09642756af9c90cd8568d63496c676ace66f0
prerequisite-patch-id: 85252984f56a31690f027b735594caf003738e27
prerequisite-patch-id: 86b571d585d2dd9f783220df2bb1baeab0c7dc2b
prerequisite-patch-id: 44f65619d39d4e5f1dd56a898ee6156238a6b3b7
prerequisite-patch-id: 412cfca3d3695325b90a70a56f998e26d34cf5bd
prerequisite-patch-id: 368f0039bdb590ec70f83327ed6c82028342367f
prerequisite-patch-id: 0af9e8e1b40955fb0f513f973db167ff469dd45f
--
2.47.3