Fatal boot error with supported Kingston ECC RAM

Hi,

I have been unable to get my Ten64 to boot with a Kingston KSM26SED8/16HD, a DDR4 ECC SODIMM which is on the list of tested SO-DIMMs. Booting halts with:

ERROR:   Error: Waiting for D_INIT timeout.
ERROR:   Writing DDR register(s) failed
ERROR:   Programing DDRC error
ERROR:   DDR init failed.
NOTICE:  Incorrect DRAM0 size is defined in platfor_def.h
ERROR:   mmap_add_region_check() failed. error -22 
tty capture of failed boot with supported Kingston RAM - firmware v0.8.8
INFO:    RCW BOOT SRC is QSPI
INFO:    RCW BOOT SRC is QSPI
WARNING: Using I2C3 for DDR SPD
INFO:    platform clock 700000000
INFO:    DDR PLL 2100000000
INFO:    time base 11 ms
INFO:    Parse DIMM SPD(s)
INFO:    Controller 0
INFO:    DIMM 0
INFO:    addr 0x51
WARNING: Using I2C3 for DDR SPD
WARNING: Using I2C3 for DDR SPD
WARNING: Using I2C3 for DDR SPD
WARNING: Using I2C3 for DDR SPD
INFO:    checksum 0xf92886cb
INFO:    n_ranks 2
INFO:    rank_density 0x200000000
INFO:    capacity 0x400000000
INFO:    die density 0x5
INFO:    primary_sdram_width 64
INFO:    ec_sdram_width 8
INFO:    device_width 8
INFO:    package_3ds 0
INFO:    rc 0x26 (Raw card G1)
INFO:    rdimm 0
INFO:    mirrored_dimm 1
INFO:    n_row_addr 16
INFO:    n_col_addr 10
INFO:    bank_addr_bits 0
INFO:    bank_group_bits 2
INFO:    edc_config 2
INFO:    burst_lengths_bitmask 0xc
INFO:    tckmin_x_ps 750
INFO:    tckmax_ps 1600
INFO:    caslat_x 0x1ffc00
INFO:    taa_ps 13750
INFO:    trcd_ps 13750
INFO:    trp_ps 13750
INFO:    tras_ps 32000
INFO:    trc_ps 45750
INFO:    trfc1_ps 350000
INFO:    trfc2_ps 260000
INFO:    trfc4_ps 160000
INFO:    tfaw_ps 21000
INFO:    trrds_ps 3000
INFO:    trrdl_ps 4900
INFO:    tccdl_ps 5000
INFO:    trfc_slr_ps 0
INFO:    twr_ps 15000
INFO:    refresh_rate_ps 7800000
INFO:    dq_mapping 0xb
INFO:    dq_mapping 0x2b
INFO:    dq_mapping 0xc
INFO:    dq_mapping 0x2b
INFO:    dq_mapping 0x2b
INFO:    dq_mapping 0xb
INFO:    dq_mapping 0x16
INFO:    dq_mapping 0x36
INFO:    dq_mapping 0xc
INFO:    dq_mapping 0x2b
INFO:    dq_mapping 0x15
INFO:    dq_mapping 0x2c
INFO:    dq_mapping 0xb
INFO:    dq_mapping 0x35
INFO:    dq_mapping 0x16
INFO:    dq_mapping 0x36
INFO:    dq_mapping 0x16
INFO:    dq_mapping 0x36
INFO:    dq_mapping_ors 1
INFO:    DIMM 1
INFO:    done with controller 0
INFO:    cal cs
INFO:    cs_in_use = 3
INFO:    cs_on_dimm[0] = 3
NOTICE:  UDIMM 9965657-035.A00G  
INFO:    Time after parsing SPD 562 ms
INFO:    Synthesize configurations
INFO:    cs 0
INFO:         odt_rd_cfg 0x0
INFO:         odt_wr_cfg 0x5
INFO:         odt_rtt_norm 0x3
INFO:         odt_rtt_wr 0x0
INFO:         auto_precharge 0
INFO:    cs 1
INFO:         odt_rd_cfg 0x0
INFO:         odt_wr_cfg 0x0
INFO:         odt_rtt_norm 0x0
INFO:         odt_rtt_wr 0x0
INFO:         auto_precharge 0
INFO:    cs 2
INFO:         odt_rd_cfg 0x0
INFO:         odt_wr_cfg 0x0
INFO:         odt_rtt_norm 0x0
INFO:         odt_rtt_wr 0x0
INFO:         auto_precharge 0
INFO:    cs 3
INFO:         odt_rd_cfg 0x0
INFO:         odt_wr_cfg 0x0
INFO:         odt_rtt_norm 0x0
INFO:         odt_rtt_wr 0x0
INFO:         auto_precharge 0
INFO:    ctlr_init_ecc 1
INFO:    x4_en 0
INFO:    ap_en 0
INFO:    ctlr_intlv 0
INFO:    ctlr_intlv_mode 0
INFO:    ba_intlv 0x40
INFO:    data_bus_used 0
INFO:    otf_burst_chop_en 1
INFO:    burst_length 0x6
INFO:    dbw_cap_shift 0
INFO:    Assign binding addresses
INFO:    ctlr_intlv 0
INFO:    rank density 0x200000000
INFO:    CS 0
INFO:        base_addr 0x0
INFO:        size 0x400000000
INFO:    CS 1
INFO:        base_addr 0x0
INFO:        size 0x400000000
INFO:    base 0x0
INFO:    Total mem by assignment is 0x400000000
INFO:    Calculate controller registers
INFO:    Skip CL mask for this speed 0x4000
INFO:    Skip caslat 0x4000
INFO:    cs_in_use = 0x3
INFO:    cs0
INFO:       _config = 0x80050422
INFO:    cs[0].bnds = 0x3ff
INFO:    cs_in_use = 0x3
INFO:    cs1
INFO:       _config = 0x80000422
INFO:    cs[1].bnds = 0x3ff
INFO:    sdram_cfg[0] = 0xe5004000
INFO:    sdram_cfg[1] = 0x401151
INFO:    sdram_cfg[2] = 0x0
INFO:    timing_cfg[0] = 0xd1770018
INFO:    timing_cfg[1] = 0xf2fc8245
INFO:    timing_cfg[2] = 0x594197
INFO:    timing_cfg[3] = 0x2161100
INFO:    timing_cfg[4] = 0x220002
INFO:    timing_cfg[5] = 0x5401400
INFO:    timing_cfg[6] = 0x0
INFO:    timing_cfg[7] = 0x26600000
INFO:    timing_cfg[8] = 0x5446a00
INFO:    timing_cfg[9] = 0x0
INFO:    dq_map[0] = 0x2eb32bac
INFO:    dq_map[1] = 0x2d6d95b0
INFO:    dq_map[2] = 0x2f55b658
INFO:    dq_map[3] = 0xd8cac001
INFO:    sdram_mode[0] = 0x3010631
INFO:    sdram_mode[1] = 0x100200
INFO:    sdram_mode[9] = 0x8400000
INFO:    sdram_mode[8] = 0x500
INFO:    sdram_mode[2] = 0x10631
INFO:    sdram_mode[3] = 0x100200
INFO:    sdram_mode[10] = 0x400
INFO:    sdram_mode[11] = 0x8400000
INFO:    sdram_mode[4] = 0x10631
INFO:    sdram_mode[5] = 0x100200
INFO:    sdram_mode[12] = 0x400
INFO:    sdram_mode[13] = 0x8400000
INFO:    sdram_mode[6] = 0x10631
INFO:    sdram_mode[7] = 0x100200
INFO:    sdram_mode[14] = 0x400
INFO:    sdram_mode[15] = 0x8400000
INFO:    eor = 0x40000000
INFO:    interval = 0x1ffe07ff
INFO:    zq_cntl = 0x8a090705
INFO:    ddr_sr_cntr = 0x0
INFO:    clk_cntl = 0x2400000
INFO:    cdr[0] = 0x80080000
INFO:    cdr[1] = 0xc0
INFO:    wrlvl_cntl[0] = 0x8675f605
INFO:    wrlvl_cntl[1] = 0x704080b
INFO:    wrlvl_cntl[2] = 0xf0c0d0a
INFO:    debug[28] = 0x7b
INFO:    Time before programming controller 830 ms
INFO:    Program controller registers
INFO:    total size 16 GB
INFO:    Need to wait up to 4080 ms
ERROR:   Error: Waiting for D_INIT timeout.
ERROR:   Writing DDR register(s) failed
ERROR:   Programing DDRC error
ERROR:   DDR init failed.
NOTICE:  Incorrect DRAM0 size is defined in platfor_def.h
ERROR:   mmap_add_region_check() failed. error -22
ASSERT: lib/xlat_tables_v2/xlat_tables_internal.c:753

