Integrating lpddr4_timing.c for custom board using i.MX 8M plus

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

Integrating lpddr4_timing.c for custom board using i.MX 8M plus

跳至解决方案
565 次查看
aheck
Contributor II

Hello,

I am bringing up a custom board using an i.MX 8M plus, and I am having trouble with u-boot SPL failing to boot with what I believe is a calibrated lpddr4_timing.c file.

I followed the instructions to use the MSCALE DDR Tool v3.31 to successfully perform a DDR stress test. I then generated a calibrated lpddr4_timing.c.

Following section 4.5.2 of MSCALE_DDR_Tool_User_Guide.pdf, I copied the generated lpddr4_timing.c file into the

board/freescale/imx8mp_evk/

directory in the u-boot-imx project of my Yocto build environment.  I then forced a compilation of u-boot-imx using the command

bitbake u-boot-linux -f -c compile

I then built imx-image-core using the usual command

bitbake imx-image-core

Finally, I wrote the generated .wic.zst image to an SD card as I have done previously when adding packages and modifying the Linux device tree.

However, when I boot, I see the following debug message over UART.

U-Boot SPL 2024.04+g674440bc73e+p0 (Oct 24 2024 - 14:35:20 +0000)
DDRINFO: start DRAM init
DDRINFO: DRAM rate 4000MTS
Training FAILED

Is there a step I am missing when integrating the lpddr4_timing.c into a build of imx-core-image?

标签 (1)
标记 (2)
0 项奖励
回复
1 解答
482 次查看
aheck
Contributor II

I believe my build of u-boot was not correctly building in the lpddr4_timing.c file using just the

bitbake u-boot-linux -f -c compile

command.

What worked for me was deleting lpddr4_timing.o from the build artifacts. I then forced another u-boot compile using

bitbake u-boot-linux -f -c compile

and verified that lpddr4_timing.o was regenerated.

I then built imx-image-core using the usual command

bitbake imx-image-core

Finally, I wrote the generated .wic.zst image to an SD card as I have done previously when adding packages and modifying the Linux device tree.

When I booted the device, it worked.

I'll need to review how I include my board specific lpddr4_timing.c into my device layer, and how to force a full rebuild, but not a checkout of from source repositories, using bitbake commands.

在原帖中查看解决方案

2 回复数
483 次查看
aheck
Contributor II

I believe my build of u-boot was not correctly building in the lpddr4_timing.c file using just the

bitbake u-boot-linux -f -c compile

command.

What worked for me was deleting lpddr4_timing.o from the build artifacts. I then forced another u-boot compile using

bitbake u-boot-linux -f -c compile

and verified that lpddr4_timing.o was regenerated.

I then built imx-image-core using the usual command

bitbake imx-image-core

Finally, I wrote the generated .wic.zst image to an SD card as I have done previously when adding packages and modifying the Linux device tree.

When I booted the device, it worked.

I'll need to review how I include my board specific lpddr4_timing.c into my device layer, and how to force a full rebuild, but not a checkout of from source repositories, using bitbake commands.

537 次查看
JorgeCas
NXP TechSupport
NXP TechSupport

Hello,

You are following the correct steps to generate and implement the DDR scripts using Yocto, there is no additional steps to implement it.

How are you flashing the image? UUU?

Best regards.

0 项奖励
回复