1 /* SPDX-License-Identifier: GPL-2.0+ */
3 * Copyright (C) 2007,2008 Nobuhiro Iwamatsu
5 * u-boot/board/r7780mp/lowlevel_init.S
9 #include <asm/processor.h>
10 #include <asm/macro.h>
13 * Board specific low level init code, called _very_ early in the
14 * startup sequence. Relocation to SDRAM has not happened yet, no
15 * stack is available, bss section has not been initialised, etc.
17 * (Note: As no stack is available, no subroutines can be called...).
27 write32 CCR_A, CCR_D /* Address of Cache Control Register */
28 /* Instruction Cache Invalidate */
30 write32 FRQCR_A, FRQCR_D /* Frequency control register */
32 /* pin_multi_setting */
33 write32 BBG_PMMR_A, BBG_PMMR_D_PMSR1
35 write32 BBG_PMSR1_A, BBG_PMSR1_D
37 write32 BBG_PMMR_A, BBG_PMMR_D_PMSR2
39 write32 BBG_PMSR2_A, BBG_PMSR2_D
41 write32 BBG_PMMR_A, BBG_PMMR_D_PMSR3
43 write32 BBG_PMSR3_A, BBG_PMSR3_D
45 write32 BBG_PMMR_A, BBG_PMMR_D_PMSR4
47 write32 BBG_PMSR4_A, BBG_PMSR4_D
49 write32 BBG_PMMR_A, BBG_PMMR_D_PMSRG
51 write32 BBG_PMSRG_A, BBG_PMSRG_D
54 write32 FRQCR_A, FRQCR_D
56 write32 DLLCSR_A, DLLCSR_D
79 write32 MMSELR_A, MMSELR_D
83 write32 CS0BCR_A, CS0BCR_D
85 write32 CS1BCR_A, CS1BCR_D
87 write32 CS2BCR_A, CS2BCR_D
89 write32 CS4BCR_A, CS4BCR_D
91 write32 CS5BCR_A, CS5BCR_D
93 write32 CS6BCR_A, CS6BCR_D
95 write32 CS0WCR_A, CS0WCR_D
97 write32 CS1WCR_A, CS1WCR_D
99 write32 CS2WCR_A, CS2WCR_D
101 write32 CS4WCR_A, CS4WCR_D
103 write32 CS5WCR_A, CS5WCR_D
105 write32 CS6WCR_A, CS6WCR_D
107 write32 CS5PCR_A, CS5PCR_D
109 write32 CS6PCR_A, CS6PCR_D
252 RWTCSR_D_1: .word 0xA507
253 RWTCSR_D_2: .word 0xA507
254 RWTCNT_D: .word 0x5A00
257 BBG_PMMR_A: .long 0xFF800010
258 BBG_PMSR1_A: .long 0xFF800014
259 BBG_PMSR2_A: .long 0xFF800018
260 BBG_PMSR3_A: .long 0xFF80001C
261 BBG_PMSR4_A: .long 0xFF800020
262 BBG_PMSRG_A: .long 0xFF800024
264 BBG_PMMR_D_PMSR1: .long 0xffffbffd
265 BBG_PMSR1_D: .long 0x00004002
266 BBG_PMMR_D_PMSR2: .long 0xfc21a7ff
267 BBG_PMSR2_D: .long 0x03de5800
268 BBG_PMMR_D_PMSR3: .long 0xfffffff8
269 BBG_PMSR3_D: .long 0x00000007
270 BBG_PMMR_D_PMSR4: .long 0xdffdfff9
271 BBG_PMSR4_D: .long 0x20020006
272 BBG_PMMR_D_PMSRG: .long 0xffffffff
273 BBG_PMSRG_D: .long 0x00000000
276 DLLCSR_A: .long 0xffc40010
277 FRQCR_D: .long 0x40233035
278 DLLCSR_D: .long 0x00000000
290 EMRS_A: .long 0xFEC02000
291 MRS1_A: .long 0xFEC00B08
292 MRS2_A: .long 0xFEC00308
294 MIM_U_D: .long 0x00004000
295 MIM_L_D0: .long 0x03e80009
296 MIM_L_D1: .long 0x03e80209
303 STR_L_D: .long 0x000f0000
304 SDR_L_D: .long 0x00000400
309 /* Cache Controller */
312 RWTCNT_A: .long WTCNT
314 CCR_D: .long 0x0000090b
315 CCR_D_2: .long 0x00000103
316 MMUCR_D: .long 0x00000004
317 MSTPCR0_D: .long 0x00001001
318 MSTPCR2_D: .long 0xffffffff
320 /* local Bus State Controller */
321 MMSELR_A: .long MMSELR
323 CS0BCR_A: .long CS0BCR
324 CS1BCR_A: .long CS1BCR
325 CS2BCR_A: .long CS2BCR
326 CS4BCR_A: .long CS4BCR
327 CS5BCR_A: .long CS5BCR
328 CS6BCR_A: .long CS6BCR
329 CS0WCR_A: .long CS0WCR
330 CS1WCR_A: .long CS1WCR
331 CS2WCR_A: .long CS2WCR
332 CS4WCR_A: .long CS4WCR
333 CS5WCR_A: .long CS5WCR
334 CS6WCR_A: .long CS6WCR
335 CS5PCR_A: .long CS5PCR
336 CS6PCR_A: .long CS6PCR
338 MMSELR_D: .long 0xA5A50003
339 BCR_D: .long 0x00000000
340 CS0BCR_D: .long 0x77777770
341 CS1BCR_D: .long 0x77777670
342 CS2BCR_D: .long 0x77777770
343 CS4BCR_D: .long 0x77777770
344 CS5BCR_D: .long 0x77777670
345 CS6BCR_D: .long 0x77777770
346 CS0WCR_D: .long 0x00020006
347 CS1WCR_D: .long 0x00232304
348 CS2WCR_D: .long 0x7777770F
349 CS4WCR_D: .long 0x7777770F
350 CS5WCR_D: .long 0x00101006
351 CS6WCR_D: .long 0x77777703
352 CS5PCR_D: .long 0x77000000
353 CS6PCR_D: .long 0x77000000
355 REPEAT0_R3: .long 0x00002000
356 REPEAT0_R1: .long 0x0000200