Das Board wurde auch bei anderen Switches verbaut und es ist jemand
gelungen es per JTAG zu beschreiben:
http://webcache.googleusercontent.com/search?q=cache:nYiWq0bSh1sJ:springdaemons.com/2008/3/12/hacking-the-d-link-dgs-1248t-switch+&cd=1&hl=de&ct=clnk&gl=de
Details dazu fehlen leider. Ein config file für den S3C2510A01 gibt es
bei OpenOCD ebenfalls nicht. Aus diversen Fundstücken im NEtz habe ich
mir zwei config files erstellt:
1 | source [find interface/buspirate.cfg]
|
2 | buspirate_vreg 0
|
3 | buspirate_mode open-drain
|
4 | buspirate_pullup 1
|
5 | buspirate_port /dev/ttyUSB0
|
und
1 | if { [info exists CHIPNAME] } {
|
2 | set _CHIPNAME $CHIPNAME
|
3 | } else {
|
4 | set _CHIPNAME s3c2510a
|
5 | }
|
6 |
|
7 | if { [info exists ENDIAN] } {
|
8 | set _ENDIAN $ENDIAN
|
9 | } else {
|
10 | set _ENDIAN little
|
11 | }
|
12 |
|
13 | if { [info exists CPUTAPID] } {
|
14 | set _CPUTAPID $CPUTAPID
|
15 | } else {
|
16 | set _CPUTAPID 0x1094009d
|
17 | }
|
18 |
|
19 | jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0x0f -expected-id $_CPUTAPID
|
20 |
|
21 | set _TARGETNAME $_CHIPNAME.cpu
|
22 | # TODO: It's an ARM940T really.
|
23 | # target create $_TARGETNAME arm920t -endian $_ENDIAN -chain-position $_TARGETNAME -variant arm940t
|
24 | target create $_TARGETNAME arm9tdmi -endian $_ENDIAN -chain-position $_TARGETNAME -variant arm940t
|
25 |
|
26 | # $_TARGETNAME configure -work-area-phys 0x200000 -work-area-size 0x4000 -work-area-backup 1
|
27 | $_TARGETNAME configure -work-area-phys 0x40000000 -work-area-size 0x4000 -work-area-backup 1
|
28 |
|
29 | reset_config trst_and_srst combined
|
30 |
|
31 | # External Macronix MX29LV800BBTC-90 (NOR flash) chip.
|
32 | flash bank $_CHIPNAME.extnorflash cfi 0x00000000 0x100000 2 2 $_TARGETNAME
|
33 |
|
34 | init
|
35 | reset halt
|
36 |
|
37 | # flash probe 0
|
Quelle: http://sourceforge.net/p/openocd/mailman/message/29199929/
Beim Aufruf von
1 | sudo openocd -f mybuspirate.cfg -f s3c2510a.cfg
|
spuckt er mir folgenden Fehler aus
1 | Runtime Error: embedded:startup.tcl:20: Unknown param: -variant, try one of: -type, -event, -work-area-virt, -work-area-phys, -work-area-size, -work-area-backup, -endian, -coreid, -chain-position, -dbgbase, or -rtos
|
2 | in procedure 'script'
|
3 | at file "embedded:startup.tcl", line 58
|
4 | in procedure 'target' called at file "s3c2510a.cfg", line 24
|
5 | in procedure 'ocd_bouncer'
|
6 | at file "embedded:startup.tcl", line 20
|
Warum soll der Parameter "variant" unzulässig sein? Siehe z.B. hier:
http://elk.informatik.fh-augsburg.de/pub/openocd-quickref/old/oocd-quickref-211.pdf