[U-Boot] [PATCH v6 09/27] net: Remove the bd* parameter from net stack functions

Joe Hershberger joe.hershberger at ni.com
Thu Mar 12 00:44:07 CET 2015


This value is not used by the network stack and is available in the
global data, so stop passing it around.  For the one legacy function
that still expects it (init op on old Ethernet drivers) pass in the
global pointer version directly to avoid changing that interface.

Signed-off-by: Joe Hershberger <joe.hershberger at ni.com>
Reported-by: Simon Glass <sjg at chromium.org>
Reviewed-by: Simon Glass <sjg at chromium.org>

---

Changes in v6:
-Fix compile errors for other boards due to removed parameters

Changes in v5: None
Changes in v4:
-New to v4

Changes in v3: None
Changes in v2: None

 api/api_net.c                             |  2 +-
 arch/arm/lib/board.c                      |  2 +-
 arch/avr32/lib/board.c                    |  2 +-
 arch/m68k/lib/board.c                     |  4 ++--
 arch/nds32/lib/board.c                    |  2 +-
 arch/openrisc/lib/board.c                 |  2 +-
 arch/powerpc/lib/board.c                  |  2 +-
 arch/sh/lib/board.c                       |  2 +-
 arch/sparc/lib/board.c                    |  2 +-
 board/BuS/eb_cpux9k2/cpux9k2.c            |  2 +-
 board/BuS/vl_ma2sc/vl_ma2sc.c             |  2 +-
 board/atmel/at91sam9261ek/at91sam9261ek.c |  2 +-
 board/egnite/ethernut5/ethernut5.c        |  2 +-
 board/ronetix/pm9261/pm9261.c             |  2 +-
 board/ronetix/pm9g45/pm9g45.c             |  2 +-
 common/board_r.c                          |  2 +-
 common/spl/spl_net.c                      |  2 +-
 drivers/net/netconsole.c                  |  4 ++--
 include/net.h                             |  6 +++---
 net/eth.c                                 | 12 +++++++-----
 net/net.c                                 |  7 +++----
 21 files changed, 33 insertions(+), 32 deletions(-)

diff --git a/api/api_net.c b/api/api_net.c
index 7b3805e..04e4f4a 100644
--- a/api/api_net.c
+++ b/api/api_net.c
@@ -37,7 +37,7 @@ int dev_open_net(void *cookie)
 	if (!dev_valid_net(cookie))
 		return API_ENODEV;
 
-	if (eth_init(gd->bd) < 0)
+	if (eth_init() < 0)
 		return API_EIO;
 
 	return 0;
diff --git a/arch/arm/lib/board.c b/arch/arm/lib/board.c
index f606255..37ea6e9 100644
--- a/arch/arm/lib/board.c
+++ b/arch/arm/lib/board.c
@@ -644,7 +644,7 @@ void board_init_r(gd_t *id, ulong dest_addr)
 #endif
 #if defined(CONFIG_CMD_NET)
 	puts("Net:   ");
-	eth_initialize(gd->bd);
+	eth_initialize();
 #if defined(CONFIG_RESET_PHY_R)
 	debug("Reset Ethernet PHY\n");
 	reset_phy();
diff --git a/arch/avr32/lib/board.c b/arch/avr32/lib/board.c
index 99aa96e..aacfcbf 100644
--- a/arch/avr32/lib/board.c
+++ b/arch/avr32/lib/board.c
@@ -244,7 +244,7 @@ void board_init_r(gd_t *new_gd, ulong dest_addr)
 #endif
 #if defined(CONFIG_CMD_NET)
 	puts("Net:   ");
-	eth_initialize(gd->bd);
+	eth_initialize();
 #endif
 
 #ifdef CONFIG_GENERIC_ATMEL_MCI
diff --git a/arch/m68k/lib/board.c b/arch/m68k/lib/board.c
index 9caff73..c54a3f7 100644
--- a/arch/m68k/lib/board.c
+++ b/arch/m68k/lib/board.c
@@ -566,10 +566,10 @@ void board_init_r (gd_t *id, ulong dest_addr)
 #if defined(CONFIG_CMD_NET)
 	WATCHDOG_RESET();
 #if defined(FEC_ENET)
-	eth_init(bd);
+	eth_init();
 #endif
 	puts ("Net:   ");
