Rename TEXT_BASE into CONFIG_SYS_TEXT_BASE
[platform/kernel/u-boot.git] / board / renesas / MigoR / lowlevel_init.S
index e48f7b3..e32a7af 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007
+ * Copyright (C) 2007-2008
  * Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
  *
  * Copyright (C) 2007
 #include <version.h>
 
 #include <asm/processor.h>
+#include <asm/macro.h>
 
 /*
- *  Board specific low level init code, called _very_ early in the
- *  startup sequence. Relocation to SDRAM has not happened yet, no
- *  stack is available, bss section has not been initialised, etc.
+ * Board specific low level init code, called _very_ early in the
+ * startup sequence. Relocation to SDRAM has not happened yet, no
+ * stack is available, bss section has not been initialised, etc.
  *
- *  (Note: As no stack is available, no subroutines can be called...).
+ * (Note: As no stack is available, no subroutines can be called...).
  */
 
        .global lowlevel_init
        .align  2
 
 lowlevel_init:
-       mov.l   CCR_A, r1       ! Address of Cache Control Register
-       mov.l   CCR_D, r0       ! Instruction Cache Invalidate
-       mov.l   r0, @r1
+       write32 CCR_A, CCR_D            ! Address of Cache Control Register
+                                       ! Instruction Cache Invalidate
 
-       mov.l   MMUCR_A, r1     ! Address of MMU Control Register
-       mov.l   MMUCR_D, r0     ! TI == TLB Invalidate bit
-       mov.l   r0, @r1
+       write32 MMUCR_A, MMUCR_D        ! Address of MMU Control Register
+                                       ! TI == TLB Invalidate bit
 
-       mov.l   MSTPCR0_A, r1   ! Address of Power Control Register 0
-       mov.l   MSTPCR0_D, r0   !
-       mov.l   r0, @r1
+       write32 MSTPCR0_A, MSTPCR0_D    ! Address of Power Control Register 0
 
-       mov.l   MSTPCR2_A, r1   ! Address of Power Control Register 2
-       mov.l   MSTPCR2_D, r0   !
-       mov.l   r0, @r1
+       write32 MSTPCR2_A, MSTPCR2_D    ! Address of Power Control Register 2
 
-       mov.l   PFC_PULCR_A, r1
-       mov.w   PFC_PULCR_D, r0
-       mov.w   r0,@r1
+       write16 PFC_PULCR_A, PFC_PULCR_D
 
-       mov.l   PFC_DRVCR_A, r1
-       mov.w   PFC_DRVCR_D, r0
-       mov.w   r0, @r1
+       write16 PFC_DRVCR_A, PFC_DRVCR_D
 
-       mov.l   SBSCR_A, r1     !
-       mov.w   SBSCR_D, r0     !
-       mov.w   r0, @r1
+       write16 SBSCR_A, SBSCR_D
 
-       mov.l   PSCR_A, r1      !
-       mov.w   PSCR_D, r0      !
-       mov.w   r0, @r1
+       write16 PSCR_A, PSCR_D
 
-       mov.l   RWTCSR_A, r1    ! 0xA4520004 (Watchdog Control / Status Register)
-       mov.w   RWTCSR_D_1, r0  ! 0xA507 -> timer_STOP/WDT_CLK=max
-       mov.w   r0, @r1
+       write16 RWTCSR_A, RWTCSR_D_1    ! 0xA4520004 (Watchdog Control / Status Register)
+                                       ! 0xA507 -> timer_STOP / WDT_CLK = max
 
-       mov.l   RWTCNT_A, r1    ! 0xA4520000 (Watchdog Count Register)
-       mov.w   RWTCNT_D, r0    ! 0x5A00 -> Clear
-       mov.w   r0, @r1
+       write16 RWTCNT_A, RWTCNT_D      ! 0xA4520000 (Watchdog Count Register)
+                                       ! 0x5A00 -> Clear
 
-       mov.l   RWTCSR_A, r1    ! 0xA4520004 (Watchdog Control / Status Register)
-       mov.w   RWTCSR_D_2, r0  ! 0xA504 -> timer_STOP/CLK=500ms
-       mov.w   r0, @r1
+       write16 RWTCSR_A, RWTCSR_D_2    ! 0xA4520004 (Watchdog Control / Status Register)
+                                       ! 0xA504 -> timer_STOP / CLK = 500ms
 
-       mov.l   DLLFRQ_A, r1    ! 20080115
-       mov.l   DLLFRQ_D, r0    ! 20080115
-       mov.l   r0, @r1
+       write32 DLLFRQ_A, DLLFRQ_D      ! 20080115
+                                       ! 20080115
 
-       mov.l   FRQCR_A, r1             ! 0xA4150000 Frequency control register
-       mov.l   FRQCR_D, r0     ! 20080115
-       mov.l   r0, @r1
+       write32 FRQCR_A, FRQCR_D        ! 0xA4150000 Frequency control register
+                                       ! 20080115
 
