Patch by Kenneth Johansson, 30 Jun 2003:
get rid of MK_CMD_ENTRY macro; update doc/README.command
diff --git a/CHANGELOG b/CHANGELOG
index c5802b5..4594203 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,6 +2,9 @@
 Changes for U-Boot 0.4.2:
 ======================================================================
 
+* Patch by Kenneth Johansson, 30 Jun 2003:
+  get rid of MK_CMD_ENTRY macro; update doc/README.command
+
 * Patch by Seb James, 30 Jun 2003:
   Improve documentation of I2C configuration in README
 
diff --git a/board/MAI/AmigaOneG3SE/cmd_boota.c b/board/MAI/AmigaOneG3SE/cmd_boota.c
index db1ecfc..3e2835a 100644
--- a/board/MAI/AmigaOneG3SE/cmd_boota.c
+++ b/board/MAI/AmigaOneG3SE/cmd_boota.c
@@ -121,8 +121,8 @@
 	return 0;
 }
 #if defined(CONFIG_AMIGAONEG3SE) && (CONFIG_COMMANDS & CFG_CMD_BSP)
-cmd_tbl_t U_BOOT_CMD(BOOTA) = MK_CMD_ENTRY(
-	"boota",   3,      1,      do_boota,
+U_BOOT_CMD(
+	boota,   3,      1,      do_boota,
 	"boota   - boot an Amiga kernel\n",
 	"address disk"
 );
diff --git a/board/MAI/menu/cmd_menu.c b/board/MAI/menu/cmd_menu.c
index 4c17c6a..a515bd8 100644
--- a/board/MAI/menu/cmd_menu.c
+++ b/board/MAI/menu/cmd_menu.c
@@ -8,8 +8,8 @@
 }
 
 #if defined(CONFIG_AMIGAONEG3SE) && (CONFIG_COMMANDS & CFG_CMD_BSP)
-cmd_tbl_t U_BOOT_CMD(MENU) = MK_CMD_ENTRY(
-	"menu",   1,      1,      do_menu,
+U_BOOT_CMD(
+	menu,   1,      1,      do_menu,
 	"menu    - display BIOS setup menu\n",
 	""
 );
diff --git a/board/esd/dasa_sim/cmd_dasa_sim.c b/board/esd/dasa_sim/cmd_dasa_sim.c
index 0ebe09e..9edb3af 100644
--- a/board/esd/dasa_sim/cmd_dasa_sim.c
+++ b/board/esd/dasa_sim/cmd_dasa_sim.c
@@ -225,8 +225,8 @@
 
 }
 
