Message ID | 20190622132417.32694-1-jerinj@marvell.com (mailing list archive) |
---|---|
Headers |
Return-Path: <dev-bounces@dpdk.org> 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 5A96D1C450; Sat, 22 Jun 2019 15:24:30 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by dpdk.org (Postfix) with ESMTP id 693EB1C367 for <dev@dpdk.org>; Sat, 22 Jun 2019 15:24:28 +0200 (CEST) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x5MDKE8N025085; Sat, 22 Jun 2019 06:24:27 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding : content-type; s=pfpt0818; bh=WPJwSMjX173Xd+6PIBgf5W5nedEqHrQkvIzHv7PwUEY=; b=xbi7iSGUFDQsGUAejkzTBayDl3Esat8Kkj4yZb8vYq/a8DrHT2QZ/s4tucrafe0qmpPY tePN/7MkQGFKKd4lpPsdmComvgGfVjxf4TQXn4YAuobO286S2QN/pPuS+Z3d7Zq/eeok loxedURBWgGUDkAsKrtx2DEX45bdQLXXdQcYCVaxE3b2E3S8LnvEQN86XPR+Zj5l70i6 5qJ04M3Gyr0R5F9VyjNCI7s4ImNcEYotq7dU74fz7w5JUzyh5Wu8VXmxwayTne2A2IpL wZQbQB7jVwhd5eZump8KexPFlqTgTDwE0msFlVByK5K9XFKr76glYIVZIpX4pwi4wSir EQ== Received: from sc-exch01.marvell.com ([199.233.58.181]) by mx0a-0016f401.pphosted.com with ESMTP id 2t9hpnrge2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sat, 22 Jun 2019 06:24:27 -0700 Received: from SC-EXCH03.marvell.com (10.93.176.83) by SC-EXCH01.marvell.com (10.93.176.81) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Sat, 22 Jun 2019 06:24:25 -0700 Received: from maili.marvell.com (10.93.176.43) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server id 15.0.1367.3 via Frontend Transport; Sat, 22 Jun 2019 06:24:25 -0700 Received: from jerin-lab.marvell.com (jerin-lab.marvell.com [10.28.34.14]) by maili.marvell.com (Postfix) with ESMTP id AE33C3F7040; Sat, 22 Jun 2019 06:24:24 -0700 (PDT) From: <jerinj@marvell.com> To: CC: <dev@dpdk.org>, Jerin Jacob <jerinj@marvell.com>, Thomas Monjalon <thomas@monjalon.net> Date: Sat, 22 Jun 2019 18:53:50 +0530 Message-ID: <20190622132417.32694-1-jerinj@marvell.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190617155537.36144-1-jerinj@marvell.com> References: <20190617155537.36144-1-jerinj@marvell.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-06-22_09:, , signatures=0 Subject: [dpdk-dev] [PATCH v4 00/27] OCTEON TX2 common and mempool driver X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions <dev.dpdk.org> List-Unsubscribe: <https://mails.dpdk.org/options/dev>, <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>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org Sender: "dev" <dev-bounces@dpdk.org> |
Series |
OCTEON TX2 common and mempool driver
|
|
Message
Jerin Jacob Kollanukkaran
June 22, 2019, 1:23 p.m. UTC
From: Jerin Jacob <jerinj@marvell.com>
This patch set adds initial driver support for OCTEON TX2 SoC.
OCTEON TX2 is an armv8.2 SoC with integrated HW based mempool, ethdev,
cryptodev, compressdev, and eventdev devices.
This patch set adds common driver and mempool device driver for OCTEON TX2 SoC.
There will be three more patch series in this release
to support ethdev, eventdev and cryptodev devices
More details about the OCTEON TX2 platform may found in
[PATCH 15/27] doc: add Marvell OCTEON TX2 platform guide
under doc/guides/platform/octeontx2.rst file.
This patches series also available at https://github.com/jerinjacobk/dpdk.git
for quick download and review.
# Note on check patch issues
1) The mailbox prototype is the same as Linux kernel.
https://elixir.bootlin.com/linux/latest/source/drivers/net/ethernet/marvell/octeontx2/af/mbox.h#L123
In order to keep the base code intact, mailbox prototype expressed as
macros with warnings
2) There are a few warnings from tooling about expected to add new
symbols in the EXPERIMENTAL
section. Since these API will be called only by octeontx2 client drivers
and prototype are not exported to the application, those warnings are
not relevant, Discussion at http://patches.dpdk.org/patch/53590/
v4:
1) Add comments for O3 attribue flag (Aaron Conole) in "mempool/octeontx2: add optimized dequeue operation for arm64"
patch
2) Update "common/octeontx2: add mbox request and response definition" to reflect latest mbox defintions
3) rebase to dpdk.org master(as of 22-June)
v3:
1) Replace the reference to v19.08 from v19.05
2) remove rte_panic from driver code
3) rebase to dpdk.org master(as of 17-June)
v2:
1) Added CONFIG_RTE_MAX_VFIO_GROUPS for octeontx2 config in patch 1
2) Rebased to master to accommodate latest rename like ETHER_ADDR_LEN to RTE_ETHER_ADDR_LEN
3) Added pmd.raw.octeontx2.dpi log message in patch 5
4) Update platform guide with debugfs documentation in patch 15
5) Fix arm64 build issue with patch 25(Aaron Conole)
"mempool/octeontx2: add optimized dequeue operation for arm64"
Cc: Thomas Monjalon <thomas@monjalon.net>
Jerin Jacob (22):
common/octeontx2: add build infrastructure and HW definition
common/octeontx2: add IO handling APIs
common/octeontx2: add mbox request and response definition
common/octeontx2: add mailbox base support infra
common/octeontx2: add runtime log infra
common/octeontx2: add mailbox send and receive support
common/octeontx2: introduce common device class
common/octeontx2: introduce irq handling functions
common/octeontx2: handle intra device operations
common/octeontx2: add VF mailbox IRQ and msg handler
doc: add Marvell OCTEON TX2 platform guide
mempool/octeontx2: add build infra and device probe
drivers: add init and fini on octeontx2 NPA object
mempool/octeontx2: add NPA HW operations
mempool/octeontx2: add NPA IRQ handler
mempool/octeontx2: add context dump support
mempool/octeontx2: add mempool alloc op
mempool/octeontx2: add mempool free op
mempool/octeontx2: add remaining slow path ops
mempool/octeontx2: add fast path mempool ops
mempool/octeontx2: add devargs for max pool selection
doc: add Marvell OCTEON TX2 mempool documentation
Nithin Dabilpuram (4):
common/octeontx2: add AF to PF mailbox IRQ and msg handlers
common/octeontx2: add PF to VF mailbox IRQ and msg handlers
common/octeontx2: add uplink message support
common/octeontx2: add FLR IRQ handler
Pavan Nikhilesh (1):
mempool/octeontx2: add optimized dequeue operation for arm64
MAINTAINERS | 10 +
config/common_base | 5 +
config/defconfig_arm64-octeontx2-linuxapp-gcc | 3 +
doc/guides/mempool/index.rst | 1 +
doc/guides/mempool/octeontx2.rst | 90 +
.../octeontx2_packet_flow_hw_accelerators.svg | 2804 +++++++++++++++++
.../img/octeontx2_resource_virtualization.svg | 2418 ++++++++++++++
doc/guides/platform/index.rst | 1 +
doc/guides/platform/octeontx2.rst | 496 +++
doc/guides/rel_notes/release_19_08.rst | 2 +
drivers/common/Makefile | 5 +
drivers/common/meson.build | 2 +-
drivers/common/octeontx2/Makefile | 37 +
drivers/common/octeontx2/hw/otx2_nix.h | 1379 ++++++++
drivers/common/octeontx2/hw/otx2_npa.h | 305 ++
drivers/common/octeontx2/hw/otx2_npc.h | 472 +++
drivers/common/octeontx2/hw/otx2_rvu.h | 212 ++
drivers/common/octeontx2/hw/otx2_sso.h | 209 ++
drivers/common/octeontx2/hw/otx2_ssow.h | 56 +
drivers/common/octeontx2/hw/otx2_tim.h | 34 +
drivers/common/octeontx2/meson.build | 25 +
drivers/common/octeontx2/otx2_common.c | 248 ++
drivers/common/octeontx2/otx2_common.h | 121 +
drivers/common/octeontx2/otx2_dev.c | 1052 +++++++
drivers/common/octeontx2/otx2_dev.h | 97 +
drivers/common/octeontx2/otx2_io_arm64.h | 95 +
drivers/common/octeontx2/otx2_io_generic.h | 63 +
drivers/common/octeontx2/otx2_irq.c | 254 ++
drivers/common/octeontx2/otx2_irq.h | 25 +
drivers/common/octeontx2/otx2_mbox.c | 416 +++
drivers/common/octeontx2/otx2_mbox.h | 1561 +++++++++
.../rte_common_octeontx2_version.map | 39 +
drivers/mempool/Makefile | 1 +
drivers/mempool/meson.build | 2 +-
drivers/mempool/octeontx2/Makefile | 39 +
drivers/mempool/octeontx2/meson.build | 23 +
drivers/mempool/octeontx2/otx2_mempool.c | 455 +++
drivers/mempool/octeontx2/otx2_mempool.h | 219 ++
.../mempool/octeontx2/otx2_mempool_debug.c | 135 +
drivers/mempool/octeontx2/otx2_mempool_irq.c | 303 ++
drivers/mempool/octeontx2/otx2_mempool_ops.c | 770 +++++
.../rte_mempool_octeontx2_version.map | 8 +
mk/rte.app.mk | 6 +
43 files changed, 14496 insertions(+), 2 deletions(-)
create mode 100644 doc/guides/mempool/octeontx2.rst
create mode 100644 doc/guides/platform/img/octeontx2_packet_flow_hw_accelerators.svg
create mode 100644 doc/guides/platform/img/octeontx2_resource_virtualization.svg
create mode 100644 doc/guides/platform/octeontx2.rst
create mode 100644 drivers/common/octeontx2/Makefile
create mode 100644 drivers/common/octeontx2/hw/otx2_nix.h
create mode 100644 drivers/common/octeontx2/hw/otx2_npa.h
create mode 100644 drivers/common/octeontx2/hw/otx2_npc.h
create mode 100644 drivers/common/octeontx2/hw/otx2_rvu.h
create mode 100644 drivers/common/octeontx2/hw/otx2_sso.h
create mode 100644 drivers/common/octeontx2/hw/otx2_ssow.h
create mode 100644 drivers/common/octeontx2/hw/otx2_tim.h
create mode 100644 drivers/common/octeontx2/meson.build
create mode 100644 drivers/common/octeontx2/otx2_common.c
create mode 100644 drivers/common/octeontx2/otx2_common.h
create mode 100644 drivers/common/octeontx2/otx2_dev.c
create mode 100644 drivers/common/octeontx2/otx2_dev.h
create mode 100644 drivers/common/octeontx2/otx2_io_arm64.h
create mode 100644 drivers/common/octeontx2/otx2_io_generic.h
create mode 100644 drivers/common/octeontx2/otx2_irq.c
create mode 100644 drivers/common/octeontx2/otx2_irq.h
create mode 100644 drivers/common/octeontx2/otx2_mbox.c
create mode 100644 drivers/common/octeontx2/otx2_mbox.h
create mode 100644 drivers/common/octeontx2/rte_common_octeontx2_version.map
create mode 100644 drivers/mempool/octeontx2/Makefile
create mode 100644 drivers/mempool/octeontx2/meson.build
create mode 100644 drivers/mempool/octeontx2/otx2_mempool.c
create mode 100644 drivers/mempool/octeontx2/otx2_mempool.h
create mode 100644 drivers/mempool/octeontx2/otx2_mempool_debug.c
create mode 100644 drivers/mempool/octeontx2/otx2_mempool_irq.c
create mode 100644 drivers/mempool/octeontx2/otx2_mempool_ops.c
create mode 100644 drivers/mempool/octeontx2/rte_mempool_octeontx2_version.map
Comments
22/06/2019 15:23, jerinj@marvell.com: > From: Jerin Jacob <jerinj@marvell.com> > > This patch set adds initial driver support for OCTEON TX2 SoC. > > OCTEON TX2 is an armv8.2 SoC with integrated HW based mempool, ethdev, > cryptodev, compressdev, and eventdev devices. > > This patch set adds common driver and mempool device driver for OCTEON TX2 SoC. > There will be three more patch series in this release > to support ethdev, eventdev and cryptodev devices [...] > Jerin Jacob (22): > common/octeontx2: add build infrastructure and HW definition > common/octeontx2: add IO handling APIs > common/octeontx2: add mbox request and response definition > common/octeontx2: add mailbox base support infra > common/octeontx2: add runtime log infra > common/octeontx2: add mailbox send and receive support > common/octeontx2: introduce common device class > common/octeontx2: introduce irq handling functions > common/octeontx2: handle intra device operations > common/octeontx2: add VF mailbox IRQ and msg handler > doc: add Marvell OCTEON TX2 platform guide > mempool/octeontx2: add build infra and device probe > drivers: add init and fini on octeontx2 NPA object > mempool/octeontx2: add NPA HW operations > mempool/octeontx2: add NPA IRQ handler > mempool/octeontx2: add context dump support > mempool/octeontx2: add mempool alloc op > mempool/octeontx2: add mempool free op > mempool/octeontx2: add remaining slow path ops > mempool/octeontx2: add fast path mempool ops > mempool/octeontx2: add devargs for max pool selection > doc: add Marvell OCTEON TX2 mempool documentation > > Nithin Dabilpuram (4): > common/octeontx2: add AF to PF mailbox IRQ and msg handlers > common/octeontx2: add PF to VF mailbox IRQ and msg handlers > common/octeontx2: add uplink message support > common/octeontx2: add FLR IRQ handler > > Pavan Nikhilesh (1): > mempool/octeontx2: add optimized dequeue operation for arm64 Applied, thanks Note: I did a change in the release notes as noticed in the thread, spread MAINTAINERS lines additions in the right commits, and grouped with octeontx in Makefiles.
On 6/22/2019 2:23 PM, jerinj@marvell.com wrote: > From: Jerin Jacob <jerinj@marvell.com> > > This patch set adds initial driver support for OCTEON TX2 SoC. > > OCTEON TX2 is an armv8.2 SoC with integrated HW based mempool, ethdev, > cryptodev, compressdev, and eventdev devices. > > This patch set adds common driver and mempool device driver for OCTEON TX2 SoC. > There will be three more patch series in this release > to support ethdev, eventdev and cryptodev devices > > More details about the OCTEON TX2 platform may found in > [PATCH 15/27] doc: add Marvell OCTEON TX2 platform guide > under doc/guides/platform/octeontx2.rst file. > > This patches series also available at https://github.com/jerinjacobk/dpdk.git > for quick download and review. > > # Note on check patch issues > 1) The mailbox prototype is the same as Linux kernel. > https://elixir.bootlin.com/linux/latest/source/drivers/net/ethernet/marvell/octeontx2/af/mbox.h#L123 > In order to keep the base code intact, mailbox prototype expressed as > macros with warnings > 2) There are a few warnings from tooling about expected to add new > symbols in the EXPERIMENTAL > section. Since these API will be called only by octeontx2 client drivers > and prototype are not exported to the application, those warnings are > not relevant, Discussion at http://patches.dpdk.org/patch/53590/ > > v4: > 1) Add comments for O3 attribue flag (Aaron Conole) in "mempool/octeontx2: add optimized dequeue operation for arm64" > patch > 2) Update "common/octeontx2: add mbox request and response definition" to reflect latest mbox defintions > 3) rebase to dpdk.org master(as of 22-June) > v3: > > 1) Replace the reference to v19.08 from v19.05 > 2) remove rte_panic from driver code > 3) rebase to dpdk.org master(as of 17-June) > > v2: > > 1) Added CONFIG_RTE_MAX_VFIO_GROUPS for octeontx2 config in patch 1 > 2) Rebased to master to accommodate latest rename like ETHER_ADDR_LEN to RTE_ETHER_ADDR_LEN > 3) Added pmd.raw.octeontx2.dpi log message in patch 5 > 4) Update platform guide with debugfs documentation in patch 15 > 5) Fix arm64 build issue with patch 25(Aaron Conole) > "mempool/octeontx2: add optimized dequeue operation for arm64" > > Cc: Thomas Monjalon <thomas@monjalon.net> > > Jerin Jacob (22): > common/octeontx2: add build infrastructure and HW definition > common/octeontx2: add IO handling APIs > common/octeontx2: add mbox request and response definition > common/octeontx2: add mailbox base support infra > common/octeontx2: add runtime log infra > common/octeontx2: add mailbox send and receive support > common/octeontx2: introduce common device class > common/octeontx2: introduce irq handling functions > common/octeontx2: handle intra device operations > common/octeontx2: add VF mailbox IRQ and msg handler > doc: add Marvell OCTEON TX2 platform guide > mempool/octeontx2: add build infra and device probe > drivers: add init and fini on octeontx2 NPA object > mempool/octeontx2: add NPA HW operations > mempool/octeontx2: add NPA IRQ handler > mempool/octeontx2: add context dump support > mempool/octeontx2: add mempool alloc op > mempool/octeontx2: add mempool free op > mempool/octeontx2: add remaining slow path ops > mempool/octeontx2: add fast path mempool ops > mempool/octeontx2: add devargs for max pool selection > doc: add Marvell OCTEON TX2 mempool documentation > > Nithin Dabilpuram (4): > common/octeontx2: add AF to PF mailbox IRQ and msg handlers > common/octeontx2: add PF to VF mailbox IRQ and msg handlers > common/octeontx2: add uplink message support > common/octeontx2: add FLR IRQ handler > > Pavan Nikhilesh (1): > mempool/octeontx2: add optimized dequeue operation for arm64 Hi Jerin, There are some build errors with ICC, there are multiple but mainly two type of them [1a] & [1b]. I think [1b] can be fixed quickly [2b] and what do you think about ignoring the warning for [1a] as done in [2a]? If fix makes sense, can you please send a patch for it? Thanks, ferruh [1a] error #2259 .../dpdk/drivers/common/octeontx2/otx2_mbox.c(47): error #2259: non-pointer conversion from "unsigned long long" to "struct mbox_hdr *" may lose significant bits (struct mbox_hdr *)((uintptr_t)mdev->mbase + mbox->tx_start); ^ /tmp/dpdk_maintain/self/dpdk/drivers/mempool/octeontx2/otx2_mempool.h(94): error #2259: non-pointer conversion from "unsigned long long" to "int64_t={__int64_t={signed long long}} *" may lose significant bits (int64_t *)(npa_lf_aura_handle_to_base(aura_handle) + ^ [1b] error #191 .../dpdk/drivers/mempool/octeontx2/otx2_mempool_ops.c(344): error #191: type qualifier is meaningless on cast type int64_t * const addr = (int64_t * const) ^ [2a] diff --git a/drivers/common/octeontx2/Makefile b/drivers/common/octeontx2/Makefile index fabc32537..b78995e12 100644 --- a/drivers/common/octeontx2/Makefile +++ b/drivers/common/octeontx2/Makefile @@ -19,6 +19,10 @@ CFLAGS += -Wno-int-to-pointer-cast CFLAGS += -Wno-pointer-to-int-cast endif +ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y) +CFLAGS += -diag-disable 2259 # non-pointer conversion may lose significant bits +endif + EXPORT_MAP := rte_common_octeontx2_version.map LIBABIVER := 1 diff --git a/drivers/mempool/octeontx2/Makefile b/drivers/mempool/octeontx2 /Makefile index b3568443e..37bcebdf3 100644 --- a/drivers/mempool/octeontx2/Makefile +++ b/drivers/mempool/octeontx2/Makefile @@ -20,6 +20,10 @@ CFLAGS += -Wno-int-to-pointer-cast CFLAGS += -Wno-pointer-to-int-cast endif +ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y) +CFLAGS += -diag-disable 2259 # non-pointer conversion may lose significant bits +endif + EXPORT_MAP := rte_mempool_octeontx2_version.map LIBABIVER := 1 [2b] - int64_t * const addr = (int64_t * const) + int64_t * const addr = (int64_t *)
On Tue, 25 Jun 2019 23:39:36 +0200 Thomas Monjalon <thomas@monjalon.net> wrote: > 22/06/2019 15:23, jerinj@marvell.com: > > From: Jerin Jacob <jerinj@marvell.com> > > > > This patch set adds initial driver support for OCTEON TX2 SoC. > > > > OCTEON TX2 is an armv8.2 SoC with integrated HW based mempool, ethdev, > > cryptodev, compressdev, and eventdev devices. > > > > This patch set adds common driver and mempool device driver for OCTEON TX2 SoC. > > There will be three more patch series in this release > > to support ethdev, eventdev and cryptodev devices > [...] > > Jerin Jacob (22): > > common/octeontx2: add build infrastructure and HW definition > > common/octeontx2: add IO handling APIs > > common/octeontx2: add mbox request and response definition > > common/octeontx2: add mailbox base support infra > > common/octeontx2: add runtime log infra > > common/octeontx2: add mailbox send and receive support > > common/octeontx2: introduce common device class > > common/octeontx2: introduce irq handling functions > > common/octeontx2: handle intra device operations > > common/octeontx2: add VF mailbox IRQ and msg handler > > doc: add Marvell OCTEON TX2 platform guide > > mempool/octeontx2: add build infra and device probe > > drivers: add init and fini on octeontx2 NPA object > > mempool/octeontx2: add NPA HW operations > > mempool/octeontx2: add NPA IRQ handler > > mempool/octeontx2: add context dump support > > mempool/octeontx2: add mempool alloc op > > mempool/octeontx2: add mempool free op > > mempool/octeontx2: add remaining slow path ops > > mempool/octeontx2: add fast path mempool ops > > mempool/octeontx2: add devargs for max pool selection > > doc: add Marvell OCTEON TX2 mempool documentation > > > > Nithin Dabilpuram (4): > > common/octeontx2: add AF to PF mailbox IRQ and msg handlers > > common/octeontx2: add PF to VF mailbox IRQ and msg handlers > > common/octeontx2: add uplink message support > > common/octeontx2: add FLR IRQ handler > > > > Pavan Nikhilesh (1): > > mempool/octeontx2: add optimized dequeue operation for arm64 > > Applied, thanks > > Note: I did a change in the release notes as noticed in the thread, > spread MAINTAINERS lines additions in the right commits, > and grouped with octeontx in Makefiles. This caused another CI failure. See: http://patchwork.dpdk.org/patch/55430/