AR# 72106


2018.3 Zynq UltraScale+ MPSoC: Linux MDC clock divisor in GEM might be incorrect because PCLK value is not accessible


The GEM Linux driver sets the MDC clock divisor in the network control register (bits 20:18) based on the value of PCLK.

This is obtained using the 'clk_get_rate' function but this function returns NULL in the 2018.3 release because of register access related issues via ATF.

As a result the MDC clock generated will be incorrect.


The solution for this issue is to exclude the LPD_LSBUS clock from the pm_clk_invalid_list[]. The attached patch accomplishes this.

To apply the patch, follow the steps below:

1) Copy the attached patch to the <plnx-proj-root>/project-spec/meta-user/recipes-bsp/arm-trusted-firmware/files directory. 

If the directory does not exist, you will need to create one.

2) Modify the project file <plnx-proj-root>/project-spec/meta-user/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware_%.bbappend by adding the patch file name to the SRC_URI_append variable.

If the variable does not exist in the file then add a new line with the following:

SRC_URI_append = " file://0001-zynqmp-pm-Remove-CLK_LPD_LSBUS-from-invalid-clock-li.patch"

3) At this point, the arm-trusted-firmware_%.bbappend file should look like the following:

SRC_URI_append = " file://0001-zynqmp-pm-Remove-CLK_LPD_LSBUS-from-invalid-clock-li.patch"
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"

4) Rebuild the ATF using the following:

petalinux-build -c arm-trusted-firmware -x cleanall

petalinux-build -c arm-trusted-firmware

Note: To apply a patch to recipes, please refer to (UG1144) or


Associated Attachments

Name File Size File Type
0001-zynqmp-pm-Remove-CLK_LPD_LSBUS-from-invalid-clock-li.patch 984 Bytes PATCH
AR# 72106
Date 04/11/2019
Status Active
Type General Article
Boards & Kits
People Also Viewed