From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6D68142CBC for ; Thu, 15 Jun 2023 03:35:01 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6745740E0F; Thu, 15 Jun 2023 03:35:01 +0200 (CEST) Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) by mails.dpdk.org (Postfix) with ESMTP id 943D940DDA for ; Thu, 15 Jun 2023 03:34:59 +0200 (CEST) Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-3f8cdb12719so11711455e9.1 for ; Wed, 14 Jun 2023 18:34:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1686792899; x=1689384899; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=uOUWiXCyLoN2WM1uGA6965eVQMHeR6bLervPKLDezFM=; b=HJ+tlJbjEcX54yhjfFJfxZW7tYPJGYr2qs19+GncFqmKQtfrKadIh8odQG+HWNTCdr wxsn+pTcqTsb+N8+wIB/ez9fqdKNkldZDFrWzHv7WBi05xgCWg3fjFHFXA7Nfd1yKlk7 8xFWzbk9FUOyODOvT/UFmx2G8SbnaOTVg0tPEFUgwcpcQW/+T0onQEgjbCkwIQJoC2jd LfiFc6h0PrRU+QhlA9eez6Q44xQ5KRQhFOYfqIXcq+OYpwPAkOQU9ouIP9+5yr3F+57E OEoshecTEg5ZhPJem4rornkA917LtCfxWVKEv12vfggtue7D/NgoNdwiZrNZCqeftAAF kFeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686792899; x=1689384899; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=uOUWiXCyLoN2WM1uGA6965eVQMHeR6bLervPKLDezFM=; b=dUoWCC+gIWSP6HZmsbE9ahuqJvgKvNrCkQ1KDF+DhI71Sevh8OJuXqvw3x9XvfBPEU DxMdb5KWJwplPI4gnfWOUXHpEG/9r4y7rCwqWKHAPMB89/qZbTyYAlNbCH0iQXvexTeG 0Mx0Ru46aZz0KftLPFsGgAijBhk2Hf+4EVwXCjCVnU3Xcurz56b5C/ARR8l5MQi/S8GR abxyjjmmiwQJ1N+d8YIhRKau0RChntyL7xYsf/p/W2DKfTAMgFqWquzdeHZ4Ypm+SDdP rCzM5pyx8Zu2YI0XGSIIaG5+bhFXB1lMC3a0Y0P0VNpYBVNU1dJSQjYqTKhfXgGarOc0 +aAA== X-Gm-Message-State: AC+VfDxJ7rAzp9B2nLr+IbE5VbcUX2QmTD9h7PZvJBQlNqvmbMiB5jMK 5CrMmzfOyIcpTVqpND5cOr+XhQsY7kTV7GuI X-Google-Smtp-Source: ACHHUZ4NzbibJ8ik17R4Ws+ZKtE999ApP2/z6Vz/nyx0l4ujsn23q0A86EzOCvvZv7t1993uVjTnJA== X-Received: by 2002:a05:600c:a3a9:b0:3f8:d79f:dadb with SMTP id hn41-20020a05600ca3a900b003f8d79fdadbmr2926993wmb.38.1686792899107; Wed, 14 Jun 2023 18:34:59 -0700 (PDT) Received: from localhost ([137.220.119.58]) by smtp.gmail.com with ESMTPSA id l8-20020a1c7908000000b003f7f4dc6d14sm18625725wme.14.2023.06.14.18.34.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 14 Jun 2023 18:34:58 -0700 (PDT) From: luca.boccassi@gmail.com To: Chaoyong He Cc: =?UTF-8?q?Niklas=20S=C3=B6derlund?= , dpdk stable Subject: patch 'net/nfp: fix offloading flows' has been queued to stable release 20.11.9 Date: Thu, 15 Jun 2023 02:32:34 +0100 Message-Id: <20230615013258.1439718-39-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230615013258.1439718-1-luca.boccassi@gmail.com> References: <20230615013258.1439718-1-luca.boccassi@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Hi, FYI, your patch has been queued to stable release 20.11.9 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 06/17/23. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/bluca/dpdk-stable This queued commit can be viewed at: https://github.com/bluca/dpdk-stable/commit/0b8a7a74c25bdf9dab4450df4add516b8d8f0517 Thanks. Luca Boccassi --- >From 0b8a7a74c25bdf9dab4450df4add516b8d8f0517 Mon Sep 17 00:00:00 2001 From: Chaoyong He Date: Wed, 7 Jun 2023 09:57:00 +0800 Subject: [PATCH] net/nfp: fix offloading flows MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [ upstream commit 925c27ec8de92efe69f4cb56e3fc0e413354c739 ] The symbol '_abi_flower_extra_features' is in IMEM for NFP4000, but in EMU_CACHE for NFP3800 because which does not have IMEM. The original logic can't read symbol from EMU_CACHE, so the probe process will fail when we try to offload flows use NFP3800. Modify the related data structure and logics to support read symbol from EMU_CACHE. Fixes: c7e9729da6b5 ("net/nfp: support CPP") Signed-off-by: Chaoyong He Reviewed-by: Niklas Söderlund --- drivers/net/nfp/nfp_net.c | 4 +- drivers/net/nfp/nfpcore/nfp_cpp.h | 7 +- drivers/net/nfp/nfpcore/nfp_cppcore.c | 52 +++++++--- drivers/net/nfp/nfpcore/nfp_rtsym.c | 134 +++++++++++++++++++++++--- 4 files changed, 172 insertions(+), 25 deletions(-) diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c index ed1b4ff0bd..17e48f1710 100644 --- a/drivers/net/nfp/nfp_net.c +++ b/drivers/net/nfp/nfp_net.c @@ -2797,6 +2797,7 @@ nfp_net_init(struct rte_eth_dev *eth_dev) uint64_t tx_bar_off = 0, rx_bar_off = 0; uint32_t start_q; + uint32_t cpp_id; int stride = 4; int port = 0; int err; @@ -2908,7 +2909,8 @@ nfp_net_init(struct rte_eth_dev *eth_dev) if (hw->is_pf && port == 0) { /* configure access to tx/rx vNIC BARs */ - hwport0->hw_queues = nfp_cpp_map_area(hw->cpp, 0, 0, + cpp_id = NFP_CPP_ISLAND_ID(0, NFP_CPP_ACTION_RW, 0, 0); + hwport0->hw_queues = nfp_cpp_map_area(hw->cpp, cpp_id, NFP_PCIE_QUEUE(0), NFP_QCP_QUEUE_AREA_SZ, &hw->hwqueues_area); diff --git a/drivers/net/nfp/nfpcore/nfp_cpp.h b/drivers/net/nfp/nfpcore/nfp_cpp.h index 08d656da14..84482df14a 100644 --- a/drivers/net/nfp/nfpcore/nfp_cpp.h +++ b/drivers/net/nfp/nfpcore/nfp_cpp.h @@ -34,6 +34,9 @@ struct nfp_cpp { */ uint32_t imb_cat_table[16]; + /* MU access type bit offset */ + uint32_t mu_locality_lsb; + int driver_lock_needed; }; @@ -363,7 +366,7 @@ struct nfp_cpp_area *nfp_cpp_area_alloc_acquire(struct nfp_cpp *cpp, */ void nfp_cpp_area_release_free(struct nfp_cpp_area *area); -uint8_t *nfp_cpp_map_area(struct nfp_cpp *cpp, int domain, int target, +uint8_t *nfp_cpp_map_area(struct nfp_cpp *cpp, uint32_t cpp_id, uint64_t addr, unsigned long size, struct nfp_cpp_area **area); /* @@ -778,4 +781,6 @@ int nfp_cpp_mutex_unlock(struct nfp_cpp_mutex *mutex); */ int nfp_cpp_mutex_trylock(struct nfp_cpp_mutex *mutex); +uint32_t nfp_cpp_mu_locality_lsb(struct nfp_cpp *cpp); + #endif /* !__NFP_CPP_H__ */ diff --git a/drivers/net/nfp/nfpcore/nfp_cppcore.c b/drivers/net/nfp/nfpcore/nfp_cppcore.c index 40d70b9625..b74892a8d0 100644 --- a/drivers/net/nfp/nfpcore/nfp_cppcore.c +++ b/drivers/net/nfp/nfpcore/nfp_cppcore.c @@ -11,6 +11,7 @@ #include #include +#include #include #include @@ -118,6 +119,36 @@ nfp_cpp_area_name(struct nfp_cpp_area *cpp_area) return cpp_area->name; } +#define NFP_IMB_TGTADDRESSMODECFG_MODE_of(_x) (((_x) >> 13) & 0x7) +#define NFP_IMB_TGTADDRESSMODECFG_ADDRMODE RTE_BIT32(12) + +static int +nfp_cpp_set_mu_locality_lsb(struct nfp_cpp *cpp) +{ + int ret; + int mode; + int addr40; + uint32_t imbcppat; + + imbcppat = cpp->imb_cat_table[NFP_CPP_TARGET_MU]; + mode = NFP_IMB_TGTADDRESSMODECFG_MODE_of(imbcppat); + addr40 = imbcppat & NFP_IMB_TGTADDRESSMODECFG_ADDRMODE; + + ret = nfp_cppat_mu_locality_lsb(mode, addr40); + if (ret < 0) + return ret; + + cpp->mu_locality_lsb = ret; + + return 0; +} + +uint32_t +nfp_cpp_mu_locality_lsb(struct nfp_cpp *cpp) +{ + return cpp->mu_locality_lsb; +} + /* * nfp_cpp_area_alloc - allocate a new CPP area * @cpp: CPP handle @@ -142,10 +173,6 @@ nfp_cpp_area_alloc_with_name(struct nfp_cpp *cpp, uint32_t dest, if (!cpp) return NULL; - /* CPP bus uses only a 40-bit address */ - if ((address + size) > (1ULL << 40)) - return NFP_ERRPTR(EFAULT); - /* Remap from cpp_island to cpp_target */ err = nfp_target_cpp(dest, tmp64, &dest, &tmp64, cpp->imb_cat_table); if (err < 0) @@ -588,6 +615,13 @@ nfp_cpp_alloc(struct rte_pci_device *dev, int driver_lock_needed) } } + err = nfp_cpp_set_mu_locality_lsb(cpp); + if (err < 0) { + printf("Can't calculate MU locality bit offset"); + free(cpp); + return NULL; + } + return cpp; } @@ -819,8 +853,7 @@ __nfp_cpp_model_autodetect(struct nfp_cpp *cpp, uint32_t *model) /* * nfp_cpp_map_area() - Helper function to map an area * @cpp: NFP CPP handler - * @domain: CPP domain - * @target: CPP target + * @cpp_id: CPP ID * @addr: CPP address * @size: Size of the area * @area: Area handle (output) @@ -831,15 +864,12 @@ __nfp_cpp_model_autodetect(struct nfp_cpp *cpp, uint32_t *model) * Return: Pointer to memory mapped area or ERR_PTR */ uint8_t * -nfp_cpp_map_area(struct nfp_cpp *cpp, int domain, int target, uint64_t addr, +nfp_cpp_map_area(struct nfp_cpp *cpp, uint32_t cpp_id, uint64_t addr, unsigned long size, struct nfp_cpp_area **area) { uint8_t *res; - uint32_t dest; - dest = NFP_CPP_ISLAND_ID(target, NFP_CPP_ACTION_RW, 0, domain); - - *area = nfp_cpp_area_alloc_acquire(cpp, dest, addr, size); + *area = nfp_cpp_area_alloc_acquire(cpp, cpp_id, addr, size); if (!*area) goto err_eio; diff --git a/drivers/net/nfp/nfpcore/nfp_rtsym.c b/drivers/net/nfp/nfpcore/nfp_rtsym.c index 2feca2ed81..1258fdb0e1 100644 --- a/drivers/net/nfp/nfpcore/nfp_rtsym.c +++ b/drivers/net/nfp/nfpcore/nfp_rtsym.c @@ -232,6 +232,113 @@ nfp_rtsym_lookup(struct nfp_rtsym_table *rtbl, const char *name) return NULL; } +static uint64_t +nfp_rtsym_size(const struct nfp_rtsym *sym) +{ + switch (sym->type) { + case NFP_RTSYM_TYPE_NONE: + printf("rtsym '%s': type NONE", sym->name); + return 0; + case NFP_RTSYM_TYPE_OBJECT: /* Fall through */ + case NFP_RTSYM_TYPE_FUNCTION: + return sym->size; + case NFP_RTSYM_TYPE_ABS: + return sizeof(uint64_t); + default: + printf("rtsym '%s': unknown type: %d", sym->name, sym->type); + return 0; + } +} + +static int +nfp_rtsym_to_dest(struct nfp_cpp *cpp, + const struct nfp_rtsym *sym, + uint8_t action, + uint8_t token, + uint64_t offset, + uint32_t *cpp_id, + uint64_t *addr) +{ + if (sym->type != NFP_RTSYM_TYPE_OBJECT) { + printf("rtsym '%s': direct access to non-object rtsym", + sym->name); + return -EINVAL; + } + + *addr = sym->addr + offset; + + if (sym->target >= 0) { + *cpp_id = NFP_CPP_ISLAND_ID(sym->target, action, token, sym->domain); + } else if (sym->target == NFP_RTSYM_TARGET_EMU_CACHE) { + int locality_off = nfp_cpp_mu_locality_lsb(cpp); + + *addr &= ~(NFP_MU_ADDR_ACCESS_TYPE_MASK << locality_off); + *addr |= NFP_MU_ADDR_ACCESS_TYPE_DIRECT << locality_off; + + *cpp_id = NFP_CPP_ISLAND_ID(NFP_CPP_TARGET_MU, action, token, + sym->domain); + } else { + printf("rtsym '%s': unhandled target encoding: %d", + sym->name, sym->target); + return -EINVAL; + } + + return 0; +} + +static int +nfp_rtsym_readl(struct nfp_cpp *cpp, + const struct nfp_rtsym *sym, + uint8_t action, + uint8_t token, + uint64_t offset, + uint32_t *value) +{ + int ret; + uint64_t addr; + uint32_t cpp_id; + + if (offset + 4 > nfp_rtsym_size(sym)) { + printf("rtsym '%s': readl out of bounds", sym->name); + return -ENXIO; + } + + ret = nfp_rtsym_to_dest(cpp, sym, action, token, offset, &cpp_id, &addr); + if (ret != 0) + return ret; + + return nfp_cpp_readl(cpp, cpp_id, addr, value); +} + +static int +nfp_rtsym_readq(struct nfp_cpp *cpp, + const struct nfp_rtsym *sym, + uint8_t action, + uint8_t token, + uint64_t offset, + uint64_t *value) +{ + int ret; + uint64_t addr; + uint32_t cpp_id; + + if (offset + 8 > nfp_rtsym_size(sym)) { + printf("rtsym '%s': readq out of bounds", sym->name); + return -ENXIO; + } + + if (sym->type == NFP_RTSYM_TYPE_ABS) { + *value = sym->addr; + return 0; + } + + ret = nfp_rtsym_to_dest(cpp, sym, action, token, offset, &cpp_id, &addr); + if (ret != 0) + return ret; + + return nfp_cpp_readq(cpp, cpp_id, addr, value); +} + /* * nfp_rtsym_read_le() - Read a simple unsigned scalar value from symbol * @rtbl: NFP RTsym table @@ -248,7 +355,7 @@ uint64_t nfp_rtsym_read_le(struct nfp_rtsym_table *rtbl, const char *name, int *error) { const struct nfp_rtsym *sym; - uint32_t val32, id; + uint32_t val32; uint64_t val; int err; @@ -258,19 +365,13 @@ nfp_rtsym_read_le(struct nfp_rtsym_table *rtbl, const char *name, int *error) goto exit; } - id = NFP_CPP_ISLAND_ID(sym->target, NFP_CPP_ACTION_RW, 0, sym->domain); - -#ifdef DEBUG - printf("Reading symbol %s with size %" PRIu64 " at %" PRIx64 "\n", - name, sym->size, sym->addr); -#endif switch (sym->size) { case 4: - err = nfp_cpp_readl(rtbl->cpp, id, sym->addr, &val32); + err = nfp_rtsym_readl(rtbl->cpp, sym, NFP_CPP_ACTION_RW, 0, 0, &val32); val = val32; break; case 8: - err = nfp_cpp_readq(rtbl->cpp, id, sym->addr, &val); + err = nfp_rtsym_readq(rtbl->cpp, sym, NFP_CPP_ACTION_RW, 0, 0, &val); break; default: printf("rtsym '%s' unsupported size: %" PRId64 "\n", @@ -295,8 +396,11 @@ uint8_t * nfp_rtsym_map(struct nfp_rtsym_table *rtbl, const char *name, unsigned int min_size, struct nfp_cpp_area **area) { - const struct nfp_rtsym *sym; + int ret; uint8_t *mem; + uint64_t addr; + uint32_t cpp_id; + const struct nfp_rtsym *sym; #ifdef DEBUG printf("mapping symbol %s\n", name); @@ -307,14 +411,20 @@ nfp_rtsym_map(struct nfp_rtsym_table *rtbl, const char *name, return NULL; } + ret = nfp_rtsym_to_dest(rtbl->cpp, sym, NFP_CPP_ACTION_RW, 0, 0, + &cpp_id, &addr); + if (ret != 0) { + printf("rtsym '%s': mapping failed", name); + return NULL; + } + if (sym->size < min_size) { printf("Symbol %s too small (%" PRIu64 " < %u)\n", name, sym->size, min_size); return NULL; } - mem = nfp_cpp_map_area(rtbl->cpp, sym->domain, sym->target, sym->addr, - sym->size, area); + mem = nfp_cpp_map_area(rtbl->cpp, cpp_id, addr, sym->size, area); if (!mem) { printf("Failed to map symbol %s\n", name); return NULL; -- 2.39.2 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2023-06-15 01:56:36.723101016 +0100 +++ 0039-net-nfp-fix-offloading-flows.patch 2023-06-15 01:56:34.639542877 +0100 @@ -1 +1 @@ -From 925c27ec8de92efe69f4cb56e3fc0e413354c739 Mon Sep 17 00:00:00 2001 +From 0b8a7a74c25bdf9dab4450df4add516b8d8f0517 Mon Sep 17 00:00:00 2001 @@ -8,0 +9,2 @@ +[ upstream commit 925c27ec8de92efe69f4cb56e3fc0e413354c739 ] + @@ -19 +20,0 @@ -Cc: stable@dpdk.org @@ -24 +25 @@ - drivers/net/nfp/nfp_ethdev.c | 4 +- + drivers/net/nfp/nfp_net.c | 4 +- @@ -26,3 +27,3 @@ - drivers/net/nfp/nfpcore/nfp_cppcore.c | 51 +++++++--- - drivers/net/nfp/nfpcore/nfp_rtsym.c | 132 ++++++++++++++++++++++++-- - 4 files changed, 171 insertions(+), 23 deletions(-) + drivers/net/nfp/nfpcore/nfp_cppcore.c | 52 +++++++--- + drivers/net/nfp/nfpcore/nfp_rtsym.c | 134 +++++++++++++++++++++++--- + 4 files changed, 172 insertions(+), 25 deletions(-) @@ -30,8 +31,8 @@ -diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c -index f73bffc09b..e84d2ac82e 100644 ---- a/drivers/net/nfp/nfp_ethdev.c -+++ b/drivers/net/nfp/nfp_ethdev.c -@@ -937,6 +937,7 @@ nfp_pf_init(struct rte_pci_device *pci_dev) - int ret; - int err = 0; - uint64_t addr; +diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c +index ed1b4ff0bd..17e48f1710 100644 +--- a/drivers/net/nfp/nfp_net.c ++++ b/drivers/net/nfp/nfp_net.c +@@ -2797,6 +2797,7 @@ nfp_net_init(struct rte_eth_dev *eth_dev) + + uint64_t tx_bar_off = 0, rx_bar_off = 0; + uint32_t start_q; @@ -39,6 +40,4 @@ - struct nfp_cpp *cpp; - enum nfp_app_fw_id app_fw_id; - struct nfp_pf_dev *pf_dev; -@@ -1036,7 +1037,8 @@ nfp_pf_init(struct rte_pci_device *pci_dev) - goto pf_cleanup; - } + int stride = 4; + int port = 0; + int err; +@@ -2908,7 +2909,8 @@ nfp_net_init(struct rte_eth_dev *eth_dev) @@ -46,6 +45,8 @@ -- pf_dev->hw_queues = nfp_cpp_map_area(pf_dev->cpp, 0, 0, -+ cpp_id = NFP_CPP_ISLAND_ID(0, NFP_CPP_ACTION_RW, 0, 0); -+ pf_dev->hw_queues = nfp_cpp_map_area(pf_dev->cpp, cpp_id, - addr, NFP_QCP_QUEUE_AREA_SZ, - &pf_dev->hwqueues_area); - if (pf_dev->hw_queues == NULL) { + if (hw->is_pf && port == 0) { + /* configure access to tx/rx vNIC BARs */ +- hwport0->hw_queues = nfp_cpp_map_area(hw->cpp, 0, 0, ++ cpp_id = NFP_CPP_ISLAND_ID(0, NFP_CPP_ACTION_RW, 0, 0); ++ hwport0->hw_queues = nfp_cpp_map_area(hw->cpp, cpp_id, + NFP_PCIE_QUEUE(0), + NFP_QCP_QUEUE_AREA_SZ, + &hw->hwqueues_area); @@ -53 +54 @@ -index 2441012b95..8f87c09327 100644 +index 08d656da14..84482df14a 100644 @@ -56 +57 @@ -@@ -31,6 +31,9 @@ struct nfp_cpp { +@@ -34,6 +34,9 @@ struct nfp_cpp { @@ -66 +67 @@ -@@ -455,7 +458,7 @@ struct nfp_cpp_area *nfp_cpp_area_alloc_acquire(struct nfp_cpp *cpp, +@@ -363,7 +366,7 @@ struct nfp_cpp_area *nfp_cpp_area_alloc_acquire(struct nfp_cpp *cpp, @@ -75 +76 @@ -@@ -869,4 +872,6 @@ int nfp_cpp_mutex_unlock(struct nfp_cpp_mutex *mutex); +@@ -778,4 +781,6 @@ int nfp_cpp_mutex_unlock(struct nfp_cpp_mutex *mutex); @@ -83 +84 @@ -index 681ec93b96..6daee313ce 100644 +index 40d70b9625..b74892a8d0 100644 @@ -86 +87,9 @@ -@@ -118,6 +118,36 @@ nfp_cpp_area_name(struct nfp_cpp_area *cpp_area) +@@ -11,6 +11,7 @@ + #include + #include + ++#include + #include + #include + +@@ -118,6 +119,36 @@ nfp_cpp_area_name(struct nfp_cpp_area *cpp_area) @@ -123,2 +132,2 @@ -@@ -142,10 +172,6 @@ nfp_cpp_area_alloc_with_name(struct nfp_cpp *cpp, uint32_t dest, - if (cpp == NULL) +@@ -142,10 +173,6 @@ nfp_cpp_area_alloc_with_name(struct nfp_cpp *cpp, uint32_t dest, + if (!cpp) @@ -129 +138 @@ -- return NULL; +- return NFP_ERRPTR(EFAULT); @@ -134 +143 @@ -@@ -578,6 +604,13 @@ nfp_cpp_alloc(struct rte_pci_device *dev, int driver_lock_needed) +@@ -588,6 +615,13 @@ nfp_cpp_alloc(struct rte_pci_device *dev, int driver_lock_needed) @@ -140 +149 @@ -+ PMD_DRV_LOG(ERR, "Can't calculate MU locality bit offset"); ++ printf("Can't calculate MU locality bit offset"); @@ -148 +157 @@ -@@ -809,8 +842,7 @@ __nfp_cpp_model_autodetect(struct nfp_cpp *cpp, uint32_t *model) +@@ -819,8 +853,7 @@ __nfp_cpp_model_autodetect(struct nfp_cpp *cpp, uint32_t *model) @@ -158,2 +167,2 @@ -@@ -821,15 +853,12 @@ __nfp_cpp_model_autodetect(struct nfp_cpp *cpp, uint32_t *model) - * Return: Pointer to memory mapped area or NULL +@@ -831,15 +864,12 @@ __nfp_cpp_model_autodetect(struct nfp_cpp *cpp, uint32_t *model) + * Return: Pointer to memory mapped area or ERR_PTR @@ -173 +182 @@ - if (*area == NULL) + if (!*area) @@ -177 +186 @@ -index 9713605580..343b0d0bcf 100644 +index 2feca2ed81..1258fdb0e1 100644 @@ -180 +189 @@ -@@ -211,6 +211,113 @@ nfp_rtsym_lookup(struct nfp_rtsym_table *rtbl, const char *name) +@@ -232,6 +232,113 @@ nfp_rtsym_lookup(struct nfp_rtsym_table *rtbl, const char *name) @@ -189 +198 @@ -+ PMD_DRV_LOG(ERR, "rtsym '%s': type NONE", sym->name); ++ printf("rtsym '%s': type NONE", sym->name); @@ -197 +206 @@ -+ PMD_DRV_LOG(ERR, "rtsym '%s': unknown type: %d", sym->name, sym->type); ++ printf("rtsym '%s': unknown type: %d", sym->name, sym->type); @@ -212 +221 @@ -+ PMD_DRV_LOG(ERR, "rtsym '%s': direct access to non-object rtsym", ++ printf("rtsym '%s': direct access to non-object rtsym", @@ -230 +239 @@ -+ PMD_DRV_LOG(ERR, "rtsym '%s': unhandled target encoding: %d", ++ printf("rtsym '%s': unhandled target encoding: %d", @@ -251 +260 @@ -+ PMD_DRV_LOG(ERR, "rtsym '%s': readl out of bounds", sym->name); ++ printf("rtsym '%s': readl out of bounds", sym->name); @@ -275 +284 @@ -+ PMD_DRV_LOG(ERR, "rtsym '%s': readq out of bounds", sym->name); ++ printf("rtsym '%s': readq out of bounds", sym->name); @@ -294 +303 @@ -@@ -227,7 +334,7 @@ uint64_t +@@ -248,7 +355,7 @@ uint64_t @@ -303 +312 @@ -@@ -237,17 +344,13 @@ nfp_rtsym_read_le(struct nfp_rtsym_table *rtbl, const char *name, int *error) +@@ -258,19 +365,13 @@ nfp_rtsym_read_le(struct nfp_rtsym_table *rtbl, const char *name, int *error) @@ -309 +318,2 @@ -- PMD_DRV_LOG(DEBUG, "Reading symbol %s with size %" PRIu64 " at %" PRIx64 "", +-#ifdef DEBUG +- printf("Reading symbol %s with size %" PRIu64 " at %" PRIx64 "\n", @@ -310,0 +321 @@ +-#endif @@ -322,2 +333,2 @@ - PMD_DRV_LOG(ERR, "rtsym '%s' unsupported size: %" PRId64, -@@ -272,8 +375,11 @@ uint8_t * + printf("rtsym '%s' unsupported size: %" PRId64 "\n", +@@ -295,8 +396,11 @@ uint8_t * @@ -334,3 +345,3 @@ - PMD_DRV_LOG(DEBUG, "mapping symbol %s", name); - sym = nfp_rtsym_lookup(rtbl, name); -@@ -282,14 +388,20 @@ nfp_rtsym_map(struct nfp_rtsym_table *rtbl, const char *name, + #ifdef DEBUG + printf("mapping symbol %s\n", name); +@@ -307,14 +411,20 @@ nfp_rtsym_map(struct nfp_rtsym_table *rtbl, const char *name, @@ -343 +354 @@ -+ PMD_DRV_LOG(ERR, "rtsym '%s': mapping failed", name); ++ printf("rtsym '%s': mapping failed", name); @@ -348 +359 @@ - PMD_DRV_LOG(ERR, "Symbol %s too small (%" PRIu64 " < %u)", name, + printf("Symbol %s too small (%" PRIu64 " < %u)\n", name, @@ -356,2 +367,2 @@ - if (mem == NULL) { - PMD_INIT_LOG(ERR, "Failed to map symbol %s", name); + if (!mem) { + printf("Failed to map symbol %s\n", name);