-	eth_initialize (bd);
+	eth_initialize();
 #endif
 
 #ifdef CONFIG_POST
diff --git a/arch/nds32/lib/board.c b/arch/nds32/lib/board.c
index 4c06a48..24a09bc 100644
--- a/arch/nds32/lib/board.c
+++ b/arch/nds32/lib/board.c
@@ -383,7 +383,7 @@ void board_init_r(gd_t *id, ulong dest_addr)
 #if defined(CONFIG_CMD_NET)
 	puts("Net:   ");
 
-	eth_initialize(gd->bd);
+	eth_initialize();
 #if defined(CONFIG_RESET_PHY_R)
 	debug("Reset Ethernet PHY\n");
 	reset_phy();
diff --git a/arch/openrisc/lib/board.c b/arch/openrisc/lib/board.c
index 2346685..c26cc8f 100644
--- a/arch/openrisc/lib/board.c
+++ b/arch/openrisc/lib/board.c
@@ -128,7 +128,7 @@ void board_init(void)
 
 #if defined(CONFIG_CMD_NET)
 	puts("NET:   ");
-	eth_initialize(bd);
+	eth_initialize();
 #endif
 
 	/* main_loop */
diff --git a/arch/powerpc/lib/board.c b/arch/powerpc/lib/board.c
index 91645d3..5ea29cc 100644
--- a/arch/powerpc/lib/board.c
+++ b/arch/powerpc/lib/board.c
@@ -890,7 +890,7 @@ void board_init_r(gd_t *id, ulong dest_addr)
 #if defined(CONFIG_CMD_NET)
 	WATCHDOG_RESET();
 	puts("Net:   ");
-	eth_initialize(bd);
+	eth_initialize();
 #endif
 
 #if defined(CONFIG_CMD_NET) && defined(CONFIG_RESET_PHY_R)
diff --git a/arch/sh/lib/board.c b/arch/sh/lib/board.c
index 1eb7afb..6dad3c7 100644
--- a/arch/sh/lib/board.c
+++ b/arch/sh/lib/board.c
@@ -178,7 +178,7 @@ void sh_generic_init(void)
 #endif
 #if defined(CONFIG_CMD_NET)
 	puts("Net:   ");
-	eth_initialize(gd->bd);
+	eth_initialize();
 #endif /* CONFIG_CMD_NET */
 
 	while (1) {
diff --git a/arch/sparc/lib/board.c b/arch/sparc/lib/board.c
index b311a94..d2ac6bc 100644
--- a/arch/sparc/lib/board.c
+++ b/arch/sparc/lib/board.c
@@ -351,7 +351,7 @@ void board_init_f(ulong bootflag)
 #if defined(CONFIG_CMD_NET)
 	WATCHDOG_RESET();
 	puts("Net:   ");
-	eth_initialize(bd);
+	eth_initialize();
 #endif
 
 #if defined(CONFIG_CMD_NET) && defined(CONFIG_RESET_PHY_R)
diff --git a/board/BuS/eb_cpux9k2/cpux9k2.c b/board/BuS/eb_cpux9k2/cpux9k2.c
index 76ad7c4..3880a06 100644
--- a/board/BuS/eb_cpux9k2/cpux9k2.c
+++ b/board/BuS/eb_cpux9k2/cpux9k2.c
@@ -111,7 +111,7 @@ int misc_init_r(void)
 void reset_phy(void)
 {
 	udelay(10000);
-	eth_init(gd->bd);
+	eth_init();
 }
 #endif
 
diff --git a/board/BuS/vl_ma2sc/vl_ma2sc.c b/board/BuS/vl_ma2sc/vl_ma2sc.c
index da39c86..e4e1a85 100644
--- a/board/BuS/vl_ma2sc/vl_ma2sc.c
+++ b/board/BuS/vl_ma2sc/vl_ma2sc.c
@@ -280,7 +280,7 @@ void reset_phy(void)
 	 * Initialize ethernet HW addr prior to starting Linux,
 	 * needed for nfsroot
 	 */
-	eth_init(gd->bd);
+	eth_init();
 #endif
 }
 #endif
