This is a DRAM tuning/overclocking stability report for various Allwinner A10/A13/A20 based devices.It can be automatically generated by the tools from https://github.com/ssvb/a10-meminfo. Here we primarily focus on finding optimal dram_tpr3 values, tuned individually for every sunxi device. Currently these values need to be hardcoded into the sources of the u-boot-sunxi bootloader. The dram_tpr3 parameter is just a hexadecimal number with the following bit fields:

The RK30XX manual can be checked for more details about the MFWDLY, MFBDLY and SDPHASE bit fields. The Rockchip 30XX family of SoCs is apparently using the same DRAM controller IP.

Results interpretation:

Cubieboard1, dram_clk=540MHz, dcdc3_vol=1.25V

dcdc3_vol = 1250
dram_clk = 540
dram_type = 3
dram_rank_num = 1
dram_chip_density = 4096
dram_io_width = 16
dram_bus_width = 32
dram_cas = 9
dram_zq = 0x7f
dram_odt_en = 0
dram_tpr0 = 0x42d899b7
dram_tpr1 = 0xa090
dram_tpr2 = 0x22a00
dram_tpr3 = 0x0
dram_emr1 = 0x4
dram_emr2 = 0x10
dram_emr3 = 0x0
mfxdlyphase=36phase=54phase=72phase=90phase=108phase=126
0x070x0733330x0722220x0711110x0700000x07EEEE0x07DDDD
0x060x0633330x0622220x0611110x0600000x06EEEE0x06DDDD
0x050x0533330x0522220x0511110x0500000x05EEEE0x05DDDD
0x040x0433330x0422220x0411110x0400000x04EEEE0x04DDDD
0x030x0333330x0322220x0311110x0300000x03EEEE0x03DDDD
0x020x0233330x0222220x0211110x0200000x02EEEE0x02DDDD
0x010x0133330x0122220x0111110x0100000x01EEEE0x01DDDD
0x000x0033330x0022220x0011110x0000000x00EEEE0x00DDDD
0x080x0833330x0822220x0811110x0800000x08EEEE0x08DDDD
0x100x1033330x1022220x1011110x1000000x10EEEE0x10DDDD
0x180x1833330x1822220x1811110x1800000x18EEEE0x18DDDD
0x200x2033330x2022220x2011110x2000000x20EEEE0x20DDDD
0x280x2833330x2822220x2811110x2800000x28EEEE0x28DDDD
0x300x3033330x3022220x3011110x3000000x30EEEE0x30DDDD
0x380x3833330x3822220x3811110x3800000x38EEEE0x38DDDD
Lane phase adjustments: [0, 0, 0, 0]

Error statistics from memtester: [solidbits=17, bitflip=13, bitspread=11]

Best number of successful memtester runs, which span over 1 columns (3-3): 60
Best number of successful memtester runs, which span over 2 columns (2-3): 96
Best number of successful memtester runs, which span over 3 columns (1-3): 122
Best number of successful memtester runs, which span over 4 columns (1-4): 131
Best number of successful memtester runs, which span over 5 columns (1-5): 131
Best number of successful memtester runs, which span over 6 columns (0-5): 131

Errors per lane: [20, 14, 27, 22]. Lane 1 is the most noisy/problematic.

Errors from the lane 0 are 63.6% eclipsed by the worst lane 1.
Errors from the lane 2 are 100.0% eclipsed by the worst lane 1.
Errors from the lane 3 are 70.0% eclipsed by the worst lane 1.

Cubieboard1, dram_clk=540MHz, dcdc3_vol=1.30V

dcdc3_vol = 1300
dram_clk = 540
dram_type = 3
dram_rank_num = 1
dram_chip_density = 4096
dram_io_width = 16
dram_bus_width = 32
dram_cas = 9
dram_zq = 0x7f
dram_odt_en = 0
dram_tpr0 = 0x42d899b7
dram_tpr1 = 0xa090
dram_tpr2 = 0x22a00
dram_tpr3 = 0x0
dram_emr1 = 0x4
dram_emr2 = 0x10
dram_emr3 = 0x0
mfxdlyphase=36phase=54phase=72phase=90phase=108phase=126
0x070x0733330x0722220x0711110x0700000x07EEEE0x07DDDD
0x060x0633330x0622220x0611110x0600000x06EEEE0x06DDDD
0x050x0533330x0522220x0511110x0500000x05EEEE0x05DDDD
0x040x0433330x0422220x0411110x0400000x04EEEE0x04DDDD
0x030x0333330x0322220x0311110x0300000x03EEEE0x03DDDD
0x020x0233330x0222220x0211110x0200000x02EEEE0x02DDDD
0x010x0133330x0122220x0111110x0100000x01EEEE0x01DDDD
0x000x0033330x0022220x0011110x0000000x00EEEE0x00DDDD
0x080x0833330x0822220x0811110x0800000x08EEEE0x08DDDD
0x100x1033330x1022220x1011110x1000000x10EEEE0x10DDDD
0x180x1833330x1822220x1811110x1800000x18EEEE0x18DDDD
0x200x2033330x2022220x2011110x2000000x20EEEE0x20DDDD
0x280x2833330x2822220x2811110x2800000x28EEEE0x28DDDD
0x300x3033330x3022220x3011110x3000000x30EEEE0x30DDDD
0x380x3833330x3822220x3811110x3800000x38EEEE0x38DDDD
Lane phase adjustments: [0, 0, 0, 0]

