summaryrefslogtreecommitdiffstats
path: root/commands/net.c
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2009-02-27 01:09:26 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2009-04-06 11:13:19 +0200
commit53488058e6f0cbbb2df559eed5bc8d2245f0288c (patch)
treeeec60666671d05fb99596e42c3d583bda46bcb58 /commands/net.c
parentf090bca2d80a1f64fcfe07bb6f4efe7d1a00d741 (diff)
downloadbarebox-53488058e6f0cbbb2df559eed5bc8d2245f0288c.tar.gz
barebox-53488058e6f0cbbb2df559eed5bc8d2245f0288c.tar.xz
allow changing of network device
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'commands/net.c')
-rw-r--r--commands/net.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/commands/net.c b/commands/net.c
index 9ed0f59919..2ed7b223cd 100644
--- a/commands/net.c
+++ b/commands/net.c
@@ -275,3 +275,41 @@ U_BOOT_CMD_START(cdp)
U_BOOT_CMD_END
#endif /* CONFIG_NET_CDP */
+
+static int do_ethact (cmd_tbl_t *cmdtp, int argc, char *argv[])
+{
+ struct device_d *dev;
+ struct eth_device *edev;
+
+ if (argc != 2) {
+ u_boot_cmd_usage(cmdtp);
+ return 1;
+ }
+
+ dev = get_device_by_path(argv[1]);
+ if (!dev) {
+ perror("open");
+ return 1;
+ }
+
+ if (dev->type != DEVICE_TYPE_ETHER) {
+ printf("nat a net device: %s\n", argv[1]);
+ return 1;
+ }
+
+ edev = dev->type_data;
+ eth_set_current(edev);
+
+ return 0;
+}
+
+static const __maybe_unused char cmd_ethact_help[] =
+"Usage: ethact /dev/ethx\n";
+
+U_BOOT_CMD_START(ethact)
+ .maxargs = 3,
+ .cmd = do_ethact,
+ .usage = "set current ethernet device",
+ U_BOOT_CMD_HELP(cmd_ethact_help)
+U_BOOT_CMD_END
+