I have tried two different sticks of the same part in the Ten64 with the same result. I’ve also tested the sticks in an Intel NUC (without ECC obviously) and they work fine and come up with no issues after a decent grind in memtester.

I have been able to boot into recovery and upgrade the firmware to v0.8.8 by installing a different SODIMM I had lying around (Crucial CT8G4SFD8213.C16FHP, 8GB non-ECC).

tty capture of successful boot with Crucial RAM - firmware v0.8.8
INFO:    RCW BOOT SRC is QSPI
INFO:    RCW BOOT SRC is QSPI
WARNING: Using I2C3 for DDR SPD
INFO:    platform clock 700000000
INFO:    DDR PLL 2100000000
INFO:    time base 11 ms
INFO:    Parse DIMM SPD(s)
INFO:    Controller 0
INFO:    DIMM 0
INFO:    addr 0x51
WARNING: Using I2C3 for DDR SPD
WARNING: Using I2C3 for DDR SPD
WARNING: Using I2C3 for DDR SPD
WARNING: Using I2C3 for DDR SPD
INFO:    checksum 0x5565df74
INFO:    n_ranks 2
INFO:    rank_density 0x100000000
INFO:    capacity 0x200000000
INFO:    die density 0x4
INFO:    primary_sdram_width 64
INFO:    ec_sdram_width 0
INFO:    device_width 8
INFO:    package_3ds 0
INFO:    rc 0x21 (Raw card B1)
INFO:    B1 SPD DQ mapping error fixed
INFO:    rdimm 0
INFO:    mirrored_dimm 1
INFO:    n_row_addr 15
INFO:    n_col_addr 10
INFO:    bank_addr_bits 0
INFO:    bank_group_bits 2
INFO:    edc_config 0
INFO:    burst_lengths_bitmask 0xc
INFO:    tckmin_x_ps 937
INFO:    tckmax_ps 1600
INFO:    caslat_x 0xffe00
INFO:    taa_ps 13500
INFO:    trcd_ps 13500
INFO:    trp_ps 13500
INFO:    tras_ps 33000
INFO:    trc_ps 46500
INFO:    trfc1_ps 260000
INFO:    trfc2_ps 160000
INFO:    trfc4_ps 110000
INFO:    tfaw_ps 21000
INFO:    trrds_ps 3701
INFO:    trrdl_ps 5300
INFO:    tccdl_ps 5356
INFO:    trfc_slr_ps 0
INFO:    twr_ps 15000
INFO:    refresh_rate_ps 7800000
INFO:    dq_mapping 0x2b
INFO:    dq_mapping 0x16
INFO:    dq_mapping 0x2c
INFO:    dq_mapping 0xb
INFO:    dq_mapping 0x2c
INFO:    dq_mapping 0x16
INFO:    dq_mapping 0x2c
INFO:    dq_mapping 0xc
INFO:    dq_mapping 0x0
INFO:    dq_mapping 0x0
INFO:    dq_mapping 0x2c
INFO:    dq_mapping 0xc
INFO:    dq_mapping 0x15
INFO:    dq_mapping 0x36
INFO:    dq_mapping 0x2b
INFO:    dq_mapping 0x15
INFO:    dq_mapping 0xb
INFO:    dq_mapping 0x36
INFO:    dq_mapping_ors 1
INFO:    DIMM 1
INFO:    done with controller 0
INFO:    cal cs
INFO:    cs_in_use = 3
INFO:    cs_on_dimm[0] = 3
NOTICE:  UDIMM CT8G4SFD8213.C16FH
INFO:    Time after parsing SPD 565 ms
INFO:    Synthesize configurations
INFO:    cs 0
INFO:         odt_rd_cfg 0x0
INFO:         odt_wr_cfg 0x5
INFO:         odt_rtt_norm 0x3
INFO:         odt_rtt_wr 0x0
INFO:         auto_precharge 0
INFO:    cs 1
INFO:         odt_rd_cfg 0x0
INFO:         odt_wr_cfg 0x0
INFO:         odt_rtt_norm 0x0
INFO:         odt_rtt_wr 0x0
INFO:         auto_precharge 0
INFO:    cs 2
INFO:         odt_rd_cfg 0x0
INFO:         odt_wr_cfg 0x0
INFO:         odt_rtt_norm 0x0
INFO:         odt_rtt_wr 0x0
INFO:         auto_precharge 0
INFO:    cs 3
INFO:         odt_rd_cfg 0x0
INFO:         odt_wr_cfg 0x0
INFO:         odt_rtt_norm 0x0
INFO:         odt_rtt_wr 0x0
INFO:         auto_precharge 0
INFO:    ctlr_init_ecc 0
INFO:    x4_en 0
INFO:    ap_en 0
INFO:    ctlr_intlv 0
INFO:    ctlr_intlv_mode 0
INFO:    ba_intlv 0x40
INFO:    data_bus_used 0
INFO:    otf_burst_chop_en 1
INFO:    burst_length 0x6
INFO:    dbw_cap_shift 0
INFO:    Assign binding addresses
INFO:    ctlr_intlv 0
INFO:    rank density 0x100000000
INFO:    CS 0
INFO:        base_addr 0x0
INFO:        size 0x200000000
INFO:    CS 1
INFO:        base_addr 0x0
INFO:        size 0x200000000
INFO:    base 0x0
INFO:    Total mem by assignment is 0x200000000
INFO:    Calculate controller registers
INFO:    Skip CL mask for this speed 0x4000
INFO:    Skip caslat 0x4000
INFO:    cs_in_use = 0x3
INFO:    cs0
INFO:       _config = 0x80050322
INFO:    cs[0].bnds = 0x1ff
INFO:    cs_in_use = 0x3
INFO:    cs1
INFO:       _config = 0x80000322
INFO:    cs[1].bnds = 0x1ff
INFO:    sdram_cfg[0] = 0xc5004000
INFO:    sdram_cfg[1] = 0x401141
INFO:    sdram_cfg[2] = 0x0
INFO:    timing_cfg[0] = 0xd1770018
INFO:    timing_cfg[1] = 0xf3fc9245
INFO:    timing_cfg[2] = 0x594197
INFO:    timing_cfg[3] = 0x2101100
INFO:    timing_cfg[4] = 0x220002
INFO:    timing_cfg[5] = 0x5401400
INFO:    timing_cfg[6] = 0x0
INFO:    timing_cfg[7] = 0x26600000
INFO:    timing_cfg[8] = 0x5446a00
INFO:    timing_cfg[9] = 0x0
INFO:    dq_map[0] = 0xad6b0bb0
INFO:    dq_map[1] = 0x5ac32c30
INFO:    dq_map[2] = 0x576ad52c
INFO:    dq_map[3] = 0xd8000001
INFO:    sdram_mode[0] = 0x3010631
INFO:    sdram_mode[1] = 0x100200
INFO:    sdram_mode[9] = 0x8400000
INFO:    sdram_mode[8] = 0x500
INFO:    sdram_mode[2] = 0x10631
INFO:    sdram_mode[3] = 0x100200
INFO:    sdram_mode[10] = 0x400
INFO:    sdram_mode[11] = 0x8400000
INFO:    sdram_mode[4] = 0x10631
INFO:    sdram_mode[5] = 0x100200
INFO:    sdram_mode[12] = 0x400
INFO:    sdram_mode[13] = 0x8400000
INFO:    sdram_mode[6] = 0x10631
INFO:    sdram_mode[7] = 0x100200
INFO:    sdram_mode[14] = 0x400
INFO:    sdram_mode[15] = 0x8400000
INFO:    eor = 0x40000000
INFO:    interval = 0x1ffe07ff
INFO:    zq_cntl = 0x8a090705
INFO:    ddr_sr_cntr = 0x0
INFO:    clk_cntl = 0x2400000
INFO:    cdr[0] = 0x80080000
INFO:    cdr[1] = 0xc0
INFO:    wrlvl_cntl[0] = 0x8675f605
INFO:    wrlvl_cntl[1] = 0x8040a0c
INFO:    wrlvl_cntl[2] = 0x130f1014
INFO:    debug[28] = 0x7b
INFO:    Time before programming controller 833 ms
INFO:    Program controller registers
INFO:    Reading debug[9] as 0x2d003200
INFO:    Reading debug[10] as 0x29003500
INFO:    Reading debug[11] as 0x3a004800
INFO:    Reading debug[12] as 0x40004400
INFO:    cpo_min 0x29
INFO:    cpo_max 0x48
INFO:    debug[28] 0x6a007b
WARNING: Warning: A009942 requires setting cpo_sample to 0x5f
INFO:    *0x1080000 = 0x1ff
INFO:    *0x1080008 = 0x1ff
INFO:    *0x1080080 = 0x80050322
INFO:    *0x1080084 = 0x80000322
INFO:    *0x1080100 = 0x2101100
INFO:    *0x1080104 = 0xd1770018
INFO:    *0x1080108 = 0xf3fc9245
INFO:    *0x108010c = 0x594197
INFO:    *0x1080110 = 0xc5004000
INFO:    *0x1080114 = 0x401141
INFO:    *0x1080118 = 0x3010631
INFO:    *0x108011c = 0x100200
INFO:    *0x1080120 = 0x1600086b
INFO:    *0x1080124 = 0x1ffe07ff
INFO:    *0x1080128 = 0xdeadbeef
INFO:    *0x1080130 = 0x2400000
INFO:    *0x1080160 = 0x220002
INFO:    *0x1080164 = 0x5401400
INFO:    *0x108016c = 0x26600000
INFO:    *0x1080170 = 0x8a090705
INFO:    *0x1080174 = 0xc675f605
INFO:    *0x1080190 = 0x8040a0c
INFO:    *0x1080194 = 0x130f1014
INFO:    *0x1080200 = 0x10631
INFO:    *0x1080204 = 0x100200
INFO:    *0x1080208 = 0x10631
INFO:    *0x108020c = 0x100200
INFO:    *0x1080210 = 0x10631
INFO:    *0x1080214 = 0x100200
INFO:    *0x1080220 = 0x500
INFO:    *0x1080224 = 0x8400000
INFO:    *0x1080228 = 0x400
INFO:    *0x108022c = 0x8400000
INFO:    *0x1080230 = 0x400
INFO:    *0x1080234 = 0x8400000
INFO:    *0x1080238 = 0x400
INFO:    *0x108023c = 0x8400000
INFO:    *0x1080250 = 0x5446a00
INFO:    *0x1080270 = 0xffff
INFO:    *0x1080280 = 0xdeedeeee
INFO:    *0x1080284 = 0xeededd21
INFO:    *0x1080288 = 0x21121111
INFO:    *0x108028c = 0x112122de
INFO:    *0x1080290 = 0x1
INFO:    *0x1080400 = 0xad6b0bb0
INFO:    *0x1080404 = 0x5ac32c30
INFO:    *0x1080408 = 0x576ad52c
INFO:    *0x108040c = 0xd8000001
INFO:    *0x1080b20 = 0x8080
INFO:    *0x1080b24 = 0x80000000
INFO:    *0x1080b28 = 0x80080000
INFO:    *0x1080b2c = 0xc0
INFO:    *0x1080bf8 = 0x20502
INFO:    *0x1080bfc = 0x100
INFO:    *0x1080c00 = 0x40000000
INFO:    *0x1080f04 = 0x2
INFO:    *0x1080f08 = 0x9
INFO:    *0x1080f0c = 0x14000c20
INFO:    *0x1080f24 = 0x2d003200
INFO:    *0x1080f28 = 0x29003500
INFO:    *0x1080f2c = 0x3a004800
INFO:    *0x1080f30 = 0x40004400
INFO:    *0x1080f34 = 0x8000
INFO:    *0x1080f48 = 0x1
INFO:    *0x1080f4c = 0x94000000
INFO:    *0x1080f50 = 0xc001000
INFO:    *0x1080f54 = 0x9001500
INFO:    *0x1080f58 = 0x1a002700
INFO:    *0x1080f5c = 0x1e002200
INFO:    *0x1080f60 = 0x28000000
INFO:    *0x1080f64 = 0x9000
INFO:    *0x1080f68 = 0x20
INFO:    *0x1080f70 = 0x6a007b
INFO:    *0x1080f94 = 0x80000000
INFO:    *0x1080f9c = 0x2b002a00
INFO:    *0x1080fa0 = 0x2b002b00
INFO:    *0x1080fa4 = 0x2c002900
INFO:    *0x1080fa8 = 0x2c002b00
INFO:    *0x1080fb0 = 0x3
INFO:    *0x1080fb4 = 0x1e1c1b1d
INFO:    *0x1080fb8 = 0x1c1d1d1c
INFO:    *0x1080fbc = 0x1e1c1c1e
INFO:    *0x1080fc0 = 0x1c1d1c1c
INFO:    *0x1080fc4 = 0x1e1e1c1f
INFO:    *0x1080fc8 = 0x1d1e1e1d
INFO:    *0x1080fcc = 0x1e1d1d1e
INFO:    *0x1080fd0 = 0x1d1d1f1d
INFO:    *0x1080fd4 = 0x1f1f1c1f
INFO:    *0x1080fd8 = 0x1e1f1f1d
INFO:    *0x1080fdc = 0x1f1c1b1c
INFO:    *0x1080fe0 = 0x1c1d1e1a
INFO:    *0x1080fe4 = 0x1f1e1b1e
INFO:    *0x1080fe8 = 0x1e1f1d1d
INFO:    *0x1080fec = 0x1e1e1d1e
INFO:    *0x1080ff0 = 0x1c1f1f1d
INFO:    *0x1080ff4 = 0x1f1f1f1f
INFO:    *0x1080ff8 = 0x1f1f1f1f
INFO:    *0x1080ffc = 0x1f000000

