IMX8MPlus + LPDDR4 + 6GB ...."Starting Kernel...."

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

IMX8MPlus + LPDDR4 + 6GB ...."Starting Kernel...."

2,123 Views
Aditya2125
Contributor I

 


Hello NXP,

we have design our custom board based on imx8mp Processor with LPDDR 6 GB Memory with Android 11 version.

Android version : 11.0.0._2.6.0
Kernel version : 5.10.72

I have compare custom board with EVK board schematic they both are using LPDDR RAM (MT53E1536M32D4DT-046 WT:A) same part number.

After downloading fresh source code and building flashing on IMX8MP - EVK its working perfectly.

Flashing via SD card. Log is attached.

Here in custom board and in EVK Board PMIC chip is also same.

as per IMX8MP EVK the Logs >>

CPU: i.MX8MP[8] rev1.1 1800 MHz (running at 1200 MHz)
CPU: Commercial temperature grade (0C to 95C) at 28C
Reset cause: POR
Model: NXP i.MX8MPlus LPDDR4 EVK board
DRAM: 6 GiB

for our custom board set a frequency 1200 MHz and I have used DDR stress tool and help of the excel sheet I have generated successfully DDR timing. C file replace it in bootloader.

Attached .ds file , DDR Tool Log and Debug Log.

After building and flashing the binaries in our custom board observed below logs :

CPU: i.MX8MP[8] rev1.1 1600 MHz (running at 1200 MHz)
CPU: Industrial temperature grade (-40C to 105C) at 30C
Reset cause: POR
Model: NXP i.MX8MPlus LPDDR4 EVK board
DRAM: 6 GiB

After bootloader completes its stuck after this line " start kernel .... "

PROBLEM 1 : kernel log are not showing. any bootargs need to add in device tree?

PROBLEM 2 : As per LPDDR4 6 GB ram datasheet I have configure all parameter in sheet. Let me know if i have configure any wrong parameter there ?

PROBLEM 3 : due to change of the frequency can I have to change in kernel device tree specially related to memory ? and what are the

other changes required due to changes of the frequency ?

 

 

0 Kudos
4 Replies

2,067 Views
Aditya2125
Contributor I

Hello Sir,

For my custom board I have already followed that steps. Using DDR stress tool, for 1200 MHZ is tested and successfully generated ddr-timing.c file. Bootloader is also working you can check in attached logs.

I need support for Kernel. After adding entry in bootargs now I am able to see Kernel log after Starting Kernel…

But Kernel is panic…..why I don’t know…..already LPDDR4 setting done in Bootloader.

LOGS:::::::::::::::::::::::::::::::::

##########################################################################################################

U-Boot 2021.04 (Sep 26 2022 - 16:19:28 +0530)

CPU: i.MX8MP[8] rev1.1 1600 MHz (running at 1200 MHz)
CPU: Industrial temperature grade (-40C to 105C) at 31C
Reset cause: POR
Model: NXP i.MX8MPlus LPDDR4 EVK board
DRAM: 6 GiB
tcpc_init: Can't find device id=0x50
setup_typec: tcpc port2 init failed, err=-19
tcpc_init: Can't find device id=0x50
setup_typec: tcpc port1 init failed, err=-19
MMC: FSL_SDHC: 1, FSL_SDHC: 2
Loading Environment from MMC... *** Warning - bad CRC, using default environment

[*]-Video Link 0adv7535_mipi2hdmi adv7535@3d: Can't find cec device id=0x3c
fail to probe panel device adv7535@3d
fail to get display timings
probe video device failed, ret -19

[0] lcd-controller@32e80000, video
[1] mipi_dsi@32e60000, video_bridge
[2] adv7535@3d, panel
adv7535_mipi2hdmi adv7535@3d: Can't find cec device id=0x3c
fail to probe panel device adv7535@3d
fail to get display timings
probe video device failed, ret -19
In: serial
Out: serial
Err: serial

BuildInfo:
- ATF 04acc13

flash target is MMC:1
Net:
Error: ethernet@30be0000 address not set.

Error: ethernet@30be0000 address not set.

Error: ethernet@30bf0000 address not set.

Error: ethernet@30bf0000 address not set.
No ethernet found.

Fastboot: Normal
Normal Boot
Hit any key to stop autoboot: 0
Writing A/B metadata to disk.
verify OK, boot 'boot_a'
Kernel load addr 0x40480000 size 28933 KiB
kernel @ 40480000 (30670848)
ramdisk @ 44680000 (9994089)
fdt @ 42340400 (64929)
Moving Image from 0x40480000 to 0x40600000, end=42340000
## Flattened Device Tree blob at 42340400
Booting using the fdt blob at 0x42340400
Using Device Tree in place at 0000000042340400, end 00000000423531a0
adv7535_mipi2hdmi adv7535@3d: Can't find cec device id=0x3c
fail to probe panel device adv7535@3d
fail to get display timings
probe video device failed, ret -19

