Cap Error or Bad Memory
#1
Hi all for the past couple months I've been having some stability issues with my RockPro64 NAS. It would just seem to hang and require physical power cycle to get back online. About a week ago it seems to have given up the ghost.

This evening I hooked up an ftdi232 so I could look at the serial console as it attempts to boot, and I'm getting output similar to below pretty consistently, but with slight variations. I'm not so deep in the weeds with SBC init procedures to make too much sense of this, but "Cap error!" seems to indicate to me that there may be a faulty capacitor somewhere on my board, and the failure to read a given memory address seems to indicate that it may be a capacitor related to the ram chips. My question is, is there a good way for me to test and identify which if any capacitor may have gone bad so I can try to re-solder a new one on? If its the ram I'll resign myself to tossing the board as I don't have a reflow station, and the wife would kill me if I tried to use the oven to do that. I have a basic multimeter, and a cheapo oscilloscope from aliexpress if those tools may help drill into what I may need to replace here.

I'd really like to bring this little computer back to life if its not too much headache. This thing lasted me less than 2 years. For $80 I expected a lot better components and QC. I have an early 1st gen Raspberry Pi that's still chooching at 19 years old.

Code:
Version 1.19 20190305
In
channel 0
CS = 0
MR0=0x98
MR4=0x2
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
CS = 1
MR0=0x18
MR4=0x2
MR5=0xFF
MR8=0x8
MR12=0x0
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
channel 1
CS = 0
MR0=0x98
MR4=0x3
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
CS = 1
MR0=0x18
MR4=0x2
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
channel 0 training pass!
channel 1 training pass!
change freq to 400MHz 0,1
channel 0
CS = 0
MR0=0x80
MR4=0x2
MR5=0x0
MR8=0x0
MR12=0x2
MR14=0x0
MR18=0x0
MR19=0x0
MR24=0x0
MR25=0x0
CS = 1
MR0=0x18
MR4=0x2
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
channel 1
CS = 0
MR0=0x98
MR4=0x3
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
CS = 1
MR0=0x18
MR4=0x2
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
channel 0 training pass!
channel 1 training pass!
change freq to 800MHz 1,0
Channel 0: LPDDR4,800MHz
W FF != R
Cap error!
Channel 1: LPDDR4,800MHz
Col error!!!
Cap error!
ERR

Code:
Version 1.19 20190305
In
channel 0
CS = 0
MR0=0x98
MR4=0x2
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
CS = 1
MR0=0x18
MR4=0x3
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
channel 1
CS = 0
MR0=0x98
MR4=0x3
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
CS = 1
MR0=0x18
MR4=0x2
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
channel 0 training pass!
channel 1 training pass!
change freq to 400MHz 0,1
channel 0
CS = 0
MR0=0x98
MR4=0x2
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
CS = 1
MR0=0x18
MR4=0x3
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
channel 1
CS = 0
MR0=0x98
MR4=0x3
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
CS = 1
MR0=0x18
MR4=0x2
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
channel 0 training pass!
channel 1 training pass!
change freq to 800MHz 1,0
Channel 0: LPDDR4,800MHz
Bus Width=32 Col=10 Bank=8 Row=15/15 CS=2 Die Bus-Width=16 Size=2048MB
Channel 1: LPDDR4,800MHz
Bus Width=32 Col=10 Bank=8 Row=15/15 CS=2 Die Bus-Width=16 Size=2048MB
256B stride
read addr 0x40008000 = 0x40010000
ERR

Code:
Version 1.19 20190305
In
channel 0
CS = 0
MR0=0x98
MR4=0x3
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
CS = 1
MR0=0x18
MR4=0x3
MR5=0xFF
MR8=0x8
MR12=0x0
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
channel 1
CS = 0
MR0=0x98
MR4=0x3
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x0
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
CS = 1
MR0=0x18
MR4=0x3
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
channel 0 training pass!
channel 1 training pass!
change freq to 400MHz 0,1
channel 0
CS = 0
MR0=0x80
MR4=0x2
MR5=0x0
MR8=0x0
MR12=0x2
MR14=0x2
MR18=0x0
MR19=0x0
MR24=0x0
MR25=0x0
CS = 1
MR0=0x18
MR4=0x82
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
channel 1
CS = 0
MR0=0x98
MR4=0x82
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
CS = 1
MR0=0x18
MR4=0x3
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
channel 0 training pass!
channel 1 training pass!
change freq to 800MHz 1,0
Channel 0: LPDDR4,800MHz
W FF != R
Cap error!
Channel 1: LPDDR4,800MHz
Bus Width=32 Col=10 Bank=8 Row=15/15 CS=2 Die Bus-Width=16 Size=2048MB
no stride
read addr 0x8000 = 0xFFFF8000
ERR