NOTICE:  8 GB DDR4, 64-bit, CL=15, ECC off, CS0+CS1
INFO:    Time used by DDR driver 1157 ms
NOTICE:  BL2: v1.5(debug):8bf4598
NOTICE:  BL2: Built : 00:46:10, Oct 22 2021
INFO:    Configuring TrustZone Controller
INFO:    Value of region base = ffe00000
INFO:    Value of region base = 1ffe00000
INFO:    Value of region base = fbe00000
INFO:    Value of region base = 8280000000
INFO:    BL2: Doing platform setup
INFO:    BL2: Loading image id 3
INFO:    Loading image id=3 at address 0xfbe00000
INFO:    Image id=3 loaded: 0xfbe00000 - 0xfbe0c16c
INFO:    BL2: Loading image id 5
INFO:    Loading image id=5 at address 0x82000000
INFO:    Image id=5 loaded: 0x82000000 - 0x8210b016
NOTICE:  BL2: Booting BL31
INFO:    Entry point address = 0xfbe00000
NOTICE:  BL31: v1.5(debug):8bf4598
NOTICE:  BL31: Built : 00:46:09, Oct 22 2021
NOTICE:  Welcome to LS1088 BL31 Phase
INFO:    GICv3 without legacy support detected. ARM GICV3 driver initialized in EL3
INFO:    BL31: Initializing runtime services
WARNING: BL31: cortex_a53: CPU workaround for 835769 was missing!
WARNING: BL31: cortex_a53: CPU workaround for 843419 was missing!
INFO:    BL31: cortex_a53: CPU workaround for 855873 was applied
INFO:    BL31: Preparing for EL3 exit to normal world
INFO:    Entry point address = 0x82000000
INFO:    SPSR = 0x3c9


