UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 69143

2017.1-2017.3 Zynq UltraScale+ MPSoC: Connecting XSDB to Linux CPU idle

Description

In the 2017.1-2017.3 release, Linux CPU Idle is enabled by default.

When enabled, Linux powers down the CPU cores when they are idling (as opposed to WFI).

That can cause problems when xsdb is connected.

Solution

Symptoms:

With CPU Idle enabled, DAP throws out an error. 

In theory, when xsdb is connected, there should be some read/write access happening over the A53_* related registers. 

Because the A53_* cores could be powered down based on the CPU usage stats, due to CPU_IDLE being enabled, the xsdb accesses to the A53 registers can result in a DAP error.


There are two independent events happening here: CPUs being powered down and xsdb trying to access the registers. 

So when the xsdb triggers a read, if the A53_* core is powered down, it can result in a DAP error. 

In general, the debugger checks if the block is powered up or not. However, this event might occur when the read is in already progress, and will cause this issue.


Work-around:

The problem can be avoided by disabling the CPU Idle in Linux kernel bootargs using any of the below methods.


1) Disabling from U-boot prompt on target:

Add "cpuidle.off=1" to bootargs as . 

ZynqMP> setenv bootargs 'console=ttyPS0,115200n8 earlycon clk_ignore_unused cpuidle.off=1'
ZynqMP> run bootcmd

2) Disable from kernel config(CONFIG_CPU_IDLE) using PetaLinux or Yocto:

$ petalinux-config -c kernel

or

$ bitbake -c menuconfig virtual/kernel

CPU Power Management ---> -> CPU Idle ---> [ ] CPU idle PM support

3) Using the PetaLinux device-tree generator:

Add the below content to the dtsi file "<plnx- proj- root>/project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi"

/ {
   chosen {      bootargs = "cpuidle.off=1";   };};

$ petalinux-build -c device-tree

AR# 69143
Date 10/18/2017
Status Active
Type General Article
Devices
  • Zynq UltraScale+ MPSoC
Tools
  • Vivado Design Suite - 2017.1
  • Vivado Design Suite - 2017.2
  • Linux
  • Vivado Design Suite - 2017.3
Boards & Kits
  • Zynq UltraScale+ MPSoC Boards and Kits
Page Bookmarked