Skip to contentSkip to conversation

bdinfo: Fix bdinfo to show all MACs for Microblaze and ARM

PATCH New Michal Simek 3 participants 3 messages Aug 31, 2011 – Sep 7, 2011

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 bdinfo: Fix bdinfo to show all MACs for Microblaze and ARM

- Show all ethernet MACs in the system.
- Show current ethernet device

---
 common/cmd_bdinfo.c |   32 ++++++++++++++++++++++++++++++--
 1 files changed, 30 insertions(+), 2 deletions(-)
common/cmd_bdinfo.c +30 -2
index 6051120..01441de 100644
@@ -153,6 +153,11 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 
 int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 {
+#if defined(CONFIG_CMD_NET)
+	struct eth_device *dev;
+	int i;
+#endif
+
 	bd_t *bd = gd->bd;
 	print_num("mem start      ",	(ulong)bd->bi_memstart);
 	print_lnum("mem size       ",	(u64)bd->bi_memsize);
@@ -164,7 +169,17 @@ 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);
+	i = 0;
+	while (1) {
+		dev = eth_get_dev_by_index(i);
+		if (dev) {
+			printf("eth%dname    = %s\n", i, dev->name);
+			print_eth(i);
+		} else
+			break;
+		i++;
+	}
+	printf("current eth = %s\n", eth_get_name());
 	printf("ip_addr     = %pI4\n", &bd->bi_ip_addr);
 #endif
 	printf("baudrate    = %ld bps\n", (ulong)bd->bi_baudrate);
@@ -330,6 +345,9 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 {
 	int i;
 	bd_t *bd = gd->bd;
+#if defined(CONFIG_CMD_NET)
+	struct eth_device *dev;
+#endif
 
 	print_num("arch_number",	bd->bi_arch_number);
 	print_num("boot_params",	(ulong)bd->bi_boot_params);
@@ -341,7 +359,17 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 	}
 
 #if defined(CONFIG_CMD_NET)
-	print_eth(0);
+	i = 0;
+	while (1) {
+		dev = eth_get_dev_by_index(i)
+		if (dev) {
+			printf("eth%dname    = %s\n", i, dev->name);
+			print_eth(i);
+		} else
+			break;
+		i++;
+	}
+	printf("current eth = %s\n", eth_get_name());
 	printf("ip_addr     = %pI4\n", &bd->bi_ip_addr);
 #endif
 	printf("baudrate    = %d bps\n", bd->bi_baudrate);
Signature · 1 line
1.5.5.6
#1 lore raw

PATCH 1/1 bdinfo: Fix bdinfo to show all MACs for Microblaze and ARM

Dear Michal Simek,

Quoted 59 lines · In message <[email protected]> you wrote:

- Show all ethernet MACs in the system.
- Show current ethernet device

---
 common/cmd_bdinfo.c |   32 ++++++++++++++++++++++++++++++--
 1 files changed, 30 insertions(+), 2 deletions(-)
common/cmd_bdinfo.c +20 -2
index 6051120..01441de 100644
@@ -153,6 +153,11 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 
 int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 {
+#if defined(CONFIG_CMD_NET)
+	struct eth_device *dev;
+	int i;
+#endif
+
 	bd_t *bd = gd->bd;
 	print_num("mem start      ",	(ulong)bd->bi_memstart);
 	print_lnum("mem size       ",	(u64)bd->bi_memsize);
@@ -164,7 +169,17 @@ 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);
+	i = 0;
+	while (1) {
+		dev = eth_get_dev_by_index(i);
+		if (dev) {
+			printf("eth%dname    = %s\n", i, dev->name);
+			print_eth(i);
+		} else
+			break;
+		i++;
+	}
+	printf("current eth = %s\n", eth_get_name());
 	printf("ip_addr     = %pI4\n", &bd->bi_ip_addr);
 #endif
 	printf("baudrate    = %ld bps\n", (ulong)bd->bi_baudrate);
@@ -330,6 +345,9 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 {
 	int i;
 	bd_t *bd = gd->bd;
+#if defined(CONFIG_CMD_NET)
+	struct eth_device *dev;
+#endif
 
 	print_num("arch_number",	bd->bi_arch_number);
 	print_num("boot_params",	(ulong)bd->bi_boot_params);
@@ -341,7 +359,17 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 	}
 
 #if defined(CONFIG_CMD_NET)
-	print_eth(0);
+	i = 0;

common/cmd_bdinfo.c int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) · line 372

Quoted 10 lines
common/cmd_bdinfo.c +10 -0
+	while (1) {
+		dev = eth_get_dev_by_index(i)
+		if (dev) {
+			printf("eth%dname    = %s\n", i, dev->name);
+			print_eth(i);
+		} else
+			break;
+		i++;
+	}
+	printf("current eth = %s\n", eth_get_name());

Instead of repeating this code we should turn it into a function.

Best regards,

Wolfgang Denk

Signature · 5 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
"A complex system that works is invariably found to have evolved from
a simple system that worked."             - John Gall, _Systemantics_
#2 lore raw

PATCH 1/1 bdinfo: Fix bdinfo to show all MACs for Microblaze and ARM

In reply to Michal Simek
Quoted 30 lines · Michal Simek

- Show all ethernet MACs in the system.
- Show current ethernet device

---
 common/cmd_bdinfo.c |   32 ++++++++++++++++++++++++++++++--
 1 files changed, 30 insertions(+), 2 deletions(-)
common/cmd_bdinfo.c +5 -0
index 6051120..01441de 100644
@@ -153,6 +153,11 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc,
 char * const argv[])
 
 int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 {
+#if defined(CONFIG_CMD_NET)
+	struct eth_device *dev;
+	int i;
+#endif
+
 	bd_t *bd = gd->bd;
 	print_num("mem start      ",	(ulong)bd->bi_memstart);
common/cmd_bdinfo.c +0 -1
 	print_lnum("mem size       ",	(u64)bd->bi_memsize);
@@ -164,7 +169,17 @@ 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);

common/cmd_bdinfo.c int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, · line 181

Quoted 10 lines
common/cmd_bdinfo.c +10 -0
+	i = 0;
+	while (1) {
+		dev = eth_get_dev_by_index(i);
+		if (dev) {
+			printf("eth%dname    = %s\n", i, dev->name);
+			print_eth(i);
+		} else
+			break;
+		i++;
+	}

i = 0;

do {
	dev = eth_get_dev_by_index(i++);
} while (dev);

i--;

... or something