Starting kernel ...

[ 0.000000][ T0] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[ 0.000000][ T0] Linux version 5.10.72-g04acc13ba856-dirty (dev1@simpli-aosp-1) (Android (7284624, based on r416183b) clang version 12.0.5 (https://android.googlesource.com/toolchain/llvm-project c935d99d7cf2016289302412d708641d52d2f7ee), LLD 12.0.5 (/buildbot/src/android/llvm-toolchain/out/llvm-project/lld c935d99d7cf2016289302412d708641d52d2f7ee)) #1 SMP PREEMPT Fri Sep 23 12:13:06 IST 2022
[ 0.000000][ T0] Machine model: NXP i.MX8MPlus EVK board
[ 0.000000][ T0] Stack Depot is disabled
[ 0.000000][ T0] earlycon: ec_imx6q0 at MMIO 0x0000000030890000 (options '115200')
[ 0.000000][ T0] printk: bootconsole [ec_imx6q0] enabled
[ 0.000000][ T0] efi: UEFI not found.
[ 0.000000][ T0] Reserved memory: bypass linux,cma node, using cmdline CMA params instead
[ 0.000000][ T0] OF: reserved mem: node linux,cma compatible matching fail
[ 0.000000][ T0] Reserved memory: created DMA memory pool at 0x0000000094300000, size 1 MiB
[ 0.000000][ T0] OF: reserved mem: initialized node vdev0buffer@94300000, compatible id shared-dma-pool
[ 0.000000][ T0] Internal error: synchronous external abort: 96000210 [#1] PREEMPT SMP
[ 0.000000][ T0] Modules linked in:
[ 0.000000][ T0] CPU: 0 PID: 0 Comm: swapper Not tainted 5.10.72-g04acc13ba856-dirty #1
[ 0.000000][ T0] Hardware name: NXP i.MX8MPlus EVK board (DT)
[ 0.000000][ T0] pstate: 60400085 (nZCv daIf +PAN -UAO -TCO BTYPE=--)
[ 0.000000][ T0] pc : __create_pgd_mapping+0x470/0x878
[ 0.000000][ T0] lr : 0x40600000
[ 0.000000][ T0] sp : ffffffc011a63d70
[ 0.000000][ T0] x29: ffffffc011a63e70 x28: 0050000000000783
[ 0.000000][ T0] x27: ffffffc010000000 x26: fffffffefe438800
[ 0.000000][ T0] x25: 0068000000000703 x24: ffd7fffffffff77f
[ 0.000000][ T0] x23: fffffffefe43a400 x22: ffffffc011c46000
[ 0.000000][ T0] x21: 0000000000000041 x20: 0040000000000783
[ 0.000000][ T0] x19: 0000000000000000 x18: ffffffc011a7be70
[ 0.000000][ T0] x17: 0000000000000003 x16: 0000000045008000
[ 0.000000][ T0] x15: 00000001bffff000 x14: 0000000000988000
[ 0.000000][ T0] x13: ffffffc010f9ffff x12: ffffffc011ffffff
[ 0.000000][ T0] x11: 0000000000000000 x10: 0000000000000800
[ 0.000000][ T0] x9 : ffffffc010200000 x8 : 0000000000000000
[ 0.000000][ T0] x7 : 0040000000000780 x6 : ffffffc010f9ffff
[ 0.000000][ T0] x5 : 00000fffffefe43b x4 : fffffffefe43a000
[ 0.000000][ T0] x3 : ffffffc011c47000 x2 : ffffffc011c47000
[ 0.000000][ T0] x1 : ffffffc010fa0000 x0 : 00000001bffff000
[ 0.000000][ T0] Call trace:
[ 0.000000][ T0] __create_pgd_mapping+0x470/0x878
[ 0.000000][ T0] map_kernel_segment+0x6c/0xe4
[ 0.000000][ T0] map_kernel+0x88/0x1d0
[ 0.000000][ T0] paging_init+0x70/0xec
[ 0.000000][ T0] setup_arch+0x140/0x238
[ 0.000000][ T0] start_kernel+0x74/0x480
[ 0.000000][ T0] Code: 910022f7 aa1a03fb 54001ac0 91480369 (f94002e8)
[ 0.000000][ T0] random: get_random_bytes called from oops_exit+0x38/0x70 with crng_init=0
[ 0.000000][ T0] ---[ end trace 0000000000000000 ]---
[ 0.000000][ T0] Kernel panic - not syncing: synchronous external abort: Fatal exception
[ 0.000000][ T0] Reboot failed -- System halted

FATAL: read zero bytes from port
Skipping tty reset...

 

0 Kudos

2,060 Views
Rita_Wang
NXP TechSupport
NXP TechSupport

Have you modified all the parameter for the 1200Mhz setting? You can refer to this threadhttps://community.nxp.com/t5/i-MX-Processors/kernel-crash-in-create-pgd-mapping-when-I-growing-up-ram-size/m-p/1082635

0 Kudos

2,056 Views
Aditya2125
Contributor I

Hello @Rita_Wang ,

Following below steps in my custom board:

1) configure 2000MHz  and other parameter according to my LPDDR4 RAM - 6 GB  in Excel sheet [ provided by NXP ] 

2) using DDR stress tool : but at 2000 MHz ddr stress tool failed

3) Again set 1200 MHz in Excel sheet and using DDR stress tool [Test pass] generate lpddr_timing.c file 

