2 * Copyright (C) 2007,2008 Nobuhiro Iwamatsu
4 * u-boot/board/r7780mp/lowlevel_init.S
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License as
8 * published by the Free Software Foundation; either version 2 of
9 * the License, or (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
24 #include <asm/processor.h>
25 #include <asm/macro.h>
28 * Board specific low level init code, called _very_ early in the
29 * startup sequence. Relocation to SDRAM has not happened yet, no
30 * stack is available, bss section has not been initialised, etc.
32 * (Note: As no stack is available, no subroutines can be called...).
42 write32 CCR_A, CCR_D /* Address of Cache Control Register */
43 /* Instruction Cache Invalidate */
45 write32 FRQCR_A, FRQCR_D /* Frequency control register */
47 /* pin_multi_setting */
48 write32 BBG_PMMR_A, BBG_PMMR_D_PMSR1
50 write32 BBG_PMSR1_A, BBG_PMSR1_D
52 write32 BBG_PMMR_A, BBG_PMMR_D_PMSR2
54 write32 BBG_PMSR2_A, BBG_PMSR2_D
56 write32 BBG_PMMR_A, BBG_PMMR_D_PMSR3
58 write32 BBG_PMSR3_A, BBG_PMSR3_D
60 write32 BBG_PMMR_A, BBG_PMMR_D_PMSR4
62 write32 BBG_PMSR4_A, BBG_PMSR4_D
64 write32 BBG_PMMR_A, BBG_PMMR_D_PMSRG
66 write32 BBG_PMSRG_A, BBG_PMSRG_D
69 write32 FRQCR_A, FRQCR_D
71 write32 DLLCSR_A, DLLCSR_D
94 write32 MMSELR_A, MMSELR_D
98 write32 CS0BCR_A, CS0BCR_D
100 write32 CS1BCR_A, CS1BCR_D
102 write32 CS2BCR_A, CS2BCR_D
104 write32 CS4BCR_A, CS4BCR_D
106 write32 CS5BCR_A, CS5BCR_D
108 write32 CS6BCR_A, CS6BCR_D
110 write32 CS0WCR_A, CS0WCR_D
112 write32 CS1WCR_A, CS1WCR_D
114 write32 CS2WCR_A, CS2WCR_D
116 write32 CS4WCR_A, CS4WCR_D
118 write32 CS5WCR_A, CS5WCR_D
120 write32 CS6WCR_A, CS6WCR_D
122 write32 CS5PCR_A, CS5PCR_D
124 write32 CS6PCR_A, CS6PCR_D
267 RWTCSR_D_1: .word 0xA507
268 RWTCSR_D_2: .word 0xA507
269 RWTCNT_D: .word 0x5A00
272 BBG_PMMR_A: .long 0xFF800010
273 BBG_PMSR1_A: .long 0xFF800014
274 BBG_PMSR2_A: .long 0xFF800018
275 BBG_PMSR3_A: .long 0xFF80001C
276 BBG_PMSR4_A: .long 0xFF800020
277 BBG_PMSRG_A: .long 0xFF800024
279 BBG_PMMR_D_PMSR1: .long 0xffffbffd
280 BBG_PMSR1_D: .long 0x00004002
281 BBG_PMMR_D_PMSR2: .long 0xfc21a7ff
282 BBG_PMSR2_D: .long 0x03de5800
283 BBG_PMMR_D_PMSR3: .long 0xfffffff8
284 BBG_PMSR3_D: .long 0x00000007
285 BBG_PMMR_D_PMSR4: .long 0xdffdfff9
286 BBG_PMSR4_D: .long 0x20020006
287 BBG_PMMR_D_PMSRG: .long 0xffffffff
288 BBG_PMSRG_D: .long 0x00000000
291 DLLCSR_A: .long 0xffc40010
292 FRQCR_D: .long 0x40233035
293 DLLCSR_D: .long 0x00000000
305 EMRS_A: .long 0xFEC02000
306 MRS1_A: .long 0xFEC00B08
307 MRS2_A: .long 0xFEC00308
309 MIM_U_D: .long 0x00004000
310 MIM_L_D0: .long 0x03e80009
311 MIM_L_D1: .long 0x03e80209
318 STR_L_D: .long 0x000f0000
319 SDR_L_D: .long 0x00000400
324 /* Cache Controller */
327 RWTCNT_A: .long WTCNT
329 CCR_D: .long 0x0000090b
330 CCR_D_2: .long 0x00000103
331 MMUCR_D: .long 0x00000004
332 MSTPCR0_D: .long 0x00001001
333 MSTPCR2_D: .long 0xffffffff
335 /* local Bus State Controller */
336 MMSELR_A: .long MMSELR
338 CS0BCR_A: .long CS0BCR
339 CS1BCR_A: .long CS1BCR
340 CS2BCR_A: .long CS2BCR
341 CS4BCR_A: .long CS4BCR
342 CS5BCR_A: .long CS5BCR
343 CS6BCR_A: .long CS6BCR
344 CS0WCR_A: .long CS0WCR
345 CS1WCR_A: .long CS1WCR
346 CS2WCR_A: .long CS2WCR
347 CS4WCR_A: .long CS4WCR
348 CS5WCR_A: .long CS5WCR
349 CS6WCR_A: .long CS6WCR
350 CS5PCR_A: .long CS5PCR
351 CS6PCR_A: .long CS6PCR
353 MMSELR_D: .long 0xA5A50003
354 BCR_D: .long 0x00000000
355 CS0BCR_D: .long 0x77777770
356 CS1BCR_D: .long 0x77777670
357 CS2BCR_D: .long 0x77777770
358 CS4BCR_D: .long 0x77777770
359 CS5BCR_D: .long 0x77777670
360 CS6BCR_D: .long 0x77777770
361 CS0WCR_D: .long 0x00020006
362 CS1WCR_D: .long 0x00232304
363 CS2WCR_D: .long 0x7777770F
364 CS4WCR_D: .long 0x7777770F
365 CS5WCR_D: .long 0x00101006
366 CS6WCR_D: .long 0x77777703
367 CS5PCR_D: .long 0x77000000
368 CS6PCR_D: .long 0x77000000
370 REPEAT0_R3: .long 0x00002000
371 REPEAT0_R1: .long 0x0000200