U-Boot 2020.07-rc1-g488778dc (Oct 22 2021 - 00:28:33 +0000)

SoC:  LS1088AE Rev1.0 (0x87030010)
Clock Configuration:
       CPU0(A53):1600 MHz  CPU1(A53):1600 MHz  CPU2(A53):1600 MHz  
       CPU3(A53):1600 MHz  CPU4(A53):1600 MHz  CPU5(A53):1600 MHz  
       CPU6(A53):1600 MHz  CPU7(A53):1600 MHz  
       Bus:      700  MHz  DDR:      2100 MT/s
Reset Configuration Word (RCW):
       00000000: 4000541c 00000040 00000000 00000000
       00000010: 00000000 000a0000 00300000 00000000
       00000020: 010011a0 00002580 00000000 00000000
       00000030: 013fe60b 00000000 00002c03 00000000
       00000040: 00000000 00000000 00000000 00000000
       00000050: 00000000 00000000 00000000 00000000
       00000060: 00000000 00000000 00000089 000009e7
       00000070: 44110000 0d007755
DRAM:  7.9 GiB
DDR    7.9 GiB (DDR4, 64-bit, CL=15, ECC off)
       DDR Chip-Select Interleaving Mode: CS0+CS1
	7.4 GiB available for userspace

Using SERDES1 Protocol: 29 (0x1d)
Using SERDES2 Protocol: 20 (0x14)
PCIe0: pcie@3400000 Root Complex: no link
PCIe1: pcie@3500000 Root Complex: x1 gen2
PCIe2: pcie@3600000 Root Complex: x2 gen3
Retimer: (retimer on, resetting...) DS110DF410 found
OK
USB Hub:    No PCI card found in Key B
OK
Fan controller: OK
MMC:   FSL_SDHC: 0
Loading Environment from SPI Flash... SF: Detected en25s64 with page size 256 Bytes, erase size 64 KiB, total 8 MiB
OK
uC:    MACADDR: xx:xx:xx:xx:xx:x9
DPMAC7: xx:xx:xx:xx:xx:x9
DPMAC8: xx:xx:xx:xx:xx:xA
DPMAC9: xx:xx:xx:xx:xx:xB
DPMAC10: xx:xx:xx:xx:xx:xC
DPMAC3: xx:xx:xx:xx:xx:xD
DPMAC4: xx:xx:xx:xx:xx:xE
DPMAC5: xx:xx:xx:xx:xx:xF
DPMAC6: xx:xx:xx:xx:xx:x0
DPMAC1: xx:xx:xx:xx:xx:x1
DPMAC2: xx:xx:xx:xx:xx:x2
In:    serial
Out:   serial
Err:   serial
Model: Traverse Ten64
Board: 1064-0201C, boot from QSPI
Net:   eth0: DPMAC1@xgmii, eth1: DPMAC2@xgmii, eth2: DPMAC3@qsgmii, eth3: DPMAC4@qsgmii, eth4: DPMAC5@qsgmii, eth5: DPMAC6@qsgmii, eth6: DPMAC7@qsgmii, eth7: DPMAC8@qsgmii, eth8: DPMAC9@qsgmii, eth9: DPMAC10@qsgmii
SF: Detected en25s64 with page size 256 Bytes, erase size 64 KiB, total 8 MiB
device 0 offset 0x300000, size 0x200000
SF: 2097152 bytes @ 0x300000 Read: OK
device 0 offset 0x5c0000, size 0x40000
SF: 262144 bytes @ 0x5c0000 Read: OK
crc32+ 
fsl-mc: Booting Management Complex ... SUCCESS
fsl-mc: Management Complex booted (version: 10.20.4, boot status: 0x1)
Hit any key to stop autoboot:  0 

