De1_soc: JTAG & Linux

I am using the de1_soc board with custom Linux distrubition.
1/ I can’t find any documentation on how to debug Linux kernel using the JTAG.
2/ I can’t find how to debug a Linux application through the JTAG port.
Is there any way to exploit the available ETM in the CortexA9 to debug an application running on top of Linux ? If yes, could you quote some starting points (tutorial, …)


Sorry I may not be much help but I see there’s no responses yet…

I’ve not needed to perform “deep debugging” beyond just watching the Kernel boot messages on the terminal during boot. That’s been sufficient so far. This is due to that fact that the socfpga Kernels are pretty mature. If your not using one of the Kernels that already has all the socfpga drivers included then you’ve got a real project on your hands! There’s been years of work to get the Cyclone, Arria (etc) working properly. Are you using one of these Kernels? If you’re going to deviate from the typical procedures (yocto, buildroot, etc) then again you’ll have a project on your hands (with not much documentation).

Kernels with all the latest socfpga drivers are located here:
git clone

Here’s the tags for recommended Kernels with the latest security patches:
rel_socfpga-4.9.76-ltsi-rt_18.02.01_pr # latest real-time version

If you need help building a custom Linux distro using Buildroot I can help. There’s lots of examples here on rocketboards for yocto (Angstrum).

DS-5 and the GNU Debugger both work for debugging an app running in Linux.
I’ve never used the JTAG to debug on the ARM other than with DS-5 which is a deep well (lots of online info from ARM).

Hope this helps a little.

@jhaberly Thank you. I’ve missed to clarify that I’m already built my distro based on Linux 4.1.33-rt38 and it’s running well.
However, I’m working on a real time (~uSeconds) system that has parts running in user and kernel space.
I’m exploiting ds-5 features but they’re not sufficient. I need to debug the kernel while user-land code is running. So I need to access HPS registers.