arm_debug: doc - memory read validated by 32 KB flash dump
cpu_read dumped the LPC2103's full 32 KB flash to Intel HEX (objcopy-verified: all records/checksums valid, correct vectors). Update the comments to reflect the working state and the power-on -> one halt -> dump flow (context save/restore for repeated reads is the next step). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -17,14 +17,14 @@
|
|||||||
* use "quiet" ops that never enter Run-Test/Idle (so they don't clock
|
* use "quiet" ops that never enter Run-Test/Idle (so they don't clock
|
||||||
* the core and clobber loaded registers), and the sys-speed poll
|
* the core and clobber loaded registers), and the sys-speed poll
|
||||||
* drives the access one clock at a time, stopping the instant
|
* drives the access one clock at a time, stopping the instant
|
||||||
* SYSCOMP appears. Validated by reading the LPC2103 reset vectors and
|
* SYSCOMP appears. Validated by dumping the LPC2103's full 32 KB
|
||||||
* contiguous multi-block code.
|
* flash to Intel HEX (objcopy-verified, correct vectors + code).
|
||||||
* - WIP: reliability across halt states. The first read after certain
|
* - caveat: the read clobbers r0..r14 and there is no context
|
||||||
* halts can time out (sys-speed never reaches SYSCOMP), which leaves
|
* save/restore, so the intended flow is power-on -> one halt -> dump.
|
||||||
* the core running free; subsequent reads in the same halt are
|
* Repeated halt/read cycles without a power-cycle degrade (a later
|
||||||
* consistent and correct. Needs a deterministic pre-read pipeline
|
* re-halt of the clobbered core is messy and may time out).
|
||||||
* normalization for every halt state. See arm7-debug-dclk-timing.
|
* - todo: context save/restore (clean resume + repeated reads),
|
||||||
* - todo: read reliability, memory write, arm_flash.
|
* memory write, arm_flash.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* ARM7TDMI public JTAG instructions (IR length 4). */
|
/* ARM7TDMI public JTAG instructions (IR length 4). */
|
||||||
@@ -528,10 +528,10 @@ static int execute_sys_speed(jtag_core *jc)
|
|||||||
* Core registers r0..r14 are clobbered (acceptable for a read-then-
|
* Core registers r0..r14 are clobbered (acceptable for a read-then-
|
||||||
* power-cycle flow). The core must already be halted (DBGACK).
|
* power-cycle flow). The core must already be halted (DBGACK).
|
||||||
*
|
*
|
||||||
* Reads real memory correctly (validated: LPC2103 vectors + multi-block
|
* Reads real memory correctly (validated by an objcopy-verified 32 KB
|
||||||
* code). WORK IN PROGRESS: not yet reliable across all halt states - the
|
* flash dump of the LPC2103). Intended flow is power-on -> one halt ->
|
||||||
* first read after some halts times out and leaves the core running. See
|
* dump; see the file header and the arm7-debug-dclk-timing note for the
|
||||||
* the arm7-debug-dclk-timing design note. */
|
* repeated-halt caveat. */
|
||||||
int arm_debug_mem_read(jtag_core *jc, const jtag_target *t,
|
int arm_debug_mem_read(jtag_core *jc, const jtag_target *t,
|
||||||
unsigned long addr, void *buf, unsigned long len)
|
unsigned long addr, void *buf, unsigned long len)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user