Even with the latest firmware, the Ten64 won’t boot with the Kingston SODIMM.

Thanks for your help with this!

I had such issue when memory module was not pushed deep enough into the socket. Could it be faulty?

Thanks for your reply wrobell.

I initially thought I wasn’t seating it properly, but after probably ~15 swaps I’ve had 100% success with the Crucial stick and 0% success with either Kingston stick.

Inspecting the SODIMM socket, the only potential issue I find is that the spacing of the socket contacts for pins 252-256 look strange, but I don’t know enough about the mechanical tolerances to know if it’s an issue or not.

I have experienced certain modules not booting on the first go, usually it’s fixed by carefully reinserting them. 15 attempts starts to sound more like an issue with the slot itself.
If some pins on the connector aren’t contacting properly it may not show on a smaller module.

The Kingston modules seem to be right at the mechanical tolerance for the slot and harder to insert - It might help to lean them at a shallow angle, push it in until you hear a first “click” (still at an angle) and then push it backwards until it’s upright and clicks into the retention mechanism.

If no luck, PM me and we will figure out the best way to swap you for a new unit.

That last group of pins is for power supplies so I believe the they have been offset slightly to distance them from the data bus.

I have the same Kingston module and also had the memory not work at first. At least in my case, it just looked like the module was seated but in reality it wasn’t. Seating it required considerably larger force than I was initially willing to apply… Make sure the metal tabs are actually going into the small holes on the module and not just pushing against the PCB.

Thanks everyone.

I almost gave up and contacted Matt about replacing the unit, but I had one last try inserting the RAM, angling the SODIMM right next to the outside of the retention clips and pushing down until the Ten64 board flexed. It finally booted with the module and still worked after unplugging and shaking the unit around.

So yes - if you see this issue, you may need to be fairly assertive when inserting the SODIMM.