# -*- tcl -*-
# Target configuration for the Samsung s3c6410 system on chip
# Processor : ARM1176
# Info: JTAG device found: 0x0032409d (Manufacturer: 0x04e, Part: 0x0324, Version: 0x0)
# [Duane Ellis 27/nov/2008: Above 0x0032409d appears to be copy/paste from other places]
# [and I do not believe it to be accurate, hence the 0xffffffff below]
telnet_port 4444
interface ft2232
jtag_khz 1000
ft2232_vid_pid 0x1457 0x5118
ft2232_layout jtagkey
#ft2232_layout oocdlink
ft2232_device_desc "USB<=>JTAG&RS232"
if { [info exists CHIPNAME] } {
set _CHIPNAME $CHIPNAME
} else {
set _CHIPNAME s3c6410
}
if { [info exists ENDIAN] } {
set _ENDIAN $ENDIAN
} else {
# this defaults to a bigendian
set _ENDIAN little
}
# trace buffer
if { [info exists ETBTAPID ] } {
set _ETBTAPID $ETBTAPID
} else {
# force an error till we get a good number
set _ETBTAPID 0x2b900f0f
}
if { [info exists CPUTAPID ] } {
set _CPUTAPID $CPUTAPID
} else {
# force an error till we get a good number
set _CPUTAPID 0x07b76f0f
}
#jtag scan chain
jtag newtap $_CHIPNAME etb -irlen 4 -expected-id $_ETBTAPID
jtag newtap $_CHIPNAME cpu -irlen 5 -ircapture 0x1 -irmask 0x1f -expected-id $_CPUTAPID
set _TARGETNAME $_CHIPNAME.cpu
target create $_TARGETNAME arm11 -endian $_ENDIAN -chain-position $_TARGETNAME -variant arm1176
jtag_nsrst_delay 500
jtag_ntrst_delay 500
#reset configuration
reset_config trst_and_srst
# trace setup ... NOTE, "normal full" mode fudges the real ETMv3.1 mode
etm config $_TARGETNAME 16 normal full etb
etb config $_TARGETNAME $_CHIPNAME.etb
#nand device s3c6400 0
set _NANDNAME $_CHIPNAME.nand
nand device $_NANDNAME s3c6400 $_TARGETNAME
#nand device s3c6400 s3c6400
上面就是openocd的配置openoce.cfg
打开openocd:
shanl@shanl-E430:~$ sudo openocd -f openocd.cfg
shanl@shanl-E430:~$ telnet localhost 4444
烧写程序:
> halt
> nand probe 0
> nand erase 0 0 0x20000
> nand write 0 /home/shanl/tftpboot/led.bin 0
> reset