From patchwork Thu Feb 13 01:26:52 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shivasharan S X-Patchwork-Id: 13972690 Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5B2A280034 for ; Thu, 13 Feb 2025 01:40:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739410825; cv=none; b=FdreoRkv+BFPOQ+Om34bq7jAqFqIvG8jl9AkUXZ2z8QVyrhhyED3k4EJcILbSTzAP5Z80xBk1DYveF9hcyvdwP9+euqbdeg0NeXzhmmGY8R0ycB3FY/06MOOurp8lzEL3v1FKQLtJDxOWzoz0IP/S3kczu/+koZH8IjU92SN+DY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739410825; c=relaxed/simple; bh=M/YtPeTCY9ZRpwHvWcY+ga+FpUApZ7jxAyPLNOfwH4o=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References; b=KIVB8GPvMcfm7Mp4C2ZTm8InVfT1oL05sYehxM+SjubiBo6/yMP/bNFxLhcmLINn9gbM4Sr+e0YoEbi2z7guGzl9vN5UhX87QAng9P5TbbyUGxiI0YkU2PC9hG04Kp6ZcAwnLxf5y5Ugvzd6Wou4p95dGLKs4YQweLT1xgc7qfE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=aiRF8wZf; arc=none smtp.client-ip=209.85.214.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="aiRF8wZf" Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-219f8263ae0so4510215ad.0 for ; Wed, 12 Feb 2025 17:40:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1739410822; x=1740015622; darn=vger.kernel.org; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=/DGJB0JzzRtTHLXpFc4GyUcj21D6vzncjn0rF4Hy3wM=; b=aiRF8wZf8cQJIXRqHxljXdJlYr8ZvijyYB44+z28H6T8NX7Ilac4dTS2eZOa17+X4O NVNVV3ViGoA3aJbVXsD137tmvh166gHTJCQXjbJreBAQhc6HLTs583lBHwaPSQoNtsBW XRMjXY3mH4e4/ScLK+bk73ZAy/JXzINPodcDo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739410822; x=1740015622; h=references:in-reply-to:message-id:date:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=/DGJB0JzzRtTHLXpFc4GyUcj21D6vzncjn0rF4Hy3wM=; b=Eu7OXNhoBzYCIWI+K8IoOiRhYH6QaOmU9vZA6ngy0rrQz4CpCvOkHpbze76zMDbM9y otJodQ3aCjGOVBo4mq6tMNQwqnYEGZ1PoiNs4kkscrWFvHjFAdqUkkEztlpmNK9NNuuo IOmvnsqTEfOKFWjEfh0CET141t0j7rsBclqHSI3cDUNo14LrL4y6GrwYc5cSKCY29zdO mNNwQMBBsmhSUjBeflgUlUfRAAX6wQIhmi2QvtjUtKIH4fKj2FutQPVPuGHiVID5p1fE tH5ySmObirTbiDHDekWhocC/01Yo31DWJRCxV1RChQmyR0Bvp57TBL3OjBcxQRTp63Cm WaVw== X-Gm-Message-State: AOJu0YxNptS8Hl4yt9Z/rynxVSPh7f7vHM3nmQjylZ7wSJnS7b0U+noT pVoiu/fAtn/6pz8CK4fXkLNHACQKNXBxaDKmAmbZCYGzUq61gFY2fEf49Qzl8wF9KDknguI36g0 mFS634zX/lvHKgY+tTmsrih5Q3+fsVF3A4w/JQRhVfPDZTbPcDyG8DWrPRh+pDdyN4KYAsNXqPL jv3ShLb/i1hxRTPt4AmaU606XpKbq6tJ3N2sgSDhgrNCWphWkAPdmdO/HDNyl9+Z9m X-Gm-Gg: ASbGncuvBv/r8J3Z4flvB0GwAPb12+rh54Rig1YymGydqpOlu2gVMtB3T3YUIb/2oY3 CYXmGnP1vhXCqbaXdX1a+d3i2w1IEW5UDwtVPmKUO5rQ3jJn6QS8slKmTYcHPnGpqNNpSVNmma9 34WfT+pmwNbkw8qz+uJWjmFmmbl8V7RL7whUfaKSZrMDP/uhdGhWIeU7RzpRi64FDzmE2PjQswF VgzTohd3mfacZlZTYo0+rM7OvTzuGp9vV10iah/rEu8UlaPy6Iar2GZ32konioe8LCSOBjC8wzq MR1auFwaUFLHvnpEwIcUUt1xgm2p0FlZXeGFLpXb4UOvN1eb47vqe/34itUPUxYsBrw38PbBbE2 Zo9K140trLOHLTe25rj8gzMk= X-Google-Smtp-Source: AGHT+IEJsmn1rvVWy17dyx8jSyBAlMzTU43tLnWelExCP9jGEr6fT6M6KX7vhXZZJ7M9XjwSAfUD0A== X-Received: by 2002:a05:6a21:3981:b0:1ee:69aa:b670 with SMTP id adf61e73a8af0-1ee69aab757mr4031665637.9.1739410821606; Wed, 12 Feb 2025 17:40:21 -0800 (PST) Received: from dhcp-135-24-192-142.dhcp.broadcom.net ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73242761714sm106145b3a.133.2025.02.12.17.40.19 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 12 Feb 2025 17:40:21 -0800 (PST) From: Shivasharan S To: linux-scsi@vger.kernel.org, martin.petersen@oracle.com Cc: sathya.prakash@broadcom.com, ranjan.kumar@broadcom.com, suganath-prabu.subramani@broadcom.com, sumit.saxena@broadcom.com, Shivasharan S Subject: [PATCH 1/5] mpt3sas: Update MPI headers to 02.00.62 version Date: Wed, 12 Feb 2025 17:26:52 -0800 Message-Id: <1739410016-27503-2-git-send-email-shivasharan.srikanteshwara@broadcom.com> X-Mailer: git-send-email 2.4.3 In-Reply-To: <1739410016-27503-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> References: <1739410016-27503-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> Precedence: bulk X-Mailing-List: linux-scsi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Updated MPI header files to version 02.00.62. Signed-off-by: Shivasharan S --- drivers/scsi/mpt3sas/mpi/mpi2.h | 9 ++++- drivers/scsi/mpt3sas/mpi/mpi2_cnfg.h | 5 +++ drivers/scsi/mpt3sas/mpi/mpi2_ioc.h | 54 ++++++++++++++++++++++++++++ 3 files changed, 67 insertions(+), 1 deletion(-) diff --git a/drivers/scsi/mpt3sas/mpi/mpi2.h b/drivers/scsi/mpt3sas/mpi/mpi2.h index 6de35b32223c..b181b113fc80 100644 --- a/drivers/scsi/mpt3sas/mpi/mpi2.h +++ b/drivers/scsi/mpt3sas/mpi/mpi2.h @@ -125,6 +125,12 @@ * 06-24-19 02.00.55 Bumped MPI2_HEADER_VERSION_UNIT * 08-01-19 02.00.56 Bumped MPI2_HEADER_VERSION_UNIT * 10-02-19 02.00.57 Bumped MPI2_HEADER_VERSION_UNIT + * 07-20-20 02.00.58 Bumped MPI2_HEADER_VERSION_UNIT + * 03-30-21 02.00.59 Bumped MPI2_HEADER_VERSION_UNIT + * 06-03-22 02.00.60 Bumped MPI2_HEADER_VERSION_UNIT + * 09-20-23 02.00.61 Bumped MPI2_HEADER_VERSION_UNIT + * 09-13-24 02.00.62 Bumped MPI2_HEADER_VERSION_UNIT + * Added MPI2_FUNCTION_MCTP_PASSTHROUGH * -------------------------------------------------------------------------- */ @@ -165,7 +171,7 @@ /* Unit and Dev versioning for this MPI header set */ -#define MPI2_HEADER_VERSION_UNIT (0x39) +#define MPI2_HEADER_VERSION_UNIT (0x3E) #define MPI2_HEADER_VERSION_DEV (0x00) #define MPI2_HEADER_VERSION_UNIT_MASK (0xFF00) #define MPI2_HEADER_VERSION_UNIT_SHIFT (8) @@ -669,6 +675,7 @@ typedef union _MPI2_REPLY_DESCRIPTORS_UNION { #define MPI2_FUNCTION_PWR_MGMT_CONTROL (0x30) #define MPI2_FUNCTION_SEND_HOST_MESSAGE (0x31) #define MPI2_FUNCTION_NVME_ENCAPSULATED (0x33) +#define MPI2_FUNCTION_MCTP_PASSTHROUGH (0x34) #define MPI2_FUNCTION_MIN_PRODUCT_SPECIFIC (0xF0) #define MPI2_FUNCTION_MAX_PRODUCT_SPECIFIC (0xFF) diff --git a/drivers/scsi/mpt3sas/mpi/mpi2_cnfg.h b/drivers/scsi/mpt3sas/mpi/mpi2_cnfg.h index 587f7d248219..77259fc96b94 100644 --- a/drivers/scsi/mpt3sas/mpi/mpi2_cnfg.h +++ b/drivers/scsi/mpt3sas/mpi/mpi2_cnfg.h @@ -251,6 +251,7 @@ * 12-17-18 02.00.47 Swap locations of Slotx2 and Slotx4 in ManPage 7. * 08-01-19 02.00.49 Add MPI26_MANPAGE7_FLAG_X2_X4_SLOT_INFO_VALID * Add MPI26_IOUNITPAGE1_NVME_WRCACHE_SHIFT + * 09-13-24 02.00.50 Added PCIe 32 GT/s link rate */ #ifndef MPI2_CNFG_H @@ -1121,6 +1122,7 @@ typedef struct _MPI2_CONFIG_PAGE_IO_UNIT_7 { #define MPI2_IOUNITPAGE7_PCIE_SPEED_5_0_GBPS (0x01) #define MPI2_IOUNITPAGE7_PCIE_SPEED_8_0_GBPS (0x02) #define MPI2_IOUNITPAGE7_PCIE_SPEED_16_0_GBPS (0x03) +#define MPI2_IOUNITPAGE7_PCIE_SPEED_32_0_GBPS (0x04) /*defines for IO Unit Page 7 ProcessorState field */ #define MPI2_IOUNITPAGE7_PSTATE_MASK_SECOND (0x0000000F) @@ -2301,6 +2303,7 @@ typedef struct _MPI2_CONFIG_PAGE_SASIOUNIT_1 { #define MPI2_SASIOUNIT1_CONTROL_CLEAR_AFFILIATION (0x0001) /*values for SAS IO Unit Page 1 AdditionalControlFlags */ +#define MPI2_SASIOUNIT1_ACONTROL_PROD_SPECIFIC_1 (0x8000) #define MPI2_SASIOUNIT1_ACONTROL_DA_PERSIST_CONNECT (0x0100) #define MPI2_SASIOUNIT1_ACONTROL_MULTI_PORT_DOMAIN_ILLEGAL (0x0080) #define MPI2_SASIOUNIT1_ACONTROL_SATA_ASYNCHROUNOUS_NOTIFICATION (0x0040) @@ -3591,6 +3594,7 @@ typedef struct _MPI2_CONFIG_PAGE_EXT_MAN_PS { #define MPI26_PCIE_NEG_LINK_RATE_5_0 (0x03) #define MPI26_PCIE_NEG_LINK_RATE_8_0 (0x04) #define MPI26_PCIE_NEG_LINK_RATE_16_0 (0x05) +#define MPI26_PCIE_NEG_LINK_RATE_32_0 (0x06) /**************************************************************************** @@ -3700,6 +3704,7 @@ typedef struct _MPI26_CONFIG_PAGE_PIOUNIT_1 { #define MPI26_PCIEIOUNIT1_MAX_RATE_5_0 (0x30) #define MPI26_PCIEIOUNIT1_MAX_RATE_8_0 (0x40) #define MPI26_PCIEIOUNIT1_MAX_RATE_16_0 (0x50) +#define MPI26_PCIEIOUNIT1_MAX_RATE_32_0 (0x60) /*values for PCIe IO Unit Page 1 DMDReportPCIe */ #define MPI26_PCIEIOUNIT1_DMDRPT_UNIT_MASK (0x80) diff --git a/drivers/scsi/mpt3sas/mpi/mpi2_ioc.h b/drivers/scsi/mpt3sas/mpi/mpi2_ioc.h index d92852591134..c0a8ebb6299c 100644 --- a/drivers/scsi/mpt3sas/mpi/mpi2_ioc.h +++ b/drivers/scsi/mpt3sas/mpi/mpi2_ioc.h @@ -179,6 +179,7 @@ * Added MPI26_IOCFACTS_CAPABILITY_COREDUMP_ENABLED * Added MPI2_FW_DOWNLOAD_ITYPE_COREDUMP * Added MPI2_FW_UPLOAD_ITYPE_COREDUMP + * 9-13-24 02.00.39 Added MPI26_MCTP_PASSTHROUGH messages * -------------------------------------------------------------------------- */ @@ -382,6 +383,7 @@ typedef struct _MPI2_IOC_FACTS_REPLY { /*ProductID field uses MPI2_FW_HEADER_PID_ */ /*IOCCapabilities */ +#define MPI26_IOCFACTS_CAPABILITY_MCTP_PASSTHRU (0x00800000) #define MPI26_IOCFACTS_CAPABILITY_COREDUMP_ENABLED (0x00200000) #define MPI26_IOCFACTS_CAPABILITY_PCIE_SRIOV (0x00100000) #define MPI26_IOCFACTS_CAPABILITY_ATOMIC_REQ (0x00080000) @@ -1798,5 +1800,57 @@ typedef struct _MPI26_IOUNIT_CONTROL_REPLY { Mpi26IoUnitControlReply_t, *pMpi26IoUnitControlReply_t; +/**************************************************************************** + * MCTP Passthrough messages (MPI v2.6 and later only.) + ****************************************************************************/ + +/* MCTP Passthrough Request Message */ +typedef struct _MPI26_MCTP_PASSTHROUGH_REQUEST { + U8 MsgContext; /* 0x00 */ + U8 Reserved1[2]; /* 0x01 */ + U8 Function; /* 0x03 */ + U8 Reserved2[3]; /* 0x04 */ + U8 MsgFlags; /* 0x07 */ + U8 VP_ID; /* 0x08 */ + U8 VF_ID; /* 0x09 */ + U16 Reserved3; /* 0x0A */ + U32 Reserved4; /* 0x0C */ + U8 Flags; /* 0x10 */ + U8 Reserved5[3]; /* 0x11 */ + U32 Reserved6; /* 0x14 */ + U32 H2DLength; /* 0x18 */ + U32 D2HLength; /* 0x1C */ + MPI25_SGE_IO_UNION H2DSGL; /* 0x20 */ + MPI25_SGE_IO_UNION D2HSGL; /* 0x30 */ +} MPI26_MCTP_PASSTHRUOGH_REQUEST, + *PTR_MPI26_MCTP_PASSTHROUGH_REQUEST, + Mpi26MctpPassthroughRequest_t, + *pMpi26MctpPassthroughRequest_t; + +/* values for the MsgContext field */ +#define MPI26_MCTP_MSG_CONEXT_UNUSED (0x00) + +/* values for the Flags field */ +#define MPI26_MCTP_FLAGS_MSG_FORMAT_MPT (0x01) + +/* MCTP Passthrough Reply Message */ +typedef struct _MPI26_MCTP_PASSTHROUGH_REPLY { + U8 MsgContext; /* 0x00 */ + U8 Reserved1; /* 0x01 */ + U8 MsgLength; /* 0x02 */ + U8 Function; /* 0x03 */ + U8 Reserved2[3]; /* 0x04 */ + U8 MsgFlags; /* 0x07 */ + U8 VP_ID; /* 0x08 */ + U8 VF_ID; /* 0x09 */ + U16 Reserved3; /* 0x0A */ + U16 Reserved4; /* 0x0C */ + U16 IOCStatus; /* 0x0E */ + U32 IOCLogInfo; /* 0x10 */ + U32 ResponseDataLength; /* 0x14 */ +} MPI26_MCTP_PASSTHRUOGH_REPLY, + *PTR_MPI26_MCTP_PASSTHROUGH_REPLY, + Mpi26MctpPassthroughReply_t, + *pMpi26MctpPassthroughReply_t; #endif From patchwork Thu Feb 13 01:26:53 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shivasharan S X-Patchwork-Id: 13972691 Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CC0CE80034 for ; Thu, 13 Feb 2025 01:40:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739410827; cv=none; b=Sb3rSG746JevNevu7hJnMc56o4aYX3ChAjcAYOUXFKpDJUnw8l0mxooy5XxLDpKEhwfEAVm76YNOnQ655pBWrspQ+a2baJG55aS6njaQ6h0xx1GJLFrnWpNpijmnRkjuJ0tbAGFM/A1k6t8md5br66Vam+4KdUoLBkagrQmDrTo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739410827; c=relaxed/simple; bh=aEQeP1/+onuX+PjWKbMsQB4H6vriAuogTu4pb8jYfaU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References; b=DyZaxKRwv9fLKld8YNU68CgXfFGPPpao2sa5aeFQHdANVxciKcqQeBu4g2nBDRzD3dEzK9LddAEjjkMZxLChrj6/AKJoBQkROJGaYTlREDezv1Vr+sO7NSLmhdJuhRk91V4QUZeXlNA08ktcSto0b4ZRIquSwH/Yl+wggGo110w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=OVQum+SR; arc=none smtp.client-ip=209.85.214.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="OVQum+SR" Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-21f92258aa6so7126095ad.3 for ; Wed, 12 Feb 2025 17:40:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1739410824; x=1740015624; darn=vger.kernel.org; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=49f30FxjjBREp//5ApyBma9xdT6EjbQMWISR8FRoG74=; b=OVQum+SRaTPlgq8KH/gbFfoLxG6rdO+4Ek40uFLqp2JF7CWhcBwiZjqrETe21IHH6A bTEs5JntVusBwedO9A1NvOC6Rb2eqgTuavCKaeKNCdl05O5NGdLvYBWPQqLToX7kGP9D bxnoMXpXrxMM6RHN1b5zZOSYgZ9CCkLpgb944= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739410824; x=1740015624; h=references:in-reply-to:message-id:date:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=49f30FxjjBREp//5ApyBma9xdT6EjbQMWISR8FRoG74=; b=MGbiN0o+u9eLrqr2e3F8J0LQgjXhLFaSIL5KggvbW1RyVTWtyNbVLM1/Nkiivz9Ej7 Qtw7ICEYBXNbIoEBKFFMZoWFebkP716ZGTokpM1HGI5+jZLv4JIqEOK5CQ9cBlCpAnc0 wgteixvlLRrIKEmaBhfL1ya6x0H0Gqg1KuakULwS0PaCbTYTSLa4pOztkosEqJgpHwWQ ZEcMF9dB4xH7av+YzN+VcT/qa8mM/xO6Jvj0e8OpyGUplyiEL2TOrle4mPJ7Zhn+wpig 5AXpW+8/9YiPFwYcNBXmE/nK79pbn6FaL/8kYr7zS27ZpXM6gXqWoWKQo/DCqZ9zioy7 4FsA== X-Gm-Message-State: AOJu0YzFlhnOETdxsM1+x3ajtey12PKFqDXUro7+1OpV4sCEwfIxc/zY ur5Gt7QdnXL5SCt7H6qqc8r/9NYoEVgbPy7JWhvHimecE9WQWzbQuOJX8yulWMdVb7PzndKaQkd y+wczC1gObEt7MBUpS/4WM/lB+qjUqXYBuLM28EvQCOF2wAd4YP+/4lyeklkKujiFDap/ajU47q 8Q6N3RcjmQ2S984yiQtEcoX0zJQ6U1DLnNcMDgFE+wGG7iAy+q/NFwnP3HrsPacOJB X-Gm-Gg: ASbGncu6FLKAp9d/nGKxH0kjoSuUFHCQgfKpDFup5VOyAmD8GgOwSaxEdl0r86b0F38 yPoyYFBzPmtnVLATghRgvSnhC2ZCEUMl2gO6a0/U7AKTBXLUAAU3dA3gKRRQF6ONxZ4FmrLjavv k+kNF7UQ9zoLkbaAu8VsxY9xHRzh4jaaL/xobw31/sOk7NhNOqqLe6BxkoZHM0OM+3kD+mc6WNo LqkHqvo+4BtaHeIcp/iCoTmEhiQyhRW80w9Ip4NjqoA3gAFcQZyyetxQFPTYQdKpj1Q9haTOji9 jL69mgzXMn5qBzSPtdy89yOC547zzQwm5Pz6il4Jsueas90c5VLKnVryGR7CodKEEn/BTzBNg/F HlD+dySXL6kqu1AK6LRF/KJA= X-Google-Smtp-Source: AGHT+IF351jzl8S26Xu8gS4HHE4XTyMQ4mg3cSmGWI8lKl2CD2m7j5E1EBFMfLUdrh4MTOGP/5b6Bw== X-Received: by 2002:a05:6a21:3382:b0:1e1:afa9:d397 with SMTP id adf61e73a8af0-1ee5c74ccd3mr8673620637.15.1739410824468; Wed, 12 Feb 2025 17:40:24 -0800 (PST) Received: from dhcp-135-24-192-142.dhcp.broadcom.net ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73242761714sm106145b3a.133.2025.02.12.17.40.21 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 12 Feb 2025 17:40:23 -0800 (PST) From: Shivasharan S To: linux-scsi@vger.kernel.org, martin.petersen@oracle.com Cc: sathya.prakash@broadcom.com, ranjan.kumar@broadcom.com, suganath-prabu.subramani@broadcom.com, sumit.saxena@broadcom.com, Shivasharan S Subject: [PATCH 2/5] mpt3sas: Add support for MCTP Passthrough commands Date: Wed, 12 Feb 2025 17:26:53 -0800 Message-Id: <1739410016-27503-3-git-send-email-shivasharan.srikanteshwara@broadcom.com> X-Mailer: git-send-email 2.4.3 In-Reply-To: <1739410016-27503-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> References: <1739410016-27503-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> Precedence: bulk X-Mailing-List: linux-scsi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: The MPI specification defines support for sending MCTP management commands as a passthrough function to the IOC. This patch adds support for driver to discover the IOC capability to support MCTP passthrough function. Driver will support applications and kernel modules to send MPT commands containing the MCTP passthrough request to firmware through an MPI request. Signed-off-by: Shivasharan S Signed-off-by: Sathya Prakash --- drivers/scsi/mpt3sas/mpt3sas_base.c | 11 ++ drivers/scsi/mpt3sas/mpt3sas_ctl.c | 265 ++++++++++++++++++++++++++++ drivers/scsi/mpt3sas/mpt3sas_ctl.h | 42 +++++ 3 files changed, 318 insertions(+) diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.c b/drivers/scsi/mpt3sas/mpt3sas_base.c index dc43cfa83088..f0e8139654b5 100644 --- a/drivers/scsi/mpt3sas/mpt3sas_base.c +++ b/drivers/scsi/mpt3sas/mpt3sas_base.c @@ -1202,6 +1202,11 @@ _base_sas_ioc_info(struct MPT3SAS_ADAPTER *ioc, MPI2DefaultReply_t *mpi_reply, ioc->sge_size; func_str = "nvme_encapsulated"; break; + case MPI2_FUNCTION_MCTP_PASSTHROUGH: + frame_sz = sizeof(Mpi26MctpPassthroughRequest_t) + + ioc->sge_size; + func_str = "mctp_passthru"; + break; default: frame_sz = 32; func_str = "unknown"; @@ -4874,6 +4879,12 @@ _base_display_ioc_capabilities(struct MPT3SAS_ADAPTER *ioc) i++; } + if (ioc->facts.IOCCapabilities & + MPI26_IOCFACTS_CAPABILITY_MCTP_PASSTHRU) { + pr_cont("%sMCTP Passthru", i ? "," : ""); + i++; + } + iounit_pg1_flags = le32_to_cpu(ioc->iounit_pg1.Flags); if (!(iounit_pg1_flags & MPI2_IOUNITPAGE1_NATIVE_COMMAND_Q_DISABLE)) { pr_cont("%sNCQ", i ? "," : ""); diff --git a/drivers/scsi/mpt3sas/mpt3sas_ctl.c b/drivers/scsi/mpt3sas/mpt3sas_ctl.c index 87784c96249a..54a8a9c3ce5f 100644 --- a/drivers/scsi/mpt3sas/mpt3sas_ctl.c +++ b/drivers/scsi/mpt3sas/mpt3sas_ctl.c @@ -186,6 +186,9 @@ _ctl_display_some_debug(struct MPT3SAS_ADAPTER *ioc, u16 smid, case MPI2_FUNCTION_NVME_ENCAPSULATED: desc = "nvme_encapsulated"; break; + case MPI2_FUNCTION_MCTP_PASSTHROUGH: + desc = "mctp_passthrough"; + break; } if (!desc) @@ -652,6 +655,40 @@ _ctl_set_task_mid(struct MPT3SAS_ADAPTER *ioc, struct mpt3_ioctl_command *karg, return 0; } +/** + * _ctl_send_mctp_passthru_req - Send an MCTP passthru request + * @ioc: per adapter object + * @mctp_passthru_req: MPI mctp passhthru request from caller + * @psge: pointer to the H2DSGL + * @data_out_dma: DMA buffer for H2D SGL + * @data_out_sz: H2D length + * @data_in_dma: DMA buffer for D2H SGL + * @data_in_sz: D2H length + * @smid: SMID to submit the request + * + */ +static void +_ctl_send_mctp_passthru_req( + struct MPT3SAS_ADAPTER *ioc, + Mpi26MctpPassthroughRequest_t *mctp_passthru_req, void *psge, + dma_addr_t data_out_dma, int data_out_sz, + dma_addr_t data_in_dma, int data_in_sz, + u16 smid) +{ + mctp_passthru_req->H2DLength = data_out_sz; + mctp_passthru_req->D2HLength = data_in_sz; + + /* Build the H2D SGL from the data out buffer */ + ioc->build_sg(ioc, psge, data_out_dma, data_out_sz, 0, 0); + + psge += ioc->sge_size_ieee; + + /* Build the D2H SGL for the data in buffer*/ + ioc->build_sg(ioc, psge, 0, 0, data_in_dma, data_in_sz); + + ioc->put_smid_default(ioc, smid); +} + /** * _ctl_do_mpt_command - main handler for MPT3COMMAND opcode * @ioc: per adapter object @@ -792,6 +829,23 @@ _ctl_do_mpt_command(struct MPT3SAS_ADAPTER *ioc, struct mpt3_ioctl_command karg, init_completion(&ioc->ctl_cmds.done); switch (mpi_request->Function) { + case MPI2_FUNCTION_MCTP_PASSTHROUGH: + { + Mpi26MctpPassthroughRequest_t *mctp_passthru_req = + (Mpi26MctpPassthroughRequest_t *)request; + + if (!(ioc->facts.IOCCapabilities & MPI26_IOCFACTS_CAPABILITY_MCTP_PASSTHRU)) { + ioc_err(ioc, "%s: MCTP Passthrough request not supported\n", + __func__); + mpt3sas_base_free_smid(ioc, smid); + ret = -EINVAL; + goto out; + } + + _ctl_send_mctp_passthru_req(ioc, mctp_passthru_req, psge, data_out_dma, + data_out_sz, data_in_dma, data_in_sz, smid); + break; + } case MPI2_FUNCTION_NVME_ENCAPSULATED: { nvme_encap_request = (Mpi26NVMeEncapsulatedRequest_t *)request; @@ -2786,6 +2840,217 @@ _ctl_ioctl_main(struct file *file, unsigned int cmd, void __user *arg, return ret; } +/** + * _ctl_get_mpt_mctp_passthru_adapter - Traverse the IOC list and return the IOC at + * dev_index positionthat support MCTP passhtru + * @dev_index: position in the mpt3sas_ioc_list to search for + * Return pointer to the IOC on success + * NULL if device not found error + */ +static struct MPT3SAS_ADAPTER * +_ctl_get_mpt_mctp_passthru_adapter(int dev_index) +{ + struct MPT3SAS_ADAPTER *ioc = NULL; + int count = 0; + + spin_lock(&gioc_lock); + /* Traverse ioc list and return number of IOC that support MCTP passthru */ + list_for_each_entry(ioc, &mpt3sas_ioc_list, list) { + if (ioc->facts.IOCCapabilities & MPI26_IOCFACTS_CAPABILITY_MCTP_PASSTHRU) { + if (count == dev_index) { + spin_unlock(&gioc_lock); + return 0; + } + } + } + spin_unlock(&gioc_lock); + + return NULL; +} + +/** + * mpt3sas_get_device_count - Retrieve the count of MCTP passthrough + * capable devices managed by the driver. + * + * Returns number of devices that support MCTP passthrough. + */ +int +mpt3sas_get_device_count(void) +{ + int count = 0; + struct MPT3SAS_ADAPTER *ioc = NULL; + + spin_lock(&gioc_lock); + /* Traverse ioc list and return number of IOC that support MCTP passthru */ + list_for_each_entry(ioc, &mpt3sas_ioc_list, list) + if (ioc->facts.IOCCapabilities & MPI26_IOCFACTS_CAPABILITY_MCTP_PASSTHRU) + count++; + + spin_unlock(&gioc_lock); + + return count; +} +EXPORT_SYMBOL(mpt3sas_get_device_count); + +/** + * mpt3sas_send_passthru_cmd - Send an MPI MCTP passthrough command to + * firmware + * @command: The MPI MCTP passthrough command to send to firmware + * + * Returns 0 on success, anything else is error. + */ +int mpt3sas_send_mctp_passthru_req(struct mpt3_passthru_command *command) +{ + struct MPT3SAS_ADAPTER *ioc; + MPI2RequestHeader_t *mpi_request = NULL, *request; + MPI2DefaultReply_t *mpi_reply; + Mpi26MctpPassthroughRequest_t *mctp_passthru_req; + u16 smid; + unsigned long timeout; + u8 issue_reset = 0; + u32 sz; + void *psge; + void *data_out = NULL; + dma_addr_t data_out_dma = 0; + size_t data_out_sz = 0; + void *data_in = NULL; + dma_addr_t data_in_dma = 0; + size_t data_in_sz = 0; + long ret; + + /* Retrieve ioc from dev_index */ + ioc = _ctl_get_mpt_mctp_passthru_adapter(command->dev_index); + if (!ioc) + return -ENODEV; + + mutex_lock(&ioc->pci_access_mutex); + if (ioc->shost_recovery || + ioc->pci_error_recovery || ioc->is_driver_loading || + ioc->remove_host) { + ret = -EAGAIN; + goto unlock_pci_access; + } + + /* Lock the ctl_cmds mutex to ensure a single ctl cmd is pending */ + if (mutex_lock_interruptible(&ioc->ctl_cmds.mutex)) { + ret = -ERESTARTSYS; + goto unlock_pci_access; + } + + if (ioc->ctl_cmds.status != MPT3_CMD_NOT_USED) { + ioc_err(ioc, "%s: ctl_cmd in use\n", __func__); + ret = -EAGAIN; + goto unlock_ctl_cmds; + } + + ret = mpt3sas_wait_for_ioc(ioc, IOC_OPERATIONAL_WAIT_COUNT); + if (ret) + goto unlock_ctl_cmds; + + mpi_request = (MPI2RequestHeader_t *)command->mpi_request; + if (mpi_request->Function != MPI2_FUNCTION_MCTP_PASSTHROUGH) { + ioc_err(ioc, "%s: Invalid request receveid, Function 0x%x\n", + __func__, mpi_request->Function); + ret = -EINVAL; + goto unlock_ctl_cmds; + } + + /* Use first reserved smid for passthrough commands */ + smid = ioc->scsiio_depth - INTERNAL_SCSIIO_CMDS_COUNT + 1; + ret = 0; + ioc->ctl_cmds.status = MPT3_CMD_PENDING; + memset(ioc->ctl_cmds.reply, 0, ioc->reply_sz); + request = mpt3sas_base_get_msg_frame(ioc, smid); + memset(request, 0, ioc->request_sz); + memcpy(request, command->mpi_request, sizeof(Mpi26MctpPassthroughRequest_t)); + ioc->ctl_cmds.smid = smid; + data_out_sz = command->data_out_size; + data_in_sz = command->data_in_size; + + /* obtain dma-able memory for data transfer */ + if (data_out_sz) /* WRITE */ { + data_out = dma_alloc_coherent(&ioc->pdev->dev, data_out_sz, + &data_out_dma, GFP_ATOMIC); + if (!data_out) { + ret = -ENOMEM; + mpt3sas_base_free_smid(ioc, smid); + goto out; + } + memcpy(data_out, command->data_out_buf_ptr, data_out_sz); + + } + + if (data_in_sz) /* READ */ { + data_in = dma_alloc_coherent(&ioc->pdev->dev, data_in_sz, + &data_in_dma, GFP_ATOMIC); + if (!data_in) { + ret = -ENOMEM; + mpt3sas_base_free_smid(ioc, smid); + goto out; + } + } + + psge = &((Mpi26MctpPassthroughRequest_t *)request)->H2DSGL; + + init_completion(&ioc->ctl_cmds.done); + + mctp_passthru_req = (Mpi26MctpPassthroughRequest_t *)request; + + _ctl_send_mctp_passthru_req(ioc, mctp_passthru_req, psge, data_out_dma, + data_out_sz, data_in_dma, data_in_sz, smid); + + timeout = command->timeout; + if (timeout < MPT3_IOCTL_DEFAULT_TIMEOUT) + timeout = MPT3_IOCTL_DEFAULT_TIMEOUT; + + wait_for_completion_timeout(&ioc->ctl_cmds.done, timeout*HZ); + if (!(ioc->ctl_cmds.status & MPT3_CMD_COMPLETE)) { + mpt3sas_check_cmd_timeout(ioc, + ioc->ctl_cmds.status, mpi_request, + sizeof(Mpi26MctpPassthroughRequest_t), issue_reset); + goto issue_host_reset; + } + + mpi_reply = ioc->ctl_cmds.reply; + + /* copy out xdata to user */ + if (data_in_sz) + memcpy(command->data_in_buf_ptr, data_in, data_in_sz); + + /* copy out reply message frame to user */ + if (command->max_reply_bytes) { + sz = min_t(u32, command->max_reply_bytes, ioc->reply_sz); + memcpy(command->reply_frame_buf_ptr, ioc->ctl_cmds.reply, sz); + } + +issue_host_reset: + if (issue_reset) { + ret = -ENODATA; + mpt3sas_base_hard_reset_handler(ioc, FORCE_BIG_HAMMER); + } + +out: + /* free memory associated with sg buffers */ + if (data_in) + dma_free_coherent(&ioc->pdev->dev, data_in_sz, data_in, + data_in_dma); + + if (data_out) + dma_free_coherent(&ioc->pdev->dev, data_out_sz, data_out, + data_out_dma); + + ioc->ctl_cmds.status = MPT3_CMD_NOT_USED; + +unlock_ctl_cmds: + mutex_unlock(&ioc->ctl_cmds.mutex); + +unlock_pci_access: + mutex_unlock(&ioc->pci_access_mutex); + return ret; + +} +EXPORT_SYMBOL(mpt3sas_send_mctp_passthru_req); + /** * _ctl_ioctl - mpt3ctl main ioctl entry point (unlocked) * @file: (struct file) diff --git a/drivers/scsi/mpt3sas/mpt3sas_ctl.h b/drivers/scsi/mpt3sas/mpt3sas_ctl.h index 171709e91006..6bc1fffb7a33 100644 --- a/drivers/scsi/mpt3sas/mpt3sas_ctl.h +++ b/drivers/scsi/mpt3sas/mpt3sas_ctl.h @@ -458,4 +458,46 @@ struct mpt3_enable_diag_sbr_reload { struct mpt3_ioctl_header hdr; }; +/** + * struct mpt3_passthru_command - generic mpt firmware passthru command + * @dev_index - device index + * @timeout - command timeout in seconds. (if zero then use driver default + * value). + * @reply_frame_buf_ptr - MPI reply location + * @data_in_buf_ptr - destination for read + * @data_out_buf_ptr - data source for write + * @max_reply_bytes - maximum number of reply bytes to be sent to app. + * @data_in_size - number bytes for data transfer in (read) + * @data_out_size - number bytes for data transfer out (write) + * @mpi_request - request frame + */ +struct mpt3_passthru_command { + u8 dev_index; + uint32_t timeout; + void *reply_frame_buf_ptr; + void *data_in_buf_ptr; + void *data_out_buf_ptr; + uint32_t max_reply_bytes; + uint32_t data_in_size; + uint32_t data_out_size; + Mpi26MctpPassthroughRequest_t *mpi_request; +}; + +/* + * mpt3sas_get_device_count - Retrieve the count of MCTP passthrough + * capable devices managed by the driver. + * + * Returns number of devices that support MCTP passthrough. + */ +int mpt3sas_get_device_count(void); + +/* + * mpt3sas_send_passthru_cmd - Send an MPI MCTP passthrough command to + * firmware + * @command: The MPI MCTP passthrough command to send to firmware + * + * Returns 0 on success, anything else is error . + */ +int mpt3sas_send_mctp_passthru_req(struct mpt3_passthru_command *command); + #endif /* MPT3SAS_CTL_H_INCLUDED */ From patchwork Thu Feb 13 01:26:54 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shivasharan S X-Patchwork-Id: 13972692 Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D2CE780034 for ; Thu, 13 Feb 2025 01:40:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739410830; cv=none; b=Yp3f8NxW92e9+D1YmdMDGIS2pqPeHvC6Vl349LDH1xUZ0wj/QQs/buFK+K28xhRUGIEtRlLZWxkyiJao581+M9a48kQhc8UrlGL7inFz7orSNyvCpMKSY73dNDD/5D+L3ZcOfLq+ma12JRNmcf+UMrTvj/mxHCWR6a1lAzii2vk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739410830; c=relaxed/simple; bh=bPI36BfzP0kWZuv06S7SuzAwfHPhp3MD1KHJTto7G7k=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References; b=SScnkOQ98cb/hy0tCllgCLWlzAufiuylKIAki/8sQ9rZYVc/JUPa6w/HJVYleFOzoa+QfJv50Jvs0q5bHXyvXcUGOKoTDewDL+xVeMRzJ9BCm+7hUU7XKmhXd1KlVLuLqD8OuuXO/h4w+Ma4qKb/Ki4UuzLM07d4LUwL2bDaOCk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=AS5dbepp; arc=none smtp.client-ip=209.85.214.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="AS5dbepp" Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-21f818a980cso4095995ad.3 for ; Wed, 12 Feb 2025 17:40:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1739410827; x=1740015627; darn=vger.kernel.org; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=BkoMvZuVdu59HnviV0YgD4bHTFYdW3NaoKkTnzYmcNY=; b=AS5dbepp1jOAOy/sevdE9qK537A2KfprRYdwT0rOsX2IUFx6+eERqLbhnvb9OdETkF CDlZxM9ZsUJbDkLSe48FvtSGXEj/zS5ZVikxQUta8aaUNONZ7cNEcE0mgQ38N/oMsH8h vDVJigF8XIqIUd/UIWzbZTiVr2ynCfUQfOJF0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739410827; x=1740015627; h=references:in-reply-to:message-id:date:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=BkoMvZuVdu59HnviV0YgD4bHTFYdW3NaoKkTnzYmcNY=; b=opXo9xJoF0iKnVtJw+DjMfA6Q4h0iOIW/4Y7dpu0C7v/g6QPWofifNvzZVdjpxOudO 4OLCJ7FAGRdc80dCphuyiwMz49wpT6mLrH0b0FRNcwgGgj3ycEFHmtMeE93FPGrq9I2H ZI3dIkR15IEwdPWQ3dpxJNk9Eevh2yH48u1tUES8Hs3vjlaFQozTamCSLFvz431lNchI 5cx/aSU1eSljSIy/IFMWIjlgUCxi+wi611C1B7ee1Ptau2emKfhKl7wSmPSYiXSW5axI iI7Eh96orXyHNLEkpqW0m5NexXhgLFtaWTLkUFmHa9FAtd0ZzZuZBnEcKNFimoozP+HQ sgSg== X-Gm-Message-State: AOJu0YylgL/ThhNfOGMyeFMGe0q2CtiewxTBptTELacmrI4SuoJ6UIka SBtpSmC/9q/MAmlPGEDJeQGubgU3QoXk9OsxYX1eD/CAheN/OAP27dsTfu2nZ+NlYcEerm4/bbJ MDNsSJHtB4TG26bXry6tgaLo6Sf4VNrdF0SROprS5eKY6uVJjej7Ovcrd2lrt0LGzgfdjBkb7TP VX4LYRQtllCU2ouIwxIeC0QaFhuMsnFFFJrzohgMgTJf+OMtCNzxcFDyqZWkbw3hMW X-Gm-Gg: ASbGncv8FxgBzlzuw+v1HrNmSXBRJcYo3z+hnScs86JbqbkG+Go5hOrVWafNAAmLCd6 G0VTOd6cte4FQZXW/Njoslk9qyu4UrowJVMy70klghCah6/Kz3/AVucGbXZr2pAbhhWuEEcuPFu HdPcOFaJMcbYWdMZ6R0prcRQiBSg1gRZqwcmYLGvcaUu9bOb1nGPhmKis5Wgqj+DDhnFPpFLWGM 2C82lctOY8h2rOFEBy/UXdQdxzvB2tltikwewZmxUf9gw60CydPJmWi7+29gMDK92xzD/411U5e v270JzEeQQKUYdyXyw0CY352ftArTQ6Jdx8SeM9/5+iCxTFZDYe2gKMr4dxUsSVrruvKdLks85T pl4XeDSKtZsAf6/LGOl4qDG8= X-Google-Smtp-Source: AGHT+IGHRJ402B6G0VJwmkwSoHTLEhp2Mg3kcOoUMhByikB5NaT94rNUDaOdJ+a+S08GiZMzVgE1BA== X-Received: by 2002:a05:6a21:2e81:b0:1ee:5cf2:9c04 with SMTP id adf61e73a8af0-1ee5cf29e98mr6936031637.8.1739410827219; Wed, 12 Feb 2025 17:40:27 -0800 (PST) Received: from dhcp-135-24-192-142.dhcp.broadcom.net ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73242761714sm106145b3a.133.2025.02.12.17.40.24 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 12 Feb 2025 17:40:26 -0800 (PST) From: Shivasharan S To: linux-scsi@vger.kernel.org, martin.petersen@oracle.com Cc: sathya.prakash@broadcom.com, ranjan.kumar@broadcom.com, suganath-prabu.subramani@broadcom.com, sumit.saxena@broadcom.com, Shivasharan S Subject: [PATCH 3/5] mpt3sas: Report driver capability as part of IOCINFO command Date: Wed, 12 Feb 2025 17:26:54 -0800 Message-Id: <1739410016-27503-4-git-send-email-shivasharan.srikanteshwara@broadcom.com> X-Mailer: git-send-email 2.4.3 In-Reply-To: <1739410016-27503-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> References: <1739410016-27503-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> Precedence: bulk X-Mailing-List: linux-scsi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Add a new capability field to report the MCTP passthrough support to applications. Signed-off-by: Shivasharan S --- drivers/scsi/mpt3sas/mpt3sas_ctl.c | 2 ++ drivers/scsi/mpt3sas/mpt3sas_ctl.h | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/scsi/mpt3sas/mpt3sas_ctl.c b/drivers/scsi/mpt3sas/mpt3sas_ctl.c index 54a8a9c3ce5f..a731622f2f65 100644 --- a/drivers/scsi/mpt3sas/mpt3sas_ctl.c +++ b/drivers/scsi/mpt3sas/mpt3sas_ctl.c @@ -1254,6 +1254,8 @@ _ctl_getiocinfo(struct MPT3SAS_ADAPTER *ioc, void __user *arg) } karg.bios_version = le32_to_cpu(ioc->bios_pg3.BiosVersion); + karg.driver_capability |= MPT3_IOCTL_IOCINFO_DRIVER_CAP_MCTP_PASSTHRU; + if (copy_to_user(arg, &karg, sizeof(karg))) { pr_err("failure at %s:%d/%s()!\n", __FILE__, __LINE__, __func__); diff --git a/drivers/scsi/mpt3sas/mpt3sas_ctl.h b/drivers/scsi/mpt3sas/mpt3sas_ctl.h index 6bc1fffb7a33..483e0549c02f 100644 --- a/drivers/scsi/mpt3sas/mpt3sas_ctl.h +++ b/drivers/scsi/mpt3sas/mpt3sas_ctl.h @@ -160,6 +160,9 @@ struct mpt3_ioctl_pci_info { #define MPT3_IOCTL_INTERFACE_SAS35 (0x07) #define MPT2_IOCTL_VERSION_LENGTH (32) +/* Bits set for mpt3_ioctl_iocinfo.driver_cap */ +#define MPT3_IOCTL_IOCINFO_DRIVER_CAP_MCTP_PASSTHRU 0x1 + /** * struct mpt3_ioctl_iocinfo - generic controller info * @hdr - generic header @@ -175,6 +178,7 @@ struct mpt3_ioctl_pci_info { * @driver_version - driver version - 32 ASCII characters * @rsvd1 - reserved * @scsi_id - scsi id of adapter 0 + * @driver_capability - driver capabilities * @rsvd2 - reserved * @pci_information - pci info (2nd revision) */ @@ -192,7 +196,8 @@ struct mpt3_ioctl_iocinfo { uint8_t driver_version[MPT2_IOCTL_VERSION_LENGTH]; uint8_t rsvd1; uint8_t scsi_id; - uint16_t rsvd2; + uint8_t driver_capability; + uint8_t rsvd2; struct mpt3_ioctl_pci_info pci_information; }; From patchwork Thu Feb 13 01:26:55 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shivasharan S X-Patchwork-Id: 13972693 Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D510280034 for ; Thu, 13 Feb 2025 01:40:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739410833; cv=none; b=rZRzRJd0SQ2+xjyCHCihv0/PTQaTr8tOHzxhY4VV/meZtVJmtyRGV6ycNPCjutx/iwB0Jeh65lm8pt0Kd5lHGDEZuh/BcelaitLcimr9QxVX9px+GrByusfzPcAF/ORCPG1QtuhSy8C7VcVrayriaYqVtF6ZR44PCVbpeb5+Wn8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739410833; c=relaxed/simple; bh=+b+xxworQf8oCW/rqu8wkmimAM5K8AbdPbdbINRs6Aw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References; b=miM2hXJTv9QmQEtJ4uD2sGvhfYdkTYbvSpkzweVSJP9nqAsiwTukljAkj0vSzvGhlH5zAPPKTjQRwv5KGRYTFtWHjMIkD+sZmYYDckcdMtpURGhckno+kpj1NEWcqK6T/Q84GAB7GWxn1vjQ52apmD4fvV5hXwFe0Y8NSTYl9pM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=M+R5lx8w; arc=none smtp.client-ip=209.85.214.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="M+R5lx8w" Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-220c2a87378so4147215ad.1 for ; Wed, 12 Feb 2025 17:40:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1739410830; x=1740015630; darn=vger.kernel.org; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=7McbLFUCln5RZrUsl2n96zgHAF5NfFLqrQ1k2f39Emg=; b=M+R5lx8wXJd0HI0X/bTQowKToJttfwlMy7pr5wAlikM5sFmlZFVljEcCsKAhucYp5q YdA7dNBa3Mr69mIzyp4EdGmKCMDNoL2PgMdP5wMyTnk22V/8X8UYi/gQFm96FA+XJ3Ij CacP1F2dAvQHt/OGyiPZT5u2/xb2zUTaygXlA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739410830; x=1740015630; h=references:in-reply-to:message-id:date:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=7McbLFUCln5RZrUsl2n96zgHAF5NfFLqrQ1k2f39Emg=; b=xNquoRMeAoRPVesTapB86f8LaQ7s9gBF9iU8DNUytdYwiVL3KGPxJy7IfvhMQNhprr qOT3XOmGzac6MAcf1486svLWM04cWW9Q6qFWq4e8i7JqnyY/ZQSCETiJNwWrbDFIOhrp DuMZzkmFlL8agGSuoZWqwCkZiIdhPJgas/8g+kMWqqLmGGmjQtWa3DTIZ0X+5H7leQtJ Yk0lfxiBtx19BMOU4FrMi6YvwckQi+3H+8wm2/Xpd8x098bkKtqog/P/Q0ILG2R0b1Dh 4kdtSQpMAF8Vgm2YS77g8RUBiwjrUiU1bh0/UbVl0NxtU1xIOnofwlYUwQ3nLV/FIX0w XQug== X-Gm-Message-State: AOJu0Yy8QQtCHINUbln22+Iz2p9TTmpnLY9kyb8RQ9VeWsBW4iLI3CB4 /TNG6U0J7/6tQDUjUGUB/dXS0Zl9EAQT8KSZhjsXf78jOAoSPwwoZD+ciE0lsNVpm4Rjkd8a83B ljL2xz14MBFzexvXqfs/P+ca+99U92kS/+MN6Z8Auh0VMKc1JcL1hghx4HrAMneyEAYvFTPxaR8 zPyqxBKmhE5cg7x/FJjrhIbRrv0G3dLU5PLACbNz522oIYNUapabq00XScFKVCuaSv X-Gm-Gg: ASbGncvHCjXjs9UvmspPSD9JVBEeedLBDlO/Jra0QhxYtC4MhC4/Nz8O2QF4qcHFrLr B7iZBAmSPGzkY4x25hHM94Ho8XHMB2dq6bmatPUJlHrdoZLTe3bmjUyvptZH+h8SevIFeHuCmnB tQMhwPzODh/wV0NQZtKF5+S99r+QsYOgt+xC5aToAmXObiSP8+Yat2M6jcsxaDN7LC0pAh1T1RW h+DQpYToCTw4cRAHLJtG7v5S9gqygfBwJ/y1EeV/2iXRutvMDa66FhXpANeFjzxUZprEWYASX5V tAPhHDfn1amCR9V6gQyGCOg98h7mXfZZL4K9jPk0O5Js6ieP0O2xEN6vCIJ2XPTdgOh5dy/aXUr fOCWZVGjU9HLOJkXU4LUtddU= X-Google-Smtp-Source: AGHT+IGufLInw4O9quXVi1kQmiObioK9E3UvK1CHlILK9ruRYAah5SKaeSj1Z915D0X8gwHhFOL9tg== X-Received: by 2002:a05:6a00:1c8d:b0:730:7600:aeab with SMTP id d2e1a72fcca58-7322c39cc21mr8165505b3a.13.1739410830094; Wed, 12 Feb 2025 17:40:30 -0800 (PST) Received: from dhcp-135-24-192-142.dhcp.broadcom.net ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73242761714sm106145b3a.133.2025.02.12.17.40.27 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 12 Feb 2025 17:40:29 -0800 (PST) From: Shivasharan S To: linux-scsi@vger.kernel.org, martin.petersen@oracle.com Cc: sathya.prakash@broadcom.com, ranjan.kumar@broadcom.com, suganath-prabu.subramani@broadcom.com, sumit.saxena@broadcom.com, Shivasharan S Subject: [PATCH 4/5] mpt3sas: Send a diag reset if target reset fails Date: Wed, 12 Feb 2025 17:26:55 -0800 Message-Id: <1739410016-27503-5-git-send-email-shivasharan.srikanteshwara@broadcom.com> X-Mailer: git-send-email 2.4.3 In-Reply-To: <1739410016-27503-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> References: <1739410016-27503-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> Precedence: bulk X-Mailing-List: linux-scsi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: When an IOCTL times out and driver issues a target reset, if firmware fails the task management elevate the recovery by issuing a diag reset to controller. Signed-off-by: Shivasharan S --- drivers/scsi/mpt3sas/mpt3sas_ctl.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/mpt3sas/mpt3sas_ctl.c b/drivers/scsi/mpt3sas/mpt3sas_ctl.c index a731622f2f65..13ba91d21fbb 100644 --- a/drivers/scsi/mpt3sas/mpt3sas_ctl.c +++ b/drivers/scsi/mpt3sas/mpt3sas_ctl.c @@ -716,6 +716,7 @@ _ctl_do_mpt_command(struct MPT3SAS_ADAPTER *ioc, struct mpt3_ioctl_command karg, size_t data_in_sz = 0; long ret; u16 device_handle = MPT3SAS_INVALID_DEVICE_HANDLE; + int tm_ret; issue_reset = 0; @@ -1174,18 +1175,25 @@ _ctl_do_mpt_command(struct MPT3SAS_ADAPTER *ioc, struct mpt3_ioctl_command karg, if (pcie_device && (!ioc->tm_custom_handling) && (!(mpt3sas_scsih_is_pcie_scsi_device( pcie_device->device_info)))) - mpt3sas_scsih_issue_locked_tm(ioc, + tm_ret = mpt3sas_scsih_issue_locked_tm(ioc, le16_to_cpu(mpi_request->FunctionDependent1), 0, 0, 0, MPI2_SCSITASKMGMT_TASKTYPE_TARGET_RESET, 0, 0, pcie_device->reset_timeout, MPI26_SCSITASKMGMT_MSGFLAGS_PROTOCOL_LVL_RST_PCIE); else - mpt3sas_scsih_issue_locked_tm(ioc, + tm_ret = mpt3sas_scsih_issue_locked_tm(ioc, le16_to_cpu(mpi_request->FunctionDependent1), 0, 0, 0, MPI2_SCSITASKMGMT_TASKTYPE_TARGET_RESET, 0, 0, 30, MPI2_SCSITASKMGMT_MSGFLAGS_LINK_RESET); + + if (tm_ret != SUCCESS) { + ioc_info(ioc, + "target reset failed, issue hard reset: handle (0x%04x)\n", + le16_to_cpu(mpi_request->FunctionDependent1)); + mpt3sas_base_hard_reset_handler(ioc, FORCE_BIG_HAMMER); + } } else mpt3sas_base_hard_reset_handler(ioc, FORCE_BIG_HAMMER); } From patchwork Thu Feb 13 01:26:56 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shivasharan S X-Patchwork-Id: 13972694 Received: from mail-pl1-f179.google.com (mail-pl1-f179.google.com [209.85.214.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2458680034 for ; Thu, 13 Feb 2025 01:40:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739410837; cv=none; b=g229vRMLaEb18Hy0lI7qA3bq+gO10QCRGiAZ/NAkATEciPx7NiVbL74y7GPcistwpd5njRKyMZJKjfLLHr+9ouDtaHBCG82yNffyLgNHOVKyu7d4W+VG/iS+WKpKseYjH+TiBrr8xmYfMsYNV7eEYVawcdvssTN2lHte/wzoidI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739410837; c=relaxed/simple; bh=ev6iTTElWt4AG4XRLDdKcg+sx1feaGFSWjETf2mv0Kw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References; b=S7FUUNOs2KORAupFRjtG9dUMCkExXvjnkpfGLZ01Hq4h3LgF5oHtoSooQ4/scHZMXGOar8nWOVjRXCaJflcW+JSPiKvYsFuqtcQ2KbRlo0iPdM8CPTbOlomd9yKn3v/D6k4kRXlB9lHeAfCR83ot0tTlREb4stEf58bKfAEtvSU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=f8Snl7vl; arc=none smtp.client-ip=209.85.214.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="f8Snl7vl" Received: by mail-pl1-f179.google.com with SMTP id d9443c01a7336-220d132f16dso4226225ad.0 for ; Wed, 12 Feb 2025 17:40:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1739410833; x=1740015633; darn=vger.kernel.org; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=kmZRvmcVoXxgd9kWHLaNNBAR51uRBy418tfhdq691tY=; b=f8Snl7vluHa/VFH1ByxnMm1MWrIo4GqP7WqJY4VmQXnzh/7CcTGP8qzkOzxqPFr7pK 3Zie5u397T3LjyaFyxHT874gaHw5uuUS1hMWAk9hENj/Eyr9v7OI6nNwWnmlfJCAChCU Rr8jhMIkXNvXrgVRqhS338FCmIspLuoXyGzxc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739410833; x=1740015633; h=references:in-reply-to:message-id:date:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=kmZRvmcVoXxgd9kWHLaNNBAR51uRBy418tfhdq691tY=; b=VU4MdTkYhK/LEbqJQ22nPq9WHBZ/yPZgTedpLlaWXk2UoFVROWU0Z7WQGqib0akdnw AA38JoqLH0DfSBXrWm1YX8GbOnySl9I7xpOrlC7GRt7ePOK6ZVQBZM4Lq62L8aMu1Ujh mliAeTA/r/LUIe/XaYY0w0yI+K0v6XQH/FSS07cB5S9t4IZ6jF0gKTRbdM3RMg4f5iPB 4rQmCM/2NvmdTn2VZNVIivO0bDZaOmwPwqy7/324bAAvOGBQh80NODeggSUerwdNQypY 1thBmNBW4oUH7LHVm8lyXn2lX6x34ZYEvFoNMgkMl1W0jwdnftA/VkDhtuvZBj+oiKMe fFEw== X-Gm-Message-State: AOJu0Yy8INBzryRjNv2STuDeepaDH7Rkoby26Az8O8N93dPFX9QArKDt RtuSyKWarBA8ZsdshYGSgvuC8bvp7JlQaRBXrbmIZnbIxOOsGIuylOL1MvZxsWSTSaTweDLtGWe WWIBj7M5hRJEyHRsFGgLfl6K0LK8qB5wfBIl2lhWbxBuw4GX1VNEyc5ABydFXdcTY0t8Som5cWl 8/i3z1E9YsYfxRFXLyIZWfYkxAlmYkSHbLvUeqk5ciIQbDE0eQ7mi3SE9lfC9HWoRT X-Gm-Gg: ASbGncuNs8QrSrkr2bX6OzVDtlKonjUpYU3wsUwabUlZeZostsqZ18hYVPn1VZaEL0T FkEaFDwTrciW+VzFS8ws2Ea1pT5rtZ4xF1thWQJLs3ktAt9qtcQcMm6vjv0ZFsISaG8krVsftEc A4OBJu1KFm+yE2HvnHX2F6lovgzYsIc09hSgwMMoBd8Reo9Z6Vh9bELrA+DYbfjfT8MApd/pl7a dmxOq4ggGeWwq8tAvpLn+hIEwQZkoA0NKcvU5XILgy24d7M829HlmjFvaIuTzyG3GW2dTjUoS5I OVVg05LMK17eA4RfQPaVVIkgPN73YulauIaymiegBD2tTegDkXkRTY2kApeg+4wuJS5qV2mTvtw jLwxZvaJH0j89E1cxeyt+3QY= X-Google-Smtp-Source: AGHT+IFVAA2rQItD8NOYU4tnNo0NH0V12SU4z3L3KuythWPOUna9G6Ze3/jzcbVKyRkdsO1UTb+fRw== X-Received: by 2002:a05:6a00:841:b0:730:7885:d902 with SMTP id d2e1a72fcca58-7322c0a2f86mr8829754b3a.0.1739410832924; Wed, 12 Feb 2025 17:40:32 -0800 (PST) Received: from dhcp-135-24-192-142.dhcp.broadcom.net ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73242761714sm106145b3a.133.2025.02.12.17.40.30 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 12 Feb 2025 17:40:32 -0800 (PST) From: Shivasharan S To: linux-scsi@vger.kernel.org, martin.petersen@oracle.com Cc: sathya.prakash@broadcom.com, ranjan.kumar@broadcom.com, suganath-prabu.subramani@broadcom.com, sumit.saxena@broadcom.com, Shivasharan S Subject: [PATCH 5/5] mpt3sas: update driver version to 52.100.00.00 Date: Wed, 12 Feb 2025 17:26:56 -0800 Message-Id: <1739410016-27503-6-git-send-email-shivasharan.srikanteshwara@broadcom.com> X-Mailer: git-send-email 2.4.3 In-Reply-To: <1739410016-27503-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> References: <1739410016-27503-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> Precedence: bulk X-Mailing-List: linux-scsi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Signed-off-by: Shivasharan S --- drivers/scsi/mpt3sas/mpt3sas_base.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.h b/drivers/scsi/mpt3sas/mpt3sas_base.h index d8d1a64b4764..4f871a83d04f 100644 --- a/drivers/scsi/mpt3sas/mpt3sas_base.h +++ b/drivers/scsi/mpt3sas/mpt3sas_base.h @@ -77,8 +77,8 @@ #define MPT3SAS_DRIVER_NAME "mpt3sas" #define MPT3SAS_AUTHOR "Avago Technologies " #define MPT3SAS_DESCRIPTION "LSI MPT Fusion SAS 3.0 Device Driver" -#define MPT3SAS_DRIVER_VERSION "51.100.00.00" -#define MPT3SAS_MAJOR_VERSION 51 +#define MPT3SAS_DRIVER_VERSION "52.100.00.00" +#define MPT3SAS_MAJOR_VERSION 52 #define MPT3SAS_MINOR_VERSION 100 #define MPT3SAS_BUILD_VERSION 00 #define MPT3SAS_RELEASE_VERSION 00