1.1 Preparing the Linux Kernel using the Petalinux 2016.3

Zynq UltraScale plus MPSoC Power Management

Release Date
2023-04-24

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

Petalinux user guide. /settings.sh (e.g. source /scratch/Xilinx/PetaLinux/settings.sh) Note: Or use source /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 (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= (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 /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 /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 /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 /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 /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.