diff options
author | Sean Anderson <sean.anderson@seco.com> | 2022-02-11 17:45:32 -0500 |
---|---|---|
committer | Antonio Borneo <borneo.antonio@gmail.com> | 2022-02-26 15:30:36 +0000 |
commit | 3fcfe4f196f6c333ee0ba2078af9cfa3eb896761 (patch) | |
tree | 516e9bc24b163a91d7eff901cdab3897c0ef8511 | |
parent | b61eae1962f008627f4593cfda9b3431e4c3c016 (diff) | |
download | riscv-openocd-3fcfe4f196f6c333ee0ba2078af9cfa3eb896761.zip riscv-openocd-3fcfe4f196f6c333ee0ba2078af9cfa3eb896761.tar.gz riscv-openocd-3fcfe4f196f6c333ee0ba2078af9cfa3eb896761.tar.bz2 |
target: Add support for ls1088a
The LS1088A is an octo-core aarch64 processor from NXP in the layerscape
family. The JTAG is undocumented, but I was able to figure things out
from the output of `dap info`. This is the first in-tree example of
using the hwthread rtos (as far as I know), so hopefully it can serve as
an example to other developers. There are some ETMs, but I was unable to
try them out because I got 'invalid command name "etm"' when trying to
test things out.
Signed-off-by: Sean Anderson <sean.anderson@seco.com>
Change-Id: I9b0791d27d8c41170a413a8d86431107a85feba2
Reviewed-on: https://review.openocd.org/c/openocd/+/6848
Tested-by: jenkins
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
-rw-r--r-- | tcl/target/ls1088a.cfg | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/tcl/target/ls1088a.cfg b/tcl/target/ls1088a.cfg new file mode 100644 index 0000000..136ee77 --- /dev/null +++ b/tcl/target/ls1088a.cfg @@ -0,0 +1,42 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +# NXP LS1088A + +if { [info exists CHIPNAME] } { + set _CHIPNAME $CHIPNAME +} else { + set _CHIPNAME ls1088a +} + +if { [info exists DAP_TAPID] } { + set _DAP_TAPID $DAP_TAPID +} else { + set _DAP_TAPID 0x5ba00477 +} + +jtag newtap $_CHIPNAME dap -irlen 4 -expected-id $_DAP_TAPID +dap create $_CHIPNAME.dap -chain-position $_CHIPNAME.dap + +target create $_CHIPNAME.axi mem_ap -dap $_CHIPNAME.dap -ap-num 1 + +set _CPU_BASE 0x81000000 +set _CPU_STRIDE 0x100000 +set _CPU_DBGOFF 0x10000 +set _CPU_CTIOFF 0x20000 + +set _TARGETS {} +for {set i 0} {$i < 8} {incr i} { + set _BASE [expr {$_CPU_BASE + $_CPU_STRIDE * $i}] + cti create $_CHIPNAME.cti$i -dap $_CHIPNAME.dap -ap-num 0 \ + -baseaddr [expr {$_BASE + $_CPU_CTIOFF}] + target create $_CHIPNAME.cpu$i aarch64 -dap $_CHIPNAME.dap \ + -cti $_CHIPNAME.cti$i -dbgbase [expr {$_BASE + $_CPU_DBGOFF}] \ + {*}[expr {$i ? "-coreid $i" : "-rtos hwthread" }] + lappend _TARGETS $_CHIPNAME.cpu$i +} + +target smp {*}$_TARGETS + +targets $_CHIPNAME.cpu0 + +# Seems to work OK in testing +adapter speed 10000 |