1
- // SPDX-License-Identifier: GPL-2.0+
2
1
/*
3
- * Copyright 2018-2019 NXP
2
+ * Copyright 2019 NXP
3
+ *
4
+ * SPDX-License-Identifier: GPL-2.0+
4
5
*
5
6
* Generated code from MX8M_DDR_tool
7
+ *
8
+ * Align with uboot version:
9
+ * imx_v2019.04_5.4.x and above version
10
+ * For imx_v2018.03_4.14.78_1.0.0_ga ~ imx_v2018.04_4.19.35_1.1.0_ga:
11
+ * please replace #include <asm/arch/ddr.h> with #include <asm/arch/imx8m_ddr.h>
6
12
*/
7
13
8
14
#include <linux/kernel.h>
9
15
#include <asm/arch/ddr.h>
10
16
11
17
struct dram_cfg_param ddr_ddrc_cfg [] = {
12
- /* Initialize DDRC registers */
18
+ /** Initialize DDRC registers * */
13
19
{ 0x3d400304 , 0x1 },
14
20
{ 0x3d400030 , 0x1 },
15
21
{ 0x3d400000 , 0xa1080020 },
16
- { 0x3d400020 , 0x223 },
17
- { 0x3d400024 , 0x16e3600 },
18
- { 0x3d400064 , 0x5b00d2 },
22
+ { 0x3d400020 , 0x203 },
23
+ { 0x3d400024 , 0x3a980 },
24
+ { 0x3d400064 , 0x5b0087 },
19
25
{ 0x3d4000d0 , 0xc00305ba },
20
26
{ 0x3d4000d4 , 0x940000 },
21
27
{ 0x3d4000dc , 0xd4002d },
22
- { 0x3d4000e0 , 0x310000 },
28
+ { 0x3d4000e0 , 0xf10000 },
23
29
{ 0x3d4000e8 , 0x66004d },
24
30
{ 0x3d4000ec , 0x16004d },
25
31
{ 0x3d400100 , 0x191e1920 },
26
32
{ 0x3d400104 , 0x60630 },
27
- { 0x3d40010c , 0xb0b000 },
33
+ { 0x3d40010c , 0x80b000 },
28
34
{ 0x3d400110 , 0xe04080e },
29
35
{ 0x3d400114 , 0x2040c0c },
30
36
{ 0x3d400118 , 0x1010007 },
31
37
{ 0x3d40011c , 0x401 },
32
38
{ 0x3d400130 , 0x20600 },
33
39
{ 0x3d400134 , 0xc100002 },
34
- { 0x3d400138 , 0xd8 },
40
+ { 0x3d400138 , 0x8d },
35
41
{ 0x3d400144 , 0x96004b },
36
42
{ 0x3d400180 , 0x2ee0017 },
37
43
{ 0x3d400184 , 0x2605b8e },
38
44
{ 0x3d400188 , 0x0 },
39
- { 0x3d400190 , 0x497820a },
45
+ { 0x3d400190 , 0x49b820a },
40
46
{ 0x3d400194 , 0x80303 },
41
- { 0x3d4001b4 , 0x170a },
47
+ { 0x3d4001b4 , 0x1b0a },
42
48
{ 0x3d4001a0 , 0xe0400018 },
43
49
{ 0x3d4001a4 , 0xdf00e4 },
44
50
{ 0x3d4001a8 , 0x80000000 },
45
51
{ 0x3d4001b0 , 0x11 },
46
- { 0x3d4001c0 , 0x1 },
47
- { 0x3d4001c4 , 0x0 },
52
+ { 0x3d4001c0 , 0x7 },
53
+ { 0x3d4001c4 , 0x1 },
48
54
{ 0x3d4000f4 , 0xc99 },
49
- { 0x3d400108 , 0x70e1617 },
55
+ { 0x3d400108 , 0x7101817 },
50
56
{ 0x3d400200 , 0x1f },
51
57
{ 0x3d40020c , 0x0 },
52
58
{ 0x3d400210 , 0x1f1f },
53
59
{ 0x3d400204 , 0x80808 },
54
60
{ 0x3d400214 , 0x7070707 },
55
61
{ 0x3d400218 , 0x7070707 },
56
-
57
- /* performance setting */
62
+ { 0x3d40021c , 0xf0f },
58
63
{ 0x3d400250 , 0x29001701 },
59
64
{ 0x3d400254 , 0x2c },
60
65
{ 0x3d40025c , 0x4000030 },
@@ -66,14 +71,12 @@ struct dram_cfg_param ddr_ddrc_cfg[] = {
66
71
{ 0x3d400498 , 0x620096 },
67
72
{ 0x3d40049c , 0x1100e07 },
68
73
{ 0x3d4004a0 , 0xc8012c },
69
-
70
- /* P1: 400mts */
71
- { 0x3d402020 , 0x21 },
72
- { 0x3d402024 , 0x30d400 },
74
+ { 0x3d402020 , 0x1 },
75
+ { 0x3d402024 , 0x7d00 },
73
76
{ 0x3d402050 , 0x20d040 },
74
- { 0x3d402064 , 0xc001c },
77
+ { 0x3d402064 , 0xc0012 },
75
78
{ 0x3d4020dc , 0x840000 },
76
- { 0x3d4020e0 , 0x310000 },
79
+ { 0x3d4020e0 , 0xf10000 },
77
80
{ 0x3d4020e8 , 0x66004d },
78
81
{ 0x3d4020ec , 0x16004d },
79
82
{ 0x3d402100 , 0xa040305 },
@@ -86,20 +89,19 @@ struct dram_cfg_param ddr_ddrc_cfg[] = {
86
89
{ 0x3d40211c , 0x301 },
87
90
{ 0x3d402130 , 0x20300 },
88
91
{ 0x3d402134 , 0xa100002 },
89
- { 0x3d402138 , 0x1d },
92
+ { 0x3d402138 , 0x13 },
90
93
{ 0x3d402144 , 0x14000a },
91
94
{ 0x3d402180 , 0x640004 },
92
95
{ 0x3d402190 , 0x3818200 },
93
96
{ 0x3d402194 , 0x80303 },
94
97
{ 0x3d4021b4 , 0x100 },
95
-
96
- /* p2: 100mts */
97
- { 0x3d403020 , 0x21 },
98
- { 0x3d403024 , 0xc3500 },
98
+ { 0x3d4020f4 , 0xc99 },
99
+ { 0x3d403020 , 0x1 },
100
+ { 0x3d403024 , 0x1f40 },
99
101
{ 0x3d403050 , 0x20d040 },
100
- { 0x3d403064 , 0x30007 },
102
+ { 0x3d403064 , 0x30005 },
101
103
{ 0x3d4030dc , 0x840000 },
102
- { 0x3d4030e0 , 0x310000 },
104
+ { 0x3d4030e0 , 0xf10000 },
103
105
{ 0x3d4030e8 , 0x66004d },
104
106
{ 0x3d4030ec , 0x16004d },
105
107
{ 0x3d403100 , 0xa010102 },
@@ -112,14 +114,13 @@ struct dram_cfg_param ddr_ddrc_cfg[] = {
112
114
{ 0x3d40311c , 0x301 },
113
115
{ 0x3d403130 , 0x20300 },
114
116
{ 0x3d403134 , 0xa100002 },
115
- { 0x3d403138 , 0x8 },
117
+ { 0x3d403138 , 0x5 },
116
118
{ 0x3d403144 , 0x50003 },
117
119
{ 0x3d403180 , 0x190004 },
118
120
{ 0x3d403190 , 0x3818200 },
119
121
{ 0x3d403194 , 0x80303 },
120
122
{ 0x3d4031b4 , 0x100 },
121
-
122
- /* default boot point */
123
+ { 0x3d4030f4 , 0xc99 },
123
124
{ 0x3d400028 , 0x0 },
124
125
};
125
126
@@ -135,20 +136,20 @@ struct dram_cfg_param ddr_ddrphy_cfg[] = {
135
136
{ 0x100a7 , 0x7 },
136
137
{ 0x110a0 , 0x0 },
137
138
{ 0x110a1 , 0x1 },
138
- { 0x110a2 , 0x3 },
139
- { 0x110a3 , 0x4 },
140
- { 0x110a4 , 0x5 },
141
- { 0x110a5 , 0x2 },
142
- { 0x110a6 , 0x7 },
143
- { 0x110a7 , 0x6 },
139
+ { 0x110a2 , 0x2 },
140
+ { 0x110a3 , 0x3 },
141
+ { 0x110a4 , 0x4 },
142
+ { 0x110a5 , 0x5 },
143
+ { 0x110a6 , 0x6 },
144
+ { 0x110a7 , 0x7 },
144
145
{ 0x120a0 , 0x0 },
145
146
{ 0x120a1 , 0x1 },
146
- { 0x120a2 , 0x3 },
147
- { 0x120a3 , 0x2 },
148
- { 0x120a4 , 0x5 },
149
- { 0x120a5 , 0x4 },
150
- { 0x120a6 , 0x7 },
151
- { 0x120a7 , 0x6 },
147
+ { 0x120a2 , 0x2 },
148
+ { 0x120a3 , 0x3 },
149
+ { 0x120a4 , 0x4 },
150
+ { 0x120a5 , 0x5 },
151
+ { 0x120a6 , 0x6 },
152
+ { 0x120a7 , 0x7 },
152
153
{ 0x130a0 , 0x0 },
153
154
{ 0x130a1 , 0x1 },
154
155
{ 0x130a2 , 0x2 },
@@ -207,8 +208,8 @@ struct dram_cfg_param ddr_ddrphy_cfg[] = {
207
208
{ 0x220024 , 0x1ab },
208
209
{ 0x2003a , 0x0 },
209
210
{ 0x20056 , 0x3 },
210
- { 0x120056 , 0xa },
211
- { 0x220056 , 0xa },
211
+ { 0x120056 , 0x3 },
212
+ { 0x220056 , 0x3 },
212
213
{ 0x1004d , 0xe00 },
213
214
{ 0x1014d , 0xe00 },
214
215
{ 0x1104d , 0xe00 },
@@ -316,9 +317,9 @@ struct dram_cfg_param ddr_ddrphy_cfg[] = {
316
317
{ 0x200f6 , 0x0 },
317
318
{ 0x200f7 , 0xf000 },
318
319
{ 0x20025 , 0x0 },
319
- { 0x2002d , 0x0 },
320
- { 0x12002d , 0x0 },
321
- { 0x22002d , 0x0 },
320
+ { 0x2002d , 0x1 },
321
+ { 0x12002d , 0x1 },
322
+ { 0x22002d , 0x1 },
322
323
{ 0x200c7 , 0x21 },
323
324
{ 0x1200c7 , 0x21 },
324
325
{ 0x2200c7 , 0x21 },
@@ -1061,32 +1062,33 @@ struct dram_cfg_param ddr_fsp0_cfg[] = {
1061
1062
{ 0x5400b , 0x2 },
1062
1063
{ 0x54012 , 0x110 },
1063
1064
{ 0x54019 , 0x2dd4 },
1064
- { 0x5401a , 0x31 },
1065
+ { 0x5401a , 0xf1 },
1065
1066
{ 0x5401b , 0x4d66 },
1066
1067
{ 0x5401c , 0x4d00 },
1067
1068
{ 0x5401e , 0x16 },
1068
1069
{ 0x5401f , 0x2dd4 },
1069
- { 0x54020 , 0x31 },
1070
+ { 0x54020 , 0xf1 },
1070
1071
{ 0x54021 , 0x4d66 },
1071
1072
{ 0x54022 , 0x4d00 },
1072
1073
{ 0x54024 , 0x16 },
1073
1074
{ 0x5402b , 0x1000 },
1074
1075
{ 0x5402c , 0x1 },
1075
1076
{ 0x54032 , 0xd400 },
1076
- { 0x54033 , 0x312d },
1077
+ { 0x54033 , 0xf12d },
1077
1078
{ 0x54034 , 0x6600 },
1078
1079
{ 0x54035 , 0x4d },
1079
1080
{ 0x54036 , 0x4d },
1080
1081
{ 0x54037 , 0x1600 },
1081
1082
{ 0x54038 , 0xd400 },
1082
- { 0x54039 , 0x312d },
1083
+ { 0x54039 , 0xf12d },
1083
1084
{ 0x5403a , 0x6600 },
1084
1085
{ 0x5403b , 0x4d },
1085
1086
{ 0x5403c , 0x4d },
1086
1087
{ 0x5403d , 0x1600 },
1087
1088
{ 0xd0000 , 0x1 },
1088
1089
};
1089
1090
1091
+
1090
1092
/* P1 message block paremeter for training firmware */
1091
1093
struct dram_cfg_param ddr_fsp1_cfg [] = {
1092
1094
{ 0xd0000 , 0x0 },
@@ -1100,32 +1102,33 @@ struct dram_cfg_param ddr_fsp1_cfg[] = {
1100
1102
{ 0x5400b , 0x2 },
1101
1103
{ 0x54012 , 0x110 },
1102
1104
{ 0x54019 , 0x84 },
1103
- { 0x5401a , 0x31 },
1105
+ { 0x5401a , 0xf1 },
1104
1106
{ 0x5401b , 0x4d66 },
1105
1107
{ 0x5401c , 0x4d00 },
1106
1108
{ 0x5401e , 0x16 },
1107
1109
{ 0x5401f , 0x84 },
1108
- { 0x54020 , 0x31 },
1110
+ { 0x54020 , 0xf1 },
1109
1111
{ 0x54021 , 0x4d66 },
1110
1112
{ 0x54022 , 0x4d00 },
1111
1113
{ 0x54024 , 0x16 },
1112
1114
{ 0x5402b , 0x1000 },
1113
1115
{ 0x5402c , 0x1 },
1114
1116
{ 0x54032 , 0x8400 },
1115
- { 0x54033 , 0x3100 },
1117
+ { 0x54033 , 0xf100 },
1116
1118
{ 0x54034 , 0x6600 },
1117
1119
{ 0x54035 , 0x4d },
1118
1120
{ 0x54036 , 0x4d },
1119
1121
{ 0x54037 , 0x1600 },
1120
1122
{ 0x54038 , 0x8400 },
1121
- { 0x54039 , 0x3100 },
1123
+ { 0x54039 , 0xf100 },
1122
1124
{ 0x5403a , 0x6600 },
1123
1125
{ 0x5403b , 0x4d },
1124
1126
{ 0x5403c , 0x4d },
1125
1127
{ 0x5403d , 0x1600 },
1126
1128
{ 0xd0000 , 0x1 },
1127
1129
};
1128
1130
1131
+
1129
1132
/* P2 message block paremeter for training firmware */
1130
1133
struct dram_cfg_param ddr_fsp2_cfg [] = {
1131
1134
{ 0xd0000 , 0x0 },
@@ -1139,32 +1142,33 @@ struct dram_cfg_param ddr_fsp2_cfg[] = {
1139
1142
{ 0x5400b , 0x2 },
1140
1143
{ 0x54012 , 0x110 },
1141
1144
{ 0x54019 , 0x84 },
1142
- { 0x5401a , 0x31 },
1145
+ { 0x5401a , 0xf1 },
1143
1146
{ 0x5401b , 0x4d66 },
1144
1147
{ 0x5401c , 0x4d00 },
1145
1148
{ 0x5401e , 0x16 },
1146
1149
{ 0x5401f , 0x84 },
1147
- { 0x54020 , 0x31 },
1150
+ { 0x54020 , 0xf1 },
1148
1151
{ 0x54021 , 0x4d66 },
1149
1152
{ 0x54022 , 0x4d00 },
1150
1153
{ 0x54024 , 0x16 },
1151
1154
{ 0x5402b , 0x1000 },
1152
1155
{ 0x5402c , 0x1 },
1153
1156
{ 0x54032 , 0x8400 },
1154
- { 0x54033 , 0x3100 },
1157
+ { 0x54033 , 0xf100 },
1155
1158
{ 0x54034 , 0x6600 },
1156
1159
{ 0x54035 , 0x4d },
1157
1160
{ 0x54036 , 0x4d },
1158
1161
{ 0x54037 , 0x1600 },
1159
1162
{ 0x54038 , 0x8400 },
1160
- { 0x54039 , 0x3100 },
1163
+ { 0x54039 , 0xf100 },
1161
1164
{ 0x5403a , 0x6600 },
1162
1165
{ 0x5403b , 0x4d },
1163
1166
{ 0x5403c , 0x4d },
1164
1167
{ 0x5403d , 0x1600 },
1165
1168
{ 0xd0000 , 0x1 },
1166
1169
};
1167
1170
1171
+
1168
1172
/* P0 2D message block paremeter for training firmware */
1169
1173
struct dram_cfg_param ddr_fsp0_2d_cfg [] = {
1170
1174
{ 0xd0000 , 0x0 },
@@ -1179,25 +1183,25 @@ struct dram_cfg_param ddr_fsp0_2d_cfg[] = {
1179
1183
{ 0x54010 , 0x1f7f },
1180
1184
{ 0x54012 , 0x110 },
1181
1185
{ 0x54019 , 0x2dd4 },
1182
- { 0x5401a , 0x31 },
1186
+ { 0x5401a , 0xf1 },
1183
1187
{ 0x5401b , 0x4d66 },
1184
1188
{ 0x5401c , 0x4d00 },
1185
1189
{ 0x5401e , 0x16 },
1186
1190
{ 0x5401f , 0x2dd4 },
1187
- { 0x54020 , 0x31 },
1191
+ { 0x54020 , 0xf1 },
1188
1192
{ 0x54021 , 0x4d66 },
1189
1193
{ 0x54022 , 0x4d00 },
1190
1194
{ 0x54024 , 0x16 },
1191
1195
{ 0x5402b , 0x1000 },
1192
1196
{ 0x5402c , 0x1 },
1193
1197
{ 0x54032 , 0xd400 },
1194
- { 0x54033 , 0x312d },
1198
+ { 0x54033 , 0xf12d },
1195
1199
{ 0x54034 , 0x6600 },
1196
1200
{ 0x54035 , 0x4d },
1197
1201
{ 0x54036 , 0x4d },
1198
1202
{ 0x54037 , 0x1600 },
1199
1203
{ 0x54038 , 0xd400 },
1200
- { 0x54039 , 0x312d },
1204
+ { 0x54039 , 0xf12d },
1201
1205
{ 0x5403a , 0x6600 },
1202
1206
{ 0x5403b , 0x4d },
1203
1207
{ 0x5403c , 0x4d },
@@ -1695,15 +1699,15 @@ struct dram_cfg_param ddr_phy_pie[] = {
1695
1699
{ 0x400d6 , 0x20a },
1696
1700
{ 0x400d7 , 0x20b },
1697
1701
{ 0x2003a , 0x2 },
1698
- { 0x2000b , 0x5d },
1702
+ { 0x2000b , 0x34b },
1699
1703
{ 0x2000c , 0xbb },
1700
1704
{ 0x2000d , 0x753 },
1701
1705
{ 0x2000e , 0x2c },
1702
- { 0x12000b , 0xc },
1706
+ { 0x12000b , 0x70 },
1703
1707
{ 0x12000c , 0x19 },
1704
1708
{ 0x12000d , 0xfa },
1705
1709
{ 0x12000e , 0x10 },
1706
- { 0x22000b , 0x3 },
1710
+ { 0x22000b , 0x1c },
1707
1711
{ 0x22000c , 0x6 },
1708
1712
{ 0x22000d , 0x3e },
1709
1713
{ 0x22000e , 0x10 },
@@ -1846,3 +1850,4 @@ struct dram_timing_info dram_timing = {
1846
1850
.ddrphy_pie_num = ARRAY_SIZE (ddr_phy_pie ),
1847
1851
.fsp_table = { 3000 , 400 , 100 , },
1848
1852
};
1853
+
0 commit comments