/* * Copyright (C) 2011 Renesas Electronics Europe Ltd. * Copyright (C) 2008 Renesas Solutions Corp. * Copyright (C) 2008 Nobuhiro Iwamatsu * * Based on board/renesas/rsk7203/lowlevel_init.S * * SPDX-License-Identifier: GPL-2.0+ */ #include #include #include .global lowlevel_init .text .align 2 lowlevel_init: /* Cache setting */ write32 CCR1_A ,CCR1_D /* io_set_cpg */ write8 STBCR3_A, STBCR3_D write8 STBCR4_A, STBCR4_D write8 STBCR5_A, STBCR5_D write8 STBCR6_A, STBCR6_D write8 STBCR7_A, STBCR7_D write8 STBCR8_A, STBCR8_D /* ConfigurePortPins */ /* Leaving LED1 ON for sanity test */ write16 PJCR1_A, PJCR1_D1 write16 PJCR2_A, PJCR2_D write16 PJIOR0_A, PJIOR0_D1 write16 PJDR0_A, PJDR0_D write16 PJPR0_A, PJPR0_D /* Configure EN_PIN & RS_PIN */ write16 PGCR2_A, PGCR2_D write16 PGIOR0_A, PGIOR0_D /* Configure the port pins connected to UART */ write16 PJCR1_A, PJCR1_D2 write16 PJIOR0_A, PJIOR0_D2 /* Configure Operating Frequency */ write16 WTCSR_A, WTCSR_D0 write16 WTCSR_A, WTCSR_D1 write16 WTCNT_A, WTCNT_D /* Control of RESBANK */ write16 IBNR_A, IBNR_D /* Enable SCIF3 module */ write16 STBCR4_A, STBCR4_D /* Set clock mode*/ write16 FRQCR_A, FRQCR_D /* Configure Bus And Memory */ init_bsc_cs0: pfc_settings: write16 PCCR2_A, PCCR2_D write16 PCCR1_A, PCCR1_D write16 PCCR0_A, PCCR0_D write16 PBCR0_A, PBCR0_D write16 PBCR1_A, PBCR1_D write16 PBCR2_A, PBCR2_D write16 PBCR3_A, PBCR3_D write16 PBCR4_A, PBCR4_D write16 PBCR5_A, PBCR5_D write16 PDCR0_A, PDCR0_D write16 PDCR1_A, PDCR1_D write16 PDCR2_A, PDCR2_D write16 PDCR3_A, PDCR3_D write32 CS0WCR_A, CS0WCR_D write32 CS0BCR_A, CS0BCR_D init_bsc_cs2: write16 PJCR0_A, PJCR0_D write32 CS2WCR_A, CS2WCR_D init_sdram: write32 CS3BCR_A, CS3BCR_D write32 CS3WCR_A, CS3WCR_D write32 SDCR_A, SDCR_D write32 RTCOR_A, RTCOR_D write32 RTCSR_A, RTCSR_D /* wait 200us */ mov.l REPEAT_D, r3 mov #0, r2 repeat0: add #1, r2 cmp/hs r3, r2 bf repeat0 nop mov.l SDRAM_MODE, r1 mov #0, r0 mov.l r0, @r1 nop rts .align 4 CCR1_A: .long CCR1 CCR1_D: .long 0x0000090B FRQCR_A: .long 0xFFFE0010 FRQCR_D: .word 0x1003 .align 2 STBCR3_A: .long 0xFFFE0408 STBCR3_D: .long 0x00000002 STBCR4_A: .long 0xFFFE040C STBCR4_D: .word 0x0000 .align 2 STBCR5_A: .long 0xFFFE0410 STBCR5_D: .long 0x00000010 STBCR6_A: .long 0xFFFE0414 STBCR6_D: .long 0x00000002 STBCR7_A: .long 0xFFFE0418 STBCR7_D: .long 0x0000002A STBCR8_A: .long 0xFFFE041C STBCR8_D: .long 0x0000007E PJCR1_A: .long 0xFFFE390C PJCR1_D1: .word 0x0000 PJCR1_D2: .word 0x0022 PJCR2_A: .long 0xFFFE390A PJCR2_D: .word 0x0000 .align 2 PJIOR0_A: .long 0xFFFE3912 PJIOR0_D1: .word 0x0FC0 PJIOR0_D2: .word 0x0FE0 PJDR0_A: .long 0xFFFE3916 PJDR0_D: .word 0x0FBF .align 2 PJPR0_A: .long 0xFFFE391A PJPR0_D: .long 0x00000FBF PGCR2_A: .long 0xFFFE38CA PGCR2_D: .word 0x0000 .align 2 PGIOR0_A: .long 0xFFFE38D2 PGIOR0_D: .word 0x03F0 .align 2 WTCSR_A: .long 0xFFFE0000 WTCSR_D0: .word 0x0000 WTCSR_D1: .word 0x0000 WTCNT_A: .long 0xFFFE0002 WTCNT_D: .word 0x0000 .align 2 PCCR0_A: .long 0xFFFE384E PDCR0_A: .long 0xFFFE386E PDCR1_A: .long 0xFFFE386C PDCR2_A: .long 0xFFFE386A PDCR3_A: .long 0xFFFE3868 PBCR0_A: .long 0xFFFE382E PBCR1_A: .long 0xFFFE382C PBCR2_A: .long 0xFFFE382A PBCR3_A: .long 0xFFFE3828 PBCR4_A: .long 0xFFFE3826 PBCR5_A: .long 0xFFFE3824 PCCR0_D: .word 0x1111 PDCR0_D: .word 0x1111 PDCR1_D: .word 0x1111 PDCR2_D: .word 0x1111 PDCR3_D: .word 0x1111 PBCR0_D: .word 0x1110 PBCR1_D: .word 0x1111 PBCR2_D: .word 0x1111 PBCR3_D: .word 0x1111 PBCR4_D: .word 0x1111 PBCR5_D: .word 0x0111 .align 2 CS0WCR_A: .long 0xFFFC0028 CS0WCR_D: .long 0x00000B41 CS0BCR_A: .long 0xFFFC0004 CS0BCR_D: .long 0x10000400 PJCR0_A: .long 0xFFFE390E PJCR0_D: .word 0x3300 .align 2 CS2WCR_A: .long 0xFFFC0030 CS2WCR_D: .long 0x00000B01 PCCR2_A: .long 0xFFFE384A PCCR2_D: .word 0x0001 .align 2 PCCR1_A: .long 0xFFFE384C PCCR1_D: .word 0x1111 .align 2 CS3BCR_A: .long 0xFFFC0010 CS3BCR_D: .long 0x00004400 CS3WCR_A: .long 0xFFFC0034 CS3WCR_D: .long 0x0000288A SDCR_A: .long 0xFFFC004C SDCR_D: .long 0x00000812 RTCOR_A: .long 0xFFFC0058 RTCOR_D: .long 0xA55A0046 RTCSR_A: .long 0xFFFC0050 RTCSR_D: .long 0xA55A0010 IBNR_A: .long 0xFFFE080E IBNR_D: .word 0x0000 .align 2 SDRAM_MODE: .long 0xFFFC5040 REPEAT_D: .long 0x00000085