-# Thanks to Pieter Conradie for this script!
+######################################
# Target: Atmel AT91SAM9260
######################################
+if { [info exists CHIPNAME] } {
+ set _CHIPNAME $CHIPNAME
+} else {
+ set _CHIPNAME at91sam9260
+}
+
+if { [info exists ENDIAN] } {
+ set _ENDIAN $ENDIAN
+} else {
+ set _ENDIAN little
+}
+
+if { [info exists CPUTAPID ] } {
+ set _CPUTAPID $CPUTAPID
+} else {
+ # force an error till we get a good number
+ set _CPUTAPID 0x0792603f
+}
+
reset_config trst_and_srst
-#jtag_device <IR length> <IR capture> <IR mask> <IDCODE instruction>
-jtag_device 4 0x1 0xf 0xe
+#
+jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID
jtag_nsrst_delay 200
-jtag_ntrst_delay 0
+jtag_ntrst_delay 200
######################
# Target configuration
######################
-#target <type> <endianess> <reset mode> <JTAG pos> <variant>
-target arm926ejs little 0 arm926ejs
-
-[new_target_name] configure -event reset-init { script event/at91sam9260_reset.script }
-
-
-#working area <target#> <address> <size> <backup|nobackup>
-working_area 0 0x00300000 0x1000 backup
-
+set _TARGETNAME [format "%s.cpu" $_CHIPNAME]
+target create $_TARGETNAME arm926ejs -endian $_ENDIAN -chain-position $_TARGETNAME -variant arm926ejs
-#####################
-# Flash configuration
-#####################
+# Internal sram1 memory
+$_TARGETNAME configure -work-area-virt 0 -work-area-phys 0x00300000 -work-area-size 0x1000 -work-area-backup 1
-#flash bank cfi <base> <size> <chip width> <bus width> <target#>
-flash bank cfi 0x10000000 0x01000000 2 2 0