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.