From: openocd-gerrit <ope...@us...> - 2024-01-28 14:18:11
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Main OpenOCD repository". The branch, master has been updated via 3d3f82392045384e4cfe81bf19140a60312a47e8 (commit) from 151b743714382120dbe0dee0e0eeb75826ef5b3a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 3d3f82392045384e4cfe81bf19140a60312a47e8 Author: Ian Thompson <ia...@ca...> Date: Thu Jan 18 16:10:26 2024 -0800 target/xtensa: add dual-core support - Example for configuring multiple non-SMP Xtensa cores e.g. for heterogeneous debug - JTAG only at this time; DAP out of scope - Dual-Xtensa Palladium example via VDebug - Update Xtensa core config examples Signed-off-by: Ian Thompson <ia...@ca...> Change-Id: I6d2b3d13fa8075416dcd383cf256a3e8582ee1c1 Reviewed-on: https://review.openocd.org/c/openocd/+/8078 Tested-by: jenkins Reviewed-by: Jacek Wuwer <jac...@gm...> Reviewed-by: Antonio Borneo <bor...@gm...> diff --git a/tcl/board/xtensa-palladium-vdebug-dual.cfg b/tcl/board/xtensa-palladium-vdebug-dual.cfg new file mode 100644 index 000000000..447bc1fa0 --- /dev/null +++ b/tcl/board/xtensa-palladium-vdebug-dual.cfg @@ -0,0 +1,33 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +# Cadence virtual debug interface +# for Palladium emulation systems +# + +source [find interface/vdebug.cfg] + +# vdebug select JTAG transport +transport select jtag + +# JTAG reset config, frequency and reset delay +reset_config trst_and_srst +adapter speed 50000 +adapter srst delay 5 + +# Future improvement: Enable backdoor memory access +# set _MEMSTART 0x00000000 +# set _MEMSIZE 0x100000 + +# BFM hierarchical path and input clk period +vdebug bfm_path Testbench.VJTAG 10ns + +# DMA Memories to access backdoor (up to 4) +# vdebug mem_path tbench.u_mcu.u_sys.u_itcm_ram.Mem $_MEMSTART $_MEMSIZE + +# Configure dual-core TAP chain +set XTENSA_NUM_CORES 2 + +# Create Xtensa target first +source [find target/xtensa.cfg] + +# Configure Xtensa core parameters next +# Generate [xtensa-core-XXX.cfg] via "xt-gdb --dump-oocd-config" diff --git a/tcl/board/xtensa-palladium-vdebug.cfg b/tcl/board/xtensa-palladium-vdebug.cfg index d4a700e36..f14d92da8 100644 --- a/tcl/board/xtensa-palladium-vdebug.cfg +++ b/tcl/board/xtensa-palladium-vdebug.cfg @@ -13,4 +13,18 @@ reset_config trst_and_srst adapter speed 50000 adapter srst delay 5 -source [find target/vd_xtensa_jtag.cfg] +# Future improvement: Enable backdoor memory access +# set _MEMSTART 0x00000000 +# set _MEMSIZE 0x100000 + +# BFM hierarchical path and input clk period +vdebug bfm_path Testbench.VJTAG 10ns + +# DMA Memories to access backdoor (up to 4) +# vdebug mem_path tbench.u_mcu.u_sys.u_itcm_ram.Mem $_MEMSTART $_MEMSIZE + +# Create Xtensa target first +source [find target/xtensa.cfg] + +# Configure Xtensa core parameters next +# Generate [xtensa-core-XXX.cfg] via "xt-gdb --dump-oocd-config" diff --git a/tcl/target/xtensa-core-nxp_rt600.cfg b/tcl/target/xtensa-core-nxp_rt600.cfg index abd961e4f..ca7fd6848 100644 --- a/tcl/target/xtensa-core-nxp_rt600.cfg +++ b/tcl/target/xtensa-core-nxp_rt600.cfg @@ -2,246 +2,254 @@ # OpenOCD configuration file for Xtensa HiFi DSP in NXP RT600 target +# Core instance default definition +if { [info exists XTNAME] } { + set _XTNAME $XTNAME +} else { + set _XTNAME xtensa.cpu +} + + # Core definition and ABI -xtensa xtdef LX -xtensa xtopt arnum 32 -xtensa xtopt windowed 1 +$_XTNAME xtensa xtdef LX +$_XTNAME xtensa xtopt arnum 32 +$_XTNAME xtensa xtopt windowed 1 # Exception/Interrupt Options -xtensa xtopt exceptions 1 -xtensa xtopt hipriints 1 -xtensa xtopt intlevels 4 -xtensa xtopt excmlevel 2 +$_XTNAME xtensa xtopt exceptions 1 +$_XTNAME xtensa xtopt hipriints 1 +$_XTNAME xtensa xtopt intlevels 4 +$_XTNAME xtensa xtopt excmlevel 2 # Cache Options -xtensa xtmem icache 256 32768 4 -xtensa xtmem dcache 256 65536 4 1 +$_XTNAME xtensa xtmem icache 256 32768 4 +$_XTNAME xtensa xtmem dcache 256 65536 4 1 # Memory Options -xtensa xtmem iram 0x24020000 65536 -xtensa xtmem dram 0x24000000 65536 -xtensa xtmem sram 0x00000000 603979776 +$_XTNAME xtensa xtmem iram 0x24020000 65536 +$_XTNAME xtensa xtmem dram 0x24000000 65536 +$_XTNAME xtensa xtmem sram 0x00000000 603979776 # Memory Protection/Translation Options # Debug Options -xtensa xtopt debuglevel 4 -xtensa xtopt ibreaknum 2 -xtensa xtopt dbreaknum 2 +$_XTNAME xtensa xtopt debuglevel 4 +$_XTNAME xtensa xtopt ibreaknum 2 +$_XTNAME xtensa xtopt dbreaknum 2 # Core Registers -xtensa xtregs 208 -xtensa xtreg pc 0x0020 -xtensa xtreg ar0 0x0100 -xtensa xtreg ar1 0x0101 -xtensa xtreg ar2 0x0102 -xtensa xtreg ar3 0x0103 -xtensa xtreg ar4 0x0104 -xtensa xtreg ar5 0x0105 -xtensa xtreg ar6 0x0106 -xtensa xtreg ar7 0x0107 -xtensa xtreg ar8 0x0108 -xtensa xtreg ar9 0x0109 -xtensa xtreg ar10 0x010a -xtensa xtreg ar11 0x010b -xtensa xtreg ar12 0x010c -xtensa xtreg ar13 0x010d -xtensa xtreg ar14 0x010e -xtensa xtreg ar15 0x010f -xtensa xtreg ar16 0x0110 -xtensa xtreg ar17 0x0111 -xtensa xtreg ar18 0x0112 -xtensa xtreg ar19 0x0113 -xtensa xtreg ar20 0x0114 -xtensa xtreg ar21 0x0115 -xtensa xtreg ar22 0x0116 -xtensa xtreg ar23 0x0117 -xtensa xtreg ar24 0x0118 -xtensa xtreg ar25 0x0119 -xtensa xtreg ar26 0x011a -xtensa xtreg ar27 0x011b -xtensa xtreg ar28 0x011c -xtensa xtreg ar29 0x011d -xtensa xtreg ar30 0x011e -xtensa xtreg ar31 0x011f -xtensa xtreg lbeg 0x0200 -xtensa xtreg lend 0x0201 -xtensa xtreg lcount 0x0202 -xtensa xtreg sar 0x0203 -xtensa xtreg prefctl 0x0228 -xtensa xtreg windowbase 0x0248 -xtensa xtreg windowstart 0x0249 -xtensa xtreg configid0 0x02b0 -xtensa xtreg configid1 0x02d0 -xtensa xtreg ps 0x02e6 -xtensa xtreg threadptr 0x03e7 -xtensa xtreg br 0x0204 -xtensa xtreg scompare1 0x020c -xtensa xtreg acclo 0x0210 -xtensa xtreg acchi 0x0211 -xtensa xtreg m0 0x0220 -xtensa xtreg m1 0x0221 -xtensa xtreg m2 0x0222 -xtensa xtreg m3 0x0223 -xtensa xtreg expstate 0x03e6 -xtensa xtreg f64r_lo 0x03ea -xtensa xtreg f64r_hi 0x03eb -xtensa xtreg f64s 0x03ec -xtensa xtreg ae_ovf_sar 0x03f0 -xtensa xtreg ae_bithead 0x03f1 -xtensa xtreg ae_ts_fts_bu_bp 0x03f2 -xtensa xtreg ae_cw_sd_no 0x03f3 -xtensa xtreg ae_cbegin0 0x03f6 -xtensa xtreg ae_cend0 0x03f7 -xtensa xtreg ae_cbegin1 0x03f8 -xtensa xtreg ae_cend1 0x03f9 -xtensa xtreg aed0 0x1010 -xtensa xtreg aed1 0x1011 -xtensa xtreg aed2 0x1012 -xtensa xtreg aed3 0x1013 -xtensa xtreg aed4 0x1014 -xtensa xtreg aed5 0x1015 -xtensa xtreg aed6 0x1016 -xtensa xtreg aed7 0x1017 -xtensa xtreg aed8 0x1018 -xtensa xtreg aed9 0x1019 -xtensa xtreg aed10 0x101a -xtensa xtreg aed11 0x101b -xtensa xtreg aed12 0x101c -xtensa xtreg aed13 0x101d -xtensa xtreg aed14 0x101e -xtensa xtreg aed15 0x101f -xtensa xtreg u0 0x1020 -xtensa xtreg u1 0x1021 -xtensa xtreg u2 0x1022 -xtensa xtreg u3 0x1023 -xtensa xtreg aep0 0x1024 -xtensa xtreg aep1 0x1025 -xtensa xtreg aep2 0x1026 -xtensa xtreg aep3 0x1027 -xtensa xtreg fcr_fsr 0x1029 -xtensa xtreg mmid 0x0259 -xtensa xtreg ibreakenable 0x0260 -xtensa xtreg memctl 0x0261 -xtensa xtreg atomctl 0x0263 -xtensa xtreg ddr 0x0268 -xtensa xtreg ibreaka0 0x0280 -xtensa xtreg ibreaka1 0x0281 -xtensa xtreg dbreaka0 0x0290 -xtensa xtreg dbreaka1 0x0291 -xtensa xtreg dbreakc0 0x02a0 -xtensa xtreg dbreakc1 0x02a1 -xtensa xtreg epc1 0x02b1 -xtensa xtreg epc2 0x02b2 -xtensa xtreg epc3 0x02b3 -xtensa xtreg epc4 0x02b4 -xtensa xtreg epc5 0x02b5 -xtensa xtreg depc 0x02c0 -xtensa xtreg eps2 0x02c2 -xtensa xtreg eps3 0x02c3 -xtensa xtreg eps4 0x02c4 -xtensa xtreg eps5 0x02c5 -xtensa xtreg excsave1 0x02d1 -xtensa xtreg excsave2 0x02d2 -xtensa xtreg excsave3 0x02d3 -xtensa xtreg excsave4 0x02d4 -xtensa xtreg excsave5 0x02d5 -xtensa xtreg cpenable 0x02e0 -xtensa xtreg interrupt 0x02e2 -xtensa xtreg intset 0x02e2 -xtensa xtreg intclear 0x02e3 -xtensa xtreg intenable 0x02e4 -xtensa xtreg vecbase 0x02e7 -xtensa xtreg exccause 0x02e8 -xtensa xtreg debugcause 0x02e9 -xtensa xtreg ccount 0x02ea -xtensa xtreg prid 0x02eb -xtensa xtreg icount 0x02ec -xtensa xtreg icountlevel 0x02ed -xtensa xtreg excvaddr 0x02ee -xtensa xtreg ccompare0 0x02f0 -xtensa xtreg ccompare1 0x02f1 -xtensa xtreg misc0 0x02f4 -xtensa xtreg misc1 0x02f5 -xtensa xtreg pwrctl 0x2024 -xtensa xtreg pwrstat 0x2025 -xtensa xtreg eristat 0x2026 -xtensa xtreg cs_itctrl 0x2027 -xtensa xtreg cs_claimset 0x2028 -xtensa xtreg cs_claimclr 0x2029 -xtensa xtreg cs_lockaccess 0x202a -xtensa xtreg cs_lockstatus 0x202b -xtensa xtreg cs_authstatus 0x202c -xtensa xtreg pmg 0x203b -xtensa xtreg pmpc 0x203c -xtensa xtreg pm0 0x203d -xtensa xtreg pm1 0x203e -xtensa xtreg pmctrl0 0x203f -xtensa xtreg pmctrl1 0x2040 -xtensa xtreg pmstat0 0x2041 -xtensa xtreg pmstat1 0x2042 -xtensa xtreg ocdid 0x2043 -xtensa xtreg ocd_dcrclr 0x2044 -xtensa xtreg ocd_dcrset 0x2045 -xtensa xtreg ocd_dsr 0x2046 -xtensa xtreg a0 0x0000 -xtensa xtreg a1 0x0001 -xtensa xtreg a2 0x0002 -xtensa xtreg a3 0x0003 -xtensa xtreg a4 0x0004 -xtensa xtreg a5 0x0005 -xtensa xtreg a6 0x0006 -xtensa xtreg a7 0x0007 -xtensa xtreg a8 0x0008 -xtensa xtreg a9 0x0009 -xtensa xtreg a10 0x000a -xtensa xtreg a11 0x000b -xtensa xtreg a12 0x000c -xtensa xtreg a13 0x000d -xtensa xtreg a14 0x000e -xtensa xtreg a15 0x000f -xtensa xtreg b0 0x0010 -xtensa xtreg b1 0x0011 -xtensa xtreg b2 0x0012 -xtensa xtreg b3 0x0013 -xtensa xtreg b4 0x0014 -xtensa xtreg b5 0x0015 -xtensa xtreg b6 0x0016 -xtensa xtreg b7 0x0017 -xtensa xtreg b8 0x0018 -xtensa xtreg b9 0x0019 -xtensa xtreg b10 0x001a -xtensa xtreg b11 0x001b -xtensa xtreg b12 0x001c -xtensa xtreg b13 0x001d -xtensa xtreg b14 0x001e -xtensa xtreg b15 0x001f -xtensa xtreg psintlevel 0x2006 -xtensa xtreg psum 0x2007 -xtensa xtreg pswoe 0x2008 -xtensa xtreg psexcm 0x2009 -xtensa xtreg pscallinc 0x200a -xtensa xtreg psowb 0x200b -xtensa xtreg acc 0x200c -xtensa xtreg dbnum 0x2011 -xtensa xtreg ae_overflow 0x2014 -xtensa xtreg ae_sar 0x2015 -xtensa xtreg ae_cwrap 0x2016 -xtensa xtreg ae_bitptr 0x2017 -xtensa xtreg ae_bitsused 0x2018 -xtensa xtreg ae_tablesize 0x2019 -xtensa xtreg ae_first_ts 0x201a -xtensa xtreg ae_nextoffset 0x201b -xtensa xtreg ae_searchdone 0x201c -xtensa xtreg roundmode 0x201d -xtensa xtreg invalidflag 0x201e -xtensa xtreg divzeroflag 0x201f -xtensa xtreg overflowflag 0x2020 -xtensa xtreg underflowflag 0x2021 -xtensa xtreg inexactflag 0x2022 +$_XTNAME xtensa xtregs 208 +$_XTNAME xtensa xtreg pc 0x0020 +$_XTNAME xtensa xtreg ar0 0x0100 +$_XTNAME xtensa xtreg ar1 0x0101 +$_XTNAME xtensa xtreg ar2 0x0102 +$_XTNAME xtensa xtreg ar3 0x0103 +$_XTNAME xtensa xtreg ar4 0x0104 +$_XTNAME xtensa xtreg ar5 0x0105 +$_XTNAME xtensa xtreg ar6 0x0106 +$_XTNAME xtensa xtreg ar7 0x0107 +$_XTNAME xtensa xtreg ar8 0x0108 +$_XTNAME xtensa xtreg ar9 0x0109 +$_XTNAME xtensa xtreg ar10 0x010a +$_XTNAME xtensa xtreg ar11 0x010b +$_XTNAME xtensa xtreg ar12 0x010c +$_XTNAME xtensa xtreg ar13 0x010d +$_XTNAME xtensa xtreg ar14 0x010e +$_XTNAME xtensa xtreg ar15 0x010f +$_XTNAME xtensa xtreg ar16 0x0110 +$_XTNAME xtensa xtreg ar17 0x0111 +$_XTNAME xtensa xtreg ar18 0x0112 +$_XTNAME xtensa xtreg ar19 0x0113 +$_XTNAME xtensa xtreg ar20 0x0114 +$_XTNAME xtensa xtreg ar21 0x0115 +$_XTNAME xtensa xtreg ar22 0x0116 +$_XTNAME xtensa xtreg ar23 0x0117 +$_XTNAME xtensa xtreg ar24 0x0118 +$_XTNAME xtensa xtreg ar25 0x0119 +$_XTNAME xtensa xtreg ar26 0x011a +$_XTNAME xtensa xtreg ar27 0x011b +$_XTNAME xtensa xtreg ar28 0x011c +$_XTNAME xtensa xtreg ar29 0x011d +$_XTNAME xtensa xtreg ar30 0x011e +$_XTNAME xtensa xtreg ar31 0x011f +$_XTNAME xtensa xtreg lbeg 0x0200 +$_XTNAME xtensa xtreg lend 0x0201 +$_XTNAME xtensa xtreg lcount 0x0202 +$_XTNAME xtensa xtreg sar 0x0203 +$_XTNAME xtensa xtreg prefctl 0x0228 +$_XTNAME xtensa xtreg windowbase 0x0248 +$_XTNAME xtensa xtreg windowstart 0x0249 +$_XTNAME xtensa xtreg configid0 0x02b0 +$_XTNAME xtensa xtreg configid1 0x02d0 +$_XTNAME xtensa xtreg ps 0x02e6 +$_XTNAME xtensa xtreg threadptr 0x03e7 +$_XTNAME xtensa xtreg br 0x0204 +$_XTNAME xtensa xtreg scompare1 0x020c +$_XTNAME xtensa xtreg acclo 0x0210 +$_XTNAME xtensa xtreg acchi 0x0211 +$_XTNAME xtensa xtreg m0 0x0220 +$_XTNAME xtensa xtreg m1 0x0221 +$_XTNAME xtensa xtreg m2 0x0222 +$_XTNAME xtensa xtreg m3 0x0223 +$_XTNAME xtensa xtreg expstate 0x03e6 +$_XTNAME xtensa xtreg f64r_lo 0x03ea +$_XTNAME xtensa xtreg f64r_hi 0x03eb +$_XTNAME xtensa xtreg f64s 0x03ec +$_XTNAME xtensa xtreg ae_ovf_sar 0x03f0 +$_XTNAME xtensa xtreg ae_bithead 0x03f1 +$_XTNAME xtensa xtreg ae_ts_fts_bu_bp 0x03f2 +$_XTNAME xtensa xtreg ae_cw_sd_no 0x03f3 +$_XTNAME xtensa xtreg ae_cbegin0 0x03f6 +$_XTNAME xtensa xtreg ae_cend0 0x03f7 +$_XTNAME xtensa xtreg ae_cbegin1 0x03f8 +$_XTNAME xtensa xtreg ae_cend1 0x03f9 +$_XTNAME xtensa xtreg aed0 0x1010 +$_XTNAME xtensa xtreg aed1 0x1011 +$_XTNAME xtensa xtreg aed2 0x1012 +$_XTNAME xtensa xtreg aed3 0x1013 +$_XTNAME xtensa xtreg aed4 0x1014 +$_XTNAME xtensa xtreg aed5 0x1015 +$_XTNAME xtensa xtreg aed6 0x1016 +$_XTNAME xtensa xtreg aed7 0x1017 +$_XTNAME xtensa xtreg aed8 0x1018 +$_XTNAME xtensa xtreg aed9 0x1019 +$_XTNAME xtensa xtreg aed10 0x101a +$_XTNAME xtensa xtreg aed11 0x101b +$_XTNAME xtensa xtreg aed12 0x101c +$_XTNAME xtensa xtreg aed13 0x101d +$_XTNAME xtensa xtreg aed14 0x101e +$_XTNAME xtensa xtreg aed15 0x101f +$_XTNAME xtensa xtreg u0 0x1020 +$_XTNAME xtensa xtreg u1 0x1021 +$_XTNAME xtensa xtreg u2 0x1022 +$_XTNAME xtensa xtreg u3 0x1023 +$_XTNAME xtensa xtreg aep0 0x1024 +$_XTNAME xtensa xtreg aep1 0x1025 +$_XTNAME xtensa xtreg aep2 0x1026 +$_XTNAME xtensa xtreg aep3 0x1027 +$_XTNAME xtensa xtreg fcr_fsr 0x1029 +$_XTNAME xtensa xtreg mmid 0x0259 +$_XTNAME xtensa xtreg ibreakenable 0x0260 +$_XTNAME xtensa xtreg memctl 0x0261 +$_XTNAME xtensa xtreg atomctl 0x0263 +$_XTNAME xtensa xtreg ddr 0x0268 +$_XTNAME xtensa xtreg ibreaka0 0x0280 +$_XTNAME xtensa xtreg ibreaka1 0x0281 +$_XTNAME xtensa xtreg dbreaka0 0x0290 +$_XTNAME xtensa xtreg dbreaka1 0x0291 +$_XTNAME xtensa xtreg dbreakc0 0x02a0 +$_XTNAME xtensa xtreg dbreakc1 0x02a1 +$_XTNAME xtensa xtreg epc1 0x02b1 +$_XTNAME xtensa xtreg epc2 0x02b2 +$_XTNAME xtensa xtreg epc3 0x02b3 +$_XTNAME xtensa xtreg epc4 0x02b4 +$_XTNAME xtensa xtreg epc5 0x02b5 +$_XTNAME xtensa xtreg depc 0x02c0 +$_XTNAME xtensa xtreg eps2 0x02c2 +$_XTNAME xtensa xtreg eps3 0x02c3 +$_XTNAME xtensa xtreg eps4 0x02c4 +$_XTNAME xtensa xtreg eps5 0x02c5 +$_XTNAME xtensa xtreg excsave1 0x02d1 +$_XTNAME xtensa xtreg excsave2 0x02d2 +$_XTNAME xtensa xtreg excsave3 0x02d3 +$_XTNAME xtensa xtreg excsave4 0x02d4 +$_XTNAME xtensa xtreg excsave5 0x02d5 +$_XTNAME xtensa xtreg cpenable 0x02e0 +$_XTNAME xtensa xtreg interrupt 0x02e2 +$_XTNAME xtensa xtreg intset 0x02e2 +$_XTNAME xtensa xtreg intclear 0x02e3 +$_XTNAME xtensa xtreg intenable 0x02e4 +$_XTNAME xtensa xtreg vecbase 0x02e7 +$_XTNAME xtensa xtreg exccause 0x02e8 +$_XTNAME xtensa xtreg debugcause 0x02e9 +$_XTNAME xtensa xtreg ccount 0x02ea +$_XTNAME xtensa xtreg prid 0x02eb +$_XTNAME xtensa xtreg icount 0x02ec +$_XTNAME xtensa xtreg icountlevel 0x02ed +$_XTNAME xtensa xtreg excvaddr 0x02ee +$_XTNAME xtensa xtreg ccompare0 0x02f0 +$_XTNAME xtensa xtreg ccompare1 0x02f1 +$_XTNAME xtensa xtreg misc0 0x02f4 +$_XTNAME xtensa xtreg misc1 0x02f5 +$_XTNAME xtensa xtreg pwrctl 0x2024 +$_XTNAME xtensa xtreg pwrstat 0x2025 +$_XTNAME xtensa xtreg eristat 0x2026 +$_XTNAME xtensa xtreg cs_itctrl 0x2027 +$_XTNAME xtensa xtreg cs_claimset 0x2028 +$_XTNAME xtensa xtreg cs_claimclr 0x2029 +$_XTNAME xtensa xtreg cs_lockaccess 0x202a +$_XTNAME xtensa xtreg cs_lockstatus 0x202b +$_XTNAME xtensa xtreg cs_authstatus 0x202c +$_XTNAME xtensa xtreg pmg 0x203b +$_XTNAME xtensa xtreg pmpc 0x203c +$_XTNAME xtensa xtreg pm0 0x203d +$_XTNAME xtensa xtreg pm1 0x203e +$_XTNAME xtensa xtreg pmctrl0 0x203f +$_XTNAME xtensa xtreg pmctrl1 0x2040 +$_XTNAME xtensa xtreg pmstat0 0x2041 +$_XTNAME xtensa xtreg pmstat1 0x2042 +$_XTNAME xtensa xtreg ocdid 0x2043 +$_XTNAME xtensa xtreg ocd_dcrclr 0x2044 +$_XTNAME xtensa xtreg ocd_dcrset 0x2045 +$_XTNAME xtensa xtreg ocd_dsr 0x2046 +$_XTNAME xtensa xtreg a0 0x0000 +$_XTNAME xtensa xtreg a1 0x0001 +$_XTNAME xtensa xtreg a2 0x0002 +$_XTNAME xtensa xtreg a3 0x0003 +$_XTNAME xtensa xtreg a4 0x0004 +$_XTNAME xtensa xtreg a5 0x0005 +$_XTNAME xtensa xtreg a6 0x0006 +$_XTNAME xtensa xtreg a7 0x0007 +$_XTNAME xtensa xtreg a8 0x0008 +$_XTNAME xtensa xtreg a9 0x0009 +$_XTNAME xtensa xtreg a10 0x000a +$_XTNAME xtensa xtreg a11 0x000b +$_XTNAME xtensa xtreg a12 0x000c +$_XTNAME xtensa xtreg a13 0x000d +$_XTNAME xtensa xtreg a14 0x000e +$_XTNAME xtensa xtreg a15 0x000f +$_XTNAME xtensa xtreg b0 0x0010 +$_XTNAME xtensa xtreg b1 0x0011 +$_XTNAME xtensa xtreg b2 0x0012 +$_XTNAME xtensa xtreg b3 0x0013 +$_XTNAME xtensa xtreg b4 0x0014 +$_XTNAME xtensa xtreg b5 0x0015 +$_XTNAME xtensa xtreg b6 0x0016 +$_XTNAME xtensa xtreg b7 0x0017 +$_XTNAME xtensa xtreg b8 0x0018 +$_XTNAME xtensa xtreg b9 0x0019 +$_XTNAME xtensa xtreg b10 0x001a +$_XTNAME xtensa xtreg b11 0x001b +$_XTNAME xtensa xtreg b12 0x001c +$_XTNAME xtensa xtreg b13 0x001d +$_XTNAME xtensa xtreg b14 0x001e +$_XTNAME xtensa xtreg b15 0x001f +$_XTNAME xtensa xtreg psintlevel 0x2006 +$_XTNAME xtensa xtreg psum 0x2007 +$_XTNAME xtensa xtreg pswoe 0x2008 +$_XTNAME xtensa xtreg psexcm 0x2009 +$_XTNAME xtensa xtreg pscallinc 0x200a +$_XTNAME xtensa xtreg psowb 0x200b +$_XTNAME xtensa xtreg acc 0x200c +$_XTNAME xtensa xtreg dbnum 0x2011 +$_XTNAME xtensa xtreg ae_overflow 0x2014 +$_XTNAME xtensa xtreg ae_sar 0x2015 +$_XTNAME xtensa xtreg ae_cwrap 0x2016 +$_XTNAME xtensa xtreg ae_bitptr 0x2017 +$_XTNAME xtensa xtreg ae_bitsused 0x2018 +$_XTNAME xtensa xtreg ae_tablesize 0x2019 +$_XTNAME xtensa xtreg ae_first_ts 0x201a +$_XTNAME xtensa xtreg ae_nextoffset 0x201b +$_XTNAME xtensa xtreg ae_searchdone 0x201c +$_XTNAME xtensa xtreg roundmode 0x201d +$_XTNAME xtensa xtreg invalidflag 0x201e +$_XTNAME xtensa xtreg divzeroflag 0x201f +$_XTNAME xtensa xtreg overflowflag 0x2020 +$_XTNAME xtensa xtreg underflowflag 0x2021 +$_XTNAME xtensa xtreg inexactflag 0x2022 diff --git a/tcl/target/xtensa-core-xt8.cfg b/tcl/target/xtensa-core-xt8.cfg index e544d7854..523dc74e1 100644 --- a/tcl/target/xtensa-core-xt8.cfg +++ b/tcl/target/xtensa-core-xt8.cfg @@ -1,166 +1,175 @@ # SPDX-License-Identifier: GPL-2.0-or-later # OpenOCD configuration file for Xtensa xt8 target + +# Core instance default definition +if { [info exists XTNAME] } { + set _XTNAME $XTNAME +} else { + set _XTNAME xtensa +} + + # Core definition and ABI -xtensa xtdef LX -xtensa xtopt arnum 32 -xtensa xtopt windowed 1 +$_XTNAME xtensa xtdef LX +$_XTNAME xtensa xtopt arnum 32 +$_XTNAME xtensa xtopt windowed 1 # Exception/Interrupt Options -xtensa xtopt exceptions 1 -xtensa xtopt hipriints 1 -xtensa xtopt intlevels 3 -xtensa xtopt excmlevel 1 +$_XTNAME xtensa xtopt exceptions 1 +$_XTNAME xtensa xtopt hipriints 1 +$_XTNAME xtensa xtopt intlevels 3 +$_XTNAME xtensa xtopt excmlevel 1 # Cache Options -xtensa xtmem icache 16 1024 1 -xtensa xtmem dcache 16 1024 1 1 +$_XTNAME xtensa xtmem icache 16 1024 1 +$_XTNAME xtensa xtmem dcache 16 1024 1 1 # Memory Options -xtensa xtmem iram 0x40000000 1048576 -xtensa xtmem dram 0x3ff00000 262144 -xtensa xtmem srom 0x50000000 131072 -xtensa xtmem sram 0x60000000 4194304 +$_XTNAME xtensa xtmem iram 0x40000000 1048576 +$_XTNAME xtensa xtmem dram 0x3ff00000 262144 +$_XTNAME xtensa xtmem srom 0x50000000 131072 +$_XTNAME xtensa xtmem sram 0x60000000 4194304 # Memory Protection/Translation Options # Debug Options -xtensa xtopt debuglevel 3 -xtensa xtopt ibreaknum 2 -xtensa xtopt dbreaknum 2 +$_XTNAME xtensa xtopt debuglevel 3 +$_XTNAME xtensa xtopt ibreaknum 2 +$_XTNAME xtensa xtopt dbreaknum 2 # Core Registers -xtensa xtregs 127 -xtensa xtreg a0 0x0000 -xtensa xtreg a1 0x0001 -xtensa xtreg a2 0x0002 -xtensa xtreg a3 0x0003 -xtensa xtreg a4 0x0004 -xtensa xtreg a5 0x0005 -xtensa xtreg a6 0x0006 -xtensa xtreg a7 0x0007 -xtensa xtreg a8 0x0008 -xtensa xtreg a9 0x0009 -xtensa xtreg a10 0x000a -xtensa xtreg a11 0x000b -xtensa xtreg a12 0x000c -xtensa xtreg a13 0x000d -xtensa xtreg a14 0x000e -xtensa xtreg a15 0x000f -xtensa xtreg pc 0x0020 -xtensa xtreg ar0 0x0100 -xtensa xtreg ar1 0x0101 -xtensa xtreg ar2 0x0102 -xtensa xtreg ar3 0x0103 -xtensa xtreg ar4 0x0104 -xtensa xtreg ar5 0x0105 -xtensa xtreg ar6 0x0106 -xtensa xtreg ar7 0x0107 -xtensa xtreg ar8 0x0108 -xtensa xtreg ar9 0x0109 -xtensa xtreg ar10 0x010a -xtensa xtreg ar11 0x010b -xtensa xtreg ar12 0x010c -xtensa xtreg ar13 0x010d -xtensa xtreg ar14 0x010e -xtensa xtreg ar15 0x010f -xtensa xtreg ar16 0x0110 -xtensa xtreg ar17 0x0111 -xtensa xtreg ar18 0x0112 -xtensa xtreg ar19 0x0113 -xtensa xtreg ar20 0x0114 -xtensa xtreg ar21 0x0115 -xtensa xtreg ar22 0x0116 -xtensa xtreg ar23 0x0117 -xtensa xtreg ar24 0x0118 -xtensa xtreg ar25 0x0119 -xtensa xtreg ar26 0x011a -xtensa xtreg ar27 0x011b -xtensa xtreg ar28 0x011c -xtensa xtreg ar29 0x011d -xtensa xtreg ar30 0x011e -xtensa xtreg ar31 0x011f -xtensa xtreg lbeg 0x0200 -xtensa xtreg lend 0x0201 -xtensa xtreg lcount 0x0202 -xtensa xtreg sar 0x0203 -xtensa xtreg windowbase 0x0248 -xtensa xtreg windowstart 0x0249 -xtensa xtreg configid0 0x02b0 -xtensa xtreg configid1 0x02d0 -xtensa xtreg ps 0x02e6 -xtensa xtreg expstate 0x03e6 -xtensa xtreg mmid 0x0259 -xtensa xtreg ibreakenable 0x0260 -xtensa xtreg ddr 0x0268 -xtensa xtreg ibreaka0 0x0280 -xtensa xtreg ibreaka1 0x0281 -xtensa xtreg dbreaka0 0x0290 -xtensa xtreg dbreaka1 0x0291 -xtensa xtreg dbreakc0 0x02a0 -xtensa xtreg dbreakc1 0x02a1 -xtensa xtreg epc1 0x02b1 -xtensa xtreg epc2 0x02b2 -xtensa xtreg epc3 0x02b3 -xtensa xtreg depc 0x02c0 -xtensa xtreg eps2 0x02c2 -xtensa xtreg eps3 0x02c3 -xtensa xtreg excsave1 0x02d1 -xtensa xtreg excsave2 0x02d2 -xtensa xtreg excsave3 0x02d3 -xtensa xtreg interrupt 0x02e2 -xtensa xtreg intset 0x02e2 -xtensa xtreg intclear 0x02e3 -xtensa xtreg intenable 0x02e4 -xtensa xtreg exccause 0x02e8 -xtensa xtreg debugcause 0x02e9 -xtensa xtreg ccount 0x02ea -xtensa xtreg icount 0x02ec -xtensa xtreg icountlevel 0x02ed -xtensa xtreg excvaddr 0x02ee -xtensa xtreg ccompare0 0x02f0 -xtensa xtreg ccompare1 0x02f1 -xtensa xtreg pwrctl 0x200f -xtensa xtreg pwrstat 0x2010 -xtensa xtreg eristat 0x2011 -xtensa xtreg cs_itctrl 0x2012 -xtensa xtreg cs_claimset 0x2013 -xtensa xtreg cs_claimclr 0x2014 -xtensa xtreg cs_lockaccess 0x2015 -xtensa xtreg cs_lockstatus 0x2016 -xtensa xtreg cs_authstatus 0x2017 -xtensa xtreg fault_info 0x2026 -xtensa xtreg trax_id 0x2027 -xtensa xtreg trax_control 0x2028 -xtensa xtreg trax_status 0x2029 -xtensa xtreg trax_data 0x202a -xtensa xtreg trax_address 0x202b -xtensa xtreg trax_pctrigger 0x202c -xtensa xtreg trax_pcmatch 0x202d -xtensa xtreg trax_delay 0x202e -xtensa xtreg trax_memstart 0x202f -xtensa xtreg trax_memend 0x2030 -xtensa xtreg pmg 0x203e -xtensa xtreg pmpc 0x203f -xtensa xtreg pm0 0x2040 -xtensa xtreg pm1 0x2041 -xtensa xtreg pmctrl0 0x2042 -xtensa xtreg pmctrl1 0x2043 -xtensa xtreg pmstat0 0x2044 -xtensa xtreg pmstat1 0x2045 -xtensa xtreg ocdid 0x2046 -xtensa xtreg ocd_dcrclr 0x2047 -xtensa xtreg ocd_dcrset 0x2048 -xtensa xtreg ocd_dsr 0x2049 -xtensa xtreg psintlevel 0x2003 -xtensa xtreg psum 0x2004 -xtensa xtreg pswoe 0x2005 -xtensa xtreg psexcm 0x2006 -xtensa xtreg pscallinc 0x2007 -xtensa xtreg psowb 0x2008 +$_XTNAME xtensa xtregs 127 +$_XTNAME xtensa xtreg a0 0x0000 +$_XTNAME xtensa xtreg a1 0x0001 +$_XTNAME xtensa xtreg a2 0x0002 +$_XTNAME xtensa xtreg a3 0x0003 +$_XTNAME xtensa xtreg a4 0x0004 +$_XTNAME xtensa xtreg a5 0x0005 +$_XTNAME xtensa xtreg a6 0x0006 +$_XTNAME xtensa xtreg a7 0x0007 +$_XTNAME xtensa xtreg a8 0x0008 +$_XTNAME xtensa xtreg a9 0x0009 +$_XTNAME xtensa xtreg a10 0x000a +$_XTNAME xtensa xtreg a11 0x000b +$_XTNAME xtensa xtreg a12 0x000c +$_XTNAME xtensa xtreg a13 0x000d +$_XTNAME xtensa xtreg a14 0x000e +$_XTNAME xtensa xtreg a15 0x000f +$_XTNAME xtensa xtreg pc 0x0020 +$_XTNAME xtensa xtreg ar0 0x0100 +$_XTNAME xtensa xtreg ar1 0x0101 +$_XTNAME xtensa xtreg ar2 0x0102 +$_XTNAME xtensa xtreg ar3 0x0103 +$_XTNAME xtensa xtreg ar4 0x0104 +$_XTNAME xtensa xtreg ar5 0x0105 +$_XTNAME xtensa xtreg ar6 0x0106 +$_XTNAME xtensa xtreg ar7 0x0107 +$_XTNAME xtensa xtreg ar8 0x0108 +$_XTNAME xtensa xtreg ar9 0x0109 +$_XTNAME xtensa xtreg ar10 0x010a +$_XTNAME xtensa xtreg ar11 0x010b +$_XTNAME xtensa xtreg ar12 0x010c +$_XTNAME xtensa xtreg ar13 0x010d +$_XTNAME xtensa xtreg ar14 0x010e +$_XTNAME xtensa xtreg ar15 0x010f +$_XTNAME xtensa xtreg ar16 0x0110 +$_XTNAME xtensa xtreg ar17 0x0111 +$_XTNAME xtensa xtreg ar18 0x0112 +$_XTNAME xtensa xtreg ar19 0x0113 +$_XTNAME xtensa xtreg ar20 0x0114 +$_XTNAME xtensa xtreg ar21 0x0115 +$_XTNAME xtensa xtreg ar22 0x0116 +$_XTNAME xtensa xtreg ar23 0x0117 +$_XTNAME xtensa xtreg ar24 0x0118 +$_XTNAME xtensa xtreg ar25 0x0119 +$_XTNAME xtensa xtreg ar26 0x011a +$_XTNAME xtensa xtreg ar27 0x011b +$_XTNAME xtensa xtreg ar28 0x011c +$_XTNAME xtensa xtreg ar29 0x011d +$_XTNAME xtensa xtreg ar30 0x011e +$_XTNAME xtensa xtreg ar31 0x011f +$_XTNAME xtensa xtreg lbeg 0x0200 +$_XTNAME xtensa xtreg lend 0x0201 +$_XTNAME xtensa xtreg lcount 0x0202 +$_XTNAME xtensa xtreg sar 0x0203 +$_XTNAME xtensa xtreg windowbase 0x0248 +$_XTNAME xtensa xtreg windowstart 0x0249 +$_XTNAME xtensa xtreg configid0 0x02b0 +$_XTNAME xtensa xtreg configid1 0x02d0 +$_XTNAME xtensa xtreg ps 0x02e6 +$_XTNAME xtensa xtreg expstate 0x03e6 +$_XTNAME xtensa xtreg mmid 0x0259 +$_XTNAME xtensa xtreg ibreakenable 0x0260 +$_XTNAME xtensa xtreg ddr 0x0268 +$_XTNAME xtensa xtreg ibreaka0 0x0280 +$_XTNAME xtensa xtreg ibreaka1 0x0281 +$_XTNAME xtensa xtreg dbreaka0 0x0290 +$_XTNAME xtensa xtreg dbreaka1 0x0291 +$_XTNAME xtensa xtreg dbreakc0 0x02a0 +$_XTNAME xtensa xtreg dbreakc1 0x02a1 +$_XTNAME xtensa xtreg epc1 0x02b1 +$_XTNAME xtensa xtreg epc2 0x02b2 +$_XTNAME xtensa xtreg epc3 0x02b3 +$_XTNAME xtensa xtreg depc 0x02c0 +$_XTNAME xtensa xtreg eps2 0x02c2 +$_XTNAME xtensa xtreg eps3 0x02c3 +$_XTNAME xtensa xtreg excsave1 0x02d1 +$_XTNAME xtensa xtreg excsave2 0x02d2 +$_XTNAME xtensa xtreg excsave3 0x02d3 +$_XTNAME xtensa xtreg interrupt 0x02e2 +$_XTNAME xtensa xtreg intset 0x02e2 +$_XTNAME xtensa xtreg intclear 0x02e3 +$_XTNAME xtensa xtreg intenable 0x02e4 +$_XTNAME xtensa xtreg exccause 0x02e8 +$_XTNAME xtensa xtreg debugcause 0x02e9 +$_XTNAME xtensa xtreg ccount 0x02ea +$_XTNAME xtensa xtreg icount 0x02ec +$_XTNAME xtensa xtreg icountlevel 0x02ed +$_XTNAME xtensa xtreg excvaddr 0x02ee +$_XTNAME xtensa xtreg ccompare0 0x02f0 +$_XTNAME xtensa xtreg ccompare1 0x02f1 +$_XTNAME xtensa xtreg pwrctl 0x200f +$_XTNAME xtensa xtreg pwrstat 0x2010 +$_XTNAME xtensa xtreg eristat 0x2011 +$_XTNAME xtensa xtreg cs_itctrl 0x2012 +$_XTNAME xtensa xtreg cs_claimset 0x2013 +$_XTNAME xtensa xtreg cs_claimclr 0x2014 +$_XTNAME xtensa xtreg cs_lockaccess 0x2015 +$_XTNAME xtensa xtreg cs_lockstatus 0x2016 +$_XTNAME xtensa xtreg cs_authstatus 0x2017 +$_XTNAME xtensa xtreg fault_info 0x2026 +$_XTNAME xtensa xtreg trax_id 0x2027 +$_XTNAME xtensa xtreg trax_control 0x2028 +$_XTNAME xtensa xtreg trax_status 0x2029 +$_XTNAME xtensa xtreg trax_data 0x202a +$_XTNAME xtensa xtreg trax_address 0x202b +$_XTNAME xtensa xtreg trax_pctrigger 0x202c +$_XTNAME xtensa xtreg trax_pcmatch 0x202d +$_XTNAME xtensa xtreg trax_delay 0x202e +$_XTNAME xtensa xtreg trax_memstart 0x202f +$_XTNAME xtensa xtreg trax_memend 0x2030 +$_XTNAME xtensa xtreg pmg 0x203e +$_XTNAME xtensa xtreg pmpc 0x203f +$_XTNAME xtensa xtreg pm0 0x2040 +$_XTNAME xtensa xtreg pm1 0x2041 +$_XTNAME xtensa xtreg pmctrl0 0x2042 +$_XTNAME xtensa xtreg pmctrl1 0x2043 +$_XTNAME xtensa xtreg pmstat0 0x2044 +$_XTNAME xtensa xtreg pmstat1 0x2045 +$_XTNAME xtensa xtreg ocdid 0x2046 +$_XTNAME xtensa xtreg ocd_dcrclr 0x2047 +$_XTNAME xtensa xtreg ocd_dcrset 0x2048 +$_XTNAME xtensa xtreg ocd_dsr 0x2049 +$_XTNAME xtensa xtreg psintlevel 0x2003 +$_XTNAME xtensa xtreg psum 0x2004 +$_XTNAME xtensa xtreg pswoe 0x2005 +$_XTNAME xtensa xtreg psexcm 0x2006 +$_XTNAME xtensa xtreg pscallinc 0x2007 +$_XTNAME xtensa xtreg psowb 0x2008 diff --git a/tcl/target/xtensa.cfg b/tcl/target/xtensa.cfg index 101e13546..561131d84 100644 --- a/tcl/target/xtensa.cfg +++ b/tcl/target/xtensa.cfg @@ -5,7 +5,7 @@ set xtensa_ids { 0x120034e5 0x120134e5 0x209034e5 0x209134e5 0x209234e5 0x209334e5 0x209434e5 0x209534e5 0x209634e5 0x209734e5 0x20a034e5 0x20a134e5 0x20a234e5 0x20a334e5 0x20a434e5 0x20a534e5 0x20a634e5 0x20a734e5 0x20a834e5 - 0x20b034e5 } + 0x20b034e5 0x20b33ac5 0x20b33ac7 } set expected_xtensa_ids {} foreach i $xtensa_ids { lappend expected_xtensa_ids -expected-id $i @@ -23,6 +23,12 @@ if { [info exists CPUTAPID] } { set _CPUTAPARGLIST [join $expected_xtensa_ids] } +if { [info exists XTENSA_NUM_CORES] } { + set _XTENSA_NUM_CORES $XTENSA_NUM_CORES +} else { + set _XTENSA_NUM_CORES 1 +} + set _TARGETNAME $_CHIPNAME set _CPU0NAME cpu set _TAPNAME $_CHIPNAME.$_CPU0NAME @@ -40,12 +46,25 @@ if { [info exists XTENSA_DAP] } { } else { target create $_TARGETNAME xtensa -dap $_CHIPNAME.dap } -} else { +} elseif { $_XTENSA_NUM_CORES > 1 } { # JTAG direct (without DAP) + for {set i 0} {$i < $_XTENSA_NUM_CORES} {incr i} { + set _LCPUNAME $_CPU0NAME$i + set _LTAPNAME $_CHIPNAME.$_LCPUNAME + eval jtag newtap $_CHIPNAME $_LCPUNAME -irlen 5 $_CPUTAPARGLIST + target create $_LTAPNAME xtensa -chain-position $_LTAPNAME -coreid $i + + $_LTAPNAME configure -event reset-assert-post { soft_reset_halt } + } +} else { + # JTAG direct (without DAP) - for legacy xtensa-config-XXX.cfg format eval jtag newtap $_CHIPNAME $_CPU0NAME -irlen 5 $_CPUTAPARGLIST target create $_TARGETNAME xtensa -chain-position $_TAPNAME } -$_TARGETNAME configure -event reset-assert-post { soft_reset_halt } +if { $_XTENSA_NUM_CORES == 1 } { + # DAP and single-core legacy JTAG + $_TARGETNAME configure -event reset-assert-post { soft_reset_halt } +} gdb_report_register_access_error enable ----------------------------------------------------------------------- Summary of changes: tcl/board/xtensa-palladium-vdebug-dual.cfg | 33 +++ tcl/board/xtensa-palladium-vdebug.cfg | 16 +- tcl/target/xtensa-core-nxp_rt600.cfg | 456 +++++++++++++++-------------- tcl/target/xtensa-core-xt8.cfg | 297 ++++++++++--------- tcl/target/xtensa.cfg | 25 +- 5 files changed, 455 insertions(+), 372 deletions(-) create mode 100644 tcl/board/xtensa-palladium-vdebug-dual.cfg hooks/post-receive -- Main OpenOCD repository |