# SPDX-License-Identifier: GPL-2.0-or-later

# Atmel AT91rm9200
# http://atmel.com/products/at91/

if { [info exists CHIPNAME] } {
   set _CHIPNAME $CHIPNAME
} else {
   set _CHIPNAME at91rm9200
}

if { [info exists ENDIAN] } {
   set _ENDIAN $ENDIAN
} else {
   set _ENDIAN little
}

if { [info exists CPUTAPID] } {
   set _CPUTAPID $CPUTAPID
} else {
   set _CPUTAPID 0x05b0203f
}

# Never allow the following!
if { $_CPUTAPID == 0x15b0203f } {
   echo "-------------------------------------------------------"
   echo "- ERROR:                                              -"
   echo "- ERROR: TapID 0x15b0203f is wrong for at91rm9200     -"
   echo "- ERROR: The chip/board has a JTAG select pin/jumper  -"
   echo "- ERROR:                                              -"
   echo "- ERROR: In one position (0x05b0203f) it selects the  -"
   echo "- ERROR: ARM CPU, in the other position (0x1b0203f)   -"
   echo "- ERROR: it selects boundary-scan not the ARM         -"
   echo "- ERROR:                                              -"
   echo "-------------------------------------------------------"
}

jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID

# Create the GDB Target.
set _TARGETNAME $_CHIPNAME.cpu
target create $_TARGETNAME arm920t -endian $_ENDIAN -chain-position $_TARGETNAME

# AT91RM9200 has a 16K block of sram @ 0x0020.0000
$_TARGETNAME configure -work-area-phys 0x00200000 \
		-work-area-size 0x4000 -work-area-backup 1

# This chip has a DCC ... use it
arm7_9 dcc_downloads enable
