1 2Commands are added to U-Boot by creating a new command structure. 3This is done by first including command.h, then using the U_BOOT_CMD() macro 4to fill in a cmd_tbl_t struct. 5 6U_BOOT_CMD(name,maxargs,repeatable,command,"usage","help") 7 8name: is the name of the commad. THIS IS NOT a string. 9maxargs: the maximum number of arguments this function takes 10repeatable: either 0 or 1 to indicate if autorepeat is allowed 11command: Function pointer (*cmd)(struct cmd_tbl_s *, int, int, char *[]); 12usage: Short description. This is a string 13help: Long description. This is a string 14 15 16**** Behind the scene ****** 17 18The structure created is named with a special prefix (__u_boot_cmd_) 19and placed by the linker in a special section. 20 21This makes it possible for the final link to extract all commands 22compiled into any object code and construct a static array so the 23command can be found in an array starting at __u_boot_cmd_start. 24 25If a new board is defined do not forget to define the command section 26by writing in u-boot.lds ($(TOPDIR)/board/boardname/u-boot.lds) these 273 lines: 28 29 __u_boot_cmd_start = .; 30 .u_boot_cmd : { *(.u_boot_cmd) } 31 __u_boot_cmd_end = .; 32