diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c
index f89de5f..ab56ea5 100644
--- a/cmd/bdinfo.c
+++ b/cmd/bdinfo.c
@@ -121,6 +121,29 @@ static inline void print_bi_flash(const bd_t *bd)
 #endif
 }
 
+static inline void print_eth_ip_addr(void)
+{
+#if defined(CONFIG_CMD_NET)
+	print_eth(0);
+#if defined(CONFIG_HAS_ETH1)
+	print_eth(1);
+#endif
+#if defined(CONFIG_HAS_ETH2)
+	print_eth(2);
+#endif
+#if defined(CONFIG_HAS_ETH3)
+	print_eth(3);
+#endif
+#if defined(CONFIG_HAS_ETH4)
+	print_eth(4);
+#endif
+#if defined(CONFIG_HAS_ETH5)
+	print_eth(5);
+#endif
+	printf("IP addr     = %s\n", getenv("ipaddr"));
+#endif
+}
+
 #if defined(CONFIG_PPC)
 void __weak board_detail(void)
 {
@@ -178,24 +201,7 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 #endif
 #endif
 
-	print_eth(0);
-#if defined(CONFIG_HAS_ETH1)
-	print_eth(1);
-#endif
-#if defined(CONFIG_HAS_ETH2)
-	print_eth(2);
-#endif
-#if defined(CONFIG_HAS_ETH3)
-	print_eth(3);
-#endif
-#if defined(CONFIG_HAS_ETH4)
-	print_eth(4);
-#endif
-#if defined(CONFIG_HAS_ETH5)
-	print_eth(5);
-#endif
-
-	printf("IP addr     = %s\n", getenv("ipaddr"));
+	print_eth_ip_addr();
 	printf("baudrate    = %6u bps\n", gd->baudrate);
 	print_num("relocaddr", gd->relocaddr);
 	board_detail();
@@ -216,11 +222,7 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 	print_num ("sram size",		(ulong)bd->bi_sramsize);
 #endif
 
-#if defined(CONFIG_CMD_NET)
-	print_eth(0);
-	printf("ip_addr     = %s\n", getenv("ipaddr"));
-#endif
-
+	print_eth_ip_addr();
 	printf("baudrate    = %u bps\n", gd->baudrate);
 
 	return 0;
@@ -276,10 +278,7 @@ int do_bdinfo(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
 	printf("CONFIG_SYS_GBL_DATA_OFFSET    = 0x%x (%d)\n", CONFIG_SYS_GBL_DATA_OFFSET,
 	       GENERATED_GBL_DATA_SIZE);
 
-#if defined(CONFIG_CMD_NET)
-	print_eth(0);
-	printf("ip_addr     = %s\n", getenv("ipaddr"));
-#endif
+	print_eth_ip_addr();
 	printf("baudrate               = %6u bps\n", gd->baudrate);
 	return 0;
 }
@@ -309,20 +308,7 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 	print_mhz("inpfreq",		bd->bi_inpfreq);
 	print_mhz("vcofreq",		bd->bi_vcofreq);
 #endif
-#if defined(CONFIG_CMD_NET)
-	print_eth(0);
-#if defined(CONFIG_HAS_ETH1)
-	print_eth(1);
-#endif
-#if defined(CONFIG_HAS_ETH2)
-	print_eth(2);
-#endif
-#if defined(CONFIG_HAS_ETH3)
-	print_eth(3);
-#endif
-
-	printf("ip_addr     = %s\n", getenv("ipaddr"));
-#endif
+	print_eth_ip_addr();
 	printf("baudrate    = %u bps\n", gd->baudrate);
 
 	return 0;
@@ -344,9 +330,7 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 	print_bi_boot_params(bd);
 	print_bi_mem(bd);
 	print_bi_flash(bd);
-
-	print_eth(0);
-	printf("ip_addr     = %s\n", getenv("ipaddr"));
+	print_eth_ip_addr();
 	printf("baudrate    = %u bps\n", gd->baudrate);
 
 	return 0;
@@ -361,9 +345,7 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 	print_bi_boot_params(bd);
 	print_bi_mem(bd);
 	print_bi_flash(bd);
-
-	print_eth(0);
-	printf("ip_addr     = %s\n", getenv("ipaddr"));
+	print_eth_ip_addr();
 	printf("baudrate    = %u bps\n", gd->baudrate);
 	print_num("relocaddr", gd->relocaddr);
 	print_num("reloc off", gd->reloc_off);
@@ -380,9 +362,7 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 	print_bi_boot_params(bd);
 	print_bi_mem(bd);
 	print_bi_flash(bd);
-
-	print_eth(0);
-	printf("ip_addr     = %s\n", getenv("ipaddr"));
+	print_eth_ip_addr();
 	printf("baudrate    = %u bps\n", gd->baudrate);
 
 	return 0;
@@ -442,11 +422,7 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 
 	print_bi_mem(bd);
 	print_bi_flash(bd);
-
-#if defined(CONFIG_CMD_NET)
-	print_eth(0);
-	printf("ip_addr     = %s\n", getenv("ipaddr"));
-#endif
+	print_eth_ip_addr();
 	printf("baudrate    = %u bps\n", gd->baudrate);
 	return 0;
 }
@@ -472,8 +448,7 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 	print_bi_dram(bd);
 
 #if defined(CONFIG_CMD_NET)
-	print_eth(0);
-	printf("ip_addr     = %s\n", getenv("ipaddr"));
+	print_eth_ip_addr();
 	print_mhz("ethspeed",	    bd->bi_ethspeed);
 #endif
 	printf("baudrate    = %u bps\n", gd->baudrate);
@@ -489,11 +464,8 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 
 	print_bi_boot_params(bd);
 	print_bi_dram(bd);
+	print_eth_ip_addr();
 
-#if defined(CONFIG_CMD_NET)
-	print_eth(0);
-	printf("ip_addr     = %s\n", getenv("ipaddr"));
-#endif
 #if defined(CONFIG_LCD) || defined(CONFIG_VIDEO)
 	print_num("FB base  ", gd->fb_base);
 #endif
@@ -509,11 +481,7 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 	print_num("arch_number",	bd->bi_arch_number);
 	print_bi_boot_params(bd);
 	print_bi_dram(bd);
-
-#if defined(CONFIG_CMD_NET)
-	print_eth(0);
-	printf("ip_addr     = %s\n", getenv("ipaddr"));
-#endif
+	print_eth_ip_addr();
 	printf("baudrate    = %u bps\n", gd->baudrate);
 
 	return 0;
@@ -527,12 +495,7 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 
 	print_bi_mem(bd);
 	print_bi_flash(bd);
-
-#if defined(CONFIG_CMD_NET)
-	print_eth(0);
-	printf("ip_addr     = %s\n", getenv("ipaddr"));
-#endif
-
+	print_eth_ip_addr();
 	printf("baudrate    = %u bps\n", gd->baudrate);
 
 	return 0;
@@ -545,11 +508,7 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 	bd_t *bd = gd->bd;
 
 	print_bi_mem(bd);
-
-#if defined(CONFIG_CMD_NET)
-	print_eth(0);
-	printf("ip_addr     = %s\n", getenv("ipaddr"));
-#endif
+	print_eth_ip_addr();
 	printf("baudrate    = %d bps\n", gd->baudrate);
 
 	return 0;
