xref: /rk3399_rockchip-uboot/board/renesas/ap325rxa/lowlevel_init.S (revision 7682a99826a624d3764656b5bb31f88e2f8b235b)
1f84e6ea2SNobuhiro Iwamatsu/*
2f84e6ea2SNobuhiro Iwamatsu * Copyright (C) 2008 Renesas Solutions Corp.
3f84e6ea2SNobuhiro Iwamatsu * Copyright (C) 2008 Nobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>
4f84e6ea2SNobuhiro Iwamatsu *
5f84e6ea2SNobuhiro Iwamatsu * board/ap325rxa/lowlevel_init.S
6f84e6ea2SNobuhiro Iwamatsu *
7*1a459660SWolfgang Denk * SPDX-License-Identifier:	GPL-2.0+
8f84e6ea2SNobuhiro Iwamatsu */
9f84e6ea2SNobuhiro Iwamatsu
10f84e6ea2SNobuhiro Iwamatsu#include <config.h>
11f84e6ea2SNobuhiro Iwamatsu#include <asm/processor.h>
12f7e78f3bSJean-Christophe PLAGNIOL-VILLARD#include <asm/macro.h>
13f84e6ea2SNobuhiro Iwamatsu
14f84e6ea2SNobuhiro Iwamatsu/*
15f84e6ea2SNobuhiro Iwamatsu * Board specific low level init code, called _very_ early in the
16f84e6ea2SNobuhiro Iwamatsu * startup sequence. Relocation to SDRAM has not happened yet, no
17f84e6ea2SNobuhiro Iwamatsu * stack is available, bss section has not been initialised, etc.
18f84e6ea2SNobuhiro Iwamatsu *
19f84e6ea2SNobuhiro Iwamatsu * (Note: As no stack is available, no subroutines can be called...).
20f84e6ea2SNobuhiro Iwamatsu */
21f84e6ea2SNobuhiro Iwamatsu
22f84e6ea2SNobuhiro Iwamatsu	.global	lowlevel_init
23f84e6ea2SNobuhiro Iwamatsu
24f84e6ea2SNobuhiro Iwamatsu	.text
25f84e6ea2SNobuhiro Iwamatsu	.align	2
26f84e6ea2SNobuhiro Iwamatsu
27f84e6ea2SNobuhiro Iwamatsulowlevel_init:
28f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write16	DRVCRA_A, DRVCRA_D
29f84e6ea2SNobuhiro Iwamatsu
30f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write16	DRVCRB_A, DRVCRB_D
31f84e6ea2SNobuhiro Iwamatsu
32f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write16	RWTCSR_A, RWTCSR_D1
33f84e6ea2SNobuhiro Iwamatsu
34f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write16	RWTCNT_A, RWTCNT_D
35f84e6ea2SNobuhiro Iwamatsu
36f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write16	RWTCSR_A, RWTCSR_D2
37f84e6ea2SNobuhiro Iwamatsu
38f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write32	FRQCR_A, FRQCR_D
39f84e6ea2SNobuhiro Iwamatsu
40f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write32	CMNCR_A, CMNCR_D
41f84e6ea2SNobuhiro Iwamatsu
42f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write32	CS0BCR_A, CS0BCR_D
43f84e6ea2SNobuhiro Iwamatsu
44f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write32	CS4BCR_A, CS4BCR_D
45f84e6ea2SNobuhiro Iwamatsu
46f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write32	CS5ABCR_A, CS5ABCR_D
47f84e6ea2SNobuhiro Iwamatsu
48f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write32	CS5BBCR_A, CS5BBCR_D
49f84e6ea2SNobuhiro Iwamatsu
50f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write32	CS6ABCR_A, CS6ABCR_D
51f84e6ea2SNobuhiro Iwamatsu
52f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write32	CS6BBCR_A, CS6BBCR_D
53f84e6ea2SNobuhiro Iwamatsu
54f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write32	CS0WCR_A, CS0WCR_D
55f84e6ea2SNobuhiro Iwamatsu
56f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write32	CS4WCR_A, CS4WCR_D
57f84e6ea2SNobuhiro Iwamatsu
58f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write32	CS5AWCR_A, CS5AWCR_D
59f84e6ea2SNobuhiro Iwamatsu
60f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write32	CS5BWCR_A, CS5BWCR_D
61f84e6ea2SNobuhiro Iwamatsu
62f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write32	CS6AWCR_A, CS6AWCR_D
63f84e6ea2SNobuhiro Iwamatsu
64f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write32	CS6BWCR_A, CS6BWCR_D
65f84e6ea2SNobuhiro Iwamatsu
66f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write32	SBSC_SDCR_A, SBSC_SDCR_D1
67f84e6ea2SNobuhiro Iwamatsu
68f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write32	SBSC_SDWCR_A, SBSC_SDWCR_D
69f84e6ea2SNobuhiro Iwamatsu
70f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write32	SBSC_SDPCR_A, SBSC_SDPCR_D
71f84e6ea2SNobuhiro Iwamatsu
72f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write32	SBSC_RTCSR_A, SBSC_RTCSR_D
73f84e6ea2SNobuhiro Iwamatsu
74f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write32	SBSC_RTCNT_A, SBSC_RTCNT_D
75f84e6ea2SNobuhiro Iwamatsu
76f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write32	SBSC_RTCOR_A, SBSC_RTCOR_D
77f84e6ea2SNobuhiro Iwamatsu
78f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write8	SBSC_SDMR3_A1, SBSC_SDMR3_D
79f84e6ea2SNobuhiro Iwamatsu
80f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write8	SBSC_SDMR3_A2, SBSC_SDMR3_D
81f84e6ea2SNobuhiro Iwamatsu
82f84e6ea2SNobuhiro Iwamatsu	mov.l	SLEEP_CNT, r1
83f84e6ea2SNobuhiro Iwamatsu2:	tst	r1, r1
84f84e6ea2SNobuhiro Iwamatsu	nop
85f84e6ea2SNobuhiro Iwamatsu	bf/s	2b
86f84e6ea2SNobuhiro Iwamatsu	dt	r1
87f84e6ea2SNobuhiro Iwamatsu
88f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write8	SBSC_SDMR3_A3, SBSC_SDMR3_D
89f84e6ea2SNobuhiro Iwamatsu
90f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write32	SBSC_SDCR_A, SBSC_SDCR_D2
91f84e6ea2SNobuhiro Iwamatsu
92f7e78f3bSJean-Christophe PLAGNIOL-VILLARD	write32	CCR_A, CCR_D
93f84e6ea2SNobuhiro Iwamatsu
94f84e6ea2SNobuhiro Iwamatsu	! BL bit off (init = ON) (?!?)
95f84e6ea2SNobuhiro Iwamatsu
96f84e6ea2SNobuhiro Iwamatsu	stc	sr, r0				! BL bit off(init=ON)
97f84e6ea2SNobuhiro Iwamatsu	mov.l	SR_MASK_D, r1
98f84e6ea2SNobuhiro Iwamatsu	and	r1, r0
99f84e6ea2SNobuhiro Iwamatsu	ldc	r0, sr
100f84e6ea2SNobuhiro Iwamatsu
101f84e6ea2SNobuhiro Iwamatsu	rts
102f84e6ea2SNobuhiro Iwamatsu	 mov	#0, r0
103f84e6ea2SNobuhiro Iwamatsu
104f84e6ea2SNobuhiro Iwamatsu	.align	2
105f84e6ea2SNobuhiro Iwamatsu
106f84e6ea2SNobuhiro IwamatsuDRVCRA_A:	.long	DRVCRA
107f84e6ea2SNobuhiro IwamatsuDRVCRB_A:	.long	DRVCRB
108e77ff552SNobuhiro IwamatsuDRVCRA_D:	.word	0x4555
109e77ff552SNobuhiro IwamatsuDRVCRB_D:	.word	0x0005
110f84e6ea2SNobuhiro Iwamatsu
111f84e6ea2SNobuhiro IwamatsuRWTCSR_A:	.long	RWTCSR
112f84e6ea2SNobuhiro IwamatsuRWTCNT_A:	.long	RWTCNT
113f84e6ea2SNobuhiro IwamatsuFRQCR_A:	.long	FRQCR
114e77ff552SNobuhiro IwamatsuRWTCSR_D1:	.word	0xa507
115e77ff552SNobuhiro IwamatsuRWTCSR_D2:	.word	0xa504
116e77ff552SNobuhiro IwamatsuRWTCNT_D:	.word	0x5a00
11772d5cdb7SNobuhiro Iwamatsu.align 2
118f84e6ea2SNobuhiro IwamatsuFRQCR_D:	.long	0x0b04474a
119f84e6ea2SNobuhiro Iwamatsu
120f84e6ea2SNobuhiro IwamatsuSBSC_SDCR_A:	.long	SBSC_SDCR
121f84e6ea2SNobuhiro IwamatsuSBSC_SDWCR_A:	.long	SBSC_SDWCR
122f84e6ea2SNobuhiro IwamatsuSBSC_SDPCR_A:	.long	SBSC_SDPCR
123f84e6ea2SNobuhiro IwamatsuSBSC_RTCSR_A:	.long	SBSC_RTCSR
124f84e6ea2SNobuhiro IwamatsuSBSC_RTCNT_A:	.long	SBSC_RTCNT
125f84e6ea2SNobuhiro IwamatsuSBSC_RTCOR_A:	.long	SBSC_RTCOR
126f84e6ea2SNobuhiro IwamatsuSBSC_SDMR3_A1:	.long	0xfe510000
127f84e6ea2SNobuhiro IwamatsuSBSC_SDMR3_A2:	.long	0xfe500242
128f84e6ea2SNobuhiro IwamatsuSBSC_SDMR3_A3:	.long	0xfe5c0042
129f84e6ea2SNobuhiro Iwamatsu
130f84e6ea2SNobuhiro IwamatsuSBSC_SDCR_D1:	.long	0x92810112
131f84e6ea2SNobuhiro IwamatsuSBSC_SDCR_D2:	.long	0x92810912
132f84e6ea2SNobuhiro IwamatsuSBSC_SDWCR_D:	.long	0x05162482
133f84e6ea2SNobuhiro IwamatsuSBSC_SDPCR_D:	.long	0x00300087
134f84e6ea2SNobuhiro IwamatsuSBSC_RTCSR_D:	.long	0xa55a0212
135f84e6ea2SNobuhiro IwamatsuSBSC_RTCNT_D:	.long	0xa55a0000
136f84e6ea2SNobuhiro IwamatsuSBSC_RTCOR_D:	.long	0xa55a0040
137f84e6ea2SNobuhiro IwamatsuSBSC_SDMR3_D:	.long	0x00
138f84e6ea2SNobuhiro Iwamatsu
139f84e6ea2SNobuhiro IwamatsuCMNCR_A:	.long	CMNCR
140f84e6ea2SNobuhiro IwamatsuCS0BCR_A:	.long	CS0BCR
141f84e6ea2SNobuhiro IwamatsuCS4BCR_A:	.long	CS4BCR
142f84e6ea2SNobuhiro IwamatsuCS5ABCR_A:	.long	CS5ABCR
143f84e6ea2SNobuhiro IwamatsuCS5BBCR_A:	.long	CS5BBCR
144f84e6ea2SNobuhiro IwamatsuCS6ABCR_A:	.long	CS6ABCR
145f84e6ea2SNobuhiro IwamatsuCS6BBCR_A:	.long	CS6BBCR
146f84e6ea2SNobuhiro IwamatsuCS0WCR_A:	.long	CS0WCR
147f84e6ea2SNobuhiro IwamatsuCS4WCR_A:	.long	CS4WCR
148f84e6ea2SNobuhiro IwamatsuCS5AWCR_A:	.long	CS5AWCR
149f84e6ea2SNobuhiro IwamatsuCS5BWCR_A:	.long	CS5BWCR
150f84e6ea2SNobuhiro IwamatsuCS6AWCR_A:	.long	CS6AWCR
151f84e6ea2SNobuhiro IwamatsuCS6BWCR_A:	.long	CS6BWCR
152f84e6ea2SNobuhiro Iwamatsu
153f84e6ea2SNobuhiro IwamatsuCMNCR_D:	.long	0x00000013
154f84e6ea2SNobuhiro IwamatsuCS0BCR_D:	.long	0x24920400
155f84e6ea2SNobuhiro IwamatsuCS4BCR_D:	.long	0x24920400
156f84e6ea2SNobuhiro IwamatsuCS5ABCR_D:	.long	0x24920400
157f84e6ea2SNobuhiro IwamatsuCS5BBCR_D:	.long	0x7fff0600
158f84e6ea2SNobuhiro IwamatsuCS6ABCR_D:	.long	0x24920400
159f84e6ea2SNobuhiro IwamatsuCS6BBCR_D:	.long	0x24920600
160f84e6ea2SNobuhiro IwamatsuCS0WCR_D:	.long	0x00000480
161f84e6ea2SNobuhiro IwamatsuCS4WCR_D:	.long	0x00000480
162f84e6ea2SNobuhiro IwamatsuCS5AWCR_D:	.long	0x00000380
16394a35361SYusuke.GodaCS5BWCR_D:	.long	0x00000080
164f84e6ea2SNobuhiro IwamatsuCS6AWCR_D:	.long	0x00000300
165f84e6ea2SNobuhiro IwamatsuCS6BWCR_D:	.long	0x00000540
166f84e6ea2SNobuhiro Iwamatsu
167f84e6ea2SNobuhiro IwamatsuCCR_A:		.long	0xff00001c
168f84e6ea2SNobuhiro IwamatsuCCR_D:		.long	0x0000090d
169f84e6ea2SNobuhiro Iwamatsu
170f84e6ea2SNobuhiro IwamatsuSLEEP_CNT:	.long	0x00000800
171f84e6ea2SNobuhiro IwamatsuSR_MASK_D:	.long	0xEFFFFF0F
172