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

#
# Infineon XMC1100/XMC1200/XMC1300 family (ARM Cortex-M0 @ 32 MHz)
#

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

#
# Only SWD and SPD supported
#
source [find target/swj-dp.tcl]

if { [info exists CPUTAPID] } {
	set _CPU_SWD_TAPID $CPUTAPID
} else {
	set _CPU_SWD_TAPID 0x0BB11477
}

swj_newdap $_CHIPNAME cpu -irlen 4 -expected-id $_CPU_SWD_TAPID
dap create $_CHIPNAME.dap -chain-position $_CHIPNAME.cpu

set _TARGETNAME $_CHIPNAME.cpu
target create $_TARGETNAME cortex_m -endian little -dap $_CHIPNAME.dap

if { [info exists WORKAREASIZE] } {
   set _WORKAREASIZE $WORKAREASIZE
} else {
   set _WORKAREASIZE 0x4000
}

$_TARGETNAME configure -work-area-phys 0x20000000 \
                       -work-area-size $_WORKAREASIZE \
                       -work-area-backup 0

set _FLASHNAME $_CHIPNAME.flash
flash bank $_FLASHNAME xmc1xxx 0x10000000 0 0 0 $_TARGETNAME

adapter speed 1000
