AR# 68514

2016.3-2017.2 Zynq UltraScale+ MPSoC: Linux reboot command causing board to hang

Description

When I run the Linux "reboot" command on a Zynq UltraScale+ MPSoC boards it hangs. I need to power off and on using the hardware switch instead.

Solution

The Linux "reboot" command does not work on Zynq UltraScale+ MPSoC boards because SRST (both PS and PL reset) is handled in the PMU Firmware.

To make this feature work you will need to follow the steps below:

  • Build Linux kernel images, enabling Power Management configuration as shown below.

Enable Debugfs: 

Select Kernel hacking -> compile-time checks and compiler options -> Debug Filesystem.


 

Enable Power Management (PM) options:

Select Power Management options -> Suspend to RAM and standby.


 

Enable the PM driver:

Select Device drivers -> SOC specific drivers -> Xilinx Zynq MPSOC driver support.


 

For 2016.3/4:

  • Build the kernel image and boot from target.
  • Run the command to reboot the target on the Linux prompt.
    Note:
    This works for both ES1 and ES2 silicon and this triggers PS reset but does not reset the PL.

# echo reset_assert 1114 2 > /sys/kernel/debug/zynqmp_pm/power

  • Run the command to reboot the target on the Linux prompt.
    Note: This is only for the 2016.4 release, and ES2 silicon. It triggers "SRST", and both the PS and PL are reset.

# echo system_shutdown 1 2 > /sys/kernel/debug/zynqmp_pm/power

For 2017.1:

  • Note: Apply the attached pmufw patch for 2017.1 ES1 silicon only. This patch is merged into the 2017.2 release branch.

# reboot

Attachments

Associated Attachments

AR# 68514
Date 04/06/2018
Status Active
Type General Article
Devices
Tools More Less
Boards & Kits