Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/119178/?format=api
http://patches.dpdk.org/api/patches/119178/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/patch/20221026194613.1008232-12-john.miller@atomicrules.com/", "project": { "id": 1, "url": "http://patches.dpdk.org/api/projects/1/?format=api", "name": "DPDK", "link_name": "dpdk", "list_id": "dev.dpdk.org", "list_email": "dev@dpdk.org", "web_url": "http://core.dpdk.org", "scm_url": "git://dpdk.org/dpdk", "webscm_url": "http://git.dpdk.org/dpdk", "list_archive_url": "https://inbox.dpdk.org/dev", "list_archive_url_format": "https://inbox.dpdk.org/dev/{}", "commit_url_format": "" }, "msgid": "<20221026194613.1008232-12-john.miller@atomicrules.com>", "list_archive_url": "https://inbox.dpdk.org/dev/20221026194613.1008232-12-john.miller@atomicrules.com", "date": "2022-10-26T19:46:11", "name": "[12/14] baseband/ark: introduce ark baseband driver common functions", "commit_ref": null, "pull_url": null, "state": "changes-requested", "archived": true, "hash": "0b092ea7257979fc6cdd4b5a689a01b84d6b3173", "submitter": { "id": 719, "url": "http://patches.dpdk.org/api/people/719/?format=api", "name": "John Miller", "email": "john.miller@atomicrules.com" }, "delegate": { "id": 2642, "url": "http://patches.dpdk.org/api/users/2642/?format=api", "username": "mcoquelin", "first_name": "Maxime", "last_name": "Coquelin", "email": "maxime.coquelin@redhat.com" }, "mbox": "http://patches.dpdk.org/project/dpdk/patch/20221026194613.1008232-12-john.miller@atomicrules.com/mbox/", "series": [ { "id": 25445, "url": "http://patches.dpdk.org/api/series/25445/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=25445", "date": "2022-10-26T19:46:00", "name": "[01/14] doc/guides/bbdevs: add ark baseband device documentation", "version": 1, "mbox": "http://patches.dpdk.org/series/25445/mbox/" } ], "comments": "http://patches.dpdk.org/api/patches/119178/comments/", "check": "success", "checks": "http://patches.dpdk.org/api/patches/119178/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@inbox.dpdk.org", "Delivered-To": "patchwork@inbox.dpdk.org", "Received": [ "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id A5185A04FD;\n\tWed, 26 Oct 2022 21:47:38 +0200 (CEST)", "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 65CAF42BC3;\n\tWed, 26 Oct 2022 21:46:50 +0200 (CEST)", "from mail-io1-f49.google.com (mail-io1-f49.google.com\n [209.85.166.49]) by mails.dpdk.org (Postfix) with ESMTP id A81DD42BAF\n for <dev@dpdk.org>; Wed, 26 Oct 2022 21:46:44 +0200 (CEST)", "by mail-io1-f49.google.com with SMTP id l127so14455242iof.12\n for <dev@dpdk.org>; Wed, 26 Oct 2022 12:46:44 -0700 (PDT)", "from john-System-Product-Name.tds\n (h64-35-205-155.cntcnh.broadband.dynamic.tds.net. [64.35.205.155])\n by smtp.googlemail.com with ESMTPSA id\n m1-20020a056e020de100b002faecf63c48sm2336169ilj.79.2022.10.26.12.46.42\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Wed, 26 Oct 2022 12:46:43 -0700 (PDT)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=atomicrules-com.20210112.gappssmtp.com; s=20210112;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=LnVjMq5w4uF+BGPTL0pxH6FUU5464U2rFvFQFELIytU=;\n b=3hBqfAlexHoKwRu+sycovaL/cBFTs4VfN2nadsUJLoGOgM3d8iFvNcuVYLKL6xvjgJ\n AmcCX3PPUMemolTe6OH3xLhKrq6OMablTgF5yomLaba0PLKM3X40AocAVsYxYWM3nDdQ\n NRIGr3DkkmJKEQCumpM953MhMhYC6CNPWcQ4UVR4Akyv5dSXZxtYaR4cK0xWMETYG46T\n HSf0Ek02yMGFuZsX60mRft+X+YTzcZapAIakELZsgcH75fatAEPvmHxcYLCdCKKQhudL\n hr0vqQ9xA+QesMEwPwadPc+6cLx9abHXELplBjSfTXwdrK2p7qnymr5u7+xKvqAcGCqG\n 9Rng==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20210112;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc\n :subject:date:message-id:reply-to;\n bh=LnVjMq5w4uF+BGPTL0pxH6FUU5464U2rFvFQFELIytU=;\n b=a11aoZxikT6o20rw0VXPzSzRO6DyHyEjP2RJNJ/MJs/66rXkjAfHiHyEyYz70fe8I1\n A7gIeKw8QcWs4vk5lLyyEx9l2MZULnZFVS2AKL0WIBU3oGR75yqyFJiDsfZm1Il7peDi\n UjhfxvrhTjUWvlIT3h6JuIG0gmmp7woKzEZDZS+nXx5s73E5ZdlQzPFb5EMREXd0nOWK\n nfl2ZJ835DejGwNKUOiwGKLHLjTK8xckz+wl9E9rAQe1+QkuSppgPiXa4bfgEwMzxE98\n x5XoWacZQNo9IRkaFMAGVb3NQN1Tz/cedtotJ8V3lkhMcLL8fzGun5Pjzas/OCyBx2hp\n lMcA==", "X-Gm-Message-State": "ACrzQf03NcNGlMY+Ip+V3nazyxM853NUkMLHiZBAmtLgqfUg6f9V4Mjt\n e1pEgyiWiAliCtMD9hrkuY1/mxQzsIjvKA==", "X-Google-Smtp-Source": "\n AMsMyM75vnn9jMWEwVZH2q0wqCrXg290hHDDiKxcrRKB6BGv09XUoODWSJdsIMfEEawUTOd7XmDfBA==", "X-Received": "by 2002:a05:6638:2392:b0:363:de4d:d135 with SMTP id\n q18-20020a056638239200b00363de4dd135mr30610148jat.131.1666813604066;\n Wed, 26 Oct 2022 12:46:44 -0700 (PDT)", "From": "John Miller <john.miller@atomicrules.com>", "To": "nicolas.chautru@intel.com", "Cc": "dev@dpdk.org, ed.czeck@atomicrules.com, shepard.siegel@atomicrules.com,\n John Miller <john.miller@atomicrules.com>", "Subject": "[PATCH 12/14] baseband/ark: introduce ark baseband driver common\n functions", "Date": "Wed, 26 Oct 2022 15:46:11 -0400", "Message-Id": "<20221026194613.1008232-12-john.miller@atomicrules.com>", "X-Mailer": "git-send-email 2.25.1", "In-Reply-To": "<20221026194613.1008232-1-john.miller@atomicrules.com>", "References": "<20221026194613.1008232-1-john.miller@atomicrules.com>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "DPDK patches and discussions <dev.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://mails.dpdk.org/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org" }, "content": "This patch introduces the Arkville baseband device driver common functions.\n\nSigned-off-by: John Miller <john.miller@atomicrules.com>\n---\n drivers/baseband/ark/ark_bbdev_common.c | 109 ++++++++++++++++++++++++\n drivers/baseband/ark/ark_bbdev_common.h | 100 ++++++++++++++++++++++\n 2 files changed, 209 insertions(+)\n create mode 100644 drivers/baseband/ark/ark_bbdev_common.c\n create mode 100644 drivers/baseband/ark/ark_bbdev_common.h", "diff": "diff --git a/drivers/baseband/ark/ark_bbdev_common.c b/drivers/baseband/ark/ark_bbdev_common.c\nnew file mode 100644\nindex 0000000000..b980dd7159\n--- /dev/null\n+++ b/drivers/baseband/ark/ark_bbdev_common.c\n@@ -0,0 +1,109 @@\n+/* SPDX-License-Identifier: BSD-3-Clause\n+ * Copyright(c) 2016-2021 Atomic Rules LLC\n+ */\n+\n+#include <string.h>\n+\n+#include <rte_kvargs.h>\n+#include <rte_log.h>\n+\n+#include \"ark_bbdev_common.h\"\n+\n+int ark_bbdev_logtype;\n+RTE_LOG_REGISTER_DEFAULT(ark_bbdev_logtype, DEBUG);\n+\n+static const char * const ark_bbdev_valid_params[] = {\n+\tARK_BBDEV_PKTDIR_ARG,\n+\tARK_BBDEV_PKTGEN_ARG,\n+\tARK_BBDEV_PKTCHKR_ARG,\n+\tNULL\n+};\n+\n+static inline int\n+process_pktdir_arg(const char *key, const char *value,\n+\t\t void *extra_args)\n+{\n+\tuint32_t *u32 = extra_args;\n+\tARK_BBDEV_LOG(DEBUG, \"key = %s, value = %s\", key, value);\n+\n+\t*u32 = strtol(value, NULL, 0);\n+\tARK_BBDEV_LOG(DEBUG, \"pkt_dir_v = 0x%x\", *u32);\n+\treturn 0;\n+}\n+\n+static inline int\n+process_file_args(const char *key, const char *value, void *extra_args)\n+{\n+\tchar *args = (char *)extra_args;\n+\tARK_BBDEV_LOG(DEBUG, \"key = %s, value = %s\", key, value);\n+\n+\t/* Open the configuration file */\n+\tFILE *file = fopen(value, \"r\");\n+\tchar line[ARK_MAX_ARG_LEN];\n+\tint size = 0;\n+\tint first = 1;\n+\n+\tif (file == NULL) {\n+\t\tARK_BBDEV_LOG(ERR, \"Unable to open config file %s\",\n+\t\t\t value);\n+\t\treturn -1;\n+\t}\n+\n+\twhile (fgets(line, sizeof(line), file)) {\n+\t\tsize += strlen(line);\n+\t\tif (size >= ARK_MAX_ARG_LEN) {\n+\t\t\tARK_BBDEV_LOG(ERR, \"Unable to parse file %s args, \"\n+\t\t\t\t \"parameter list is too long\", value);\n+\t\t\tfclose(file);\n+\t\t\treturn -1;\n+\t\t}\n+\t\tif (first) {\n+\t\t\tstrncpy(args, line, ARK_MAX_ARG_LEN);\n+\t\t\tfirst = 0;\n+\t\t} else {\n+\t\t\tstrncat(args, line, ARK_MAX_ARG_LEN);\n+\t\t}\n+\t}\n+\tARK_BBDEV_LOG(DEBUG, \"file = %s\", args);\n+\tfclose(file);\n+\treturn 0;\n+}\n+\n+\n+/* Parse parameters used to create device */\n+int\n+parse_ark_bbdev_params(const char *input_args,\n+\t\t struct ark_bbdevice *ark_bb)\n+{\n+\tstruct rte_kvargs *kvlist = NULL;\n+\tint ret = 0;\n+\n+\tif (ark_bb == NULL)\n+\t\treturn -EINVAL;\n+\tif (input_args == NULL)\n+\t\treturn ret;\n+\n+\tkvlist = rte_kvargs_parse(input_args, ark_bbdev_valid_params);\n+\tif (kvlist == NULL)\n+\t\treturn -EFAULT;\n+\n+\tret = rte_kvargs_process(kvlist, ARK_BBDEV_PKTDIR_ARG,\n+\t\t\t\t &process_pktdir_arg, &ark_bb->pkt_dir_v);\n+\tif (ret < 0)\n+\t\tgoto exit;\n+\n+\tret = rte_kvargs_process(kvlist, ARK_BBDEV_PKTGEN_ARG,\n+\t\t\t\t &process_file_args, &ark_bb->pkt_gen_args);\n+\tif (ret < 0)\n+\t\tgoto exit;\n+\n+\tret = rte_kvargs_process(kvlist, ARK_BBDEV_PKTCHKR_ARG,\n+\t\t\t\t &process_file_args, &ark_bb->pkt_chkr_args);\n+\tif (ret < 0)\n+\t\tgoto exit;\n+\n+ exit:\n+\tif (kvlist)\n+\t\trte_kvargs_free(kvlist);\n+\treturn ret;\n+}\ndiff --git a/drivers/baseband/ark/ark_bbdev_common.h b/drivers/baseband/ark/ark_bbdev_common.h\nnew file mode 100644\nindex 0000000000..9240a11669\n--- /dev/null\n+++ b/drivers/baseband/ark/ark_bbdev_common.h\n@@ -0,0 +1,100 @@\n+/* SPDX-License-Identifier: BSD-3-Clause\n+ * Copyright(c) 2016-2021 Atomic Rules LLC\n+ */\n+\n+#ifndef _ARK_BBDEV_COMMON_H_\n+#define _ARK_BBDEV_COMMON_H_\n+\n+#include \"ark_pktchkr.h\"\n+#include \"ark_pktdir.h\"\n+#include \"ark_pktgen.h\"\n+#include \"ark_bbext.h\"\n+\n+#define ARK_MAX_ARG_LEN 256\n+\n+/* Acceptable params for ark BBDEV devices */\n+/*\n+ * The packet generator is a functional block used to generate packet\n+ * patterns for testing. It is not intended for nominal use.\n+ */\n+#define ARK_BBDEV_PKTGEN_ARG \"Pkt_gen\"\n+\n+/*\n+ * The packet checker is a functional block used to verify packet\n+ * patterns for testing. It is not intended for nominal use.\n+ */\n+#define ARK_BBDEV_PKTCHKR_ARG \"Pkt_chkr\"\n+\n+/*\n+ * The packet director is used to select the internal ingress and\n+ * egress packets paths during testing. It is not intended for\n+ * nominal use.\n+ */\n+#define ARK_BBDEV_PKTDIR_ARG \"Pkt_dir\"\n+\n+\n+#define def_ptr(type, name) \\\n+\tunion type {\t\t \\\n+\t\tuint64_t *t64;\t \\\n+\t\tuint32_t *t32;\t \\\n+\t\tuint16_t *t16;\t \\\n+\t\tuint8_t *t8;\t \\\n+\t\tvoid *v;\t \\\n+\t} name\n+\n+/*\n+ * Structure to store private data for each PF/VF instance.\n+ */\n+struct ark_bbdevice {\n+\t/* Our Bar 0 */\n+\tuint8_t *bar0;\n+\n+\t/* Application Bar needed for extensions */\n+\tuint8_t *a_bar;\n+\n+\t/* rte baseband device */\n+\tstruct rte_bbdev *bbdev;\n+\n+\t/* Arkville hardware block offsets */\n+\tdef_ptr(sys_ctrl, sysctrl);\n+\tdef_ptr(pkt_gen, pktgen);\n+\tdef_ptr(mpu_rx, mpurx);\n+\tdef_ptr(UDM, udm);\n+\tdef_ptr(mpu_tx, mputx);\n+\tdef_ptr(DDM, ddm);\n+\tdef_ptr(pkt_dir, pktdir);\n+\tdef_ptr(pkt_chkr, pktchkr);\n+\tstruct ark_rqpace_t *rqpacing;\n+\n+\t/* Pointers to packet generator and checker */\n+\tint start_pg;\n+\tark_pkt_gen_t pg;\n+\tark_pkt_chkr_t pc;\n+\tark_pkt_dir_t pd;\n+\n+\t/* Packet generator/checker args */\n+\tchar pkt_gen_args[ARK_MAX_ARG_LEN];\n+\tchar pkt_chkr_args[ARK_MAX_ARG_LEN];\n+\tuint32_t pkt_dir_v;\n+\n+\tint started;\n+\tunsigned int max_nb_queues; /**< Max number of queues */\n+\n+\tvoid *d_handle;\n+\tstruct arkbb_user_ext user_ext;\n+\tvoid *user_data;\n+\n+};\n+\n+\n+/* Log message for baseband PMD */\n+extern int ark_bbdev_logtype;\n+\n+/* Helper macro for logging */\n+#define ARK_BBDEV_LOG(level, fmt, ...) \\\n+\trte_log(RTE_LOG_ ## level, ark_bbdev_logtype, \\\n+\t\t\"ARK_BBD: \" fmt \"\\n\", ##__VA_ARGS__)\n+\n+int parse_ark_bbdev_params(const char *argv, struct ark_bbdevice *dev);\n+\n+#endif\n", "prefixes": [ "12/14" ] }{ "id": 119178, "url": "