Zynq UltraScale+ MPSoC Power Advantage Tool Linux 2016.3

It is sometimes helpful to have an example of power management. The Power Advantage Tool Linux code has power management API's, as well as other demo configurations. This section describes how to build and run the Power Advantage Tool Linux code from sources.

1 Linux Design

1.1 Building the Linux Design

The steps to rebuild the Linux design from sources are as follows:
  • You will need a Red Hat (supported version) Linux computer
  • Install Vivado and SDK as described here.

1.1 Preparing the Linux Kernel using the Petalinux 2016.3

This section describes how to build the Linux images for zcu102 target platform using latest release Petalinux SDK of version 2016.4.

1.1.1 Download the Petalinux petalinux-v2016.3-installer.run and ZCU102 BSP for corresponding board.

20170315_PetaLinux_2016.3_Installer.png
20170315_ZCU102_BSP.png

1.1.1.1.Install the Petalinux by running the above downloaded installer
. /petalinux-v2016.3-installer.run
(e.g. Petalinux_installation_path = /scratch/Xilinx/PetaLinux)
Note: please refer the Petalinux user guide.

1.1.1.2.After installation is done set the Petalinux environment by running below command in bash shell
(bash)
source <Petalinux_installation_path>/settings.sh
(e.g. source /scratch/Xilinx/PetaLinux/settings.sh)
Note: Or use source <Petalinux_installation_path>/settings.csh command for c shell.
Cross check that the PETALINUX environment variable is set to the above installation path
echo $PETALINUX

1.1.1.3.Create the Petalinux project in a working directory with the below command
(cd /scratch/edt)
petalinux-create -t project –s <path to the downloaded zcu102 bsp>
(e.g. petalinux-create -t project –s /home/jerrywo/Downloads/Xilinx-ZCU102-v2016.3-final.bsp)
(Rev A/B/C/D are supported for 2016.3)
Change the directory to the created Petalinux project.
(e.g. cd /scratch/edt/Xilinx-ZCU102-2016.3)

1.1.1.4.Initially configure the petalinux project with the corresponding hardware file.
(The file may be copied to /scratch/edt/Xilinx-ZCU102-2016.3 from your Windows machine C:\zynqus\pwr\sw\ZynqMP_ZCU102_hw_platform\system.hdf)
petalinux-config --get-hw-description=<path to folder containing system.hdf file>
(e.g. petalinux-config --get-hw-description=/scratch/edt/Xilinx-ZCU102-2016.3)

1.1.2 System Configuration

(Nothing is changed by step 1.1.2, this step may be skipped.)
Change directory to <petalinux project>/Xilinx-ZCU102-2016.3 and enter the following command to configure Linux:
(cd /scratch/edt/Xilinx-ZCU102-2016.3)
petalinux-config
We configure the Memory Location and Serial Port.

1.1.2.1 ‘Subsystem AUTO Hardware Settings->Memory Settings->0x0 System memory base Address’ and
1.1.2.2.‘0x100000000 System memory size'
1.1.2.3 ‘Subsystem AUTO Hardware Settings->Serial Settings->Primary stdin/stdout (psu_uart_0)’

1.1.3 Kernel Configuration

Change directory to <petalinux project>/Xilinx-ZCU102-2016.3 and enter the following command to configure the kernel:
(cd /scratch/edt/Xilinx-ZCU102-2016.3)
petalinux-config –c kernel
We configure the Power Management API's, UART, and RTC.

1.1.3.1 ‘Kernel hacking->Compile-time checks and compiler options->Debug Filesystem’
1.1.3.2 ‘Device Drivers->SOC (System On Chip) specific Drivers->Xilinx Zynq MPSoC driver support->Enable Xilinx Zynq MPSoC Power Management API debugfs functionality’,
1.1.3.3 ‘Power management options->Suspend to RAM and standby’ and
1.1.3.4 ‘Device power management core functionality’ and
1.1.3.5 ‘User space wakeup sources interface (NEW)’ and
1.1.3.6 ‘Power Management Debug Support (NEW)’ and
1.1.3.7 ‘Extra PM attributes in sysfs for low-level debugging/testing’,
1.1.3.8 ‘CPU Power Management->CPU Idle->ARM CPU Idle Drivers->Generic ARM / ARM64 CPU idle Driver’,
1.1.3.9 ‘Device Drivers->Character devices->Serial drivers->Xilinx uartlite serial port support',
1.1.3.10 ‘Device Drivers->Real Time Clock->/sys/class/rtc/rtcN (sysfs)' and
1.1.3.11 '/proc/driver/rtc (procfs for rtcN)' and
1.1.3.12 '/dev/rtcN (character devices)' and
1.1.3.13 'Xilinx Zynq Ultrascale+ MPSoC RTC'

1.1.4 Rootfs Configuration

Change directory to <petalinux project>/Xilinx-ZCU102-2016.3 and enter the following command to configure the rootfs:
(cd /scratch/edt/Xilinx-ZCU102-2016.3)
petalinux-config –c rootfs
We configure the support for Mandelbrot.

1.1.4.1 ‘Filesystem Packages->benchmark/tests->dhrystone->dhrystone’,
1.1.4.2 ‘Filesystem Packages->libs->ncurses->ncurses-tools’,

1.1.5 Building the kernel and device tree blob
Change directory to <petalinux project>/Xilinx-ZCU102-2016.3 and enter the following command to build the image.ub and BOOT.BIN under the images/linux/ folder. These two files are the ones that will be copied to the BOOT partition of the SD card.
(cd /scratch/edt/Xilinx-ZCU102-2016.3)
petalinux-build
(Note: Ignore the warning "PMU firmware is not built...")
cd <petalinux project>/Xilinx-ZCU102-2016.3/images/linux
(cd /scratch/edt/Xilinx-ZCU102-2016.3/images/linux)
petalinux-package --boot --fsbl zynqmp_fsbl.elf --u-boot --force
(Note: Ignore the warning "Unable to access the TFTPBOOT folder...")

1.2 Running the Linux Design from SD Image

The steps to run the Linux design from SD Image are as follows:
  • After Building the Linux Design in 1.1, Copy image.ub and BOOT.bin to a blank (FAT32 format) SD card.
  • Also copy the folder C:\zynqus\pwr\linux\apps to the SD card. It contains Linux demo files.
  • Insert the SD card into the SD Card slot on the ZCU102, set Mode SW6[4:1] to On-Off-On-Off, and power cycle the ZCU102.

Related Links

Home Previous Next