From patchwork Tue Feb 15 05:38:40 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 12746512 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 76078C433EF for ; Tue, 15 Feb 2022 05:39:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234096AbiBOFjQ (ORCPT ); Tue, 15 Feb 2022 00:39:16 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:40732 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231736AbiBOFjP (ORCPT ); Tue, 15 Feb 2022 00:39:15 -0500 Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-eopbgr130059.outbound.protection.outlook.com [40.107.13.59]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F35471EC49 for ; Mon, 14 Feb 2022 21:39:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CJaFxI7gd2s6/1fAa6U7uUDYwP0avq4JLwOtHzRpWNBsfBShXWwirjRTnakz7mpHZ+5KUGtChHXdJcrqvN4Nm/RypFZ/RMaIofuAN8Wj0UCQ3+KCD0uNsFlr2Ofepwb8/Upe3/Xsye0dO972HZgTXMx3W0eAak84l7xoG8NgjY2lGJDbGngS2BGe6VU7JorliTagXVifUkr9I1FMC2aJ6OATpjfEVfSv0jTVwAmTaC1zkWAYFCxRrdOkdjDN8ZbxFSg/iYAQ1Mudj81pHWG62rXp2liWLmWjmfUrVHcuOPKu74ev5FSBvORFm+DzJLTWDfjQWnCb8QQ6MdPt6jRFsg== 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=7E9TI302vmvFAdeq+fTHqpTTfbu243i1Ka9tnIaM9ZU=; b=Tty3KzevGKYXT/hpNLWqcaIKgo7L++LRQk8Qja+JmG9W15FdfA9B7Pc5BtMUIQ9qhh/3JIVWeqJcRyTRUwpLpMbanUUKMOnECV5QSuT/c1mxPq7HWH1cg+yvD1ugQovKmnM62VWYC4yPXqTwDPGO1fnz0ps/ecJ8qc8o85zrHOQNhvYECgUaxTHSlGzMokKDDe8aH8/UGxjdZCP+vMD7g23OSbEf1InQFR8+zot1k0POcACZX0pd0IEyM/UDCZM1I3teMgGNcJalecM84D1PyAX1D8EnBp0MBxRZY/gif2it2b8uSA1ibQnP8Jy0uIll3q500aVU5hjDpV2n8Ub1sw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; 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=7E9TI302vmvFAdeq+fTHqpTTfbu243i1Ka9tnIaM9ZU=; b=mW6esEQCaa2gTKA/b6y/DwQtel+7E+oA2acxTXmQAlZjH+boDXNe2CkEZQlGbiZm0Zw01r6N7gf8e+TWdEaimqRbIXo4Y3qPvois797ghWYpK7QfSWZXnrA/jmKYK2PW5pAw/UVWCtJCBGvvUHiyBWN3V3J5mD6ta4StBrgBAh8= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9186.eurprd04.prod.outlook.com (2603:10a6:102:232::18) by VI1PR04MB2976.eurprd04.prod.outlook.com (2603:10a6:802:8::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4975.18; Tue, 15 Feb 2022 05:39:03 +0000 Received: from PAXPR04MB9186.eurprd04.prod.outlook.com ([fe80::4881:43a4:4127:f25e]) by PAXPR04MB9186.eurprd04.prod.outlook.com ([fe80::4881:43a4:4127:f25e%6]) with mapi id 15.20.4975.018; Tue, 15 Feb 2022 05:39:03 +0000 From: Frank Li To: linux-pci@vger.kernel.org, kishon@ti.com, lorenzo.pieralisi@arm.com, kw@linux.com, jingoohan1@gmail.com, gustavo.pimentel@synopsys.com, lznuaa@gmail.com, hongxing.zhu@nxp.com Subject: [RFC PATCH 0/4] NTB function for PCIe RC to EP connection Date: Mon, 14 Feb 2022 23:38:40 -0600 Message-Id: <20220215053844.7119-1-Frank.Li@nxp.com> X-Mailer: git-send-email 2.24.0.rc1 X-ClientProxiedBy: BYAPR21CA0007.namprd21.prod.outlook.com (2603:10b6:a03:114::17) To PAXPR04MB9186.eurprd04.prod.outlook.com (2603:10a6:102:232::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 18c67916-507d-4428-dddf-08d9f0457971 X-MS-TrafficTypeDiagnostic: VI1PR04MB2976:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5516; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: FZg1vqjLIPM84qtMw6L051JIGf9gEwyxckxV37LiUG9R61kzQ1UugB71EpKVzZOQZexq9yF8b44eKRwp5GpH3ZRu2iRhShnnsEzMcncsZKdeGF8UZdQlp3mMee69Vv+Sbvm85O8p1AH2M6ZkfDPN8TIsBGdXegmHWM+o6Qe5qUZR5NNgRa/g4ei1IchS4XWrMG365hbPCTb5v+G7LcG4Akw3KTJR1kPD/bps8w0d6Lxe7rZqugEjpssh/+CzbnIiKe9UsRqZa7XvYp7x1gpxV1IIAKs3wicLRv4lM32zxVJh18S4NI7Zqm9/cEZDpautA5fVKXNrlN7ltq29AI9g2g6hz6S/gp7dQ57sIheRjvejXZknR64nOpya7Z4uw5oyeyvPvC+Yklijz0eRjkIsTg1Y8THEBe/sqR25t2d8sGbjNNh+9+ccJl6P7/5+47ti3383T+b+IBjVqv0S2+IMpbE1sreA+mjzGPjkZ25uiIlWrdBqXVMgYgsNrjE5MV52IXDD9dLLVp8g8Say8Xd/RpmMmBnmQIrp1bNHxrjj9ndFSTOc84E1dCiI41S7iC8STnPwKdp5OJGmNkG2p/hoeYjCZGNDjz3dkYbdA6thuaBbVOTWkbkCeZYevME0nWNqpaIJNi9UZiTCms/DJ99Wdb3wqm9qWFZgXQkbJ+uoMItF0f4Rvx1DEt4p76a9qEcehJ0AGA/HPESKtkE+GqUrIw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9186.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(4636009)(366004)(6506007)(5660300002)(26005)(52116002)(38350700002)(186003)(6512007)(83380400001)(38100700002)(86362001)(36756003)(2906002)(8936002)(8676002)(508600001)(66476007)(316002)(2616005)(66556008)(66946007)(6666004)(1076003)(6486002)(6636002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?m4Ce7vFEl+lAIOQtM5LSeGtikG9R?= =?utf-8?q?/eIVOqq/zoOd6UjMoRYOzHBN+eaW9BfA4iSgpgypQeQK9oDYlVnd1w711VplSCScH?= =?utf-8?q?xxincHpYaiw0dHLgHsfG/H+1hhmxzJ1xGlQtewy3216JVgcmgOQ0Cs5tJRXwCQ8M6?= =?utf-8?q?KkfIwo1EtTT4GfgIe4FvqhJXfxVHG0HaaHHFAEfQ60qJHGNbtP39FhfNhiViz0L0+?= =?utf-8?q?biJUMMwDgR0z9U7UIcJD8LluHuO3+mzckmPLsudTv9s0oBhwLfVTArwO2L2IlV0oD?= =?utf-8?q?jZ/zWVktOPSbFaNJ4TW4Pf1YyS9ZkwG6f3HR9M4fjCHSxvTdpK5Pmkxt2ZgX4o2mU?= =?utf-8?q?izQVttxImefxsImXuz31z4DI3KC4vr0mvd3cpDgZZecRUL1U2ejxEYBBKr/BRTBwT?= =?utf-8?q?ej1YHu31F+mFKBDCjC4bbPx+hkfwLPIckL/oFPZRn0/ynst1/iXOVe2adIGQYnwHt?= =?utf-8?q?dBBqaE1ov6xceZ3r2m6ifH9fKyAwc0AmPoginxaSkngcleQ/J5RnQReZPWQRZlvRt?= =?utf-8?q?+mgjS5wSi9wlvuplq33EFioZb5RiTPqHVV6y+DgY0BLKM6nHjpW/m1jzTp+MjcHyy?= =?utf-8?q?+kYU//dpxg2oIEfvgwkmseoXuvFwAUn5GR9KaqlaSOqpgsqn2eQXZHRaUZqFn02a7?= =?utf-8?q?OUzuyg87s48CeSNbtNbzJie+jWMn8hph9KdtHgkKyOQjPa/9ByqymFSqR004dXd/9?= =?utf-8?q?qnJtjhh1bpXFOc+qk71E2LCrEvGvVN7yTeSzzTBdLvvojlmRK0ymB5aTKmvniikvf?= =?utf-8?q?hh4eqs4+4gv0XLRs+hpervcTGsZ/gKUk1mJUCpZjoTO9OLruJEUXipaFtrWHXhsoX?= =?utf-8?q?3Jo0MI9Ndf7LhBy1RVDPBT18CbwK51e93yCVUuYbZJcEZ9bPMe3HvosyflcxlfJaL?= =?utf-8?q?i4FigsgyWcEcHYR4DIWaB7rFbzI9pvdf1AHbc3LfghEEALrfS1pJUNrLI1hEqvYwz?= =?utf-8?q?WswHUv+pLg9FxMLXmTbO3YJBLhQCXO5eik6iHqYFp898EttYVGOXyM5QEgiQjvXdg?= =?utf-8?q?41GPxq84Wjybr3nqzXUIEA+AVkUevJ7TZizp4A+ar72T82SCb63d1k37QiRH2n1ef?= =?utf-8?q?uYtJdIVGM79kn01SR7zCHwGh14J7sIVH8EDaQrUD/9y5ifQ/Y/7SkiQwm2oMXOLSb?= =?utf-8?q?cNLEjhfGu3czkDMdZQzhOXviHd3L5ZwlUFi5nzRn2EgmsZbqtjMeVuaU7d90pBTbq?= =?utf-8?q?mHZwB3D/aj4QOQzFJeQBs6yjGcNckkgGcv8FS3UotO5XeHUSww98DMv6bnhqiDh7I?= =?utf-8?q?qfyMGDzgrzzRInEiNj4zzFyUf0Fo2J/txXATgoy8Psq6aRI/ravI3qPjaWzImtOv+?= =?utf-8?q?d7hXy2S+JO2x/87CNH1UCfenws+HKYFKZIcb/HpPkSFy4tKcMQpWcOd8GXXVNoNMW?= =?utf-8?q?tyV17yarfQwgCPfc9V4Je6BNHOq1jRO7+e95KjUPFFxH8RkYLhHjKYELwdenk95vA?= =?utf-8?q?DIiVx9rwQagNzLEn3+Q2C6FuhSGDs/JNtDidE073JOoC7kbXjNvvCfZWARxgR53dT?= =?utf-8?q?krWkceItmelWEZVQMB1a47HPbDz7wlVY+DeQZffFJ0YCk0/p3SbcbJg=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 18c67916-507d-4428-dddf-08d9f0457971 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9186.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Feb 2022 05:39:03.3675 (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: CnGeaT00NXQCErXO334dIifXtFepdIZwTWsbwRQEiG6Hrik+LQZtJ7RT7lGSGJMJ2WRaeWlRZe4wWD1G/wRlGg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB2976 Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org This implement NTB function for PCIe EP to RC connections. The existed ntb epf need two PCI EPs and two PCI Host. This just need EP to RC connections. ┌────────────┐ ┌─────────────────────────────────────┐ │ │ │ │ ├────────────┤ │ ┌──────────────┤ │ NTB │ │ │ NTB │ │ NetDev │ │ │ NetDev │ ├────────────┤ │ ├──────────────┤ │ NTB │ │ │ NTB │ │ Transfer │ │ │ Transfer │ ├────────────┤ │ ├──────────────┤ │ │ │ │ │ │ PCI NTB │ │ │ │ │ EPF │ │ │ │ │ Driver │ │ │ PCI Virtual │ │ │ ├───────────────┐ │ NTB Driver │ │ │ │ PCI EP NTB │◄────►│ │ │ │ │ FN Driver │ │ │ ├────────────┤ ├───────────────┤ ├──────────────┤ │ │ │ │ │ │ │ PCI BUS │ ◄─────► │ PCI EP BUS │ │ Virtual PCI │ │ │ PCI │ │ │ BUS │ └────────────┘ └───────────────┴──────┴──────────────┘ PCI RC PCI EP Frank Li (4): PCI: designware-ep: Allow pcie_ep_set_bar change inbound map address NTB: epf: Added more flexible memory map method NTB: EPF: support NTB transfer between PCI RC and EP connection Documentation: PCI: Add specification for the PCI vNTB function device Documentation/PCI/endpoint/index.rst | 2 + .../PCI/endpoint/pci-vntb-function.rst | 126 ++ Documentation/PCI/endpoint/pci-vntb-howto.rst | 161 ++ drivers/ntb/hw/epf/ntb_hw_epf.c | 48 +- .../pci/controller/dwc/pcie-designware-ep.c | 10 +- drivers/pci/endpoint/functions/Kconfig | 11 + drivers/pci/endpoint/functions/Makefile | 1 + drivers/pci/endpoint/functions/pci-epf-vntb.c | 1425 +++++++++++++++++ 8 files changed, 1770 insertions(+), 14 deletions(-) create mode 100644 Documentation/PCI/endpoint/pci-vntb-function.rst create mode 100644 Documentation/PCI/endpoint/pci-vntb-howto.rst create mode 100644 drivers/pci/endpoint/functions/pci-epf-vntb.c