xref: /rk3399_rockchip-uboot/board/renesas/r2dplus/lowlevel_init.S (revision 7682a99826a624d3764656b5bb31f88e2f8b235b)
1c1da2a22SNobuhiro Iwamatsu/*
2c1da2a22SNobuhiro Iwamatsu * modified from SH-IPL+g (init-r0p751rlc0011rl.S)
3c1da2a22SNobuhiro Iwamatsu * Initial Register Data for R0P751RLC0011RL (SH7751R 240MHz/120MHz/60MHz)
4c1da2a22SNobuhiro Iwamatsu * Coyright (c) 2007,2008 Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
5c1da2a22SNobuhiro Iwamatsu*/
6c1da2a22SNobuhiro Iwamatsu
7c1da2a22SNobuhiro Iwamatsu#include <config.h>
8c1da2a22SNobuhiro Iwamatsu
9c1da2a22SNobuhiro Iwamatsu#include <asm/processor.h>
10f7e78f3bSJean-Christophe PLAGNIOL-VILLARD#include <asm/macro.h>
11c1da2a22SNobuhiro Iwamatsu
12c1da2a22SNobuhiro Iwamatsu	.global lowlevel_init
13c1da2a22SNobuhiro Iwamatsu	.text
14c1da2a22SNobuhiro Iwamatsu	.align	2
15c1da2a22SNobuhiro Iwamatsu
16c1da2a22SNobuhiro Iwamatsulowlevel_init:
17c1da2a22SNobuhiro Iwamatsu
18f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write32	CCR_A, CCR_D_D
19c1da2a22SNobuhiro Iwamatsu
20f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write32	MMUCR_A, MMUCR_D
21c1da2a22SNobuhiro Iwamatsu
22f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write32	BCR1_A, BCR1_D
23c1da2a22SNobuhiro Iwamatsu
24f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write16	BCR2_A, BCR2_D
25c1da2a22SNobuhiro Iwamatsu
26f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write16	BCR3_A, BCR3_D
27c1da2a22SNobuhiro Iwamatsu
28f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write32	BCR4_A, BCR4_D
29c1da2a22SNobuhiro Iwamatsu
30f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write32	WCR1_A, WCR1_D
31c1da2a22SNobuhiro Iwamatsu
32f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write32	WCR2_A, WCR2_D
33c1da2a22SNobuhiro Iwamatsu
34f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write32	WCR3_A, WCR3_D
35c1da2a22SNobuhiro Iwamatsu
36f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write16	PCR_A, PCR_D
37c1da2a22SNobuhiro Iwamatsu
38c9935c99SNobuhiro Iwamatsu	write16	LED_A, LED_D
39c1da2a22SNobuhiro Iwamatsu
40f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write32	MCR_A, MCR_D1
41c1da2a22SNobuhiro Iwamatsu
42f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write16	RTCNT_A, RTCNT_D
43c1da2a22SNobuhiro Iwamatsu
44f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write16	RTCOR_A, RTCOR_D
45c1da2a22SNobuhiro Iwamatsu
46f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write16	RFCR_A, RFCR_D
47c1da2a22SNobuhiro Iwamatsu
48f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write16	RTCSR_A, RTCSR_D
49c1da2a22SNobuhiro Iwamatsu
50c9935c99SNobuhiro Iwamatsu	write8	SDMR3_A, SDMR3_D0
51c1da2a22SNobuhiro Iwamatsu
52c1da2a22SNobuhiro Iwamatsu	/* Wait DRAM refresh 30 times */
53c1da2a22SNobuhiro Iwamatsu	mov.l	RFCR_A, r1
54c1da2a22SNobuhiro Iwamatsu	mov	#30, r3
55c1da2a22SNobuhiro Iwamatsu1:
56c1da2a22SNobuhiro Iwamatsu	mov.w	@r1, r0
57c1da2a22SNobuhiro Iwamatsu	extu.w	r0, r2
58c1da2a22SNobuhiro Iwamatsu	cmp/hi	r3, r2
59c1da2a22SNobuhiro Iwamatsu	bf	1b
60c1da2a22SNobuhiro Iwamatsu
61f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write32	MCR_A, MCR_D2
62c1da2a22SNobuhiro Iwamatsu
63c9935c99SNobuhiro Iwamatsu	write8	SDMR3_A, SDMR3_D1
64c1da2a22SNobuhiro Iwamatsu
65f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write32	IRLMASK_A, IRLMASK_D
66c1da2a22SNobuhiro Iwamatsu
67f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write32	CCR_A, CCR_D_E
68c1da2a22SNobuhiro Iwamatsu
69c1da2a22SNobuhiro Iwamatsu	rts
70c1da2a22SNobuhiro Iwamatsu	nop
71c1da2a22SNobuhiro Iwamatsu
72c1da2a22SNobuhiro Iwamatsu	.align	2
73c1da2a22SNobuhiro IwamatsuCCR_A:		.long	CCR		/* Cache Control Register */
74c1da2a22SNobuhiro IwamatsuCCR_D_D:	.long	0x0808		/* Flush the cache, disable */
75c1da2a22SNobuhiro IwamatsuCCR_D_E:	.long	0x8000090B
76c1da2a22SNobuhiro Iwamatsu
77c1da2a22SNobuhiro IwamatsuFRQCR_A:	.long	FRQCR		/* FRQCR Address */
78c1da2a22SNobuhiro IwamatsuFRQCR_D:	.long	0x00000e0a	/* 03/07/15 modify */
79c1da2a22SNobuhiro IwamatsuBCR1_A:		.long	BCR1		/* BCR1 Address */
80c1da2a22SNobuhiro IwamatsuBCR1_D:		.long	0x00180008
81c1da2a22SNobuhiro IwamatsuBCR2_A:		.long	BCR2		/* BCR2 Address */
82c1da2a22SNobuhiro IwamatsuBCR2_D:		.long	0xabe8
83c1da2a22SNobuhiro IwamatsuBCR3_A:		.long	BCR3		/* BCR3 Address */
84c1da2a22SNobuhiro IwamatsuBCR3_D:		.long	0x0000
85c1da2a22SNobuhiro IwamatsuBCR4_A:		.long	BCR4		/* BCR4 Address */
86c1da2a22SNobuhiro IwamatsuBCR4_D:		.long	0x00000010
87c1da2a22SNobuhiro IwamatsuWCR1_A:		.long	WCR1		/* WCR1 Address */
88c1da2a22SNobuhiro IwamatsuWCR1_D:		.long	0x33343333
89c1da2a22SNobuhiro IwamatsuWCR2_A:		.long	WCR2		/* WCR2 Address */
90c1da2a22SNobuhiro IwamatsuWCR2_D:		.long	0xcff86fbf
91c1da2a22SNobuhiro IwamatsuWCR3_A:		.long	WCR3		/* WCR3 Address */
92c1da2a22SNobuhiro IwamatsuWCR3_D:		.long	0x07777707
93c1da2a22SNobuhiro IwamatsuLED_A:		.long	0x04000036	/* LED Address */
94c9935c99SNobuhiro IwamatsuLED_D:		.long	0xFF		/* LED Data */
95c1da2a22SNobuhiro IwamatsuRTCNT_A:	.long	RTCNT		/* RTCNT Address */
96*edb3205aSNobuhiro IwamatsuRTCNT_D:	.word	0xA500		/* RTCNT Write Code A5h Data 00h */
97*edb3205aSNobuhiro Iwamatsu.align 2
98c1da2a22SNobuhiro IwamatsuRTCOR_A:	.long	RTCOR		/* RTCOR Address */
99*edb3205aSNobuhiro IwamatsuRTCOR_D:	.word	0xA534		/* RTCOR Write Code */
100*edb3205aSNobuhiro Iwamatsu.align 2
101c1da2a22SNobuhiro IwamatsuRTCSR_A:	.long	RTCSR		/* RTCSR Address */
102*edb3205aSNobuhiro IwamatsuRTCSR_D:	.word	0xA510		/* RTCSR Write Code */
103*edb3205aSNobuhiro Iwamatsu.align 2
104c1da2a22SNobuhiro IwamatsuSDMR3_A:	.long	0xFF9400CC	/* SDMR3 Address */
105c9935c99SNobuhiro IwamatsuSDMR3_D0:	.long	0x55
106c9935c99SNobuhiro IwamatsuSDMR3_D1:	.long	0x00
107c1da2a22SNobuhiro IwamatsuMCR_A:		.long	MCR		/* MCR Address */
108c1da2a22SNobuhiro IwamatsuMCR_D1:		.long	0x081901F4	/* MRSET:'0' */
109c1da2a22SNobuhiro IwamatsuMCR_D2:		.long	0x481901F4	/* MRSET:'1' */
110c1da2a22SNobuhiro IwamatsuRFCR_A:		.long	RFCR		/* RFCR Address */
111c1da2a22SNobuhiro IwamatsuRFCR_D:		.long	0xA400		/* RFCR Write Code A4h Data 00h */
112c1da2a22SNobuhiro IwamatsuPCR_A:		.long	PCR		/* PCR Address */
113c1da2a22SNobuhiro IwamatsuPCR_D:		.long	0x0000
114c1da2a22SNobuhiro IwamatsuMMUCR_A:	.long	MMUCR		/* MMUCCR Address */
115c1da2a22SNobuhiro IwamatsuMMUCR_D:	.long	0x00000000	/* MMUCCR Data */
116c1da2a22SNobuhiro IwamatsuIRLMASK_A:	.long	0xA4000000	/* IRLMASK Address */
117c1da2a22SNobuhiro IwamatsuIRLMASK_D:	.long	0x00000000	/* IRLMASK Data */
118