4) replace that file in bootloader.

5) include/configs/imx8mp_evk.h we have:

#define PHYS_SDRAM  0x400000000
#define PHYS_SDRAM_SIZE  0xC0000000 /* 3GB */

#define PHYS_SDRAM_2 0x100000000
#define PHYS_SDRAM_2_SIZE 0xC0000000 /* 3GB */

6)After building and flashing source code kernel is not working. it stuck. check the logs:

[ 0.000000][ T0] Machine model: NXP i.MX8MPlus EVK board
[ 0.000000][ T0] Stack Depot is disabled
[ 0.000000][ T0] earlycon: ec_imx6q0 at MMIO 0x0000000030890000 (options '115200')
[ 0.000000][ T0] printk: bootconsole [ec_imx6q0] enabled
[ 0.000000][ T0] efi: UEFI not found.
[ 0.000000][ T0] Reserved memory: created DMA memory pool at 0x0000000094300000, size 1 MiB
[ 0.000000][ T0] OF: reserved mem: initialized node vdev0buffer@94300000, compatible id shared-dma-pool
[ 0.000000][ T0] Internal error: synchronous external abort: 96000210 [#1] PREEMPT SMP
[ 0.000000][ T0] Modules linked in:
[ 0.000000][ T0] CPU: 0 PID: 0 Comm: swapper Not tainted 5.10.72-g04acc13ba856-dirty #1
[ 0.000000][ T0] Hardware name: NXP i.MX8MPlus EVK board (DT)
[ 0.000000][ T0] pstate: 60400085 (nZCv daIf +PAN -UAO -TCO BTYPE=--)
[ 0.000000][ T0] pc : __create_pgd_mapping+0x470/0x878
[ 0.000000][ T0] lr : 0x40600000
[ 0.000000][ T0] sp : ffffffc011a63d70
[ 0.000000][ T0] x29: ffffffc011a63e70 x28: 0050000000000783
[ 0.000000][ T0] x27: ffffffc010000000 x26: fffffffefe438800
[ 0.000000][ T0] x25: 0068000000000703 x24: ffd7fffffffff77f
[ 0.000000][ T0] x23: fffffffefe43a400 x22: ffffffc011c46000
[ 0.000000][ T0] x21: 0000000000000041 x20: 0040000000000783
[ 0.000000][ T0] x19: 0000000000000000 x18: ffffffc011a7be70
[ 0.000000][ T0] x17: 0000000000000003 x16: 0000000045008000
[ 0.000000][ T0] x15: 00000001bffff000 x14: 0000000000988000
[ 0.000000][ T0] x13: ffffffc010f9ffff x12: ffffffc011ffffff
[ 0.000000][ T0] x11: 0000000000000000 x10: 0000000000000800
[ 0.000000][ T0] x9 : ffffffc010200000 x8 : 0000000000000000
[ 0.000000][ T0] x7 : 0040000000000780 x6 : ffffffc010f9ffff
[ 0.000000][ T0] x5 : 00000fffffefe43b x4 : fffffffefe43a000
[ 0.000000][ T0] x3 : ffffffc011c47000 x2 : ffffffc011c47000
[ 0.000000][ T0] x1 : ffffffc010fa0000 x0 : 00000001bffff000
[ 0.000000][ T0] Call trace:
[ 0.000000][ T0] __create_pgd_mapping+0x470/0x878
[ 0.000000][ T0] map_kernel_segment+0x6c/0xe4
[ 0.000000][ T0] map_kernel+0x88/0x1d0
[ 0.000000][ T0] paging_init+0x70/0xec
[ 0.000000][ T0] setup_arch+0x140/0x238
[ 0.000000][ T0] start_kernel+0x74/0x480
[ 0.000000][ T0] Code: 910022f7 aa1a03fb 54001ac0 91480369 (f94002e8)
[ 0.000000][ T0] random: get_random_bytes called from oops_exit+0x38/0x70 with crng_init=0
[ 0.000000][ T0] ---[ end trace 0000000000000000 ]---
[ 0.000000][ T0] Kernel panic - not syncing: synchronous external abort: Fatal exception
[ 0.000000][ T0] Reboot failed -- System halted

0 Kudos

2,075 Views
Rita_Wang
NXP TechSupport
NXP TechSupport

I already give you update to the case you create. Please have a check.

0 Kudos