Read SPD Fails on QorIQ Configuration Project

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

Read SPD Fails on QorIQ Configuration Project

1,457 Views
smiller2
Contributor III

I have a new design with a blank QSPI, so there is no RCW.   I cannot get the Bare Board bring-up to run because the DDR DRAM is failing.   I tried to read the SPD with a QorIQ Configuration Project.   However, that does not work either.   I put a scope on the I2C lines going to the DIMM and they never toggle.    When I try to Read the SPD, the TX/RX LEDs on the Code Warrior flash, so I know that hardware got the commands.

Code Warrior is

Version: 11.5.2
Build Id: 210130

The error messages in the Wizard are shown below.    It appears from the python code that those messages reference, that it is trying to do an additional reset since it thinks there is a valid RCW loaded.  However, there is not!      I cannot find a setting in the project to tell it to use a safe RCW. 

In the Bare Board project,  if I diagnose the debugger connection, then it fails at DDR Init and fatally fails at the DDR Write to 0x80000000

 

Questions:

1.  What am I missing or doing wrong to read the SPD?

2.  Is there a way to by-pass the DRAM test in the Bare Board debugger to at least be able to program the QSPI so the RCW is present? 

 

Thanks.

 

 

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

RCWSR1:
[0L]
Traceback (most recent call last):
File "C:\Freescale\CW4NET_v2020.06\Common\QCVS\Optimization\resources\QorIQ\ARMv8/ddr/read_spd.py", line 205, in <module>
read_spd()
File "C:\Freescale\CW4NET_v2020.06\Common\QCVS\Optimization\resources\QorIQ\ARMv8/ddr/read_spd.py", line 162, in read_spd
sys_init.init(params, session, init_ddr=False)
File "C:\Freescale\CW4NET_v2020.06\Common\QCVS\Optimization\resources\QorIQ\ARMv8\ddr\sys_init.py", line 150, in init
reset_out = utils.gdb_execute("cw_reset %d" % reset_delay)
File "C:\Freescale\CW4NET_v2020.06\Common\QCVS\Optimization\resources\QorIQ\ARMv8\common\utils.py", line 215, in gdb_execute
raise gdb.GdbError("ERROR: " + str(ex))
gdb.GdbError: ERROR: Target reset failed.
//
Additional error details:
[CCS: timeout during target operation]

0 Kudos
7 Replies

1,454 Views
yipingwang
NXP TechSupport
NXP TechSupport

1. Please set the switch setting on your custom board to configure the target board  as "hard-coded" RCW, then execute reading SPD in QCVS tool.

2. In CodeWarrior initialization file, the flash programming algorithm is configured to run in OCRAM, so you can comment the DDR controller initialization section in CW initialization file when do flash programming.

For flash programming, please refer to the following procedure.

(1). Please refer to "3.2 Working with bareboard application" in C:\Freescale\CW4NET_v2020.06\CW_ARMv8\ARMv8\Help\Getting_Started_for_CW_ARMv8.pdf to create a bareboard project and connect to the target board. Please modify CW initialization file as the following before connect to the target board.

In Target Connections panel, please click "board(1)"->Target Initialization File, please modify 

"USE_SAFE_RCW = False" to "USE_SAFE_RCW = True" and please comment "Init_DDRC(DDR_freq)".

(2). Please refer to the section "7.7 Using flash programmer from eclipse IDE " in C:\Freescale\CW4NET_v2020.06\CW_ARMv8\ARMv8\Help\PDF\ARMv8_Targeting_Manual.pdf to do flash programming.

 

0 Kudos

1,450 Views
smiller2
Contributor III

Thank you.

 

I tried placing the RCW configuration to both 0x9F and 0x9E which I believe are the hard-coded values.  Neither one would allow me to read the SPD.    I got the same error.    Before doing that test, I changed the SPD I2C address to 0x51 from my default of 0x50.     When I changed the RCW configuration back to QSPI,   then the SPD read started working.    I can read the SPD  and it configures the DDR Controller.  However, I cannot view the SPD data.   I am using the document linked below:

