Hi,
Release: Yocto-Morty (4.9.51_GA)
Board: i.MX8MQ EVK
I want to switch iMX8MQ EVK board LPDDR4 at 800 MHz operating frequency.
For that, I have changed operating frequency in MX8M_LPDDR4_register_programming_aid_EVK_preliminiary_v21.xlsx file and generated ddr_init.c & ddrphy_train.c files (same attached below) using DDR stress tool v1.11.
After replacing those files in u-boot as described in Chapter 4 How to bring up a new MX8M board MX8M_DDR_Tool_User_Guide.docx included in i.MX8M DDR test package and created a new sd card image but, it's not working.
I have attached the log for the same (as shown in the log it stuck after u-boot).
U-Boot SPL 2017.03-imx_v2017.03_4.9.51_imx8m_ga+g2537522 (Mar 22 2019 - 16:04:09)
PMIC: PFUZE100 ID=0x10
check ddr4_pmu_train_imem code
check ddr4_pmu_train_imem code pass
check ddr4_pmu_train_dmem code
check ddr4_pmu_train_dmem code pass
Training PASS
check ddr4_pmu_train_imem code
check ddr4_pmu_train_imem code pass
check ddr4_pmu_train_dmem code
check ddr4_pmu_train_dmem code pass
Training PASS
check ddr4_pmu_train_imem code
check ddr4_pmu_train_imem code pass
check ddr4_pmu_train_dmem code
check ddr4_pmu_train_dmem code pass
Training PASS
Normal Boot
Trying to boot from MMC2
So, there are any other changes required at u-boot or kernel level to switch LPDDR4 at another frequency except those two files?
(NOTE: I have verified those file changes for 1600 MHz frequency using the same RPA & DDR tool with all other configurations remains same & it works properly)
Best regards,
Nirmal
Hi Nirmal
recommended to use latest L4.14.78 kernel because in L4.9.51_GA board-specific
LPDDR initialization code was added to imx-atf,
as reported on imx8mq GA release: DDR initialization in ATF
in particular "lpddr4_switch_to_3200":
imx-atf/plat/freescale/imx8mq/imx8m_bl31_setup.c
void bl31_platform_setup(void)
{..
/* switch DDR frequency to 3200 mts */
lpddr4_switch_to_3200();
}
imx8m_bl31_setup.c\imx8mq\freescale\plat - imx-atf - i.MX ARM Trusted firmware
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hello Igor,
Thanks for your quick response.
I need to switch it for L4.9.51 kernel. So, is it possible to do it (I mean to switch over 800 MHz) for this kernel version?
As mentioned inimx8mq GA release: DDR initialization in ATF if we commenting out the call to lpddr4_switch_to_3200(), our U-Boot is able to load the kernel. By doing it causes any issues?
As per same thread the call to lpddr4_switch_to_3200(), is used for EVK board and micron DDR part. So, If I used the same vendor but different size DDR then I need to call the same thing or it is not required? If not required then it causes any issues?
Best Regards,
Nirmal