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);
