lpddr 4GB hangs while booting linux memory settings on i.mx8m plus custom board

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

lpddr 4GB hangs while booting linux memory settings on i.mx8m plus custom board

621 Views
atsu_n
Contributor I

Hello community,


I am creating a custom board based on the source code of imx8mp-evk.
The memory of lpddr4 uses a 4GB chip, but the linux kernel stops during boot.
What are the possible causes?

The things we have done so far are as follows.


- For the porting guide, refer to Rev. LF5.10.52_2.1.0 to build the environment.
- I am using the one that calibrated using the DDR Tool and generated the code of lpddr4_timing.c.
- Correcting the source code related to imx8mp-evk and checking the operation. The modified code is as follows.

U-boot
imx8mp_evk.h

/* Totally 4GB DDR */
#define CONFIG_SYS_SDRAM_BASE 0x40000000
#define PHYS_SDRAM 0x40000000
#define PHYS_SDRAM_SIZE 0x100000000 /* 4 GB */


imx8mp-evk.dts

memory@40000000 {
device_type = "memory";
reg = <0x0 0x40000000 0x00000001 0x00000000>;
};

Linux kernel
imx8mp-evk.dts

memory@40000000 {
device_type = "memory";
reg = <0x0 0x40000000 0x00000001 0x00000000>;
};

- OPTEE has been changed to invalid.


u-boot works, but after migrating to kernel, it seems that processing has stopped at the memory setting location.

Also, in the process of soc.c, if the memory size is 0xc0000000 or more, the remaining memory will be forcibly allocated to the start address 0x1000000000 of bank2.

Is there anything missing about u-boot and kernel fixes for 4GB memory?


Thanks,

0 Kudos
Reply
0 Replies