Blame view

doc/README.commands 1.31 KB
0d4983930   wdenk   Patch by Kenneth ...
1
2
  
  Commands are added to U-Boot by creating a new command structure.
00309c67a   Peter Meerwald   doc: complete, typos
3
4
  This is done by first including command.h, then using the U_BOOT_CMD() macro
  to fill in a cmd_tbl_t struct.
0d4983930   wdenk   Patch by Kenneth ...
5
6
7
8
  
  U_BOOT_CMD(name,maxargs,repeatable,command,"usage","help")
  
  name:	 is the name of the commad. THIS IS NOT a string.
00309c67a   Peter Meerwald   doc: complete, typos
9
10
  maxargs: the maximum number of arguments this function takes
  repeatable: either 0 or 1 to indicate if autorepeat is allowed
0d4983930   wdenk   Patch by Kenneth ...
11
12
  command: Function pointer (*cmd)(struct cmd_tbl_s *, int, int, char *[]);
  usage:	 Short description. This is a string
00309c67a   Peter Meerwald   doc: complete, typos
13
  help:	 Long description. This is a string
0d4983930   wdenk   Patch by Kenneth ...
14

00309c67a   Peter Meerwald   doc: complete, typos
15
  **** Behind the scene ******
0d4983930   wdenk   Patch by Kenneth ...
16

ef123c525   Albert ARIBAUD   Refactor linker-g...
17
18
19
  The structure created is named with a special prefix and placed by
  the linker in a special section using the linker lists mechanism
  (see include/linker_lists.h)
0d4983930   wdenk   Patch by Kenneth ...
20
21
22
  
  This makes it possible for the final link to extract all commands
  compiled into any object code and construct a static array so the
ef123c525   Albert ARIBAUD   Refactor linker-g...
23
  command array can be iterated over using the linker lists macros.
0d4983930   wdenk   Patch by Kenneth ...
24

ef123c525   Albert ARIBAUD   Refactor linker-g...
25
26
27
  The linker lists feature ensures that the linker does not discard
  these symbols when linking full U-Boot even though they are not
  referenced in the source code as such.
2d1d65838   Tom Rini   README.commands: ...
28

0d4983930   wdenk   Patch by Kenneth ...
29
30
31
  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:
6c7c946ca   Marek Vasut   common: Convert t...
32
  	.u_boot_list : {
ef123c525   Albert ARIBAUD   Refactor linker-g...
33
  		KEEP(*(SORT(.u_boot_list*)));
6c7c946ca   Marek Vasut   common: Convert t...
34
  	}