Error statistics from memtester: [solidbits=17, bitspread=12, bitflip=4]

Best number of successful memtester runs, which span over 1 columns (3-3): 150
Best number of successful memtester runs, which span over 2 columns (2-3): 300
Best number of successful memtester runs, which span over 3 columns (1-3): 450
Best number of successful memtester runs, which span over 4 columns (1-4): 480
Best number of successful memtester runs, which span over 5 columns (0-4): 482
Best number of successful memtester runs, which span over 6 columns (0-5): 482

Errors per lane: [8, 0, 17, 8]. Lane 1 is the most noisy/problematic.

Errors from the lane 0 are not intersecting with the errors from the worst line 1.
Errors from the lane 3 are not intersecting with the errors from the worst line 1.

Cubieboard2, dram_clk=540MHz, dcdc3_vol=1.30V

dcdc3_vol = 1300
dram_clk = 540
dram_type = 3
dram_rank_num = 1
dram_chip_density = 4096
dram_io_width = 16
dram_bus_width = 32
dram_cas = 9
dram_zq = 0x7f
dram_odt_en = 0
dram_tpr0 = 0x42d899b7
dram_tpr1 = 0xa090
dram_tpr2 = 0x22a00
dram_tpr3 = 0x0
dram_emr1 = 0x4
dram_emr2 = 0x10
dram_emr3 = 0x0
mfxdlyphase=36phase=54phase=72phase=90phase=108phase=126
0x070x0733330x0722220x0711110x0700000x07EEEE0x07DDDD
0x060x0633330x0622220x0611110x0600000x06EEEE0x06DDDD
0x050x0533330x0522220x0511110x0500000x05EEEE0x05DDDD
0x040x0433330x0422220x0411110x0400000x04EEEE0x04DDDD
0x030x0333330x0322220x0311110x0300000x03EEEE0x03DDDD
0x020x0233330x0222220x0211110x0200000x02EEEE0x02DDDD
0x010x0133330x0122220x0111110x0100000x01EEEE0x01DDDD
0x000x0033330x0022220x0011110x0000000x00EEEE0x00DDDD
0x080x0833330x0822220x0811110x0800000x08EEEE0x08DDDD
0x100x1033330x1022220x1011110x1000000x10EEEE0x10DDDD
0x180x1833330x1822220x1811110x1800000x18EEEE0x18DDDD
0x200x2033330x2022220x2011110x2000000x20EEEE0x20DDDD
0x280x2833330x2822220x2811110x2800000x28EEEE0x28DDDD
0x300x3033330x3022220x3011110x3000000x30EEEE0x30DDDD
0x380x3833330x3822220x3811110x3800000x38EEEE0x38DDDD
Lane phase adjustments: [0, 0, 0, 0]

Error statistics from memtester: [bitspread=10, solidbits=5, bitflip=4]

Best number of successful memtester runs, which span over 1 columns (1-1): 99
Best number of successful memtester runs, which span over 2 columns (0-1): 198
Best number of successful memtester runs, which span over 3 columns (0-2): 275
Best number of successful memtester runs, which span over 4 columns (0-3): 312
Best number of successful memtester runs, which span over 5 columns (0-4): 312
Best number of successful memtester runs, which span over 6 columns (0-5): 312

Errors per lane: [5, 7, 6, 16]. Lane 0 is the most noisy/problematic.

Errors from the lane 1 are 100.0% eclipsed by the worst lane 0.
Errors from the lane 2 are 57.1% eclipsed by the worst lane 0.
Errors from the lane 3 are 80.0% eclipsed by the worst lane 0.

Cubieboard2, dram_clk=540MHz, dcdc3_vol=1.35V

