OpenWrt Forum Archive

Topic: WRT1900AC Brick/DDR Training Sequence Fail

The content of this topic has been archived on 24 Apr 2018. There are no obvious gaps in this topic, but there may still be some posts missing at the end.

Hi All,

I recently inherited a LinksysWRT1900ac v1 from a family member with the explanation that it just doesn't work.  I cracked it open and connected my TTL cable to it, but cannot get to complete boot up with the message that DDR3 training sequence failed.  Is this thing fixable, or should I just harvet whatever parts I can recover?  Output below. 

BootROM 1.20
Booting from NAND flash
Step 1: First phase of PEX-PIPE Configuration
Step 2: Configure the desire PIN_PHY_GEN
Step 3 QSGMII enable
Step 4: Configure SERDES MUXes
Step 5: Activate the RX High Impedance Mode
Step 6: [PEX-Only] PEX-Main configuration (X4 or X1)
Step 6.2: [PEX-Only] PCI Express Link Capabilities
Step 7: [PEX-X4 Only] To create PEX-Link
Steps 7,8,9,10 and 11
Steps 12: [PEX-Only] Last phase of PEX-PIPE ConfigurationSteps 13: Wait 15ms bef                                                                              ore checking resultsSteps 14: [PEX-Only]  In order to configureSteps 15: [PEX-On                                                                              ly]  In order to configureSteps 16: [PEX-Only] Training Enablestep 17: max_if= 0                                                                              x7
step 17:  PEX0  pexUnit= 0
** Link is Gen1, check the EP capability
 --> 0050
mvPexConfigRead: return addr=0x%x0050
 --> 7001
 --> 7001
 --> A005
 --> A005
 --> 0010
 --> 4C12
Gen2 client!
step 17:  PEX1  pexUnit= 0
step 17:  PEX2  pexUnit= 0
** Link is Gen1, check the EP capability
 --> 0040
mvPexConfigRead: return addr=0x%x0040
 --> 5001
 --> 5001
 --> 7005
 --> 7005
 --> 0010
 --> DC12
Gen2 client!
step 17:  PEX3  pexUnit= 0
PEX3 : Detected No Link. Status Reg(0x0004DA64) = 0x00000001
step 17:  PEX4  pexUnit= 1
PEX4 : Detected No Link. Status Reg(0x00081A64) = 0x00000001
step 17:  PEX5  pexUnit= 1
PEX5 : Detected No Link. Status Reg(0x00085A64) = 0x00000001
step 17:  PEX6  pexUnit= 1
PEX6 : Detected No Link. Status Reg(0x00089A64) = 0x00000001
                                                            DDR3 Training Sequen                                                                              ce - Ver 4.5.DDR3 Training Sequence - Static MC Init
DDR3 Training Sequence - HW Training Procedure
DDR3 Training Sequence - FAILED (Write Leveling Hi-Freq Sup)
DDR3 Training Sequence - FAILED

Read the wiki, it has everything you need to revive it.

nitroshift

I followed the wiki instructions for kwboot, but in the end it gives me a read error.  What am I doing wrong?

It seems you have a problem with the DDR, it is necessary to rewire chips.
Also, check the router board was not filled with water.

This is the output I get when I follow the procedure to recover from corrupt boot loader.  It fails with +xmodem: Protocol error.

