Switch iMX8MQ EVK LPDDR4 at 800 MHz

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Switch iMX8MQ EVK LPDDR4 at 800 MHz

954 Views
nirmalluhana
Contributor IV

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

Labels (1)
2 Replies

604 Views
igorpadykov
NXP Employee
NXP Employee

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!
-----------------------------------------------------------------------------------------------------------------------

604 Views
nirmalluhana
Contributor IV

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

0 Kudos