1*c1da2a22SNobuhiro Iwamatsu/* 2*c1da2a22SNobuhiro Iwamatsu * modified from SH-IPL+g (init-r0p751rlc0011rl.S) 3*c1da2a22SNobuhiro Iwamatsu * Initial Register Data for R0P751RLC0011RL (SH7751R 240MHz/120MHz/60MHz) 4*c1da2a22SNobuhiro Iwamatsu * Coyright (c) 2007,2008 Nobuhiro Iwamatsu <iwamatsu@nigauri.org> 5*c1da2a22SNobuhiro Iwamatsu*/ 6*c1da2a22SNobuhiro Iwamatsu 7*c1da2a22SNobuhiro Iwamatsu#include <config.h> 8*c1da2a22SNobuhiro Iwamatsu#include <version.h> 9*c1da2a22SNobuhiro Iwamatsu 10*c1da2a22SNobuhiro Iwamatsu#include <asm/processor.h> 11*c1da2a22SNobuhiro Iwamatsu 12*c1da2a22SNobuhiro Iwamatsu .global lowlevel_init 13*c1da2a22SNobuhiro Iwamatsu .text 14*c1da2a22SNobuhiro Iwamatsu .align 2 15*c1da2a22SNobuhiro Iwamatsu 16*c1da2a22SNobuhiro Iwamatsulowlevel_init: 17*c1da2a22SNobuhiro Iwamatsu 18*c1da2a22SNobuhiro Iwamatsu mov.l CCR_A, r1 19*c1da2a22SNobuhiro Iwamatsu mov.l CCR_D_D, r0 20*c1da2a22SNobuhiro Iwamatsu mov.l r0,@r1 21*c1da2a22SNobuhiro Iwamatsu 22*c1da2a22SNobuhiro Iwamatsu mov.l MMUCR_A,r1 23*c1da2a22SNobuhiro Iwamatsu mov.l MMUCR_D,r0 24*c1da2a22SNobuhiro Iwamatsu mov.w r0,@r1 25*c1da2a22SNobuhiro Iwamatsu 26*c1da2a22SNobuhiro Iwamatsu mov.l BCR1_A,r1 27*c1da2a22SNobuhiro Iwamatsu mov.l BCR1_D,r0 28*c1da2a22SNobuhiro Iwamatsu mov.l r0,@r1 29*c1da2a22SNobuhiro Iwamatsu 30*c1da2a22SNobuhiro Iwamatsu mov.l BCR2_A,r1 31*c1da2a22SNobuhiro Iwamatsu mov.l BCR2_D,r0 32*c1da2a22SNobuhiro Iwamatsu mov.w r0,@r1 33*c1da2a22SNobuhiro Iwamatsu 34*c1da2a22SNobuhiro Iwamatsu mov.l BCR3_A,r1 35*c1da2a22SNobuhiro Iwamatsu mov.l BCR3_D,r0 36*c1da2a22SNobuhiro Iwamatsu mov.w r0,@r1 37*c1da2a22SNobuhiro Iwamatsu 38*c1da2a22SNobuhiro Iwamatsu mov.l BCR4_A,r1 39*c1da2a22SNobuhiro Iwamatsu mov.l BCR4_D,r0 40*c1da2a22SNobuhiro Iwamatsu mov.l r0,@r1 41*c1da2a22SNobuhiro Iwamatsu 42*c1da2a22SNobuhiro Iwamatsu mov.l WCR1_A,r1 43*c1da2a22SNobuhiro Iwamatsu mov.l WCR1_D,r0 44*c1da2a22SNobuhiro Iwamatsu mov.l r0,@r1 45*c1da2a22SNobuhiro Iwamatsu 46*c1da2a22SNobuhiro Iwamatsu mov.l WCR2_A,r1 47*c1da2a22SNobuhiro Iwamatsu mov.l WCR2_D,r0 48*c1da2a22SNobuhiro Iwamatsu mov.l r0,@r1 49*c1da2a22SNobuhiro Iwamatsu 50*c1da2a22SNobuhiro Iwamatsu mov.l WCR3_A,r1 51*c1da2a22SNobuhiro Iwamatsu mov.l WCR3_D,r0 52*c1da2a22SNobuhiro Iwamatsu mov.l r0,@r1 53*c1da2a22SNobuhiro Iwamatsu 54*c1da2a22SNobuhiro Iwamatsu mov.l PCR_A,r1 55*c1da2a22SNobuhiro Iwamatsu mov.l PCR_D,r0 56*c1da2a22SNobuhiro Iwamatsu mov.w r0,@r1 57*c1da2a22SNobuhiro Iwamatsu 58*c1da2a22SNobuhiro Iwamatsu mov.l LED_A,r1 59*c1da2a22SNobuhiro Iwamatsu mov #0xff,r0 60*c1da2a22SNobuhiro Iwamatsu mov.w r0,@r1 61*c1da2a22SNobuhiro Iwamatsu 62*c1da2a22SNobuhiro Iwamatsu mov.l MCR_A,r1 63*c1da2a22SNobuhiro Iwamatsu mov.l MCR_D1,r0 64*c1da2a22SNobuhiro Iwamatsu mov.l r0,@r1 65*c1da2a22SNobuhiro Iwamatsu 66*c1da2a22SNobuhiro Iwamatsu mov.l RTCNT_A,r1 67*c1da2a22SNobuhiro Iwamatsu mov.l RTCNT_D,r0 68*c1da2a22SNobuhiro Iwamatsu mov.w r0,@r1 69*c1da2a22SNobuhiro Iwamatsu 70*c1da2a22SNobuhiro Iwamatsu mov.l RTCOR_A,r1 71*c1da2a22SNobuhiro Iwamatsu mov.l RTCOR_D,r0 72*c1da2a22SNobuhiro Iwamatsu mov.w r0,@r1 73*c1da2a22SNobuhiro Iwamatsu 74*c1da2a22SNobuhiro Iwamatsu mov.l RFCR_A,r1 75*c1da2a22SNobuhiro Iwamatsu mov.l RFCR_D,r0 76*c1da2a22SNobuhiro Iwamatsu mov.w r0,@r1 77*c1da2a22SNobuhiro Iwamatsu 78*c1da2a22SNobuhiro Iwamatsu mov.l RTCSR_A,r1 79*c1da2a22SNobuhiro Iwamatsu mov.l RTCSR_D,r0 80*c1da2a22SNobuhiro Iwamatsu mov.w r0,@r1 81*c1da2a22SNobuhiro Iwamatsu 82*c1da2a22SNobuhiro Iwamatsu mov.l SDMR3_A,r1 83*c1da2a22SNobuhiro Iwamatsu mov #0x55,r0 84*c1da2a22SNobuhiro Iwamatsu mov.b r0,@r1 85*c1da2a22SNobuhiro Iwamatsu 86*c1da2a22SNobuhiro Iwamatsu /* Wait DRAM refresh 30 times */ 87*c1da2a22SNobuhiro Iwamatsu mov.l RFCR_A,r1 88*c1da2a22SNobuhiro Iwamatsu mov #30,r3 89*c1da2a22SNobuhiro Iwamatsu1: 90*c1da2a22SNobuhiro Iwamatsu mov.w @r1,r0 91*c1da2a22SNobuhiro Iwamatsu extu.w r0,r2 92*c1da2a22SNobuhiro Iwamatsu cmp/hi r3,r2 93*c1da2a22SNobuhiro Iwamatsu bf 1b 94*c1da2a22SNobuhiro Iwamatsu 95*c1da2a22SNobuhiro Iwamatsu mov.l MCR_A,r1 96*c1da2a22SNobuhiro Iwamatsu mov.l MCR_D2,r0 97*c1da2a22SNobuhiro Iwamatsu mov.l r0,@r1 98*c1da2a22SNobuhiro Iwamatsu 99*c1da2a22SNobuhiro Iwamatsu mov.l SDMR3_A,r1 100*c1da2a22SNobuhiro Iwamatsu mov #0,r0 101*c1da2a22SNobuhiro Iwamatsu mov.b r0,@r1 102*c1da2a22SNobuhiro Iwamatsu 103*c1da2a22SNobuhiro Iwamatsu mov.l IRLMASK_A,r1 104*c1da2a22SNobuhiro Iwamatsu mov.l IRLMASK_D,r0 105*c1da2a22SNobuhiro Iwamatsu mov.l r0,@r1 106*c1da2a22SNobuhiro Iwamatsu 107*c1da2a22SNobuhiro Iwamatsu mov.l CCR_A, r1 108*c1da2a22SNobuhiro Iwamatsu mov.l CCR_D_E, r0 109*c1da2a22SNobuhiro Iwamatsu mov.l r0, @r1 110*c1da2a22SNobuhiro Iwamatsu 111*c1da2a22SNobuhiro Iwamatsu rts 112*c1da2a22SNobuhiro Iwamatsu nop 113*c1da2a22SNobuhiro Iwamatsu 114*c1da2a22SNobuhiro Iwamatsu .align 2 115*c1da2a22SNobuhiro IwamatsuCCR_A: .long CCR /* Cache Control Register */ 116*c1da2a22SNobuhiro IwamatsuCCR_D_D: .long 0x0808 /* Flush the cache, disable */ 117*c1da2a22SNobuhiro IwamatsuCCR_D_E: .long 0x8000090B 118*c1da2a22SNobuhiro Iwamatsu 119*c1da2a22SNobuhiro IwamatsuFRQCR_A: .long FRQCR /* FRQCR Address */ 120*c1da2a22SNobuhiro IwamatsuFRQCR_D: .long 0x00000e0a /* 03/07/15 modify */ 121*c1da2a22SNobuhiro IwamatsuBCR1_A: .long BCR1 /* BCR1 Address */ 122*c1da2a22SNobuhiro IwamatsuBCR1_D: .long 0x00180008 123*c1da2a22SNobuhiro IwamatsuBCR2_A: .long BCR2 /* BCR2 Address */ 124*c1da2a22SNobuhiro IwamatsuBCR2_D: .long 0xabe8 125*c1da2a22SNobuhiro IwamatsuBCR3_A: .long BCR3 /* BCR3 Address */ 126*c1da2a22SNobuhiro IwamatsuBCR3_D: .long 0x0000 127*c1da2a22SNobuhiro IwamatsuBCR4_A: .long BCR4 /* BCR4 Address */ 128*c1da2a22SNobuhiro IwamatsuBCR4_D: .long 0x00000010 129*c1da2a22SNobuhiro IwamatsuWCR1_A: .long WCR1 /* WCR1 Address */ 130*c1da2a22SNobuhiro IwamatsuWCR1_D: .long 0x33343333 131*c1da2a22SNobuhiro IwamatsuWCR2_A: .long WCR2 /* WCR2 Address */ 132*c1da2a22SNobuhiro IwamatsuWCR2_D: .long 0xcff86fbf 133*c1da2a22SNobuhiro IwamatsuWCR3_A: .long WCR3 /* WCR3 Address */ 134*c1da2a22SNobuhiro IwamatsuWCR3_D: .long 0x07777707 135*c1da2a22SNobuhiro IwamatsuLED_A: .long 0x04000036 /* LED Address */ 136*c1da2a22SNobuhiro IwamatsuRTCNT_A: .long RTCNT /* RTCNT Address */ 137*c1da2a22SNobuhiro IwamatsuRTCNT_D: .long 0xA500 /* RTCNT Write Code A5h Data 00h */ 138*c1da2a22SNobuhiro IwamatsuRTCOR_A: .long RTCOR /* RTCOR Address */ 139*c1da2a22SNobuhiro IwamatsuRTCOR_D: .long 0xA534 /* RTCOR Write Code */ 140*c1da2a22SNobuhiro IwamatsuRTCSR_A: .long RTCSR /* RTCSR Address */ 141*c1da2a22SNobuhiro IwamatsuRTCSR_D: .long 0xA510 /* RTCSR Write Code */ 142*c1da2a22SNobuhiro IwamatsuSDMR3_A: .long 0xFF9400CC /* SDMR3 Address */ 143*c1da2a22SNobuhiro IwamatsuSDMR3_D: .long 0x55 144*c1da2a22SNobuhiro IwamatsuMCR_A: .long MCR /* MCR Address */ 145*c1da2a22SNobuhiro IwamatsuMCR_D1: .long 0x081901F4 /* MRSET:'0' */ 146*c1da2a22SNobuhiro IwamatsuMCR_D2: .long 0x481901F4 /* MRSET:'1' */ 147*c1da2a22SNobuhiro IwamatsuRFCR_A: .long RFCR /* RFCR Address */ 148*c1da2a22SNobuhiro IwamatsuRFCR_D: .long 0xA400 /* RFCR Write Code A4h Data 00h */ 149*c1da2a22SNobuhiro IwamatsuPCR_A: .long PCR /* PCR Address */ 150*c1da2a22SNobuhiro IwamatsuPCR_D: .long 0x0000 151*c1da2a22SNobuhiro IwamatsuMMUCR_A: .long MMUCR /* MMUCCR Address */ 152*c1da2a22SNobuhiro IwamatsuMMUCR_D: .long 0x00000000 /* MMUCCR Data */ 153*c1da2a22SNobuhiro IwamatsuIRLMASK_A: .long 0xA4000000 /* IRLMASK Address */ 154*c1da2a22SNobuhiro IwamatsuIRLMASK_D: .long 0x00000000 /* IRLMASK Data */ 155