dcdc3_vol = 1350
dram_clk = 540
dram_type = 3
dram_rank_num = 1
dram_chip_density = 4096
dram_io_width = 16
dram_bus_width = 32
dram_cas = 9
dram_zq = 0x7f
dram_odt_en = 0
dram_tpr0 = 0x42d899b7
dram_tpr1 = 0xa090
dram_tpr2 = 0x22a00
dram_tpr3 = 0x0
dram_emr1 = 0x4
dram_emr2 = 0x10
dram_emr3 = 0x0
mfxdlyphase=36phase=54phase=72phase=90phase=108phase=126
0x070x0733330x0722220x0711110x0700000x07EEEE0x07DDDD
0x060x0633330x0622220x0611110x0600000x06EEEE0x06DDDD
0x050x0533330x0522220x0511110x0500000x05EEEE0x05DDDD
0x040x0433330x0422220x0411110x0400000x04EEEE0x04DDDD
0x030x0333330x0322220x0311110x0300000x03EEEE0x03DDDD
0x020x0233330x0222220x0211110x0200000x02EEEE0x02DDDD
0x010x0133330x0122220x0111110x0100000x01EEEE0x01DDDD
0x000x0033330x0022220x0011110x0000000x00EEEE0x00DDDD
0x080x0833330x0822220x0811110x0800000x08EEEE0x08DDDD
0x100x1033330x1022220x1011110x1000000x10EEEE0x10DDDD
0x180x1833330x1822220x1811110x1800000x18EEEE0x18DDDD
0x200x2033330x2022220x2011110x2000000x20EEEE0x20DDDD
0x280x2833330x2822220x2811110x2800000x28EEEE0x28DDDD
0x300x3033330x3022220x3011110x3000000x30EEEE0x30DDDD
0x380x3833330x3822220x3811110x3800000x38EEEE0x38DDDD
Lane phase adjustments: [0, 0, 0, 0]

Error statistics from memtester: [bitspread=10, solidbits=7, bitflip=4]

Best number of successful memtester runs, which span over 1 columns (2-2): 115
Best number of successful memtester runs, which span over 2 columns (1-2): 223
Best number of successful memtester runs, which span over 3 columns (0-2): 336
Best number of successful memtester runs, which span over 4 columns (0-3): 424
Best number of successful memtester runs, which span over 5 columns (0-4): 441
Best number of successful memtester runs, which span over 6 columns (0-5): 441

Errors per lane: [8, 6, 4, 16]. Lane 0 is the most noisy/problematic.

Errors from the lane 1 are 100.0% eclipsed by the worst lane 0.
Errors from the lane 2 are 50.0% eclipsed by the worst lane 0.
Errors from the lane 3 are 37.5% eclipsed by the worst lane 0.

Cubietruck, dram_clk=540MHz, dcdc3_vol=1.30V

dcdc3_vol = 1300
dram_clk = 540
dram_type = 3
dram_rank_num = 1
dram_chip_density = 4096
dram_io_width = 8
dram_bus_width = 32
dram_cas = 9
dram_zq = 0x7f
dram_odt_en = 0
dram_tpr0 = 0x3c9688b4
dram_tpr1 = 0xa090
dram_tpr2 = 0x210c0
dram_tpr3 = 0x72222
dram_emr1 = 0x4
dram_emr2 = 0x10
dram_emr3 = 0x0
mfxdlyphase=36phase=54phase=72phase=90phase=108phase=126
0x070x0733330x0722220x0711110x0700000x07EEEE0x07DDDD
0x060x0633330x0622220x0611110x0600000x06EEEE0x06DDDD
0x050x0533330x0522220x0511110x0500000x05EEEE0x05DDDD
0x040x0433330x0422220x0411110x0400000x04EEEE0x04DDDD
0x030x0333330x0322220x0311110x0300000x03EEEE0x03DDDD
0x020x0233330x0222220x0211110x0200000x02EEEE0x02DDDD
0x010x0133330x0122220x0111110x0100000x01EEEE0x01DDDD
0x000x0033330x0022220x0011110x0000000x00EEEE0x00DDDD
0x080x0833330x0822220x0811110x0800000x08EEEE0x08DDDD
0x100x1033330x1022220x1011110x1000000x10EEEE0x10DDDD
0x180x1833330x1822220x1811110x1800000x18EEEE0x18DDDD
0x200x2033330x2022220x2011110x2000000x20EEEE0x20DDDD
0x280x2833330x2822220x2811110x2800000x28EEEE0x28DDDD
0x300x3033330x3022220x3011110x3000000x30EEEE0x30DDDD
0x380x3833330x3822220x3811110x3800000x38EEEE0x38DDDD
Lane phase adjustments: [0, 0, 0, 0]