diff --git a/board/atmel/at91sam9261ek/at91sam9261ek.c b/board/atmel/at91sam9261ek/at91sam9261ek.c
index a301d72..5250474 100644
--- a/board/atmel/at91sam9261ek/at91sam9261ek.c
+++ b/board/atmel/at91sam9261ek/at91sam9261ek.c
@@ -275,7 +275,7 @@ void reset_phy(void)
 	 * Initialize ethernet HW addr prior to starting Linux,
 	 * needed for nfsroot
 	 */
-	eth_init(gd->bd);
+	eth_init();
 #endif
 }
 #endif
diff --git a/board/egnite/ethernut5/ethernut5.c b/board/egnite/ethernut5/ethernut5.c
index b45213c..67d3984 100644
--- a/board/egnite/ethernut5/ethernut5.c
+++ b/board/egnite/ethernut5/ethernut5.c
@@ -204,7 +204,7 @@ int board_eth_init(bd_t *bis)
 		miiphy_write(devname, 0, MII_BMCR, BMCR_RESET);
 	}
 	/* Sync environment with network devices, needed for nfsroot. */
-	return eth_init(gd->bd);
+	return eth_init();
 }
 #endif
 
diff --git a/board/ronetix/pm9261/pm9261.c b/board/ronetix/pm9261/pm9261.c
index 1f7679a..b96f745 100644
--- a/board/ronetix/pm9261/pm9261.c
+++ b/board/ronetix/pm9261/pm9261.c
@@ -288,7 +288,7 @@ void reset_phy(void)
 	 * Initialize ethernet HW addr prior to starting Linux,
 	 * needed for nfsroot
 	 */
-	eth_init(gd->bd);
+	eth_init();
 #endif
 }
 #endif
diff --git a/board/ronetix/pm9g45/pm9g45.c b/board/ronetix/pm9g45/pm9g45.c
index 15aa4ac..efc4133 100644
--- a/board/ronetix/pm9g45/pm9g45.c
+++ b/board/ronetix/pm9g45/pm9g45.c
@@ -166,7 +166,7 @@ void reset_phy(void)
 	 * Initialize ethernet HW addr prior to starting Linux,
 	 * needed for nfsroot
 	 */
-	eth_init(gd->bd);
+	eth_init();
 #endif
 }
 #endif
