xref: /OK3568_Linux_fs/u-boot/board/renesas/rsk7203/lowlevel_init.S (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun/*
2*4882a593Smuzhiyun * Copyright (C) 2008 Nobuhiro Iwamatsu
3*4882a593Smuzhiyun * Copyright (C) 2008 Renesas Solutions Corp.
4*4882a593Smuzhiyun *
5*4882a593Smuzhiyun * SPDX-License-Identifier:	GPL-2.0+
6*4882a593Smuzhiyun */
7*4882a593Smuzhiyun#include <config.h>
8*4882a593Smuzhiyun
9*4882a593Smuzhiyun#include <asm/processor.h>
10*4882a593Smuzhiyun#include <asm/macro.h>
11*4882a593Smuzhiyun
12*4882a593Smuzhiyun	.global	lowlevel_init
13*4882a593Smuzhiyun
14*4882a593Smuzhiyun	.text
15*4882a593Smuzhiyun	.align	2
16*4882a593Smuzhiyun
17*4882a593Smuzhiyunlowlevel_init:
18*4882a593Smuzhiyun	/* Cache setting */
19*4882a593Smuzhiyun	write32	CCR1_A ,CCR1_D
20*4882a593Smuzhiyun
21*4882a593Smuzhiyun	/* ConfigurePortPins */
22*4882a593Smuzhiyun	write16	PECRL3_A, PECRL3_D
23*4882a593Smuzhiyun
24*4882a593Smuzhiyun	write16	PCCRL4_A, PCCRL4_D0
25*4882a593Smuzhiyun
26*4882a593Smuzhiyun	write16	PECRL4_A, PECRL4_D0
27*4882a593Smuzhiyun
28*4882a593Smuzhiyun	write16	PEIORL_A, PEIORL_D0
29*4882a593Smuzhiyun
30*4882a593Smuzhiyun	write16	PCIORL_A, PCIORL_D
31*4882a593Smuzhiyun
32*4882a593Smuzhiyun	write16	PFCRH2_A, PFCRH2_D
33*4882a593Smuzhiyun
34*4882a593Smuzhiyun	write16	PFCRH3_A, PFCRH3_D
35*4882a593Smuzhiyun
36*4882a593Smuzhiyun	write16	PFCRH1_A, PFCRH1_D
37*4882a593Smuzhiyun
38*4882a593Smuzhiyun	write16	PFIORH_A, PFIORH_D
39*4882a593Smuzhiyun
40*4882a593Smuzhiyun	write16	PECRL1_A, PECRL1_D0
41*4882a593Smuzhiyun
42*4882a593Smuzhiyun	write16	PEIORL_A, PEIORL_D1
43*4882a593Smuzhiyun
44*4882a593Smuzhiyun	/* Configure Operating Frequency */
45*4882a593Smuzhiyun	write16	WTCSR_A, WTCSR_D0
46*4882a593Smuzhiyun
47*4882a593Smuzhiyun	write16	WTCSR_A, WTCSR_D1
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun	write16	WTCNT_A, WTCNT_D
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun	/* Set clock mode*/
52*4882a593Smuzhiyun	write16	FRQCR_A, FRQCR_D
53*4882a593Smuzhiyun
54*4882a593Smuzhiyun	/* Configure Bus And Memory */
55*4882a593Smuzhiyuninit_bsc_cs0:
56*4882a593Smuzhiyun	write16	PCCRL4_A, PCCRL4_D1
57*4882a593Smuzhiyun
58*4882a593Smuzhiyun	write16	PECRL1_A, PECRL1_D1
59*4882a593Smuzhiyun
60*4882a593Smuzhiyun	write32	CMNCR_A, CMNCR_D
61*4882a593Smuzhiyun
62*4882a593Smuzhiyun	write32	CS0BCR_A, CS0BCR_D
63*4882a593Smuzhiyun
64*4882a593Smuzhiyun	write32	CS0WCR_A, CS0WCR_D
65*4882a593Smuzhiyun
66*4882a593Smuzhiyuninit_bsc_cs1:
67*4882a593Smuzhiyun	write16	PECRL4_A, PECRL4_D1
68*4882a593Smuzhiyun
69*4882a593Smuzhiyun	write32	CS1WCR_A, CS1WCR_D
70*4882a593Smuzhiyun
71*4882a593Smuzhiyuninit_sdram:
72*4882a593Smuzhiyun	write16	PCCRL2_A, PCCRL2_D
73*4882a593Smuzhiyun
74*4882a593Smuzhiyun	write16	PCCRL4_A, PCCRL4_D2
75*4882a593Smuzhiyun
76*4882a593Smuzhiyun	write16	PCCRL1_A, PCCRL1_D
77*4882a593Smuzhiyun
78*4882a593Smuzhiyun	write16	PCCRL3_A, PCCRL3_D
79*4882a593Smuzhiyun
80*4882a593Smuzhiyun	write32	CS3BCR_A, CS3BCR_D
81*4882a593Smuzhiyun
82*4882a593Smuzhiyun	write32	CS3WCR_A, CS3WCR_D
83*4882a593Smuzhiyun
84*4882a593Smuzhiyun	write32	SDCR_A, SDCR_D
85*4882a593Smuzhiyun
86*4882a593Smuzhiyun	write32	RTCOR_A, RTCOR_D
87*4882a593Smuzhiyun
88*4882a593Smuzhiyun	write32	RTCSR_A, RTCSR_D
89*4882a593Smuzhiyun
90*4882a593Smuzhiyun	/* wait 200us */
91*4882a593Smuzhiyun	mov.l	REPEAT_D, r3
92*4882a593Smuzhiyun	mov	#0, r2
93*4882a593Smuzhiyunrepeat0:
94*4882a593Smuzhiyun	add	#1, r2
95*4882a593Smuzhiyun	cmp/hs	r3, r2
96*4882a593Smuzhiyun	bf	repeat0
97*4882a593Smuzhiyun	nop
98*4882a593Smuzhiyun
99*4882a593Smuzhiyun	mov.l	SDRAM_MODE, r1
100*4882a593Smuzhiyun	mov	#0, r0
101*4882a593Smuzhiyun	mov.l	r0, @r1
102*4882a593Smuzhiyun
103*4882a593Smuzhiyun	nop
104*4882a593Smuzhiyun	rts
105*4882a593Smuzhiyun
106*4882a593Smuzhiyun	.align 4
107*4882a593Smuzhiyun
108*4882a593SmuzhiyunCCR1_A:		.long CCR1
109*4882a593SmuzhiyunCCR1_D:		.long 0x0000090B
110*4882a593SmuzhiyunPCCRL4_A:	.long 0xFFFE3910
111*4882a593SmuzhiyunPCCRL4_D0:	.word 0x0000
112*4882a593Smuzhiyun.align 2
113*4882a593SmuzhiyunPECRL4_A:	.long 0xFFFE3A10
114*4882a593SmuzhiyunPECRL4_D0:	.word 0x0000
115*4882a593Smuzhiyun.align 2
116*4882a593SmuzhiyunPECRL3_A:	.long 0xFFFE3A12
117*4882a593SmuzhiyunPECRL3_D:	.word 0x0000
118*4882a593Smuzhiyun.align 2
119*4882a593SmuzhiyunPEIORL_A:	.long 0xFFFE3A06
120*4882a593SmuzhiyunPEIORL_D0:	.word 0x1C00
121*4882a593SmuzhiyunPEIORL_D1:	.word 0x1C02
122*4882a593SmuzhiyunPCIORL_A:	.long 0xFFFE3906
123*4882a593SmuzhiyunPCIORL_D:	.word 0x4000
124*4882a593Smuzhiyun.align 2
125*4882a593SmuzhiyunPFCRH2_A:	.long 0xFFFE3A8C
126*4882a593SmuzhiyunPFCRH2_D:	.word 0x0000
127*4882a593Smuzhiyun.align 2
128*4882a593SmuzhiyunPFCRH3_A:	.long 0xFFFE3A8A
129*4882a593SmuzhiyunPFCRH3_D:	.word 0x0000
130*4882a593Smuzhiyun.align 2
131*4882a593SmuzhiyunPFCRH1_A:	.long 0xFFFE3A8E
132*4882a593SmuzhiyunPFCRH1_D:	.word 0x0000
133*4882a593Smuzhiyun.align 2
134*4882a593SmuzhiyunPFIORH_A:	.long 0xFFFE3A84
135*4882a593SmuzhiyunPFIORH_D:	.word 0x0729
136*4882a593Smuzhiyun.align 2
137*4882a593SmuzhiyunPECRL1_A:	.long 0xFFFE3A16
138*4882a593SmuzhiyunPECRL1_D0:	.word 0x0033
139*4882a593Smuzhiyun.align 2
140*4882a593Smuzhiyun
141*4882a593Smuzhiyun
142*4882a593SmuzhiyunWTCSR_A:	.long 0xFFFE0000
143*4882a593SmuzhiyunWTCSR_D0:	.word 0xA518
144*4882a593SmuzhiyunWTCSR_D1:	.word 0xA51D
145*4882a593SmuzhiyunWTCNT_A:	.long 0xFFFE0002
146*4882a593SmuzhiyunWTCNT_D:	.word 0x5A84
147*4882a593Smuzhiyun.align 2
148*4882a593SmuzhiyunFRQCR_A:	.long 0xFFFE0010
149*4882a593SmuzhiyunFRQCR_D:	.word 0x0104
150*4882a593Smuzhiyun.align 2
151*4882a593Smuzhiyun
152*4882a593SmuzhiyunPCCRL4_D1:	.word 0x0010
153*4882a593SmuzhiyunPECRL1_D1:	.word 0x0133
154*4882a593Smuzhiyun
155*4882a593SmuzhiyunCMNCR_A:	.long 0xFFFC0000
156*4882a593SmuzhiyunCMNCR_D:	.long 0x00001810
157*4882a593SmuzhiyunCS0BCR_A:	.long 0xFFFC0004
158*4882a593SmuzhiyunCS0BCR_D:	.long 0x10000400
159*4882a593SmuzhiyunCS0WCR_A:	.long 0xFFFC0028
160*4882a593SmuzhiyunCS0WCR_D:	.long 0x00000B41
161*4882a593SmuzhiyunPECRL4_D1:	.word 0x0100
162*4882a593Smuzhiyun.align 2
163*4882a593SmuzhiyunCS1WCR_A:	.long 0xFFFC002C
164*4882a593SmuzhiyunCS1WCR_D:	.long 0x00000B01
165*4882a593SmuzhiyunPCCRL4_D2:	.word 0x0011
166*4882a593Smuzhiyun.align 2
167*4882a593SmuzhiyunPCCRL3_A:	.long 0xFFFE3912
168*4882a593SmuzhiyunPCCRL3_D:	.word 0x0011
169*4882a593Smuzhiyun.align 2
170*4882a593SmuzhiyunPCCRL2_A:	.long 0xFFFE3914
171*4882a593SmuzhiyunPCCRL2_D:	.word 0x1111
172*4882a593Smuzhiyun.align 2
173*4882a593SmuzhiyunPCCRL1_A:	.long 0xFFFE3916
174*4882a593SmuzhiyunPCCRL1_D:	.word 0x1010
175*4882a593Smuzhiyun.align 2
176*4882a593SmuzhiyunPDCRL4_A:	.long 0xFFFE3990
177*4882a593SmuzhiyunPDCRL4_D:	.word 0x0011
178*4882a593Smuzhiyun.align 2
179*4882a593SmuzhiyunPDCRL3_A:	.long 0xFFFE3992
180*4882a593SmuzhiyunPDCRL3_D:	.word 0x00011
181*4882a593Smuzhiyun.align 2
182*4882a593SmuzhiyunPDCRL2_A:	.long 0xFFFE3994
183*4882a593SmuzhiyunPDCRL2_D:	.word 0x1111
184*4882a593Smuzhiyun.align 2
185*4882a593SmuzhiyunPDCRL1_A:	.long 0xFFFE3996
186*4882a593SmuzhiyunPDCRL1_D:	.word 0x1000
187*4882a593Smuzhiyun.align 2
188*4882a593SmuzhiyunCS3BCR_A:	.long 0xFFFC0010
189*4882a593SmuzhiyunCS3BCR_D:	.long 0x00004400
190*4882a593SmuzhiyunCS3WCR_A:	.long 0xFFFC0034
191*4882a593SmuzhiyunCS3WCR_D:	.long 0x00002892
192*4882a593SmuzhiyunSDCR_A:		.long 0xFFFC004C
193*4882a593SmuzhiyunSDCR_D:		.long 0x00000809
194*4882a593SmuzhiyunRTCOR_A:	.long 0xFFFC0058
195*4882a593SmuzhiyunRTCOR_D:	.long 0xA55A0041
196*4882a593SmuzhiyunRTCSR_A:	.long 0xFFFC0050
197*4882a593SmuzhiyunRTCSR_D:	.long 0xa55a0010
198*4882a593Smuzhiyun
199*4882a593SmuzhiyunSDRAM_MODE:	.long 0xFFFC5040
200*4882a593SmuzhiyunREPEAT_D:	.long 0x00009C40
201