From patchwork Wed Apr 3 14:23:43 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shreyansh Jain X-Patchwork-Id: 52196 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 8178D1B43B; Wed, 3 Apr 2019 16:23:52 +0200 (CEST) Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80052.outbound.protection.outlook.com [40.107.8.52]) by dpdk.org (Postfix) with ESMTP id EC4991B2AE for ; Wed, 3 Apr 2019 16:23:44 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=rd1znLG22qut8gnSnagG59f4CRxyiCO3Wt/73BPX6zQ=; b=KeJ63nrsKzkVruNvSbcmjJ3FpxHxPpdOqbZRk7oBXwt82fg4b8Dqu1Gr+xaOjhxsQwuze5mN4BQhEYqtkzcobIZlWH2JZOoWxMHtnCl5ePO7VwuP+zf05Hxbu8uFeT0eXE++hNBrioeSGeRGz9f0DHYib7WnUl675b7bi1sO2PU= Received: from VI1PR04MB4688.eurprd04.prod.outlook.com (20.177.56.80) by VI1PR04MB4960.eurprd04.prod.outlook.com (20.177.49.213) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1750.19; Wed, 3 Apr 2019 14:23:43 +0000 Received: from VI1PR04MB4688.eurprd04.prod.outlook.com ([fe80::f198:d57:e38d:30]) by VI1PR04MB4688.eurprd04.prod.outlook.com ([fe80::f198:d57:e38d:30%4]) with mapi id 15.20.1750.017; Wed, 3 Apr 2019 14:23:43 +0000 From: Shreyansh Jain To: "ferruh.yigit@intel.com" CC: "dev@dpdk.org" , Shreyansh Jain Thread-Topic: [PATCH 2/3] drivers: update MC firmware version for FSLMC bus Thread-Index: AQHU6ijX+zwdMW9OREOv+A/4f2X41Q== Date: Wed, 3 Apr 2019 14:23:43 +0000 Message-ID: <20190403142357.17700-3-shreyansh.jain@nxp.com> References: <20190403142357.17700-1-shreyansh.jain@nxp.com> In-Reply-To: <20190403142357.17700-1-shreyansh.jain@nxp.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [92.120.0.8] x-mailer: git-send-email 2.19.1 x-clientproxiedby: BM1PR01CA0155.INDPRD01.PROD.OUTLOOK.COM (2603:1096:b00:68::25) To VI1PR04MB4688.eurprd04.prod.outlook.com (2603:10a6:803:71::16) authentication-results: spf=none (sender IP is ) smtp.mailfrom=shreyansh.jain@nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: ccc60a6c-8e4b-41cf-1fae-08d6b83ff993 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(5600139)(711020)(4605104)(4618075)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7193020); SRVR:VI1PR04MB4960; x-ms-traffictypediagnostic: VI1PR04MB4960: x-microsoft-antispam-prvs: x-forefront-prvs: 0996D1900D x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(366004)(396003)(136003)(346002)(39860400002)(376002)(51234002)(189003)(199004)(81156014)(14454004)(6486002)(8676002)(478600001)(5640700003)(53936002)(2616005)(6916009)(66066001)(446003)(316002)(11346002)(36756003)(2351001)(81166006)(2501003)(1076003)(6512007)(71200400001)(68736007)(71190400001)(476003)(44832011)(256004)(86362001)(6506007)(5660300002)(76176011)(54906003)(486006)(26005)(15650500001)(30864003)(6436002)(14444005)(8936002)(386003)(186003)(52116002)(50226002)(25786009)(2906002)(106356001)(97736004)(6116002)(305945005)(105586002)(99286004)(4326008)(3846002)(7736002)(102836004); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR04MB4960; H:VI1PR04MB4688.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: frDg9wX4wcuTWNX2Q4FdZc+HUDML+pr4h8AG1ooZlN6MUFn40IJuVk2lzqbSD430H5YXc80ABUo0CEqrVSLDZkrx7lXCZJoAQD6r6X0KkCF4RsSocbZ5Y5Ke9p7yOI5QXCzskxKeWU1Gv47ULvmv+5qc+dREuLQm95aQAt+rFW06zo0eLIFjTRpXmcqO1oNxQSvLAMis1cn0lQ8jJQibPJk3nRm28+5yEtAZItuozh57dxXowHdfAnkkBLI0uBWDcG6pODZN0XR4k6CDX3Y3XXrBlQM/haDcwxBkMc+vrSRtl4EGD+ze3NYPcImNJ6HWcHaZ4gzQOIthKLDX7mCeC8ASko5RYxCDWPZX3HwJDIf7I7ksBHzDvWUKZbX+XwxRhI3Y+BHW7qE8F2i+AuB+Qpb3XZeqIM1vZjm+DeXX61I= MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: ccc60a6c-8e4b-41cf-1fae-08d6b83ff993 X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Apr 2019 14:23:43.3366 (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-Transport-CrossTenantHeadersStamped: VI1PR04MB4960 Subject: [dpdk-dev] [PATCH 2/3] drivers: update MC firmware version for FSLMC bus 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" MC firmware is the core component of FSLMC bus and DPAA2 devices. Prior to this patch, MC firmware supported 10.10.x version. This patch bumps the min supported version to 10.14.x. Signed-off-by: Shreyansh Jain Acked-by: Hemant Agrawal --- drivers/bus/fslmc/mc/fsl_dpmng.h | 2 +- drivers/net/dpaa2/dpaa2_ethdev.c | 1 + drivers/net/dpaa2/mc/dpni.c | 15 +++++- drivers/net/dpaa2/mc/fsl_dpni.h | 84 ++++++++++++++++++++++------- drivers/net/dpaa2/mc/fsl_dpni_cmd.h | 40 ++++++++++---- 5 files changed, 110 insertions(+), 32 deletions(-) diff --git a/drivers/bus/fslmc/mc/fsl_dpmng.h b/drivers/bus/fslmc/mc/fsl_dpmng.h index 8559bef87..bef2ef095 100644 --- a/drivers/bus/fslmc/mc/fsl_dpmng.h +++ b/drivers/bus/fslmc/mc/fsl_dpmng.h @@ -18,7 +18,7 @@ struct fsl_mc_io; * Management Complex firmware version information */ #define MC_VER_MAJOR 10 -#define MC_VER_MINOR 10 +#define MC_VER_MINOR 14 /** * struct mc_version diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c index 3fbc82977..98ef8a5f5 100644 --- a/drivers/net/dpaa2/dpaa2_ethdev.c +++ b/drivers/net/dpaa2/dpaa2_ethdev.c @@ -665,6 +665,7 @@ dpaa2_dev_tx_queue_setup(struct rte_eth_dev *dev, DPNI_CONG_OPT_WRITE_MEM_ON_ENTER | DPNI_CONG_OPT_WRITE_MEM_ON_EXIT | DPNI_CONG_OPT_COHERENT_WRITE; + cong_notif_cfg.cg_point = DPNI_CP_QUEUE; ret = dpni_set_congestion_notification(dpni, CMD_PRI_LOW, priv->token, diff --git a/drivers/net/dpaa2/mc/dpni.c b/drivers/net/dpaa2/mc/dpni.c index 6c12a0ae1..d9feb1427 100644 --- a/drivers/net/dpaa2/mc/dpni.c +++ b/drivers/net/dpaa2/mc/dpni.c @@ -125,6 +125,7 @@ int dpni_create(struct fsl_mc_io *mc_io, cmd_params->vlan_filter_entries = cfg->vlan_filter_entries; cmd_params->qos_entries = cfg->qos_entries; cmd_params->fs_entries = cpu_to_le16(cfg->fs_entries); + cmd_params->num_cgs = cfg->num_cgs; /* send command to mc*/ err = mc_send_command(mc_io, &cmd); @@ -199,7 +200,7 @@ int dpni_set_pools(struct fsl_mc_io *mc_io, token); cmd_params = (struct dpni_cmd_set_pools *)cmd.params; cmd_params->num_dpbp = cfg->num_dpbp; - for (i = 0; i < cmd_params->num_dpbp; i++) { + for (i = 0; i < DPNI_MAX_DPBP; i++) { cmd_params->pool[i].dpbp_id = cpu_to_le16(cfg->pools[i].dpbp_id); cmd_params->pool[i].priority_mask = @@ -593,6 +594,7 @@ int dpni_get_attributes(struct fsl_mc_io *mc_io, attr->qos_key_size = rsp_params->qos_key_size; attr->fs_key_size = rsp_params->fs_key_size; attr->wriop_version = le16_to_cpu(rsp_params->wriop_version); + attr->num_cgs = rsp_params->num_cgs; return 0; } @@ -1800,6 +1802,8 @@ int dpni_set_congestion_notification(struct fsl_mc_io *mc_io, cmd_params = (struct dpni_cmd_set_congestion_notification *)cmd.params; cmd_params->qtype = qtype; cmd_params->tc = tc_id; + cmd_params->congestion_point = cfg->cg_point; + cmd_params->cgid = (uint8_t)cfg->cgid; cmd_params->dest_id = cpu_to_le32(cfg->dest_cfg.dest_id); cmd_params->notification_mode = cpu_to_le16(cfg->notification_mode); cmd_params->dest_priority = cfg->dest_cfg.priority; @@ -1850,6 +1854,8 @@ int dpni_get_congestion_notification(struct fsl_mc_io *mc_io, cmd_params = (struct dpni_cmd_get_congestion_notification *)cmd.params; cmd_params->qtype = qtype; cmd_params->tc = tc_id; + cmd_params->congestion_point = cfg->cg_point; + cmd_params->cgid = cfg->cgid; /* send command to mc*/ err = mc_send_command(mc_io, &cmd); @@ -1949,6 +1955,7 @@ int dpni_set_queue(struct fsl_mc_io *mc_io, queue->destination.hold_active); cmd_params->flc = cpu_to_le64(queue->flc.value); cmd_params->user_context = cpu_to_le64(queue->user_context); + cmd_params->cgid = queue->cgid; /* send command to mc */ return mc_send_command(mc_io, &cmd); @@ -2010,6 +2017,10 @@ int dpni_get_queue(struct fsl_mc_io *mc_io, queue->user_context = le64_to_cpu(rsp_params->user_context); qid->fqid = le32_to_cpu(rsp_params->fqid); qid->qdbin = le16_to_cpu(rsp_params->qdbin); + if (dpni_get_field(rsp_params->flags, CGID_VALID)) + queue->cgid = rsp_params->cgid; + else + queue->cgid = -1; return 0; } @@ -2031,7 +2042,7 @@ int dpni_get_statistics(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, uint8_t page, - uint8_t param, + uint16_t param, union dpni_statistics *stat) { struct mc_command cmd = { 0 }; diff --git a/drivers/net/dpaa2/mc/fsl_dpni.h b/drivers/net/dpaa2/mc/fsl_dpni.h index aecdc8d1f..8b1cfbac7 100644 --- a/drivers/net/dpaa2/mc/fsl_dpni.h +++ b/drivers/net/dpaa2/mc/fsl_dpni.h @@ -91,6 +91,10 @@ struct fsl_mc_io; * All Tx traffic classes will use a single sender (ignore num_queueus for tx) */ #define DPNI_OPT_SINGLE_SENDER 0x000100 +/** + * Define a custom number of congestion groups + */ +#define DPNI_OPT_CUSTOM_CG 0x000200 int dpni_open(struct fsl_mc_io *mc_io, uint32_t cmd_flags, @@ -172,6 +176,7 @@ struct dpni_cfg { uint8_t num_tcs; uint8_t num_rx_tcs; uint8_t qos_entries; + uint8_t num_cgs; }; int dpni_create(struct fsl_mc_io *mc_io, @@ -326,6 +331,7 @@ struct dpni_attr { uint8_t qos_key_size; uint8_t fs_key_size; uint16_t wriop_version; + uint8_t num_cgs; }; int dpni_get_attributes(struct fsl_mc_io *mc_io, @@ -638,6 +644,36 @@ union dpni_statistics { */ #define DPNI_LINK_OPT_PFC_PAUSE 0x0000000000000010ULL +/** + * Advertise 10MB full duplex + */ +#define DPNI_ADVERTISED_10BASET_FULL 0x0000000000000001ULL +/** + * Advertise 100MB full duplex + */ +#define DPNI_ADVERTISED_100BASET_FULL 0x0000000000000002ULL +/** + * Advertise 1GB full duplex + */ +#define DPNI_ADVERTISED_1000BASET_FULL 0x0000000000000004ULL +/** + * Advertise auto-negotiation enable + */ +#define DPNI_ADVERTISED_AUTONEG 0x0000000000000008ULL +/** + * Advertise 10GB full duplex + */ +#define DPNI_ADVERTISED_10000BASET_FULL 0x0000000000000010ULL +/** + * Advertise 2.5GB full duplex + */ +#define DPNI_ADVERTISED_2500BASEX_FULL 0x0000000000000020ULL +/** + * Advertise 5GB full duplex + */ +#define DPNI_ADVERTISED_5000BASET_FULL 0x0000000000000040ULL + + /** * struct - Structure representing DPNI link configuration * @rate: Rate @@ -668,7 +704,7 @@ struct dpni_link_state { uint32_t rate; uint64_t options; int up; - int state_valid; + int state_valid; uint64_t supported; uint64_t advertising; }; @@ -850,7 +886,6 @@ enum dpni_congestion_unit { DPNI_CONGESTION_UNIT_FRAMES }; - /** * enum dpni_dest - DPNI destination types * @DPNI_DEST_NONE: Unassigned destination; The queue is set in parked mode and @@ -924,6 +959,25 @@ struct dpni_dest_cfg { */ #define DPNI_CONG_OPT_FLOW_CONTROL 0x00000040 +/** + * enum dpni_congestion_point - Structure representing congestion point + * @DPNI_CP_QUEUE: Set congestion per queue, identified by QUEUE_TYPE, TC + * and QUEUE_INDEX + * @DPNI_CP_GROUP: Set congestion per queue group. Depending on options + * used to define the DPNI this can be either per + * TC (default) or per interface + * (DPNI_OPT_SHARED_CONGESTION set at DPNI create). + * QUEUE_INDEX is ignored if this type is used. + * @DPNI_CP_CONGESTION_GROUP: Set per congestion group id. This will work + * only if the DPNI is created with DPNI_OPT_CUSTOM_CG option + */ + +enum dpni_congestion_point { + DPNI_CP_QUEUE, + DPNI_CP_GROUP, + DPNI_CP_CONGESTION_GROUP, +}; + /** * struct dpni_congestion_notification_cfg - congestion notification * configuration @@ -937,6 +991,8 @@ struct dpni_dest_cfg { * contained in 'options' * @dest_cfg: CSCN can be send to either DPIO or DPCON WQ channel * @notification_mode: Mask of available options; use 'DPNI_CONG_OPT_' values + * @cg_point: Congestion point settings + * @cgid: id of the congestion group. The index is relative to dpni. */ struct dpni_congestion_notification_cfg { @@ -947,6 +1003,8 @@ struct dpni_congestion_notification_cfg { uint64_t message_iova; struct dpni_dest_cfg dest_cfg; uint16_t notification_mode; + enum dpni_congestion_point cg_point; + int cgid; }; int dpni_set_congestion_notification(struct fsl_mc_io *mc_io, @@ -1016,6 +1074,7 @@ int dpni_get_congestion_notification(struct fsl_mc_io *mc_io, * FD[OFFSET]. * For more details check the Frame Descriptor section in the * hardware documentation. + *@cgid :indicate the cgid to set relative to dpni */ struct dpni_queue { struct { @@ -1029,6 +1088,7 @@ struct dpni_queue { uint64_t value; char stash_control; } flc; + int cgid; }; /** @@ -1218,6 +1278,9 @@ int dpni_get_api_version(struct fsl_mc_io *mc_io, */ #define DPNI_QUEUE_OPT_HOLD_ACTIVE 0x00000008 +#define DPNI_QUEUE_OPT_SET_CGID 0x00000040 +#define DPNI_QUEUE_OPT_CLEAR_CGID 0x00000080 + int dpni_set_queue(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, @@ -1240,28 +1303,13 @@ int dpni_get_statistics(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, uint8_t page, - uint8_t param, + uint16_t param, union dpni_statistics *stat); int dpni_reset_statistics(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token); -/** - * enum dpni_congestion_point - Structure representing congestion point - * @DPNI_CP_QUEUE: Set taildrop per queue, identified by QUEUE_TYPE, TC and - * QUEUE_INDEX - * @DPNI_CP_GROUP: Set taildrop per queue group. Depending on options used - * to define the DPNI this can be either per - * TC (default) or per interface - * (DPNI_OPT_SHARED_CONGESTION set at DPNI create). - * QUEUE_INDEX is ignored if this type is used. - */ -enum dpni_congestion_point { - DPNI_CP_QUEUE, - DPNI_CP_GROUP, -}; - /** * struct dpni_taildrop - Structure representing the taildrop * @enable: Indicates whether the taildrop is active or not. diff --git a/drivers/net/dpaa2/mc/fsl_dpni_cmd.h b/drivers/net/dpaa2/mc/fsl_dpni_cmd.h index 9116e417e..5effbb300 100644 --- a/drivers/net/dpaa2/mc/fsl_dpni_cmd.h +++ b/drivers/net/dpaa2/mc/fsl_dpni_cmd.h @@ -9,7 +9,7 @@ /* DPNI Version */ #define DPNI_VER_MAJOR 7 -#define DPNI_VER_MINOR 8 +#define DPNI_VER_MINOR 9 #define DPNI_CMD_BASE_VERSION 1 #define DPNI_CMD_VERSION_2 2 @@ -23,13 +23,13 @@ /* Command IDs */ #define DPNI_CMDID_OPEN DPNI_CMD(0x801) #define DPNI_CMDID_CLOSE DPNI_CMD(0x800) -#define DPNI_CMDID_CREATE DPNI_CMD_V2(0x901) +#define DPNI_CMDID_CREATE DPNI_CMD_V3(0x901) #define DPNI_CMDID_DESTROY DPNI_CMD(0x981) #define DPNI_CMDID_GET_API_VERSION DPNI_CMD(0xa01) #define DPNI_CMDID_ENABLE DPNI_CMD(0x002) #define DPNI_CMDID_DISABLE DPNI_CMD(0x003) -#define DPNI_CMDID_GET_ATTR DPNI_CMD_V2(0x004) +#define DPNI_CMDID_GET_ATTR DPNI_CMD_V3(0x004) #define DPNI_CMDID_RESET DPNI_CMD(0x005) #define DPNI_CMDID_IS_ENABLED DPNI_CMD(0x006) @@ -77,10 +77,10 @@ #define DPNI_CMDID_REMOVE_FS_ENT DPNI_CMD(0x245) #define DPNI_CMDID_CLR_FS_ENT DPNI_CMD(0x246) -#define DPNI_CMDID_GET_STATISTICS DPNI_CMD_V2(0x25D) +#define DPNI_CMDID_GET_STATISTICS DPNI_CMD_V3(0x25D) #define DPNI_CMDID_RESET_STATISTICS DPNI_CMD(0x25E) -#define DPNI_CMDID_GET_QUEUE DPNI_CMD(0x25F) -#define DPNI_CMDID_SET_QUEUE DPNI_CMD(0x260) +#define DPNI_CMDID_GET_QUEUE DPNI_CMD_V2(0x25F) +#define DPNI_CMDID_SET_QUEUE DPNI_CMD_V2(0x260) #define DPNI_CMDID_GET_TAILDROP DPNI_CMD_V2(0x261) #define DPNI_CMDID_SET_TAILDROP DPNI_CMD_V2(0x262) @@ -89,8 +89,8 @@ #define DPNI_CMDID_GET_BUFFER_LAYOUT DPNI_CMD_V2(0x264) #define DPNI_CMDID_SET_BUFFER_LAYOUT DPNI_CMD_V2(0x265) -#define DPNI_CMDID_SET_CONGESTION_NOTIFICATION DPNI_CMD(0x267) -#define DPNI_CMDID_GET_CONGESTION_NOTIFICATION DPNI_CMD(0x268) +#define DPNI_CMDID_SET_CONGESTION_NOTIFICATION DPNI_CMD_V2(0x267) +#define DPNI_CMDID_GET_CONGESTION_NOTIFICATION DPNI_CMD_V2(0x268) #define DPNI_CMDID_SET_EARLY_DROP DPNI_CMD_V2(0x269) #define DPNI_CMDID_GET_EARLY_DROP DPNI_CMD_V2(0x26A) #define DPNI_CMDID_GET_OFFLOAD DPNI_CMD(0x26B) @@ -131,6 +131,8 @@ struct dpni_cmd_create { uint8_t pad3; uint16_t fs_entries; uint8_t num_rx_tcs; + uint8_t pad4; + uint8_t num_cgs; }; struct dpni_cmd_destroy { @@ -222,6 +224,7 @@ struct dpni_rsp_get_attr { uint8_t qos_key_size; uint8_t fs_key_size; uint16_t wriop_version; + uint8_t num_cgs; }; #define DPNI_ERROR_ACTION_SHIFT 0 @@ -315,7 +318,7 @@ struct dpni_rsp_get_tx_data_offset { struct dpni_cmd_get_statistics { uint8_t page_number; - uint8_t param; + uint16_t param; }; struct dpni_rsp_get_statistics { @@ -464,6 +467,8 @@ struct dpni_cmd_get_queue { #define DPNI_DEST_TYPE_SHIFT 0 #define DPNI_DEST_TYPE_SIZE 4 +#define DPNI_CGID_VALID_SHIFT 5 +#define DPNI_CGID_VALID_SIZE 1 #define DPNI_STASH_CTRL_SHIFT 6 #define DPNI_STASH_CTRL_SIZE 1 #define DPNI_HOLD_ACTIVE_SHIFT 7 @@ -476,7 +481,9 @@ struct dpni_rsp_get_queue { uint32_t dest_id; uint16_t pad1; uint8_t dest_prio; - /* From LSB: dest_type:4, pad:2, flc_stash_ctrl:1, hold_active:1 */ + /* From LSB: + * dest_type:4, pad:1, cgid_valid:1, flc_stash_ctrl:1, hold_active:1 + */ uint8_t flags; /* response word 2 */ uint64_t flc; @@ -485,6 +492,9 @@ struct dpni_rsp_get_queue { /* response word 4 */ uint32_t fqid; uint16_t qdbin; + uint16_t pad2; + /* response word 5*/ + uint8_t cgid; }; struct dpni_cmd_set_queue { @@ -503,6 +513,8 @@ struct dpni_cmd_set_queue { uint64_t flc; /* cmd word 3 */ uint64_t user_context; + /* cmd word 4 */ + uint8_t cgid; }; #define DPNI_DISCARD_ON_MISS_SHIFT 0 @@ -655,7 +667,10 @@ struct dpni_tx_confirmation_mode { struct dpni_cmd_set_congestion_notification { uint8_t qtype; uint8_t tc; - uint8_t pad[6]; + uint8_t pad; + uint8_t congestion_point; + uint8_t cgid; + uint8_t pad2[3]; uint32_t dest_id; uint16_t notification_mode; uint8_t dest_priority; @@ -670,6 +685,9 @@ struct dpni_cmd_set_congestion_notification { struct dpni_cmd_get_congestion_notification { uint8_t qtype; uint8_t tc; + uint8_t pad; + uint8_t congestion_point; + uint8_t cgid; }; struct dpni_rsp_get_congestion_notification {