Error statistics from memtester: [solidbits=8, bitspread=3, bitflip=1]

Best number of successful memtester runs, which span over 1 columns (0-0): 51
Best number of successful memtester runs, which span over 2 columns (0-1): 77
Best number of successful memtester runs, which span over 3 columns (0-2): 77
Best number of successful memtester runs, which span over 4 columns (0-3): 79
Best number of successful memtester runs, which span over 5 columns (0-4): 79

Errors per lane: [2, 0, 1, 9]. Lane 0 is the most noisy/problematic.

Errors from the lane 1 are not intersecting with the errors from the worst line 0.
Errors from the lane 3 are not intersecting with the errors from the worst line 0.

Cubietruck, dram_clk=540MHz, dcdc3_vol=1.35V

dcdc3_vol = 1350
dram_clk = 540
dram_type = 3
dram_rank_num = 1
dram_chip_density = 4096
dram_io_width = 8
dram_bus_width = 32
dram_cas = 9
dram_zq = 0x7f
dram_odt_en = 0
dram_tpr0 = 0x3c9688b4
dram_tpr1 = 0xa090
dram_tpr2 = 0x210c0
dram_tpr3 = 0x72222
dram_emr1 = 0x4
dram_emr2 = 0x10
dram_emr3 = 0x0
mfxdlyphase=36phase=54phase=72phase=90phase=108phase=126
0x070x0733330x0722220x0711110x0700000x07EEEE0x07DDDD
0x060x0633330x0622220x0611110x0600000x06EEEE0x06DDDD
0x050x0533330x0522220x0511110x0500000x05EEEE0x05DDDD
0x040x0433330x0422220x0411110x0400000x04EEEE0x04DDDD
0x030x0333330x0322220x0311110x0300000x03EEEE0x03DDDD
0x020x0233330x0222220x0211110x0200000x02EEEE0x02DDDD
0x010x0133330x0122220x0111110x0100000x01EEEE0x01DDDD
0x000x0033330x0022220x0011110x0000000x00EEEE0x00DDDD
0x080x0833330x0822220x0811110x0800000x08EEEE0x08DDDD
0x100x1033330x1022220x1011110x1000000x10EEEE0x10DDDD
0x180x1833330x1822220x1811110x1800000x18EEEE0x18DDDD
0x200x2033330x2022220x2011110x2000000x20EEEE0x20DDDD
0x280x2833330x2822220x2811110x2800000x28EEEE0x28DDDD
0x300x3033330x3022220x3011110x3000000x30EEEE0x30DDDD
0x380x3833330x3822220x3811110x3800000x38EEEE0x38DDDD
Lane phase adjustments: [0, 0, 0, 0]

Error statistics from memtester: [solidbits=14, bitspread=7, bitflip=1]

Best number of successful memtester runs, which span over 1 columns (0-0): 60
Best number of successful memtester runs, which span over 2 columns (0-1): 104
Best number of successful memtester runs, which span over 3 columns (0-2): 121
Best number of successful memtester runs, which span over 4 columns (0-3): 141
Best number of successful memtester runs, which span over 5 columns (0-4): 142
Best number of successful memtester runs, which span over 6 columns (0-5): 142

Errors per lane: [3, 1, 3, 15]. Lane 0 is the most noisy/problematic.

Errors from the lane 1 are not intersecting with the errors from the worst line 0.
Errors from the lane 2 are not intersecting with the errors from the worst line 0.
Errors from the lane 3 are not intersecting with the errors from the worst line 0.

Mele A2000, dram_clk=468MHz, dcdc3_vol=1.25V

dcdc3_vol = 1250
dram_clk = 468
dram_type = 3
dram_rank_num = 1
dram_chip_density = 2048
dram_io_width = 16
dram_bus_width = 32
dram_cas = 9
dram_zq = 0x7f
dram_odt_en = 0
dram_tpr0 = 0x42d899b7
dram_tpr1 = 0xa090
dram_tpr2 = 0x22a00
dram_tpr3 = 0x0
dram_emr1 = 0x4
dram_emr2 = 0x10
dram_emr3 = 0x0
mfxdlyphase=36phase=54phase=72phase=90phase=108phase=126
0x070x0733330x0722220x0711110x0700000x07EEEE0x07DDDD
0x060x0633330x0622220x0611110x0600000x06EEEE0x06DDDD
0x050x0533330x0522220x0511110x0500000x05EEEE0x05DDDD
0x040x0433330x0422220x0411110x0400000x04EEEE0x04DDDD
0x030x0333330x0322220x0311110x0300000x03EEEE0x03DDDD
0x020x0233330x0222220x0211110x0200000x02EEEE0x02DDDD
0x010x0133330x0122220x0111110x0100000x01EEEE0x01DDDD
0x000x0033330x0022220x0011110x0000000x00EEEE0x00DDDD
0x080x0833330x0822220x0811110x0800000x08EEEE0x08DDDD
0x100x1033330x1022220x1011110x1000000x10EEEE0x10DDDD
0x180x1833330x1822220x1811110x1800000x18EEEE0x18DDDD
0x200x2033330x2022220x2011110x2000000x20EEEE0x20DDDD
0x280x2833330x2822220x2811110x2800000x28EEEE0x28DDDD
0x300x3033330x3022220x3011110x3000000x30EEEE0x30DDDD
0x380x3833330x3822220x3811110x3800000x38EEEE0x38DDDD
Lane phase adjustments: [0, 0, 0, 0]

