xref: /rk3399_rockchip-uboot/board/seco/mx6quq7/mx6quq7-2g.cfg (revision b491d9757d14415edcb1468ed896a704d0f0cfe7)
1*058d2316SBoris BREZILLON/*
2*058d2316SBoris BREZILLON * Copyright (C) 2013 Seco USA Inc
3*058d2316SBoris BREZILLON *
4*058d2316SBoris BREZILLON * SPDX-License-Identifier:     GPL-2.0
5*058d2316SBoris BREZILLON *
6*058d2316SBoris BREZILLON * Refer doc/README.imximage for more details about how-to configure
7*058d2316SBoris BREZILLON * and create imximage boot image
8*058d2316SBoris BREZILLON *
9*058d2316SBoris BREZILLON * The syntax is taken as close as possible with the kwbimage
10*058d2316SBoris BREZILLON */
11*058d2316SBoris BREZILLON
12*058d2316SBoris BREZILLON/* image version */
13*058d2316SBoris BREZILLONIMAGE_VERSION	2
14*058d2316SBoris BREZILLON
15*058d2316SBoris BREZILLON/*
16*058d2316SBoris BREZILLON * Boot Device : one of
17*058d2316SBoris BREZILLON * spi, sd (the board has no nand neither onenand)
18*058d2316SBoris BREZILLON */
19*058d2316SBoris BREZILLONBOOT_FROM	sd
20*058d2316SBoris BREZILLON
21*058d2316SBoris BREZILLON#define __ASSEMBLY__
22*058d2316SBoris BREZILLON#include <config.h>
23*058d2316SBoris BREZILLON#include "asm/arch/mx6-ddr.h"
24*058d2316SBoris BREZILLON#include "asm/arch/iomux.h"
25*058d2316SBoris BREZILLON#include "asm/arch/crm_regs.h"
26*058d2316SBoris BREZILLON
27*058d2316SBoris BREZILLON/* DDR IO TYPE */
28*058d2316SBoris BREZILLONDATA 4, MX6_IOM_GRP_DDRPKE,	0x00000000
29*058d2316SBoris BREZILLONDATA 4, MX6_IOM_GRP_DDR_TYPE,	0x000C0000
30*058d2316SBoris BREZILLON
31*058d2316SBoris BREZILLON/* DATA STROBE */
32*058d2316SBoris BREZILLONDATA 4, MX6_IOM_DDRMODE_CTL,	0x00020000
33*058d2316SBoris BREZILLONDATA 4, MX6_IOM_DRAM_SDQS0,	0x00000028
34*058d2316SBoris BREZILLONDATA 4, MX6_IOM_DRAM_SDQS1,	0x00000028
35*058d2316SBoris BREZILLONDATA 4, MX6_IOM_DRAM_SDQS2,	0x00000028
36*058d2316SBoris BREZILLONDATA 4, MX6_IOM_DRAM_SDQS3,	0x00000028
37*058d2316SBoris BREZILLONDATA 4, MX6_IOM_DRAM_SDQS4,	0x00000028
38*058d2316SBoris BREZILLONDATA 4, MX6_IOM_DRAM_SDQS5,	0x00000028
39*058d2316SBoris BREZILLONDATA 4, MX6_IOM_DRAM_SDQS6,	0x00000028
40*058d2316SBoris BREZILLONDATA 4, MX6_IOM_DRAM_SDQS7,	0x00000028
41*058d2316SBoris BREZILLON
42*058d2316SBoris BREZILLON/* DATA */
43*058d2316SBoris BREZILLONDATA 4, MX6_IOM_GRP_DDRMODE,    0x00020000
44*058d2316SBoris BREZILLONDATA 4, MX6_IOM_GRP_B0DS,	0x00000028
45*058d2316SBoris BREZILLONDATA 4, MX6_IOM_GRP_B1DS,	0x00000028
46*058d2316SBoris BREZILLONDATA 4, MX6_IOM_GRP_B2DS,	0x00000028
47*058d2316SBoris BREZILLONDATA 4, MX6_IOM_GRP_B3DS,	0x00000028
48*058d2316SBoris BREZILLONDATA 4, MX6_IOM_GRP_B4DS,	0x00000028
49*058d2316SBoris BREZILLONDATA 4, MX6_IOM_GRP_B5DS,	0x00000028
50*058d2316SBoris BREZILLONDATA 4, MX6_IOM_GRP_B6DS,	0x00000028
51*058d2316SBoris BREZILLONDATA 4, MX6_IOM_GRP_B7DS,	0x00000028
52*058d2316SBoris BREZILLONDATA 4, MX6_IOM_DRAM_DQM0,      0x00000028
53*058d2316SBoris BREZILLONDATA 4, MX6_IOM_DRAM_DQM1,      0x00000028
54*058d2316SBoris BREZILLONDATA 4, MX6_IOM_DRAM_DQM2,      0x00000028
55*058d2316SBoris BREZILLONDATA 4, MX6_IOM_DRAM_DQM3,      0x00000028
56*058d2316SBoris BREZILLONDATA 4, MX6_IOM_DRAM_DQM4,      0x00000028
57*058d2316SBoris BREZILLONDATA 4, MX6_IOM_DRAM_DQM5,      0x00000028
58*058d2316SBoris BREZILLONDATA 4, MX6_IOM_DRAM_DQM6,      0x00000028
59*058d2316SBoris BREZILLONDATA 4, MX6_IOM_DRAM_DQM7,      0x00000028
60*058d2316SBoris BREZILLON/* ADDRESS */
61*058d2316SBoris BREZILLONDATA 4, MX6_IOM_GRP_ADDDS,	0x00000028
62*058d2316SBoris BREZILLONDATA 4, MX6_IOM_DRAM_CAS,       0x00000028
63*058d2316SBoris BREZILLONDATA 4, MX6_IOM_DRAM_RAS,       0x00000028
64*058d2316SBoris BREZILLON
65*058d2316SBoris BREZILLON/* CONTROL */
66*058d2316SBoris BREZILLONDATA 4, MX6_IOM_GRP_CTLDS,	0x00000030
67*058d2316SBoris BREZILLONDATA 4, MX6_IOM_DRAM_RESET,     0x00000028
68*058d2316SBoris BREZILLONDATA 4, MX6_IOM_DRAM_SDBA2,     0x00000000
69*058d2316SBoris BREZILLONDATA 4, MX6_IOM_DRAM_SDODT0,    0x00000028
70*058d2316SBoris BREZILLONDATA 4, MX6_IOM_DRAM_SDODT1,    0x00000028
71*058d2316SBoris BREZILLON
72*058d2316SBoris BREZILLON/* CLOCK */
73*058d2316SBoris BREZILLONDATA 4, MX6_IOM_DRAM_SDCLK_0,	0x00000028
74*058d2316SBoris BREZILLONDATA 4, MX6_IOM_DRAM_SDCLK_1,	0x00000028
75*058d2316SBoris BREZILLON
76*058d2316SBoris BREZILLON/*
77*058d2316SBoris BREZILLON * DDR3 SETTINGS
78*058d2316SBoris BREZILLON * Read Data Bit Delay
79*058d2316SBoris BREZILLON */
80*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P0_MPRDDQBY0DL,	0x33333333
81*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P0_MPRDDQBY1DL,	0x33333333
82*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P0_MPRDDQBY2DL,	0x33333333
83*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P0_MPRDDQBY3DL,	0x33333333
84*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P1_MPRDDQBY0DL,	0x33333333
85*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P1_MPRDDQBY1DL,	0x33333333
86*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P1_MPRDDQBY2DL,	0x33333333
87*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P1_MPRDDQBY3DL,	0x33333333
88*058d2316SBoris BREZILLON
89*058d2316SBoris BREZILLON
90*058d2316SBoris BREZILLON/* Write Leveling */
91*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P0_MPWLDECTRL0,        0x001F001F
92*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P0_MPWLDECTRL1,        0x001F001F
93*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P1_MPWLDECTRL0,        0x001F0001
94*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P1_MPWLDECTRL1,        0x001F001F
95*058d2316SBoris BREZILLON
96*058d2316SBoris BREZILLON/* DQS gating, read delay, write delay calibration values */
97*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P0_MPDGCTRL0,  0x431A0326
98*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P0_MPDGCTRL1,  0x0323031B
99*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P1_MPDGCTRL0,  0x433F0340
100*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P1_MPDGCTRL1,  0x0345031C
101*058d2316SBoris BREZILLON
102*058d2316SBoris BREZILLON/* Read calibration */
103*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P0_MPRDDLCTL,  0x40343137
104*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P1_MPRDDLCTL,  0x40372F45
105*058d2316SBoris BREZILLON
106*058d2316SBoris BREZILLON/* write calibration */
107*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P0_MPWRDLCTL,  0x32414741
108*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P1_MPWRDLCTL,  0x4731473C
109*058d2316SBoris BREZILLON
110*058d2316SBoris BREZILLON/* Complete calibration by forced measurement: */
111*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P0_MPMUR0,     0x00000800
112*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P1_MPMUR0,     0x00000800
113*058d2316SBoris BREZILLON
114*058d2316SBoris BREZILLON/*
115*058d2316SBoris BREZILLON * MMDC init:
116*058d2316SBoris BREZILLON * in DDR3, 64-bit mode, only MMDC0 is init
117*058d2316SBoris BREZILLON */
118*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P0_MDPDC,	0x00020036
119*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P0_MDOTC,	0x09444040
120*058d2316SBoris BREZILLON
121*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P0_MDCFG0,	0x898E7955
122*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P0_MDCFG1,	0xFF328F64
123*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P0_MDCFG2,	0x01FF00DB
124*058d2316SBoris BREZILLON
125*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P0_MDMISC,	0x00001740
126*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P0_MDSCR,	0x00008000
127*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P0_MDRWD,	0x000026D2
128*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P0_MDOR,       0x008E1023
129*058d2316SBoris BREZILLON
130*058d2316SBoris BREZILLON/* CS0_END = 2304MB in step da 256Mb -> [(2304*8/256) - 1] */
131*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P0_MDASP,	0x00000047
132*058d2316SBoris BREZILLON
133*058d2316SBoris BREZILLON/* SDE_1=0; ROW=3; BL=1; DSIZ=2 -> 64 bit */
134*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P0_MDCTL,	0x841A0000
135*058d2316SBoris BREZILLON
136*058d2316SBoris BREZILLON/* Initialize DDR3 on CS_0 and CS_1 */
137*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P0_MDSCR,	0x02088032
138*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P0_MDSCR,	0x00008033
139*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P0_MDSCR,	0x00048031
140*058d2316SBoris BREZILLON
141*058d2316SBoris BREZILLON/* P0 01c */
142*058d2316SBoris BREZILLON/* write 0x0940 to MR0 bank_0 (Burst Type=1 (Interlived)) */
143*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P0_MDSCR,	0x09408030
144*058d2316SBoris BREZILLON
145*058d2316SBoris BREZILLON/*ZQ - Calibrationi */
146*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P0_MPZQHWCTRL, 0xa1390003
147*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P0_MDSCR,      0x04008040
148*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P0_MDREF,      0x00007800
149*058d2316SBoris BREZILLON
150*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P0_MPODTCTRL,  0x00022227
151*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P1_MPODTCTRL,  0x00022227
152*058d2316SBoris BREZILLON
153*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P0_MDPDC,      0x00025576
154*058d2316SBoris BREZILLON
155*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P0_MAPSR,      0x00011006
156*058d2316SBoris BREZILLONDATA 4, MX6_MMDC_P0_MDSCR,      0x00000000
157*058d2316SBoris BREZILLON
158*058d2316SBoris BREZILLON/* set the default clock gate to save power */
159*058d2316SBoris BREZILLONDATA 4, CCM_CCGR0, 0x00C03F3F
160*058d2316SBoris BREZILLONDATA 4, CCM_CCGR1, 0x0030FC03
161*058d2316SBoris BREZILLONDATA 4, CCM_CCGR2, 0x0FFFC000
162*058d2316SBoris BREZILLONDATA 4, CCM_CCGR3, 0x3FF00000
163*058d2316SBoris BREZILLONDATA 4, CCM_CCGR4, 0x00FFF300
164*058d2316SBoris BREZILLONDATA 4, CCM_CCGR5, 0x0F0000C3
165*058d2316SBoris BREZILLONDATA 4, CCM_CCGR6, 0x000003FF
166*058d2316SBoris BREZILLON
167*058d2316SBoris BREZILLON/* enable AXI cache for VDOA/VPU/IPU */
168*058d2316SBoris BREZILLONDATA 4, MX6_IOMUXC_GPR4, 0xF00000FF
169*058d2316SBoris BREZILLON
170*058d2316SBoris BREZILLON/* set IPU AXI-id0 Qos=0xf(bypass) AXI-id1 Qos=0x7 */
171*058d2316SBoris BREZILLONDATA 4, MX6_IOMUXC_GPR6, 0x007F007F
172*058d2316SBoris BREZILLONDATA 4, MX6_IOMUXC_GPR7, 0x007F007F
173*058d2316SBoris BREZILLON
174