DPDK patches and discussions
 help / color / mirror / Atom feed
From: David Marchand <david.marchand@redhat.com>
To: dev@dpdk.org
Cc: thomas@monjalon.net, bruce.richardson@intel.com,
	Aman Singh <aman.deep.singh@intel.com>,
	Yuying Zhang <yuying.zhang@intel.com>
Subject: [PATCH v4 04/27] app/testpmd: drop PCI register commands
Date: Fri, 26 Aug 2022 14:41:45 +0200	[thread overview]
Message-ID: <20220826124208.671400-5-david.marchand@redhat.com> (raw)
In-Reply-To: <20220826124208.671400-1-david.marchand@redhat.com>

Those commands date back to the early stages of DPDK when only PCI
devices were supported.
At the time, developers may have used those commands to help in
debugging their buggy^Wwork in progress drivers.

Removing them, we can drop the dependency on the PCI bus and library and
make testpmd bus agnostic.

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 app/test-pmd/cmdline.c                      | 339 +-------------------
 app/test-pmd/config.c                       | 195 -----------
 app/test-pmd/csumonly.c                     |   1 -
 app/test-pmd/flowgen.c                      |   1 -
 app/test-pmd/iofwd.c                        |   1 -
 app/test-pmd/macfwd.c                       |   1 -
 app/test-pmd/macswap.c                      |   1 -
 app/test-pmd/meson.build                    |   2 +-
 app/test-pmd/parameters.c                   |   1 -
 app/test-pmd/rxonly.c                       |   1 -
 app/test-pmd/testpmd.c                      |   1 -
 app/test-pmd/testpmd.h                      |  72 +----
 app/test-pmd/txonly.c                       |   1 -
 doc/guides/testpmd_app_ug/testpmd_funcs.rst |  81 -----
 14 files changed, 4 insertions(+), 694 deletions(-)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index b4fe9dfb17..4697b7c494 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -28,7 +28,6 @@
 #include <rte_ring.h>
 #include <rte_mempool.h>
 #include <rte_interrupts.h>
-#include <rte_pci.h>
 #include <rte_ether.h>
 #include <rte_ethdev.h>
 #include <rte_string_fns.h>
@@ -89,7 +88,6 @@ static void cmd_help_brief_parsed(__rte_unused void *parsed_result,
 		"information.\n"
 		"    help config                     : Configuration information.\n"
 		"    help ports                      : Configuring ports.\n"
-		"    help registers                  : Reading and setting port registers.\n"
 		"    help filters                    : Filters configuration help.\n"
 		"    help traffic_management         : Traffic Management commands.\n"
 		"    help devices                    : Device related commands.\n"
@@ -799,34 +797,6 @@ static void cmd_help_long_parsed(void *parsed_result,
 		);
 	}
 