diff --git a/common/board_r.c b/common/board_r.c
index af0f274..b882d9b 100644
--- a/common/board_r.c
+++ b/common/board_r.c
@@ -585,7 +585,7 @@ static int initr_bbmii(void)
 static int initr_net(void)
 {
 	puts("Net:   ");
-	eth_initialize(gd->bd);
+	eth_initialize();
 #if defined(CONFIG_RESET_PHY_R)
 	debug("Reset Ethernet PHY\n");
 	reset_phy();
diff --git a/common/spl/spl_net.c b/common/spl/spl_net.c
index ff53705..af4952f 100644
--- a/common/spl/spl_net.c
+++ b/common/spl/spl_net.c
@@ -21,7 +21,7 @@ void spl_net_load_image(const char *device)
 	env_relocate();
 	setenv("autoload", "yes");
 	load_addr = CONFIG_SYS_TEXT_BASE - sizeof(struct image_header);
-	rv = eth_initialize(gd->bd);
+	rv = eth_initialize();
 	if (rv == 0) {
 		printf("No Ethernet devices found\n");
 		hang();
diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c
index 677c89f..87cea7a 100644
--- a/drivers/net/netconsole.c
+++ b/drivers/net/netconsole.c
@@ -193,11 +193,11 @@ static void nc_send_packet(const char *buf, int len)
 
 	if (eth->state != ETH_STATE_ACTIVE) {
 		if (eth_is_on_demand_init()) {
-			if (eth_init(gd->bd) < 0)
+			if (eth_init() < 0)
 				return;
 			eth_set_last_protocol(NETCONS);
 		} else
-			eth_init_state_only(gd->bd);
+			eth_init_state_only();
 
 		inited = 1;
 	}
diff --git a/include/net.h b/include/net.h
index cec5612..ae0f31a 100644
--- a/include/net.h
+++ b/include/net.h
@@ -119,7 +119,7 @@ static inline unsigned char *eth_get_ethaddr(void)
 }
 
 /* Set active state */
-static inline __attribute__((always_inline)) int eth_init_state_only(bd_t *bis)
+static inline __attribute__((always_inline)) int eth_init_state_only(void)
 {
 	eth_get_dev()->state = ETH_STATE_ACTIVE;
 
@@ -145,7 +145,7 @@ int eth_write_hwaddr(struct eth_device *dev, const char *base_name,
 
 int usb_eth_initialize(bd_t *bi);
 
-int eth_initialize(bd_t *bis);	/* Initialize network subsystem */
+int eth_initialize(void);		/* Initialize network subsystem */
 void eth_try_another(int first_restart);	/* Change the device */
 void eth_set_current(void);		/* set nterface to ethcur var */
 
@@ -166,7 +166,7 @@ int eth_setenv_enetaddr(char *name, const uchar *enetaddr);
 int eth_getenv_enetaddr_by_index(const char *base_name, int index,
 				 uchar *enetaddr);
 
-int eth_init(bd_t *bis);			/* Initialize the device */
+int eth_init(void);			/* Initialize the device */
 int eth_send(void *packet, int length);	   /* Send a packet */
 
 #ifdef CONFIG_API
diff --git a/net/eth.c b/net/eth.c
index b86994e..66ecb79 100644
--- a/net/eth.c
+++ b/net/eth.c
@@ -12,6 +12,8 @@
 #include <phy.h>
 #include <asm/errno.h>
 
+DECLARE_GLOBAL_DATA_PTR;
+
 void eth_parse_enetaddr(const char *addr, uchar *enetaddr)
 {
 	char *end;
@@ -250,7 +252,7 @@ int eth_unregister(struct eth_device *dev)
 	return 0;
 }
 
-int eth_initialize(bd_t *bis)
+int eth_initialize(void)
 {
 	int num_devices = 0;
 	eth_devices = NULL;
@@ -272,10 +274,10 @@ int eth_initialize(bd_t *bis)
 	 * If not, call a CPU-specific one
 	 */
 	if (board_eth_init != __def_eth_init) {
-		if (board_eth_init(bis) < 0)
+		if (board_eth_init(gd->bd) < 0)
 			printf("Board Net Initialization Failed\n");
 	} else if (cpu_eth_init != __def_eth_init) {
-		if (cpu_eth_init(bis) < 0)
+		if (cpu_eth_init(gd->bd) < 0)
 			printf("CPU Net Initialization Failed\n");
 	} else
 		printf("Net Initialization Skipped\n");
@@ -362,7 +364,7 @@ u32 ether_crc(size_t len, unsigned char const *p)
 #endif
 
 
-int eth_init(bd_t *bis)
+int eth_init(void)
 {
 	struct eth_device *old_current, *dev;
 
@@ -387,7 +389,7 @@ int eth_init(bd_t *bis)
 	do {
 		debug("Trying %s\n", eth_current->name);
 
-		if (eth_current->init(eth_current, bis) >= 0) {
+		if (eth_current->init(eth_current, gd->bd) >= 0) {
 			eth_current->state = ETH_STATE_ACTIVE;
 
 			return 0;
diff --git a/net/net.c b/net/net.c
index 4b3c90e..e5ab07c 100644
--- a/net/net.c
+++ b/net/net.c
@@ -324,7 +324,6 @@ void net_init(void)
 
 int NetLoop(enum proto_t protocol)
 {
-	bd_t *bd = gd->bd;
 	int ret = -1;
 
 	NetRestarted = 0;
@@ -337,12 +336,12 @@ int NetLoop(enum proto_t protocol)
 	if (eth_is_on_demand_init() || protocol != NETCONS) {
 		eth_halt();
 		eth_set_current();
-		if (eth_init(bd) < 0) {
+		if (eth_init() < 0) {
 			eth_halt();
 			return -1;
 		}
 	} else
-		eth_init_state_only(bd);
+		eth_init_state_only();
 
 restart:
 #ifdef CONFIG_USB_KEYBOARD
@@ -618,7 +617,7 @@ void NetStartAgain(void)
 #if !defined(CONFIG_NET_DO_NOT_TRY_ANOTHER)
 	eth_try_another(!NetRestarted);
 #endif
-	eth_init(gd->bd);
+	eth_init();
 	if (NetRestartWrap) {
 		NetRestartWrap = 0;
 		if (NetDevExists) {
-- 
1.7.11.5



More information about the U-Boot mailing list