From patchwork Tue Dec 22 10:11:32 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kashyap Desai X-Patchwork-Id: 346831 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING, SPF_HELO_NONE, SPF_PASS, URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 684E2C433E0 for ; Tue, 22 Dec 2020 10:13:13 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 0E3BC22AAC for ; Tue, 22 Dec 2020 10:13:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725994AbgLVKM5 (ORCPT ); Tue, 22 Dec 2020 05:12:57 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56684 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725807AbgLVKM4 (ORCPT ); Tue, 22 Dec 2020 05:12:56 -0500 Received: from mail-pf1-x444.google.com (mail-pf1-x444.google.com [IPv6:2607:f8b0:4864:20::444]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 48B12C0613D6 for ; Tue, 22 Dec 2020 02:12:16 -0800 (PST) Received: by mail-pf1-x444.google.com with SMTP id w6so8218977pfu.1 for ; Tue, 22 Dec 2020 02:12:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=mime-version:from:to:cc:subject:date:message-id; bh=XPWtg3cKL9xyJnIKZ4/LdR1WVI/Iqlrctl4KEAjhYls=; b=dlP1GnPistBmb26up31BwhWFPf2StPNH2rskqoedWI/n2UhDI2UIcmyfyvZmlcK+tZ 39u1yoCyzPWcQUtgK5/ob53tXMYtYmmoWvvk8McT3VHhR7v4nZHpmCl6Zrwq0PejY4ZK Ejn9HEF7P20/oHbdlHb3aMvwPxdUsvWP1hGpA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:to:cc:subject:date:message-id; bh=XPWtg3cKL9xyJnIKZ4/LdR1WVI/Iqlrctl4KEAjhYls=; b=P7W/aLoD6aQczZVJGb4DznwaySb6HEdmX50ZJQbdfSFTo+sQafUxokiBRsIC7FuxQI SRkr3Owo+R7KbJPcLn7Kxikxl+EUpJBdKcmzLwrrKok6AZAl4Z9jJA+y4zr3b0Jo+oWl sLEmPlXK49R+e2QE4My3GdGxDN0QuE+sTyKteyxB0uv5HSC9T+ipN42ONB3QBJVjtnVH 9YVBqmUH7Qh2ybTztI5W2rJ0tz/uS8PNf+CuiN0wYDwQG3yJj9NXXGQgvUFj8s9T5gyi F0TDcaCY6tWOOlshWZyJdUSRi0oLop/r3iLKvk8N3Bb1BMdSsJ2fyxFviKMmIoSKlV86 S0fg== X-Gm-Message-State: AOAM533UcGvRoOiLtJtRygS9tUjMoglQ93wAoM/KlcchBHQxhXrp+mqq ASFm0IhBC8xuhCjw2Zaafi+WjcwP0+VnxOX2D+R68/sr4FLGzawSI1VMyXBgd9WEwKME9Zad6wB 79KjquYhy/Uqz4P+/2LR9vPPqXUpqzzpfqCTM19qKRqMEv9YRHlH2xnSHFRd+Up7hdvFeTCyNyL Lzyq9TzLBS MIME-Version: 1.0 X-Google-Smtp-Source: ABdhPJz8cjpJJ1HNf7ghJmHVo0IvJYcWUMt9cTeaJyWlQwpoHBavhckSI82kcMb1WdYdJy2MU5KV5w== X-Received: by 2002:a05:6a00:44:b029:19d:e250:1355 with SMTP id i4-20020a056a000044b029019de2501355mr19069329pfk.36.1608631935353; Tue, 22 Dec 2020 02:12:15 -0800 (PST) Received: from drv-bst-rhel8.static.broadcom.net ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id p16sm19148624pju.47.2020.12.22.02.12.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Dec 2020 02:12:14 -0800 (PST) From: Kashyap Desai To: linux-scsi@vger.kernel.org Cc: jejb@linux.ibm.com, martin.petersen@oracle.com, steve.hagan@broadcom.com, peter.rivera@broadcom.com, mpi3mr-linuxdrv.pdl@broadcom.com, Kashyap Desai Subject: [PATCH 00/24] Introducing mpi3mr driver Date: Tue, 22 Dec 2020 15:41:32 +0530 Message-Id: <20201222101156.98308-1-kashyap.desai@broadcom.com> X-Mailer: git-send-email 2.18.1 Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org This patch series covers logical patches of the new device driver for the MPI3MR high performance storage I/O & RAID controllers (Avenger series). The mpi3mr has true multiple h/w queue interfacing like nvme. See more info - https://www.spinics.net/lists/linux-scsi/msg147868.html The controllers managed by the mpi3mr driver are capable of reaching a very high performance numbers compared to existing controller due to the new hardware architectures. This Driver is tested with the internal versions of the MPI3MR I/O & RAID controllers. Patches are logical split mainly for better code review. Full patch set is required for functional stability of this new driver. You can find the source at - https://github.com/kadesai16/mpi3mr_v1 Kashyap Desai (24): mpi3mr: add mpi30 Rev-R headers and Kconfig mpi3mr: base driver code mpi3mr: create operational request and reply queue pair mpi3mr: add support of queue command processing mpi3mr: add support of internal watchdog thread mpi3mr: add support of event handling part-1 mpi3mr: add support of event handling pcie devices part-2 mpi3mr: add support of event handling part-3 mpi3mr: add support for recovering controller mpi3mr: add support of timestamp sync with firmware mpi3mr: print ioc info for debugging mpi3mr: add bios_param shost template hook mpi3mr: implement scsi error handler hooks mpi3mr: add change queue depth support mpi3mr: allow certain commands during pci-remove hook mpi3mr: hardware workaround for UNMAP commands to nvme drives mpi3mr: add support of threaded isr mpi3mr: add complete support of soft reset mpi3mr: print pending host ios for debug mpi3mr: wait for pending IO completions upon detection of VD IO timeout mpi3mr: add support of PM suspend and resume mpi3mr: add support of DSN secure fw check mpi3mr: add eedp dif dix support 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_api.h | 23 + drivers/scsi/mpi3mr/mpi/mpi30_cnfg.h | 2721 ++++++++++++++ drivers/scsi/mpi3mr/mpi/mpi30_image.h | 285 ++ drivers/scsi/mpi3mr/mpi/mpi30_init.h | 216 ++ drivers/scsi/mpi3mr/mpi/mpi30_ioc.h | 1423 +++++++ drivers/scsi/mpi3mr/mpi/mpi30_sas.h | 46 + drivers/scsi/mpi3mr/mpi/mpi30_transport.h | 675 ++++ drivers/scsi/mpi3mr/mpi/mpi30_type.h | 89 + drivers/scsi/mpi3mr/mpi3mr.h | 906 +++++ drivers/scsi/mpi3mr/mpi3mr_debug.h | 60 + drivers/scsi/mpi3mr/mpi3mr_fw.c | 3944 ++++++++++++++++++++ drivers/scsi/mpi3mr/mpi3mr_os.c | 4148 +++++++++++++++++++++ 16 files changed, 14549 insertions(+) create mode 100644 drivers/scsi/mpi3mr/Kconfig create mode 100644 drivers/scsi/mpi3mr/Makefile create mode 100644 drivers/scsi/mpi3mr/mpi/mpi30_api.h 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/mpi/mpi30_type.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 Reviewed-by: Hannes Reinecke Reviewed-by: Hannes Reinecke Reviewed-by: Hannes Reinecke Reviewed-by: Hannes Reinecke Reviewed-by: Hannes Reinecke Reviewed-by: Hannes Reinecke Reviewed-by: Hannes Reinecke Reviewed-by: Hannes Reinecke Reviewed-by: Hannes Reinecke Reviewed-by: Hannes Reinecke Reviewed-by: Hannes Reinecke