DDR training FAILED on i.mx8MQ uboot 2018.03-00008-g7ade5b4

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

DDR training FAILED on i.mx8MQ uboot 2018.03-00008-g7ade5b4

5,945 次查看
develer
Contributor I

Hello, 

I'm trying to update a project that uses u-boot 2017.03-imx_v2017.03_4.9.88_2.0.0_ga

to the new release of u-boot (2018.03-00008-g7ade5b4).

The board is running fine with the old u-boot version.

We inserted the RAM data in to this excel file:

MX8M_LPDDR4_RPA_v22.xlsx

Than we performed the tests with i.MX8 MSCALE SERIES DDR Tool Release (V2.10) and the RAM calibration seems correct:

*************************************************************************
MX8 DDR Stress Test V2.10
Built on Mar 5 2019 14:26:42
*************************************************************************

--Set up the MMU and enable I and D cache--
- This is the Cortex-A53 core
- Check if I cache is enabled
- Enabling I cache since it was disabled
- Push base address of TTB to TTBR0_EL3
- Config TCR_EL3
- Config MAIR_EL3
- Enable MMU
- Data Cache has been enabled
- Check system memory register, only for debug

- VMCR Check:
- ttbr0_el3: 0x91d000
- tcr_el3: 0x2051c
- mair_el3: 0x774400
- sctlr_el3: 0xc01815
- id_aa64mmfr0_el1: 0x1122

- MMU and cache setup complete

*************************************************************************
ARM clock(CA53) rate: 800MHz
DDR Clock: 1600MHz

============================================
DDR configuration
DDR type is LPDDR4
Data width: 32, bank num: 8
Row size: 16, col size: 10
One chip select is used
Number of DDR controllers used on the SoC: 1
Density per chip select: 2048MB
Density per controller is: 2048MB
Total density detected on the board is: 2048MB
============================================

MX8M: Cortex-A53 is found

*************************************************************************

============ Step 1: DDRPHY Training... ============
---DDR 1D-Training @1600Mhz...
[Process] End of CA training
[Process] End of initialization
[Process] End of read enable training
[Process] End of fine write leveling
[Process] End of read DQ deskew training
[Process] End of MPR read delay center optimization
[Process] End of Write Leveling coarse delay
[Process] End of write delay center optimization
[Process] End of read delay center optimization
[Process] End of max read latency training
[Result] PASS
---DDR 1D-Training @334Mhz...
[Process] End of CA training
[Process] End of initialization
[Process] End of read enable training
[Process] End of fine write leveling
[Process] End of MPR read delay center optimization
[Process] End of Write Leveling coarse delay
[Process] End of write delay center optimization
[Process] End of read delay center optimization
[Process] End of max read latency training
[Result] PASS
---DDR 2D-Training @1600Mhz...
[Process] End of initialization
[Process] End of 2D read delay/voltage center optimization
[Process] End of 2D read delay/voltage center optimization
[Process] End of 2D write delay/voltage center optimization
[Process] End of 2D write delay/voltage center optimization
[Result] PASS

============ Step 2: DDR memory accessing... ============
....[Result] OK

============ Step 3: DDR parameters processing... ============
[Result] Done

Success: DDR Calibration completed!!!
'ddr_init.c' is created!
'ddrphy_train.c' is created!
'lpddr4_timing.c' is created!
'lpddr4_timing.c' is created!

With the same tool we than generated the lpddr4_timing.c file and copied into uboot.

When we start to boot the device with uuu, we get the "Training FAILED" error:

U-Boot SPL 2018.03-00008-g7ade5b4-dirty (May 13 2019 - 15:42:59 +0000)

PMIC:  PFUZE100 ID=0x10

DDRINFO: start lpddr4 ddr init

DRAM PHY training for 3200MTS

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 FAILED

DRAM PHY training for 667MTS

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 FAILED

DRAM PHY training for 3200MTS

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 FAILED

DDRINFO:ddrphy calibration done

DDRINFO: ddrmix config done

Normal Boot

Trying to boot from USB SDP

"Synchronous Abort" handler, esr 0x96000000

elr: 00000000007e58a0 lr : 00000000007e57f8

x0 : 0000f8044220f804 x1 : 0000f8040000f7d5

x2 : 0000000042200010 x3 : 00000000007fbcb0

x4 : 00000000007fbca0 x5 : 00000000000f0048

x6 : 0000000000000002 x7 : 0000000000185e38

x8 : 0000000000185c40 x9 : 0000000000000001

x10: 00000000ffffffd0 x11: 0000000000000006

x12: 000000000001869f x13: 0000000000000200

x14: 0000000000000038 x15: 00000000ffffffff

x16: 0000000000000000 x17: 0000000000000000

x18: 0000000000185e40 x19: 0000000000000030

x20: 0000000000000040 x21: 0000000042200030

x22: 0000000000000390 x23: 0000000000000387

x24: 00000000007f3497 x25: 00000000007fc000

x26: 00000000deadbeef x27: 0000000000000000

x28: 00000000000000f0 x29: 0000000000185cc0

Resetting CPU ...

resetting ...

Any suggestion on what is happening? The board is perfectly working with an old version of u-boot.

标签 (1)
0 项奖励
回复
4 回复数

4,556 次查看
igorpadykov
NXP Employee
NXP Employee

Hi Francesco

one can check that ‘ARRAY’ format was use as in below part of MSCALE_DDR_Tool_User_Guide.pdf

lpddr4_timing_b0.c\imx8mq_evk\freescale\board - uboot-imx - i.MX U-Boot 

pastedImage_1.jpg

and test uboot just booting from sd as described in sect.4.3.4 Copying a bootloader

image attached Linux Guide.

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 项奖励
回复

4,556 次查看
develer
Contributor I

Hi Igor,

Thank you for your reply.

Yes, we already used the correct 'ARRAY' format (with the other format, we cannot even compile u-boot).

Unfortunately we cannot boot from SD card because the board has only an eMMC. We can add an SD by soldering some wires but we need some time, will try this tomorrow and see what happens.

Thank you,

Regards

Francesco

0 项奖励
回复

4,556 次查看
develer
Contributor I

Ok, I managed to re-flash the eMMC with the new u-boot, the result is the same:

U-Boot SPL 2018.03-00008-g7ade5b4-dirty (May 13 2019 - 15:42:59 +0000)
PMIC: PFUZE100 ID=0x10
DDRINFO: start lpddr4 ddr init
DRAM PHY training for 3200MTS
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 FAILED
DRAM PHY training for 667MTS
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 FAILED
DRAM PHY training for 3200MTS
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 FAILED
DDRINFO:ddrphy calibration done
DDRINFO: ddrmix config done
Normal Boot
Trying to boot from MMC1

0 项奖励
回复

4,556 次查看
igorpadykov
NXP Employee
NXP Employee

reason may be in firmware versions, one can recheck that ddr tool and used uboot

use the same versions, details are given in sect.4.3 Building u-boot image

MSCALE_DDR_Tool_User_Guide.pdf included in i.MX8 MSCALE SERIES DDR Tool Release (V2.10) 

Best regards
igor

0 项奖励
回复