From patchwork Fri Mar 20 06:58:38 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xiaojun Liu X-Patchwork-Id: 66972 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id EF4E3A0583; Fri, 20 Mar 2020 07:59:40 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 52A3B1C02C; Fri, 20 Mar 2020 07:59:34 +0100 (CET) Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50126.outbound.protection.outlook.com [40.107.5.126]) by dpdk.org (Postfix) with ESMTP id C3CEB1C025 for ; Fri, 20 Mar 2020 07:59:30 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aCufr97ilA3F11JS4gauaDzF56/yZI3PbiKqtiywltp3KBMSKLg1Wj/eGQAFVX5jp7SoeXeGGxa1jxEor1DYQuudrXPTkzj06ttZwCFwx/9i8MvqnqC0MPW9Me5kZPIuc2acrqhjou4o0eBEoNxk9aoxNXEo+9EpBQtk/+lE3ufXRjoivZ7J/chs5eAdngUMZv1jl2W9TFb/4dX5K/bvsWQsxdGb8p0zXL3YVCteNBUMf1dEFOoYJD69NrOQhnrHMyxDru50DOhuWlidbqA4PifPsSXP9IaJPXKOihun2bxPw67kDaj8giee3ETY9vtEb0pdB4UzA74sqjBMI41JJA== 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-SenderADCheck; bh=bPi4cZ8ajtnu6m0TcRlhkNjwjlsHHpX6easKwSXtAso=; b=LrC8JMr30snVNHJI/eQs0HLfgFdjb02O1busBcusUq4Nch3tuafef81615Sc18QBXb5THP6HVJLrNAS+ZMKf+sHBuq1K6sDlRIAFo4kw6KZIvqWlq0yHYrZ+WGoj4Orh24no6kqKIk5AY0LJOmO+g5LAbjTEnuSvlgIDaho/BoLMcLi5SUTxJqJqJRj1/aovz/QzvgjsjIpKkAewaJVnNlKggkgnaBvtCLwcxYsCbnckTrAvLX8T+AbKK3vlhc4A7NlubAqCamzx4ffCt94YWxyVXpOnWFWEpDtJnmiKv6DIbRWhH9smOlPLpLfRLQn2KjKVuz3WYMLwnhHXsZgApQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=silicom.co.il; dmarc=pass action=none header.from=silicom.co.il; dkim=pass header.d=silicom.co.il; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=SILICOMLTD.onmicrosoft.com; s=selector2-SILICOMLTD-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bPi4cZ8ajtnu6m0TcRlhkNjwjlsHHpX6easKwSXtAso=; b=rwk77U5rKVnHSj7giijmlbqHDY39RGeoiU+dQElw4lY70jNZVfD1+V5DE1Senh3EuHDH0jtD+cudB85ps0O8Qhdq4Okb/H/tdl492rCaAjDWCiljp9D1E8Y2SrRFS3McZhVeoGCt2G8WBkfA4ZmlTjL7NImrOXRnroEak5f86nM= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=xiaojun.liu@silicom.co.il; Received: from VI1PR04MB5150.eurprd04.prod.outlook.com (20.177.51.19) by VI1PR04MB4110.eurprd04.prod.outlook.com (52.133.13.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2814.16; Fri, 20 Mar 2020 06:59:28 +0000 Received: from VI1PR04MB5150.eurprd04.prod.outlook.com ([fe80::79cf:289f:b9b4:53b5]) by VI1PR04MB5150.eurprd04.prod.outlook.com ([fe80::79cf:289f:b9b4:53b5%4]) with mapi id 15.20.2835.017; Fri, 20 Mar 2020 06:59:28 +0000 From: Xiaojun Liu To: xiao.w.wang@intel.com, qi.z.zhang@intel.com, ngai-mint.kwan@intel.com, jacob.e.keller@intel.com Cc: dev@dpdk.org, Xiaojun Liu Date: Fri, 20 Mar 2020 14:58:38 +0800 Message-Id: <1584687523-19362-1-git-send-email-xiaojun.liu@silicom.co.il> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1582879102-17977-6-git-send-email-xiaojun.liu@silicom.co.il> References: <1582879102-17977-6-git-send-email-xiaojun.liu@silicom.co.il> X-ClientProxiedBy: HK2PR04CA0050.apcprd04.prod.outlook.com (2603:1096:202:14::18) To VI1PR04MB5150.eurprd04.prod.outlook.com (2603:10a6:803:5c::19) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from xj-desktop.net-perf.com (103.91.219.177) by HK2PR04CA0050.apcprd04.prod.outlook.com (2603:1096:202:14::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2835.18 via Frontend Transport; Fri, 20 Mar 2020 06:59:23 +0000 X-Mailer: git-send-email 1.8.3.1 X-Originating-IP: [103.91.219.177] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2685a651-cf00-4a42-659d-08d7cc9c3ba0 X-MS-TrafficTypeDiagnostic: VI1PR04MB4110: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6430; X-Forefront-PRVS: 03484C0ABF X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(346002)(136003)(376002)(366004)(39850400004)(396003)(199004)(26005)(8676002)(5660300002)(16526019)(52116002)(186003)(2616005)(956004)(44832011)(6666004)(478600001)(66556008)(316002)(66476007)(4326008)(6486002)(36756003)(86362001)(6506007)(107886003)(81166006)(2906002)(8936002)(66946007)(6512007)(81156014); DIR:OUT; SFP:1102; SCL:1; SRVR:VI1PR04MB4110; H:VI1PR04MB5150.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; Received-SPF: None (protection.outlook.com: silicom.co.il does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: a6ersqKDeaAhQ33A3ARxKPadDt4edSVusr3v1BfNhbFhAST1QXdHf0bZQs07FWmRoKcCXToP3OfR+68sxEuaLWdUfWnz7pcXGw0zWiiK3a6V1m42+HAWLWztdIIp5KJd5D0ONcqe65jY7ZIiF+DlCaSmf3zhSOPY4t6eKj+BfGr4znTT7Vf4KZL4Lp/w6pSVQStUfzOovpy9W1UprKBQj4Tl/iRh1qTC14LnpnxIZPedpR2RsfSEqkdTcO07rV0IcfVdJJEm1vy5gbENvpsJySXZvJBu5+2QtZHGAdAh/lXyPAhZqliV419uySN+ScWVq8HNUo0iprvEZQk7am7L0EHQ9bwkiSbWQceTU7gQZlk9se3MnHHtqUtERFBmTzOBDh/hVBakoaLWzUHkR8l2l/QOdNRtx/Z3KQ+43HOOqAHf1IzHpGFB9NOuZLWlmdbk X-MS-Exchange-AntiSpam-MessageData: 1c5Z/PoBfSSpbN8P7l8UXpfRQaLXR03CZTwDf5/UKUlsVfegTLd2nG32MVi0w4r7D1g2U4+iCSbgnm8W7c+WXXUzJhAVEVz7FIty26ZSsL+HeqLg+/Ru3wk9XMmsWjiTAYTL5RNNlt34vRoz72q7kQ== X-OriginatorOrg: silicom.co.il X-MS-Exchange-CrossTenant-Network-Message-Id: 2685a651-cf00-4a42-659d-08d7cc9c3ba0 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Mar 2020 06:59:28.4875 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: c9e326d8-ce47-4930-8612-cc99d3c87ad1 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: //7a6K4UGI6PSBNFHaSeGz1sCxm5rQJ8Ca8L1HMHwA1z+fN4C56wZAF8IAbE+yX88csWvef1LrKtQT11Fv7DmPKl8XRz+BcATgfuLQtIWSY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4110 Subject: [dpdk-dev] [PATCH v3 0/5] support fm10k switch management X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" V3: * Add I2C to control the inside LED and PHY. * Add SBUS to communicate with spico. * Add registers defination. * Add switch management log API. * Add switch management structures. * Add epl serdes include loading spico, controlling pcsl, dma, dfe, ical. * Add spico code. * Add state machine for epl lane and port. * Add external port management. * Add ffu to support offload flow into HW. It supports forward, mirror, push VLAN, pop VLAN. * Add config file to configure debug log, port speed, epl port mapping dpdk port, flowset. * Add statistics includes epl port, ffu rule, dpdk port. * Add flow interface to support offload flow into HW. * Add switch management, includes initialization, port mapping, epl port link, LED controller, interrupt handler. * Split dev_init to 2 parts in ethdev. First only register the port in switch management; second init hook will be called after all the pf are registered. * Add switch interrupt support. * Add fm10k_mirror_rule_set/fm10k_mirror_rule_reset. * Add fm10k_dev_filter_ctrl to support flow operation. * Add dpdk port and pf mapping. * Modify Makefile to add new files building Xiaojun Liu (5): net/fm10k: add basic functions for switch management net/fm10k: add epl serdes and port control functions net/fm10k: add ffu and statistics and config file functions net/fm10k: add flow interface and switch management net/fm10k: add switch management support config/common_linux | 5 + doc/guides/nics/fm10k.rst | 5 + drivers/net/fm10k/Makefile | 20 + drivers/net/fm10k/base/fm10k_type.h | 1 + drivers/net/fm10k/fm10k_ethdev.c | 559 ++++- drivers/net/fm10k/switch/fm10k_config.c | 857 ++++++++ drivers/net/fm10k/switch/fm10k_config.h | 178 ++ drivers/net/fm10k/switch/fm10k_debug.h | 19 + drivers/net/fm10k/switch/fm10k_ext_port.c | 839 ++++++++ drivers/net/fm10k/switch/fm10k_ext_port.h | 136 ++ drivers/net/fm10k/switch/fm10k_ffu.c | 1250 +++++++++++ drivers/net/fm10k/switch/fm10k_ffu.h | 31 + drivers/net/fm10k/switch/fm10k_flow.c | 872 ++++++++ drivers/net/fm10k/switch/fm10k_flow.h | 26 + drivers/net/fm10k/switch/fm10k_i2c.c | 309 +++ drivers/net/fm10k/switch/fm10k_i2c.h | 55 + drivers/net/fm10k/switch/fm10k_regs.h | 2302 +++++++++++++++++++++ drivers/net/fm10k/switch/fm10k_sbus.c | 291 +++ drivers/net/fm10k/switch/fm10k_sbus.h | 40 + drivers/net/fm10k/switch/fm10k_serdes.c | 1936 +++++++++++++++++ drivers/net/fm10k/switch/fm10k_serdes.h | 32 + drivers/net/fm10k/switch/fm10k_sm.c | 190 ++ drivers/net/fm10k/switch/fm10k_sm.h | 80 + drivers/net/fm10k/switch/fm10k_spico_code.c | 2966 +++++++++++++++++++++++++++ drivers/net/fm10k/switch/fm10k_spico_code.h | 21 + drivers/net/fm10k/switch/fm10k_stats.c | 1233 +++++++++++ drivers/net/fm10k/switch/fm10k_stats.h | 257 +++ drivers/net/fm10k/switch/fm10k_switch.c | 2382 +++++++++++++++++++++ drivers/net/fm10k/switch/fm10k_switch.h | 476 +++++ 29 files changed, 17329 insertions(+), 39 deletions(-) create mode 100644 drivers/net/fm10k/switch/fm10k_config.c create mode 100644 drivers/net/fm10k/switch/fm10k_config.h create mode 100644 drivers/net/fm10k/switch/fm10k_debug.h create mode 100644 drivers/net/fm10k/switch/fm10k_ext_port.c create mode 100644 drivers/net/fm10k/switch/fm10k_ext_port.h create mode 100644 drivers/net/fm10k/switch/fm10k_ffu.c create mode 100644 drivers/net/fm10k/switch/fm10k_ffu.h create mode 100644 drivers/net/fm10k/switch/fm10k_flow.c create mode 100644 drivers/net/fm10k/switch/fm10k_flow.h create mode 100644 drivers/net/fm10k/switch/fm10k_i2c.c create mode 100644 drivers/net/fm10k/switch/fm10k_i2c.h create mode 100644 drivers/net/fm10k/switch/fm10k_regs.h create mode 100644 drivers/net/fm10k/switch/fm10k_sbus.c create mode 100644 drivers/net/fm10k/switch/fm10k_sbus.h create mode 100644 drivers/net/fm10k/switch/fm10k_serdes.c create mode 100644 drivers/net/fm10k/switch/fm10k_serdes.h create mode 100644 drivers/net/fm10k/switch/fm10k_sm.c create mode 100644 drivers/net/fm10k/switch/fm10k_sm.h create mode 100644 drivers/net/fm10k/switch/fm10k_spico_code.c create mode 100644 drivers/net/fm10k/switch/fm10k_spico_code.h create mode 100644 drivers/net/fm10k/switch/fm10k_stats.c create mode 100644 drivers/net/fm10k/switch/fm10k_stats.h create mode 100644 drivers/net/fm10k/switch/fm10k_switch.c create mode 100644 drivers/net/fm10k/switch/fm10k_switch.h