3 <title>Test results for revision
1.62</title>
17 <td>Initial state
</td>
19 <td>Expected output
</td>
20 <td>Actual output
</td>
24 <td><a name=
"CON001"/>CON001
</td>
27 <td>Telnet connection
</td>
28 <td>Power on, jtag target attached
</td>
29 <td>On console, type
<br><code>telnet ip port
</code></td>
30 <td><code>Open On-Chip Debugger
<br>></code></td>
31 <td><code>Open On-Chip Debugger
<br>></code></td>
35 <td><a name=
"CON002"/>CON002
</td>
38 <td>GDB server connection
</td>
39 <td>Power on, jtag target attached
</td>
40 <td>On GDB console, type
<br><code>target remote ip:port
</code></td>
41 <td><code>Remote debugging using
10.0.0.73:
3333</code></td>
43 (gdb) tar remo
10.0.0.73:
3333<br>
44 Remote debugging using
10.0.0.73:
3333<br>
45 0x00000000 in ?? ()
<br>
58 <td>Initial state
</td>
60 <td>Expected output
</td>
61 <td>Actual output
</td>
65 <td><a name=
"RES001"/>RES001
</td>
68 <td>Reset halt on a blank target
</td>
69 <td>Erase all the content of the flash
</td>
70 <td>Connect via the telnet interface and type
<br><code>reset halt
</code></td>
71 <td>Reset should return without error and the output should contain
<br><code>target state: halted
</code></td>
75 0x00000000: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
<br>
76 0x00000020: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
<br>
77 0x00000040: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
<br>
78 0x00000060: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
<br>
80 JTAG tap: lpc2148.cpu tap/device found:
0x4f1f0f0f (mfg:
0x787, part:
0xf1f0, ver:
0x4)
<br>
81 srst pulls trst - can not reset into halted mode. Issuing halt after reset.
<br>
82 target state: halted
<br>
83 target halted in Thumb state due to debug-request, current mode: Supervisor
<br>
84 cpsr:
0xa00000f3 pc:
0x7fffd2d6<br>
91 <td><a name=
"RES002"/>RES002
</td>
94 <td>Reset init on a blank target
</td>
95 <td>Erase all the content of the flash
</td>
96 <td>Connect via the telnet interface and type
<br><code>reset init
</code></td>
97 <td>Reset should return without error and the output should contain
<br><code>executing reset script 'name_of_the_script'
</code></td>
101 JTAG tap: lpc2148.cpu tap/device found:
0x4f1f0f0f (mfg:
0x787, part:
0xf1f0, ver:
0x4)
<br>
102 srst pulls trst - can not reset into halted mode. Issuing halt after reset.
<br>
103 target state: halted
<br>
104 target halted in Thumb state due to debug-request, current mode: Supervisor
<br>
105 cpsr:
0xa00000f3 pc:
0x7fffd2da<br>
111 NOTE! Even if there is no message, the reset script is being executed (proved by side effects)
</td>
114 <td><a name=
"RES003"/>RES003
</td>
117 <td>Reset after a power cycle of the target
</td>
118 <td>Reset the target then power cycle the target
</td>
119 <td>Connect via the telnet interface and type
<br><code>reset halt
</code> after the power was detected
</td>
120 <td>Reset should return without error and the output should contain
<br><code>target state: halted
</code></td>
123 nsed nSRST asserted.
<br>
124 nsed power dropout.
<br>
125 nsed power restore.
<br>
126 SRST took
186ms to deassert
<br>
127 JTAG tap: lpc2148.cpu tap/device found:
0x4f1f0f0f (mfg:
0x787, part:
0xf1f0, ver:
0x4)
<br>
128 srst pulls trst - can not reset into halted mode. Issuing halt after reset.
<br>
129 target state: halted
<br>
130 target halted in Thumb state due to debug-request, current mode: Supervisor
<br>
131 cpsr:
0xa00000f3 pc:
0x7fffd2d6<br>
134 JTAG tap: lpc2148.cpu tap/device found:
0x4f1f0f0f (mfg:
0x787, part:
0xf1f0, ver:
0x4)
<br>
135 srst pulls trst - can not reset into halted mode. Issuing halt after reset.
<br>
136 target state: halted
<br>
137 target halted in Thumb state due to debug-request, current mode: Supervisor
<br>
138 cpsr:
0xa00000f3 pc:
0x7fffd2d6<br>
145 <td><a name=
"RES004"/>RES004
</td>
148 <td>Reset halt on a blank target where reset halt is supported
</td>
149 <td>Erase all the content of the flash
</td>
150 <td>Connect via the telnet interface and type
<br><code>reset halt
</code></td>
151 <td>Reset should return without error and the output should contain
<br><code>target state: halted
<br>pc =
0</code></td>
155 JTAG tap: lpc2148.cpu tap/device found:
0x4f1f0f0f (mfg:
0x787, part:
0xf1f0, ver:
0x4)
<br>
156 srst pulls trst - can not reset into halted mode. Issuing halt after reset.
<br>
157 target state: halted
<br>
158 target halted in Thumb state due to debug-request, current mode: Supervisor
<br>
159 cpsr:
0xa00000f3 pc:
0x7fffd2d6<br>
166 <td><a name=
"RES005"/>RES005
</td>
169 <td>Reset halt on a blank target using return clock
</td>
170 <td>Erase all the content of the flash, set the configuration script to use RCLK
</td>
171 <td>Connect via the telnet interface and type
<br><code>reset halt
</code></td>
172 <td>Reset should return without error and the output should contain
<br><code>target state: halted
</code></td>
178 JTAG tap: lpc2148.cpu tap/device found:
0x4f1f0f0f (mfg:
0x787, part:
0xf1f0, ver:
0x4)
<br>
179 srst pulls trst - can not reset into halted mode. Issuing halt after reset.
<br>
180 target state: halted
<br>
181 target halted in Thumb state due to debug-request, current mode: Supervisor
<br>
182 cpsr:
0xa00000f3 pc:
0x7fffd2d6<br>
198 <td>Initial state
</td>
200 <td>Expected output
</td>
201 <td>Actual output
</td>
205 <td><a name=
"SPD001"/>SPD001
</td>
208 <td>16MHz on normal operation
</td>
209 <td>Reset init the target according to RES002
</td>
210 <td>Change speed and exercise a memory access over the JTAG, for example
<br><code>mdw
0x0 32</code></td>
211 <td>The command should run without any errors. If any JTAG checking errors happen, the test failed
</td>
215 jtag_speed
4 =
> JTAG clk=
16.000000<br>
218 JTAG scan chain interrogation failed: all zeroes
<br>
219 Check JTAG interface, timings, target power, etc.
<br>
221 Command handler execution failed
<br>
222 in procedure 'reset' called at file
"command.c", line
638<br>
223 called at file
"/home/laurentiu/workspace/zy1000/build/../openocd/src/helper/command.c", line
352<br>
224 invalid mode value encountered
0<br>
225 cpsr contains invalid mode value - communication failure
<br>
226 ThumbEE -- incomplete support
<br>
227 target state: halted
<br>
228 target halted in ThumbEE state due to debug-request, current mode: System
<br>
229 cpsr:
0x1fffffff pc:
0xfffffffa<br>
230 invalid mode value encountered
0<br>
231 cpsr contains invalid mode value - communication failure
<br>
232 target state: halted
<br>
233 target halted in Thumb state due to debug-request, current mode: System
<br>
234 cpsr:
0xc00003ff pc:
0xfffffff0<br>
235 invalid mode value encountered
0<br>
236 cpsr contains invalid mode value - communication failure
<br>
237 invalid mode value encountered
0<br>
238 cpsr contains invalid mode value - communication failure
<br>
239 invalid mode value encountered
0<br>
240 cpsr contains invalid mode value - communication failure
<br>
241 invalid mode value encountered
0<br>
242 cpsr contains invalid mode value - communication failure
<br>
243 ThumbEE -- incomplete support
<br>
244 target state: halted
<br>
245 target halted in ThumbEE state due to debug-request, current mode: System
<br>
246 cpsr:
0xffffffff pc:
0xfffffffa<br>
250 <td><font color=red
><b>FAIL
</b></font></td>
253 <td><a name=
"SPD002"/>SPD002
</td>
256 <td>8MHz on normal operation
</td>
257 <td>Reset init the target according to RES002
</td>
258 <td>Change speed and exercise a memory access over the JTAG, for example
<br><code>mdw
0x0 32</code></td>
259 <td>The command should run without any errors. If any JTAG checking errors happen, the test failed
</td>
263 jtag_speed
8 =
> JTAG clk=
8.000000<br>
266 JTAG scan chain interrogation failed: all zeroes
<br>
267 Check JTAG interface, timings, target power, etc.
<br>
269 Command handler execution failed
<br>
270 in procedure 'reset' called at file
"command.c", line
638<br>
271 called at file
"/home/laurentiu/workspace/zy1000/build/../openocd/src/helper/command.c", line
352<br>
272 invalid mode value encountered
0<br>
273 cpsr contains invalid mode value - communication failure
<br>
274 invalid mode value encountered
0<br>
275 cpsr contains invalid mode value - communication failure
<br>
279 <td><font color=red
><b>FAIL
</b></font></td>
282 <td><a name=
"SPD003"/>SPD003
</td>
285 <td>4MHz on normal operation
</td>
286 <td>Reset init the target according to RES002
</td>
287 <td>Change speed and exercise a memory access over the JTAG, for example
<br><code>mdw
0x0 32</code></td>
288 <td>The command should run without any errors. If any JTAG checking errors happen, the test failed
</td>
292 jtag_speed
16 =
> JTAG clk=
4.000000<br>
295 JTAG tap: lpc2148.cpu tap/device found:
0xc79f0f87 (mfg:
0x7c3, part:
0x79f0, ver:
0xc)
<br>
296 JTAG tap: lpc2148.cpu UNEXPECTED:
0xc79f0f87 (mfg:
0x7c3, part:
0x79f0, ver:
0xc)
<br>
297 JTAG tap: lpc2148.cpu expected
1 of
1:
0x4f1f0f0f (mfg:
0x787, part:
0xf1f0, ver:
0x4)
<br>
298 Unexpected idcode after end of chain:
64 0x0000007f<br>
299 Unexpected idcode after end of chain:
160 0x0000007f<br>
300 Unexpected idcode after end of chain:
192 0x0000007f<br>
301 Unexpected idcode after end of chain:
320 0x0000007f<br>
302 Unexpected idcode after end of chain:
352 0x0000007f<br>
303 Unexpected idcode after end of chain:
384 0x0000007f<br>
304 Unexpected idcode after end of chain:
480 0x0000007f<br>
305 Unexpected idcode after end of chain:
512 0x0000007f<br>
306 Unexpected idcode after end of chain:
544 0x0000007f<br>
307 double-check your JTAG setup (interface, speed, missing TAPs, ...)
<br>
309 Command handler execution failed
<br>
310 in procedure 'reset' called at file
"command.c", line
638<br>
311 called at file
"/home/laurentiu/workspace/zy1000/build/../openocd/src/helper/command.c", line
352<br>
315 <td><font color=red
><b>FAIL
</b></font></td>
318 <td><a name=
"SPD004"/>SPD004
</td>
321 <td>2MHz on normal operation
</td>
322 <td>Reset init the target according to RES002
</td>
323 <td>Change speed and exercise a memory access over the JTAG, for example
<br><code>mdw
0x0 32</code></td>
324 <td>The command should run without any errors. If any JTAG checking errors happen, the test failed
</td>
328 jtag_speed
32 =
> JTAG clk=
2.000000<br>
331 JTAG tap: lpc2148.cpu tap/device found:
0x4f1f0f0f (mfg:
0x787, part:
0xf1f0, ver:
0x4)
<br>
332 srst pulls trst - can not reset into halted mode. Issuing halt after reset.
<br>
333 target state: halted
<br>
334 target halted in Thumb state due to debug-request, current mode: Supervisor
<br>
335 cpsr:
0xa00000f3 pc:
0x7fffd2da<br>
337 0x00000000: e59f4034 e3a05002 e5845000 e3a05003 e5845004 e59f201c e3a03000 e1020093
<br>
338 0x00000020: e2822028 e1021093 e3c03007 e5023028 e51ff004
7fffd1c4 e002c014 e01fc000
<br>
339 0x00000040: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
<br>
340 0x00000060: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
<br>
347 <td><a name=
"SPD005"/>SPD005
</td>
350 <td>RCLK on normal operation
</td>
351 <td>Reset init the target according to RES002
</td>
352 <td>Change speed and exercise a memory access over the JTAG, for example
<br><code>mdw
0x0 32</code></td>
353 <td>The command should run without any errors. If any JTAG checking errors happen, the test failed
</td>
359 0x00000000: e59f4034 e3a05002 e5845000 e3a05003 e5845004 e59f201c e3a03000 e1020093
<br>
360 0x00000020: e2822028 e1021093 e3c03007 e5023028 e51ff004
7fffd1c4 e002c014 e01fc000
<br>
361 0x00000040: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
<br>
362 0x00000060: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
<br>
377 <td>Initial state
</td>
379 <td>Expected output
</td>
380 <td>Actual output
</td>
384 <td><a name=
"DBG001"/>DBG001
</td>
387 <td>Load is working
</td>
388 <td>Reset init is working, RAM is accesible, GDB server is started
</td>
389 <td>On the console of the OS:
<br>
390 <code>arm-elf-gdb test_ram.elf
</code><br>
391 <code>(gdb) target remote ip:port
</code><br>
392 <code>(gdb) load
</load>
394 <td>Load should return without error, typical output looks like:
<br>
396 Loading section .text, size
0x14c lma
0x0<br>
397 Start address
0x40, load size
332<br>
398 Transfer rate:
180 bytes/sec,
332 bytes/write.
<br>
403 Loading section .text, size
0x16c lma
0x40000000<br>
404 Start address
0x40000040, load size
364<br>
405 Transfer rate:
32 KB/sec,
364 bytes/write.
<br>
412 <td><a name=
"DBG002"/>DBG002
</td>
415 <td>Software breakpoint
</td>
416 <td>Load the test_ram.elf application, use instructions from GDB001
</td>
417 <td>In the GDB console:
<br>
419 (gdb) monitor gdb_breakpoint_override soft
<br>
420 software breakpoints enabled
<br>
422 Breakpoint
1 at
0xec: file src/main.c, line
71.
<br>
427 <td>The software breakpoint should be reached, a typical output looks like:
<br>
429 target state: halted
<br>
430 target halted in ARM state due to breakpoint, current mode: Supervisor
<br>
431 cpsr:
0x000000d3 pc:
0x000000ec<br>
433 Breakpoint
1, main () at src/main.c:
71<br>
439 (gdb) monitor gdb_breakpoint_override soft
<br>
440 force soft breakpoints
<br>
441 Current language: auto
<br>
442 The current source language is
"auto; currently asm".
<br>
444 Breakpoint
1 at
0x4000010c: file src/main.c, line
71.
<br>
448 Breakpoint
1, main () at src/main.c:
71<br>
450 Current language: auto
<br>
451 The current source language is
"auto; currently c".
<br>
458 <td><a name=
"DBG003"/>DBG003
</td>
461 <td>Single step in a RAM application
</td>
462 <td>Load the test_ram.elf application, use instructions from GDB001, break in main using the instructions from GDB002
</td>
463 <td>In GDB, type
<br><code>(gdb) step
</code></td>
464 <td>The next instruction should be reached, typical output:
<br>
467 target state: halted
<br>
468 target halted in ARM state due to single step, current mode: Abort
<br>
469 cpsr:
0x20000097 pc:
0x000000f0<br>
470 target state: halted
<br>
471 target halted in ARM state due to single step, current mode: Abort
<br>
472 cpsr:
0x20000097 pc:
0x000000f4<br>
486 <td><a name=
"DBG004"/>DBG004
</td>
489 <td>Software break points are working after a reset
</td>
490 <td>Load the test_ram.elf application, use instructions from GDB001, break in main using the instructions from GDB002
</td>
491 <td>In GDB, type
<br><code>
492 (gdb) monitor reset init
<br>
496 <td>The breakpoint should be reached, typical output:
<br>
498 target state: halted
<br>
499 target halted in ARM state due to breakpoint, current mode: Supervisor
<br>
500 cpsr:
0x000000d3 pc:
0x000000ec<br>
502 Breakpoint
1, main () at src/main.c:
71<br>
507 (gdb) moni reset init
<br>
508 JTAG tap: lpc2148.cpu tap/device found:
0x4f1f0f0f (mfg:
0x787, part:
0xf1f0, ver:
0x4)
<br>
509 srst pulls trst - can not reset into halted mode. Issuing halt after reset.
<br>
510 target state: halted
<br>
511 target halted in Thumb state due to debug-request, current mode: Supervisor
<br>
512 cpsr:
0xa00000f3 pc:
0x7fffd2d6<br>
515 Loading section .text, size
0x16c lma
0x40000000<br>
516 Start address
0x40000040, load size
364<br>
517 Transfer rate:
27 KB/sec,
364 bytes/write.
<br>
521 Breakpoint
1, main () at src/main.c:
71<br>
528 <td><a name=
"DBG005"/>DBG005
</td>
531 <td>Hardware breakpoint
</td>
532 <td>Flash the test_rom.elf application. Make this test after FLA004 has passed
</td>
533 <td>Be sure that
<code>gdb_memory_map
</code> and
<code>gdb_flash_program
</code> are enabled. In GDB, type
<br>
535 (gdb) monitor reset init
<br>
537 Loading section .text, size
0x194 lma
0x100000<br>
538 Start address
0x100040, load size
404<br>
539 Transfer rate:
179 bytes/sec,
404 bytes/write.
<br>
540 (gdb) monitor gdb_breakpoint_override hard
<br>
541 force hard breakpoints
<br>
543 Breakpoint
1 at
0x100134: file src/main.c, line
69.
<br>
547 <td>The breakpoint should be reached, typical output:
<br>
551 Breakpoint
1, main () at src/main.c:
69<br>
557 (gdb) monitor gdb_breakpoint_override hard
<br>
558 force hard breakpoints
<br>
560 Breakpoint
1 at
0x10c: file src/main.c, line
71.
<br>
563 Note: automatically using hardware breakpoints for read-only addresses.
<br>
565 Breakpoint
1, main () at src/main.c:
71<br>
567 Current language: auto
<br>
568 The current source language is
"auto; currently c".
<br>
572 <td>PASS
<font color=red
>NOTE: This test is failing from time to time, not able to describe a cause
</font></td>
575 <td><a name=
"DBG006"/>DBG006
</td>
578 <td>Hardware breakpoint is set after a reset
</td>
579 <td>Follow the instructions to flash and insert a hardware breakpoint from DBG005
</td>
580 <td>In GDB, type
<br>
582 (gdb) monitor reset
<br>
583 (gdb) monitor reg pc
0x100000<br>
584 pc (/
32):
0x00100000<br>
587 where the value inserted in PC is the start address of the application
589 <td>The breakpoint should be reached, typical output:
<br>
593 Breakpoint
1, main () at src/main.c:
69<br>
599 (gdb) monitor reset init
<br>
600 JTAG tap: lpc2148.cpu tap/device found:
0x4f1f0f0f (mfg:
0x787, part:
0xf1f0, ver:
0x4)
<br>
601 srst pulls trst - can not reset into halted mode. Issuing halt after reset.
<br>
602 target state: halted
<br>
603 target halted in ARM state due to debug-request, current mode: Supervisor
<br>
604 cpsr:
0x60000013 pc:
0x00000160<br>
606 (gdb) monitor reg pc
0x40<br>
607 pc (/
32):
0x00000040<br>
611 Breakpoint
1, main () at src/main.c:
71<br>
619 <td><a name=
"DBG007"/>DBG007
</td>
622 <td>Single step in ROM
</td>
623 <td>Flash the test_rom.elf application and set a breakpoint in main, use DBG005. Make this test after FLA004 has passed
</td>
624 <td>Be sure that
<code>gdb_memory_map
</code> and
<code>gdb_flash_program
</code> are enabled. In GDB, type
<br>
626 (gdb) monitor reset
<br>
628 Loading section .text, size
0x194 lma
0x100000<br>
629 Start address
0x100040, load size
404<br>
630 Transfer rate:
179 bytes/sec,
404 bytes/write.
<br>
631 (gdb) monitor gdb_breakpoint_override hard
<br>
632 force hard breakpoints
<br>
634 Breakpoint
1 at
0x100134: file src/main.c, line
69.
<br>
638 Breakpoint
1, main () at src/main.c:
69<br>
643 <td>The breakpoint should be reached, typical output:
<br>
645 target state: halted
<br>
646 target halted in ARM state due to single step, current mode: Supervisor
<br>
647 cpsr:
0x60000013 pc:
0x0010013c<br>
653 Loading section .text, size
0x16c lma
0x0<br>
654 Start address
0x40, load size
364<br>
655 Transfer rate:
637 bytes/sec,
364 bytes/write.
<br>
656 (gdb) monitor gdb_breakpoint_override hard
<br>
657 force hard breakpoints
<br>
658 Current language: auto
<br>
659 The current source language is
"auto; currently asm".
<br>
661 Breakpoint
1 at
0x10c: file src/main.c, line
71.
<br>
664 Note: automatically using hardware breakpoints for read-only addresses.
<br>
666 Breakpoint
1, main () at src/main.c:
71<br>
668 Current language: auto
<br>
669 The current source language is
"auto; currently c".
<br>
680 Note: these tests are not designed to test/debug the target, but to test functionalities!
687 <td>Initial state
</td>
689 <td>Expected output
</td>
690 <td>Actual output
</td>
694 <td><a name=
"RAM001"/>RAM001
</td>
697 <td>32 bit Write/read RAM
</td>
698 <td>Reset init is working
</td>
699 <td>On the telnet interface
<br>
700 <code> > mww ram_address
0xdeadbeef 16<br>
704 <td>The commands should execute without error. A clear failure is a memory access exception. The result of running the commands should be a list of
16 locations
32bit long containing
0xdeadbeef.
<br>
706 > mww
0x0 0xdeadbeef 16<br>
708 0x00000000: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
<br>
709 0x00000020: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
<br>
710 0x00000040: e1a00000 e59fa51c e59f051c e04aa000
00080017 00009388 00009388 00009388<br>
711 0x00000060:
00009388 0002c2c0
0002c2c0
000094f8
000094f4
00009388 00009388 00009388<br>
715 > mww
0x40000000 0xdeadbeef 16<br>
716 > mdw
0x40000000 32<br>
717 0x40000000: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
<br>
718 0x40000020: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
<br>
719 0x40000040: e1a00000 e1a00000 e1a00000 e1a00000 e1a00000 e1a00000 e1a00000 e1a00000
<br>
720 0x40000060: e321f0db e59fd07c e321f0d7 e59fd078 e321f0d1 e59fd074 e321f0d2 e59fd070
<br>
726 <td><a name=
"RAM002"/>RAM002
</td>
729 <td>16 bit Write/read RAM
</td>
730 <td>Reset init is working
</td>
731 <td>On the telnet interface
<br>
732 <code> > mwh ram_address
0xbeef 16<br>
736 <td>The commands should execute without error. A clear failure is a memory access exception. The result of running the commands should be a list of
16 locations
16bit long containing
0xbeef.
<br>
738 > mwh
0x0 0xbeef 16<br>
740 0x00000000: beef beef beef beef beef beef beef beef beef beef beef beef beef beef beef beef
<br>
741 0x00000020:
00e0
0000 021c
0000 0240 0000 026c
0000 0288 0000 0000 0000 0388 0000 0350 0000<br>
746 > mwh
0x40000000 0xbeef 16<br>
747 > mdh
0x40000000 32<br>
748 0x40000000: beef beef beef beef beef beef beef beef beef beef beef beef beef beef beef beef
<br>
749 0x40000020: beef dead beef dead beef dead beef dead beef dead beef dead beef dead beef dead
<br>
755 <td><a name=
"RAM003"/>RAM003
</td>
758 <td>8 bit Write/read RAM
</td>
759 <td>Reset init is working
</td>
760 <td>On the telnet interface
<br>
761 <code> > mwb ram_address
0xab 16<br>
765 <td>The commands should execute without error. A clear failure is a memory access exception. The result of running the commands should be a list of
16 locations
8bit long containing
0xab.
<br>
767 > mwb ram_address
0xab 16<br>
768 > mdb ram_address
32<br>
769 0x00000000: ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00<br>
774 > mwb
0x40000000 0xab 16
776 0x40000000: ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ef be ef be ef be ef be ef be ef be ef be ef be
786 <H2>Flash access
</H2>
793 <td>Initial state
</td>
795 <td>Expected output
</td>
796 <td>Actual output
</td>
800 <td><a name=
"FLA001"/>FLA001
</td>
804 <td>Reset init is working
</td>
805 <td>On the telnet interface:
<br>
806 <code> > flash probe
0</code>
808 <td>The command should execute without error. The output should state the name of the flash and the starting address. An example of output:
<br>
809 <code>flash 'ecosflash' found at
0x01000000</code>
814 flash 'lpc2000' found at
0x00000000
820 <td><a name=
"FLA002"/>FLA002
</td>
824 <td>Reset init is working, flash is probed
</td>
825 <td>On the telnet interface
<br>
826 <code> > flash fillw
0x1000000 0xdeadbeef 16
829 <td>The commands should execute without error. The output looks like:
<br>
831 wrote
64 bytes to
0x01000000 in
11.610000s (
0.091516 kb/s)
833 To verify the contents of the flash:
<br>
835 > mdw
0x1000000 32<br>
836 0x01000000: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
<br>
837 0x01000020: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
<br>
838 0x01000040: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
<br>
839 0x01000060: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
843 > flash fillw
0x0 0xdeadbeef 16<br>
844 Verification will fail since checksum in image (
0xdeadbeef) to be written to flash is different from calculated vector checksum (
0xe93fc777).
<br>
845 To remove this warning modify build tools on developer PC to inject correct LPC vector checksum.
<br>
846 wrote
64 bytes to
0x00000000 in
0.040000s (
1.563 kb/s)
<br>
848 0x00000000: deadbeef deadbeef deadbeef deadbeef deadbeef e93fc777 deadbeef deadbeef
<br>
849 0x00000020: deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef deadbeef
<br>
850 0x00000040: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
<br>
851 0x00000060: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
<br>
854 <td><font color=red
>FAIL
</font></td>
857 <td><a name=
"FLA003"/>FLA003
</td>
861 <td>Reset init is working, flash is probed
</td>
862 <td>On the telnet interface
<br>
863 <code> > flash erase_address
0x1000000 0x2000
866 <td>The commands should execute without error.
<br>
868 erased address
0x01000000 length
8192 in
4.970000s
870 To check that the flash has been erased, read at different addresses. The result should always be
0xff.
872 > mdw
0x1000000 32<br>
873 0x01000000: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
<br>
874 0x01000020: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
<br>
875 0x01000040: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
<br>
876 0x01000060: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
880 > flash erase_address
0 0x2000<br>
881 erased address
0x00000000 (length
8192) in
0.510000s (
15.686 kb/s)
<br>
883 0x00000000: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
<br>
884 0x00000020: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
<br>
885 0x00000040: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
<br>
886 0x00000060: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
<br>
893 <td><a name=
"FLA004"/>FLA004
</td>
896 <td>Loading to flash from GDB
</td>
897 <td>Reset init is working, flash is probed, connectivity to GDB server is working
</td>
898 <td>Start GDB using a ROM elf image, eg: arm-elf-gdb test_rom.elf.
<br>
900 (gdb) target remote ip:port
<br>
901 (gdb) monitor reset
<br>
903 Loading section .text, size
0x194 lma
0x100000<br>
904 Start address
0x100040, load size
404<br>
905 Transfer rate:
179 bytes/sec,
404 bytes/write.
906 (gdb) monitor verify_image path_to_elf_file
909 <td>The output should look like:
<br>
911 verified
404 bytes in
5.060000s
913 The failure message is something like:
<br>
914 <code>Verify operation failed address
0x00200000. Was
0x00 instead of
0x18</code>
918 (gdb) moni verify_image /tftp/
10.0.0.194/test_rom.elf
<br>
919 checksum mismatch - attempting binary compare
<br>
920 Verify operation failed address
0x00000014. Was
0x58 instead of
0x60<br>
922 Command handler execution failed
<br>
923 in procedure 'verify_image' called at file
"command.c", line
647<br>
924 called at file
"command.c", line
361<br>
928 <td><font color=red
>FAIL
</font></td>