Code:
Version 1.19 20190305
In
channel 0
CS = 0
MR0=0x98
MR4=0x2
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
CS = 1
MR0=0x18
MR4=0x3
MR5=0xFF
MR8=0x8
MR12=0x0
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
channel 1
CS = 0
MR0=0x98
MR4=0x3
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
CS = 1
MR0=0x18
MR4=0x3
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
channel 0 training pass!
channel 1 training pass!
change freq to 400MHz 0,1
channel 0
CS = 0
MR0=0x98
MR4=0x2
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
CS = 1
MR0=0x0
MR4=0x82
MR5=0x0
MR8=0x0
MR12=0x0
MR14=0x2
MR18=0x0
MR19=0x0
MR24=0x0
MR25=0x0
channel 1
CS = 0
MR0=0x98
MR4=0x82
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
CS = 1
MR0=0x18
MR4=0x3
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
channel 0 training pass!
channel 1 training pass!
change freq to 800MHz 1,0
Channel 0: LPDDR4,800MHz
W FF != R
Cap error!
Channel 1: LPDDR4,800MHz
Bus Width=32 Col=10 Bank=8 Row=15/15 CS=2 Die Bus-Width=16 Size=2048MB
no stride
ch 0 ddrconfig = 0x101, ddrsize = 0x2020
pmugrf_os_reg[2] = 0x2AA1E000, stride = 0x18
OUT
U-Boot SPL board iq"Synchronous Abort" handler, esr 0x9600qSynchronous Abort" handler, esr 0x02000000ELR:     adac
LR:      4308
x 0: 0000000000000030 x 1: 00000000000ELR:     adac
LR:      4268
x 0: 0000000000000030 x 1: 00000000000"Synchronous Abort" handler, esr 0x96000"Synchronous Abort" handler, esr 0x02000000
"Synchronous Abort" handler, esr 0x96000""Synchronous Abort" handler, esr 0x86000000
ELR:     17ff0000531f3e00
LR:      3ecc
x 0: 0000000"Synchronous Abort" handler, esr 0x02000000"Synchronous Abort" handler, esr 0x86000qSynchronous Abort" handler, esr 0x02000000
ELR:     8de0
LR:      4308
x 0: 0000000000000030 x 1: 0000000000000000
x 2: 00000000ff1a0014 x 3: 0000000000000030
x 4: 00000000003f9df8 x 5: 0000000000000000
x 6: 0000000000000001 x 7: 07f822e0003fb310
x 8: 00000000ff8c1edc x 9: 0000000000000000
x10: 0000000000000000 x11: 000000000000000c
x12: 0000000080000000 x13: 000000000000000f
x14: 00000qSynchronous Abort" handler, esr 0x02000000"Synchronous Abort" handler, esr 0x02000000"Synchronous Abort" handler, esr 0x02000000ELR:     adac
LR:      3ecc
x 0: 000000000000000a x 1: 0000000000000000
x 2: 0000000000003e00 x 3: 0000000000000030
x 4: 0000000000003e00 x 5: 0000000000000000
x 6: 0000000000000001 x 7: 000000000000000"Synchronous Abort" handler, esr 0x02000000
ELR:     adac
LR:      4308
x 0: 0000000000000061 x 1: 0000000000""Synchronous Abort" handler, esr 0x0200000"Synchronous Abort" handler, esr 0x02000000ELR:     adac
"Synchronous Abort" han"Synchronous Abort" handler, esr 0x02000000
"Synchronous Abort" handler, esr 0x0200qSynchronous Abort" handler, esr 0x02000000qSynchronous Abort" handler, esr 0x02000000"Synchronous Abort" handler, esr 0x02000000
"Synchronous Abort" handler, esr 0x02000000
"Synchronous Abort" handler, esr 0x02000000
"Synchronous Abort" handler, esr 0x02000000
"Synchronous Abort" handler, esr 0x02000000
"Synchronous Abort" handler, esr 0x02000000
"Synchronous Abort" handle"Synchronous Abort" handler, esr 0x02000000"Synchronous Abort" handler, esr 0x02000000"Synchronous Abort" handler, esr 0x02000000"
  Reply
#2
You can use memtester to check for bad memory

sudo apt-get install memtester
sudo memtester 3700M

note: for 4GB use 3700M, 2GB use 1700M, 1GB use 700M
  Reply
#3
(04-05-2021, 02:18 PM)tllim Wrote: You can use memtester to check for bad memory

sudo apt-get install memtester
sudo memtester 3700M

note: for 4GB use 3700M, 2GB use 1700M, 1GB use 700M
I can't boot into an OS at all. These messages come up as the board is attempting to boot and once they come up the board seems to hang. I've tried many different OSes, SD cards, and the emmc module I have, and they all produce the same error. The only reason I've even been able to see the above logging is because I hooked up the FTDI-232 to watch the serial console output.
  Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Industrial memory card m.ekstrom 1 153 03-23-2021, 05:55 AM
Last Post: barray
  RockPro64 has bad Memory (Software sogfaults and kernel panics) kop316 16 3,656 01-09-2021, 05:41 PM
Last Post: kuleszdl

Forum Jump:


Users browsing this thread: 1 Guest(s)