Arm Community
Arm Community
  • Site
  • User
  • Site
  • Search
  • User
  • Groups
    • Research Collaboration and Enablement
    • DesignStart
    • Education Hub
    • Innovation
    • Open Source Software and Platforms
  • Forums
    • AI and ML forum
    • Architectures and Processors forum
    • Arm Development Platforms forum
    • Arm Development Studio forum
    • Arm Virtual Hardware forum
    • Automotive forum
    • Compilers and Libraries forum
    • Graphics, Gaming, and VR forum
    • High Performance Computing (HPC) forum
    • Infrastructure Solutions forum
    • Internet of Things (IoT) forum
    • Keil forum
    • Morello Forum
    • Operating Systems forum
    • SoC Design and Simulation forum
    • 中文社区论区
  • Blogs
    • AI and ML blog
    • Announcements
    • Architectures and Processors blog
    • Automotive blog
    • Graphics, Gaming, and VR blog
    • High Performance Computing (HPC) blog
    • Infrastructure Solutions blog
    • Innovation blog
    • Internet of Things (IoT) blog
    • Operating Systems blog
    • Research Articles
    • SoC Design and Simulation blog
    • Tools, Software and IDEs blog
    • 中文社区博客
  • Support
    • Arm Support Services
    • Documentation
    • Downloads
    • Training
    • Arm Approved program
    • Arm Design Reviews
  • Community Help
  • More
  • Cancel
Open Source Software and Platforms
Open Source Software and Platforms
Wiki Common issues using DS-5 with Juno
  • Help
  • Jump...
  • Cancel
  • About this wiki
  • Supported platforms
  • Obtaining support
  • +Arm Reference Platforms deliverables
  • -A-class platforms
    • -Juno
      • Run the Arm Platforms deliverables on Juno
      • Juno board revisions
      • -Troubleshooting your Juno
        • Common issues using DS-5 with Juno
      • Bare metal development on Juno
      • Change which CPUs are released from reset on Juno
      • Install Debian on Juno
      • Energy monitoring on Juno
      • Ethernet on Juno
      • PCIe on Juno
      • Trusted Applications on Juno
      • Build Android from source for Juno
      • Build OpenEmbedded from source for Juno
      • Documentation error: Mali OpenGL in OpenEmbedded on Juno
    • +FVPs
    • +Total Compute Platforms
    • +System Guidance for Infrastructure (SGI)
    • +System Guidance for Mobile (SGM)
    • Corstone-500
    • Cortex-A5 DesignStart
    • +Neoverse N1 SDP
    • Neoverse Reference Designs
    • +Legacy platforms
  • +M-class platforms
  • +R-class platforms
  • +FPGA prototyping boards
  • +Open source software

Common issues using DS-5 with Juno

Unable to connect

There are two known issues that can affect your ability to connect a debugger to Juno.

cpuidle

Linaro release 14.10 onwards enables `cpuidle' by default in the kernel. This can prevent DS-5 from reliably connecting to the Juno as power is being removed from clusters and cores depending on the current workload; powering down the Cortex-A57/A72 cluster can prevent DS-5 from establishing a reliable JTAG connection even to any remaining Cortex-A53 cores. This can also result in the debugger being unable to interrupt running cores.

To prevent this, you can disable `cpuidle' from the terminal like so:

for i in 0 1 2 3 4 5; do
  for j in 0 1 2; do
    echo 1 > /sys/devices/system/cpu/cpu$i/cpuidle/state$j/disable;
  done;
done

Note: The above must be run as root; OpenEmbedded and BusyBox login as root by default byt Android users will need to elevate to root by running `$ su'.

Juno r1 SMP target

A number of users have reported issues when using the DS-5 debug configuration "Juno Arm Development Platform (r1) - Bare Metal Debug - Debug Cortex-A57/Cortex-A53 SMP". To connect to all cores on Juno r1 you can instead safely use the r0 equivalent connection.

 

Board hangs on disconnect

The Juno board may hang when a DS-5 debug session is closed using the disconnect button. This happens because some debug signals are deasserted and the SCP takes this to mean that the debug subsystem logic can be powered down. Powering down the debug when components of the trace system have been active (even just to configure them) will cause it to hang irrecoverably; one must power cycle the board to be able to debug it again.

There are two workarounds; the one you choose will depend on whether you need trace utilities.

I do not need trace

If you only want to be able to start/stop debug and do not intend to use any trace utilities (ETM program flow trace, STM system `printf' style trace, etc) then you can configure your DS-5 debug connection to not use trace.

In the DTSL options of your Juno debug configuration:

  1. On the "Trace Buffer" tab, set "Trace capture method" to "None"
  2. On the "Cortex-A57" tab, clear the "Enable Cortex-A57 core trace" tick box
  3. On the "Cortex-A53" tab, clear the "Enable Cortex-A53 core trace" tick box
  4. On the "Cortex-M3" tab, clear the "Enable Cortex-M3 ITM trace" and "Enable Cortex-M3 core trace" tick boxes
  5. On the "ETR/ETF" tab, clear the "Halt Cortex-A57/A53 SMP cluster(s) when ETR/ETF buffer full" and "Configure the ETR system memory trace buffer" tick boxes
  6. On the "STM" tab, clear the "Enable STM trace" tick box
  7. On the "System Profiler" tab, clear the "Enable System Profiler trace generation" tick box
  8. Click "Apply

I do need trace

You can use `csat' to maintain an open connection to the debug logic which will prevent the aforementioned signals from being deasserted. The `csat' utility can be found at `/path/to/DS-5/bin/csat'.

  1. Connect to your DSTREAM using `csat' and configure the device scan chain:
    connect protocol:id
    chain dev=ARMCS-DP,ARMCS-DP clk=A

    Note: Replace `protocol:id' with the identifier of your DSTREAM, for example `usb:000010'.

  2. Connect to your DSTREAM in DS-5
  3. Open a connection to the A-class DAP from `csat':
    devopen 0

You will now be able to use DS-5 as normal and disconnect/reconnect without issue.

  • Juno Arm Development Platform
  • DS-5 Development Studio
  • Share
  • History
  • More
  • Cancel
Related
Recommended