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

# TI OMAP5912 dual core processor
# http://focus.ti.com/docs/prod/folders/print/omap5912.html

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

if { [info exists CPUTAPID] } {
   set _CPUTAPID $CPUTAPID
} else {
   # NOTE: validated with XOMAP5912 part
   set _CPUTAPID 0x0692602f
}

adapter srst delay 100

# NOTE: presumes irlen 38 is the C55x DSP, matching BSDL for
# its standalone siblings (like TMS320VC5502) of the same era

#jtag scan chain
jtag newtap $_CHIPNAME dsp -irlen 38 -expected-id 0x03df1d81
jtag newtap $_CHIPNAME arm -irlen 4 -expected-id $_CPUTAPID
jtag newtap $_CHIPNAME unknown -irlen 8

set _TARGETNAME $_CHIPNAME.arm
target create $_TARGETNAME arm926ejs -chain-position $_TARGETNAME

proc omap5912_reset {} {
	#
	# halt target
	#
	poll
	sleep 1
	halt
	wait_halt
	#
	# disable wdt
	#
	mww 0xfffec808 0x000000f5
	mww 0xfffec808 0x000000a0

	mww 0xfffeb048 0x0000aaaa
	sleep 500
	mww 0xfffeb048 0x00005555
	sleep 500
}

# omap5912 lcd frame buffer as working area
$_TARGETNAME configure -work-area-phys 0x20000000 \
	-work-area-size 0x3e800 -work-area-backup 0