https://www.nxp.com/docs/en/user-guide/QCVS_DDR_User_Guide.pdf

 

When I click on the "..." button, then another window opens up and says,  "No SPD data found for the selected DDR component!

 

How do I view this SPD data?  

Having configured via SPD,  then I tried DDR Validation.   However, that failed too.   Centering the Clock fails with just a statement of Endianness.   However,  I don't know where to configure this to fix it. 

 

Thanks.

0 Kudos

1,436 Views
smiller2
Contributor III

The SO-DIMM I am using is 16GB ECC since that is what the end customer requires.   I have run the validation numerous times and it always fails the same way.    "Write leveling start values are OK, but test failed for other issues"     I did the dump from the command line.   However,   I do not see anything in this that suggests what failed.    Below is the dump:

Thanks.

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

+0 +4 +8 +C
[0x01080000] 000003FF 00000000 0400043F 00000000
[0x01080010] 0440047F 00000000 048004BF 00000000
[0x01080020] 00000000 00000000 00000000 00000000
[0x01080030] 00000000 00000000 00000000 00000000
[0x01080040] 00000000 00000000 00000000 00000000
[0x01080050] 00000000 00000000 00000000 00000000
[0x01080060] 00000000 00000000 00000000 00000000
[0x01080070] 00000000 00000000 00000000 00000000
[0x01080080] 80010522 00010202 00010202 00010202
[0x01080090] 00000000 00000000 00000000 00000000
[0x010800A0] 00000000 00000000 00000000 00000000
[0x010800B0] 00000000 00000000 00000000 00000000
[0x010800C0] 00000000 00000000 00000000 00000000
[0x010800D0] 00000000 00000000 00000000 00000000
[0x010800E0] 00000000 00000000 00000000 00000000
[0x010800F0] 00000000 00000000 00000000 00000000
[0x01080100] 010C1000 DA550018 BDB48E44 00491114
[0x01080110] E5200000 00401070 01010211 00000000
[0x01080120] 03001000 18600618 DEADBEEF 00000000
[0x01080130] 02800000 00000000 00000000 00000000
[0x01080140] 00000000 00000000 00000000 00000000
[0x01080150] 00000000 00000000 00000000 00000000
[0x01080160] 00220001 03401400 00000000 13340000
[0x01080170] 8A090705 C655F61A 00000000 00000000
[0x01080180] 00000000 00000000 00000000 00000000
[0x01080190] 18191913 13141412 00000000 00000000
[0x010801A0] 00000000 00000000 00000000 00000000
[0x010801B0] 00000000 00000000 00000000 00000000
[0x010801C0] 00000000 00000000 00000000 00000000
[0x010801D0] 00000000 00000000 00000000 00000000
[0x010801E0] 00000000 00000000 00000000 00000000
[0x010801F0] 00000000 00000000 00000000 00000000
[0x01080200] 00000000 00000000 00000000 00000000
[0x01080210] 00000000 00000000 00000000 00000000
[0x01080220] 00000701 04800000 00000000 00000000
[0x01080230] 00000000 00000000 00000000 00000000
[0x01080240] 00000000 00000000 00000000 00000000
[0x01080250] 02335800 00000000 00000000 00000000
[0x01080260] 00000000 00000000 00000000 00000000
[0x01080270] 80000000 00000000 00000000 00000000
[0x01080280] FFFFFFFF FFFFFFFF 00FFFFFF FFFFFFFF
[0x01080290] FFFF0001 00000000 00000000 00000000
[0x010802A0] 00000000 00000000 00000000 00000000
[0x010802B0] 00000000 00000000 00000000 00000000
[0x010802C0] 00000000 00000000 00000000 00000000
[0x010802D0] 00000000 00000000 00000000 00000000
[0x010802E0] 00000000 00000000 00000000 00000000
[0x010802F0] 00000000 00000000 00000000 00000000
[0x01080300] 00000000 00000000 00000000 00000000
[0x01080310] 00000000 00000000 00000000 00000000
[0x01080320] 00000000 00000000 00000000 00000000
[0x01080330] 00000000 00000000 00000000 00000000
[0x01080340] 00000000 00000000 00000000 00000000
[0x01080350] 00000000 00000000 00000000 00000000
[0x01080360] 00000000 00000000 00000000 00000000
[0x01080370] 00000000 00000000 00000000 00000000
[0x01080380] 00000000 00000000 00000000 00000000
[0x01080390] 00000000 00000000 00000000 00000000
[0x010803A0] 00000000 00000000 00000000 00000000
[0x010803B0] 00000000 00000000 00000000 00000000
[0x010803C0] 00000000 00000000 00000000 00000000
[0x010803D0] 00000000 00000000 00000000 00000000
[0x010803E0] 00000000 00000000 00000000 00000000
[0x010803F0] 00000000 00000000 00000000 00000000
[0x01080400] 32BB4458 D6336C2C 0E4D4C0C B7630000
[0x01080410] 00000000 00000000 00000000 00000000
[0x01080420] 00000000 00000000 00000000 00000000
[0x01080430] 00000000 00000000 00000000 00000000
[0x01080440] 00000000 00000000 00000000 00000000
[0x01080450] 00000000 00000000 00000000 00000000
[0x01080460] 00000000 00000000 00000000 00000000
[0x01080470] 00000000 00000000 00000000 00000000
[0x01080480] 00000000 00000000 00000000 00000000
[0x01080490] 00000000 00000000 00000000 00000000
[0x010804A0] 00000000 00000000 00000000 00000000
[0x010804B0] 00000000 00000000 00000000 00000000
[0x010804C0] 00000000 00000000 00000000 00000000
[0x010804D0] 00000000 00000000 00000000 00000000
[0x010804E0] 00000000 00000000 00000000 00000000
[0x010804F0] 00000000 00000000 00000000 00000000
[0x01080500] 00000000 00000000 00000000 00000000
[0x01080510] 00000000 00000000 00000000 00000000
[0x01080520] 00000000 00000000 00000000 00000000
[0x01080530] 00000000 00000000 00000000 00000000
[0x01080540] 00000000 00000000 00000000 00000000
[0x01080550] 00000000 00000000 00000000 00000000
[0x01080560] 00000000 00000000 00000000 00000000
[0x01080570] 00000000 00000000 00000000 00000000
[0x01080580] 00000000 00000000 00000000 00000000
[0x01080590] 00000000 00000000 00000000 00000000
[0x010805A0] 00000000 00000000 00000000 00000000
[0x010805B0] 00000000 00000000 00000000 00000000
[0x010805C0] 00000000 00000000 00000000 00000000
[0x010805D0] 00000000 00000000 00000000 00000000
[0x010805E0] 00000000 00000000 00000000 00000000
[0x010805F0] 00000000 00000000 00000000 00000000
[0x01080600] 00000000 00000000 00000000 00000000
[0x01080610] 00000000 00000000 00000000 00000000
[0x01080620] 00000000 00000000 00000000 00000000
[0x01080630] 00000000 00000000 00000000 00000000
[0x01080640] 00000000 00000000 00000000 00000000
[0x01080650] 00000000 00000000 00000000 00000000
[0x01080660] 00000000 00000000 00000000 00000000
[0x01080670] 00000000 00000000 00000000 00000000
[0x01080680] 00000000 00000000 00000000 00000000
[0x01080690] 00000000 00000000 00000000 00000000
[0x010806A0] 00000000 00000000 00000000 00000000
[0x010806B0] 00000000 00000000 00000000 00000000
[0x010806C0] 00000000 00000000 00000000 00000000
[0x010806D0] 00000000 00000000 00000000 00000000
[0x010806E0] 00000000 00000000 00000000 00000000
[0x010806F0] 00000000 00000000 00000000 00000000
[0x01080700] 00000000 00000000 00000000 00000000
[0x01080710] 00000000 00000000 00000000 00000000
[0x01080720] 00000000 00000000 00000000 00000000
[0x01080730] 00000000 00000000 00000000 00000000
[0x01080740] 00000000 00000000 00000000 00000000
[0x01080750] 00000000 00000000 00000000 00000000
[0x01080760] 00000000 00000000 00000000 00000000
[0x01080770] 00000000 00000000 00000000 00000000
[0x01080780] 00000000 00000000 00000000 00000000
[0x01080790] 00000000 00000000 00000000 00000000
[0x010807A0] 00000000 00000000 00000000 00000000
[0x010807B0] 00000000 00000000 00000000 00000000
[0x010807C0] 00000000 00000000 00000000 00000000
[0x010807D0] 00000000 00000000 00000000 00000000
[0x010807E0] 00000000 00000000 00000000 00000000
[0x010807F0] 00000000 00000000 00000000 00000000
[0x01080800] 00000000 00000000 00000000 00000000
[0x01080810] 00000000 00000000 00000000 00000000
[0x01080820] 00000000 00000000 00000000 00000000
[0x01080830] 00000000 00000000 00000000 00000000
[0x01080840] 00000000 00000000 00000000 00000000
[0x01080850] 00000000 00000000 00000000 00000000
[0x01080860] 00000000 00000000 00000000 00000000
[0x01080870] 00000000 00000000 00000000 00000000
[0x01080880] 00000000 00000000 00000000 00000000
[0x01080890] 00000000 00000000 00000000 00000000
[0x010808A0] 00000000 00000000 00000000 00000000
[0x010808B0] 00000000 00000000 00000000 00000000
[0x010808C0] 00000000 00000000 00000000 00000000
[0x010808D0] 00000000 00000000 00000000 00000000
[0x010808E0] 00000000 00000000 00000000 00000000
[0x010808F0] 00000000 00000000 00000000 00000000
[0x01080900] 00000000 00000000 00000000 00000000
[0x01080910] 00000000 00000000 00000000 00000000
[0x01080920] 00000000 00000000 00000000 00000000
[0x01080930] 00000000 00000000 00000000 00000000
[0x01080940] 00000000 00000000 00000000 00000000
[0x01080950] 00000000 00000000 00000000 00000000
[0x01080960] 00000000 00000000 00000000 00000000
[0x01080970] 00000000 00000000 00000000 00000000
[0x01080980] 00000000 00000000 00000000 00000000
[0x01080990] 00000000 00000000 00000000 00000000
[0x010809A0] 00000000 00000000 00000000 00000000
[0x010809B0] 00000000 00000000 00000000 00000000
[0x010809C0] 00000000 00000000 00000000 00000000
[0x010809D0] 00000000 00000000 00000000 00000000
[0x010809E0] 00000000 00000000 00000000 00000000
[0x010809F0] 00000000 00000000 00000000 00000000
[0x01080A00] 00000000 00000000 00000000 00000000
[0x01080A10] 00000000 00000000 00000000 00000000
[0x01080A20] 00000000 00000000 00000000 00000000
[0x01080A30] 00000000 00000000 00000000 00000000
[0x01080A40] 00000000 00000000 00000000 00000000
[0x01080A50] 00000000 00000000 00000000 00000000
[0x01080A60] 00000000 00000000 00000000 00000000
[0x01080A70] 00000000 00000000 00000000 00000000
[0x01080A80] 00000000 00000000 00000000 00000000
[0x01080A90] 00000000 00000000 00000000 00000000
[0x01080AA0] 00000000 00000000 00000000 00000000
[0x01080AB0] 00000000 00000000 00000000 00000000
[0x01080AC0] 00000000 00000000 00000000 00000000
[0x01080AD0] 00000000 00000000 00000000 00000000
[0x01080AE0] 00000000 00000000 00000000 00000000
[0x01080AF0] 00000000 00000000 00000000 00000000
[0x01080B00] 00000000 00000000 00000000 00000000
[0x01080B10] 00000000 00000000 00000000 00000000
[0x01080B20] 00008080 80000000 80040000 00000081
[0x01080B30] 00000000 00000000 00000000 00000000
[0x01080B40] 00000000 00000000 00000000 00000000
[0x01080B50] 00000000 00000000 00000000 00000000
[0x01080B60] 00000000 00000000 00000000 00000000
[0x01080B70] 00000000 00000000 00000000 00000000
[0x01080B80] 00000000 00000000 00000000 00000000
[0x01080B90] 00000000 00000000 00000000 00000000
[0x01080BA0] 00000000 00000000 00000000 00000000
[0x01080BB0] 00000000 00000000 00000000 00000000
[0x01080BC0] 00000000 00000000 00000000 00000000
[0x01080BD0] 00000000 00000000 00000000 00000000
[0x01080BE0] 00000000 00000000 00000000 00000000
[0x01080BF0] 00000000 00000000 00020502 00000100
[0x01080C00] 00000000 00000000 00000000 00000000
[0x01080C10] 00000000 00000000 00000000 00000000
[0x01080C20] 00000000 00000000 00000000 00000000
[0x01080C30] 00000000 00000000 00000000 00000000
[0x01080C40] 00000000 00000000 00000000 00000000
[0x01080C50] 00000000 00000000 00000000 00000000
[0x01080C60] 00000000 00000000 00000000 00000000
[0x01080C70] 00000000 00000000 00000000 00000000
[0x01080C80] 00000000 00000000 00000000 00000000
[0x01080C90] 00000000 00000000 00000000 00000000
[0x01080CA0] 00000000 00000000 00000000 00000000
[0x01080CB0] 00000000 00000000 00000000 00000000
[0x01080CC0] 00000000 00000000 00000000 00000000
[0x01080CD0] 00000000 00000000 00000000 00000000
[0x01080CE0] 00000000 00000000 00000000 00000000
[0x01080CF0] 00000000 00000000 00000000 00000000
[0x01080D00] 00000000 00000000 00000000 00000000
[0x01080D10] 00000000 00000000 00000000 00000000
[0x01080D20] 00000000 00000000 00000000 00000000
[0x01080D30] 00000000 00000000 00000000 00000000
[0x01080D40] 00000000 00000000 00000000 00000000
[0x01080D50] 00000000 00000000 00000000 00000000
[0x01080D60] 00000000 00000000 00000000 00000000
[0x01080D70] 00000000 00000000 00000000 00000000
[0x01080D80] 00000000 00000000 00000000 00000000
[0x01080D90] 00000000 00000000 00000000 00000000
[0x01080DA0] 00000000 00000000 00000000 00000000
[0x01080DB0] 00000000 00000000 00000000 00000000
[0x01080DC0] 00000000 00000000 00000000 00000000
[0x01080DD0] 00000000 00000000 00000000 00000000
[0x01080DE0] 00000000 00000000 00000000 00000000
[0x01080DF0] 00000000 00000000 00000000 00000000
[0x01080E00] 00000000 00000000 00000000 00000000
[0x01080E10] 00000000 00000000 00000000 00000000
[0x01080E20] 00000000 00000000 00000000 00000000
[0x01080E30] 00000000 00000000 00000000 00000000
[0x01080E40] 00000000 00000100 0000001D 00000000
[0x01080E50] 00000000 00000000 00010000 00000000
[0x01080E60] 00000000 00000000 00000000 00000000
[0x01080E70] 00000000 00000000 00000000 00000000
[0x01080E80] 00000000 00000000 00000000 00000000
[0x01080E90] 00000000 00000000 00000000 00000000
[0x01080EA0] 00000000 00000000 00000000 00000000
[0x01080EB0] 00000000 00000000 00000000 00000000
[0x01080EC0] 00000000 00000000 00000000 00000000
[0x01080ED0] 00000000 00000000 00000000 00000000
[0x01080EE0] 00000000 00000000 00000000 00000000
[0x01080EF0] 00000000 00000000 00000000 00000000
[0x01080F00] 00000000 00000000 0000000D 14000C20
[0x01080F10] 00000000 00000000 00000000 00000000
[0x01080F20] 00000000 29002900 2B002A00 2F002F00
[0x01080F30] 31003100 2D006000 00000000 00000000
[0x01080F40] 00000000 00000000 00000001 11000000
[0x01080F50] 30003100 32003300 26002700 28002800
[0x01080F60] 24000000 00009000 00000020 00000000
[0x01080F70] 0070006F 00000000 00000000 00000000
[0x01080F80] 00000000 00000000 00000000 00000000
[0x01080F90] 00000000 80000000 00000000 00000000
[0x01080FA0] 00000000 00000000 00000000 00000000
[0x01080FB0] 10000000 00000000 00000000 00000000
[0x01080FC0] 00000000 00000000 00000000 00000000
[0x01080FD0] 00000000 00000000 00000000 00000000
[0x01080FE0] 00000000 00000000 00000000 00000000
[0x01080FF0] 00000000 00000000 00000000 00000000