-       mov.l   CCR_A, r1               ! Address of Cache Control Register
-       mov.l   CCR_D_2, r0     ! ??
-       mov.l   r0, @r1
+       write32 CCR_A, CCR_D_2          ! Address of Cache Control Register
+                                       ! ??
 
 bsc_init:
-       mov.l   CMNCR_A, r1     ! CMNCR address -> R1
-       mov.l   CMNCR_D, r0     ! CMNCR data    -> R0
-       mov.l   r0, @r1         ! CMNCR set
+       write32 CMNCR_A, CMNCR_D
 
-       mov.l   CS0BCR_A, r1    ! CS0BCR address -> R1
-       mov.l   CS0BCR_D, r0    ! CS0BCR data    -> R0
-       mov.l   r0, @r1         ! CS0BCR set
+       write32 CS0BCR_A, CS0BCR_D
 
-       mov.l   CS4BCR_A, r1    ! CS4BCR address -> R1
-       mov.l   CS4BCR_D, r0    ! CS4BCR data    -> R0
-       mov.l   r0, @r1         ! CS4BCR set
+       write32 CS4BCR_A, CS4BCR_D
 
-       mov.l   CS5ABCR_A, r1   ! CS5ABCR address -> R1
-       mov.l   CS5ABCR_D, r0   ! CS5ABCR data    -> R0
-       mov.l   r0, @r1         ! CS5ABCR set
+       write32 CS5ABCR_A, CS5ABCR_D
 
-       mov.l   CS5BBCR_A, r1   ! CS5BBCR address -> R1
-       mov.l   CS5BBCR_D, r0   ! CS5BBCR data    -> R0
-       mov.l   r0, @r1         ! CS5BBCR set
+       write32 CS5BBCR_A, CS5BBCR_D
 
-       mov.l   CS6ABCR_A, r1   ! CS6ABCR address -> R1
-       mov.l   CS6ABCR_D, r0   ! CS6ABCR data    -> R0
-       mov.l   r0, @r1         ! CS6ABCR set
+       write32 CS6ABCR_A, CS6ABCR_D
 
-       mov.l   CS0WCR_A, r1    ! CS0WCR address -> R1
-       mov.l   CS0WCR_D, r0    ! CS0WCR data    -> R0
-       mov.l   r0, @r1         ! CS0WCR set
+       write32 CS0WCR_A, CS0WCR_D
 
-       mov.l   CS4WCR_A, r1    ! CS4WCR address -> R1
-       mov.l   CS4WCR_D, r0    ! CS4WCR data    -> R0
-       mov.l   r0, @r1         ! CS4WCR set
+       write32 CS4WCR_A, CS4WCR_D
 
-       mov.l   CS5AWCR_A, r1   ! CS5AWCR address -> R1
-       mov.l   CS5AWCR_D, r0   ! CS5AWCR data    -> R0
-       mov.l   r0, @r1         ! CS5AWCR set
+       write32 CS5AWCR_A, CS5AWCR_D
 
-       mov.l   CS5BWCR_A, r1   ! CS5BWCR address -> R1
-       mov.l   CS5BWCR_D, r0   ! CS5BWCR data    -> R0
-       mov.l   r0, @r1         ! CS5BWCR set
+       write32 CS5BWCR_A, CS5BWCR_D
 
-       mov.l   CS6AWCR_A, r1   ! CS6AWCR address -> R1
-       mov.l   CS6AWCR_D, r0   ! CS6AWCR data    -> R0
-       mov.l   r0, @r1         ! CS6AWCR set
+       write32 CS6AWCR_A, CS6AWCR_D
 
        ! SDRAM initialization
-       mov.l   SDCR_A, r1      ! SB_SDCR address -> R1
-       mov.l   SDCR_D, r0      ! SB_SDCR data    -> R0
-       mov.l   r0, @r1         ! SB_SDCR set
+       write32 SDCR_A, SDCR_D
 
-       mov.l   SDWCR_A, r1     ! SB_SDWCR address -> R1
-       mov.l   SDWCR_D, r0     ! SB_SDWCR data    -> R0
-       mov.l   r0, @r1         ! SB_SDWCR set
+       write32 SDWCR_A, SDWCR_D
 
-       mov.l   SDPCR_A, r1     ! SB_SDPCR address -> R1
-       mov.l   SDPCR_D, r0     ! SB_SDPCR data    -> R0
-       mov.l   r0, @r1         ! SB_SDPCR set
+       write32 SDPCR_A, SDPCR_D
 
-       mov.l   RTCOR_A, r1     ! SB_RTCOR address -> R1
-       mov.l   RTCOR_D, r0     ! SB_RTCOR data    -> R0
-       mov.l   r0, @r1         ! SB_RTCOR set
+       write32 RTCOR_A, RTCOR_D
 
