From patchwork Thu Apr 18 16:04:26 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 13635055 X-Patchwork-Delegate: kw@linux.com Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04on2040.outbound.protection.outlook.com [40.107.7.40]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7A64217109D; Thu, 18 Apr 2024 16:05:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.7.40 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713456304; cv=fail; b=a2KTh34p5gf5zsJnnVxdhbr6qEEaWssqWyb9oszK6Fj7hDgPgSjsHte8iMj+FBSDyx0MQ6tFdDdTQYFREOEXvpL3FDdmSHfIV1a6k3JfdKIC6d8FyopHGn0N5FV+xeM3teD41rs1E7XJuqMzB3GL060n/p5n6HkRchpsv4lBbIU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713456304; c=relaxed/simple; bh=iaMVhIlaxnDKrjo/B86UwmBA4lUHgRwjSU/hHDluay0=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=JXU0Fd1BeI8l76zUYSI4uDPfhD+TcYfGtyWm/xpHDFJ9RHvOsAzdGCZWptYYUxsUZYhFJFyNj++mGSM52jRMgBDp1o0pu/gnzvQxP3rw24m/jle9Iu3+2TgzV21/Olf/Mj3arNHVPgF6BaAm2AK3utk5xKOvOnNbGHzd13zNNdY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b=LoDvq+7+; arc=fail smtp.client-ip=40.107.7.40 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="LoDvq+7+" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HEYhfhLhaKwpRUauQU/g0R0mkqSqRb3QhONKflaexF/MDUakjptF8hA/iMOlEpj/RA6DwlFKdKzLFAF48MVwurJHInDovQRWpJRN1N5hcNvU4MRt+BSX8Mh0aJbfxUjG7O0nQ6ZYisDO41ZFEpblbIfk/NzY0GvsELJxDtdqxXDSsMu+qmkFvgPbLPAMpFebu3Lng8ZIwhAJKmGKKCuG57KveKFJ+TOOdCqFpk3Xfpq5B4i9zHweD/ePCqEsJfIWK6u+oQ0YiQPfPcE2VKTiNqckHNSqRRSnGFfRHg9acfMkLxFMrYJDnNTCnXJs3iDVNyjIi/ZNiZWQfZLWZus/fg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=wqraZNkbMXJ8bdVBUWBtPeGCWP+ilAu0pVj9SSD+e7E=; b=GhqTW8eKCMBMnWx0MWgRw47lNzdP89dnOt10db4GvYAYtKW5mHe/DxAHqLnxccIWVT84fyq+sXqrNneH/1k3/2qUvr9GedlIg8aRQ07VV/9YMYhi1bC0BVpWZi+3MViqC/wVmbWoO4Q1f7y7WCXXNvHo4Wxue2wItjp8dojAUBH5P/cfTgX0u5YqQZBxAz/ylkzlcBz4NUNwckoqZZeGhDV107dY2I52t7bW2MLvtCRKu7swKjwaFbs65MpMryy6uIM9YFksWqFT65xsL9ZHlLtfmRheok/R+FG+Ox6VeX52I2/zuighUoQ/gsNm2aVQDuD94Xtpat29wVY4SnC4Kw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wqraZNkbMXJ8bdVBUWBtPeGCWP+ilAu0pVj9SSD+e7E=; b=LoDvq+7+Oq8Oq/diMUt19H9B8qMxlmgYbIGOcOMBSua+9OZ7J3jyGz2RfYgIJRHefATDqEU7r+HF5737k5m0HGyOD04lvfkneY2qnD5I8g88PfqUKUic0d804ArqoyRiQ9siE79nOTfIJRLednY1iEAHVnEUxPuFkWV1axxrDc4= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) by AS1PR04MB9405.eurprd04.prod.outlook.com (2603:10a6:20b:4db::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7472.37; Thu, 18 Apr 2024 16:04:53 +0000 Received: from PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::1e67:dfc9:d0c1:fe58]) by PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::1e67:dfc9:d0c1:fe58%7]) with mapi id 15.20.7472.037; Thu, 18 Apr 2024 16:04:53 +0000 From: Frank Li Date: Thu, 18 Apr 2024 12:04:26 -0400 Subject: [PATCH v8 3/5] PCI: dwc: Add outbound MSG TLPs support Message-Id: <20240418-pme_msg-v8-3-a54265c39742@nxp.com> References: <20240418-pme_msg-v8-0-a54265c39742@nxp.com> In-Reply-To: <20240418-pme_msg-v8-0-a54265c39742@nxp.com> To: Bjorn Helgaas , Jingoo Han , Gustavo Pimentel , Manivannan Sadhasivam , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy?= =?utf-8?q?=C5=84ski?= , Rob Herring , Krzysztof Kozlowski , Conor Dooley , imx@lists.linux.dev Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Frank Li , Yoshihiro Shimoda , Serge Semin X-Mailer: b4 0.13-dev-e586c X-Developer-Signature: v=1; a=ed25519-sha256; t=1713456277; l=2940; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=Vx141tscxeq3VO/J2v1vu73YFB2QjcNfIuChtPapKMY=; b=iwOZqP2aKkz3fxHP7oY5DWiBJdfEOijN4F+94PRNyBFAZMed+ytRGZ5bgOuGqZYhezGenVATX nsaal95CH3oAgiz7IVWf3nvlj6//qmrc8bSwopuqWWlzbZBG0FFEfdh X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: BYAPR07CA0102.namprd07.prod.outlook.com (2603:10b6:a03:12b::43) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|AS1PR04MB9405:EE_ X-MS-Office365-Filtering-Correlation-Id: bcd93de1-41e3-4303-6dca-08dc5fc148aa X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 6GdEzSEt1fbBqePYEPYUPuukzsMKnGf4HHj2WBWHxohQBDDipjfodLlpaOGx0/djgCZhJjDEb8NuEIqOq6piwbosWqvYUy9zPcOy4QdZIN8k9efBodFYdgpq6J7iIokOTC2j946HCDmvxOW8+gEVxsjHvkKZk94WRg0TMgO8g0exdG/7R4EsUsR2tlYIaFI/6OkS6etj/uI1f77DPz4fHqEr54ijxSq+FRN1g5WXEGpAD5HrR2HE3aTLU2F8eR6MCcWCLh4WohQ0w+QHvjFHShqaSlq28Dzf/2EocXSABxFrv/6RNGFbcC7HPrRWLrEpZ302yFK+WOnJzN3hzNH6cq/Vy+cxPAvxn4LzBlcNUgCarfpM+yyGxkWFyBQhwbkZ7qXM4m6XGEU2tSB1J4wkUIQTGPKHKVO5dL7T786sntIWNAJQvQHRCr4zNFgauJ6AnjY+qlBYE0iN5z02UA1/6/2StiF3tKBMCGZizpC1h993pHARk8Z8QUfFU72xo5e8iqP16bQV/qA3iL2e7v3Fn77mggSu+c0h6Fhetaah/r2DdTPD17pUXxDsjZTrscgPT+21NDG/UT+WuBr2ly97oWqPi5GilVWDpLPc0jqwhXzE4C32Hdmm43bKX0dsfHXEAMYU2tk79q9j+11IrNLdDyl2s/7NIPzOcE7DfxJRaN3SEPfRYu1dBmY4cWKly1yrrQYDDf056zcqyq2nHyJWPGKZW7lFhUmGuf8IiHclBw8= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9642.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(7416005)(366007)(376005)(52116005)(1800799015)(38350700005)(921011);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?u9LOyHVdR6UpkLs0MXNnceXKVx6E?= =?utf-8?q?WCHhnY/B7TfrMNVfLkLACNG/gJ+s9icOobG9/1dwV1XSriRtcTv9lviKbvKiJBcp1?= =?utf-8?q?pO7yiSFeheC2uIk7xPgyk4N6Hsn09yOZ/KWAEjafVtGJtiE51Mgm28ZTD9q94hcCO?= =?utf-8?q?zhi2k7vJyBYDaDC3qn4sF0lzaeswjunHuApCQtG9gAuZkrUrHYhXo3CM5DOn8Svn/?= =?utf-8?q?S1ALFNf/Zcb+SM7dVpsHYzjFQdc0DDZR9ywqoT/BjCZmsoHwNxrE6WXQZzPQtdxMT?= =?utf-8?q?2kZuTlzgtKCUXGkaBeylBoyFf0i4jbKNMyYSnABSrO63981PewNtN6qphdKf7Sm/+?= =?utf-8?q?GqKrTGg8+uvqkWQfk+BqXpSnvCtNScoQJXV4I+i8ke7gB99ONCt5sJ8LYr8jZxK5Q?= =?utf-8?q?Pvl6U7WybGETrA1WOKhsyYe2dMxYne+x5CI7+PgxpJbhYDofGMO8wafVNO+Y0Jsms?= =?utf-8?q?NhXRVKSdiIkwROSfKjwuEYxMqNRcjzCHbetYy6THohIXyrNiGbGnH1VNtkByIb2Vb?= =?utf-8?q?8PBKUF1Qwy33g153PJo+L7eOyJuo7bsqoYVW/+x2gDso/JGGlNIgN8bbcYG8nQiiK?= =?utf-8?q?6IPYxXcQj42Hd4N6eyoYfOM9qXpcuxxxvRnQf3gRZof8mIb1YhUVTrveJ66h0gQB4?= =?utf-8?q?hrm4Yr4/QRzRbLJYbluTTCLownGbk4DfjIof63p9ufOtiAaCVLrwVrkcAUPylgXDk?= =?utf-8?q?ZDsn1N8CM3Xv9l4AWcJqf66kkAKg2FrcAUQ2iSrp5c2WCL4N5ugm8ZMt6ZwAMtxgh?= =?utf-8?q?GsaTLqtjXMij3YU+mfYZwDUURjsUwEyoAYoNq1xhwlATBGMx+anQiacnSCKxaPvqT?= =?utf-8?q?JkeaAUCnERpiwjyI/E8MGOmEzJDiCryo6Xs8U7YCFEceNEcLKesJqj1D+n9rwAMLI?= =?utf-8?q?3k4xd4zqtfdYZ21+K+PCq8u3guHW4wevgbvj4fnPby84lYJXo2VjqAET2q+HLRGcO?= =?utf-8?q?i5n3xrV/OrMGJHgbM39FGvsrYmP+9SWBVVLVq8AlaNObDHnMz0mM4+jxnKTYA5ucT?= =?utf-8?q?M+XKkaqKVDIe2I9NK79YUzvaXkA4jKKVznKgn0r7sx3IZUD+Q1EsOd/6ahBhQyzGP?= =?utf-8?q?FbGhKFJbN6O7PCeik9J1lpvrDBeUDEDaZhrokEYDo2UcmM+tJZ/vq8TCUyuFiFLsB?= =?utf-8?q?0INmsz52SvQwC7mevntQ7FIi1rq/ndfFE55c3LYw1G4HT5dUMZQBGLcgYL3jBuYuj?= =?utf-8?q?xiSVT7bq0xRPd3/EwBul45K5YktyPWf2hdDvl9zw3n2qQvkNdMOzeXUfQ7vfXFZKj?= =?utf-8?q?wS9wP+ehl22n3F2gv+ImXPfxJcJUrMpMphhUQnXGBcEi5XghiNKcMSRfOPXx2oO8/?= =?utf-8?q?bYU0nr2k45Y5AoFrkParKN8NoaRS/b+TgS+zacWUtqaLB8RiVhhjRyoKs2duzPMMv?= =?utf-8?q?p2v7eyYoqAznNY291red5j/2nPakfbnEBd18h0M5+e8dqj12BnKIOP68IFghSGK2R?= =?utf-8?q?kLoBTtJmKovCGJyuFsMyIo43tpL9yp4ile8pEneWNqqHm4tNpuieXf00fZl6KnRHO?= =?utf-8?q?2NlrlK12fWls?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: bcd93de1-41e3-4303-6dca-08dc5fc148aa X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2024 16:04:53.3528 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ZMmBmVZrchFIu7Z9PiqTblHGDriUzXijO9LsnDpDDck8MvI/CCVkgrLxMqbnlOR1WfZGhN7UEaeksDq+zKqNLQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS1PR04MB9405 From: Yoshihiro Shimoda Add "code" and "routing" into struct dw_pcie_ob_atu_cfg for triggering INTx IRQs by iATU in the PCIe endpoint mode in near the future. PCIE_ATU_INHIBIT_PAYLOAD is set to issue TLP type of Msg instead of MsgD. So, this implementation supports the data-less messages only for now. Signed-off-by: Yoshihiro Shimoda Reviewed-by: Serge Semin Reviewed-by: Manivannan Sadhasivam Signed-off-by: Frank Li --- drivers/pci/controller/dwc/pcie-designware.c | 9 +++++++-- drivers/pci/controller/dwc/pcie-designware.h | 4 ++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/pci/controller/dwc/pcie-designware.c b/drivers/pci/controller/dwc/pcie-designware.c index df2575ec5f44c..ba909fade9db1 100644 --- a/drivers/pci/controller/dwc/pcie-designware.c +++ b/drivers/pci/controller/dwc/pcie-designware.c @@ -499,7 +499,7 @@ int dw_pcie_prog_outbound_atu(struct dw_pcie *pci, dw_pcie_writel_atu_ob(pci, atu->index, PCIE_ATU_UPPER_TARGET, upper_32_bits(atu->pci_addr)); - val = atu->type | PCIE_ATU_FUNC_NUM(atu->func_no); + val = atu->type | atu->routing | PCIE_ATU_FUNC_NUM(atu->func_no); if (upper_32_bits(limit_addr) > upper_32_bits(cpu_addr) && dw_pcie_ver_is_ge(pci, 460A)) val |= PCIE_ATU_INCREASE_REGION_SIZE; @@ -507,7 +507,12 @@ int dw_pcie_prog_outbound_atu(struct dw_pcie *pci, val = dw_pcie_enable_ecrc(val); dw_pcie_writel_atu_ob(pci, atu->index, PCIE_ATU_REGION_CTRL1, val); - dw_pcie_writel_atu_ob(pci, atu->index, PCIE_ATU_REGION_CTRL2, PCIE_ATU_ENABLE); + val = PCIE_ATU_ENABLE; + if (atu->type == PCIE_ATU_TYPE_MSG) { + /* The data-less messages only for now */ + val |= PCIE_ATU_INHIBIT_PAYLOAD | atu->code; + } + dw_pcie_writel_atu_ob(pci, atu->index, PCIE_ATU_REGION_CTRL2, val); /* * Make sure ATU enable takes effect before any subsequent config diff --git a/drivers/pci/controller/dwc/pcie-designware.h b/drivers/pci/controller/dwc/pcie-designware.h index d21db82e586d5..703b50bc5e0f1 100644 --- a/drivers/pci/controller/dwc/pcie-designware.h +++ b/drivers/pci/controller/dwc/pcie-designware.h @@ -148,11 +148,13 @@ #define PCIE_ATU_TYPE_IO 0x2 #define PCIE_ATU_TYPE_CFG0 0x4 #define PCIE_ATU_TYPE_CFG1 0x5 +#define PCIE_ATU_TYPE_MSG 0x10 #define PCIE_ATU_TD BIT(8) #define PCIE_ATU_FUNC_NUM(pf) ((pf) << 20) #define PCIE_ATU_REGION_CTRL2 0x004 #define PCIE_ATU_ENABLE BIT(31) #define PCIE_ATU_BAR_MODE_ENABLE BIT(30) +#define PCIE_ATU_INHIBIT_PAYLOAD BIT(22) #define PCIE_ATU_FUNC_NUM_MATCH_EN BIT(19) #define PCIE_ATU_LOWER_BASE 0x008 #define PCIE_ATU_UPPER_BASE 0x00C @@ -303,6 +305,8 @@ struct dw_pcie_ob_atu_cfg { int index; int type; u8 func_no; + u8 code; + u8 routing; u64 cpu_addr; u64 pci_addr; u64 size;