From: Chaoyong He <chaoyong.he@corigine.com>
To: dev@dpdk.org
Cc: oss-drivers@corigine.com, niklas.soderlund@corigine.com,
Chaoyong He <chaoyong.he@corigine.com>
Subject: [PATCH v2 15/27] net/nfp: refact the rtsym module
Date: Wed, 30 Aug 2023 10:14:45 +0800 [thread overview]
Message-ID: <20230830021457.2064750-16-chaoyong.he@corigine.com> (raw)
In-Reply-To: <20230830021457.2064750-1-chaoyong.he@corigine.com>
Add several read/write APIs and remove the unneeded header file
include statements.
Signed-off-by: Chaoyong He <chaoyong.he@corigine.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@corigine.com>
---
drivers/net/nfp/nfpcore/nfp_rtsym.c | 305 +++++++++++++++++++++++++---
drivers/net/nfp/nfpcore/nfp_rtsym.h | 53 ++---
2 files changed, 299 insertions(+), 59 deletions(-)
diff --git a/drivers/net/nfp/nfpcore/nfp_rtsym.c b/drivers/net/nfp/nfpcore/nfp_rtsym.c
index 37811ceaeb..2d4100dda2 100644
--- a/drivers/net/nfp/nfpcore/nfp_rtsym.c
+++ b/drivers/net/nfp/nfpcore/nfp_rtsym.c
@@ -8,14 +8,25 @@
* Interface for accessing run-time symbol table
*/
-#include <stdio.h>
+#include "nfp_rtsym.h"
+
#include <rte_byteorder.h>
-#include "nfp_cpp.h"
+
#include "nfp_logs.h"
#include "nfp_mip.h"
-#include "nfp_rtsym.h"
#include "nfp6000/nfp6000.h"
+enum nfp_rtsym_type {
+ NFP_RTSYM_TYPE_NONE,
+ NFP_RTSYM_TYPE_OBJECT,
+ NFP_RTSYM_TYPE_FUNCTION,
+ NFP_RTSYM_TYPE_ABS,
+};
+
+#define NFP_RTSYM_TARGET_NONE 0
+#define NFP_RTSYM_TARGET_LMEM -1
+#define NFP_RTSYM_TARGET_EMU_CACHE -7
+
/* These need to match the linker */
#define SYM_TGT_LMEM 0
#define SYM_TGT_EMU_CACHE 0x17
@@ -32,6 +43,30 @@ struct nfp_rtsym_entry {
uint32_t size_lo;
};
+/*
+ * Structure describing a run-time NFP symbol.
+ *
+ * The memory target of the symbol is generally the CPP target number and can be
+ * used directly by the nfp_cpp API calls. However, in some cases (i.e., for
+ * local memory or control store) the target is encoded using a negative number.
+ *
+ * When the target type can not be used to fully describe the location of a
+ * symbol the domain field is used to further specify the location (i.e., the
+ * specific ME or island number).
+ *
+ * For ME target resources, 'domain' is an MEID.
+ * For Island target resources, 'domain' is an island ID, with the one exception
+ * of "sram" symbols for backward compatibility, which are viewed as global.
+ */
+struct nfp_rtsym {
+ const char *name; /**< Symbol name */
+ uint64_t addr; /**< Address in the domain/target's address space */
+ uint64_t size; /**< Size (in bytes) of the symbol */
+ enum nfp_rtsym_type type; /**< NFP_RTSYM_TYPE_* of the symbol */
+ int target; /**< CPP target identifier, or NFP_RTSYM_TARGET_* */
+ int domain; /**< CPP target domain */
+};
+
struct nfp_rtsym_table {
struct nfp_cpp *cpp;
int num;
@@ -80,21 +115,8 @@ nfp_rtsym_sw_entry_init(struct nfp_rtsym_table *cache,
sw->domain = -1;
}
-struct nfp_rtsym_table *
-nfp_rtsym_table_read(struct nfp_cpp *cpp)
-{
- struct nfp_mip *mip;
- struct nfp_rtsym_table *rtbl;
-
- mip = nfp_mip_open(cpp);
- rtbl = __nfp_rtsym_table_read(cpp, mip);
- nfp_mip_close(mip);
-
- return rtbl;
-}
-
-struct nfp_rtsym_table *
-__nfp_rtsym_table_read(struct nfp_cpp *cpp,
+static struct nfp_rtsym_table *
+nfp_rtsym_table_read_real(struct nfp_cpp *cpp,
const struct nfp_mip *mip)
{
int n;
@@ -162,6 +184,19 @@ __nfp_rtsym_table_read(struct nfp_cpp *cpp,
return NULL;
}
+struct nfp_rtsym_table *
+nfp_rtsym_table_read(struct nfp_cpp *cpp)
+{
+ struct nfp_mip *mip;
+ struct nfp_rtsym_table *rtbl;
+
+ mip = nfp_mip_open(cpp);
+ rtbl = nfp_rtsym_table_read_real(cpp, mip);
+ nfp_mip_close(mip);
+
+ return rtbl;
+}
+
/**
* Get the number of RTSYM descriptors
*
@@ -287,7 +322,59 @@ nfp_rtsym_to_dest(struct nfp_cpp *cpp,
}
static int
-nfp_rtsym_readl(struct nfp_cpp *cpp,
+nfp_rtsym_read_real(struct nfp_cpp *cpp,
+ const struct nfp_rtsym *sym,
+ uint8_t action,
+ uint8_t token,
+ uint64_t offset,
+ void *buf,
+ size_t len)
+{
+ int err;
+ uint64_t addr;
+ uint32_t cpp_id;
+ size_t length = len;
+ uint64_t sym_size = nfp_rtsym_size(sym);
+
+ if (offset > sym_size) {
+ PMD_DRV_LOG(ERR, "rtsym '%s' read out of bounds", sym->name);
+ return -ENXIO;
+ }
+
+ if (length > sym_size - offset)
+ length = sym_size - offset;
+
+ if (sym->type == NFP_RTSYM_TYPE_ABS) {
+ union {
+ uint64_t value_64;
+ uint8_t value_8[8];
+ } tmp;
+
+ tmp.value_64 = sym->addr;
+ memcpy(buf, &tmp.value_8[offset], length);
+
+ return length;
+ }
+
+ err = nfp_rtsym_to_dest(cpp, sym, action, token, offset, &cpp_id, &addr);
+ if (err != 0)
+ return err;
+
+ return nfp_cpp_read(cpp, cpp_id, addr, buf, length);
+}
+
+int
+nfp_rtsym_read(struct nfp_cpp *cpp,
+ const struct nfp_rtsym *sym,
+ uint64_t offset,
+ void *buf,
+ size_t len)
+{
+ return nfp_rtsym_read_real(cpp, sym, NFP_CPP_ACTION_RW, 0, offset, buf, len);
+}
+
+static int
+nfp_rtsym_readl_real(struct nfp_cpp *cpp,
const struct nfp_rtsym *sym,
uint8_t action,
uint8_t token,
@@ -310,8 +397,17 @@ nfp_rtsym_readl(struct nfp_cpp *cpp,
return nfp_cpp_readl(cpp, cpp_id, addr, value);
}
+int
+nfp_rtsym_readl(struct nfp_cpp *cpp,
+ const struct nfp_rtsym *sym,
+ uint64_t offset,
+ uint32_t *value)
+{
+ return nfp_rtsym_readl_real(cpp, sym, NFP_CPP_ACTION_RW, 0, offset, value);
+}
+
static int
-nfp_rtsym_readq(struct nfp_cpp *cpp,
+nfp_rtsym_readq_real(struct nfp_cpp *cpp,
const struct nfp_rtsym *sym,
uint8_t action,
uint8_t token,
@@ -339,6 +435,121 @@ nfp_rtsym_readq(struct nfp_cpp *cpp,
return nfp_cpp_readq(cpp, cpp_id, addr, value);
}
+int
+nfp_rtsym_readq(struct nfp_cpp *cpp,
+ const struct nfp_rtsym *sym,
+ uint64_t offset,
+ uint64_t *value)
+{
+ return nfp_rtsym_readq_real(cpp, sym, NFP_CPP_ACTION_RW, 0, offset, value);
+}
+
+static int
+nfp_rtsym_write_real(struct nfp_cpp *cpp,
+ const struct nfp_rtsym *sym,
+ uint8_t action,
+ uint8_t token,
+ uint64_t offset,
+ void *buf,
+ size_t len)
+{
+ int err;
+ uint64_t addr;
+ uint32_t cpp_id;
+ size_t length = len;
+ uint64_t sym_size = nfp_rtsym_size(sym);
+
+ if (offset > sym_size) {
+ PMD_DRV_LOG(ERR, "rtsym '%s' write out of bounds", sym->name);
+ return -ENXIO;
+ }
+
+ if (length > sym_size - offset)
+ length = sym_size - offset;
+
+ err = nfp_rtsym_to_dest(cpp, sym, action, token, offset, &cpp_id, &addr);
+ if (err != 0)
+ return err;
+
+ return nfp_cpp_write(cpp, cpp_id, addr, buf, length);
+}
+
+int
+nfp_rtsym_write(struct nfp_cpp *cpp,
+ const struct nfp_rtsym *sym,
+ uint64_t offset,
+ void *buf,
+ size_t len)
+{
+ return nfp_rtsym_write_real(cpp, sym, NFP_CPP_ACTION_RW, 0, offset, buf, len);
+}
+
+static int
+nfp_rtsym_writel_real(struct nfp_cpp *cpp,
+ const struct nfp_rtsym *sym,
+ uint8_t action,
+ uint8_t token,
+ uint64_t offset,
+ uint32_t value)
+{
+ int err;
+ uint64_t addr;
+ uint32_t cpp_id;
+
+ if (offset + 4 > nfp_rtsym_size(sym)) {
+ PMD_DRV_LOG(ERR, "rtsym '%s' write out of bounds", sym->name);
+ return -ENXIO;
+ }
+
+ err = nfp_rtsym_to_dest(cpp, sym, action, token, offset, &cpp_id, &addr);
+ if (err != 0)
+ return err;
+
+ return nfp_cpp_writel(cpp, cpp_id, addr, value);
+}
+
+int
+nfp_rtsym_writel(struct nfp_cpp *cpp,
+ const struct nfp_rtsym *sym,
+ uint64_t offset,
+ uint32_t value)
+{
+ return nfp_rtsym_writel_real(cpp, sym, NFP_CPP_ACTION_RW, 0, offset, value);
+}
+
+static int
+nfp_rtsym_writeq_real(struct nfp_cpp *cpp,
+ const struct nfp_rtsym *sym,
+ uint8_t action,
+ uint8_t token,
+ uint64_t offset,
+ uint64_t value)
+{
+ int err;
+ uint64_t addr;
+ uint32_t cpp_id;
+
+ if (offset + 8 > nfp_rtsym_size(sym)) {
+ PMD_DRV_LOG(ERR, "rtsym '%s' write out of bounds", sym->name);
+ return -ENXIO;
+ }
+
+ err = nfp_rtsym_to_dest(cpp, sym, action, token, offset, &cpp_id, &addr);
+ if (err != 0)
+ return err;
+
+ return nfp_cpp_writeq(cpp, cpp_id, addr, value);
+}
+
+int
+nfp_rtsym_writeq(struct nfp_cpp *cpp,
+ const struct nfp_rtsym *sym,
+ uint64_t offset,
+ uint64_t value)
+{
+ return nfp_rtsym_writeq_real(cpp, sym, NFP_CPP_ACTION_RW, 0, offset, value);
+}
+
/**
* Read a simple unsigned scalar value from symbol
*
@@ -374,11 +585,11 @@ nfp_rtsym_read_le(struct nfp_rtsym_table *rtbl,
switch (sym->size) {
case 4:
- err = nfp_rtsym_readl(rtbl->cpp, sym, NFP_CPP_ACTION_RW, 0, 0, &val32);
+ err = nfp_rtsym_readl(rtbl->cpp, sym, 0, &val32);
val = val32;
break;
case 8:
- err = nfp_rtsym_readq(rtbl->cpp, sym, NFP_CPP_ACTION_RW, 0, 0, &val);
+ err = nfp_rtsym_readq(rtbl->cpp, sym, 0, &val);
break;
default:
PMD_DRV_LOG(ERR, "rtsym '%s' unsupported size: %#lx",
@@ -387,8 +598,6 @@ nfp_rtsym_read_le(struct nfp_rtsym_table *rtbl,
break;
}
- if (err)
- err = -EIO;
exit:
if (error != NULL)
*error = err;
@@ -399,6 +608,54 @@ nfp_rtsym_read_le(struct nfp_rtsym_table *rtbl,
return val;
}
+/**
+ * Write an unsigned scalar value to a symbol
+ *
+ * Lookup a symbol and write a value to it. Symbol can be 4 or 8 bytes in size.
+ * If 4 bytes then the lower 32-bits of 'value' are used. Value will be
+ * written as simple little-endian unsigned value.
+ *
+ * @param rtbl
+ * NFP RTSYM table
+ * @param name
+ * Symbol name
+ * @param value
+ * Value to write
+ *
+ * @return
+ * 0 on success or error code.
+ */
+int
+nfp_rtsym_write_le(struct nfp_rtsym_table *rtbl,
+ const char *name,
+ uint64_t value)
+{
+ int err;
+ uint64_t sym_size;
+ const struct nfp_rtsym *sym;
+
+ sym = nfp_rtsym_lookup(rtbl, name);
+ if (sym == NULL)
+ return -ENOENT;
+
+ sym_size = nfp_rtsym_size(sym);
+ switch (sym_size) {
+ case 4:
+ err = nfp_rtsym_writel(rtbl->cpp, sym, 0, value);
+ break;
+ case 8:
+ err = nfp_rtsym_writeq(rtbl->cpp, sym, 0, value);
+ break;
+ default:
+ PMD_DRV_LOG(ERR, "rtsym '%s' unsupported size: %#lx",
+ name, sym_size);
+ err = -EINVAL;
+ break;
+ }
+
+ return err;
+}
+
uint8_t *
nfp_rtsym_map(struct nfp_rtsym_table *rtbl,
const char *name,
diff --git a/drivers/net/nfp/nfpcore/nfp_rtsym.h b/drivers/net/nfp/nfpcore/nfp_rtsym.h
index fdde1eb75b..f79637ac50 100644
--- a/drivers/net/nfp/nfpcore/nfp_rtsym.h
+++ b/drivers/net/nfp/nfpcore/nfp_rtsym.h
@@ -6,46 +6,13 @@
#ifndef __NFP_RTSYM_H__
#define __NFP_RTSYM_H__
-#define NFP_RTSYM_TYPE_NONE 0
-#define NFP_RTSYM_TYPE_OBJECT 1
-#define NFP_RTSYM_TYPE_FUNCTION 2
-#define NFP_RTSYM_TYPE_ABS 3
-
-#define NFP_RTSYM_TARGET_NONE 0
-#define NFP_RTSYM_TARGET_LMEM -1
-#define NFP_RTSYM_TARGET_EMU_CACHE -7
-
-/*
- * Structure describing a run-time NFP symbol.
- *
- * The memory target of the symbol is generally the CPP target number and can be
- * used directly by the nfp_cpp API calls. However, in some cases (i.e., for
- * local memory or control store) the target is encoded using a negative number.
- *
- * When the target type can not be used to fully describe the location of a
- * symbol the domain field is used to further specify the location (i.e., the
- * specific ME or island number).
- *
- * For ME target resources, 'domain' is an MEID.
- * For Island target resources, 'domain' is an island ID, with the one exception
- * of "sram" symbols for backward compatibility, which are viewed as global.
- */
-struct nfp_rtsym {
- const char *name; /**< Symbol name */
- uint64_t addr; /**< Address in the domain/target's address space */
- uint64_t size; /**< Size (in bytes) of the symbol */
- int type; /**< NFP_RTSYM_TYPE_* of the symbol */
- int target; /**< CPP target identifier, or NFP_RTSYM_TARGET_* */
- int domain; /**< CPP target domain */
-};
+#include "nfp_cpp.h"
+struct nfp_rtsym;
struct nfp_rtsym_table;
struct nfp_rtsym_table *nfp_rtsym_table_read(struct nfp_cpp *cpp);
-struct nfp_rtsym_table *__nfp_rtsym_table_read(struct nfp_cpp *cpp,
- const struct nfp_mip *mip);
-
int nfp_rtsym_count(struct nfp_rtsym_table *rtbl);
const struct nfp_rtsym *nfp_rtsym_get(struct nfp_rtsym_table *rtbl, int idx);
@@ -53,8 +20,24 @@ const struct nfp_rtsym *nfp_rtsym_get(struct nfp_rtsym_table *rtbl, int idx);
const struct nfp_rtsym *nfp_rtsym_lookup(struct nfp_rtsym_table *rtbl,
const char *name);
+int nfp_rtsym_read(struct nfp_cpp *cpp, const struct nfp_rtsym *sym,
+ uint64_t offset, void *buf, size_t len);
+int nfp_rtsym_readl(struct nfp_cpp *cpp, const struct nfp_rtsym *sym,
+ uint64_t offset, uint32_t *value);
+int nfp_rtsym_readq(struct nfp_cpp *cpp, const struct nfp_rtsym *sym,
+ uint64_t offset, uint64_t *value);
+
+int nfp_rtsym_write(struct nfp_cpp *cpp, const struct nfp_rtsym *sym,
+ uint64_t offset, void *buf, size_t len);
+int nfp_rtsym_writel(struct nfp_cpp *cpp, const struct nfp_rtsym *sym,
+ uint64_t offset, uint32_t value);
+int nfp_rtsym_writeq(struct nfp_cpp *cpp, const struct nfp_rtsym *sym,
+ uint64_t offset, uint64_t value);
+
uint64_t nfp_rtsym_read_le(struct nfp_rtsym_table *rtbl, const char *name,
int *error);
+int nfp_rtsym_write_le(struct nfp_rtsym_table *rtbl, const char *name,
+ uint64_t value);
uint8_t *nfp_rtsym_map(struct nfp_rtsym_table *rtbl, const char *name,
uint32_t min_size, struct nfp_cpp_area **area);
--
2.39.1
next prev parent reply other threads:[~2023-08-30 2:17 UTC|newest]
Thread overview: 159+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-24 11:09 [PATCH 00/27] refact the nfpcore module Chaoyong He
2023-08-24 11:09 ` [PATCH 01/27] net/nfp: explicitly compare to null and 0 Chaoyong He
2023-08-24 11:09 ` [PATCH 02/27] net/nfp: unify the indent coding style Chaoyong He
2023-08-24 11:09 ` [PATCH 03/27] net/nfp: unify the type of integer variable Chaoyong He
2023-08-24 11:09 ` [PATCH 04/27] net/nfp: remove the unneeded logic Chaoyong He
2023-08-24 11:09 ` [PATCH 05/27] net/nfp: standard the local variable coding style Chaoyong He
2023-08-24 11:09 ` [PATCH 06/27] net/nfp: adjust the log statement Chaoyong He
2023-08-24 11:09 ` [PATCH 07/27] net/nfp: standard the comment style Chaoyong He
2023-08-24 11:09 ` [PATCH 08/27] net/nfp: using the DPDK memory management API Chaoyong He
2023-08-24 11:09 ` [PATCH 09/27] net/nfp: standard the blank character Chaoyong He
2023-08-24 11:09 ` [PATCH 10/27] net/nfp: unify the guide line of header file Chaoyong He
2023-08-24 11:09 ` [PATCH 11/27] net/nfp: rename some parameter and variable Chaoyong He
2023-08-24 11:09 ` [PATCH 12/27] net/nfp: refact the hwinfo module Chaoyong He
2023-08-24 11:09 ` [PATCH 13/27] net/nfp: refact the nffw module Chaoyong He
2023-08-24 11:09 ` [PATCH 14/27] net/nfp: refact the mip module Chaoyong He
2023-08-24 11:09 ` [PATCH 15/27] net/nfp: refact the rtsym module Chaoyong He
2023-08-24 11:09 ` [PATCH 16/27] net/nfp: refact the resource module Chaoyong He
2023-08-24 11:09 ` [PATCH 17/27] net/nfp: refact the target module Chaoyong He
2023-08-24 11:09 ` [PATCH 18/27] net/nfp: add a new header file Chaoyong He
2023-08-24 11:09 ` [PATCH 19/27] net/nfp: refact the nsp module Chaoyong He
2023-08-24 11:09 ` [PATCH 20/27] net/nfp: refact the mutex module Chaoyong He
2023-08-24 11:09 ` [PATCH 21/27] net/nfp: rename data field to sync with kernel driver Chaoyong He
2023-08-24 11:09 ` [PATCH 22/27] net/nfp: add the dev module Chaoyong He
2023-08-24 11:09 ` [PATCH 23/27] net/nfp: add header file for PCIe module Chaoyong He
2023-08-24 11:09 ` [PATCH 24/27] net/nfp: refact the cppcore module Chaoyong He
2023-08-24 11:09 ` [PATCH 25/27] net/nfp: refact the PCIe module Chaoyong He
2023-08-24 11:09 ` [PATCH 26/27] net/nfp: refact the cppcore and " Chaoyong He
2023-08-24 11:09 ` [PATCH 27/27] net/nfp: extend the usage of nfp BAR from 8 to 24 Chaoyong He
2023-08-30 2:14 ` [PATCH v2 00/27] refact the nfpcore module Chaoyong He
2023-08-30 2:14 ` [PATCH v2 01/27] net/nfp: explicitly compare to null and 0 Chaoyong He
2023-08-30 2:14 ` [PATCH v2 02/27] net/nfp: unify the indent coding style Chaoyong He
2023-08-30 2:14 ` [PATCH v2 03/27] net/nfp: unify the type of integer variable Chaoyong He
2023-08-30 2:14 ` [PATCH v2 04/27] net/nfp: remove the unneeded logic Chaoyong He
2023-08-30 2:14 ` [PATCH v2 05/27] net/nfp: standard the local variable coding style Chaoyong He
2023-08-30 2:14 ` [PATCH v2 06/27] net/nfp: adjust the log statement Chaoyong He
2023-08-30 2:14 ` [PATCH v2 07/27] net/nfp: standard the comment style Chaoyong He
2023-08-30 2:14 ` [PATCH v2 08/27] net/nfp: using the DPDK memory management API Chaoyong He
2023-08-30 2:14 ` [PATCH v2 09/27] net/nfp: standard the blank character Chaoyong He
2023-08-30 2:14 ` [PATCH v2 10/27] net/nfp: unify the guide line of header file Chaoyong He
2023-08-30 2:14 ` [PATCH v2 11/27] net/nfp: rename some parameter and variable Chaoyong He
2023-08-30 2:14 ` [PATCH v2 12/27] net/nfp: refact the hwinfo module Chaoyong He
2023-08-30 2:14 ` [PATCH v2 13/27] net/nfp: refact the nffw module Chaoyong He
2023-08-30 2:14 ` [PATCH v2 14/27] net/nfp: refact the mip module Chaoyong He
2023-08-30 2:14 ` Chaoyong He [this message]
2023-08-30 2:14 ` [PATCH v2 16/27] net/nfp: refact the resource module Chaoyong He
2023-08-30 2:14 ` [PATCH v2 17/27] net/nfp: refact the target module Chaoyong He
2023-08-30 2:14 ` [PATCH v2 18/27] net/nfp: add a new header file Chaoyong He
2023-08-30 2:14 ` [PATCH v2 19/27] net/nfp: refact the nsp module Chaoyong He
2023-08-30 2:14 ` [PATCH v2 20/27] net/nfp: refact the mutex module Chaoyong He
2023-08-30 2:14 ` [PATCH v2 21/27] net/nfp: rename data field to sync with kernel driver Chaoyong He
2023-08-30 2:14 ` [PATCH v2 22/27] net/nfp: add the dev module Chaoyong He
2023-08-30 2:14 ` [PATCH v2 23/27] net/nfp: add header file for PCIe module Chaoyong He
2023-08-30 2:14 ` [PATCH v2 24/27] net/nfp: refact the cppcore module Chaoyong He
2023-08-30 2:14 ` [PATCH v2 25/27] net/nfp: refact the PCIe module Chaoyong He
2023-08-30 2:14 ` [PATCH v2 26/27] net/nfp: refact the cppcore and " Chaoyong He
2023-08-30 2:14 ` [PATCH v2 27/27] net/nfp: extend the usage of nfp BAR from 8 to 24 Chaoyong He
2023-09-15 9:15 ` [PATCH v3 00/27] refact the nfpcore module Chaoyong He
2023-09-15 9:15 ` [PATCH v3 01/27] net/nfp: explicitly compare to null and 0 Chaoyong He
2023-09-15 9:15 ` [PATCH v3 02/27] net/nfp: unify the indent coding style Chaoyong He
2023-09-15 13:40 ` Ferruh Yigit
2023-09-18 1:25 ` Chaoyong He
2023-09-18 2:22 ` Stephen Hemminger
2023-09-15 9:15 ` [PATCH v3 03/27] net/nfp: unify the type of integer variable Chaoyong He
2023-09-15 13:42 ` Ferruh Yigit
2023-09-18 1:26 ` Chaoyong He
2023-09-15 9:15 ` [PATCH v3 04/27] net/nfp: remove the unneeded logic Chaoyong He
2023-09-15 9:15 ` [PATCH v3 05/27] net/nfp: standard the local variable coding style Chaoyong He
2023-09-15 9:15 ` [PATCH v3 06/27] net/nfp: adjust the log statement Chaoyong He
2023-09-15 9:15 ` [PATCH v3 07/27] net/nfp: standard the comment style Chaoyong He
2023-09-15 13:44 ` Ferruh Yigit
2023-09-18 1:28 ` Chaoyong He
2023-09-18 2:08 ` Chaoyong He
2023-09-15 9:15 ` [PATCH v3 08/27] net/nfp: using the DPDK memory management API Chaoyong He
2023-09-15 13:45 ` Ferruh Yigit
2023-09-18 1:29 ` Chaoyong He
2023-09-15 9:15 ` [PATCH v3 09/27] net/nfp: standard the blank character Chaoyong He
2023-09-15 9:15 ` [PATCH v3 10/27] net/nfp: unify the guide line of header file Chaoyong He
2023-09-15 9:15 ` [PATCH v3 11/27] net/nfp: rename some parameter and variable Chaoyong He
2023-09-15 9:15 ` [PATCH v3 12/27] net/nfp: refact the hwinfo module Chaoyong He
2023-09-15 13:46 ` Ferruh Yigit
2023-09-18 1:39 ` Chaoyong He
2023-09-18 11:01 ` Ferruh Yigit
2023-09-15 9:15 ` [PATCH v3 13/27] net/nfp: refact the nffw module Chaoyong He
2023-09-15 9:15 ` [PATCH v3 14/27] net/nfp: refact the mip module Chaoyong He
2023-09-15 9:15 ` [PATCH v3 15/27] net/nfp: refact the rtsym module Chaoyong He
2023-09-15 9:15 ` [PATCH v3 16/27] net/nfp: refact the resource module Chaoyong He
2023-09-15 9:15 ` [PATCH v3 17/27] net/nfp: refact the target module Chaoyong He
2023-09-15 9:15 ` [PATCH v3 18/27] net/nfp: add a new header file Chaoyong He
2023-09-15 9:15 ` [PATCH v3 19/27] net/nfp: refact the nsp module Chaoyong He
2023-09-18 12:31 ` Ferruh Yigit
2023-09-18 12:36 ` Ferruh Yigit
2023-09-15 9:15 ` [PATCH v3 20/27] net/nfp: refact the mutex module Chaoyong He
2023-09-15 9:15 ` [PATCH v3 21/27] net/nfp: rename data field to sync with kernel driver Chaoyong He
2023-09-15 9:15 ` [PATCH v3 22/27] net/nfp: add the dev module Chaoyong He
2023-09-15 9:15 ` [PATCH v3 23/27] net/nfp: add header file for PCIe module Chaoyong He
2023-09-15 9:15 ` [PATCH v3 24/27] net/nfp: refact the cppcore module Chaoyong He
2023-09-15 9:15 ` [PATCH v3 25/27] net/nfp: refact the PCIe module Chaoyong He
2023-09-15 9:15 ` [PATCH v3 26/27] net/nfp: refact the cppcore and " Chaoyong He
2023-09-15 9:15 ` [PATCH v3 27/27] net/nfp: extend the usage of nfp BAR from 8 to 24 Chaoyong He
2023-09-15 13:49 ` [PATCH v3 00/27] refact the nfpcore module Ferruh Yigit
2023-09-18 2:45 ` [PATCH v4 00/26] " Chaoyong He
2023-09-18 2:45 ` [PATCH v4 01/26] net/nfp: explicitly compare to null and 0 Chaoyong He
2023-09-18 2:45 ` [PATCH v4 02/26] net/nfp: unify the indent coding style Chaoyong He
2023-09-18 11:53 ` Niklas Söderlund
2023-09-18 2:45 ` [PATCH v4 03/26] net/nfp: unify the type of integer variable Chaoyong He
2023-09-18 2:45 ` [PATCH v4 04/26] net/nfp: remove the unneeded logic Chaoyong He
2023-09-18 2:45 ` [PATCH v4 05/26] net/nfp: standard the local variable coding style Chaoyong He
2023-09-18 2:45 ` [PATCH v4 06/26] net/nfp: adjust the log statement Chaoyong He
2023-09-18 2:45 ` [PATCH v4 07/26] net/nfp: standard the comment style Chaoyong He
2023-09-18 2:45 ` [PATCH v4 08/26] net/nfp: standard the blank character Chaoyong He
2023-09-18 2:45 ` [PATCH v4 09/26] net/nfp: unify the guide line of header file Chaoyong He
2023-09-18 2:45 ` [PATCH v4 10/26] net/nfp: rename some parameter and variable Chaoyong He
2023-09-18 2:45 ` [PATCH v4 11/26] net/nfp: refact the hwinfo module Chaoyong He
2023-09-18 2:45 ` [PATCH v4 12/26] net/nfp: refact the nffw module Chaoyong He
2023-09-18 2:45 ` [PATCH v4 13/26] net/nfp: refact the mip module Chaoyong He
2023-09-18 2:46 ` [PATCH v4 14/26] net/nfp: refact the rtsym module Chaoyong He
2023-09-18 2:46 ` [PATCH v4 15/26] net/nfp: refact the resource module Chaoyong He
2023-09-18 2:46 ` [PATCH v4 16/26] net/nfp: refact the target module Chaoyong He
2023-09-18 2:46 ` [PATCH v4 17/26] net/nfp: add a new header file Chaoyong He
2023-09-18 2:46 ` [PATCH v4 18/26] net/nfp: refact the nsp module Chaoyong He
2023-09-18 2:46 ` [PATCH v4 19/26] net/nfp: refact the mutex module Chaoyong He
2023-09-18 2:46 ` [PATCH v4 20/26] net/nfp: rename data field to sync with kernel driver Chaoyong He
2023-09-18 2:46 ` [PATCH v4 21/26] net/nfp: add the dev module Chaoyong He
2023-09-18 2:46 ` [PATCH v4 22/26] net/nfp: add header file for PCIe module Chaoyong He
2023-09-18 2:46 ` [PATCH v4 23/26] net/nfp: refact the cppcore module Chaoyong He
2023-09-18 2:46 ` [PATCH v4 24/26] net/nfp: refact the PCIe module Chaoyong He
2023-09-18 2:46 ` [PATCH v4 25/26] net/nfp: refact the cppcore and " Chaoyong He
2023-09-18 2:46 ` [PATCH v4 26/26] net/nfp: extend the usage of nfp BAR from 8 to 24 Chaoyong He
2023-09-19 9:54 ` [PATCH v5 00/26] refact the nfpcore module Chaoyong He
2023-09-19 9:54 ` [PATCH v5 01/26] net/nfp: explicitly compare to null and 0 Chaoyong He
2023-09-19 9:54 ` [PATCH v5 02/26] net/nfp: unify the indent coding style Chaoyong He
2023-09-19 9:54 ` [PATCH v5 03/26] net/nfp: unify the type of integer variable Chaoyong He
2023-09-19 9:54 ` [PATCH v5 04/26] net/nfp: remove the unneeded logic Chaoyong He
2023-09-19 9:54 ` [PATCH v5 05/26] net/nfp: standard the local variable coding style Chaoyong He
2023-09-19 9:54 ` [PATCH v5 06/26] net/nfp: adjust the log statement Chaoyong He
2023-09-19 9:54 ` [PATCH v5 07/26] net/nfp: standard the comment style Chaoyong He
2023-09-19 9:54 ` [PATCH v5 08/26] net/nfp: standard the blank character Chaoyong He
2023-09-19 9:54 ` [PATCH v5 09/26] net/nfp: unify the guide line of header file Chaoyong He
2023-09-19 9:54 ` [PATCH v5 10/26] net/nfp: rename some parameter and variable Chaoyong He
2023-09-19 9:54 ` [PATCH v5 11/26] net/nfp: refact the hwinfo module Chaoyong He
2023-09-19 9:54 ` [PATCH v5 12/26] net/nfp: refact the nffw module Chaoyong He
2023-09-19 9:54 ` [PATCH v5 13/26] net/nfp: refact the mip module Chaoyong He
2023-09-19 9:54 ` [PATCH v5 14/26] net/nfp: refact the rtsym module Chaoyong He
2023-09-19 9:54 ` [PATCH v5 15/26] net/nfp: refact the resource module Chaoyong He
2023-09-19 9:54 ` [PATCH v5 16/26] net/nfp: refact the target module Chaoyong He
2023-09-19 9:54 ` [PATCH v5 17/26] net/nfp: add a new header file Chaoyong He
2023-09-19 9:54 ` [PATCH v5 18/26] net/nfp: refact the nsp module Chaoyong He
2023-09-19 9:54 ` [PATCH v5 19/26] net/nfp: refact the mutex module Chaoyong He
2023-09-19 9:54 ` [PATCH v5 20/26] net/nfp: rename data field to sync with kernel driver Chaoyong He
2023-09-19 9:54 ` [PATCH v5 21/26] net/nfp: add the dev module Chaoyong He
2023-09-19 9:54 ` [PATCH v5 22/26] net/nfp: add header file for PCIe module Chaoyong He
2023-09-19 9:54 ` [PATCH v5 23/26] net/nfp: refact the cppcore module Chaoyong He
2023-09-19 9:54 ` [PATCH v5 24/26] net/nfp: refact the PCIe module Chaoyong He
2023-09-19 21:18 ` [PATCH v5 00/26] refact the nfpcore module Ferruh Yigit
2023-09-20 1:55 ` Chaoyong He
2023-09-20 8:54 ` Ferruh Yigit
2023-09-20 9:59 ` Ferruh Yigit
2023-09-20 1:28 ` [PATCH v5 25/26] net/nfp: refact the cppcore and PCIe module Chaoyong He
2023-09-20 1:29 ` [PATCH v5 26/26] net/nfp: extend the usage of nfp BAR from 8 to 24 Chaoyong He
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230830021457.2064750-16-chaoyong.he@corigine.com \
--to=chaoyong.he@corigine.com \
--cc=dev@dpdk.org \
--cc=niklas.soderlund@corigine.com \
--cc=oss-drivers@corigine.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).