Error statistics from memtester: [solidbits=15, bitspread=8, bitflip=7]

Best number of successful memtester runs, which span over 1 columns (0-0): 150
Best number of successful memtester runs, which span over 2 columns (0-1): 261
Best number of successful memtester runs, which span over 3 columns (0-2): 386
Best number of successful memtester runs, which span over 4 columns (0-3): 502
Best number of successful memtester runs, which span over 5 columns (0-4): 613
Best number of successful memtester runs, which span over 6 columns (0-5): 626

Errors per lane: [7, 19, 11, 9]. Lane 2 is the most noisy/problematic.

Errors from the lane 0 are not intersecting with the errors from the worst line 2.
Errors from the lane 1 are not intersecting with the errors from the worst line 2.
Errors from the lane 3 are 100.0% eclipsed by the worst lane 2.

Mele A2000, dram_clk=480MHz, dcdc3_vol=1.25V

dcdc3_vol = 1250
dram_clk = 480
dram_type = 3
dram_rank_num = 1
dram_chip_density = 2048
dram_io_width = 16
dram_bus_width = 32
dram_cas = 9
dram_zq = 0x7f
dram_odt_en = 0
dram_tpr0 = 0x42d899b7
dram_tpr1 = 0xa090
dram_tpr2 = 0x22a00
dram_tpr3 = 0x0
dram_emr1 = 0x4
dram_emr2 = 0x10
dram_emr3 = 0x0
mfxdlyphase=36phase=54phase=72phase=90phase=108phase=126
0x070x0733330x0722220x0711110x0700000x07EEEE0x07DDDD
0x060x0633330x0622220x0611110x0600000x06EEEE0x06DDDD
0x050x0533330x0522220x0511110x0500000x05EEEE0x05DDDD
0x040x0433330x0422220x0411110x0400000x04EEEE0x04DDDD
0x030x0333330x0322220x0311110x0300000x03EEEE0x03DDDD
0x020x0233330x0222220x0211110x0200000x02EEEE0x02DDDD
0x010x0133330x0122220x0111110x0100000x01EEEE0x01DDDD
0x000x0033330x0022220x0011110x0000000x00EEEE0x00DDDD
0x080x0833330x0822220x0811110x0800000x08EEEE0x08DDDD
0x100x1033330x1022220x1011110x1000000x10EEEE0x10DDDD
0x180x1833330x1822220x1811110x1800000x18EEEE0x18DDDD
0x200x2033330x2022220x2011110x2000000x20EEEE0x20DDDD
0x280x2833330x2822220x2811110x2800000x28EEEE0x28DDDD
0x300x3033330x3022220x3011110x3000000x30EEEE0x30DDDD
0x380x3833330x3822220x3811110x3800000x38EEEE0x38DDDD
Lane phase adjustments: [0, 0, 0, 0]

Error statistics from memtester: [solidbits=30, bitflip=23, bitspread=5, xor=1, sub=1]

Best number of successful memtester runs, which span over 1 columns (0-0): 85
Best number of successful memtester runs, which span over 2 columns (0-1): 144
Best number of successful memtester runs, which span over 3 columns (0-2): 206
Best number of successful memtester runs, which span over 4 columns (0-3): 267
Best number of successful memtester runs, which span over 5 columns (0-4): 311
Best number of successful memtester runs, which span over 6 columns (0-5): 321

Errors per lane: [7, 38, 21, 20]. Lane 2 is the most noisy/problematic.

Errors from the lane 0 are not intersecting with the errors from the worst line 2.
Errors from the lane 1 are not intersecting with the errors from the worst line 2.
Errors from the lane 3 are 85.7% eclipsed by the worst lane 2.