-	if (show_all || !strcmp(res->section, "registers")) {
-
-		cmdline_printf(
-			cl,
-			"\n"
-			"Registers:\n"
-			"----------\n\n"
-
-			"read reg (port_id) (address)\n"
-			"    Display value of a port register.\n\n"
-
-			"read regfield (port_id) (address) (bit_x) (bit_y)\n"
-			"    Display a port register bit field.\n\n"
-
-			"read regbit (port_id) (address) (bit_x)\n"
-			"    Display a single port register bit.\n\n"
-
-			"write reg (port_id) (address) (value)\n"
-			"    Set value of a port register.\n\n"
-
-			"write regfield (port_id) (address) (bit_x) (bit_y)"
-			" (value)\n"
-			"    Set bit field of a port register.\n\n"
-
-			"write regbit (port_id) (address) (bit_x) (value)\n"
-			"    Set single bit value of a port register.\n\n"
-		);
-	}
 	if (show_all || !strcmp(res->section, "filters")) {
 
 		cmdline_printf(
@@ -1077,13 +1047,13 @@ static cmdline_parse_token_string_t cmd_help_long_help =
 
 static cmdline_parse_token_string_t cmd_help_long_section =
 	TOKEN_STRING_INITIALIZER(struct cmd_help_long_result, section,
-		"all#control#display#config#ports#registers#"
+		"all#control#display#config#ports#"
 		"filters#traffic_management#devices#drivers");
 
 static cmdline_parse_inst_t cmd_help_long = {
 	.f = cmd_help_long_parsed,
 	.data = NULL,
-	.help_str = "help all|control|display|config|ports|register|"
+	.help_str = "help all|control|display|config|ports|"
 		"filters|traffic_management|devices|drivers: "
 		"Show help",
 	.tokens = {
@@ -7390,305 +7360,6 @@ static cmdline_parse_inst_t cmd_showfwdall = {
 	},
 };
 
-/* *** READ PORT REGISTER *** */
-struct cmd_read_reg_result {
-	cmdline_fixed_string_t read;
-	cmdline_fixed_string_t reg;
-	portid_t port_id;
-	uint32_t reg_off;
-};
-
-static void
-cmd_read_reg_parsed(void *parsed_result,
-		    __rte_unused struct cmdline *cl,
-		    __rte_unused void *data)
-{
-	struct cmd_read_reg_result *res = parsed_result;
-	port_reg_display(res->port_id, res->reg_off);
-}
-
-static cmdline_parse_token_string_t cmd_read_reg_read =
-	TOKEN_STRING_INITIALIZER(struct cmd_read_reg_result, read, "read");
-static cmdline_parse_token_string_t cmd_read_reg_reg =
-	TOKEN_STRING_INITIALIZER(struct cmd_read_reg_result, reg, "reg");
-static cmdline_parse_token_num_t cmd_read_reg_port_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_result, port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_read_reg_reg_off =
-	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_result, reg_off, RTE_UINT32);
-
-static cmdline_parse_inst_t cmd_read_reg = {
-	.f = cmd_read_reg_parsed,
-	.data = NULL,
-	.help_str = "read reg <port_id> <reg_off>",
-	.tokens = {
-		(void *)&cmd_read_reg_read,
-		(void *)&cmd_read_reg_reg,
-		(void *)&cmd_read_reg_port_id,
-		(void *)&cmd_read_reg_reg_off,
-		NULL,
-	},
-};
-
-/* *** READ PORT REGISTER BIT FIELD *** */
-struct cmd_read_reg_bit_field_result {
-	cmdline_fixed_string_t read;
-	cmdline_fixed_string_t regfield;
-	portid_t port_id;
-	uint32_t reg_off;
-	uint8_t bit1_pos;
-	uint8_t bit2_pos;
-};
-
-static void
-cmd_read_reg_bit_field_parsed(void *parsed_result,
-			      __rte_unused struct cmdline *cl,
-			      __rte_unused void *data)
-{
-	struct cmd_read_reg_bit_field_result *res = parsed_result;
-	port_reg_bit_field_display(res->port_id, res->reg_off,
-				   res->bit1_pos, res->bit2_pos);
-}
-
-static cmdline_parse_token_string_t cmd_read_reg_bit_field_read =
-	TOKEN_STRING_INITIALIZER(struct cmd_read_reg_bit_field_result, read,
-				 "read");
-static cmdline_parse_token_string_t cmd_read_reg_bit_field_regfield =
-	TOKEN_STRING_INITIALIZER(struct cmd_read_reg_bit_field_result,
-				 regfield, "regfield");
-static cmdline_parse_token_num_t cmd_read_reg_bit_field_port_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_field_result, port_id,
-			      RTE_UINT16);
-static cmdline_parse_token_num_t cmd_read_reg_bit_field_reg_off =
-	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_field_result, reg_off,
-			      RTE_UINT32);
-static cmdline_parse_token_num_t cmd_read_reg_bit_field_bit1_pos =
-	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_field_result, bit1_pos,
-			      RTE_UINT8);
-static cmdline_parse_token_num_t cmd_read_reg_bit_field_bit2_pos =
-	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_field_result, bit2_pos,
-			      RTE_UINT8);
-
-static cmdline_parse_inst_t cmd_read_reg_bit_field = {
-	.f = cmd_read_reg_bit_field_parsed,
-	.data = NULL,
-	.help_str = "read regfield <port_id> <reg_off> <bit_x> <bit_y>: "
-	"Read register bit field between bit_x and bit_y included",
-	.tokens = {
-		(void *)&cmd_read_reg_bit_field_read,
-		(void *)&cmd_read_reg_bit_field_regfield,
-		(void *)&cmd_read_reg_bit_field_port_id,
-		(void *)&cmd_read_reg_bit_field_reg_off,
-		(void *)&cmd_read_reg_bit_field_bit1_pos,
-		(void *)&cmd_read_reg_bit_field_bit2_pos,
-		NULL,
-	},
-};
-
-/* *** READ PORT REGISTER BIT *** */
-struct cmd_read_reg_bit_result {
-	cmdline_fixed_string_t read;
-	cmdline_fixed_string_t regbit;
-	portid_t port_id;
-	uint32_t reg_off;
-	uint8_t bit_pos;
-};
-
-static void
-cmd_read_reg_bit_parsed(void *parsed_result,
-			__rte_unused struct cmdline *cl,
-			__rte_unused void *data)
-{
-	struct cmd_read_reg_bit_result *res = parsed_result;
-	port_reg_bit_display(res->port_id, res->reg_off, res->bit_pos);
-}
-
-static cmdline_parse_token_string_t cmd_read_reg_bit_read =
-	TOKEN_STRING_INITIALIZER(struct cmd_read_reg_bit_result, read, "read");
-static cmdline_parse_token_string_t cmd_read_reg_bit_regbit =
-	TOKEN_STRING_INITIALIZER(struct cmd_read_reg_bit_result,
-				 regbit, "regbit");
-static cmdline_parse_token_num_t cmd_read_reg_bit_port_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_result, port_id,
-				 RTE_UINT16);
-static cmdline_parse_token_num_t cmd_read_reg_bit_reg_off =
-	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_result, reg_off,
-				 RTE_UINT32);
-static cmdline_parse_token_num_t cmd_read_reg_bit_bit_pos =
-	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_result, bit_pos,
-				 RTE_UINT8);
-
-static cmdline_parse_inst_t cmd_read_reg_bit = {
-	.f = cmd_read_reg_bit_parsed,
-	.data = NULL,
-	.help_str = "read regbit <port_id> <reg_off> <bit_x>: 0 <= bit_x <= 31",
-	.tokens = {
-		(void *)&cmd_read_reg_bit_read,
-		(void *)&cmd_read_reg_bit_regbit,
-		(void *)&cmd_read_reg_bit_port_id,
-		(void *)&cmd_read_reg_bit_reg_off,
-		(void *)&cmd_read_reg_bit_bit_pos,
-		NULL,
-	},
-};
-
-/* *** WRITE PORT REGISTER *** */
-struct cmd_write_reg_result {
-	cmdline_fixed_string_t write;
-	cmdline_fixed_string_t reg;
-	portid_t port_id;
-	uint32_t reg_off;
-	uint32_t value;
-};
-
-static void
-cmd_write_reg_parsed(void *parsed_result,
-		     __rte_unused struct cmdline *cl,
-		     __rte_unused void *data)
-{
-	struct cmd_write_reg_result *res = parsed_result;
-	port_reg_set(res->port_id, res->reg_off, res->value);
-}
-
-static cmdline_parse_token_string_t cmd_write_reg_write =
-	TOKEN_STRING_INITIALIZER(struct cmd_write_reg_result, write, "write");
-static cmdline_parse_token_string_t cmd_write_reg_reg =
-	TOKEN_STRING_INITIALIZER(struct cmd_write_reg_result, reg, "reg");
-static cmdline_parse_token_num_t cmd_write_reg_port_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_result, port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_write_reg_reg_off =
-	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_result, reg_off, RTE_UINT32);
-static cmdline_parse_token_num_t cmd_write_reg_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_result, value, RTE_UINT32);
-
-static cmdline_parse_inst_t cmd_write_reg = {
-	.f = cmd_write_reg_parsed,
-	.data = NULL,
-	.help_str = "write reg <port_id> <reg_off> <reg_value>",
-	.tokens = {
-		(void *)&cmd_write_reg_write,
-		(void *)&cmd_write_reg_reg,
-		(void *)&cmd_write_reg_port_id,
-		(void *)&cmd_write_reg_reg_off,
-		(void *)&cmd_write_reg_value,
-		NULL,
-	},
-};
-
-/* *** WRITE PORT REGISTER BIT FIELD *** */
-struct cmd_write_reg_bit_field_result {
-	cmdline_fixed_string_t write;
-	cmdline_fixed_string_t regfield;
-	portid_t port_id;
-	uint32_t reg_off;
-	uint8_t bit1_pos;
-	uint8_t bit2_pos;
-	uint32_t value;
-};
-
-static void
-cmd_write_reg_bit_field_parsed(void *parsed_result,
-			       __rte_unused struct cmdline *cl,
-			       __rte_unused void *data)
-{
-	struct cmd_write_reg_bit_field_result *res = parsed_result;
-	port_reg_bit_field_set(res->port_id, res->reg_off,
-			  res->bit1_pos, res->bit2_pos, res->value);
-}
-
-static cmdline_parse_token_string_t cmd_write_reg_bit_field_write =
-	TOKEN_STRING_INITIALIZER(struct cmd_write_reg_bit_field_result, write,
-				 "write");
-static cmdline_parse_token_string_t cmd_write_reg_bit_field_regfield =
-	TOKEN_STRING_INITIALIZER(struct cmd_write_reg_bit_field_result,
-				 regfield, "regfield");
-static cmdline_parse_token_num_t cmd_write_reg_bit_field_port_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_field_result, port_id,
-			      RTE_UINT16);
-static cmdline_parse_token_num_t cmd_write_reg_bit_field_reg_off =
-	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_field_result, reg_off,
-			      RTE_UINT32);
-static cmdline_parse_token_num_t cmd_write_reg_bit_field_bit1_pos =
-	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_field_result, bit1_pos,
-			      RTE_UINT8);
-static cmdline_parse_token_num_t cmd_write_reg_bit_field_bit2_pos =
-	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_field_result, bit2_pos,
-			      RTE_UINT8);
-static cmdline_parse_token_num_t cmd_write_reg_bit_field_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_field_result, value,
-			      RTE_UINT32);
-
-static cmdline_parse_inst_t cmd_write_reg_bit_field = {
-	.f = cmd_write_reg_bit_field_parsed,
-	.data = NULL,
-	.help_str = "write regfield <port_id> <reg_off> <bit_x> <bit_y> "
-		"<reg_value>: "
-		"Set register bit field between bit_x and bit_y included",
-	.tokens = {
-		(void *)&cmd_write_reg_bit_field_write,
-		(void *)&cmd_write_reg_bit_field_regfield,
-		(void *)&cmd_write_reg_bit_field_port_id,
-		(void *)&cmd_write_reg_bit_field_reg_off,
-		(void *)&cmd_write_reg_bit_field_bit1_pos,
-		(void *)&cmd_write_reg_bit_field_bit2_pos,
-		(void *)&cmd_write_reg_bit_field_value,
-		NULL,
-	},
-};
-
-/* *** WRITE PORT REGISTER BIT *** */
-struct cmd_write_reg_bit_result {
-	cmdline_fixed_string_t write;
-	cmdline_fixed_string_t regbit;
-	portid_t port_id;
-	uint32_t reg_off;
-	uint8_t bit_pos;
-	uint8_t value;
-};
-
-static void
-cmd_write_reg_bit_parsed(void *parsed_result,
-			 __rte_unused struct cmdline *cl,
-			 __rte_unused void *data)
-{
-	struct cmd_write_reg_bit_result *res = parsed_result;
-	port_reg_bit_set(res->port_id, res->reg_off, res->bit_pos, res->value);
-}
-
-static cmdline_parse_token_string_t cmd_write_reg_bit_write =
-	TOKEN_STRING_INITIALIZER(struct cmd_write_reg_bit_result, write,
-				 "write");
-static cmdline_parse_token_string_t cmd_write_reg_bit_regbit =
-	TOKEN_STRING_INITIALIZER(struct cmd_write_reg_bit_result,
-				 regbit, "regbit");
-static cmdline_parse_token_num_t cmd_write_reg_bit_port_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_result, port_id,
-				 RTE_UINT16);
-static cmdline_parse_token_num_t cmd_write_reg_bit_reg_off =
-	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_result, reg_off,
-				 RTE_UINT32);
-static cmdline_parse_token_num_t cmd_write_reg_bit_bit_pos =
-	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_result, bit_pos,
-				 RTE_UINT8);
-static cmdline_parse_token_num_t cmd_write_reg_bit_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_result, value,
-				 RTE_UINT8);
-
-static cmdline_parse_inst_t cmd_write_reg_bit = {
-	.f = cmd_write_reg_bit_parsed,
-	.data = NULL,
-	.help_str = "write regbit <port_id> <reg_off> <bit_x> 0|1: "
-		"0 <= bit_x <= 31",
-	.tokens = {
-		(void *)&cmd_write_reg_bit_write,
-		(void *)&cmd_write_reg_bit_regbit,
-		(void *)&cmd_write_reg_bit_port_id,
-		(void *)&cmd_write_reg_bit_reg_off,
-		(void *)&cmd_write_reg_bit_bit_pos,
-		(void *)&cmd_write_reg_bit_value,
-		NULL,
-	},
-};
-
 /* *** READ A RING DESCRIPTOR OF A PORT RX/TX QUEUE *** */
 struct cmd_read_rxd_txd_result {
 	cmdline_fixed_string_t read;
@@ -14222,12 +13893,6 @@ static cmdline_parse_ctx_t builtin_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_priority_flow_control_set,
 	(cmdline_parse_inst_t *)&cmd_queue_priority_flow_control_set,
 	(cmdline_parse_inst_t *)&cmd_config_dcb,
-	(cmdline_parse_inst_t *)&cmd_read_reg,
-	(cmdline_parse_inst_t *)&cmd_read_reg_bit_field,
-	(cmdline_parse_inst_t *)&cmd_read_reg_bit,
-	(cmdline_parse_inst_t *)&cmd_write_reg,
-	(cmdline_parse_inst_t *)&cmd_write_reg_bit_field,
-	(cmdline_parse_inst_t *)&cmd_write_reg_bit,
 	(cmdline_parse_inst_t *)&cmd_read_rxd_txd,
 	(cmdline_parse_inst_t *)&cmd_stop,
 	(cmdline_parse_inst_t *)&cmd_mac_addr,
diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
index a2939867c4..3a53b616d8 100644
--- a/app/test-pmd/config.c
+++ b/app/test-pmd/config.c
@@ -31,7 +31,6 @@
 #include <rte_mempool.h>
 #include <rte_mbuf.h>
 #include <rte_interrupts.h>
-#include <rte_pci.h>
 #include <rte_ether.h>
 #include <rte_ethdev.h>
 #include <rte_string_fns.h>
@@ -1138,200 +1137,6 @@ vlan_id_is_invalid(uint16_t vlan_id)
 	return 1;
 }
 
