diff --git a/arch/sandbox/Kconfig b/arch/sandbox/Kconfig
index 477a20a..e7f55fa 100644
--- a/arch/sandbox/Kconfig
+++ b/arch/sandbox/Kconfig
@@ -41,4 +41,13 @@
 	  used on some devices to allow the CPU to communicate with its
 	  peripherals.
 
+config NET
+	default y
+
+config NETDEVICES
+	default y
+
+config DM_ETH
+	default y
+
 endmenu
diff --git a/arch/sandbox/dts/sandbox.dts b/arch/sandbox/dts/sandbox.dts
index 42a1f21..0df7b40 100644
--- a/arch/sandbox/dts/sandbox.dts
+++ b/arch/sandbox/dts/sandbox.dts
@@ -201,4 +201,8 @@
 		};
 	};
 
+	eth@10002000 {
+		compatible = "sandbox,eth";
+		reg = <0x10002000 0x1000>;
+	};
 };
diff --git a/board/sandbox/README.sandbox b/board/sandbox/README.sandbox
index 3c0df17..c1f5f7e 100644
--- a/board/sandbox/README.sandbox
+++ b/board/sandbox/README.sandbox
@@ -173,16 +173,16 @@
 - Chrome OS EC
 - GPIO
 - Host filesystem (access files on the host from within U-Boot)
+- I2C
 - Keyboard (Chrome OS)
 - LCD
+- Network
 - Serial (for console only)
 - Sound (incomplete - see sandbox_sdl_sound_init() for details)
 - SPI
 - SPI flash
 - TPM (Trusted Platform Module)
 
-Notable omissions are networking and I2C.
-
 A wide range of commands is implemented. Filesystems which use a block
 device are supported.
 
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index 94cf099..e46e57b 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -7,3 +7,26 @@
 	  The eth_*() interface will be implemented by the UC_ETH class
 	  This is currently implemented in net/eth.c
 	  Look in include/net.h for details.
+
+menuconfig NETDEVICES
+	bool "Network device support"
+	depends on NET
+	help
+	  You must select Y to enable any network device support
+	  Generally if you have any networking support this is a given
+
+	  If unsure, say Y
+
+if NETDEVICES
+
+config ETH_SANDBOX
+	depends on DM_ETH && SANDBOX
+	default y
+	bool "Sandbox: Mocked Ethernet driver"
+	help
+	  This driver simply responds with fake ARP replies and ping
+	  replies that are used to verify network stack functionality
+
+	  This driver is particularly useful in the test/dm/eth.c tests
+
+endif # NETDEVICES
diff --git a/drivers/net/Makefile b/drivers/net/Makefile
index 5a5269a..b9f5db3 100644
--- a/drivers/net/Makefile
+++ b/drivers/net/Makefile
@@ -51,6 +51,7 @@
 obj-$(CONFIG_PCNET) += pcnet.o
 obj-$(CONFIG_RTL8139) += rtl8139.o
 obj-$(CONFIG_RTL8169) += rtl8169.o
+obj-$(CONFIG_ETH_SANDBOX) += sandbox.o
 obj-$(CONFIG_SH_ETHER) += sh_eth.o
 obj-$(CONFIG_SMC91111) += smc91111.o
 obj-$(CONFIG_SMC911X) += smc911x.o
diff --git a/drivers/net/sandbox.c b/drivers/net/sandbox.c
new file mode 100644
index 0000000..522990d
--- /dev/null
+++ b/drivers/net/sandbox.c
@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 2015 National Instruments
+ *
+ * (C) Copyright 2015
+ * Joe Hershberger <joe.hershberger@ni.com>
+ *
+ * SPDX-License-Identifier:	GPL-2.0
+ */
+
+#include <common.h>
+#include <dm.h>
+#include <malloc.h>
+#include <net.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+static int sb_eth_start(struct udevice *dev)
+{
+	debug("eth_sandbox: Start\n");
+
+	return 0;
+}
+
+static int sb_eth_send(struct udevice *dev, void *packet, int length)
+{
+	debug("eth_sandbox: Send packet %d\n", length);
+
+	return 0;
+}
+
+static int sb_eth_recv(struct udevice *dev, uchar **packetp)
+{
+	return 0;
+}
+
+static void sb_eth_stop(struct udevice *dev)
+{
+	debug("eth_sandbox: Stop\n");
+}
+
+static int sb_eth_write_hwaddr(struct udevice *dev)
+{
+	struct eth_pdata *pdata = dev_get_platdata(dev);
+
+	debug("eth_sandbox %s: Write HW ADDR - %pM\n", dev->name,
+	      pdata->enetaddr);
+	return 0;
+}
+
+static const struct eth_ops sb_eth_ops = {
+	.start			= sb_eth_start,
+	.send			= sb_eth_send,
+	.recv			= sb_eth_recv,
+	.stop			= sb_eth_stop,
+	.write_hwaddr		= sb_eth_write_hwaddr,
+};
+
+static int sb_eth_remove(struct udevice *dev)
+{
+	return 0;
+}
+
+static int sb_eth_ofdata_to_platdata(struct udevice *dev)
+{
+	struct eth_pdata *pdata = dev_get_platdata(dev);
+
+	pdata->iobase = dev_get_addr(dev);
+	return 0;
+}
+
+static const struct udevice_id sb_eth_ids[] = {
+	{ .compatible = "sandbox,eth" },
+	{ }
+};
+
+U_BOOT_DRIVER(eth_sandbox) = {
+	.name	= "eth_sandbox",
+	.id	= UCLASS_ETH,
+	.of_match = sb_eth_ids,
+	.ofdata_to_platdata = sb_eth_ofdata_to_platdata,
+	.remove	= sb_eth_remove,
+	.ops	= &sb_eth_ops,
+	.platdata_auto_alloc_size = sizeof(struct eth_pdata),
+};
diff --git a/include/configs/sandbox.h b/include/configs/sandbox.h
index c12c538..01c6f19 100644
--- a/include/configs/sandbox.h
+++ b/include/configs/sandbox.h
@@ -130,9 +130,6 @@
 /* include default commands */
 #include <config_cmd_default.h>
 
-/* We don't have networking support yet */
-#undef CONFIG_CMD_NET
-#undef CONFIG_CMD_NFS
 
 #define CONFIG_CMD_HASH
 #define CONFIG_HASH_VERIFY
@@ -169,16 +166,23 @@
 
 #define CONFIG_KEYBOARD
 
-#define CONFIG_EXTRA_ENV_SETTINGS	"stdin=serial,cros-ec-keyb\0" \
+#define SANDBOX_SERIAL_SETTINGS		"stdin=serial,cros-ec-keyb\0" \
 					"stdout=serial,lcd\0" \
 					"stderr=serial,lcd\0"
 #else
-
-#define CONFIG_EXTRA_ENV_SETTINGS	"stdin=serial\0" \
+#define SANDBOX_SERIAL_SETTINGS		"stdin=serial\0" \
 					"stdout=serial,lcd\0" \
 					"stderr=serial,lcd\0"
 #endif
 
+#define SANDBOX_ETH_SETTINGS		"ethaddr=00:00:11:22:33:44\0" \
+					"eth1addr=00:00:11:22:33:45\0" \
+					"eth2addr=00:00:11:22:33:46\0" \
+					"ipaddr=1.2.3.4\0"
+
+#define CONFIG_EXTRA_ENV_SETTINGS	SANDBOX_SERIAL_SETTINGS \
+					SANDBOX_ETH_SETTINGS
+
 #define CONFIG_GZIP_COMPRESSED
 #define CONFIG_BZIP2
 #define CONFIG_LZO