0 Kudos

1,432 Views
smiller2
Contributor III

I  switched to a known good X64 single rank DIMM to eliminate ECC from the mix.    It still fails the same way.  However, I got it to pass validation  by setting the DRAM speed in the DDR Bus Clock of 1066MHZ inside the DDR Block of Processor Expert even though the RCW has the clock set to 800MHZ.     I realize that this should not work and that the warning boxes say the clocks should match.  However, if they match, then it never passes DDR Init.    If I have this mis-match, then it passes init and passed validation.     If I then take the settings from validation and attempt to apply them to Target Configuration of Code Warrior,  it still will not pass Init .  However, now the only failure is an Address Parity error.  

Attached is a zip file that contains a memory dump of the DDR area for both the failed Target Configuration and the successful validation.     Other than the errors,  the memory dumps are identical.   This seems to indicate to me all registers are configured correctly.    This seems to suggest that the Init routine being performed by Validation is different that the ones included in the Target Configuration. 

Also in the Zip file is a DDR Report generated at the end of the successful validation.    It should be noted that there appears to be a software bug in generating that report.   If you compare the DDR Registers in the report to the Dump file of the registers, you will see that the SDRAM Mode register is incorrect in the XML DDR Report. 

Questions:

1.  Why is this passing validation ONLY when the DDR clock rates are mismatched between the PLL setting and the DDR Controller?  

