xref: /arm-trusted-firmware/drivers/renesas/common/ddr/ddr_b/boot_init_dram_regdef.h (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu /*
2*91f16700Schasinglulu  * Copyright (c) 2015-2023, Renesas Electronics Corporation.
3*91f16700Schasinglulu  * All rights reserved.
4*91f16700Schasinglulu  *
5*91f16700Schasinglulu  * SPDX-License-Identifier: BSD-3-Clause
6*91f16700Schasinglulu  */
7*91f16700Schasinglulu 
8*91f16700Schasinglulu #define RCAR_DDR_VERSION	"rev.0.42"
9*91f16700Schasinglulu #define DRAM_CH_CNT		0x04
10*91f16700Schasinglulu #define SLICE_CNT		0x04
11*91f16700Schasinglulu #define CS_CNT			0x02
12*91f16700Schasinglulu 
13*91f16700Schasinglulu /* order : CS0A, CS0B, CS1A, CS1B */
14*91f16700Schasinglulu #define CSAB_CNT		(CS_CNT * 2)
15*91f16700Schasinglulu 
16*91f16700Schasinglulu /* order : CH0A, CH0B, CH1A, CH1B, CH2A, CH2B, CH3A, CH3B */
17*91f16700Schasinglulu #define CHAB_CNT		(DRAM_CH_CNT * 2)
18*91f16700Schasinglulu 
19*91f16700Schasinglulu /* pll setting */
20*91f16700Schasinglulu #define CLK_DIV(a, diva, b, divb) (((a) * (divb)) / ((b) * (diva)))
21*91f16700Schasinglulu #define CLK_MUL(a, diva, b, divb) (((a) * (b)) / ((diva) * (divb)))
22*91f16700Schasinglulu 
23*91f16700Schasinglulu /* for ddr deisity setting */
24*91f16700Schasinglulu #define DBMEMCONF_REG(d3, row, bank, col, dw)	\
25*91f16700Schasinglulu 	(((d3) << 30) | ((row) << 24) | ((bank) << 16) | ((col) << 8) | (dw))
26*91f16700Schasinglulu 
27*91f16700Schasinglulu #define DBMEMCONF_REGD(density)		\
28*91f16700Schasinglulu 	(DBMEMCONF_REG((density) % 2, ((density) + 1) / \
29*91f16700Schasinglulu 	2 + (29 - 3 - 10 - 2), 3, 10, 2))
30*91f16700Schasinglulu 
31*91f16700Schasinglulu #define DBMEMCONF_VAL(ch, cs) (DBMEMCONF_REGD(DBMEMCONF_DENS(ch, cs)))
32*91f16700Schasinglulu 
33*91f16700Schasinglulu /* refresh mode */
34*91f16700Schasinglulu #define DBSC_REFINTS		(0x0)
35*91f16700Schasinglulu 
36*91f16700Schasinglulu /* system registers */
37*91f16700Schasinglulu #define CPG_FRQCRB		(CPG_BASE + 0x0004U)
38*91f16700Schasinglulu 
39*91f16700Schasinglulu #define CPG_PLLECR		(CPG_BASE + 0x00D0U)
40*91f16700Schasinglulu #define CPG_MSTPSR5		(CPG_BASE + 0x003CU)
41*91f16700Schasinglulu #define CPG_SRCR4		(CPG_BASE + 0x00BCU)
42*91f16700Schasinglulu #define CPG_PLL3CR		(CPG_BASE + 0x00DCU)
43*91f16700Schasinglulu #define CPG_ZB3CKCR		(CPG_BASE + 0x0380U)
44*91f16700Schasinglulu #define CPG_FRQCRD		(CPG_BASE + 0x00E4U)
45*91f16700Schasinglulu #define CPG_SMSTPCR5		(CPG_BASE + 0x0144U)
46*91f16700Schasinglulu #define CPG_CPGWPR		(CPG_BASE + 0x0900U)
47*91f16700Schasinglulu #define CPG_SRSTCLR4		(CPG_BASE + 0x0950U)
48*91f16700Schasinglulu 
49*91f16700Schasinglulu #define CPG_FRQCRB_KICK_BIT	BIT(31)
50*91f16700Schasinglulu #define CPG_PLLECR_PLL3E_BIT	BIT(3)
51*91f16700Schasinglulu #define CPG_PLLECR_PLL3ST_BIT	BIT(11)
52*91f16700Schasinglulu #define CPG_ZB3CKCR_ZB3ST_BIT	BIT(11)
53*91f16700Schasinglulu 
54*91f16700Schasinglulu #define RST_BASE		(0xE6160000U)
55*91f16700Schasinglulu #define RST_MODEMR		(RST_BASE + 0x0060U)
56*91f16700Schasinglulu 
57*91f16700Schasinglulu #define LIFEC_CHIPID(x)		(0xE6110040U + 0x04U * (x))
58*91f16700Schasinglulu 
59*91f16700Schasinglulu /* DBSC registers */
60*91f16700Schasinglulu #include "../ddr_regs.h"
61*91f16700Schasinglulu 
62*91f16700Schasinglulu #define DBSC_DBMONCONF4		0xE6793010U
63*91f16700Schasinglulu 
64*91f16700Schasinglulu #define DBSC_PLL_LOCK(ch)	(0xE6794054U + 0x100U * (ch))
65*91f16700Schasinglulu #define DBSC_PLL_LOCK_0		0xE6794054U
66*91f16700Schasinglulu #define DBSC_PLL_LOCK_1		0xE6794154U
67*91f16700Schasinglulu #define DBSC_PLL_LOCK_2		0xE6794254U
68*91f16700Schasinglulu #define DBSC_PLL_LOCK_3		0xE6794354U
69*91f16700Schasinglulu 
70*91f16700Schasinglulu /* STAT registers */
71*91f16700Schasinglulu #define MSTAT_SL_INIT		0xE67E8000U
72*91f16700Schasinglulu #define MSTAT_REF_ARS		0xE67E8004U
73*91f16700Schasinglulu #define MSTATQ_STATQC		0xE67E8008U
74*91f16700Schasinglulu #define MSTATQ_WTENABLE		0xE67E8030U
75*91f16700Schasinglulu #define MSTATQ_WTREFRESH	0xE67E8034U
76*91f16700Schasinglulu #define MSTATQ_WTSETTING0	0xE67E8038U
77*91f16700Schasinglulu #define MSTATQ_WTSETTING1	0xE67E803CU
78*91f16700Schasinglulu 
79*91f16700Schasinglulu #define QOS_BASE1		(0xE67F0000U)
80*91f16700Schasinglulu #define QOSCTRL_RAS		(QOS_BASE1 + 0x0000U)
81*91f16700Schasinglulu #define QOSCTRL_FIXTH		(QOS_BASE1 + 0x0004U)
82*91f16700Schasinglulu #define QOSCTRL_RAEN		(QOS_BASE1 + 0x0018U)
83*91f16700Schasinglulu #define QOSCTRL_REGGD		(QOS_BASE1 + 0x0020U)
84*91f16700Schasinglulu #define QOSCTRL_DANN		(QOS_BASE1 + 0x0030U)
85*91f16700Schasinglulu #define QOSCTRL_DANT		(QOS_BASE1 + 0x0038U)
86*91f16700Schasinglulu #define QOSCTRL_EC		(QOS_BASE1 + 0x003CU)
87*91f16700Schasinglulu #define QOSCTRL_EMS		(QOS_BASE1 + 0x0040U)
88*91f16700Schasinglulu #define QOSCTRL_INSFC		(QOS_BASE1 + 0x0050U)
89*91f16700Schasinglulu #define QOSCTRL_BERR		(QOS_BASE1 + 0x0054U)
90*91f16700Schasinglulu #define QOSCTRL_RACNT0		(QOS_BASE1 + 0x0080U)
91*91f16700Schasinglulu #define QOSCTRL_STATGEN0	(QOS_BASE1 + 0x0088U)
92*91f16700Schasinglulu 
93*91f16700Schasinglulu /* other module */
94*91f16700Schasinglulu #define THS1_THCTR		0xE6198020U
95*91f16700Schasinglulu #define THS1_TEMP		0xE6198028U
96