diff --git a/common/cmd_elf.c b/common/cmd_elf.c
index 88744b4..149ffa3 100644
--- a/common/cmd_elf.c
+++ b/common/cmd_elf.c
@@ -111,7 +111,7 @@
 	/* Check to see if we need to tftp the image ourselves before starting */
 
 	if ((argc == 2) && (strcmp (argv[1], "tftp") == 0)) {
-		if (NetLoop (TFTP) == 0)
+		if (NetLoop (TFTP) <= 0)
 			return 1;
 		printf ("Automatic boot of VxWorks image at address 0x%08lx ... \n", addr);
 	}
diff --git a/common/cmd_net.c b/common/cmd_net.c
index c9ce85f..a1ff2ba 100644
--- a/common/cmd_net.c
+++ b/common/cmd_net.c
@@ -132,12 +132,16 @@
 		return 1;
 	}
 
-	if ((size = NetLoop(proto)) == 0)
+	if ((size = NetLoop(proto)) < 0)
 		return 1;
 
 	/* NetLoop ok, update environment */
 	netboot_update_env();
 
+	/* done if no file was loaded (no errors though) */
+	if (size == 0)
+		return 0;
+
 	/* flush cache */
 	flush_cache(load_addr, size);
 
diff --git a/common/cmd_spi.c b/common/cmd_spi.c
index ccf9cc2..d544b27 100644
--- a/common/cmd_spi.c
+++ b/common/cmd_spi.c
@@ -32,14 +32,20 @@
 
 #if (CONFIG_COMMANDS & CFG_CMD_SPI)
 
-#define MAX_SPI_BYTES	32	/* max number of bytes we can handle */
+/*-----------------------------------------------------------------------
+ * Definitions
+ */
+
+#ifndef MAX_SPI_BYTES
+#   define MAX_SPI_BYTES 32	/* Maximum number of bytes we can handle */
+#endif
 
 /*
  * External table of chip select functions (see the appropriate board
  * support for the actual definition of the table).
  */
 extern spi_chipsel_type spi_chipsel[];
-
+extern int spi_chipsel_cnt;
 
 /*
  * Values from last command.
@@ -60,7 +66,7 @@
  * The command prints out the hexadecimal string received via SPI.
  */
 
-int do_spi (cmd_tbl_t *cmdtp, bd_t *bd, int flag, int argc, char *argv[])
+int do_spi (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 {
 	char  *cp = 0;
 	uchar tmp;
@@ -78,26 +84,38 @@
 			device = simple_strtoul(argv[1], NULL, 10);
 		if (argc >= 3)
 			bitlen = simple_strtoul(argv[2], NULL, 10);
-		if (argc >= 4)
-		cp = argv[3];
-		for(j = 0; *cp; j++, cp++) {
-			tmp = *cp - '0';
-			if(tmp > 9)
-				tmp -= ('A' - '0') - 10;
-			if(tmp > 15)
-				tmp -= ('a' - 'A');
-			if(tmp > 15) {
-				printf("Conversion error on %c, bailing out.\n", *cp);
-				break;
+		if (argc >= 4) {
+			cp = argv[3];
+			for(j = 0; *cp; j++, cp++) {
+				tmp = *cp - '0';
+				if(tmp > 9)
+					tmp -= ('A' - '0') - 10;
+				if(tmp > 15)
+					tmp -= ('a' - 'A');
+				if(tmp > 15) {
+					printf("Hex conversion error on %c, giving up.\n", *cp);
+					return 1;
+				}
+				if((j % 2) == 0)
+					dout[j / 2] = (tmp << 4);
+				else
+					dout[j / 2] |= tmp;
 			}
-			if((j % 2) == 0)
-				dout[j / 2] = (tmp << 4);
-			else
-				dout[j / 2] |= tmp;
 		}
 	}
 
-printf("spi_chipsel[%d] = %08X\n", device, (uint)spi_chipsel[device]);
+	if ((device < 0) || (device >=  spi_chipsel_cnt)) {
+		printf("Invalid device %d, giving up.\n", device);
+		return 1;
+	} 
+	if ((bitlen < 0) || (bitlen >  (MAX_SPI_BYTES * 8))) {
+		printf("Invalid bitlen %d, giving up.\n", bitlen);
+		return 1;
+	} 
+
+	debug ("spi_chipsel[%d] = %08X\n",
+		device, (uint)spi_chipsel[device]);
+
 	if(spi_xfer(spi_chipsel[device], bitlen, dout, din) != 0) {
 		printf("Error with the SPI transaction.\n");
 		rcode = 1;
@@ -113,4 +131,3 @@
 }
 
 #endif	/* CFG_CMD_SPI */
-
diff --git a/common/command.c b/common/command.c
index db39b41..f70cad8 100644
--- a/common/command.c
+++ b/common/command.c
@@ -46,6 +46,7 @@
 
 #include <cmd_eeprom.h>
 #include <cmd_i2c.h>
+#include <cmd_spi.h>
 #include <cmd_immap.h>
 #include <cmd_rtc.h>
 
@@ -316,6 +317,7 @@
 	CMD_TBL_MISC		/* sleep */
 	CMD_TBL_SMCINFO
 	CMD_TBL_SPIINFO
+	CMD_TBL_SPI
 	CMD_TBL_STACK
 	CMD_TBL_STEP
 	CMD_TBL_TFTPB
diff --git a/common/soft_spi.c b/common/soft_spi.c
index a5b62f2..b9a8fa8 100644
--- a/common/soft_spi.c
+++ b/common/soft_spi.c
@@ -29,9 +29,6 @@
 
 #if defined(CONFIG_SOFT_SPI)
 
-#define DEBUG_SPI
-
-
 /*-----------------------------------------------------------------------
  * Definitions
  */
