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

#
# Texas Instruments MSP432 - ARM Cortex-M4F @ up to 48 MHz
#
# http://www.ti.com/MSP432
#

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

if { [info exists CPUTAPID] } {
	set _DAP_TAPID $CPUTAPID
} else {
	set _DAP_TAPID 0x4ba00477
}

if { [info exists DAP_SWD_ID] } {
	set _DAP_SWD_ID $DAP_SWD_ID
} else {
	set _DAP_SWD_ID 0x2ba01477
}

source [find target/swj-dp.tcl]

if { [using_jtag] } {
	set _DAP_ID $_DAP_TAPID
} else {
	set _DAP_ID $_DAP_SWD_ID
}

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

set _TARGETNAME $_CHIPNAME.cpu
target create $_TARGETNAME cortex_m -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 msp432 0 0 0 0 $_TARGETNAME

cortex_m reset_config sysresetreq