diff --git a/board/amcc/yucca/cmd_yucca.c b/board/amcc/yucca/cmd_yucca.c
index e698b201fc3fad670389a4bc3871e4e3a9a2a689..bd42c5d46789a2662e554663004226e1ef48a88c 100644
--- a/board/amcc/yucca/cmd_yucca.c
+++ b/board/amcc/yucca/cmd_yucca.c
@@ -33,8 +33,6 @@ extern void print_evb440spe_info(void);
 static int setBootStrapClock(cmd_tbl_t *cmdtp, int incrflag,
 		int flag, int argc, char *argv[]);
 
-extern int cmd_get_data_size(char* arg, int default_size);
-
 /* ------------------------------------------------------------------------- */
 int do_evb440spe(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 {
diff --git a/common/cmd_i2c.c b/common/cmd_i2c.c
index 91bf25b6b312685ce3a6249b7bcfe407fe2cef5d..ef3928e4326ff8dca47dcc5e8199dc31e50cad1b 100644
--- a/common/cmd_i2c.c
+++ b/common/cmd_i2c.c
@@ -127,7 +127,6 @@ static uchar i2c_no_probes[] = CFG_I2C_NOPROBES;
 
 static int
 mod_i2c_mem(cmd_tbl_t *cmdtp, int incrflag, int flag, int argc, char *argv[]);
-extern int cmd_get_data_size(char* arg, int default_size);
 
 /*
  * Syntax:
diff --git a/common/cmd_itest.c b/common/cmd_itest.c
index ce988723c02d18733d79410dddb385746c9a06e7..9e77fa91319fb386e8e89ed41d7011fb11451bdc 100644
--- a/common/cmd_itest.c
+++ b/common/cmd_itest.c
@@ -64,8 +64,6 @@ op_tbl_t op_table [] = {
 
 #define op_tbl_size (sizeof(op_table)/sizeof(op_table[0]))
 
-extern int cmd_get_data_size(char* arg, int default_size);
-
 static long evalexp(char *s, int w)
 {
 	long l, *p;
diff --git a/common/cmd_mem.c b/common/cmd_mem.c
index d0a6ca83047ec8586399454367cce9d1c3c5ab06..672218b9caff8163eb3e570ea5100574581abd5d 100644
--- a/common/cmd_mem.c
+++ b/common/cmd_mem.c
@@ -37,35 +37,6 @@
 #endif
 #include <watchdog.h>
 
-#if defined(CONFIG_CMD_MEMORY)		\
-    || defined(CONFIG_CMD_I2C)		\
-    || defined(CONFIG_CMD_ITEST)	\
-    || defined(CONFIG_CMD_PCI)		\
-    || defined(CONFIG_CMD_PORTIO)
-
-int cmd_get_data_size(char* arg, int default_size)
-{
-	/* Check for a size specification .b, .w or .l.
-	 */
-	int len = strlen(arg);
-	if (len > 2 && arg[len-2] == '.') {
-		switch(arg[len-1]) {
-		case 'b':
-			return 1;
-		case 'w':
-			return 2;
-		case 'l':
-			return 4;
-		case 's':
-			return -2;
-		default:
-			return -1;
-		}
-	}
-	return default_size;
-}
-#endif
-
 #if defined(CONFIG_CMD_MEMORY)
 
 #ifdef	CMD_MEM_DEBUG
diff --git a/common/cmd_pci.c b/common/cmd_pci.c
index 89687015b2b42b657573e5bf2e5f70c01648c1f8..b2aa833abfbcf0b370bdb6c067b6d4018f9f1bc4 100644
--- a/common/cmd_pci.c
+++ b/common/cmd_pci.c
@@ -35,8 +35,6 @@
 #include <asm/io.h>
 #include <pci.h>
 
-extern int cmd_get_data_size(char* arg, int default_size);
-
 unsigned char	ShortPCIListing = 1;
 
 /*
diff --git a/common/cmd_portio.c b/common/cmd_portio.c
index a06cac01663b914038a4ef90ac83159f84f0d798..c88fcd5e451b415ff652378ccdb256c726d4ce88 100644
--- a/common/cmd_portio.c
+++ b/common/cmd_portio.c
@@ -30,8 +30,6 @@
 #include <common.h>
 #include <command.h>
 
-extern int cmd_get_data_size (char *arg, int default_size);
-
 /* Display values from last command.
  * Memory modify remembered values are different from display memory.
  */
diff --git a/common/command.c b/common/command.c
index 861796d9a5a1bd89ba87009a71c445134c887434..aca57b26be5e58235498a6e4df487c437db972d4 100644
--- a/common/command.c
+++ b/common/command.c
@@ -654,3 +654,27 @@ int cmd_auto_complete(const char *const prompt, char *buf, int *np, int *colp)
 }
 
 #endif
+
+#ifdef CMD_DATA_SIZE
+int cmd_get_data_size(char* arg, int default_size)
+{
+	/* Check for a size specification .b, .w or .l.
+	 */
+	int len = strlen(arg);
+	if (len > 2 && arg[len-2] == '.') {
+		switch(arg[len-1]) {
+		case 'b':
+			return 1;
+		case 'w':
+			return 2;
+		case 'l':
+			return 4;
+		case 's':
+			return -2;
+		default:
+			return -1;
+		}
+	}
+	return default_size;
+}
+#endif
diff --git a/include/command.h b/include/command.h
index 4a27e9724768c8b5cf916684e9bf01770f32256d..f92383d0867253cfd8250812aa672953f09630fd 100644
--- a/include/command.h
+++ b/include/command.h
@@ -78,6 +78,15 @@ extern int cmd_auto_complete(const char *const prompt, char *buf, int *np, int *
 
 typedef	void	command_t (cmd_tbl_t *, int, int, char *[]);
 
+#if defined(CONFIG_CMD_MEMORY)		\
+    || defined(CONFIG_CMD_I2C)		\
+    || defined(CONFIG_CMD_ITEST)	\
+    || defined(CONFIG_CMD_PCI)		\
+    || defined(CONFIG_CMD_PORTIO)
+#define CMD_DATA_SIZE
+extern int cmd_get_data_size(char* arg, int default_size);
+#endif
+
 #endif	/* __ASSEMBLY__ */
 
 /*