-static int
-port_reg_off_is_invalid(portid_t port_id, uint32_t reg_off)
-{
-	const struct rte_pci_device *pci_dev;
-	const struct rte_bus *bus;
-	uint64_t pci_len;
-
-	if (reg_off & 0x3) {
-		fprintf(stderr,
-			"Port register offset 0x%X not aligned on a 4-byte boundary\n",
-			(unsigned int)reg_off);
-		return 1;
-	}
-
-	if (!ports[port_id].dev_info.device) {
-		fprintf(stderr, "Invalid device\n");
-		return 0;
-	}
-
-	bus = rte_bus_find_by_device(ports[port_id].dev_info.device);
-	if (bus && !strcmp(bus->name, "pci")) {
-		pci_dev = RTE_DEV_TO_PCI(ports[port_id].dev_info.device);
-	} else {
-		fprintf(stderr, "Not a PCI device\n");
-		return 1;
-	}
-
-	pci_len = pci_dev->mem_resource[0].len;
-	if (reg_off >= pci_len) {
-		fprintf(stderr,
-			"Port %d: register offset %u (0x%X) out of port PCI resource (length=%"PRIu64")\n",
-			port_id, (unsigned int)reg_off, (unsigned int)reg_off,
-			pci_len);
-		return 1;
-	}
-	return 0;
-}
-
-static int
-reg_bit_pos_is_invalid(uint8_t bit_pos)
-{
-	if (bit_pos <= 31)
-		return 0;
-	fprintf(stderr, "Invalid bit position %d (must be <= 31)\n", bit_pos);
-	return 1;
-}
-
-#define display_port_and_reg_off(port_id, reg_off) \
-	printf("port %d PCI register at offset 0x%X: ", (port_id), (reg_off))
-
-static inline void
-display_port_reg_value(portid_t port_id, uint32_t reg_off, uint32_t reg_v)
-{
-	display_port_and_reg_off(port_id, (unsigned)reg_off);
-	printf("0x%08X (%u)\n", (unsigned)reg_v, (unsigned)reg_v);
-}
-
-void
-port_reg_bit_display(portid_t port_id, uint32_t reg_off, uint8_t bit_x)
-{
-	uint32_t reg_v;
-
-
-	if (port_id_is_invalid(port_id, ENABLED_WARN))
-		return;
-	if (port_reg_off_is_invalid(port_id, reg_off))
-		return;
-	if (reg_bit_pos_is_invalid(bit_x))
-		return;
-	reg_v = port_id_pci_reg_read(port_id, reg_off);
-	display_port_and_reg_off(port_id, (unsigned)reg_off);
-	printf("bit %d=%d\n", bit_x, (int) ((reg_v & (1 << bit_x)) >> bit_x));
-}
-
-void
-port_reg_bit_field_display(portid_t port_id, uint32_t reg_off,
-			   uint8_t bit1_pos, uint8_t bit2_pos)
-{
-	uint32_t reg_v;
-	uint8_t  l_bit;
-	uint8_t  h_bit;
-
-	if (port_id_is_invalid(port_id, ENABLED_WARN))
-		return;
-	if (port_reg_off_is_invalid(port_id, reg_off))
-		return;
-	if (reg_bit_pos_is_invalid(bit1_pos))
-		return;
-	if (reg_bit_pos_is_invalid(bit2_pos))
-		return;
-	if (bit1_pos > bit2_pos)
-		l_bit = bit2_pos, h_bit = bit1_pos;
-	else
-		l_bit = bit1_pos, h_bit = bit2_pos;
-
-	reg_v = port_id_pci_reg_read(port_id, reg_off);
-	reg_v >>= l_bit;
-	if (h_bit < 31)
-		reg_v &= ((1 << (h_bit - l_bit + 1)) - 1);
-	display_port_and_reg_off(port_id, (unsigned)reg_off);
-	printf("bits[%d, %d]=0x%0*X (%u)\n", l_bit, h_bit,
-	       ((h_bit - l_bit) / 4) + 1, (unsigned)reg_v, (unsigned)reg_v);
-}
-
-void
-port_reg_display(portid_t port_id, uint32_t reg_off)
-{
-	uint32_t reg_v;
-
-	if (port_id_is_invalid(port_id, ENABLED_WARN))
-		return;
-	if (port_reg_off_is_invalid(port_id, reg_off))
-		return;
-	reg_v = port_id_pci_reg_read(port_id, reg_off);
-	display_port_reg_value(port_id, reg_off, reg_v);
-}
-
-void
-port_reg_bit_set(portid_t port_id, uint32_t reg_off, uint8_t bit_pos,
-		 uint8_t bit_v)
-{
-	uint32_t reg_v;
-
-	if (port_id_is_invalid(port_id, ENABLED_WARN))
-		return;
-	if (port_reg_off_is_invalid(port_id, reg_off))
-		return;
-	if (reg_bit_pos_is_invalid(bit_pos))
-		return;
-	if (bit_v > 1) {
-		fprintf(stderr, "Invalid bit value %d (must be 0 or 1)\n",
-			(int) bit_v);
-		return;
-	}
-	reg_v = port_id_pci_reg_read(port_id, reg_off);
-	if (bit_v == 0)
-		reg_v &= ~(1 << bit_pos);
-	else
-		reg_v |= (1 << bit_pos);
-	port_id_pci_reg_write(port_id, reg_off, reg_v);
-	display_port_reg_value(port_id, reg_off, reg_v);
-}
-
-void
-port_reg_bit_field_set(portid_t port_id, uint32_t reg_off,
-		       uint8_t bit1_pos, uint8_t bit2_pos, uint32_t value)
-{
-	uint32_t max_v;
-	uint32_t reg_v;
-	uint8_t  l_bit;
-	uint8_t  h_bit;
-
-	if (port_id_is_invalid(port_id, ENABLED_WARN))
-		return;
-	if (port_reg_off_is_invalid(port_id, reg_off))
-		return;
-	if (reg_bit_pos_is_invalid(bit1_pos))
-		return;
-	if (reg_bit_pos_is_invalid(bit2_pos))
-		return;
-	if (bit1_pos > bit2_pos)
-		l_bit = bit2_pos, h_bit = bit1_pos;
-	else
-		l_bit = bit1_pos, h_bit = bit2_pos;
-
-	if ((h_bit - l_bit) < 31)
-		max_v = (1 << (h_bit - l_bit + 1)) - 1;
-	else
-		max_v = 0xFFFFFFFF;
-
-	if (value > max_v) {
-		fprintf(stderr, "Invalid value %u (0x%x) must be < %u (0x%x)\n",
-				(unsigned)value, (unsigned)value,
-				(unsigned)max_v, (unsigned)max_v);
-		return;
-	}
-	reg_v = port_id_pci_reg_read(port_id, reg_off);
-	reg_v &= ~(max_v << l_bit); /* Keep unchanged bits */
-	reg_v |= (value << l_bit); /* Set changed bits */
-	port_id_pci_reg_write(port_id, reg_off, reg_v);
-	display_port_reg_value(port_id, reg_off, reg_v);
-}
-
-void
-port_reg_set(portid_t port_id, uint32_t reg_off, uint32_t reg_v)
-{
-	if (port_id_is_invalid(port_id, ENABLED_WARN))
-		return;
-	if (port_reg_off_is_invalid(port_id, reg_off))
-		return;
-	port_id_pci_reg_write(port_id, reg_off, reg_v);
-	display_port_reg_value(port_id, reg_off, reg_v);
-}
-
 static uint32_t
 eth_dev_get_overhead_len(uint32_t max_rx_pktlen, uint16_t max_mtu)
 {
diff --git a/app/test-pmd/csumonly.c b/app/test-pmd/csumonly.c
index 1a3fd9ce8a..144f28819c 100644
--- a/app/test-pmd/csumonly.c
+++ b/app/test-pmd/csumonly.c
@@ -28,7 +28,6 @@
 #include <rte_mempool.h>
 #include <rte_mbuf.h>
 #include <rte_interrupts.h>
-#include <rte_pci.h>
 #include <rte_ether.h>
 #include <rte_ethdev.h>
 #include <rte_ip.h>
diff --git a/app/test-pmd/flowgen.c b/app/test-pmd/flowgen.c
index 1e01120ae9..fd6abc0f41 100644
--- a/app/test-pmd/flowgen.c
+++ b/app/test-pmd/flowgen.c
@@ -28,7 +28,6 @@
 #include <rte_mempool.h>
 #include <rte_mbuf.h>
 #include <rte_interrupts.h>
-#include <rte_pci.h>
 #include <rte_ether.h>
 #include <rte_ethdev.h>
 #include <rte_ip.h>
diff --git a/app/test-pmd/iofwd.c b/app/test-pmd/iofwd.c
index 71849aaf96..8fafdec548 100644
--- a/app/test-pmd/iofwd.c
+++ b/app/test-pmd/iofwd.c
@@ -28,7 +28,6 @@
 #include <rte_mempool.h>
 #include <rte_mbuf.h>
 #include <rte_interrupts.h>
-#include <rte_pci.h>
 #include <rte_ether.h>
 #include <rte_ethdev.h>
 #include <rte_string_fns.h>
diff --git a/app/test-pmd/macfwd.c b/app/test-pmd/macfwd.c
index 79c9241d00..beb220fbb4 100644
--- a/app/test-pmd/macfwd.c
+++ b/app/test-pmd/macfwd.c
@@ -28,7 +28,6 @@
 #include <rte_mempool.h>
 #include <rte_mbuf.h>
 #include <rte_interrupts.h>
-#include <rte_pci.h>
 #include <rte_ether.h>
 #include <rte_ethdev.h>
 #include <rte_ip.h>
diff --git a/app/test-pmd/macswap.c b/app/test-pmd/macswap.c
index acb0fd7fb4..4f8deb3382 100644
--- a/app/test-pmd/macswap.c
+++ b/app/test-pmd/macswap.c
@@ -28,7 +28,6 @@
 #include <rte_mempool.h>
 #include <rte_mbuf.h>
 #include <rte_interrupts.h>
-#include <rte_pci.h>
 #include <rte_ether.h>
 #include <rte_ethdev.h>
 #include <rte_ip.h>
diff --git a/app/test-pmd/meson.build b/app/test-pmd/meson.build
index 74399178dd..8488efc138 100644
--- a/app/test-pmd/meson.build
+++ b/app/test-pmd/meson.build
@@ -32,7 +32,7 @@ if dpdk_conf.has('RTE_HAS_JANSSON')
     ext_deps += jansson_dep
 endif
 
-deps += ['ethdev', 'cmdline', 'bus_pci']
+deps += ['ethdev', 'cmdline']
 if dpdk_conf.has('RTE_CRYPTO_SCHEDULER')
     deps += 'crypto_scheduler'
 endif
diff --git a/app/test-pmd/parameters.c b/app/test-pmd/parameters.c
index e3c9757f3f..c77624302f 100644
--- a/app/test-pmd/parameters.c
+++ b/app/test-pmd/parameters.c
@@ -33,7 +33,6 @@
 #include <rte_branch_prediction.h>
 #include <rte_mempool.h>
 #include <rte_interrupts.h>
-#include <rte_pci.h>
 #include <rte_ether.h>
 #include <rte_ethdev.h>
 #include <rte_string_fns.h>
diff --git a/app/test-pmd/rxonly.c b/app/test-pmd/rxonly.c
index 04457010f4..d528d4f34e 100644
--- a/app/test-pmd/rxonly.c
+++ b/app/test-pmd/rxonly.c
@@ -28,7 +28,6 @@
 #include <rte_mempool.h>
 #include <rte_mbuf.h>
 #include <rte_interrupts.h>
-#include <rte_pci.h>
 #include <rte_ether.h>
 #include <rte_ethdev.h>
 #include <rte_string_fns.h>
diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index addcbcac85..ee686393c5 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -42,7 +42,6 @@
 #include <rte_mbuf.h>
 #include <rte_mbuf_pool_ops.h>
 #include <rte_interrupts.h>
-#include <rte_pci.h>
 #include <rte_ether.h>
 #include <rte_ethdev.h>
 #include <rte_dev.h>
diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h
index fb2f5195d3..e4ba7147a3 100644
--- a/app/test-pmd/testpmd.h
+++ b/app/test-pmd/testpmd.h
@@ -7,8 +7,6 @@
 
 #include <stdbool.h>
 
-#include <rte_pci.h>
-#include <rte_bus_pci.h>
 #ifdef RTE_LIB_GRO
 #include <rte_gro.h>
 #endif
@@ -267,7 +265,7 @@ struct port_txqueue {
  * The data structure associated with each port.
  */
 struct rte_port {
-	struct rte_eth_dev_info dev_info;   /**< PCI info + driver name */
+	struct rte_eth_dev_info dev_info;   /**< Device info + driver name */
 	struct rte_eth_conf     dev_conf;   /**< Port configuration. */
 	struct rte_ether_addr       eth_addr;   /**< Port ethernet address */
 	struct rte_eth_stats    stats;      /**< Last port statistics */
@@ -801,65 +799,6 @@ mbuf_pool_find(unsigned int sock_id, uint16_t idx)
 	return rte_mempool_lookup((const char *)pool_name);
 }
 
-/**
- * Read/Write operations on a PCI register of a port.
- */
-static inline uint32_t
-port_pci_reg_read(struct rte_port *port, uint32_t reg_off)
-{
-	const struct rte_pci_device *pci_dev;
-	const struct rte_bus *bus;
-	void *reg_addr;
-	uint32_t reg_v;
-
-	if (!port->dev_info.device) {
-		fprintf(stderr, "Invalid device\n");
-		return 0;
-	}
-
-	bus = rte_bus_find_by_device(port->dev_info.device);
-	if (bus && !strcmp(bus->name, "pci")) {
-		pci_dev = RTE_DEV_TO_PCI(port->dev_info.device);
-	} else {
-		fprintf(stderr, "Not a PCI device\n");
-		return 0;
-	}
-
-	reg_addr = ((char *)pci_dev->mem_resource[0].addr + reg_off);
-	reg_v = *((volatile uint32_t *)reg_addr);
-	return rte_le_to_cpu_32(reg_v);
-}
-
-#define port_id_pci_reg_read(pt_id, reg_off) \
-	port_pci_reg_read(&ports[(pt_id)], (reg_off))
-
-static inline void
-port_pci_reg_write(struct rte_port *port, uint32_t reg_off, uint32_t reg_v)
-{
-	const struct rte_pci_device *pci_dev;
-	const struct rte_bus *bus;
-	void *reg_addr;
-
-	if (!port->dev_info.device) {
-		fprintf(stderr, "Invalid device\n");
-		return;
-	}
-
-	bus = rte_bus_find_by_device(port->dev_info.device);
-	if (bus && !strcmp(bus->name, "pci")) {
-		pci_dev = RTE_DEV_TO_PCI(port->dev_info.device);
-	} else {
-		fprintf(stderr, "Not a PCI device\n");
-		return;
-	}
-
-	reg_addr = ((char *)pci_dev->mem_resource[0].addr + reg_off);
-	*((volatile uint32_t *)reg_addr) = rte_cpu_to_le_32(reg_v);
-}
-
-#define port_id_pci_reg_write(pt_id, reg_off, reg_value) \
-	port_pci_reg_write(&ports[(pt_id)], (reg_off), (reg_value))
-
 static inline void
 get_start_cycles(uint64_t *start_tsc)
 {
@@ -922,15 +861,6 @@ void update_fwd_ports(portid_t new_pid);
 void set_fwd_eth_peer(portid_t port_id, char *peer_addr);
 
 void port_mtu_set(portid_t port_id, uint16_t mtu);
-void port_reg_bit_display(portid_t port_id, uint32_t reg_off, uint8_t bit_pos);
-void port_reg_bit_set(portid_t port_id, uint32_t reg_off, uint8_t bit_pos,
-		      uint8_t bit_v);
-void port_reg_bit_field_display(portid_t port_id, uint32_t reg_off,
-				uint8_t bit1_pos, uint8_t bit2_pos);
-void port_reg_bit_field_set(portid_t port_id, uint32_t reg_off,
-			    uint8_t bit1_pos, uint8_t bit2_pos, uint32_t value);
-void port_reg_display(portid_t port_id, uint32_t reg_off);
-void port_reg_set(portid_t port_id, uint32_t reg_off, uint32_t value);
 int port_action_handle_create(portid_t port_id, uint32_t id,
 			      const struct rte_flow_indir_action_conf *conf,
 			      const struct rte_flow_action *action);
diff --git a/app/test-pmd/txonly.c b/app/test-pmd/txonly.c
index e1bc78b73d..021624952d 100644
--- a/app/test-pmd/txonly.c
+++ b/app/test-pmd/txonly.c
@@ -28,7 +28,6 @@
 #include <rte_mempool.h>
 #include <rte_mbuf.h>
 #include <rte_interrupts.h>
-#include <rte_pci.h>
 #include <rte_ether.h>
 #include <rte_ethdev.h>
 #include <rte_ip.h>
diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
index 330e34427d..7dacd6fb04 100644
--- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst
+++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
@@ -55,7 +55,6 @@ These are divided into sections and can be accessed using help, help section or
            help display                    : Displaying port, stats and config information.
            help config                     : Configuration information.
            help ports                      : Configuring ports.
-           help registers                  : Reading and setting port registers.
            help filters                    : Filters configuration help.
            help traffic_management         : Traffic Management commands.
            help devices                    : Device related commands.
@@ -2356,86 +2355,6 @@ manage link bonding devices from within testpmd interactive prompt.
 
 See :doc:`../prog_guide/link_bonding_poll_mode_drv_lib` for more information.
 
-Register Functions
-------------------
-
-The Register Functions can be used to read from and write to registers on the network card referenced by a port number.
-This is mainly useful for debugging purposes.
-Reference should be made to the appropriate datasheet for the network card for details on the register addresses
-and fields that can be accessed.
-
-read reg
-~~~~~~~~
-
-Display the value of a port register::
-
-   testpmd> read reg (port_id) (address)
-
-For example, to examine the Flow Director control register (FDIRCTL, 0x0000EE000) on an Intel 82599 10 GbE Controller::
-
-   testpmd> read reg 0 0xEE00
-   port 0 PCI register at offset 0xEE00: 0x4A060029 (1241907241)
-
-read regfield
-~~~~~~~~~~~~~
-
-Display a port register bit field::
-
-   testpmd> read regfield (port_id) (address) (bit_x) (bit_y)
-
-For example, reading the lowest two bits from the register in the example above::
-
-   testpmd> read regfield 0 0xEE00 0 1
-   port 0 PCI register at offset 0xEE00: bits[0, 1]=0x1 (1)
-
-read regbit
-~~~~~~~~~~~
-
-Display a single port register bit::
-
-   testpmd> read regbit (port_id) (address) (bit_x)
-
-For example, reading the lowest bit from the register in the example above::
-
-   testpmd> read regbit 0 0xEE00 0
-   port 0 PCI register at offset 0xEE00: bit 0=1
-
-write reg
-~~~~~~~~~
-
-Set the value of a port register::
-
-   testpmd> write reg (port_id) (address) (value)
-
-For example, to clear a register::
-
-   testpmd> write reg 0 0xEE00 0x0
-   port 0 PCI register at offset 0xEE00: 0x00000000 (0)
-
-write regfield
-~~~~~~~~~~~~~~
-
-Set bit field of a port register::
-
-   testpmd> write regfield (port_id) (address) (bit_x) (bit_y) (value)
-
-For example, writing to the register cleared in the example above::
-
-   testpmd> write regfield 0 0xEE00 0 1 2
-   port 0 PCI register at offset 0xEE00: 0x00000002 (2)
-
-write regbit
-~~~~~~~~~~~~
-
-Set single bit value of a port register::
-
-   testpmd> write regbit (port_id) (address) (bit_x) (value)
-
-For example, to set the high bit in the register from the example above::
-
-   testpmd> write regbit 0 0xEE00 31 1
-   port 0 PCI register at offset 0xEE00: 0x8000000A (2147483658)
-
 Traffic Metering and Policing
 -----------------------------
 
-- 
2.37.2


  parent reply	other threads:[~2022-08-26 12:42 UTC|newest]

Thread overview: 231+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-28 14:46 [RFC PATCH 00/11] Bus cleanup for 22.11 David Marchand
2022-06-28 14:46 ` [RFC PATCH 01/11] common/mlx5: rework check on driver registration David Marchand
2022-06-28 14:46 ` [RFC PATCH 02/11] raw/ifpga: remove PCI bus accessor David Marchand
2022-06-28 14:46 ` [RFC PATCH 03/11] dev: hide debug messages in device iterator David Marchand
2022-06-28 14:46 ` [RFC PATCH 04/11] dev: move unrelated macros from header David Marchand
2022-06-28 14:46 ` [RFC PATCH 05/11] devargs: remove dependency on bus header David Marchand
2022-06-28 14:46 ` [RFC PATCH 06/11] bus: remove unneeded inclusion of " David Marchand
2022-06-28 14:46 ` [RFC PATCH 07/11] bus: move IOVA definition from header David Marchand
2022-06-28 14:46 ` [RFC PATCH 08/11] drivers/bus: remove back reference to bus objects David Marchand
2022-06-28 14:46 ` [RFC PATCH 09/11] drivers/bus: hide specific structures David Marchand
2022-06-28 14:46 ` [RFC PATCH 10/11] bus: introduce accessors David Marchand
2022-06-28 14:46 ` [RFC PATCH 11/11] bus: hide bus object David Marchand
2022-06-28 16:22   ` Tyler Retzlaff
2022-06-28 16:24     ` Tyler Retzlaff
2022-06-28 16:29     ` Stephen Hemminger
2022-06-28 17:07       ` Tyler Retzlaff
2022-06-28 17:38         ` Stephen Hemminger
2022-06-28 18:23           ` Tyler Retzlaff
2022-07-09  8:16             ` David Marchand
2022-07-09 16:28               ` Stephen Hemminger
2022-09-23  8:49                 ` David Marchand
2022-09-23  8:57                   ` Thomas Monjalon
2022-07-09  8:26 ` [RFC v2 v2 00/29] Bus and device cleanup for 22.11 David Marchand
2022-07-09  8:26   ` [RFC v2 v2 01/29] common/mlx5: rework check on driver registration David Marchand
2022-07-09  8:26   ` [RFC v2 v2 02/29] raw/ifpga: remove PCI bus accessor David Marchand
2022-07-09  8:26   ` [RFC v2 v2 03/29] kni: stop populating PCI info in examples David Marchand
2022-07-09  8:26   ` [RFC v2 v2 04/29] examples/ethtool: prefer device name David Marchand
2022-07-09  8:26   ` [RFC v2 v2 05/29] dev: hide debug messages in device iterator David Marchand
2022-07-09  8:26   ` [RFC v2 v2 06/29] dev: move unrelated macros from header David Marchand
2022-07-09  8:26   ` [RFC v2 v2 07/29] devargs: remove dependency on bus header David Marchand
2022-07-09  8:26   ` [RFC v2 v2 08/29] bus: remove unneeded inclusion of " David Marchand
2022-07-09  8:26   ` [RFC v2 v2 09/29] bus: move IOVA definition from header David Marchand
2022-07-09  8:26   ` [RFC v2 v2 10/29] drivers/bus: remove back reference to bus objects David Marchand
2022-07-09  8:26   ` [RFC v2 v2 11/29] drivers/bus: hide specific structures David Marchand
2022-07-09  8:26   ` [RFC v2 v2 12/29] bus: introduce accessors David Marchand
2022-07-09  8:26   ` [RFC v2 v2 13/29] bus: hide bus object David Marchand
2022-07-09  8:26   ` [RFC v2 v2 14/29] bbdev: mark driver header David Marchand
2022-07-09  8:26   ` [RFC v2 v2 15/29] ethdev: mark some headers as driver only David Marchand
2022-07-09  8:26   ` [RFC v2 v2 16/29] rawdev: mark driver header David Marchand
2022-07-09  8:26   ` [RFC v2 v2 17/29] drivers: export drivers headers David Marchand
2022-07-09  8:26   ` [RFC v2 v2 18/29] bus/auxiliary: make driver-only headers private David Marchand
2022-07-09  8:26   ` [RFC v2 v2 19/29] bus/dpaa: " David Marchand
2022-07-09  8:26   ` [RFC v2 v2 20/29] bus/fslmc: " David Marchand
2022-07-09  8:26   ` [RFC v2 v2 21/29] bus/ifpga: cleanup exported symbols David Marchand
2022-07-09  8:26   ` [RFC v2 v2 22/29] bus/ifpga: make driver-only headers private David Marchand
2022-07-09  8:26   ` [RFC v2 v2 23/29] bus/pci: " David Marchand
2022-07-09  8:26   ` [RFC v2 v2 24/29] bus/vdev: " David Marchand
2022-07-09  8:26   ` [RFC v2 v2 25/29] bus/vmbus: " David Marchand
2022-07-09  8:26   ` [RFC v2 v2 26/29] dev: introduce driver name David Marchand
2022-07-09  8:26   ` [RFC v2 v2 27/29] dev: hide driver object David Marchand
2022-07-09  8:26   ` [RFC v2 v2 28/29] dev: introduce device accessors David Marchand
2022-07-09  8:26   ` [RFC v2 v2 29/29] dev: hide device object David Marchand
2022-07-09 16:30   ` [RFC v2 v2 00/29] Bus and device cleanup for 22.11 Stephen Hemminger
2022-07-11  8:38   ` Bruce Richardson
2022-07-28 15:26 ` [RFC v3 00/26] " David Marchand
2022-07-28 15:26   ` [RFC v3 01/26] devtools: forbid inclusions of driver only headers David Marchand
2022-07-28 16:23     ` Bruce Richardson
2022-07-28 15:26   ` [RFC v3 02/26] common/mlx5: rework check on driver registration David Marchand
2022-07-28 15:26   ` [RFC v3 03/26] raw/ifpga: remove PCI bus accessor David Marchand
2022-07-29  2:36     ` Xu, Rosen
2022-07-28 15:26   ` [RFC v3 04/26] app/testpmd: drop PCI register commands David Marchand
2022-07-28 16:26     ` Bruce Richardson
2022-07-28 15:26   ` [RFC v3 05/26] kni: stop populating PCI info in examples David Marchand
2022-07-28 16:30     ` Bruce Richardson
2022-07-28 15:26   ` [RFC v3 06/26] examples/ethtool: prefer device name David Marchand
2022-07-28 16:32     ` Bruce Richardson
2022-07-28 19:27       ` David Marchand
2022-07-28 15:26   ` [RFC v3 07/26] dev: hide debug messages in device iterator David Marchand
2022-07-28 16:33     ` Bruce Richardson
2022-07-28 15:26   ` [RFC v3 08/26] dev: move unrelated macros from header David Marchand
2022-07-28 16:38     ` Bruce Richardson
2022-07-28 19:32       ` David Marchand
2022-07-29  9:58         ` Bruce Richardson
2022-07-29 13:22           ` David Marchand
2022-08-24  6:50             ` David Marchand
2022-08-24  7:39               ` Thomas Monjalon
2022-08-24 11:52                 ` Morten Brørup
2022-08-24 12:53                   ` Thomas Monjalon
2022-07-28 15:26   ` [RFC v3 09/26] devargs: remove dependency on bus header David Marchand
2022-07-28 16:40     ` Bruce Richardson
2022-07-28 15:26   ` [RFC v3 10/26] build: export drivers headers David Marchand
2022-07-28 16:41     ` Bruce Richardson
2022-07-28 15:26   ` [RFC v3 11/26] bus/auxiliary: make driver-only headers private David Marchand
2022-07-28 15:26   ` [RFC v3 12/26] bus/dpaa: " David Marchand
2022-07-28 15:26   ` [RFC v3 13/26] bus/fslmc: " David Marchand
2022-07-28 15:26   ` [RFC v3 14/26] bus/ifpga: cleanup exported symbols David Marchand
2022-07-29  2:36     ` Xu, Rosen
2022-07-28 15:26   ` [RFC v3 15/26] bus/ifpga: make driver-only headers private David Marchand
2022-07-29  2:37     ` Xu, Rosen
2022-07-28 15:26   ` [RFC v3 16/26] bus/pci: " David Marchand
2022-07-28 16:46     ` Bruce Richardson
2022-07-28 16:52       ` Ajit Khaparde
2022-07-29  2:41     ` Xu, Rosen
2022-07-28 15:26   ` [RFC v3 17/26] bus/vdev: " David Marchand
2022-07-29  2:38     ` Xu, Rosen
2022-07-28 15:26   ` [RFC v3 18/26] bus/vmbus: " David Marchand
2022-07-28 15:26   ` [RFC v3 19/26] bus: move IOVA definition from header David Marchand
2022-07-28 16:48     ` Bruce Richardson
2022-07-28 15:26   ` [RFC v3 20/26] bus: introduce accessors David Marchand
2022-07-28 16:51     ` Bruce Richardson
2022-07-28 15:26   ` [RFC v3 21/26] bus: hide bus object David Marchand
2022-07-28 16:56     ` Bruce Richardson
2022-07-28 19:26       ` David Marchand
2022-07-29 10:01         ` Bruce Richardson
2022-07-29 11:14           ` David Marchand
2022-07-28 15:26   ` [RFC v3 22/26] dev: introduce driver accessors David Marchand
2022-07-28 16:59     ` Bruce Richardson
2022-07-28 15:26   ` [RFC v3 23/26] dev: hide driver object David Marchand
2022-07-28 17:00     ` Bruce Richardson
2022-08-01 17:18       ` Ajit Khaparde
2022-08-01  7:06     ` Jayatheerthan, Jay
2022-07-28 15:26   ` [RFC v3 24/26] dev: introduce device accessors David Marchand
2022-07-28 17:01     ` Bruce Richardson
2022-07-28 15:26   ` [RFC v3 25/26] dev: provide Bus specific information David Marchand
2022-07-28 17:03     ` Bruce Richardson
2022-07-28 19:45       ` David Marchand
2022-07-28 15:26   ` [RFC v3 26/26] dev: hide device object David Marchand
2022-07-28 17:04     ` Bruce Richardson
2022-08-04 23:19   ` [RFC v3 00/26] Bus and device cleanup for 22.11 Harris, James R
2022-08-25  9:31     ` David Marchand
2022-08-29 17:12       ` Walker, Benjamin
2022-08-30 15:09         ` David Marchand
2022-09-21 22:29           ` Harris, James R
2022-09-23  7:13             ` David Marchand
2022-09-23 21:56               ` Harris, James R
2022-08-26 12:41 ` [PATCH v4 00/27] " David Marchand
2022-08-26 12:41   ` [PATCH v4 01/27] devtools: forbid inclusions of driver only headers David Marchand
2022-08-26 12:41   ` [PATCH v4 02/27] common/mlx5: rework check on driver registration David Marchand
2022-08-26 12:41   ` [PATCH v4 03/27] raw/ifpga: remove PCI bus accessor David Marchand
2022-08-26 12:41   ` David Marchand [this message]
2022-08-26 12:41   ` [PATCH v4 05/27] kni: stop populating PCI info in examples David Marchand
2022-08-26 12:41   ` [PATCH v4 06/27] examples/ethtool: prefer device name David Marchand
2022-08-26 12:41   ` [PATCH v4 07/27] dev: hide debug messages in device iterator David Marchand
2022-08-26 12:41   ` [PATCH v4 08/27] eal: deprecate RTE_FUNC_PTR_* macros David Marchand
2022-08-26 12:41   ` [PATCH v4 09/27] devargs: remove dependency on bus header David Marchand
2022-08-26 12:41   ` [PATCH v4 10/27] build: export drivers headers David Marchand
2022-08-26 12:41   ` [PATCH v4 11/27] bus/auxiliary: make driver-only headers private David Marchand
2022-08-26 12:41   ` [PATCH v4 12/27] bus/dpaa: " David Marchand
2022-08-30  4:50     ` Hemant Agrawal
2022-08-26 12:41   ` [PATCH v4 13/27] bus/fslmc: " David Marchand
2022-08-30  4:49     ` Hemant Agrawal
2022-08-26 12:41   ` [PATCH v4 14/27] bus/ifpga: cleanup exported symbols David Marchand
2022-08-26 12:41   ` [PATCH v4 15/27] bus/ifpga: make driver-only headers private David Marchand
2022-08-26 12:41   ` [PATCH v4 16/27] bus/pci: " David Marchand
2022-08-26 12:41   ` [PATCH v4 17/27] bus/vdev: " David Marchand
2022-08-29  7:17     ` Ruifeng Wang
2022-08-29  8:12       ` David Marchand
2022-08-26 12:41   ` [PATCH v4 18/27] bus/vmbus: " David Marchand
2022-08-26 12:42   ` [PATCH v4 19/27] bus: move IOVA definition from header David Marchand
2022-08-26 12:42   ` [PATCH v4 20/27] bus: introduce accessors David Marchand
2022-08-26 12:42   ` [PATCH v4 21/27] bus: hide bus object David Marchand
2022-08-26 12:42   ` [PATCH v4 22/27] dev: introduce driver accessors David Marchand
2022-08-26 12:42   ` [PATCH v4 23/27] dev: hide driver object David Marchand
2022-08-26 12:42   ` [PATCH v4 24/27] dev: introduce device accessors David Marchand
2022-08-26 12:42   ` [PATCH v4 25/27] dev: provide bus specific information David Marchand
2022-08-26 12:42   ` [PATCH v4 26/27] bus/pci: fill " David Marchand
2022-08-26 12:42   ` [PATCH v4 27/27] dev: hide device object David Marchand
2022-09-05  8:35 ` [PATCH v5 00/27] Bus and device cleanup for 22.11 David Marchand
2022-09-05  8:35   ` [PATCH v5 01/27] devtools: forbid inclusions of driver only headers David Marchand
2022-09-05  8:35   ` [PATCH v5 02/27] common/mlx5: rework check on driver registration David Marchand
2022-09-05  8:35   ` [PATCH v5 03/27] raw/ifpga: remove PCI bus accessor David Marchand
2022-09-05  8:35   ` [PATCH v5 04/27] app/testpmd: drop PCI register commands David Marchand
2022-09-05  8:35   ` [PATCH v5 05/27] kni: stop populating PCI info in examples David Marchand
2022-09-05  8:35   ` [PATCH v5 06/27] examples/ethtool: prefer device name David Marchand
2022-09-05  8:35   ` [PATCH v5 07/27] dev: hide debug messages in device iterator David Marchand
2022-09-05  8:35   ` [PATCH v5 08/27] eal: deprecate RTE_FUNC_PTR_* macros David Marchand
2022-09-06  8:24     ` Jayatheerthan, Jay
2022-09-05  8:39   ` [PATCH v5 00/27] Bus and device cleanup for 22.11 David Marchand
2022-09-05  8:39 ` David Marchand
2022-09-05  8:39   ` [PATCH v5 01/27] devtools: forbid inclusions of driver only headers David Marchand
2022-09-05  8:39   ` [PATCH v5 02/27] common/mlx5: rework check on driver registration David Marchand
2022-09-05  8:39   ` [PATCH v5 03/27] raw/ifpga: remove PCI bus accessor David Marchand
2022-09-05  8:39   ` [PATCH v5 04/27] app/testpmd: drop PCI register commands David Marchand
2022-09-05  8:39   ` [PATCH v5 05/27] kni: stop populating PCI info in examples David Marchand
2022-09-05  8:39   ` [PATCH v5 06/27] examples/ethtool: prefer device name David Marchand
2022-09-05  8:39   ` [PATCH v5 07/27] dev: hide debug messages in device iterator David Marchand
2022-09-05  8:39   ` [PATCH v5 08/27] eal: deprecate RTE_FUNC_PTR_* macros David Marchand
2022-09-06  6:11     ` [EXT] " Akhil Goyal
2022-09-05  8:39   ` [PATCH v5 09/27] devargs: remove dependency on bus header David Marchand
2022-09-05  8:39   ` [PATCH v5 10/27] build: export drivers headers David Marchand
2022-09-05  8:39   ` [PATCH v5 11/27] bus/auxiliary: make driver-only headers private David Marchand
2022-09-05  8:39   ` [PATCH v5 12/27] bus/dpaa: " David Marchand
2022-09-05  8:39   ` [PATCH v5 13/27] bus/fslmc: " David Marchand
2022-09-05  8:39   ` [PATCH v5 14/27] bus/ifpga: cleanup exported symbols David Marchand
2022-09-05  8:39   ` [PATCH v5 15/27] bus/ifpga: make driver-only headers private David Marchand
2022-09-05  8:39   ` [PATCH v5 16/27] bus/pci: " David Marchand
2022-09-05  8:39   ` [PATCH v5 17/27] bus/vdev: " David Marchand
2022-09-05  8:39   ` [PATCH v5 18/27] bus/vmbus: " David Marchand
2022-09-05  8:39   ` [PATCH v5 19/27] bus: move IOVA definition from header David Marchand
2022-09-05  8:39   ` [PATCH v5 20/27] bus: introduce accessors David Marchand
2022-09-05  8:39   ` [PATCH v5 21/27] bus: hide bus object David Marchand
2022-09-05  8:39   ` [PATCH v5 22/27] dev: introduce driver accessors David Marchand
2022-09-05  8:39   ` [PATCH v5 23/27] dev: hide driver object David Marchand
2022-09-06  6:05     ` [EXT] " Akhil Goyal
2022-09-06  6:46     ` Gujjar, Abhinandan S
2022-09-05  8:39   ` [PATCH v5 24/27] dev: introduce device accessors David Marchand
2022-09-05  8:39   ` [PATCH v5 25/27] dev: provide bus specific information David Marchand
2022-09-05  8:39   ` [PATCH v5 26/27] bus/pci: fill " David Marchand
2022-09-05  8:39   ` [PATCH v5 27/27] dev: hide device object David Marchand
2022-09-14  7:58 ` [PATCH v6 00/27] Bus and device cleanup for 22.11 David Marchand
2022-09-14  7:58   ` [PATCH v6 01/27] devtools: forbid inclusions of driver only headers David Marchand
2022-09-14  7:58   ` [PATCH v6 02/27] common/mlx5: rework check on driver registration David Marchand
2022-09-14  7:58   ` [PATCH v6 03/27] raw/ifpga: remove PCI bus accessor David Marchand
2022-09-14  7:58   ` [PATCH v6 04/27] app/testpmd: drop PCI register commands David Marchand
2022-09-14  7:58   ` [PATCH v6 05/27] kni: stop populating PCI info in examples David Marchand
2022-09-14  7:58   ` [PATCH v6 06/27] examples/ethtool: prefer device name David Marchand
2022-09-14  7:58   ` [PATCH v6 07/27] dev: hide debug messages in device iterator David Marchand
2022-09-14  7:58   ` [PATCH v6 08/27] eal: deprecate RTE_FUNC_PTR_* macros David Marchand
2022-10-26  9:04     ` Morten Brørup
2022-10-26  9:21       ` David Marchand
2022-10-26 10:30         ` Morten Brørup
2022-09-14  7:58   ` [PATCH v6 09/27] devargs: remove dependency on bus header David Marchand
2022-09-14  7:58   ` [PATCH v6 10/27] build: export drivers headers David Marchand
2022-09-14  7:58   ` [PATCH v6 11/27] bus/auxiliary: make driver-only headers private David Marchand
2022-09-14  7:58   ` [PATCH v6 12/27] bus/dpaa: " David Marchand
2022-09-14  7:58   ` [PATCH v6 13/27] bus/fslmc: " David Marchand
2022-09-14  7:58   ` [PATCH v6 14/27] bus/ifpga: cleanup exported symbols David Marchand
2022-09-14  7:58   ` [PATCH v6 15/27] bus/ifpga: make driver-only headers private David Marchand
2022-09-14  7:58   ` [PATCH v6 16/27] bus/pci: " David Marchand
2022-09-14  7:58   ` [PATCH v6 17/27] bus/vdev: " David Marchand
2022-09-14  7:58   ` [PATCH v6 18/27] bus/vmbus: " David Marchand
2022-09-14  7:58   ` [PATCH v6 19/27] bus: move IOVA definition from header David Marchand
2022-09-14  7:58   ` [PATCH v6 20/27] bus: introduce accessors David Marchand
2022-09-14  7:58   ` [PATCH v6 21/27] bus: hide bus object David Marchand
2022-09-14  7:58   ` [PATCH v6 22/27] dev: introduce driver accessors David Marchand
2022-09-14  7:58   ` [PATCH v6 23/27] dev: hide driver object David Marchand
2022-09-14  7:58   ` [PATCH v6 24/27] dev: introduce device accessors David Marchand
2022-09-14  7:58   ` [PATCH v6 25/27] dev: provide bus specific information David Marchand
2022-09-14  7:58   ` [PATCH v6 26/27] bus/pci: fill " David Marchand
2022-09-14  7:58   ` [PATCH v6 27/27] dev: hide device object David Marchand
2022-09-24  7:14   ` [PATCH v6 00/27] Bus and device cleanup for 22.11 David Marchand

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=20220826124208.671400-5-david.marchand@redhat.com \
    --to=david.marchand@redhat.com \
    --cc=aman.deep.singh@intel.com \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    --cc=thomas@monjalon.net \
    --cc=yuying.zhang@intel.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).