FreeCalypso > hg > freecalypso-hwlab
comparison doc/Calypso-OpenOCD-Howto @ 64:6d02f30e35ad
doc/Calypso-OpenOCD-Howto: noted lack of performance optimizations
| author | Mychaela Falconia <falcon@freecalypso.org> |
|---|---|
| date | Sat, 29 Jun 2019 22:45:18 +0000 |
| parents | 66879ce73b3e |
| children |
comparison
equal
deleted
inserted
replaced
| 63:66879ce73b3e | 64:6d02f30e35ad |
|---|---|
| 103 | 103 |
| 104 The enable_halt step is a custom Tcl procedure added by us, issuing the | 104 The enable_halt step is a custom Tcl procedure added by us, issuing the |
| 105 mysterious 0xB instruction and DR scan that are needed in order to enable halts | 105 mysterious 0xB instruction and DR scan that are needed in order to enable halts |
| 106 on TI's modified version of the ARM7TDMI core. Once you have halted as above, | 106 on TI's modified version of the ARM7TDMI core. Once you have halted as above, |
| 107 you can resume and halt again without needing to re-execute the enable_halt | 107 you can resume and halt again without needing to re-execute the enable_halt |
| 108 step; the only time when the enable_halt steps will need to be repeated is when | 108 step; the only time when the enable_halt step will need to be repeated is when |
| 109 the Calypso is reset. | 109 the Calypso is reset. |
| 110 | 110 |
| 111 You can safely halt the Calypso in this manner when the flash is blank and the | 111 You can safely halt the Calypso in this manner when the flash is blank and the |
| 112 boot ROM waits forever for a serial download, when you have loaded a RAM image | 112 boot ROM waits forever for a serial download, when you have loaded a RAM image |
| 113 with fc-xram -j and the target is left in loadagent, or when one of our standard | 113 with fc-xram -j and the target is left in loadagent, or when one of our standard |
| 162 much unlike nTESTRESET or XDS_RESET. | 162 much unlike nTESTRESET or XDS_RESET. |
| 163 | 163 |
| 164 It will be up to you to design whatever circuit you wish to use to produce an | 164 It will be up to you to design whatever circuit you wish to use to produce an |
| 165 OC/OD driver that can be triggered from OpenOCD, but connecting RPWON aka DLPWR | 165 OC/OD driver that can be triggered from OpenOCD, but connecting RPWON aka DLPWR |
| 166 directly to an FT2232x I/O pin is not acceptable. Copying the circuit from | 166 directly to an FT2232x I/O pin is not acceptable. Copying the circuit from |
| 167 TI/FC development boards that propagates XDS_RESET into nTESTRESET won't work: | 167 TI/FC development boards that propagates XDS_RESET into nTESTRESET won't work |
| 168 this circuit only works when the V-IO regulator is already on, but RPWON is not | 168 either: this circuit only works when the V-IO regulator is already on, but |
| 169 a reset and will need to be triggered when the chipset is fully "cold". | 169 RPWON is not a reset and will need to be triggered when the chipset is fully |
| 170 "cold". | |
| 170 | 171 |
| 171 You will also need to figure out the appropriate timing. You will need to | 172 You will also need to figure out the appropriate timing. You will need to |
| 172 insert a certain delay between RPWON assertion and the 'jtag arp_init' step in | 173 insert a certain delay between RPWON assertion and the 'jtag arp_init' step in |
| 173 our reset_halt procedure: the VRPC state machine in the Iota chip will do a | 174 our reset_halt procedure: the VRPC state machine in the Iota chip will do a |
| 174 bunch of work between sensing a low on RPWON and releasing the Calypso from | 175 bunch of work between sensing a low on RPWON and releasing the Calypso from |
| 187 mwh 0xFFFFFB10 0x100 | 188 mwh 0xFFFFFB10 0x100 |
| 188 resume 0 | 189 resume 0 |
| 189 | 190 |
| 190 The boot ROM will run while fc-loadtool is sending its beacons, fc-loadtool | 191 The boot ROM will run while fc-loadtool is sending its beacons, fc-loadtool |
| 191 will load and run loadagent, and you can then recover the flash. | 192 will load and run loadagent, and you can then recover the flash. |
| 193 | |
| 194 Lack of performance optimizations | |
| 195 ================================= | |
| 196 | |
| 197 Our PoC OpenOCD-on-Calypso config does not set up a work area (an area of | |
| 198 system RAM that is declared as a scratchpad for OpenOCD), nor does it enable | |
| 199 arm7_9 dcc_downloads or arm7_9 fast_memory_access. These omissions are | |
| 200 intentional, as those performance optimizations are outside of the scope of | |
| 201 what I set out to do, which is to prove Calypso JTAG as working and provide a | |
| 202 "golden reference" setup. | |
| 203 | |
| 204 If you wish to set up an area in Calypso IRAM as a work area for OpenOCD, which | |
| 205 is a prerequisite for arm7_9 dcc_downloads, you will need to choose the location | |
| 206 based on your specific application - whether a given area will be suitable or | |
| 207 not will depend on exactly what you are debugging and exactly what you are | |
| 208 trying to do, which is once again outside of the scope of this PoC. |
