Hi NVIDIA team,
I am trying to enable ARM CoreSight ETM tracing on Jetson Orin Nano (T234), but I cannot bring up any CoreSight devices even after rebuilding the kernel with CoreSight options enabled.
Environment
- Board: Jetson Orin Nano Devkit
- SoC: T234
- JetPack/L4T: JetPack 6 / R36.4.3
- Kernel:
5.15.148-tegra
What I changed
I rebuilt the kernel and enabled:
CONFIG_CORESIGHT=y
CONFIG_CORESIGHT_LINKS_AND_SINKS=y
CONFIG_CORESIGHT_LINK_AND_SINK_TMC=y
CONFIG_CORESIGHT_SOURCE_ETM4X=y
I replaced kernel image + DTB and rebooted successfully.
Reproduction / Current status
zcat /proc/config.gz | grep CORESIGHT
Output:
CONFIG_CORESIGHT=y
CONFIG_CORESIGHT_LINKS_AND_SINKS=y
CONFIG_CORESIGHT_LINK_AND_SINK_TMC=y
CONFIG_CORESIGHT_SINK_TPIU=y
CONFIG_CORESIGHT_SINK_ETBV10=y
CONFIG_CORESIGHT_SOURCE_ETM4X=y
ls -la /sys/bus/coresight/devices
Output:
total 0
drwxr-xr-x 2 root root 0 ...
drwxr-xr-x 4 root root 0 ...
sudo dmesg | grep -i coresight
Output:
[ ...] cs_system_cfg: CoreSight Configuration manager initialised
Also, decompiling the running DTB does not show coresight/etm/tmc/funnel/replicator nodes.
My understanding
This no longer looks like a kernel Kconfig issue.
It seems T234 CoreSight DT/platform description is missing in my current source/release.
I saw forum comments mentioning:
hardware/nvidia/soc/t23x/kernel-dts/tegra234-soc/tegra234-soc-coresight.dtsi
but I cannot find a usable public file/patch for this on my side.
Request
Could you please provide one of the following for R36.4.3 (or the nearest supported release):
- A working
tegra234-soc-coresight.dtsi; or
- A patch set (DTS/DTSI + dependencies) that can be applied directly; or
- A clear statement that ETM is not supported on this release, and recommended alternatives.
If supported, please share:
- ETM/TMC/Funnel/Replicator MMIO addresses
- required clock/reset bindings
- ports/endpoints topology
- expected validation output (
/sys/bus/coresight/devices node list)
Thanks in advance.
References
Hi,
Please get the file from
Jetson Linux | NVIDIA Developer
Driver Package (BSP) Sources
/hardware/nvidia/soc/t23x/kernel-dts/tegra234-soc/tegra234-soc-coresight.dtsi
It shall be eligible for Jetpack 6. Please give it a try.
Thanks for sharing the tegra234-soc-coresight.dtsi path.
I tested it on JetPack 6 (R36.4.3), but ETM/TMC still do not bind successfully.
Environment
- Board: Jetson Orin Nano Devkit (T234)
- JetPack/L4T: R36.4.3
- Kernel: 5.15.148-tegra
What I did
- Found file in R35.6.4 public_sources.tbz2:
hardware/nvidia/soc/t23x/kernel-dts/tegra234-soc/tegra234-soc-coresight.dtsi
- Ported this dtsi into my R36.4.3 source tree and included it in board DT chain.
- Adjusted obvious compatibility issues for R36 (clock provider/cpu phandle mapping).
- Rebuilt DTBs, deployed DTB, updated initrd, rebooted.
Current result
- Kernel config is enabled:
CONFIG_CORESIGHT=y
CONFIG_CORESIGHT_LINKS_AND_SINKS=y
CONFIG_CORESIGHT_LINK_AND_SINK_TMC=y
CONFIG_CORESIGHT_SOURCE_ETM4X=y
- Boot log shows only:
cs_system_cfg: CoreSight Configuration manager initialised
- No ETM/TMC probe success logs.
- Driver directories show no bound devices:
/sys/bus/amba/drivers/coresight-etm4x → only uevent
/sys/bus/amba/drivers/coresight-tmc → only uevent
Request
Could you please provide a known-good patch/config for R36.x (preferably R36.4.3 or nearest) including:
- Exact
tegra234 CoreSight DTS/DTSI content for this release,
- Required clock/reset/power/security settings,
- Any additional kernel args or runtime setup needed to make ETM/TMC bind.
If possible, please share expected success logs and expected /sys/bus/coresight/devices node list for Orin Nano.
Thanks a lot.
Hi,
We have tested it on AGX Orin developer kit:
Are there any processor tracing support on Jetson AGX Orin - #9 by WayneWWW
Will check with the teams and see if it works the same on Orin Nano.
Thanks for your help! We are looking forward to your team’s feedback on whether the Orin Nano supports the same tracing features. Hope to hear from you soon.
## Jetson Orin Nano: ETM trace not producing payload (only 64-byte AUXTRACE)
I’m trying to collect ETM control-flow trace with `perf` on Jetson Orin Nano, but I cannot get valid ETM payload.
Below is the current status and reproduction details.
1) Device/PMU enumeration status
CoreSight devices currently visible under `/sys/bus/coresight/devices`:
- `etm0 … etm5`
- `funnel0 … funnel4`
- `replicator0`
- `tmc_etf0`
Perf side:
- `perf list | grep -i cs_etm` shows `cs_etm//`
- `/sys/bus/event_source/devices/cs_etm` exists
2) Key boot/runtime errors
Boot log contains:
- `coresight-tmc: probe of 24070000.etr failed with error -13`
CBB errors also appear:
- `Error:cbb-fabric, Errmon:2`
- `Error Code: SLAVE_ERR`
- `MASTER_ID: CCPLEX`
- `Protection: Unprivileged, Non-Secure, Data Access`
- Example fault addresses: `0x27840fe0 / 0x27940fe0 / 0x27a40fe0 / 0x27b40fe0`
3) ETM register status (example)
- `trcauthstatus = 0x88`
- `trcoslsr = 0xa`
- `trcpdsr = 0x23` (on some cores)
I’m not sure whether `0x88` means non-secure ETM debug/trace is disabled on this platform.
4) Reproduction setup
Since ETR is unavailable, I disabled ETR in DTB and tried to sink ETM to ETF.
Commands:
```bash
sudo perf record -vv -o perf.data -e cs_etm// -C 0 – timeout 3s taskset -c 0 ./branch_demo
sudo perf report -D -i perf.data | rg “CoreSight ETM Trace data|AUXTRACE|SAMPLE events” -n
```
5) Observed result
Results are consistently:
- `PERF_RECORD_AUXTRACE_INFO` exists
- `PERF_RECORD_AUXTRACE` exists
- but `CoreSight ETM Trace data: size 64 bytes`
- `SAMPLE events: 0`
- `perf script --itrace=…` has no output
So there is AUXTRACE metadata/header, but almost no valid ETM payload.
6) Question
Does `trcauthstatus = 0x88` on Orin Nano mean non-secure ETM trace is unavailable by default?
If yes, what is the official way to enable ETM trace so that real ETM payload can be collected?