-       mov.l   RTCNT_A, r1     ! SB_RTCNT address -> R1
-       mov.l   RTCNT_D, r0     ! SB_RTCNT data    -> R0
-       mov.l   r0, @r1
+       write32 RTCNT_A, RTCNT_D
 
-       mov.l   RTCSR_A, r1     ! SB_RTCSR address -> R1
-       mov.l   RTCSR_D, r0     ! SB_RTCSR data    -> R0
-       mov.l   r0, @r1         ! SB_RTCSR set
+       write32 RTCSR_A, RTCSR_D
 
-       mov.l   RFCR_A, r1      ! SB_RFCR address -> R1
-       mov.l   RFCR_D, r0      ! SB_RFCR data    -> R0
-       mov.l   r0, @r1
+       write32 RFCR_A, RFCR_D
 
-       mov.l   SDMR3_A, r1     ! SDMR3 address -> R1
-       mov     #0x00, r0       ! SDMR3 data    -> R0
-       mov.b   r0, @r1         ! SDMR3 set
+       write8  SDMR3_A, SDMR3_D
 
-       ! BL bit off (init = ON)  (?!?)
+       ! BL bit off (init = ON) (?!?)
 
        stc     sr, r0                          ! BL bit off(init=ON)
        mov.l   SR_MASK_D, r1
@@ -211,25 +154,25 @@ PFC_PULCR_D:      .long   0x6000
 PFC_DRVCR_D:   .long   0x0464
 FRQCR_D:       .long   0x07033639
 PLLCR_D:       .long   0x00005000
-DLLFRQ_D:      .long   0x000004F6      ! 20080115
+DLLFRQ_D:      .long   0x000004F6
 
 CMNCR_A:       .long   CMNCR
-CMNCR_D:       .long   0x0000001B      ! 20080115
-CS0BCR_A:      .long   CS0BCR          ! Flash bank 1
+CMNCR_D:       .long   0x0000001B
+CS0BCR_A:      .long   CS0BCR
 CS0BCR_D:      .long   0x24920400
-CS4BCR_A:      .long   CS4BCR          !
-CS4BCR_D:      .long   0x10003400      ! 20080115
-CS5ABCR_A:     .long   CS5ABCR         !
+CS4BCR_A:      .long   CS4BCR
+CS4BCR_D:      .long   0x00003400
+CS5ABCR_A:     .long   CS5ABCR
 CS5ABCR_D:     .long   0x24920400
-CS5BBCR_A:     .long   CS5BBCR         !
+CS5BBCR_A:     .long   CS5BBCR
 CS5BBCR_D:     .long   0x24920400
-CS6ABCR_A:     .long   CS6ABCR         !
+CS6ABCR_A:     .long   CS6ABCR
 CS6ABCR_D:     .long   0x24920400
 
 CS0WCR_A:      .long   CS0WCR
 CS0WCR_D:      .long   0x00000380
 CS4WCR_A:      .long   CS4WCR
-CS4WCR_D:      .long   0x00100A81      ! 20080115
+CS4WCR_D:      .long   0x00110080
 CS5AWCR_A:     .long   CS5AWCR
 CS5AWCR_D:     .long   0x00000300
 CS5BWCR_A:     .long   CS5BWCR
@@ -238,20 +181,21 @@ CS6AWCR_A:        .long   CS6AWCR
 CS6AWCR_D:     .long   0x00000300
 
 SDCR_A:                .long   SBSC_SDCR
-SDCR_D:                .long   0x80160809      ! 20080115
+SDCR_D:                .long   0x80160809
 SDWCR_A:       .long   SBSC_SDWCR
-SDWCR_D:       .long   0x0014450C      ! 20080115
+SDWCR_D:       .long   0x0014450C
 SDPCR_A:       .long   SBSC_SDPCR
 SDPCR_D:       .long   0x00000087
 RTCOR_A:       .long   SBSC_RTCOR
 RTCNT_A:       .long   SBSC_RTCNT
 RTCNT_D:       .long   0xA55A0012
-RTCOR_D:       .long   0xA55A001C      ! 20080115
+RTCOR_D:       .long   0xA55A001C
 RTCSR_A:       .long   SBSC_RTCSR
 RFCR_A:                .long   SBSC_RFCR
 RFCR_D:                .long   0xA55A0221
-RTCSR_D:       .long   0xA55A009a      ! 20080115
-SDMR3_A:       .long   0xFE581180      ! 20080115
+RTCSR_D:       .long   0xA55A009a
+SDMR3_A:       .long   0xFE581180
+SDMR3_D:       .long   0x0
 
 SR_MASK_D:     .long   0xEFFFFF0F
 
@@ -260,5 +204,5 @@ SR_MASK_D:  .long   0xEFFFFF0F
 SBSCR_D:       .word   0x0044
 PSCR_D:                .word   0x0000
 RWTCSR_D_1:    .word   0xA507
-RWTCSR_D_2:    .word   0xA504          ! 20080115
+RWTCSR_D_2:    .word   0xA504
 RWTCNT_D:      .word   0x5A00