./kwboot -a -t /dev/ttyUSB0 -b u-boot-uart.kwb 
Sending boot message. Please reboot the target...\
Sending boot image...
  0 % [......................................................................]
  0 % [......................................................................]
  1 % [......................................................................]
  2 % [......................................................................]
  3 % [......................................................................]
  4 % [......................................................................]
  5 % [......................................................................]
  6 % [......................................................................]
  7 % [......................................................................]
  8 % [......................................................................]
  9 % [......................................................................]
 10 % [.............................Step 1: First phase of PEX-PIPE Configuration
Step 2: Configure the desire PIN_PHY_GEN
Step 3 QSGMII enable 
Step 4: Configure SERDES MUXes 
Step 5: Activate the RX High Impedance Mode  
Step 6: [PEX-Only] PEX-Main configuration (X4 or X1)
Step 6.2: [PEX-Only] PCI Express Link Capabilities
Step 7: [PEX-X4 Only] To create PEX-Link 
Steps 7,8,9,10 and 11
Steps 12: [PEX-Only] Last phase of PEX-PIPE ConfigurationSteps 13: Wait 15ms before checking resultsSteps 14: [PEX-Only]  In order to configureSteps 15: [PEX-Only]  In order to configureSteps 16: [PEX-Only] Training Enablestep 17: max_if= 0x7
step 17:  PEX0  pexUnit= 0
** Link is Gen1, check the EP capability 
 --> 0050
mvPexConfigRead: return addr=0x%x0050
 --> 7001
 --> 7001
 --> A005
 --> A005
 --> 0010
 --> 4C12
Gen2 client!
step 17:  PEX1  pexUnit= 0
step 17:  PEX2  pexUnit= 0
** Link is Gen1, check the EP capability 
 --> 0040
mvPexConfigRead: return addr=0x%x0040
 --> 5001
 --> 5001
 --> 7005
 --> 7005
 --> 0010
 --> DC12
Gen2 client!
step 17:  PEX3  pexUnit= 0
PEX3 : Detected No Link. Status Reg(0x0004DA64) = 0x00000001
step 17:  PEX4  pexUnit= 1
PEX4 : Detected No Link. Status Reg(0x00081A64) = 0x00000001
step 17:  PEX5  pexUnit= 1
PEX5 : Detected No Link. Status Reg(0x00085A64) = 0x00000001
step 17:  PEX6  pexUnit= 1
PEX6 : Detected No Link. Status Reg(0x00089A64) = 0x00000001
DDR3 Training Sequence - Ver 4.5.DDR3 Training Sequence - Static MC Init 
DDR3 Training Sequence - HW Training Procedure 
DDR3 Training Sequence - FAILED (Write Leveling Hw) 
DDR3 Training Sequence - FAILED  
+xmodem: Protocol error
root@wolf:/home/user1/kwboot# 

do you have solved the problem,i think maybe is the cpu's problem

The xmodem protocol error sounds like your usb2ttl is only a partial implementation, maybe you see more in dmesg. Anyway, the router seems dead regardless.

My hunch is a loose connection on the usb ttl adapter as the router shouldn't start the boot process until transfer has finished.

nitroshift

No, this procedure U-Boon - DDR3 Training Sekuen. The high probability of a memory chip failure, or delamination of the contact paths of the chip.
I was so when I tried unsuccessfully to increase the memory in wrt1900ac v1 up to 512mb, - wrong soldering chips.
Now on the router configured with two chip HTQ2G63BFR, giving a total of - 512mb, but the system still identifies as 256mb. The router is working properly.
By the way, this is the maximum amount of memory that can be installed, as the router uses address memory bus  in the range M_A[0] ... M_A[14] (M_A[15] are not divorced).
Who has any ideas?

Neither nitroshift nor I suggested it's not a hardware / ram issue, just that an additional issue can be seen in the output.

As for your mod, did you update the DT accordingly?

sera wrote:

As for your mod, did you update the DT accordingly?

I'm sorry that this DT?

DT is the device tree file.

nitroshift

File 'armada-xp-linksys-mamba.dts' corrected during assembly of the nucleus.

    memory {
           device_type = "memory";
           reg = <0x00000000 0x00000000 0x00000000 0x20000000>; /* 512MB */
    };

Or something else is necessary?

I should be sorry for assuming DT to be obvious.

Your snipped looks fine at a glance, probably you need to teach uboot about the additional ram. Did you document your mod somewhere?

This mod I have never documented.
Yes, it would be nice to look at Uboot source to set the upper limit of the memory, but not sure - I can handle myself.
I also need to check again in good memory chips, for that tomorrow I will establish a new set of chips.

And another question, whether there can be a hardware limitation of the upper limit of memory, such as a jumper, a resistor, etc.?

(Last edited by ValCher on 3 Jan 2017, 17:58)

Guess https://github.com/MarvellEmbeddedProce … 756b115d5c is what is used on shelby. In that repo you should also find what was used for Mamba but you might just as well build the latest version instead.

There are always physical limitations, though I doubt you will hit them here.

@Sera
Thanks for the info, I will study.

Well, if you have the energy to add u-boot builds to OpenWrt guess many could profit.

Ah, there are so many things and confused that I can not give an answer right now.
By the way, there really is explicitly defined by the upper limit of 256mb.

The discussion might have continued from here.