-cmd_tbl_t U_BOOT_CMD (pci9054) = MK_CMD_ENTRY(
-	"pci9054", 3, 1, do_pci9054,
+U_BOOT_CMD(
+	pci9054, 3, 1, do_pci9054,
 	"pci9054 - PLX PCI9054 EEPROM access\n",
 	"pci9054 info - print EEPROM values\n"
 	"pci9054 update - updates EEPROM with default values\n"
diff --git a/board/evb64260/zuma_pbb.c b/board/evb64260/zuma_pbb.c
index 531b16b..d64025a 100644
--- a/board/evb64260/zuma_pbb.c
+++ b/board/evb64260/zuma_pbb.c
@@ -198,20 +198,20 @@
 	return 0;
 }
 
-cmd_tbl_t U_BOOT_CMD(zuma_init_pbb) = MK_CMD_ENTRY(
-	"zinit",	 1,	 0,	 do_zuma_init_pbb,
+U_BOOT_CMD(
+	zinit,	 1,	 0,	 do_zuma_init_pbb,
 	"zinit   - init zuma pbb\n",
 	"\n"
 	"    - init zuma pbb\n"
 );
-cmd_tbl_t U_BOOT_CMD(zuma_test_dma) = MK_CMD_ENTRY(
-	"zdtest",	  3,	  1,	  do_zuma_test_dma,
+U_BOOT_CMD(
+	zdtest,	  3,	  1,	  do_zuma_test_dma,
 	"zdtest  - run dma test\n",
 	"[cmd [count]]\n"
 	"    - run dma cmd (w=0,v=1,cp=2,cmp=3,wi=4,vi=5), count bytes\n"
 );
-cmd_tbl_t U_BOOT_CMD(zuma_init_mbox) = MK_CMD_ENTRY(
-	"zminit",	  1,	  0,	  do_zuma_init_mbox,
+U_BOOT_CMD(
+	zminit,	  1,	  0,	  do_zuma_init_mbox,
 	"zminit  - init zuma mbox\n",
 	"\n"
 	"    - init zuma mbox\n"
diff --git a/board/hymod/bsp.c b/board/hymod/bsp.c
index 7ea91e6..0596fa4 100644
--- a/board/hymod/bsp.c
+++ b/board/hymod/bsp.c
@@ -275,8 +275,8 @@
 	printf ("Usage:\n%s\n", cmdtp->usage);
 	return 1;
 }
-cmd_tbl_t U_BOOT_CMD(fpga) = MK_CMD_ENTRY(
-	"fpga",	6,	1,	do_fpga,
+U_BOOT_CMD(
+	fpga,	6,	1,	do_fpga,
 	"fpga    - FPGA sub-system\n",
 	"load [type] addr size\n"
 	"  - write the configuration data at memory address `addr',\n"
@@ -334,8 +334,8 @@
 
 	return 0;
 }
-cmd_tbl_t U_BOOT_CMD(eec) = MK_CMD_ENTRY(
-	"eeclear",	1,	0,	do_eecl,
+U_BOOT_CMD(
+	eeclear,	1,	0,	do_eecl,
 	"eeclear - Clear the eeprom on a Hymod board \n",
 	"[type]\n"
 	"  - write zeroes into the EEPROM on the board of type `type'\n"
diff --git a/board/lwmon/lwmon.c b/board/lwmon/lwmon.c
index 91aa58c..2aa990c 100644
--- a/board/lwmon/lwmon.c
+++ b/board/lwmon/lwmon.c
@@ -851,8 +851,8 @@
 	printf ("Usage:\n%s\n", cmdtp->usage);
 	return 1;
 }
-cmd_tbl_t U_BOOT_CMD(pic) = MK_CMD_ENTRY(
-	"pic",	4,	1,	do_pic,
+U_BOOT_CMD(
+	pic,	4,	1,	do_pic,
 	"pic     - read and write PIC registers\n",
 	"read  reg      - read PIC register `reg'\n"
 	"pic write reg val  - write value `val' to PIC register `reg'\n"
@@ -910,8 +910,8 @@
 	return 0;
 }
 
-cmd_tbl_t U_BOOT_CMD(kdb) = MK_CMD_ENTRY(
-	"kbd",	1,	1,	do_kbd,
+U_BOOT_CMD(
+	kbd,	1,	1,	do_kbd,
 	"kbd     - read keyboard status\n",
 	NULL
 );
@@ -982,8 +982,8 @@
 	return 1;
 }
 
-cmd_tbl_t U_BOOT_CMD(lsb) = MK_CMD_ENTRY(
-	"lsb",	2,	1,	do_lsb,
+U_BOOT_CMD(
+	lsb,	2,	1,	do_lsb,
 	"lsb     - check and set LSB switch\n",
 	"on  - switch LSB on\n"
 	"lsb off - switch LSB off\n"
diff --git a/board/mpl/mip405/cmd_mip405.c b/board/mpl/mip405/cmd_mip405.c
index 2075fbd..0f28fa2 100644
--- a/board/mpl/mip405/cmd_mip405.c
+++ b/board/mpl/mip405/cmd_mip405.c
@@ -53,8 +53,8 @@
    	}
 	return (do_mplcommon(cmdtp, flag, argc, argv));
 }
-cmd_tbl_t U_BOOT_CMD(mip405) = MK_CMD_ENTRY(
-	"mip405",	6,	1,	do_mip405,
+U_BOOT_CMD(
+	mip405,	6,	1,	do_mip405,
 	"mip405  - MIP405 specific Cmds\n",
 	"flash mem [SrcAddr] - updates U-Boot with image in memory\n"
 	"mip405 flash mps - updates U-Boot with image from MPS\n"
diff --git a/board/mpl/pip405/cmd_pip405.c b/board/mpl/pip405/cmd_pip405.c
index 4cc3776..1bf4d7b 100644
--- a/board/mpl/pip405/cmd_pip405.c
+++ b/board/mpl/pip405/cmd_pip405.c
@@ -58,8 +58,8 @@
 
 	return (do_mplcommon(cmdtp, flag, argc, argv));
 }
-cmd_tbl_t U_BOOT_CMD(pip405) = MK_CMD_ENTRY(
-	"pip405",	6,	1,	do_pip405,
+U_BOOT_CMD(
+	pip405,	6,	1,	do_pip405,
 	"pip405  - PIP405 specific Cmds\n",
 	"flash mem [SrcAddr] - updates U-Boot with image in memory\n"
 	"pip405 flash floppy [SrcAddr] - updates U-Boot with image from floppy\n"
diff --git a/board/pcippc2/pcippc2.c b/board/pcippc2/pcippc2.c
index fd3d479..ce3ae4d 100644
--- a/board/pcippc2/pcippc2.c
+++ b/board/pcippc2/pcippc2.c
@@ -233,8 +233,8 @@
 	return 1;
 }
 
-cmd_tbl_t U_BOOT_CMD(wd) = MK_CMD_ENTRY(
-	"wd",	2,	1,	do_wd,
+U_BOOT_CMD(
+	wd,	2,	1,	do_wd,
 	"wd      - check and set watchdog\n",
 	"on   - switch watchDog on\n"
 	"wd off  - switch watchdog off\n"
diff --git a/board/pn62/cmd_pn62.c b/board/pn62/cmd_pn62.c
index 421829a..3ea068d 100644
--- a/board/pn62/cmd_pn62.c
+++ b/board/pn62/cmd_pn62.c
@@ -51,8 +51,8 @@
     set_led (number, function);
     return 0;
 }
-cmd_tbl_t U_BOOT_CMD(led) = MK_CMD_ENTRY(
-	"led"    ,	3,	1,	do_led,
+U_BOOT_CMD(
+	led    ,	3,	1,	do_led,
 	"led     - set LED 0..11 on the PN62 board\n",
 	"i fun\n"
 	"    - set 'i'th LED to function 'fun'\n"
@@ -165,8 +165,8 @@
     return rcode;
 }
 
-cmd_tbl_t U_BOOT_CMD(loadpci) = MK_CMD_ENTRY(
-	"loadpci",	2,	1,	do_loadpci,
+U_BOOT_CMD(
+	loadpci,	2,	1,	do_loadpci,
 	"loadpci - load binary file over PCI\n",
 	"[addr]\n"
 	"    - load binary file over PCI to address 'addr'\n"
diff --git a/board/r360mpi/r360mpi.c b/board/r360mpi/r360mpi.c
index ca556be..fe0deee 100644
--- a/board/r360mpi/r360mpi.c
+++ b/board/r360mpi/r360mpi.c
@@ -443,8 +443,8 @@
 	return 0;
 }
 
-cmd_tbl_t U_BOOT_CMD(kbd) = MK_CMD_ENTRY(
-	"kbd",	1,	1,	do_kbd,
+U_BOOT_CMD(
+	kbd,	1,	1,	do_kbd,
 	"kbd     - read keyboard status\n",
 	NULL
 );
diff --git a/board/siemens/common/fpga.c b/board/siemens/common/fpga.c
index 7edeb0a..169048e 100644
--- a/board/siemens/common/fpga.c
+++ b/board/siemens/common/fpga.c
@@ -291,8 +291,8 @@
     return 1;
 }
 
-cmd_tbl_t U_BOOT_CMD(fpga) = MK_CMD_ENTRY(
-	"fpga",	4,	1,	do_fpga,
+U_BOOT_CMD(
+	fpga,	4,	1,	do_fpga,
 	"fpga    - access FPGA(s)\n",
 	"fpga status [name] - print FPGA status\n"
 	"fpga reset  [name] - reset FPGA\n"
diff --git a/board/siemens/pcu_e/pcu_e.c b/board/siemens/pcu_e/pcu_e.c
index 8be70d3..b211189 100644
--- a/board/siemens/pcu_e/pcu_e.c
+++ b/board/siemens/pcu_e/pcu_e.c
@@ -432,8 +432,8 @@
 	printf ("Usage:\n%s\n", cmdtp->usage);
 	return 1;
 }
-cmd_tbl_t U_BOOT_CMD(puma) = MK_CMD_ENTRY(
-	"puma",	4,	1,	do_puma,
+U_BOOT_CMD(
+	puma,	4,	1,	do_puma,
 	"puma    - access PUMA FPGA\n",
 	"status - print PUMA status\n"
 	"puma load addr len - load PUMA configuration data\n"
diff --git a/board/trab/trab.c b/board/trab/trab.c
index 1a4f5c5..895c9e1 100644
--- a/board/trab/trab.c
+++ b/board/trab/trab.c
@@ -298,8 +298,8 @@
 	return 0;
 }
 
-cmd_tbl_t U_BOOT_CMD(kbd) = MK_CMD_ENTRY(
- 	"kbd",	1,	1,	do_kbd,
+U_BOOT_CMD(
+ 	kbd,	1,	1,	do_kbd,
  	"kbd     - read keyboard status\n",
  	NULL
 );
diff --git a/board/w7o/cmd_vpd.c b/board/w7o/cmd_vpd.c
index 6a151e2..449089e 100644
--- a/board/w7o/cmd_vpd.c
+++ b/board/w7o/cmd_vpd.c
@@ -56,8 +56,8 @@
 	return 1;
 }
 
-cmd_tbl_t U_BOOT_CMD(vpd) = MK_CMD_ENTRY(
-	  "vpd",	2,	1,	do_vpd,
+U_BOOT_CMD(
+	  vpd,	2,	1,	do_vpd,
 	  "vpd     - Read Vital Product Data\n",
 	  "[dev_addr]\n"
 	  "        - Read VPD Data from default address, or device address 'dev_addr'.\n"
diff --git a/common/cmd_autoscript.c b/common/cmd_autoscript.c
index 81dbf49..4894dab 100644
--- a/common/cmd_autoscript.c
+++ b/common/cmd_autoscript.c
@@ -171,8 +171,8 @@
 }
 
 #if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT)
-cmd_tbl_t U_BOOT_CMD(AUTOSCRIPT) = MK_CMD_ENTRY(
-	"autoscr", 2, 0,	do_autoscript,
+U_BOOT_CMD(
+	autoscr, 2, 0,	do_autoscript,
 	"autoscr - run script from memory\n",
 	"[addr] - run script starting at addr"
 	" - A valid autoscr header must be present\n"
diff --git a/common/cmd_bdinfo.c b/common/cmd_bdinfo.c
index 542e25b..c22a9d1 100644
--- a/common/cmd_bdinfo.c
+++ b/common/cmd_bdinfo.c
@@ -172,8 +172,8 @@
 
 /* -------------------------------------------------------------------- */
 
-cmd_tbl_t U_BOOT_CMD(BDINFO) =  MK_CMD_ENTRY(
-	"bdinfo",	1,	1,	do_bdinfo,
+U_BOOT_CMD(
+	bdinfo,	1,	1,	do_bdinfo,
 	"bdinfo  - print Board Info structure\n",
 	NULL
 );
diff --git a/common/cmd_bedbug.c b/common/cmd_bedbug.c
index 6ee01d5..cdb379d 100644
--- a/common/cmd_bedbug.c
+++ b/common/cmd_bedbug.c
@@ -108,8 +108,8 @@
   dis_last_len = len;
   return 0;
 } /* do_bedbug_dis */
-cmd_tbl_t U_BOOT_CMD(DIS) = MK_CMD_ENTRY(
-	"ds",      3,      1,      do_bedbug_dis,
+U_BOOT_CMD(
+	ds,      3,      1,      do_bedbug_dis,
 	"ds      - disassemble memory\n",
 	"ds <address> [# instructions]\n"
 );
@@ -165,8 +165,8 @@
   }
   return rcode;
 } /* do_bedbug_asm */
-cmd_tbl_t U_BOOT_CMD(ASM) = MK_CMD_ENTRY(
-	"as",      2,      0,      do_bedbug_asm,
+U_BOOT_CMD(
+	as,      2,      0,      do_bedbug_asm,
 	"as      - assemble memory\n",
 	"as <address>\n"
 );
@@ -184,8 +184,8 @@
     return 0;
 
 } /* do_bedbug_break */
-cmd_tbl_t U_BOOT_CMD(BREAK) = MK_CMD_ENTRY(
-	"break",      3,      0,      do_bedbug_break,
+U_BOOT_CMD(
+	break,      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"
@@ -288,8 +288,8 @@
   bug_ctx.stopped = 0;
   return 0;
 } /* do_bedbug_continue */
-cmd_tbl_t U_BOOT_CMD(CONTINUE) = MK_CMD_ENTRY(
-	"continue",      1,      0,      do_bedbug_continue,
+U_BOOT_CMD(
+	continue,      1,      0,      do_bedbug_continue,
 	"continue- continue from a breakpoint\n",
 	" - continue from a breakpoint.\n"
 );
@@ -320,8 +320,8 @@
   bug_ctx.stopped = 0;
   return 0;
 } /* do_bedbug_step */
-cmd_tbl_t U_BOOT_CMD(STEP) = MK_CMD_ENTRY(
-	"step",      1,      1,      do_bedbug_step,
+U_BOOT_CMD(
+	step,      1,      1,      do_bedbug_step,
 	"step    - single step execution.\n",
 	" - single step execution.\n"
 );
@@ -352,8 +352,8 @@
   bug_ctx.stopped = 0;
   return 0;
 } /* do_bedbug_next */
-cmd_tbl_t U_BOOT_CMD(NEXT) = MK_CMD_ENTRY(
-	"next",      1,      1,      do_bedbug_next,
+U_BOOT_CMD(
+	next,      1,      1,      do_bedbug_next,
 	"next    - single step execution, stepping over subroutines.\n",
 	" - single step execution, stepping over subroutines.\n"
 );
@@ -401,8 +401,8 @@
   }
   return 0;
 } /* do_bedbug_stack */
-cmd_tbl_t U_BOOT_CMD(STACK) = MK_CMD_ENTRY(
-	"where",     1,      1,      do_bedbug_stack,
+U_BOOT_CMD(
+	where,     1,      1,      do_bedbug_stack,
 	"where   - Print the running stack.\n",
 	" - Print the running stack.\n"
 );
@@ -424,8 +424,8 @@
   show_regs( bug_ctx.regs );
   return 0;
 } /* do_bedbug_rdump */
-cmd_tbl_t U_BOOT_CMD(RDUMP) = MK_CMD_ENTRY(
-	"rdump",     1,      1,      do_bedbug_rdump,
+U_BOOT_CMD(
+	rdump,     1,      1,      do_bedbug_rdump,
 	"rdump   - Show registers.\n",
 	" - Show registers.\n"
 );
diff --git a/common/cmd_bmp.c b/common/cmd_bmp.c
index 69f6fa6..6dd6070 100644
--- a/common/cmd_bmp.c
+++ b/common/cmd_bmp.c
@@ -73,8 +73,8 @@
 	}
 }
 
-cmd_tbl_t U_BOOT_CMD(BMP) = MK_CMD_ENTRY(
-	"bmp",	3,	1,	do_bmp,
+U_BOOT_CMD(
+	bmp,	3,	1,	do_bmp,
 	"bmp     - manipulate BMP image data\n",
 	"info <imageAddr>    - display image info\n"
 	"bmp display <imageAddr> - display image\n"
diff --git a/common/cmd_boot.c b/common/cmd_boot.c
index 1adbd42..fe8025d 100644
--- a/common/cmd_boot.c
+++ b/common/cmd_boot.c
@@ -59,8 +59,8 @@
 
 /* -------------------------------------------------------------------- */
 
-cmd_tbl_t U_BOOT_CMD(GO) = MK_CMD_ENTRY(
-	"go", CFG_MAXARGS, 1,	do_go,
+U_BOOT_CMD(
+	go, CFG_MAXARGS, 1,	do_go,
 	"go      - start application at address 'addr'\n",
 	"addr [arg ...]\n    - start application at address 'addr'\n"
 	"      passing 'arg' as arguments\n"
@@ -68,8 +68,8 @@
 
 extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
 
-cmd_tbl_t U_BOOT_CMD(RESET) = MK_CMD_ENTRY(
-	"reset", 1, 0,	do_reset,
+U_BOOT_CMD(
+	reset, 1, 0,	do_reset,
 	"reset   - Perform RESET of the CPU\n",
 	NULL
 );
diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c
index aad04cf..39c2348 100644
--- a/common/cmd_bootm.c
+++ b/common/cmd_bootm.c
@@ -381,8 +381,8 @@
 	return 1;
 }
 
-cmd_tbl_t U_BOOT_CMD(BOOTM) =  MK_CMD_ENTRY(
- 	"bootm",	CFG_MAXARGS,	1,	do_bootm,
+U_BOOT_CMD(
+ 	bootm,	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"
@@ -872,15 +872,15 @@
 	return rcode;
 }
 
-cmd_tbl_t U_BOOT_CMD(BOOT) = MK_CMD_ENTRY(
- 	"boot",	1,	1,	do_bootd,
+U_BOOT_CMD(
+ 	boot,	1,	1,	do_bootd,
  	"boot    - boot default, i.e., run 'bootcmd'\n",
 	NULL
 );
 
 /* keep old command name "bootd" for backward compatibility */
-cmd_tbl_t U_BOOT_CMD(BOOTD) = MK_CMD_ENTRY(
- 	"bootd", 1,	1,	do_bootd,
+U_BOOT_CMD(
+ 	bootd, 1,	1,	do_bootd,
  	"bootd   - boot default, i.e., run 'bootcmd'\n",
 	NULL
 );
@@ -945,8 +945,9 @@
 	printf ("OK\n");
 	return 0;
 }
-cmd_tbl_t U_BOOT_CMD(IMINFO) = MK_CMD_ENTRY(
-	"iminfo",	CFG_MAXARGS,	1,	do_iminfo,
+
+U_BOOT_CMD(
+	iminfo,	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"
diff --git a/common/cmd_cache.c b/common/cmd_cache.c
index 0016b72..6c250bc 100644
--- a/common/cmd_cache.c
+++ b/common/cmd_cache.c
@@ -95,15 +95,15 @@
 }
 
 
-cmd_tbl_t U_BOOT_CMD(ICACHE) = MK_CMD_ENTRY(
-	"icache",   2,   1,     do_icache,
+U_BOOT_CMD(
+	icache,   2,   1,     do_icache,
 	"icache  - enable or disable instruction cache\n",
 	"[on, off]\n"
 	"    - enable or disable instruction cache\n"
 );
 
-cmd_tbl_t U_BOOT_CMD(DCACHE) = MK_CMD_ENTRY(
-	"dcache",   2,   1,     do_dcache,
+U_BOOT_CMD(
+	dcache,   2,   1,     do_dcache,
 	"dcache  - enable or disable data cache\n",
 	"[on, off]\n"
 	"    - enable or disable data (writethrough) cache\n"
diff --git a/common/cmd_console.c b/common/cmd_console.c
index e6b001a..912234b 100644
--- a/common/cmd_console.c
+++ b/common/cmd_console.c
@@ -62,8 +62,8 @@
 
 /***************************************************/
 
-cmd_tbl_t U_BOOT_CMD(CONINFO) = MK_CMD_ENTRY(
-	"coninfo",	3,	1,	do_coninfo,
+U_BOOT_CMD(
+	coninfo,	3,	1,	do_coninfo,
 	"coninfo - print console devices and informations\n",
 	""
 );
diff --git a/common/cmd_date.c b/common/cmd_date.c
index 6b75210..4648a0e 100644
--- a/common/cmd_date.c
+++ b/common/cmd_date.c
@@ -191,8 +191,8 @@
 
 /***************************************************/
 
-cmd_tbl_t U_BOOT_CMD(DATE) = MK_CMD_ENTRY(
-	"date",	2,	1,	do_date,
+U_BOOT_CMD(
+	date,	2,	1,	do_date,
 	"date    - get/set/reset date & time\n",
 	"[MMDDhhmm[[CC]YY][.ss]]\ndate reset\n"
 	"  - without arguments: print date & time\n"
diff --git a/common/cmd_dcr.c b/common/cmd_dcr.c
index 3ec11b0..a91db66 100644
--- a/common/cmd_dcr.c
+++ b/common/cmd_dcr.c
@@ -106,13 +106,13 @@
 
 /***************************************************/
 
-cmd_tbl_t U_BOOT_CMD(GETDCR) = MK_CMD_ENTRY(
-	"getdcr",	2,	1,	do_getdcr,
+U_BOOT_CMD(
+	getdcr,	2,	1,	do_getdcr,
 	"getdcr  - Get an IBM PPC 4xx DCR's value\n",
 	"dcrn - return a DCR's value.\n"
 );
-cmd_tbl_t U_BOOT_CMD(SETDCR) = MK_CMD_ENTRY(
-	"setdcr",	2,	1,	do_setdcr,
+U_BOOT_CMD(
+	setdcr,	2,	1,	do_setdcr,
 	"setdcr  - Set an IBM PPC 4xx DCR's value\n",
 	"dcrn - set a DCR's value.\n"
 );
diff --git a/common/cmd_diag.c b/common/cmd_diag.c
index 0bb6c7f..861f005 100644
--- a/common/cmd_diag.c
+++ b/common/cmd_diag.c
@@ -66,8 +66,8 @@
 }
 /***************************************************/
 
-cmd_tbl_t U_BOOT_CMD(DIAG) = MK_CMD_ENTRY(
-	"diag",	CFG_MAXARGS,	0,	do_diag,
+U_BOOT_CMD(
+	diag,	CFG_MAXARGS,	0,	do_diag,
 	"diag    - perform board diagnostics\n",
 	     "    - print list of available tests\n"
 	"diag [test1 [test2]]\n"
diff --git a/common/cmd_doc.c b/common/cmd_doc.c
index 17c9d0d..69d1d9f 100644
--- a/common/cmd_doc.c
+++ b/common/cmd_doc.c
@@ -170,8 +170,8 @@
 	return rcode;
     }
 }
-cmd_tbl_t U_BOOT_CMD(DOC) = MK_CMD_ENTRY(
-	"doc",	5,	1,	do_doc,
+U_BOOT_CMD(
+	doc,	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"
@@ -284,8 +284,8 @@
 	return rcode;
 }
 
-cmd_tbl_t U_BOOT_CMD(DOCBOOT) = MK_CMD_ENTRY(
-	"docboot",	4,	1,	do_docboot,
+U_BOOT_CMD(
+	docboot,	4,	1,	do_docboot,
 	"docboot - boot from DOC device\n",
 	"loadAddr dev\n"
 );
diff --git a/common/cmd_dtt.c b/common/cmd_dtt.c
index 447076c..9db64e9 100644
--- a/common/cmd_dtt.c
+++ b/common/cmd_dtt.c
@@ -47,8 +47,8 @@
 
 /***************************************************/
 
-cmd_tbl_t U_BOOT_CMD(DTT) = MK_CMD_ENTRY(
-	  "dtt",	1,	1,	do_dtt,
+U_BOOT_CMD(
+	  dtt,	1,	1,	do_dtt,
 	  "dtt     - Digital Thermometer and Themostat\n",
 	  "        - Read temperature from digital thermometer and thermostat.\n"
 );
diff --git a/common/cmd_eeprom.c b/common/cmd_eeprom.c
index 0a78319..5193b13 100644
--- a/common/cmd_eeprom.c
+++ b/common/cmd_eeprom.c
@@ -376,16 +376,16 @@
 #if (CONFIG_COMMANDS & CFG_CMD_EEPROM)
 
 #ifdef CFG_I2C_MULTI_EEPROMS
-cmd_tbl_t U_BOOT_CMD(EEPROM) = MK_CMD_ENTRY(
-	"eeprom",	6,	1,	do_eeprom,
+U_BOOT_CMD(
+	eeprom,	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 */
-cmd_tbl_t U_BOOT_CMD(EEPROM) = MK_CMD_ENTRY(
-	"eeprom",	5,	1,	do_eeprom,
+U_BOOT_CMD(
+	eeprom,	5,	1,	do_eeprom,
 	"eeprom  - EEPROM sub-system\n",
 	"read  addr off cnt\n"
 	"eeprom write addr off cnt\n"
diff --git a/common/cmd_elf.c b/common/cmd_elf.c
index c068c10..f039724 100644
--- a/common/cmd_elf.c
+++ b/common/cmd_elf.c
@@ -321,14 +321,14 @@
 }
 
 /* ====================================================================== */
-cmd_tbl_t U_BOOT_CMD(BOOTELF) = MK_CMD_ENTRY(
-	"bootelf",      2,      0,      do_bootelf,
+U_BOOT_CMD(
+	bootelf,      2,      0,      do_bootelf,
 	"bootelf - Boot from an ELF image in memory\n",
 	" [address] - load address of ELF image.\n"
 );
 
-cmd_tbl_t U_BOOT_CMD(BOOTVX) = MK_CMD_ENTRY(
-	"bootvx",      2,      0,      do_bootvx,
+U_BOOT_CMD(
+	bootvx,      2,      0,      do_bootvx,
 	"bootvx  - Boot vxWorks from an ELF image\n",
 	" [address] - load address of vxWorks ELF image.\n"
 );
diff --git a/common/cmd_fat.c b/common/cmd_fat.c
index 6be5555..27f8322 100644
--- a/common/cmd_fat.c
+++ b/common/cmd_fat.c
@@ -62,8 +62,8 @@
 	return size;
 }
 
-cmd_tbl_t U_BOOT_CMD(FATLOAD) = MK_CMD_ENTRY(
-	"fatload",	4,	0,	do_fat_fsload,
+U_BOOT_CMD(
+	fatload,	4,	0,	do_fat_fsload,
 	"fatload - load binary file from a dos filesystem\n",
 	"[ off ] [ filename ]\n"
 	"    - load binary file from dos filesystem\n"
@@ -83,8 +83,8 @@
 	return (ret);
 }
 
-cmd_tbl_t U_BOOT_CMD(FATLS) = MK_CMD_ENTRY(
-	"fatls",	2,	1,	do_fat_ls,
+U_BOOT_CMD(
+	fatls,	2,	1,	do_fat_ls,
 	"fatls   - list files in a directory (default /)\n",
 	"[ directory ]\n"
 	"    - list files in a directory\n"
@@ -101,8 +101,8 @@
 	return (ret);
 }
 
-cmd_tbl_t U_BOOT_CMD(FATINFO) = MK_CMD_ENTRY(
-	"fatinfo",	1,	1,	do_fat_fsinfo,
+U_BOOT_CMD(
+	fatinfo,	1,	1,	do_fat_fsinfo,
 	"fatinfo - print information about filesystem\n",
 	"\n"
 	"    - print information about filesystem\n"
diff --git a/common/cmd_fdc.c b/common/cmd_fdc.c
index 3030750..02dffa3 100644
--- a/common/cmd_fdc.c
+++ b/common/cmd_fdc.c
@@ -888,8 +888,8 @@
 
 #if (CONFIG_COMMANDS & CFG_CMD_FDC)
 
-cmd_tbl_t U_BOOT_CMD(FDC) = MK_CMD_ENTRY(
-	"fdcboot",	3,	1,	do_fdcboot,
+U_BOOT_CMD(
+	fdcboot,	3,	1,	do_fdcboot,
 	"fdcboot - boot from floppy device\n",
 	"loadAddr drive\n"
 );
diff --git a/common/cmd_fdos.c b/common/cmd_fdos.c
index 8257e70..adaddcd 100644
--- a/common/cmd_fdos.c
+++ b/common/cmd_fdos.c
@@ -142,14 +142,14 @@
     return (dos_dir ());
 }
 
-cmd_tbl_t U_BOOT_CMD(FDOS_BOOT) = MK_CMD_ENTRY(
-	"fdosboot",	3,	0,	do_fdosboot,
+U_BOOT_CMD(
+	fdosboot,	3,	0,	do_fdosboot,
 	"fdosboot- boot from a dos floppy file\n",
 	"[loadAddr] [filename]\n"
 );
 
-cmd_tbl_t U_BOOT_CMD(FDOS_LS) = MK_CMD_ENTRY(
-	"fdosls",	2,	0,	do_fdosls,
+U_BOOT_CMD(
+	fdosls,	2,	0,	do_fdosls,
 	"fdosls  - list files in a directory\n",
 	"[directory]\n"
 );
diff --git a/common/cmd_flash.c b/common/cmd_flash.c
index 6914f59..811b89b 100644
--- a/common/cmd_flash.c
+++ b/common/cmd_flash.c
@@ -440,15 +440,15 @@
 
 /**************************************************/
 
-cmd_tbl_t U_BOOT_CMD(FLINFO) = MK_CMD_ENTRY(
-	"flinfo",    2,    1,    do_flinfo,
+U_BOOT_CMD(
+	flinfo,    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"
 );
 
-cmd_tbl_t U_BOOT_CMD(ERASE) = MK_CMD_ENTRY(
-	"erase",   3,   1,  do_flerase,
+U_BOOT_CMD(
+	erase,   3,   1,  do_flerase,
 	"erase   - erase FLASH memory\n",
 	"start end\n"
 	"    - erase FLASH from addr 'start' to addr 'end'\n"
@@ -457,8 +457,8 @@
 	"erase all\n    - erase all FLASH banks\n"
 );
 
-cmd_tbl_t U_BOOT_CMD(PROTECT) = MK_CMD_ENTRY(
-	"protect",  4,  1,   do_protect,
+U_BOOT_CMD(
+	protect,  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"
diff --git a/common/cmd_fpga.c b/common/cmd_fpga.c
index b364f14..8e180da 100644
--- a/common/cmd_fpga.c
+++ b/common/cmd_fpga.c
@@ -154,8 +154,8 @@
 	return op;
 }
 
-cmd_tbl_t U_BOOT_CMD(FPGA) = MK_CMD_ENTRY(
-	"fpga",    6,     1,     do_fpga,
+U_BOOT_CMD(
+	fpga,    6,     1,     do_fpga,
 	"fpga   - loadable FPGA image support\n",
 	"fpga [operation type] [device number] [image address] [image size]\n"
 	"fpga operations:\n"
diff --git a/common/cmd_i2c.c b/common/cmd_i2c.c
index 203e803..3856f3d 100644
--- a/common/cmd_i2c.c
+++ b/common/cmd_i2c.c
@@ -867,38 +867,38 @@
 
 /***************************************************/
 
-cmd_tbl_t U_BOOT_CMD(IMD) = MK_CMD_ENTRY(
-	"imd",	4,	1,	do_i2c_md,		\
+U_BOOT_CMD(
+	imd,	4,	1,	do_i2c_md,		\
 	"imd     - i2c memory display\n",				\
 	"chip address[.0, .1, .2] [# of objects]\n    - i2c memory display\n" \
 );
 
-cmd_tbl_t U_BOOT_CMD(IMM) = MK_CMD_ENTRY(
- 	"imm",	3,	1,	do_i2c_mm,
+U_BOOT_CMD(
+ 	imm,	3,	1,	do_i2c_mm,
 	"imm     - i2c memory modify (auto-incrementing)\n",
 	"chip address[.0, .1, .2]\n"
 	"    - memory modify, auto increment address\n"
 );
-cmd_tbl_t U_BOOT_CMD(INM) = MK_CMD_ENTRY(
-	"inm",	3,	1,	do_i2c_nm,
+U_BOOT_CMD(
+	inm,	3,	1,	do_i2c_nm,
 	"inm     - memory modify (constant address)\n",
 	"chip address[.0, .1, .2]\n    - memory modify, read and keep address\n"
 );
 
-cmd_tbl_t U_BOOT_CMD(IMW) = MK_CMD_ENTRY(
-	"imw",	5,	1,	do_i2c_mw,
+U_BOOT_CMD(
+	imw,	5,	1,	do_i2c_mw,
 	"imw     - memory write (fill)\n",
 	"chip address[.0, .1, .2] value [count]\n    - memory write (fill)\n"
 );
 
-cmd_tbl_t U_BOOT_CMD(ICRC) = MK_CMD_ENTRY(
-	"icrc32",	5,	1,	do_i2c_crc,
+U_BOOT_CMD(
+	icrc32,	5,	1,	do_i2c_crc,
 	"icrc32  - checksum calculation\n",
 	"chip address[.0, .1, .2] count\n    - compute CRC32 checksum\n"
 );
 
-cmd_tbl_t U_BOOT_CMD(IPROBE) = MK_CMD_ENTRY(
-	"iprobe",	1,	1,	do_i2c_probe,
+U_BOOT_CMD(
+	iprobe,	1,	1,	do_i2c_probe,
 	"iprobe  - probe to discover valid I2C chip addresses\n",
 	"\n    -discover valid I2C chip addresses\n"
 );
@@ -906,16 +906,16 @@
 /*
  * Require full name for "iloop" because it is an infinite loop!
  */
-cmd_tbl_t U_BOOT_CMD(ILOOP) = MK_CMD_ENTRY(
-	"iloop",	5,	1,	do_i2c_loop,
+U_BOOT_CMD(
+	iloop,	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)
-cmd_tbl_t U_BOOT_CMD(ISDRAM) = MK_CMD_ENTRY(
-	"isdram",	2,	1,	do_sdram,
+U_BOOT_CMD(
+	isdram,	2,	1,	do_sdram,
 	"isdram  - print SDRAM configuration information\n",
 	"chip\n    - print SDRAM configuration information\n"
 	"      (valid chip values 50..57)\n"
diff --git a/common/cmd_ide.c b/common/cmd_ide.c
index 8ca2b89..dacec2a 100644
--- a/common/cmd_ide.c
+++ b/common/cmd_ide.c
@@ -1810,8 +1810,8 @@
 
 #endif /* CONFIG_ATAPI */
 
-cmd_tbl_t U_BOOT_CMD(IDE) = MK_CMD_ENTRY(
-	"ide",  5,  1,  do_ide,
+U_BOOT_CMD(
+	ide,  5,  1,  do_ide,
 	"ide     - IDE sub-system\n",
 	"reset - reset IDE controller\n"
 	"ide info  - show available IDE devices\n"
@@ -1823,8 +1823,8 @@
 	"    to/from memory address `addr'\n"
 );
 
-cmd_tbl_t U_BOOT_CMD(DISK) = MK_CMD_ENTRY(
-	"diskboot",	3,	1,	do_diskboot,
+U_BOOT_CMD(
+	diskboot,	3,	1,	do_diskboot,
 	"diskboot- boot from IDE device\n",
 	"loadAddr dev:part\n"
 );
diff --git a/common/cmd_immap.c b/common/cmd_immap.c
index fbb4a7d..4bb6e0c 100644
--- a/common/cmd_immap.c
+++ b/common/cmd_immap.c
@@ -594,106 +594,106 @@
 
 /***************************************************/
 
-cmd_tbl_t U_BOOT_CMD(SIUINFO) = MK_CMD_ENTRY(
-	"siuinfo",	1,	1,	do_siuinfo,
+U_BOOT_CMD(
+	siuinfo,	1,	1,	do_siuinfo,
 	"siuinfo - print System Interface Unit (SIU) registers\n",
 	NULL
 );
 
-cmd_tbl_t U_BOOT_CMD(MEMCINFO) = MK_CMD_ENTRY(
-	"memcinfo",	1,	1,	do_memcinfo,
+U_BOOT_CMD(
+	memcinfo,	1,	1,	do_memcinfo,
 	"memcinfo- print Memory Controller registers\n",
 	NULL
 );
 
-cmd_tbl_t U_BOOT_CMD(SITINFO) = MK_CMD_ENTRY(
-	"sitinfo",	1,	1,	do_sitinfo,
+U_BOOT_CMD(
+	sitinfo,	1,	1,	do_sitinfo,
 	"sitinfo - print System Integration Timers (SIT) registers\n",
 	NULL
 );
 
 #ifdef CONFIG_8260
-cmd_tbl_t U_BOOT_CMD(ICINFO) = MK_CMD_ENTRY(
-	"icinfo",	1,	1,	do_icinfo,
+U_BOOT_CMD(
+	icinfo,	1,	1,	do_icinfo,
 	"icinfo  - print Interrupt Controller registers\n",
 	NULL
 );
 #endif
 
-cmd_tbl_t U_BOOT_CMD(CARINFO) = MK_CMD_ENTRY(
-	"carinfo",	1,	1,	do_carinfo,
+U_BOOT_CMD(
+	carinfo,	1,	1,	do_carinfo,
 	"carinfo - print Clocks and Reset registers\n",
 	NULL
 );
 
-cmd_tbl_t U_BOOT_CMD(IOPINFO) = MK_CMD_ENTRY(
-	"iopinfo",	1,	1,	do_iopinfo,
+U_BOOT_CMD(
+	iopinfo,	1,	1,	do_iopinfo,
 	"iopinfo - print I/O Port registers\n",
 	NULL
 );
 
-cmd_tbl_t U_BOOT_CMD(IOPSET) = 	MK_CMD_ENTRY(
-	"iopset",	5,	0,	do_iopset,
+U_BOOT_CMD(
+	iopset,	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"
 );
 
-cmd_tbl_t U_BOOT_CMD(DMAINFO) = MK_CMD_ENTRY(
-	"dmainfo",	1,	1,	do_dmainfo,
+U_BOOT_CMD(
+	dmainfo,	1,	1,	do_dmainfo,
 	"dmainfo - print SDMA/IDMA registers\n",
 	NULL
 );
 
-cmd_tbl_t U_BOOT_CMD(FCCINFO) = MK_CMD_ENTRY(
-	"fccinfo",	1,	1,	do_fccinfo,
+U_BOOT_CMD(
+	fccinfo,	1,	1,	do_fccinfo,
 	"fccinfo - print FCC registers\n",
 	NULL
 );
 
-cmd_tbl_t U_BOOT_CMD(BRGINFO) = MK_CMD_ENTRY(
-	"brginfo",	1,	1,	do_brginfo,
+U_BOOT_CMD(
+	brginfo,	1,	1,	do_brginfo,
 	"brginfo - print Baud Rate Generator (BRG) registers\n",
 	NULL
 );
 
-cmd_tbl_t U_BOOT_CMD(I2CINFO) = MK_CMD_ENTRY(
-	"i2cinfo",	1,	1,	do_i2cinfo,
+U_BOOT_CMD(
+	i2cinfo,	1,	1,	do_i2cinfo,
 	"i2cinfo - print I2C registers\n",
 	NULL
 );
 
-cmd_tbl_t U_BOOT_CMD(SCCINFO) = MK_CMD_ENTRY(
-	"sccinfo",	1,	1,	do_sccinfo,
+U_BOOT_CMD(
+	sccinfo,	1,	1,	do_sccinfo,
 	"sccinfo - print SCC registers\n",
 	NULL
 );
 
-cmd_tbl_t U_BOOT_CMD(SMCINFO) = MK_CMD_ENTRY(
-	"smcinfo",	1,	1,	do_smcinfo,
+U_BOOT_CMD(
+	smcinfo,	1,	1,	do_smcinfo,
 	"smcinfo - print SMC registers\n",
 	NULL
 );
 
-cmd_tbl_t U_BOOT_CMD(SPIINFO) = MK_CMD_ENTRY(
-	"spiinfo",	1,	1,	do_spiinfo,
+U_BOOT_CMD(
+	spiinfo,	1,	1,	do_spiinfo,
 	"spiinfo - print Serial Peripheral Interface (SPI) registers\n",
 	NULL
 );
 
-cmd_tbl_t U_BOOT_CMD(MUXINFO) = MK_CMD_ENTRY(
-	"muxinfo",	1,	1,	do_muxinfo,
+U_BOOT_CMD(
+	muxinfo,	1,	1,	do_muxinfo,
 	"muxinfo - print CPM Multiplexing registers\n",
 	NULL
 );
 
-cmd_tbl_t U_BOOT_CMD(SIINFO) = MK_CMD_ENTRY(
-	"siinfo",	1,	1,	do_siinfo,
+U_BOOT_CMD(
+	siinfo,	1,	1,	do_siinfo,
 	"siinfo  - print Serial Interface (SI) registers\n",
 	NULL
 );
 
-cmd_tbl_t U_BOOT_CMD(MCCINFO) = MK_CMD_ENTRY(
-	"mccinfo",	1,	1,	do_mccinfo,
+U_BOOT_CMD(
+	mccinfo,	1,	1,	do_mccinfo,
 	"mccinfo - print MCC registers\n",
 	NULL
 );
diff --git a/common/cmd_jffs2.c b/common/cmd_jffs2.c
index e45a2ce..f591565 100644
--- a/common/cmd_jffs2.c
+++ b/common/cmd_jffs2.c
@@ -186,29 +186,29 @@
 
 /***************************************************/
 
-cmd_tbl_t U_BOOT_CMD(JFFS2_FSLOAD) = MK_CMD_ENTRY(
-	"fsload",	3,	0,	do_jffs2_fsload,
+U_BOOT_CMD(
+	fsload,	3,	0,	do_jffs2_fsload,
 	"fsload  - load binary file from a filesystem image\n",
 	"[ off ] [ filename ]\n"
 	"    - load binary file from flash bank\n"
 	"      with offset 'off'\n"
 );
 
-cmd_tbl_t U_BOOT_CMD(JFFS2_FSINFO) = MK_CMD_ENTRY(
-	"fsinfo",	1,	1,	do_jffs2_fsinfo,
+U_BOOT_CMD(
+	fsinfo,	1,	1,	do_jffs2_fsinfo,
 	"fsinfo  - print information about filesystems\n",
 	"    - print information about filesystems\n"
 );
 
-cmd_tbl_t U_BOOT_CMD(JFFS2_LS) = MK_CMD_ENTRY(
-	"ls",	2,	1,	do_jffs2_ls,
+U_BOOT_CMD(
+	ls,	2,	1,	do_jffs2_ls,
 	"ls      - list files in a directory (default /)\n",
 	"[ directory ]\n"
 	"    - list files in a directory.\n"
 );
 
-cmd_tbl_t U_BOOT_CMD(JFFS2_CHPART) = MK_CMD_ENTRY(
-	"chpart",	2,	0,	do_jffs2_chpart,
+U_BOOT_CMD(
+	chpart,	2,	0,	do_jffs2_chpart,
 	"chpart  - change active partition\n",
 	"    - change active partition\n"
 );
diff --git a/common/cmd_load.c b/common/cmd_load.c
index 5272b0f..2cb2f33 100644
--- a/common/cmd_load.c
+++ b/common/cmd_load.c
@@ -971,8 +971,8 @@
 #if (CONFIG_COMMANDS & CFG_CMD_LOADS)
 
 #ifdef	CFG_LOADS_BAUD_CHANGE
-cmd_tbl_t U_BOOT_CMD(LOADS) =  MK_CMD_ENTRY(
-	"loads", 3, 0,	do_load_serial,
+U_BOOT_CMD(
+	loads, 3, 0,	do_load_serial,
 	"loads   - load S-Record file over serial line\n",
 	"[ off ] [ baud ]\n"
 	"    - load S-Record file over serial line"
@@ -980,8 +980,8 @@
 );
 
 #else	/* ! CFG_LOADS_BAUD_CHANGE */
-cmd_tbl_t U_BOOT_CMD(LOADS) =  MK_CMD_ENTRY(
-	"loads", 2, 0,	do_load_serial,
+U_BOOT_CMD(
+	loads, 2, 0,	do_load_serial,
 	"loads   - load S-Record file over serial line\n",
 	"[ off ]\n"
 	"    - load S-Record file over serial line with offset 'off'\n"
@@ -995,16 +995,16 @@
 
 #if (CONFIG_COMMANDS & CFG_CMD_SAVES)
 #ifdef	CFG_LOADS_BAUD_CHANGE
-cmd_tbl_t U_BOOT_CMD(SAVES) = MK_CMD_ENTRY(
-	"saves", 4, 0,	do_save_serial,
+U_BOOT_CMD(
+	saves, 4, 0,	do_save_serial,
 	"saves   - save S-Record file over serial line\n",
 	"[ off ] [size] [ baud ]\n"
 	"    - save S-Record file over serial line"
 	" with offset 'off', size 'size' and baudrate 'baud'\n"
 );
 #else	/* ! CFG_LOADS_BAUD_CHANGE */
-cmd_tbl_t U_BOOT_CMD(SAVES) = MK_CMD_ENTRY(
-	"saves", 3, 0,	do_save_serial,
+U_BOOT_CMD(
+	saves, 3, 0,	do_save_serial,
 	"saves   - save S-Record file over serial line\n",
 	"[ off ] [size]\n"
 	"    - save S-Record file over serial line with offset 'off' and size 'size'\n"
@@ -1015,8 +1015,8 @@
 
 
 #if (CONFIG_COMMANDS & CFG_CMD_LOADB)
-cmd_tbl_t U_BOOT_CMD(LOADB) = MK_CMD_ENTRY(
-	"loadb", 3, 0,	do_load_serial_bin,
+U_BOOT_CMD(
+	loadb, 3, 0,	do_load_serial_bin,
 	"loadb   - load binary file over serial line (kermit mode)\n",
 	"[ off ] [ baud ]\n"
 	"    - load binary file over serial line"
@@ -1047,8 +1047,8 @@
 
 /* -------------------------------------------------------------------- */
 
-cmd_tbl_t U_BOOT_CMD(HWFLOW) = MK_CMD_ENTRY(
-	"hwflow [on|off]", 2, 0,	do_hwflow,
+U_BOOT_CMD(
+	hwflow [on|off], 2, 0,	do_hwflow,
 	"hwflow  - turn the harwdare flow control on/off\n",
 	"\n - change RTS/CTS hardware flow control over serial line\n"
 );
diff --git a/common/cmd_log.c b/common/cmd_log.c
index 534c67e..ace2d52 100644
--- a/common/cmd_log.c
+++ b/common/cmd_log.c
@@ -202,8 +202,8 @@
 	}
 }
 #if defined(CONFIG_LOGBUFFER)
-cmd_tbl_t U_BOOT_CMD(LOG) = MK_CMD_ENTRY(
-	"log",     255,	1,	do_log,
+U_BOOT_CMD(
+	log,     255,	1,	do_log,
 	"log     - manipulate logbuffer\n",
 	"info   - show pointer details\n"
 	"log reset  - clear contents\n"
diff --git a/common/cmd_mem.c b/common/cmd_mem.c
index 4d02d2d..7e6c19e 100644
--- a/common/cmd_mem.c
+++ b/common/cmd_mem.c
@@ -963,66 +963,66 @@
 
 /**************************************************/
 #if (CONFIG_COMMANDS & CFG_CMD_MEMORY)
-cmd_tbl_t U_BOOT_CMD(MD) = MK_CMD_ENTRY(
-	"md",     3,     1,      do_mem_md,
+U_BOOT_CMD(
+	md,     3,     1,      do_mem_md,
 	"md      - memory display\n",
 	"[.b, .w, .l] address [# of objects]\n    - memory display\n"
 );
 
 
-cmd_tbl_t U_BOOT_CMD(MM) = MK_CMD_ENTRY(
-	"mm",     2,      1,       do_mem_mm,
+U_BOOT_CMD(
+	mm,     2,      1,       do_mem_mm,
 	"mm      - memory modify (auto-incrementing)\n",
 	"[.b, .w, .l] address\n" "    - memory modify, auto increment address\n"
 );
 
 
-cmd_tbl_t U_BOOT_CMD(NM) = MK_CMD_ENTRY(
-	"nm",     2,	    1,     	do_mem_nm,
+U_BOOT_CMD(
+	nm,     2,	    1,     	do_mem_nm,
 	"nm      - memory modify (constant address)\n",
 	"[.b, .w, .l] address\n    - memory modify, read and keep address\n"
 );
 
-cmd_tbl_t U_BOOT_CMD(MW) = MK_CMD_ENTRY(
-	"mw",    4,    1,     do_mem_mw,
+U_BOOT_CMD(
+	mw,    4,    1,     do_mem_mw,
 	"mw      - memory write (fill)\n",
 	"[.b, .w, .l] address value [count]\n    - write memory\n"
 );
 
-cmd_tbl_t U_BOOT_CMD(CP) = MK_CMD_ENTRY(
-	"cp",    4,    1,    do_mem_cp,
+U_BOOT_CMD(
+	cp,    4,    1,    do_mem_cp,
 	"cp      - memory copy\n",
 	"[.b, .w, .l] source target count\n    - copy memory\n"
 );
 
-cmd_tbl_t U_BOOT_CMD(CMP) = MK_CMD_ENTRY(
-	"cmp",    4,     1,     do_mem_cmp,
+U_BOOT_CMD(
+	cmp,    4,     1,     do_mem_cmp,
 	"cmp     - memory compare\n",
 	"[.b, .w, .l] addr1 addr2 count\n    - compare memory\n"
 );
 
-cmd_tbl_t U_BOOT_CMD(CRC32) = MK_CMD_ENTRY(
-	"crc32",    4,    1,     do_mem_crc,
+U_BOOT_CMD(
+	crc32,    4,    1,     do_mem_crc,
 	"crc32   - checksum calculation\n",
 	"address count [addr]\n    - compute CRC32 checksum [save at addr]\n"
 );
 
-cmd_tbl_t U_BOOT_CMD(BASE) = MK_CMD_ENTRY(
-	"base",    2,    1,     do_mem_base,
+U_BOOT_CMD(
+	base,    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"
 );
 
-cmd_tbl_t U_BOOT_CMD(LOOP) = MK_CMD_ENTRY(
-	"loop",    3,    1,    do_mem_loop,
+U_BOOT_CMD(
+	loop,    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"
 );
 
-cmd_tbl_t U_BOOT_CMD(MTEST) = MK_CMD_ENTRY(
-	"mtest",    4,    1,     do_mem_mtest,
+U_BOOT_CMD(
+	mtest,    4,    1,     do_mem_mtest,
 	"mtest   - simple RAM test\n",
 	"[start [end [pattern]]]\n"
 	"    - simple RAM read/write test\n"
diff --git a/common/cmd_mii.c b/common/cmd_mii.c
index d74a06f..18fad1e 100644
--- a/common/cmd_mii.c
+++ b/common/cmd_mii.c
@@ -129,8 +129,8 @@
 
 /***************************************************/
 
-cmd_tbl_t U_BOOT_CMD(MII) = MK_CMD_ENTRY(
-	"mii",	5,	1,	do_mii,
+U_BOOT_CMD(
+	mii,	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"
diff --git a/common/cmd_misc.c b/common/cmd_misc.c
index 76fe267..674eafc 100644
--- a/common/cmd_misc.c
+++ b/common/cmd_misc.c
@@ -56,15 +56,15 @@
 #if (CONFIG_COMMANDS & CFG_CMD_IRQ)
 int do_irqinfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
 
-cmd_tbl_t U_BOOT_CMD(IRQINFO) = MK_CMD_ENTRY(
-	"irqinfo",    1,    1,     do_irqinfo,
+U_BOOT_CMD(
+	irqinfo,    1,    1,     do_irqinfo,
 	"irqinfo - print information about IRQs\n",
 	NULL
 );
 #endif  /* CONFIG_COMMANDS & CFG_CMD_IRQ */
 
-cmd_tbl_t U_BOOT_CMD(MISC) = MK_CMD_ENTRY(
-	"sleep" ,    2,    2,     do_sleep,
+U_BOOT_CMD(
+	sleep ,    2,    2,     do_sleep,
 	"sleep   - delay execution for some time\n",
 	"N\n"
 	"    - delay execution for N seconds (N is _decimal_ !!!)\n"
diff --git a/common/cmd_mmc.c b/common/cmd_mmc.c
index 39c18cc..573eb97 100644
--- a/common/cmd_mmc.c
+++ b/common/cmd_mmc.c
@@ -37,8 +37,8 @@
 	return 0;
 }
 
-cmd_tbl_t U_BOOT_CMD(MMCINIT) = MK_CMD_ENTRY(
-	"mmcinit",	1,	0,	do_mmc,
+U_BOOT_CMD(
+	mmcinit,	1,	0,	do_mmc,
 	"mmcinit - init mmc card\n",
 	NULL
 );
diff --git a/common/cmd_nand.c b/common/cmd_nand.c
index 1da5b03..137f34f 100644
--- a/common/cmd_nand.c
+++ b/common/cmd_nand.c
@@ -247,8 +247,8 @@
     }
 }
 
-cmd_tbl_t U_BOOT_CMD(NAND) = MK_CMD_ENTRY(
-	"nand",	5,	1,	do_nand,
+U_BOOT_CMD(
+	nand,	5,	1,	do_nand,
 	"nand    - NAND sub-system\n",
 	"info  - show available NAND devices\n"
 	"nand device [dev] - show or set current device\n"
@@ -363,8 +363,8 @@
 	return rcode;
 }
 
-cmd_tbl_t U_BOOT_CMD(NBOOT) = MK_CMD_ENTRY(
-	"nboot",	4,	1,	do_nandboot,
+U_BOOT_CMD(
+	nboot,	4,	1,	do_nandboot,
 	"nboot   - boot from NAND device\n",
 	"loadAddr dev\n"
 );
diff --git a/common/cmd_net.c b/common/cmd_net.c
index 01f5f91..fd7ff56 100644
--- a/common/cmd_net.c
+++ b/common/cmd_net.c
@@ -40,8 +40,8 @@
 	return netboot_common (BOOTP, cmdtp, argc, argv);
 }
 
-cmd_tbl_t U_BOOT_CMD(BOOTP) = MK_CMD_ENTRY(
-	"bootp",	3,	1,	do_bootp,
+U_BOOT_CMD(
+	bootp,	3,	1,	do_bootp,
 	"bootp   - boot image via network using BootP/TFTP protocol\n",
 	"[loadAddress] [bootfilename]\n"
 );
@@ -51,8 +51,8 @@
 	return netboot_common (TFTP, cmdtp, argc, argv);
 }
 
-cmd_tbl_t U_BOOT_CMD(TFTPB) = MK_CMD_ENTRY(
-	"tftpboot",	3,	1,	do_tftpb,
+U_BOOT_CMD(
+	tftpboot,	3,	1,	do_tftpb,
 	"tftpboot- boot image via network using TFTP protocol\n",
 	"[loadAddress] [bootfilename]\n"
 );
@@ -62,8 +62,8 @@
 	return netboot_common (RARP, cmdtp, argc, argv);
 }
 
-cmd_tbl_t U_BOOT_CMD(RARPB) = MK_CMD_ENTRY(
-	"rarpboot",	3,	1,	do_rarpb,
+U_BOOT_CMD(
+	rarpboot,	3,	1,	do_rarpb,
 	"rarpboot- boot image via network using RARP/TFTP protocol\n",
 	"[loadAddress] [bootfilename]\n"
 );
@@ -74,8 +74,8 @@
 	return netboot_common(DHCP, cmdtp, argc, argv);
 }
 
-cmd_tbl_t U_BOOT_CMD(DHCP) = MK_CMD_ENTRY(
-	"dhcp",	3,	1,	do_dhcp,
+U_BOOT_CMD(
+	dhcp,	3,	1,	do_dhcp,
 	"dhcp    - invoke DHCP client to obtain IP/boot params\n",
 	"\n"
 );
diff --git a/common/cmd_nvedit.c b/common/cmd_nvedit.c
index 9cf8b90..bfc69bd 100644
--- a/common/cmd_nvedit.c
+++ b/common/cmd_nvedit.c
@@ -561,16 +561,16 @@
 
 /**************************************************/
 
-cmd_tbl_t U_BOOT_CMD(PRINTENV) = MK_CMD_ENTRY(
-	"printenv", CFG_MAXARGS, 1,	do_printenv,
+U_BOOT_CMD(
+	printenv, 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"
 );
 
-cmd_tbl_t U_BOOT_CMD(SETENV) = MK_CMD_ENTRY(
-	"setenv", CFG_MAXARGS, 0,	do_setenv,
+U_BOOT_CMD(
+	setenv, CFG_MAXARGS, 0,	do_setenv,
 	"setenv  - set environment variables\n",
 	"name value ...\n"
 	"    - set environment variable 'name' to 'value ...'\n"
@@ -580,8 +580,8 @@
 
 #if ((CONFIG_COMMANDS & (CFG_CMD_ENV|CFG_CMD_FLASH)) == (CFG_CMD_ENV|CFG_CMD_FLASH))
 
-cmd_tbl_t U_BOOT_CMD(SAVEENV) = MK_CMD_ENTRY(
-	"saveenv", 1, 0,	do_saveenv,
+U_BOOT_CMD(
+	saveenv, 1, 0,	do_saveenv,
 	"saveenv - save environment variables to persistent storage\n",
 	NULL
 );
@@ -590,8 +590,8 @@
 
 #if (CONFIG_COMMANDS & CFG_CMD_ASKENV)
 
-cmd_tbl_t U_BOOT_CMD(ASKENV) = MK_CMD_ENTRY(
-	"askenv",	CFG_MAXARGS,	1,	do_askenv,
+U_BOOT_CMD(
+	askenv,	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"
@@ -607,8 +607,8 @@
 
 #if (CONFIG_COMMANDS & CFG_CMD_RUN)
 int do_run (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
-cmd_tbl_t U_BOOT_CMD(RUN) = MK_CMD_ENTRY(
-	"run",	CFG_MAXARGS,	1,	do_run,
+U_BOOT_CMD(
+	run,	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"
diff --git a/common/cmd_pci.c b/common/cmd_pci.c
index 7641d5c..8d4d901 100644
--- a/common/cmd_pci.c
+++ b/common/cmd_pci.c
@@ -548,8 +548,8 @@
 /***************************************************/
 
 
-cmd_tbl_t U_BOOT_CMD(PCI) = MK_CMD_ENTRY(
-	"pci",	5,	1,	do_pci,
+U_BOOT_CMD(
+	pci,	5,	1,	do_pci,
 	"pci     - list and access PCI Configuraton Space\n",
 	"[bus] [long]\n"
 	"    - short or long list of PCI devices on bus 'bus'\n"
diff --git a/common/cmd_pcmcia.c b/common/cmd_pcmcia.c
index 2aa2a23..bfdcbda 100644
--- a/common/cmd_pcmcia.c
+++ b/common/cmd_pcmcia.c
@@ -2487,8 +2487,8 @@
 /**************************************************/
 
 #if (CONFIG_COMMANDS & CFG_CMD_PCMCIA)
-cmd_tbl_t U_BOOT_CMD(PINIT) = MK_CMD_ENTRY(
-	"pinit",	2,	1,	do_pinit,
+U_BOOT_CMD(
+	pinit,	2,	1,	do_pinit,
 	"pinit   - PCMCIA sub-system\n",
 	"on  - power on PCMCIA socket\n"
 	"pinit off - power off PCMCIA socket\n"
diff --git a/common/cmd_portio.c b/common/cmd_portio.c
index ad84b81..d2e4c4b 100644
--- a/common/cmd_portio.c
+++ b/common/cmd_portio.c
@@ -95,8 +95,8 @@
 	return 0;
 }
 
-cmd_tbl_t U_BOOT_CMD(PORTIO_OUT) = MK_CMD_ENTRY(
-	"out",	3,	1,	do_portio_out,
+U_BOOT_CMD(
+	out,	3,	1,	do_portio_out,
 	"out     - write datum to IO port\n",
 	"[.b, .w, .l] port value\n    - output to IO port\n"
 );
@@ -159,8 +159,8 @@
 	return 0;
 }
 
-cmd_tbl_t U_BOOT_CMD(PORTIO_IN) = MK_CMD_ENTRY(
-	"in",	2,	1,	do_portio_in,
+U_BOOT_CMD(
+	in,	2,	1,	do_portio_in,
 	"in      - read data from an IO port\n",
 	"[.b, .w, .l] port\n"
 	"    - read datum from IO port\n"
diff --git a/common/cmd_reginfo.c b/common/cmd_reginfo.c
index aa9abf9..60a015c 100644
--- a/common/cmd_reginfo.c
+++ b/common/cmd_reginfo.c
@@ -219,8 +219,8 @@
 #if (defined(CONFIG_8xx) || defined(CONFIG_405GP)) && \
      (CONFIG_COMMANDS & CFG_CMD_REGINFO)
 
-cmd_tbl_t U_BOOT_CMD(REGINFO) =	MK_CMD_ENTRY(
- 	"reginfo",	2,	1,	do_reginfo,
+U_BOOT_CMD(
+ 	reginfo,	2,	1,	do_reginfo,
 	"reginfo - print register information\n",
 );
 #endif
diff --git a/common/cmd_spi.c b/common/cmd_spi.c
index 82cb673..3335a14 100644
--- a/common/cmd_spi.c
+++ b/common/cmd_spi.c
@@ -131,8 +131,8 @@
 
 /***************************************************/
 
-cmd_tbl_t U_BOOT_CMD(SPI) = MK_CMD_ENTRY(
-	"sspi",	5,	1,	do_spi,
+U_BOOT_CMD(
+	sspi,	5,	1,	do_spi,
 	"sspi     - SPI utility commands\n",
 	"<device> <bit_len> <dout> - Send <bit_len> bits from <dout> out the SPI\n"
 	"<device>  - Identifies the chip select of the device\n"
diff --git a/common/cmd_usb.c b/common/cmd_usb.c
index 17e6433..26b39d0 100644
--- a/common/cmd_usb.c
+++ b/common/cmd_usb.c
@@ -594,8 +594,8 @@
 #if (CONFIG_COMMANDS & CFG_CMD_USB)
 
 #ifdef CONFIG_USB_STORAGE
-cmd_tbl_t U_BOOT_CMD(USB) = MK_CMD_ENTRY(
-	"usb",	5,	1,	do_usb,
+U_BOOT_CMD(
+	usb,	5,	1,	do_usb,
 	"usb     - USB sub-system\n",
 	"reset - reset (rescan) USB controller\n"
 	"usb  stop [f]  - stop USB [f]=force stop\n"
@@ -609,15 +609,15 @@
 );
 
 
-cmd_tbl_t U_BOOT_CMD(USBBOOT) = MK_CMD_ENTRY(
-	"usbboot",	3,	1,	do_usbboot,
+U_BOOT_CMD(
+	usbboot,	3,	1,	do_usbboot,
 	"usbboot - boot from USB device\n",
 	"loadAddr dev:part\n"
 );
 
 #else
-cmd_tbl_t U_BOOT_CMD(USB) = MK_CMD_ENTRY(
-	"usb",	5,	1,	do_usb,
+U_BOOT_CMD(
+	usb,	5,	1,	do_usb,
 	"usb     - USB sub-system\n",
 	"reset - reset (rescan) USB controller\n"
 	"usb  tree  - show USB device tree\n"
diff --git a/common/cmd_vfd.c b/common/cmd_vfd.c
index 61ebe1c..f047149 100644
--- a/common/cmd_vfd.c
+++ b/common/cmd_vfd.c
@@ -65,8 +65,8 @@
 	return 0;
 }
 
-cmd_tbl_t U_BOOT_CMD(VFD) = MK_CMD_ENTRY(
- 	"vfd",	2,	0,	do_vfd,
+U_BOOT_CMD(
+ 	vfd,	2,	0,	do_vfd,
  	"vfd     - load a bitmap to the VFDs on TRAB\n",
  	"N\n"
  	"    - load bitmap N to the VFDs (N is _decimal_ !!!)\n"
diff --git a/common/command.c b/common/command.c
index 9a982b8..dfec9c1 100644
--- a/common/command.c
+++ b/common/command.c
@@ -36,8 +36,8 @@
 	return 0;
 }
 
-cmd_tbl_t U_BOOT_CMD(VERS) = MK_CMD_ENTRY(
-	"version",	1,		1,	do_version,
+U_BOOT_CMD(
+	version,	1,		1,	do_version,
  	"version - print monitor version\n",
 	NULL
 );
@@ -67,8 +67,8 @@
 	return 0;
 }
 
-cmd_tbl_t U_BOOT_CMD(ECHO) = MK_CMD_ENTRY(
-	"echo",	CFG_MAXARGS,	1,	do_echo,
+U_BOOT_CMD(
+	echo,	CFG_MAXARGS,	1,	do_echo,
  	"echo    - echo args to console\n",
  	"[args..]\n"
 	"    - echo args to console; \\c suppresses newline\n"
@@ -158,8 +158,8 @@
 }
 
 
-cmd_tbl_t U_BOOT_CMD(HELP) = MK_CMD_ENTRY(
-	"help",	CFG_MAXARGS,	1,	do_help,
+U_BOOT_CMD(
+	help,	CFG_MAXARGS,	1,	do_help,
  	"help    - print online help\n",
  	"[command ...]\n"
  	"    - show help information (for 'command')\n"
@@ -169,11 +169,19 @@
   "'help' with one or more command names as arguments.\n"
 );
 
-cmd_tbl_t U_BOOT_CMD(QUES) = MK_CMD_ENTRY(
+/* This do not ust the U_BOOT_CMD macro as ? can't be used in symbol names */
+#ifdef  CFG_LONGHELP
+cmd_tbl_t __u_boot_cmd_question_mark Struct_Section = {
 	"?",	CFG_MAXARGS,	1,	do_help,
  	"?       - alias for 'help'\n",
 	NULL
-);
+};
+#else
+cmd_tbl_t __u_boot_cmd_question_mark Struct_Section = {
+	"?",	CFG_MAXARGS,	1,	do_help,
+ 	"?       - alias for 'help'\n"
+};
+#endif /* CFG_LONGHELP */
 
 /***************************************************************************
  * find command table entry for a command
diff --git a/common/kgdb.c b/common/kgdb.c
index 73fd9a8..06adb3e 100644
--- a/common/kgdb.c
+++ b/common/kgdb.c
@@ -573,8 +573,8 @@
     return 0;
 }
 
-cmd_tbl_t U_BOOT_CMD(KGDB) = MK_CMD_ENTRY(
-	"kgdb", CFG_MAXARGS, 1,	do_kgdb,
+U_BOOT_CMD(
+	kgdb, CFG_MAXARGS, 1,	do_kgdb,
 	"kgdb    - enter gdb remote debug mode\n",
 	"[arg0 arg1 .. argN]\n"
 	"    - executes a breakpoint so that kgdb mode is\n"
diff --git a/doc/README.commands b/doc/README.commands
index 7887f63..d678992 100644
--- a/doc/README.commands
+++ b/doc/README.commands
@@ -1,103 +1,31 @@
-#
-# The commands in this table are sorted alphabetically by the
-# command name and in descending order by the command name string
-# length. This is to prevent conflicts in command name parsing.
-# Please ensure that new commands are added according to that rule.
-# See $(TOPDIR)/common/command.c
-#
-########################
-#
-# command	length
-#
-########################
-askenv		8
-as		2
-autoscr		5
-base		2
-bdinfo		2
-bmp		3
-bootelf		7
-bootm		5
-bootp		5
-bootvx		6
-bootd		4
-break		2
-brginfo		3
-carinfo		3
-chpart		6
-cmp		3
-coninfo		5
-continue	4
-cp		2
-crc32		3
-date		3
-dcache		2
-dhcp		4
-dmainfo		3
-ds		2
-dtt		3
-echo		4
-eeprom		3
-erase		3
-fccinfo		3
-fdcboot		4
-flinfo		3
-fpga		4
-fsinfo		5
-fsload		5
-getdcr		6		# IBM 4XX DCR registers
-go		2
-help		1
-i2cinfo		4
-i2c		3
-icache		2
-icinfo		3
-ide		3
-iminfo		3
-iopinfo		3
-irqinfo		3
-kgdb		4
-loadb		5
-loads		5
-loop		4
-ls		2
-mccinfo		3
-md		2
-memcinfo	4
-mii		3
-mm		2
-mtest		5
-muxinfo		3
-mw		2
-nand		3
-nboot		4
-next		4
-nm		2
-pciinfo		3
-pinit		4
-printenv	8
-protect		4
-rarpboot	4
-rdump		5
-reginfo		3
-reset		5
-run		3
-saveenv		4
-sccinfo		3
-scsiboot	5
-scsi		4
-siiinfo		3
-sitinfo		3
-siuinfo		3
-setdcr		6		# IBM 4XX DCR registers
-setenv		6
-smcinfo		3
-spiinfo		3
-sspi		4
-stack		5
-step		4
-tftpboot	4
-usbboot		5
-usb		4
-version		4
-?		1
+
+Commands are added to U-Boot by creating a new command structure.
+This is done by first including command.h
+
+Then using the U_BOOT_CMD() macro to fill in a cmd_tbl_t struct.
+
+U_BOOT_CMD(name,maxargs,repeatable,command,"usage","help")
+
+name:	 is the name of the commad. THIS IS NOT a string.
+maxargs: the maximumn numbers of arguments this function takes
+command: Function pointer (*cmd)(struct cmd_tbl_s *, int, int, char *[]);
+usage:	 Short description. This is a string
+help:	 long description. This is a string
+
+
+**** Behinde the scene ******
+
+The structure created is named with a special prefix (__u_boot_cmd_)
+and placed by the linker in a special section.
+
+This makes it possible for the final link to extract all commands
+compiled into any object code and construct a static array so the
+command can be found in an array starting at __u_boot_cmd_start.
+
+If a new board is defined do not forget to define the command section
+by writing in u-boot.lds ($(TOPDIR)/board/boardname/u-boot.lds) these
+3 lines:
+
+	__u_boot_cmd_start = .;
+	.u_boot_cmd : { *(.u_boot_cmd) }
+	__u_boot_cmd_end = .;
diff --git a/include/command.h b/include/command.h
index a39c12f..b8c42e1 100644
--- a/include/command.h
+++ b/include/command.h
@@ -40,7 +40,6 @@
 	char		*name;		/* Command Name			*/
 	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)	*/
@@ -83,17 +82,16 @@
 
 
 #define Struct_Section  __attribute__ ((unused,section (".u_boot_cmd")))
-#define U_BOOT_CMD(x)  __u_boot_cmd_##x Struct_Section
 
 #ifdef  CFG_LONGHELP
 
-#define MK_CMD_ENTRY(name,maxargs,rep,cmd,usage,help)	\
-			{ name, maxargs, rep, cmd, usage, help }
+#define U_BOOT_CMD(name,maxargs,rep,cmd,usage,help) \
+cmd_tbl_t __u_boot_cmd_##name Struct_Section = {#name, maxargs, rep, cmd, usage, help}
 
 #else	/* no long help info */
 
-#define MK_CMD_ENTRY(name,maxargs,rep,cmd,usage,help)	\
-			{ name, maxargs, rep, cmd, usage }
+#define U_BOOT_CMD(name,maxargs,rep,cmd,usage,help) \
+cmd_tbl_t __u_boot_cmd_##name Struct_Section = {#name, maxargs, rep, cmd, usage}
 
 #endif	/* CFG_LONGHELP */
 
diff --git a/lib_generic/display_options.c b/lib_generic/display_options.c
index ac04bff..512e898 100644
--- a/lib_generic/display_options.c
+++ b/lib_generic/display_options.c
@@ -54,6 +54,11 @@
 
 	m = (10 * (size - (n * d)) + (d / 2) ) / d;
 
+	if (m >= 10) {
+		m -= 10;
+		n += 1;
+	}
+
 	printf ("%2ld", n);
 	if (m) {
 		printf (".%ld", m);