1 | Here you will find needed documentation to define your own command files to use |
---|
2 | with tt-loader. |
---|
3 | |
---|
4 | === General syntax === |
---|
5 | |
---|
6 | 1. One command is generally completly defined by one line finished by a single |
---|
7 | line feed. |
---|
8 | |
---|
9 | 2. The command function is defined by only the first char. |
---|
10 | |
---|
11 | 3. Commands with one parameter must only be one char, than a space or line feed, |
---|
12 | and then the parameter. |
---|
13 | |
---|
14 | 4. Command can only have one parameter. |
---|
15 | |
---|
16 | 5. One char commands can be separated by just ';' char without spaces. This is |
---|
17 | used for example to dump large memory blocks with 'M' command. |
---|
18 | |
---|
19 | === Comments === |
---|
20 | |
---|
21 | 6. Comments are defined with chars '/' or '#': |
---|
22 | * lines beginning with '/' are completly ignored |
---|
23 | * lines beginning with '#' are printed out but ignored |
---|
24 | |
---|
25 | === One char commands === |
---|
26 | |
---|
27 | 7. 'M' is used to dump the content from currently known address. The known |
---|
28 | address is always initialized with 'a' command. As memory is dump, the known |
---|
29 | address is updated to point to the next memory block. Dumps are done by block |
---|
30 | of 8 kilo-bytes. |
---|
31 | |
---|
32 | 8. 'P' is used to peek the word pointed by the currently known address. Address |
---|
33 | is then updated to the next word. |
---|
34 | |
---|
35 | 9. 'S' is used to set the stack address to the currently known address. This can |
---|
36 | be useful when testing boot loaders in case the current stack may be reset to |
---|
37 | zeros. |
---|
38 | |
---|
39 | 10. 'c' is used to call a program from the currently known address. The program |
---|
40 | should return and the returned value is logged. |
---|
41 | |
---|
42 | 11. 'b' is used to boot to the last known address. Program should not return. |
---|
43 | |
---|
44 | 12. 'e' is used to specify the end of the commands. No other command will be |
---|
45 | read after this command. |
---|
46 | |
---|
47 | 13. 'D' is used to ask a download from the OMAP device to a file. The filename |
---|
48 | must have been spécified earlier as if it is still exists, the download will |
---|
49 | only occur if the CRC32 of the local file is different from the remote CRC32 |
---|
50 | of the checked memory. |
---|
51 | |
---|
52 | === One parameter commands === |
---|
53 | |
---|
54 | 13. 'a' must be used to update the currently known address in the OMAP device. |
---|
55 | The address should be specified as hexadecimal with 8 digits as in the |
---|
56 | following format: |
---|
57 | a 0x12345678 |
---|
58 | |
---|
59 | 14. 'f' is used to load a file into the device memory. The start address must |
---|
60 | has been set with 'a' command just before. The parameter must be the path to |
---|
61 | the file to load. |
---|
62 | |
---|
63 | 15. 'd' is used to save to a file the content of the memory downloaded with 'm' |
---|
64 | command. The parameter id the path to path to write. |
---|
65 | If the file exists, it is just overwritten. |
---|
66 | The file size will be the size of the downloaded memory. |
---|
67 | |
---|
68 | 16. 'F' is used to prepare a next download. The parameter must be the path to |
---|
69 | the file to be created or updated. This command is necessary if you must to |
---|
70 | update an existing file only if CRC32 of local file is different from remote |
---|
71 | memory CRC32 check. This is accomplish by using the 'C' command with '0' as |
---|
72 | parameter. Later, the 'D' command must be used to update the file. As in the |
---|
73 | following example: |
---|
74 | |
---|
75 | F /tmp/memory-dump.raw |
---|
76 | C 0 |
---|
77 | // Dump 1 Mb from address 0x10000000 |
---|
78 | a 0x10000000 |
---|
79 | m 1024 |
---|
80 | # Updating file is CRC32 has changed |
---|
81 | D |
---|
82 | |
---|
83 | 17. 'C' is used to set a CRC32 is to be checked on the next memory download. The |
---|
84 | parameter is an unsigned integer. It should be specified as an 8-digit |
---|
85 | hexadecimal number or just set to 0. If it is set to 0 and a file has been |
---|
86 | specified with the 'F' command, then the sent CRC32 will be computed from |
---|
87 | the file content. On the next download with 'm' command, this CRC32 will be |
---|
88 | compared to the one found for the targeted memory part. |
---|
89 | |
---|
90 | 18. 'm' is used to just download a memory part to a computer buffer. The |
---|
91 | parameter is an unsigned integer specifying the size of the memory part to |
---|
92 | download. The start address of that part must has been set just before with |
---|
93 | the 'a' command. If a CRC32 has been sent with the 'C' command, you will |
---|
94 | receive an empty part if the CRC32 match the targeted memory part CRC32. |
---|
95 | |
---|
96 | 19. 'k' is used while you want to start a linux kernel. The parameter must be an |
---|
97 | integer specifying the device id. For example, for OMAP P2 device id should |
---|
98 | be set to 491. This id must match one from "linux/arch/arm/tools/mach-types" |
---|
99 | linux kernel source file. The address to boot the kernel must has been |
---|
100 | specified with 'a' command. |
---|
101 | By default, some other ATAG are still set: |
---|
102 | ATAG_MEM memory start is set to 0x10000000 and size to 64 Mbytes. |
---|
103 | ATAG_CORE has defaults (check 2nd.bin sources if you are interested) |
---|
104 | ATAG_INITRD is not set as defaumt initrd size is zero. |
---|
105 | ATAG_CMDLINE is set to: |
---|
106 | "mem=64M console=ttyS0,115200 noinitrd root=/dev/mtdblock_bbs5" |
---|
107 | |
---|
108 | If you need other defaults, you should edit 2nd/config.h or/and the |
---|
109 | set_kernel_args() function in 2nd/main.c and cross-compile 2nd.bin before |
---|
110 | using tt-loader. |
---|
111 | |
---|
112 | TODO: |
---|
113 | * Authorize to override some ATAG default values to boot linux kernel |
---|
114 | * Add a command to validate the CRC32 of the uploaded file to be definitively |
---|
115 | paranoid in some critical case. If the content should be flash to a NAND |
---|
116 | critical part for example. |
---|