Hi,
we have a i.MX93 board with 1GiB of LPDDR4X RAM.
Previously we created lpddr4x_timing.c file with DDR Tool v3.1.0_7.4.
However recently we updated the tools and created lpddr4x_timing.c file with DDR Tool v3.3.0_7.8-d1cdb7d3 DDR PHY FW2022.01.
We compared files and noticed that files differ.
Here is a diff:
#include <linux/kernel.h>
@@ -18,7 +18,7 @@
{0x4e300080, 0x80000412},
{0x4e300084, 0x0},
{0x4e300114, 0x1002},
- {0x4e300260, 0x80},
+ {0x4e300260, 0x4080},
{0x4e300f04, 0x80},
{0x4e300800, 0x43b30002},
{0x4e300804, 0x1f1f1f1f},
@@ -37,9 +37,9 @@
static struct dram_fsp_cfg ddr_dram_fsp_cfg[] = {
{
{
- {0x4e300100, 0x24A0321B},
+ {0x4e300100, 0x24A0421B},
{0x4e300104, 0xF8EE001B},
- {0x4e300108, 0x2F2E3233},
+ {0x4e300108, 0x2F263233},
{0x4e30010C, 0x0005C18B},
{0x4e300124, 0x1C790000},
{0x4e300160, 0x00009102},
@@ -49,17 +49,17 @@
{0x4e300254, 0x00FE00FE},
{0x4e300258, 0x00000008},
{0x4e30025C, 0x00000400},
- {0x4e300300, 0x224F2213},
+ {0x4e300300, 0x224F2215},
{0x4e300304, 0x00FE2213},
{0x4e300308, 0x0A380E3D},
},
{
{0x01, 0xE4},
{0x02, 0x36},
- {0x03, 0x22},
+ {0x03, 0xE2},
{0x0b, 0x44},
- {0x0c, 0x1E},
- {0x0e, 0x12},
+ {0x0c, 0x1F},
+ {0x0e, 0x11},
{0x16, 0x04},
},
0,
@@ -68,7 +68,7 @@
{
{0x4e300100, 0x124F2100},
{0x4e300104, 0xF877000E},
- {0x4e300108, 0x1816E4AA},
+ {0x4e300108, 0x181AE4AA},
{0x4e30010C, 0x005101E6},
{0x4e300124, 0x0E3C0000},
{0x4e300160, 0x00009101},
@@ -82,10 +82,10 @@
{
{0x01, 0xB4},
{0x02, 0x1B},
- {0x03, 0x22},
+ {0x03, 0xE2},
{0x0b, 0x44},
- {0x0c, 0x1E},
- {0x0e, 0x12},
+ {0x0c, 0x1F},
+ {0x0e, 0x11},
{0x16, 0x04},
},
0,
@@ -94,7 +94,7 @@
{
{0x4e300100, 0x00051000},
{0x4e300104, 0xF855000A},
- {0x4e300108, 0x6E620A48},
+ {0x4e300108, 0x6E660A48},
{0x4e30010C, 0x0031010D},
{0x4e300124, 0x04C50000},
{0x4e300160, 0x00009100},
@@ -108,10 +108,10 @@
{
{0x01, 0x94},
{0x02, 0x9},
- {0x03, 0x22},
+ {0x03, 0xE2},
{0x0b, 0x44},
- {0x0c, 0x1E},
- {0x0e, 0x12},
+ {0x0c, 0x1F},
+ {0x0e, 0x11},
{0x16, 0x04},
},
1,
@@ -211,17 +211,17 @@
{0x120008, 0x1d3},
{0x220008, 0x9c},
{0x20088, 0x9},
- {0x200b2, 0x104},
+ {0x200b2, 0x10c},
{0x10043, 0x5a1},
{0x10143, 0x5a1},
{0x11043, 0x5a1},
{0x11143, 0x5a1},
- {0x1200b2, 0x104},
+ {0x1200b2, 0x10c},
{0x110043, 0x5a1},
{0x110143, 0x5a1},
{0x111043, 0x5a1},
{0x111143, 0x5a1},
- {0x2200b2, 0x104},
+ {0x2200b2, 0x10c},
{0x210043, 0x5a1},
{0x210143, 0x5a1},
{0x211043, 0x5a1},
@@ -240,10 +240,8 @@
{0x200f5, 0x0},
{0x200f6, 0x0},
{0x200f7, 0xf000},
- {0x1004a, 0x500},
- {0x1104a, 0x500},
{0x20025, 0x0},
- {0x2002d, 0x0},
+ {0x2002d, 0x1},
{0x12002d, 0x0},
{0x22002d, 0x0},
{0x2002c, 0x0},
@@ -357,8 +355,6 @@
{0x200f5, 0x0},
{0x200f6, 0x0},
{0x200f7, 0x0},
- {0x1004a, 0x0},
- {0x1104a, 0x0},
{0x20025, 0x0},
{0x2002d, 0x0},
{0x12002d, 0x0},
@@ -1239,7 +1235,7 @@
{0xd0000, 0x0},
{0x54003, 0xe94},
{0x54004, 0x4},
- {0x54006, 0x14},
+ {0x54006, 0x15},
{0x54008, 0x131f},
{0x54009, 0xc8},
{0x5400b, 0x4},
@@ -1247,26 +1243,26 @@
{0x5400f, 0x100},
{0x54012, 0x110},
{0x54019, 0x36e4},
- {0x5401a, 0x22},
- {0x5401b, 0x1e44},
- {0x5401c, 0x1208},
+ {0x5401a, 0xe2},
+ {0x5401b, 0x1f44},
+ {0x5401c, 0x1108},
{0x5401e, 0x4},
{0x5401f, 0x36e4},
- {0x54020, 0x22},
- {0x54021, 0x1e44},
- {0x54022, 0x1208},
+ {0x54020, 0xe2},
+ {0x54021, 0x1f44},
+ {0x54022, 0x1108},
{0x54024, 0x4},
{0x54032, 0xe400},
- {0x54033, 0x2236},
+ {0x54033, 0xe236},
{0x54034, 0x4400},
- {0x54035, 0x81e},
- {0x54036, 0x12},
+ {0x54035, 0x81f},
+ {0x54036, 0x11},
{0x54037, 0x400},
{0x54038, 0xe400},
- {0x54039, 0x2236},
+ {0x54039, 0xe236},
{0x5403a, 0x4400},
- {0x5403b, 0x81e},
- {0x5403c, 0x12},
+ {0x5403b, 0x81f},
+ {0x5403c, 0x11},
{0x5403d, 0x400},
{0xd0000, 0x1}
};
@@ -1277,7 +1273,7 @@
{0x54002, 0x1},
{0x54003, 0x74a},
{0x54004, 0x4},
- {0x54006, 0x14},
+ {0x54006, 0x15},
{0x54008, 0x121f},
{0x54009, 0xc8},
{0x5400b, 0x4},
@@ -1285,26 +1281,26 @@
{0x5400f, 0x100},
{0x54012, 0x110},
{0x54019, 0x1bb4},
- {0x5401a, 0x22},
- {0x5401b, 0x1e44},
- {0x5401c, 0x1208},
+ {0x5401a, 0xe2},
+ {0x5401b, 0x1f44},
+ {0x5401c, 0x1108},
{0x5401e, 0x4},
{0x5401f, 0x1bb4},
- {0x54020, 0x22},
- {0x54021, 0x1e44},
- {0x54022, 0x1208},
+ {0x54020, 0xe2},
+ {0x54021, 0x1f44},
+ {0x54022, 0x1108},
{0x54024, 0x4},
{0x54032, 0xb400},
- {0x54033, 0x221b},
+ {0x54033, 0xe21b},
{0x54034, 0x4400},
- {0x54035, 0x81e},
- {0x54036, 0x12},
+ {0x54035, 0x81f},
+ {0x54036, 0x11},
{0x54037, 0x400},
{0x54038, 0xb400},
- {0x54039, 0x221b},
+ {0x54039, 0xe21b},
{0x5403a, 0x4400},
- {0x5403b, 0x81e},
- {0x5403c, 0x12},
+ {0x5403b, 0x81f},
+ {0x5403c, 0x11},
{0x5403d, 0x400},
{0xd0000, 0x1}
};
@@ -1315,7 +1311,7 @@
{0x54002, 0x102},
{0x54003, 0x270},
{0x54004, 0x4},
- {0x54006, 0x14},
+ {0x54006, 0x15},
{0x54008, 0x121f},
{0x54009, 0xc8},
{0x5400b, 0x4},
@@ -1323,26 +1319,26 @@
{0x5400f, 0x100},
{0x54012, 0x110},
{0x54019, 0x994},
- {0x5401a, 0x22},
- {0x5401b, 0x1e44},
- {0x5401c, 0x1200},
+ {0x5401a, 0xe2},
+ {0x5401b, 0x1f44},
+ {0x5401c, 0x1100},
{0x5401e, 0x4},
{0x5401f, 0x994},
- {0x54020, 0x22},
- {0x54021, 0x1e44},
- {0x54022, 0x1200},
+ {0x54020, 0xe2},
+ {0x54021, 0x1f44},
+ {0x54022, 0x1100},
{0x54024, 0x4},
{0x54032, 0x9400},
- {0x54033, 0x2209},
+ {0x54033, 0xe209},
{0x54034, 0x4400},
- {0x54035, 0x1e},
- {0x54036, 0x12},
+ {0x54035, 0x1f},
+ {0x54036, 0x11},
{0x54037, 0x400},
{0x54038, 0x9400},
- {0x54039, 0x2209},
+ {0x54039, 0xe209},
{0x5403a, 0x4400},
- {0x5403b, 0x1e},
- {0x5403c, 0x12},
+ {0x5403b, 0x1f},
+ {0x5403c, 0x11},
{0x5403d, 0x400},
{0xd0000, 0x1}
};
@@ -1353,7 +1349,7 @@
{0xd0000, 0x0},
{0x54003, 0xe94},
{0x54004, 0x4},
- {0x54006, 0x14} {0x54006, 0x15},
{0x54008, 0x61},
{0x54009, 0xc8},
{0x5400b, 0x4},
@@ -1362,26 +1358,26 @@
{0x54010, 0x2080},
{0x54012, 0x110},
{0x54019, 0x36e4},
- {0x5401a, 0x22},
- {0x5401b, 0x1e44},
- {0x5401c, 0x1208},
+ {0x5401a, 0xe2},
+ {0x5401b, 0x1f44},
+ {0x5401c, 0x1108},
{0x5401e, 0x4},
{0x5401f, 0x36e4},
- {0x54020, 0x22},
- {0x54021, 0x1e44},
- {0x54022, 0x1208},
+ {0x54020, 0xe2},
+ {0x54021, 0x1f44},
+ {0x54022, 0x1108},
{0x54024, 0x4},
{0x54032, 0xe400},
- {0x54033, 0x2236},
+ {0x54033, 0xe236},
{0x54034, 0x4400},
- {0x54035, 0x81e},
- {0x54036, 0x12},
+ {0x54035, 0x81f},
+ {0x54036, 0x11},
{0x54037, 0x400},
{0x54038, 0xe400},
- {0x54039, 0x2236},
+ {0x54039, 0xe236},
{0x5403a, 0x4400},
- {0x5403b, 0x81e},
- {0x5403c, 0x12},
+ {0x5403b, 0x81f},
+ {0x5403c, 0x11},
{0x5403d, 0x400},
{0xd0000, 0x1}
};
@@ -1997,69 +1993,3 @@
.fsp_cfg_num = ARRAY_SIZE(ddr_dram_fsp_cfg),
};
Due to changes, our internal policy requires us to re-run climate chamber test when DDR configuration changes. This takes a lof of effort so we would like to avoid it if possible.
Questions:
1) Is there any changelog for DDR Tool to see what has changed between versions?
2) Where can we refer in documentation for register addresses and values?
3) Do you recommend updating to newly generated DDR timing? Where there any bugfixes / improvements?
Thanks for your answers,
BR,
Primoz