2.  Where can I get a copy of the Initialization sequence being run by the Validation since that one works and the samples in the Target Configuration files do not?

 

Thanks.

 

0 Kudos

1,423 Views
yipingwang
NXP TechSupport
NXP TechSupport

After completing DDRv validation, please click Project->Generate Processor Expert Code, then refer to ddrCtrl_1.py file under Generated_Code, which can be used in Target Initialization file.

0 Kudos

1,431 Views
smiller2
Contributor III

Just to be clear,  I did check the DDR clock with a scope at the DIMM module.   It is definitely running at 800MHZ there.    It stays at the frequency regardless of whether I am running the Target Configuration or the Validation. 

0 Kudos

1,406 Views
smiller2
Contributor III

DDR Validation is still the gating item on this project.   The DIMM does appear to work fine, since by trial and error, I was able to set DRAM parameters that would allow the bootloaders, U-Boot and Linux to all execute fine.   Yet, the Processor Expert cannot validate and time this DIMM. 

Sometimes the Read SPD works, other times it fails.  Today,  I was making another attempt to validate and time the DIMM.   When I read the SPD,  I found it was failing again.    This time I discovered that I could click on the red "X" and get fail info.   Attached is a screen shot.   It shows that while it claimed the SPD Read failed, there is actual SPD data present.

0 Kudos