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