Initial revision
diff --git a/include/cmd_autoscript.h b/include/cmd_autoscript.h
new file mode 100644
index 0000000..520cfc9
--- /dev/null
+++ b/include/cmd_autoscript.h
@@ -0,0 +1,47 @@
+/*
+ * (C) Copyright 2001
+ * Kyle Harris, kharris@nexus-tech.net
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#ifndef	_CMD_AUTOSCRIPT_H_
+#define	_CMD_AUTOSCRIPT_H_
+
+#define AUTOSCRIPT_MAGIC	0x09011962
+
+#if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT)
+
+#define	CMD_TBL_AUTOSCRIPT	MK_CMD_TBL_ENTRY(					\
+	"autoscr",	5,	2,	0,	do_autoscript,			\
+	"autoscr - run script from memory\n",				\
+	"[addr] - run script starting at addr. " \
+	"A valid autoscr header must be present\n" \
+),
+
+int autoscript (ulong addr);
+int do_autoscript (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+
+#else
+
+#define	CMD_TBL_AUTOSCRIPT
+
+#endif
+
+#endif	/* _CMD_AUTOSCRIPT_H_ */
diff --git a/include/cmd_bedbug.h b/include/cmd_bedbug.h
new file mode 100644
index 0000000..105441e
--- /dev/null
+++ b/include/cmd_bedbug.h
@@ -0,0 +1,117 @@
+/*
+ * BedBug Functions
+ */
+#ifndef _CMD_BEDBUG_H
+#define _CMD_BEDBUG_H
+
+#if (CONFIG_COMMANDS & CFG_CMD_BEDBUG)
+
+#define CMD_TBL_DIS     MK_CMD_TBL_ENTRY(                               \
+        "ds",           2,      3,      1,      do_bedbug_dis,          \
+        "ds      - disassemble memory\n",                               \
+        "ds <address> [# instructions]\n"                               \
+        ),
+
+#define CMD_TBL_ASM     MK_CMD_TBL_ENTRY(                               \
+        "as",           2,      2,      0,      do_bedbug_asm,          \
+        "as      - assemble memory\n",                                  \
+        "as <address>\n"                                                \
+        ),
+
+#define CMD_TBL_BREAK   MK_CMD_TBL_ENTRY(                               \
+        "break",        2,      3,      0,      do_bedbug_break,        \
+        "break   - set or clear a breakpoint\n",                        \
+        " - Set or clear a breakpoint\n"                                \
+        "break <address> - Break at an address\n"                       \
+        "break off <bp#> - Disable breakpoint.\n"                       \
+        "break show      - List breakpoints.\n"                         \
+        ),
+
+#define CMD_TBL_CONTINUE        MK_CMD_TBL_ENTRY(                       \
+        "continue",     4,      1,      0,      do_bedbug_continue,     \
+        "continue- continue from a breakpoint\n",                       \
+        " - continue from a breakpoint.\n"                              \
+        ),
+
+#define CMD_TBL_STEP        MK_CMD_TBL_ENTRY(                           \
+        "step", 4,      1,      1,      do_bedbug_step,                 \
+        "step    - single step execution.\n",                           \
+        " - single step execution.\n"                                   \
+        ),
+
+#define CMD_TBL_NEXT        MK_CMD_TBL_ENTRY(                           \
+        "next", 4,      1,      1,      do_bedbug_next,                 \
+        "next    - single step execution, stepping over subroutines.\n",\
+        " - single step execution, stepping over subroutines.\n"        \
+        ),
+
+#define CMD_TBL_STACK        MK_CMD_TBL_ENTRY(                          \
+        "where", 5,     1,      1,      do_bedbug_stack,                \
+        "where   - Print the running stack.\n",                         \
+        " - Print the running stack.\n"                                 \
+        ),
+
+#define CMD_TBL_RDUMP        MK_CMD_TBL_ENTRY(                          \
+        "rdump", 5,     1,      1,      do_bedbug_rdump,                \
+        "rdump   - Show registers.\n",                                  \
+        " - Show registers.\n"                                          \
+        ),
+
+extern int do_bedbug_dis      (cmd_tbl_t *, int, int, char *[]);
+extern int do_bedbug_asm      (cmd_tbl_t *, int, int, char *[]);
+extern int do_bedbug_break    (cmd_tbl_t *, int, int, char *[]);
+extern int do_bedbug_continue (cmd_tbl_t *, int, int, char *[]);
+extern int do_bedbug_step     (cmd_tbl_t *, int, int, char *[]);
+extern int do_bedbug_next     (cmd_tbl_t *, int, int, char *[]);
+extern int do_bedbug_stack    (cmd_tbl_t *, int, int, char *[]);
+extern int do_bedbug_rdump    (cmd_tbl_t *, int, int, char *[]);
+
+/* Supporting routines */
+extern int bedbug_puts (const char *);
+extern void bedbug_init (void);
+extern void do_bedbug_breakpoint (struct pt_regs *);
+extern void bedbug_main_loop (unsigned long, struct pt_regs *);
+
+
+typedef struct {
+	int hw_debug_enabled;
+	int stopped;
+	int current_bp;
+	struct pt_regs *regs;
+
+	void (*do_break) (cmd_tbl_t *, int, int, char *[]);
+	void (*break_isr) (struct pt_regs *);
+	int (*find_empty) (void);
+	int (*set) (int, unsigned long);
+	int (*clear) (int);
+} CPU_DEBUG_CTX;
+
+#else /* ! CFG_CMD_BEDBUG */
+
+#define CMD_TBL_DIS
+#define CMD_TBL_ASM
+#define CMD_TBL_BREAK
+#define CMD_TBL_CONTINUE
+#define CMD_TBL_STEP
+#define CMD_TBL_NEXT
+#define CMD_TBL_STACK
+#define CMD_TBL_RDUMP
+
+#endif /* CFG_CMD_BEDBUG */
+#endif /* _CMD_BEDBUG_H */
+
+
+/*
+ * Copyright (c) 2001 William L. Pitts
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are freely
+ * permitted provided that the above copyright notice and this
+ * paragraph and the following disclaimer are duplicated in all
+ * such forms.
+ *
+ * This software is provided "AS IS" and without any express or
+ * implied warranties, including, without limitation, the implied
+ * warranties of merchantability and fitness for a particular
+ * purpose.
+ */
diff --git a/include/cmd_bootm.h b/include/cmd_bootm.h
new file mode 100644
index 0000000..20c1267
--- /dev/null
+++ b/include/cmd_bootm.h
@@ -0,0 +1,65 @@
+/*
+ * (C) Copyright 2000
+ * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ * Boot support
+ */
+#ifndef	_CMD_BOOTM_H
+#define	_CMD_BOOTM_H
+int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+
+#define	CMD_TBL_BOOTM	MK_CMD_TBL_ENTRY(					\
+	"bootm",	5,	CFG_MAXARGS,	1,	do_bootm,		\
+	"bootm   - boot application image from memory\n",			\
+	"[addr [arg ...]]\n    - boot application image stored in memory\n"	\
+	"        passing arguments 'arg ...'; when booting a Linux kernel,\n"	\
+	"        'arg' can be the address of an initrd image\n"			\
+),
+
+#if (CONFIG_COMMANDS & CFG_CMD_BOOTD)
+int do_bootd (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+
+#define CMD_TBL_BOOTD	MK_CMD_TBL_ENTRY(					\
+	"bootd",	4,	1,	1,	do_bootd,			\
+	"bootd   - boot default, i.e., run 'bootcmd'\n",			\
+	NULL									\
+),
+#else
+#define CMD_TBL_BOOTD
+#endif
+
+#if (CONFIG_COMMANDS & CFG_CMD_IMI)
+int do_iminfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+#define	CMD_TBL_IMINFO	MK_CMD_TBL_ENTRY(					\
+	"iminfo",	3,	CFG_MAXARGS,	1,	do_iminfo,		\
+	"iminfo  - print header information for application image\n",		\
+	"addr [addr ...]\n"							\
+	"    - print header information for application image starting at\n"	\
+	"      address 'addr' in memory; this includes verification of the\n"	\
+	"      image contents (magic number, header and payload checksums)\n"	\
+),
+#else
+#define CMD_TBL_IMINFO
+#endif
+
+#endif	/* _CMD_BOOTM_H */
diff --git a/include/cmd_cache.h b/include/cmd_cache.h
new file mode 100644
index 0000000..479a846
--- /dev/null
+++ b/include/cmd_cache.h
@@ -0,0 +1,51 @@
+/*
+ * (C) Copyright 2000
+ * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ * Cache support: switch on or off, get status
+ */
+#ifndef	_CMD_CACHE_H
+#define	_CMD_CACHE_H
+
+#if (CONFIG_COMMANDS & CFG_CMD_CACHE)
+#define	CMD_TBL_ICACHE	MK_CMD_TBL_ENTRY(					\
+	"icache",	2,	2,	1,	do_icache,			\
+	"icache  - enable or disable instruction cache\n",			\
+	"[on, off]\n"								\
+	"    - enable or disable instruction cache\n"				\
+),
+
+#define CMD_TBL_DCACHE	MK_CMD_TBL_ENTRY(					\
+	"dcache",	2,	2,	1,	do_dcache,			\
+	"dcache  - enable or disable data cache\n",				\
+	"[on, off]\n"								\
+	"    - enable or disable data (writethrough) cache\n"			\
+),
+int do_icache (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_dcache (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+#else
+#define CMD_TBL_ICACHE
+#define CMD_TBL_DCACHE
+#endif	/* CFG_CMD_CACHE */
+
+#endif	/* _CMD_CACHE_H */
diff --git a/include/cmd_console.h b/include/cmd_console.h
new file mode 100644
index 0000000..4ac8b83
--- /dev/null
+++ b/include/cmd_console.h
@@ -0,0 +1,42 @@
+/*
+ * (C) Copyright 2000
+ * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ * Network boot support
+ */
+#ifndef	_CMD_CONSOLE_H
+#define	_CMD_CONSOLE_H
+
+#if (CONFIG_COMMANDS & CFG_CMD_CONSOLE)
+#define	CMD_TBL_CONINFO	MK_CMD_TBL_ENTRY(			\
+	"coninfo",	5,	3,	1,	do_coninfo,	\
+	"coninfo - print console devices and informations\n",	\
+	""		 		 			\
+),
+int do_coninfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+
+#else
+#define	CMD_TBL_CONINFO
+#endif	/* CFG_CMD_CONSOLE */
+
+#endif
diff --git a/include/cmd_dcr.h b/include/cmd_dcr.h
new file mode 100644
index 0000000..97196ad
--- /dev/null
+++ b/include/cmd_dcr.h
@@ -0,0 +1,55 @@
+/*
+ * (C) Copyright 2001
+ * Erik Theisen,  Wave 7 Optics, etheisen@mindspring.com.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ * IBM 4XX DCR Functions
+ */
+#ifndef _CMD_DCR_H
+#define _CMD_DCR_H
+
+#if defined(CONFIG_4xx) && defined(CFG_CMD_SETGETDCR)
+#define CMD_TBL_GETDCR	MK_CMD_TBL_ENTRY(				\
+	"getdcr",	6,	2,	1,	do_getdcr,		\
+	"getdcr  - Get an IBM PPC 4xx DCR's value\n",			\
+	"dcrn - return a DCR's value.\n"				\
+),
+#define CMD_TBL_SETDCR	MK_CMD_TBL_ENTRY(				\
+	"setdcr",	6,	2,	1,	do_setdcr,		\
+	"setdcr  - Set an IBM PPC 4xx DCR's value\n",			\
+	"dcrn - set a DCR's value.\n"					\
+),
+extern int do_getdcr (cmd_tbl_t *, int, int, char *[]);
+extern int do_setdcr (cmd_tbl_t *, int, int, char *[]);
+
+/* Supporting routines */
+extern unsigned long get_dcr(unsigned short dcrn);
+extern unsigned long set_dcr(unsigned short dcrn, unsigned long value);
+
+#else
+
+#define CMD_TBL_GETDCR
+#define CMD_TBL_SETDCR
+
+#endif /* CONFIG_4xx & CFG_CMD_SETGETDCR */
+
+#endif	/* _CMD_DCR_H */
diff --git a/include/cmd_doc.h b/include/cmd_doc.h
new file mode 100644
index 0000000..07aa864
--- /dev/null
+++ b/include/cmd_doc.h
@@ -0,0 +1,55 @@
+/*
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ * Disk-On-Chip support
+ */
+#ifndef	_CMD_DOC_H
+#define	_CMD_DOC_H
+
+#include <common.h>
+#include <command.h>
+
+
+#if (CONFIG_COMMANDS & CFG_CMD_DOC)
+#define	CMD_TBL_DOC	MK_CMD_TBL_ENTRY(					\
+	"doc",	3,	5,	1,	do_doc,					\
+	"doc     - Disk-On-Chip sub-system\n",					\
+	"info  - show available DOC devices\n"					\
+	"doc device [dev] - show or set current device\n"			\
+	"doc read  addr off size\n"						\
+	"doc write addr off size - read/write `size'"				\
+	" bytes starting at offset `off'\n"					\
+	"    to/from memory address `addr'\n"					\
+	"doc erase off size - erase `size' bytes of DOC from offset `off'\n"	\
+),
+
+#define CMD_TBL_DOCBOOT	MK_CMD_TBL_ENTRY(					\
+	"docboot", 4,	4,	1,	do_docboot,				\
+	"docboot - boot from DOC device\n",					\
+	"loadAddr dev\n"							\
+),
+
+int do_doc (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_docboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+
+#else
+#define CMD_TBL_DOC
+#define CMD_TBL_DOCBOOT
+#endif
+
+#endif	/* _CMD_DOC_H */
diff --git a/include/cmd_dtt.h b/include/cmd_dtt.h
new file mode 100644
index 0000000..57192a3
--- /dev/null
+++ b/include/cmd_dtt.h
@@ -0,0 +1,46 @@
+/*
+ * (C) Copyright 2001
+ * Erik Theisen,  Wave 7 Optics, etheisen@mindspring.com.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ * Read Digital Thermometers & Thermostats
+ */
+#ifndef _CMD_DTT_H
+#define _CMD_DTT_H
+
+#if (CONFIG_COMMANDS & CFG_CMD_DTT)
+
+#define CMD_TBL_DTT MK_CMD_TBL_ENTRY(				\
+	  "dtt",	3,	1,	1,	do_dtt,		\
+	  "dtt     - Digital Thermometer and Themostat\n",	\
+	  "        - Read temperature from digital thermometer and thermostat.\n" \
+),
+extern int do_dtt (cmd_tbl_t *, int, int, char *[]);
+
+#else
+
+#define CMD_TBL_DTT
+
+#endif /* (CONFIG_COMMANDS & CFG_CMD_DTT) */
+
+#endif	/* _CMD_DTT_H */
+
diff --git a/include/cmd_eeprom.h b/include/cmd_eeprom.h
new file mode 100644
index 0000000..26d929d
--- /dev/null
+++ b/include/cmd_eeprom.h
@@ -0,0 +1,59 @@
+/*
+ * (C) Copyright 2000
+ * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ * EEPROM support
+ */
+#ifndef	_CMD_EEPROM_H
+#define	_CMD_EEPROM_H
+
+#include <common.h>
+#include <command.h>
+
+#if (CONFIG_COMMANDS & CFG_CMD_EEPROM)
+
+#ifdef CFG_I2C_MULTI_EEPROMS
+#define	CMD_TBL_EEPROM	MK_CMD_TBL_ENTRY(   \
+	"eeprom",	3,	6,	1,	do_eeprom,			\
+	"eeprom  - EEPROM sub-system\n",					\
+	"read  devaddr addr off cnt\n"						\
+	"eeprom write devaddr addr off cnt\n"					\
+	"       - read/write `cnt' bytes from `devaddr` EEPROM at offset `off'\n" \
+),
+#else /* One EEPROM */
+#define	CMD_TBL_EEPROM	MK_CMD_TBL_ENTRY(					\
+	"eeprom",	3,	5,	1,	do_eeprom,			\
+	"eeprom  - EEPROM sub-system\n",					\
+	"read  addr off cnt\n"							\
+	"eeprom write addr off cnt\n"						\
+	"       - read/write `cnt' bytes at EEPROM offset `off'\n"		\
+),
+#endif /* CFG_I2C_MULTI_EEPROMS */
+int do_eeprom (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+#else
+
+#define CMD_TBL_EEPROM
+
+#endif	/* CFG_CMD_EEPROM */
+
+#endif	/* _CMD_EEPROM_H */
diff --git a/include/cmd_elf.h b/include/cmd_elf.h
new file mode 100644
index 0000000..64c52bc
--- /dev/null
+++ b/include/cmd_elf.h
@@ -0,0 +1,34 @@
+/*
+ * Elf Load/Boot Functions
+ */
+#ifndef	_CMD_ELF_H
+#define _CMD_ELF_H
+
+#if (CONFIG_COMMANDS & CFG_CMD_ELF)
+
+#define CMD_TBL_BOOTELF MK_CMD_TBL_ENTRY(                               \
+        "bootelf",      7,      2,      0,      do_bootelf,             \
+        "bootelf - Boot from an ELF image in memory\n",                 \
+        " [address] - load address of ELF image.\n"                     \
+        ),
+
+#define CMD_TBL_BOOTVX  MK_CMD_TBL_ENTRY(                               \
+        "bootvx",       6,      2,      0,      do_bootvx,              \
+        "bootvx  - Boot vxWorks from an ELF image\n",                   \
+        " [address] - load address of vxWorks ELF image.\n"             \
+        ),
+
+extern int do_bootelf (cmd_tbl_t *, int, int, char *[]);
+extern int do_bootvx (cmd_tbl_t *, int, int, char *[]);
+
+/* Supporting routines */
+extern int           valid_elf_image (unsigned long);
+extern unsigned long load_elf_image (unsigned long);
+
+#else	/* ! CFG_CMD_ELF */
+
+#define CMD_TBL_BOOTELF
+#define CMD_TBL_BOOTVX
+
+#endif	/* CFG_CMD_ELF */
+#endif	/* _CMD_ELF_H */
diff --git a/include/cmd_fdc.h b/include/cmd_fdc.h
new file mode 100644
index 0000000..f51df1f
--- /dev/null
+++ b/include/cmd_fdc.h
@@ -0,0 +1,47 @@
+/*
+ * (C) Copyright 2001
+ * Denis Peter, MPL AG, d.peter@mpl.ch
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ * Floppy support
+ */
+#ifndef	_CMD_FDC_H
+#define	_CMD_FDC_H
+
+#include <common.h>
+#include <command.h>
+
+
+#if (CONFIG_COMMANDS & CFG_CMD_FDC)
+
+#define CMD_TBL_FDC	MK_CMD_TBL_ENTRY(					\
+	"fdcboot", 4,	3,	1,	do_fdcboot,				\
+	"fdcboot - boot from floppy device\n",					\
+	"loadAddr drive\n"							\
+),
+int do_fdcboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+
+#else
+#define CMD_TBL_FDC
+#endif
+
+#endif	/* _CMD_FDC_H */
diff --git a/include/cmd_flash.h b/include/cmd_flash.h
new file mode 100644
index 0000000..6f5c6cd
--- /dev/null
+++ b/include/cmd_flash.h
@@ -0,0 +1,73 @@
+/*
+ * (C) Copyright 2000
+ * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ * FLASH support
+ */
+#ifndef	_CMD_FLASH_H
+#define	_CMD_FLASH_H
+
+#if (CONFIG_COMMANDS & CFG_CMD_FLASH)
+#define	CMD_TBL_FLINFO	MK_CMD_TBL_ENTRY(					\
+	"flinfo",	3,	2,	1,	do_flinfo,			\
+	"flinfo  - print FLASH memory information\n",				\
+	"\n    - print information for all FLASH memory banks\n"		\
+	"flinfo N\n    - print information for FLASH memory bank # N\n"		\
+),
+
+#define	CMD_TBL_FLERASE	MK_CMD_TBL_ENTRY(					\
+	"erase",	3,	3,	1,	do_flerase,			\
+	"erase   - erase FLASH memory\n",					\
+	"start end\n"								\
+	"    - erase FLASH from addr 'start' to addr 'end'\n"			\
+	"erase N:SF[-SL]\n    - erase sectors SF-SL in FLASH bank # N\n"	\
+	"erase bank N\n    - erase FLASH bank # N\n"				\
+	"erase all\n    - erase all FLASH banks\n"				\
+),
+
+#define	CMD_TBL_PROTECT	MK_CMD_TBL_ENTRY(					\
+	"protect",	4,	4,	1,	do_protect,			\
+	"protect - enable or disable FLASH write protection\n",			\
+	"on  start end\n"							\
+	"    - protect FLASH from addr 'start' to addr 'end'\n"			\
+	"protect on  N:SF[-SL]\n"						\
+	"    - protect sectors SF-SL in FLASH bank # N\n"			\
+	"protect on  bank N\n    - protect FLASH bank # N\n"			\
+	"protect on  all\n    - protect all FLASH banks\n"			\
+	"protect off start end\n"						\
+	"    - make FLASH from addr 'start' to addr 'end' writable\n"		\
+	"protect off N:SF[-SL]\n"						\
+	"    - make sectors SF-SL writable in FLASH bank # N\n"			\
+	"protect off bank N\n    - make FLASH bank # N writable\n"		\
+	"protect off all\n    - make all FLASH banks writable\n"		\
+),
+int do_flinfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_flerase(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_protect(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+#else
+#define CMD_TBL_FLINFO
+#define CMD_TBL_FLERASE
+#define CMD_TBL_PROTECT
+#endif	/* CFG_CMD_FLASH */
+
+#endif	/* _CMD_FLASH_H */
diff --git a/include/cmd_i2c.h b/include/cmd_i2c.h
new file mode 100644
index 0000000..7334fd4
--- /dev/null
+++ b/include/cmd_i2c.h
@@ -0,0 +1,103 @@
+/*
+ * (C) Copyright 2001
+ * Gerald Van Baren, Custom IDEAS, vanbaren@cideas.com.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ * I2C Functions
+ */
+#ifndef	_CMD_I2C_H
+#define _CMD_I2C_H
+
+#if (CONFIG_COMMANDS & CFG_CMD_I2C)
+#define CMD_TBL_IMD	MK_CMD_TBL_ENTRY(				\
+	"imd",		3,	4,	1,	do_i2c_md,		\
+	"imd     - i2c memory display\n",				\
+	"chip address[.0, .1, .2] [# of objects]\n    - i2c memory display\n" \
+),
+#define CMD_TBL_IMM	MK_CMD_TBL_ENTRY(				\
+ 	"imm",		3,	3,	1,	do_i2c_mm,		\
+	"imm     - i2c memory modify (auto-incrementing)\n",		\
+	"chip address[.0, .1, .2]\n"					\
+	"    - memory modify, auto increment address\n"			\
+),
+#define CMD_TBL_INM	MK_CMD_TBL_ENTRY(				\
+	"inm",		3,	3,	1,	do_i2c_nm,		\
+	"inm     - memory modify (constant address)\n",			\
+	"chip address[.0, .1, .2]\n    - memory modify, read and keep address\n" \
+),
+#define CMD_TBL_IMW	MK_CMD_TBL_ENTRY(				\
+	"imw",		3,	5,	1,	do_i2c_mw,		\
+	"imw     - memory write (fill)\n",				\
+	"chip address[.0, .1, .2] value [count]\n    - memory write (fill)\n" \
+),
+#define	CMD_TBL_ICRC	MK_CMD_TBL_ENTRY(				\
+	"icrc32",	4,	5,	1,	do_i2c_crc,		\
+	"icrc32  - checksum calculation\n",				\
+	"chip address[.0, .1, .2] count\n    - compute CRC32 checksum\n" \
+),
+#define CMD_TBL_IPROBE	MK_CMD_TBL_ENTRY(				\
+	"iprobe",	3,	1,	1,	do_i2c_probe,		\
+	"iprobe  - probe to discover valid I2C chip addresses\n",	\
+	"\n    -discover valid I2C chip addresses\n"			\
+),
+/*
+ * Require full name for "iloop" because it is an infinite loop!
+ */
+#define CMD_TBL_ILOOP	MK_CMD_TBL_ENTRY(				\
+	"iloop",	5,	5,	1,	do_i2c_loop,		\
+	"iloop   - infinite loop on address range\n",			\
+	"chip address[.0, .1, .2] [# of objects]\n"			\
+	"    - loop, reading a set of addresses\n"			\
+),
+#if (CONFIG_COMMANDS & CFG_CMD_SDRAM)
+#define CMD_TBL_ISDRAM	MK_CMD_TBL_ENTRY(				\
+	"isdram",	6,	2,	1,	do_sdram,		\
+	"isdram  - print SDRAM configuration information\n",		\
+	"chip\n    - print SDRAM configuration information\n"		\
+	"      (valid chip values 50..57)\n"				\
+),
+#else
+#define CMD_TBL_ISDRAM
+#endif
+
+
+int do_i2c_md(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_i2c_mm(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_i2c_nm(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_i2c_mw(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_i2c_crc(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_i2c_probe(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_i2c_loop(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_sdram(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+
+#else
+#define CMD_TBL_IMD
+#define CMD_TBL_IMM
+#define CMD_TBL_INM
+#define CMD_TBL_IMW
+#define CMD_TBL_ICRC
+#define CMD_TBL_IPROBE
+#define CMD_TBL_ILOOP
+#define CMD_TBL_ISDRAM
+#endif	/* CFG_CMD_MEMORY */
+
+#endif	/* _CMD_I2C_H */
diff --git a/include/cmd_ide.h b/include/cmd_ide.h
new file mode 100644
index 0000000..0433c20
--- /dev/null
+++ b/include/cmd_ide.h
@@ -0,0 +1,62 @@
+/*
+ * (C) Copyright 2000
+ * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ * IDE support
+ */
+#ifndef	_CMD_IDE_H
+#define	_CMD_IDE_H
+
+#include <common.h>
+#include <command.h>
+
+
+#if (CONFIG_COMMANDS & CFG_CMD_IDE)
+#define	CMD_TBL_IDE	MK_CMD_TBL_ENTRY(					\
+	"ide",	3,	5,	1,	do_ide,					\
+	"ide     - IDE sub-system\n",						\
+	"reset - reset IDE controller\n"					\
+	"ide info  - show available IDE devices\n"				\
+	"ide device [dev] - show or set current device\n"			\
+	"ide part [dev] - print partition table of one or all IDE devices\n"	\
+	"ide read  addr blk# cnt\n"						\
+	"ide write addr blk# cnt - read/write `cnt'"				\
+	" blocks starting at block `blk#'\n"					\
+	"    to/from memory address `addr'\n"					\
+),
+
+#define CMD_TBL_DISK	MK_CMD_TBL_ENTRY(					\
+	"diskboot", 4,	3,	1,	do_diskboot,				\
+	"diskboot- boot from IDE device\n",					\
+	"loadAddr dev:part\n"							\
+),
+
+int do_ide (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_diskboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+
+#else
+#define CMD_TBL_IDE
+#define CMD_TBL_DISK
+#endif
+
+#endif	/* _CMD_IDE_H */
diff --git a/include/cmd_immap.h b/include/cmd_immap.h
new file mode 100644
index 0000000..9febee2
--- /dev/null
+++ b/include/cmd_immap.h
@@ -0,0 +1,181 @@
+/*
+ * (C) Copyright 2000
+ * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ * PowerPC 8xx/8260 Internal Memory Map commands
+ */
+#ifndef	_CMD_IMMAP_H
+#define	_CMD_IMMAP_H
+
+#if (CONFIG_COMMANDS & CFG_CMD_IMMAP) && \
+    (defined(CONFIG_8xx) || defined(CONFIG_8260))
+
+#define	CMD_TBL_SIUINFO		MK_CMD_TBL_ENTRY(			\
+	"siuinfo",	3,	1,	1,	do_siuinfo,		\
+	"siuinfo - print System Interface Unit (SIU) registers\n",	\
+	NULL								\
+),
+
+#define CMD_TBL_MEMCINFO	MK_CMD_TBL_ENTRY(			\
+	"memcinfo",	4,	1,	1,	do_memcinfo,		\
+	"memcinfo- print Memory Controller registers\n",		\
+	NULL								\
+),
+
+#define CMD_TBL_SITINFO		MK_CMD_TBL_ENTRY(			\
+	"sitinfo",	3,	1,	1,	do_sitinfo,		\
+	"sitinfo - print System Integration Timers (SIT) registers\n",	\
+	NULL								\
+),
+
+#ifdef CONFIG_8260
+#define	CMD_TBL_ICINFO		MK_CMD_TBL_ENTRY(			\
+	"icinfo",	3,	1,	1,	do_icinfo,		\
+	"icinfo  - print Interrupt Controller registers\n",		\
+	NULL								\
+),
+#endif
+
+#define	CMD_TBL_CARINFO		MK_CMD_TBL_ENTRY(			\
+	"carinfo",	3,	1,	1,	do_carinfo,		\
+	"carinfo - print Clocks and Reset registers\n",			\
+	NULL								\
+),
+
+#define	CMD_TBL_IOPINFO		MK_CMD_TBL_ENTRY(			\
+	"iopinfo",	4,	1,	1,	do_iopinfo,		\
+	"iopinfo - print I/O Port registers\n",				\
+	NULL								\
+),
+
+#define	CMD_TBL_IOPSET 		MK_CMD_TBL_ENTRY(			\
+	"iopset",	4,	5,	0,	do_iopset,		\
+	"iopset - set I/O Port registers\n",				\
+	"PORT PIN CMD VALUE\nPORT: A-D, PIN: 0-31, CMD: [dat|dir|odr|sor], VALUE: 0|1" \
+),
+
+#define	CMD_TBL_DMAINFO		MK_CMD_TBL_ENTRY(			\
+	"dmainfo",	3,	1,	1,	do_dmainfo,		\
+	"dmainfo - print SDMA/IDMA registers\n",			\
+	NULL								\
+),
+
+#define	CMD_TBL_FCCINFO		MK_CMD_TBL_ENTRY(			\
+	"fccinfo",	3,	1,	1,	do_fccinfo,		\
+	"fccinfo - print FCC registers\n",				\
+	NULL								\
+),
+
+#define	CMD_TBL_BRGINFO		MK_CMD_TBL_ENTRY(			\
+	"brginfo",	3,	1,	1,	do_brginfo,		\
+	"brginfo - print Baud Rate Generator (BRG) registers\n",	\
+	NULL								\
+),
+
+#define	CMD_TBL_I2CINFO		MK_CMD_TBL_ENTRY(			\
+	"i2cinfo",	4,	1,	1,	do_i2cinfo,		\
+	"i2cinfo - print I2C registers\n",				\
+	NULL								\
+),
+
+#define	CMD_TBL_SCCINFO		MK_CMD_TBL_ENTRY(			\
+	"sccinfo",	3,	1,	1,	do_sccinfo,		\
+	"sccinfo - print SCC registers\n",				\
+	NULL								\
+),
+
+#define	CMD_TBL_SMCINFO		MK_CMD_TBL_ENTRY(			\
+	"smcinfo",	3,	1,	1,	do_smcinfo,		\
+	"smcinfo - print SMC registers\n",				\
+	NULL								\
+),
+
+#define	CMD_TBL_SPIINFO		MK_CMD_TBL_ENTRY(			\
+	"spiinfo",	3,	1,	1,	do_spiinfo,		\
+	"spiinfo - print Serial Peripheral Interface (SPI) registers\n",\
+	NULL								\
+),
+
+#define	CMD_TBL_MUXINFO		MK_CMD_TBL_ENTRY(			\
+	"muxinfo",	3,	1,	1,	do_muxinfo,		\
+	"muxinfo - print CPM Multiplexing registers\n",			\
+	NULL								\
+),
+
+#define	CMD_TBL_SIINFO		MK_CMD_TBL_ENTRY(			\
+	"siinfo",	3,	1,	1,	do_siinfo,		\
+	"siinfo  - print Serial Interface (SI) registers\n",		\
+	NULL								\
+),
+
+#define	CMD_TBL_MCCINFO		MK_CMD_TBL_ENTRY(			\
+	"mccinfo",	3,	1,	1,	do_mccinfo,		\
+	"mccinfo - print MCC registers\n",				\
+	NULL								\
+),
+
+int do_siuinfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_memcinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_sitinfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+#ifdef CONFIG_8260
+int do_icinfo  (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+#endif
+int do_carinfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_iopinfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_iopset  (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_dmainfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_fccinfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_brginfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_i2cinfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_sccinfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_smcinfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_spiinfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_muxinfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_siinfo  (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_mccinfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+
+#else
+
+#define CMD_TBL_SIUINFO
+#define CMD_TBL_MEMCINFO
+#define CMD_TBL_SITINFO
+#ifdef CONFIG_8260
+#define	CMD_TBL_ICINFO
+#endif
+#define	CMD_TBL_CARINFO
+#define	CMD_TBL_IOPINFO
+#define	CMD_TBL_IOPSET
+#define	CMD_TBL_DMAINFO
+#define	CMD_TBL_FCCINFO
+#define	CMD_TBL_BRGINFO
+#define	CMD_TBL_I2CINFO
+#define	CMD_TBL_SCCINFO
+#define	CMD_TBL_SMCINFO
+#define	CMD_TBL_SPIINFO
+#define	CMD_TBL_MUXINFO
+#define	CMD_TBL_SIINFO
+#define	CMD_TBL_MCCINFO
+
+#endif	/* CFG_CMD_IMMAP && (CONFIG_8xx || CONFIG_8260) */
+
+#endif	/* _CMD_IMMAP_H */
diff --git a/include/cmd_mem.h b/include/cmd_mem.h
new file mode 100644
index 0000000..aa0c540
--- /dev/null
+++ b/include/cmd_mem.h
@@ -0,0 +1,112 @@
+/*
+ * (C) Copyright 2000
+ * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ * Memory Functions
+ */
+#ifndef	_CMD_MEM_H
+#define _CMD_MEM_H
+
+#if (CONFIG_COMMANDS & CFG_CMD_MEMORY)
+#define CMD_TBL_MD	MK_CMD_TBL_ENTRY(					\
+	"md",		2,	3,	1,	do_mem_md,			\
+	"md      - memory display\n",						\
+	"[.b, .w, .l] address [# of objects]\n    - memory display\n"		\
+),
+#define CMD_TBL_MM	MK_CMD_TBL_ENTRY(					\
+ 	"mm",		2,	2,	1,	do_mem_mm,			\
+	"mm      - memory modify (auto-incrementing)\n",			\
+	"[.b, .w, .l] address\n"						\
+	"    - memory modify, auto increment address\n"				\
+),
+#define CMD_TBL_NM	MK_CMD_TBL_ENTRY(					\
+	"nm",		2,	2,	1,	do_mem_nm,			\
+	"nm      - memory modify (constant address)\n",				\
+	"[.b, .w, .l] address\n    - memory modify, read and keep address\n"	\
+),
+#define CMD_TBL_MW	MK_CMD_TBL_ENTRY(					\
+	"mw",		2,	4,	1,	do_mem_mw,			\
+	"mw      - memory write (fill)\n",					\
+	"[.b, .w, .l] address value [count]\n    - write memory\n"		\
+),
+#define	CMD_TBL_CP	MK_CMD_TBL_ENTRY(					\
+	"cp",		2,	4,	1,	do_mem_cp,			\
+	"cp      - memory copy\n",						\
+	"[.b, .w, .l] source target count\n    - copy memory\n"			\
+),
+#define	CMD_TBL_CMP	MK_CMD_TBL_ENTRY(					\
+	"cmp",		3,	4,	1,	do_mem_cmp,			\
+	"cmp     - memory compare\n",						\
+	"[.b, .w, .l] addr1 addr2 count\n    - compare memory\n"		\
+),
+#define	CMD_TBL_CRC	MK_CMD_TBL_ENTRY(					\
+	"crc32",	3,	4,	1,	do_mem_crc,			\
+	"crc32   - checksum calculation\n",					\
+	"address count [addr]\n    - compute CRC32 checksum [save at addr]\n"	\
+),
+#define CMD_TBL_BASE	MK_CMD_TBL_ENTRY(					\
+	"base",		2,	2,	1,	do_mem_base,			\
+	"base    - print or set address offset\n",				\
+	"\n    - print address offset for memory commands\n"			\
+	"base off\n    - set address offset for memory commands to 'off'\n"	\
+),
+/*
+ * Require full name for "loop" and "mtest" because these are infinite loops!
+ */
+#define CMD_TBL_LOOP	MK_CMD_TBL_ENTRY(					\
+	"loop",		4,	3,	1,	do_mem_loop,			\
+	"loop    - infinite loop on address range\n",				\
+	"[.b, .w, .l] address number_of_objects\n"				\
+	"    - loop on a set of addresses\n"					\
+),
+#define CMD_TBL_MTEST	MK_CMD_TBL_ENTRY(					\
+	"mtest",	5,	4,	1,	do_mem_mtest,			\
+	"mtest   - simple RAM test\n",						\
+	"[start [end [pattern]]]\n"						\
+	"    - simple RAM read/write test\n"					\
+),
+int do_mem_md    (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_mem_mm    (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_mem_nm    (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_mem_mw    (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_mem_cp    (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_mem_cmp   (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_mem_crc   (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_mem_base  (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_mem_loop  (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_mem_mtest (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+
+#else
+#define CMD_TBL_MD
+#define CMD_TBL_MM
+#define CMD_TBL_NM
+#define CMD_TBL_MW
+#define CMD_TBL_CP
+#define CMD_TBL_CMP
+#define CMD_TBL_CRC
+#define CMD_TBL_BASE
+#define CMD_TBL_LOOP
+#define CMD_TBL_MTEST
+#endif	/* CFG_CMD_MEMORY */
+
+#endif	/* _CMD_MEM_H */
diff --git a/include/cmd_mii.h b/include/cmd_mii.h
new file mode 100644
index 0000000..7ded0cc
--- /dev/null
+++ b/include/cmd_mii.h
@@ -0,0 +1,46 @@
+/*
+ * (C) Copyright 2001
+ * Gerald Van Baren, Custom IDEAS, vanbaren@cideas.com
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ * MII Functions
+ */
+#ifndef	_CMD_MII_H
+#define _CMD_MII_H
+
+#if (CONFIG_COMMANDS & CFG_CMD_MII)
+#define CMD_TBL_MII	MK_CMD_TBL_ENTRY(				\
+	"mii",		3,	5,	1,	do_mii,			\
+	"mii     - MII utility commands\n",				\
+	"\
+info  <addr>              - display MII PHY info\n\
+mii read  <addr> <reg>        - read  MII PHY <addr> register <reg>\n\
+mii write <addr> <reg> <data> - write MII PHY <addr> register <reg>\n"	\
+),
+
+int do_mii       (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+
+#else
+#define CMD_TBL_MII
+#endif	/* CFG_CMD_MII */
+
+#endif	/* _CMD_MII_H */
diff --git a/include/cmd_misc.h b/include/cmd_misc.h
new file mode 100644
index 0000000..873f5c4
--- /dev/null
+++ b/include/cmd_misc.h
@@ -0,0 +1,58 @@
+/*
+ * (C) Copyright 2000
+ * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ * Miscellanious commands
+ */
+#ifndef	_CMD_MISC_H
+#define	_CMD_MISC_H
+
+#if (CONFIG_COMMANDS & CFG_CMD_IRQ)
+#define CMD_TBL_IRQINFO	MK_CMD_TBL_ENTRY(					\
+	"irqinfo",      3,	1,	1,	do_irqinfo,			\
+	"irqinfo - print information about IRQs\n",				\
+	NULL									\
+),
+
+/* Implemented in $(CPU)/interrupts.c */
+int do_irqinfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+
+#else
+#define CMD_TBL_IRQINFO
+#endif  /* CONFIG_COMMANDS & CFG_CMD_IRQ */
+
+#if (CONFIG_COMMANDS & CFG_CMD_MISC)
+#define	CMD_TBL_MISC	MK_CMD_TBL_ENTRY(					\
+	"sleep",	5,	2,	2,	do_sleep,			\
+	"sleep   - delay execution for some time\n",				\
+	"N\n"									\
+	"    - delay execution for N seconds (N is _decimal_ !!!)\n"		\
+),
+
+/* Implemented in common/cmd_misc.c */
+int do_sleep (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+#else
+#define CMD_TBL_MISC
+#endif	/* CFG_CMD_MISC */
+
+#endif	/* _CMD_MISC_H */
diff --git a/include/cmd_net.h b/include/cmd_net.h
new file mode 100644
index 0000000..2fa848b
--- /dev/null
+++ b/include/cmd_net.h
@@ -0,0 +1,74 @@
+/*
+ * (C) Copyright 2000
+ * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ * Network boot support
+ */
+#ifndef	_CMD_NET_H
+#define	_CMD_NET_H
+
+#if (CONFIG_COMMANDS & CFG_CMD_NET)
+#define	CMD_TBL_BOOTP	MK_CMD_TBL_ENTRY(					\
+	"bootp",	5,	3,	1,	do_bootp,			\
+	"bootp   - boot image via network using BootP/TFTP protocol\n",		\
+	"[loadAddress] [bootfilename]\n" 		 			\
+),
+int do_bootp (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+#define	CMD_TBL_TFTPB	MK_CMD_TBL_ENTRY(					\
+	"tftpboot",	4,	3,	1,	do_tftpb,			\
+	"tftpboot- boot image via network using TFTP protocol\n"		\
+	"               and env variables ipaddr and serverip\n",		\
+	"[loadAddress] [bootfilename]\n" 		 			\
+),
+
+int do_tftpb (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+
+
+#define	CMD_TBL_RARPB	MK_CMD_TBL_ENTRY(					\
+	"rarpboot",	4,	3,	1,	do_rarpb,			\
+	"rarpboot- boot image via network using RARP/TFTP protocol\n",		\
+	"[loadAddress] [bootfilename]\n" 		 			\
+),
+
+int do_rarpb (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+
+#if (CONFIG_COMMANDS & CFG_CMD_DHCP)
+#define	CMD_TBL_DHCP	MK_CMD_TBL_ENTRY(					\
+	"dhcp",		4,	3,	1,	do_dhcp,			\
+	"dhcp    - invoke DHCP client to obtain IP/boot params\n",		\
+	"\n" 						 			\
+),
+
+int do_dhcp (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+#else
+#define CMD_TBL_DHCP
+#endif	/* CFG_CMD_DHCP */
+
+#else
+#define CMD_TBL_BOOTP
+#define CMD_TBL_TFTPB
+#define CMD_TBL_RARPB
+#define CMD_TBL_DHCP
+#endif	/* CFG_CMD_NET */
+
+#endif
diff --git a/include/cmd_nvedit.h b/include/cmd_nvedit.h
new file mode 100644
index 0000000..345127d
--- /dev/null
+++ b/include/cmd_nvedit.h
@@ -0,0 +1,91 @@
+/*
+ * (C) Copyright 2000
+ * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ * Boot support
+ */
+#ifndef	_CMD_NVEDIT_H
+#define	_CMD_NVEDIT_H
+
+#define	CMD_TBL_PRINTENV	MK_CMD_TBL_ENTRY(				\
+	"printenv",	4,	CFG_MAXARGS,	1,	do_printenv,		\
+	"printenv- print environment variables\n",				\
+	"\n    - print values of all environment variables\n"			\
+	"printenv name ...\n"							\
+	"    - print value of environment variable 'name'\n"			\
+),
+int do_printenv (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+
+#define CMD_TBL_SETENV		MK_CMD_TBL_ENTRY(				\
+	"setenv",	6,	CFG_MAXARGS,	0,	do_setenv,		\
+	"setenv  - set environment variables\n",				\
+	"name value ...\n"							\
+	"    - set environment variable 'name' to 'value ...'\n"		\
+	"setenv name\n"								\
+	"    - delete environment variable 'name'\n"				\
+),
+int do_setenv   (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+
+#if ((CONFIG_COMMANDS & (CFG_CMD_ENV|CFG_CMD_FLASH)) == (CFG_CMD_ENV|CFG_CMD_FLASH))
+#define	CMD_TBL_SAVEENV		MK_CMD_TBL_ENTRY(				\
+	"saveenv",	4,	1,		0,	do_saveenv,		\
+	"saveenv - save environment variables to persistent storage\n",		\
+	NULL									\
+),
+int do_saveenv  (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+#else
+#define CMD_TBL_SAVEENV
+#endif	/* CFG_CMD_ENV */
+
+#if (CONFIG_COMMANDS & CFG_CMD_ASKENV)
+#define CMD_TBL_ASKENV		MK_CMD_TBL_ENTRY(				\
+	"askenv",	8,	CFG_MAXARGS,	1,	do_askenv,		\
+	"askenv  - get environment variables from stdin\n",			\
+	"name [message] [size]\n"						\
+	"    - get environment variable 'name' from stdin (max 'size' chars)\n"	\
+	"askenv name\n"								\
+	"    - get environment variable 'name' from stdin\n"			\
+	"askenv name size\n"							\
+	"    - get environment variable 'name' from stdin (max 'size' chars)\n"	\
+	"askenv name [message] size\n"						\
+	"    - display 'message' string and get environment variable 'name'"	\
+	"from stdin (max 'size' chars)\n"					\
+),
+int do_askenv   (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+#else
+#define CMD_TBL_ASKENV
+#endif	/* CFG_CMD_ASKENV */
+
+#if (CONFIG_COMMANDS & CFG_CMD_RUN)
+#define	CMD_TBL_RUN	MK_CMD_TBL_ENTRY(					\
+	"run",	3,	CFG_MAXARGS,	1,	do_run,				\
+	"run     - run commands in an environment variable\n",			\
+	"var [...]\n"								\
+	"    - run the commands in the environment variable(s) 'var'\n"		\
+),
+int do_run (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+#else
+#define CMD_TBL_RUN
+#endif  /* CFG_CMD_RUN */
+
+#endif	/* _CMD_NVEDIT_H */
diff --git a/include/cmd_pcmcia.h b/include/cmd_pcmcia.h
new file mode 100644
index 0000000..24a207b
--- /dev/null
+++ b/include/cmd_pcmcia.h
@@ -0,0 +1,44 @@
+/*
+ * (C) Copyright 2000
+ * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ * PCMCIA support
+ */
+#ifndef	_CMD_PCMCIA_H
+#define	_CMD_PCMCIA_H
+
+#if (CONFIG_COMMANDS & CFG_CMD_PCMCIA)
+#define	CMD_TBL_PINIT	MK_CMD_TBL_ENTRY(					\
+	"pinit",	4,	2,	1,	do_pinit,			\
+	"pinit   - PCMCIA sub-system\n",					\
+	"on  - power on PCMCIA socket\n"					\
+	"pinit off - power off PCMCIA socket\n"					\
+),
+
+int do_pinit (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+#else
+#define CMD_TBL_PINIT
+#endif
+
+#endif	/* _CMD_PCMCIA_H */
+
diff --git a/include/cmd_reginfo.h b/include/cmd_reginfo.h
new file mode 100644
index 0000000..d4e995d
--- /dev/null
+++ b/include/cmd_reginfo.h
@@ -0,0 +1,40 @@
+/*
+ * (C) Copyright 2000
+ * Subodh Nijsure, SkyStream Networks, snijsure@skystream.com
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#ifndef	_CMD_REGINFO_H_
+#define	_CMD_REGINFO_H_
+
+#if (defined(CONFIG_8xx) || defined(CONFIG_405GP)) && \
+    (CONFIG_COMMANDS & CFG_CMD_REGINFO)
+#define	CMD_TBL_REGINFO	MK_CMD_TBL_ENTRY(					\
+	"reginfo",	3,	2,	1,	do_reginfo,			\
+	"reginfo - print register information\n",				\
+),
+
+int do_reginfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+
+#else
+#define CMD_TBL_REGINFO
+#endif	/* CONFIG_8xx && CFG_CMD_REGINFO */
+
+#endif	/* _CMD_REGINFO_H_ */
diff --git a/include/cmd_rtc.h b/include/cmd_rtc.h
new file mode 100644
index 0000000..2149f78
--- /dev/null
+++ b/include/cmd_rtc.h
@@ -0,0 +1,50 @@
+/*
+ * (C) Copyright 2001
+ * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#ifndef _CMD_RTC_H_
+#define _CMD_RTC_H_
+
+#include <common.h>
+#include <command.h>
+
+#if (CONFIG_COMMANDS & CFG_CMD_DATE)
+
+#define CMD_TBL_DATE	MK_CMD_TBL_ENTRY(					\
+	"date", 3,	2,	1,	do_date,				\
+	"date    - get/set/reset date & time\n",				\
+	"[MMDDhhmm[[CC]YY][.ss]]\ndate reset\n"					\
+	"  - without arguments: print date & time\n"				\
+	"  - with numeric argument: set the system date & time\n"		\
+	"  - with 'reset' argument: reset the RTC\n"				\
+),
+
+int do_date (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+
+#else
+
+#define CMD_TBL_DATE
+
+#endif	/* CFG_CMD_DATE */
+
+
+#endif	/* _CMD_RTC_H_ */
diff --git a/include/cmd_scsi.h b/include/cmd_scsi.h
new file mode 100644
index 0000000..4dca059
--- /dev/null
+++ b/include/cmd_scsi.h
@@ -0,0 +1,62 @@
+/*
+ * (C) Copyright 2001
+ * Denis Peter, MPL AG Switzerland
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ */
+#ifndef	_CMD_SCSI_H
+#define	_CMD_SCSI_H
+
+#include <common.h>
+#include <command.h>
+
+
+#if (CONFIG_COMMANDS & CFG_CMD_SCSI)
+
+#define	CMD_TBL_SCSI	MK_CMD_TBL_ENTRY(					\
+	"scsi",	4,	5,	1,	do_scsi,				\
+	"scsi    - SCSI sub-system\n",						\
+	"reset - reset SCSI controller\n"					\
+	"scsi info  - show available SCSI devices\n"				\
+	"scsi scan  - (re-)scan SCSI bus\n"					\
+	"scsi device [dev] - show or set current device\n"			\
+	"scsi part [dev] - print partition table of one or all SCSI devices\n"	\
+	"scsi read addr blk# cnt - read `cnt' blocks starting at block `blk#'\n"\
+	"     to memory address `addr'\n"					\
+),
+
+
+#define	CMD_TBL_SCSIBOOT	MK_CMD_TBL_ENTRY(					\
+	"scsiboot",	5,	3,	1,	do_scsiboot,					\
+	"scsiboot- boot from SCSI device\n",						\
+	"loadAddr dev:part\n"			\
+),
+
+int do_scsi (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_scsiboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+
+
+#else
+#define CMD_TBL_SCSI
+#define CMD_TBL_SCSIBOOT
+#endif
+
+#endif	/* _CMD_SCSI_H */
+
diff --git a/include/cmd_usb.h b/include/cmd_usb.h
new file mode 100644
index 0000000..b7b4e83
--- /dev/null
+++ b/include/cmd_usb.h
@@ -0,0 +1,77 @@
+/*
+ * (C) Copyright 2001
+ * Denis Peter, MPL AG Switzerland
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ */
+#ifndef	_CMD_USB_H
+#define	_CMD_USB_H
+
+#include <common.h>
+#include <command.h>
+
+
+#if (CONFIG_COMMANDS & CFG_CMD_USB)
+
+#ifdef CONFIG_USB_STORAGE
+#define	CMD_TBL_USB	MK_CMD_TBL_ENTRY(					\
+	"usb",	4,	5,	1,	do_usb,				\
+	"usb     - USB sub-system\n",						\
+	"reset - reset (rescan) USB controller\n"					\
+	"usb  stop [f]  - stop USB [f]=force stop\n"				\
+	"usb  tree  - show USB device tree\n"				\
+	"usb  info [dev] - show available USB devices\n"				\
+	"usb  scan  - (re-)scan USB bus for storage devices\n"					\
+	"usb  device [dev] - show or set current USB storage device\n"			\
+	"usb  part [dev] - print partition table of one or all USB storage devices\n"	\
+	"usb  read addr blk# cnt - read `cnt' blocks starting at block `blk#'\n"\
+	"     to memory address `addr'\n"					\
+),
+
+
+#define	CMD_TBL_USBBOOT	MK_CMD_TBL_ENTRY(					\
+	"usbboot",	5,	3,	1,	do_usbboot,					\
+	"usbboot - boot from USB device\n",						\
+	"loadAddr dev:part\n"			\
+),
+
+#else
+#define	CMD_TBL_USB	MK_CMD_TBL_ENTRY(					\
+	"usb",	4,	5,	1,	do_usb,				\
+	"usb     - USB sub-system\n",						\
+	"reset - reset (rescan) USB controller\n"					\
+	"usb  tree  - show USB device tree\n"				\
+	"usb  info [dev] - show available USB devices\n"				\
+),
+
+#define CMD_TBL_USBBOOT
+#endif
+
+int do_usb (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_usbboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+
+
+#else
+#define CMD_TBL_USB
+#define CMD_TBL_USBBOOT
+#endif
+
+#endif	/* _CMD_USB_H */
+
diff --git a/include/command.h b/include/command.h
new file mode 100644
index 0000000..9453c0d
--- /dev/null
+++ b/include/command.h
@@ -0,0 +1,90 @@
+/*
+ * (C) Copyright 2000
+ * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ *  Definitions for Command Processor
+ */
+#ifndef __COMMAND_H
+#define __COMMAND_H
+
+#ifndef NULL
+#define NULL	0
+#endif
+
+#ifndef	__ASSEMBLY__
+/*
+ * Monitor Command Table
+ */
+
+struct cmd_tbl_s {
+	char		*name;		/* Command Name			*/
+	int		lmin;		/* minimum abbreviated length	*/
+	int		maxargs;	/* maximum number of arguments	*/
+	int		repeatable;	/* autorepeat allowed?		*/
+					/* Implementation function	*/
+	int		(*cmd)(struct cmd_tbl_s *, int, int, char *[]);
+	char		*usage;		/* Usage message	(short)	*/
+#ifdef	CFG_LONGHELP
+	char		*help;		/* Help  message	(long)	*/
+#endif
+};
+
+typedef struct cmd_tbl_s	cmd_tbl_t;
+
+extern	cmd_tbl_t cmd_tbl[];
+
+#ifdef	CFG_LONGHELP
+#define	MK_CMD_TBL_ENTRY(name,lmin,maxargs,rep,cmd,usage,help)	\
+				{ name, lmin, maxargs, rep, cmd, usage, help }
+#else	/* no help info */
+#define	MK_CMD_TBL_ENTRY(name,lmin,maxargs,rep,cmd,usage,help)	\
+				{ name, lmin, maxargs, rep, cmd, usage }
+#endif
+
+/* common/command.c */
+cmd_tbl_t *find_cmd(const char *cmd);
+
+/*
+ * Monitor Command
+ *
+ * All commands use a common argument format:
+ *
+ * void function (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+ */
+
+typedef	void 	command_t (cmd_tbl_t *, int, int, char *[]);
+
+#endif	/* __ASSEMBLY__ */
+
+/*
+ * Command Flags:
+ */
+#define CMD_FLAG_REPEAT		0x0001	/* repeat last command		*/
+#define CMD_FLAG_BOOTD		0x0002	/* command is from bootd	*/
+
+/*
+ * Configurable monitor commands definitions have been moved
+ * to include/cmd_confdefs.h
+ */
+
+#endif	/* __COMMAND_H */