12e4a6e36SShinya Kuribayashi/* Memory sub-system initialization code */ 22e4a6e36SShinya Kuribayashi 32e4a6e36SShinya Kuribayashi#include <config.h> 4*76ada5f8SDaniel Schwierzeck#include <mach/au1x00.h> 52e4a6e36SShinya Kuribayashi#include <asm/regdef.h> 62e4a6e36SShinya Kuribayashi#include <asm/mipsregs.h> 72e4a6e36SShinya Kuribayashi 82e4a6e36SShinya Kuribayashi#define AU1500_SYS_ADDR 0xB1900000 92e4a6e36SShinya Kuribayashi#define sys_endian 0x0038 102e4a6e36SShinya Kuribayashi#define CP0_Config0 $16 112e4a6e36SShinya Kuribayashi#define MEM_1MS ((396000000/1000000) * 1000) 122e4a6e36SShinya Kuribayashi 132e4a6e36SShinya Kuribayashi .text 142e4a6e36SShinya Kuribayashi .set noreorder 152e4a6e36SShinya Kuribayashi .set mips32 162e4a6e36SShinya Kuribayashi 172e4a6e36SShinya Kuribayashi .globl lowlevel_init 182e4a6e36SShinya Kuribayashilowlevel_init: 192e4a6e36SShinya Kuribayashi /* 202e4a6e36SShinya Kuribayashi * Step 1) Establish CPU endian mode. 212e4a6e36SShinya Kuribayashi * NOTE: A fair amount of code is necessary on the Pb1000 to 222e4a6e36SShinya Kuribayashi * obtain the value of Switch S8.1 which is used to determine 232e4a6e36SShinya Kuribayashi * endian at run-time. 242e4a6e36SShinya Kuribayashi */ 252e4a6e36SShinya Kuribayashi 262e4a6e36SShinya Kuribayashi /* RCE1 */ 272e4a6e36SShinya Kuribayashi li t0, MEM_STCFG1 282e4a6e36SShinya Kuribayashi li t1, 0x00000083 292e4a6e36SShinya Kuribayashi sw t1, 0(t0) 302e4a6e36SShinya Kuribayashi 312e4a6e36SShinya Kuribayashi li t0, MEM_STTIME1 322e4a6e36SShinya Kuribayashi li t1, 0x33030A10 332e4a6e36SShinya Kuribayashi sw t1, 0(t0) 342e4a6e36SShinya Kuribayashi 352e4a6e36SShinya Kuribayashi li t0, MEM_STADDR1 362e4a6e36SShinya Kuribayashi li t1, 0x11803E40 372e4a6e36SShinya Kuribayashi sw t1, 0(t0) 382e4a6e36SShinya Kuribayashi 392e4a6e36SShinya Kuribayashi /* Set DSTRB bits so switch will read correctly */ 402e4a6e36SShinya Kuribayashi li t1, 0xBE00000C 412e4a6e36SShinya Kuribayashi lw t2, 0(t1) 422e4a6e36SShinya Kuribayashi or t2, t2, 0x00000300 432e4a6e36SShinya Kuribayashi sw t2, 0(t1) 442e4a6e36SShinya Kuribayashi 452e4a6e36SShinya Kuribayashi /* Check switch setting */ 462e4a6e36SShinya Kuribayashi li t1, 0xBE000014 472e4a6e36SShinya Kuribayashi lw t2, 0(t1) 482e4a6e36SShinya Kuribayashi and t2, t2, 0x00000100 492e4a6e36SShinya Kuribayashi bne t2, zero, big_endian 502e4a6e36SShinya Kuribayashi nop 512e4a6e36SShinya Kuribayashi 522e4a6e36SShinya Kuribayashilittle_endian: 532e4a6e36SShinya Kuribayashi 542e4a6e36SShinya Kuribayashi /* Change Au1 core to little endian */ 552e4a6e36SShinya Kuribayashi li t0, AU1500_SYS_ADDR 562e4a6e36SShinya Kuribayashi li t1, 1 572e4a6e36SShinya Kuribayashi sw t1, sys_endian(t0) 582e4a6e36SShinya Kuribayashi mfc0 t2, CP0_CONFIG 592e4a6e36SShinya Kuribayashi mtc0 t2, CP0_CONFIG 602e4a6e36SShinya Kuribayashi nop 612e4a6e36SShinya Kuribayashi nop 622e4a6e36SShinya Kuribayashi 632e4a6e36SShinya Kuribayashi /* Big Endian is default so nothing to do but fall through */ 642e4a6e36SShinya Kuribayashi 652e4a6e36SShinya Kuribayashibig_endian: 662e4a6e36SShinya Kuribayashi 672e4a6e36SShinya Kuribayashi /* 682e4a6e36SShinya Kuribayashi * Step 2) Establish Status Register 692e4a6e36SShinya Kuribayashi * (set BEV, clear ERL, clear EXL, clear IE) 702e4a6e36SShinya Kuribayashi */ 712e4a6e36SShinya Kuribayashi li t1, 0x00400000 722e4a6e36SShinya Kuribayashi mtc0 t1, CP0_STATUS 732e4a6e36SShinya Kuribayashi 742e4a6e36SShinya Kuribayashi /* 752e4a6e36SShinya Kuribayashi * Step 3) Establish CP0 Config0 762e4a6e36SShinya Kuribayashi * (set OD, set K0=3) 772e4a6e36SShinya Kuribayashi */ 782e4a6e36SShinya Kuribayashi li t1, 0x00080003 792e4a6e36SShinya Kuribayashi mtc0 t1, CP0_CONFIG 802e4a6e36SShinya Kuribayashi 812e4a6e36SShinya Kuribayashi /* 822e4a6e36SShinya Kuribayashi * Step 4) Disable Watchpoint facilities 832e4a6e36SShinya Kuribayashi */ 842e4a6e36SShinya Kuribayashi li t1, 0x00000000 852e4a6e36SShinya Kuribayashi mtc0 t1, CP0_WATCHLO 862e4a6e36SShinya Kuribayashi mtc0 t1, CP0_IWATCHLO 872e4a6e36SShinya Kuribayashi /* 882e4a6e36SShinya Kuribayashi * Step 5) Disable the performance counters 892e4a6e36SShinya Kuribayashi */ 902e4a6e36SShinya Kuribayashi mtc0 zero, CP0_PERFORMANCE 912e4a6e36SShinya Kuribayashi nop 922e4a6e36SShinya Kuribayashi 932e4a6e36SShinya Kuribayashi /* 942e4a6e36SShinya Kuribayashi * Step 6) Establish EJTAG Debug register 952e4a6e36SShinya Kuribayashi */ 962e4a6e36SShinya Kuribayashi mtc0 zero, CP0_DEBUG 972e4a6e36SShinya Kuribayashi nop 982e4a6e36SShinya Kuribayashi 992e4a6e36SShinya Kuribayashi /* 1002e4a6e36SShinya Kuribayashi * Step 7) Establish Cause 1012e4a6e36SShinya Kuribayashi * (set IV bit) 1022e4a6e36SShinya Kuribayashi */ 1032e4a6e36SShinya Kuribayashi li t1, 0x00800000 1042e4a6e36SShinya Kuribayashi mtc0 t1, CP0_CAUSE 1052e4a6e36SShinya Kuribayashi 1062e4a6e36SShinya Kuribayashi /* Establish Wired (and Random) */ 1072e4a6e36SShinya Kuribayashi mtc0 zero, CP0_WIRED 1082e4a6e36SShinya Kuribayashi nop 1092e4a6e36SShinya Kuribayashi 1102e4a6e36SShinya Kuribayashi /* First setup pll:s to make serial work ok */ 1112e4a6e36SShinya Kuribayashi /* We have a 12 MHz crystal */ 1122e4a6e36SShinya Kuribayashi li t0, SYS_CPUPLL 1132e4a6e36SShinya Kuribayashi li t1, 0x21 /* 396 MHz */ 1142e4a6e36SShinya Kuribayashi sw t1, 0(t0) 1152e4a6e36SShinya Kuribayashi sync 1162e4a6e36SShinya Kuribayashi nop 1172e4a6e36SShinya Kuribayashi nop 1182e4a6e36SShinya Kuribayashi 1192e4a6e36SShinya Kuribayashi /* wait 1mS for clocks to settle */ 1202e4a6e36SShinya Kuribayashi li t1, MEM_1MS 1212e4a6e36SShinya Kuribayashi1: add t1, -1 1222e4a6e36SShinya Kuribayashi bne t1, zero, 1b 1232e4a6e36SShinya Kuribayashi nop 1242e4a6e36SShinya Kuribayashi /* Setup AUX PLL */ 1252e4a6e36SShinya Kuribayashi li t0, SYS_AUXPLL 1262e4a6e36SShinya Kuribayashi li t1, 8 /* 96 MHz */ 1272e4a6e36SShinya Kuribayashi sw t1, 0(t0) /* aux pll */ 1282e4a6e36SShinya Kuribayashi sync 1292e4a6e36SShinya Kuribayashi 1302e4a6e36SShinya Kuribayashi /* Static memory controller */ 1312e4a6e36SShinya Kuribayashi 1322e4a6e36SShinya Kuribayashi /* RCE0 8MB AMD29D323 Flash */ 1332e4a6e36SShinya Kuribayashi li t0, MEM_STCFG0 1342e4a6e36SShinya Kuribayashi li t1, 0x00001403 1352e4a6e36SShinya Kuribayashi sw t1, 0(t0) 1362e4a6e36SShinya Kuribayashi 1372e4a6e36SShinya Kuribayashi li t0, MEM_STTIME0 1382e4a6e36SShinya Kuribayashi li t1, 0xFFFFFFDD 1392e4a6e36SShinya Kuribayashi sw t1, 0(t0) 1402e4a6e36SShinya Kuribayashi 1412e4a6e36SShinya Kuribayashi li t0, MEM_STADDR0 1422e4a6e36SShinya Kuribayashi li t1, 0x11F83FE0 1432e4a6e36SShinya Kuribayashi sw t1, 0(t0) 1442e4a6e36SShinya Kuribayashi 1452e4a6e36SShinya Kuribayashi /* RCE1 CPLD Board Logic */ 1462e4a6e36SShinya Kuribayashi li t0, MEM_STCFG1 1472e4a6e36SShinya Kuribayashi li t1, 0x00000083 1482e4a6e36SShinya Kuribayashi sw t1, 0(t0) 1492e4a6e36SShinya Kuribayashi 1502e4a6e36SShinya Kuribayashi li t0, MEM_STTIME1 1512e4a6e36SShinya Kuribayashi li t1, 0x33030A10 1522e4a6e36SShinya Kuribayashi sw t1, 0(t0) 1532e4a6e36SShinya Kuribayashi 1542e4a6e36SShinya Kuribayashi li t0, MEM_STADDR1 1552e4a6e36SShinya Kuribayashi li t1, 0x11803E40 1562e4a6e36SShinya Kuribayashi sw t1, 0(t0) 1572e4a6e36SShinya Kuribayashi 1582e4a6e36SShinya Kuribayashi /* RCE2 CPLD Board Logic */ 1592e4a6e36SShinya Kuribayashi li t0, MEM_STCFG2 1602e4a6e36SShinya Kuribayashi li t1, 0x00000004 1612e4a6e36SShinya Kuribayashi sw t1, 0(t0) 1622e4a6e36SShinya Kuribayashi 1632e4a6e36SShinya Kuribayashi li t0, MEM_STTIME2 1642e4a6e36SShinya Kuribayashi li t1, 0x08061908 1652e4a6e36SShinya Kuribayashi sw t1, 0(t0) 1662e4a6e36SShinya Kuribayashi 1672e4a6e36SShinya Kuribayashi li t0, MEM_STADDR2 1682e4a6e36SShinya Kuribayashi li t1, 0x12A03FC0 1692e4a6e36SShinya Kuribayashi sw t1, 0(t0) 1702e4a6e36SShinya Kuribayashi 1712e4a6e36SShinya Kuribayashi /* RCE3 PCMCIA 250ns */ 1722e4a6e36SShinya Kuribayashi li t0, MEM_STCFG3 1732e4a6e36SShinya Kuribayashi li t1, 0x00000002 1742e4a6e36SShinya Kuribayashi sw t1, 0(t0) 1752e4a6e36SShinya Kuribayashi 1762e4a6e36SShinya Kuribayashi li t0, MEM_STTIME3 1772e4a6e36SShinya Kuribayashi li t1, 0x280E3E07 1782e4a6e36SShinya Kuribayashi sw t1, 0(t0) 1792e4a6e36SShinya Kuribayashi 1802e4a6e36SShinya Kuribayashi li t0, MEM_STADDR3 1812e4a6e36SShinya Kuribayashi li t1, 0x10000000 1822e4a6e36SShinya Kuribayashi sw t1, 0(t0) 1832e4a6e36SShinya Kuribayashi 1842e4a6e36SShinya Kuribayashi sync 1852e4a6e36SShinya Kuribayashi 1862e4a6e36SShinya Kuribayashi /* Set peripherals to a known state */ 1872e4a6e36SShinya Kuribayashi li t0, IC0_CFG0CLR 1882e4a6e36SShinya Kuribayashi li t1, 0xFFFFFFFF 1892e4a6e36SShinya Kuribayashi sw t1, 0(t0) 1902e4a6e36SShinya Kuribayashi 1912e4a6e36SShinya Kuribayashi li t0, IC0_CFG0CLR 1922e4a6e36SShinya Kuribayashi sw t1, 0(t0) 1932e4a6e36SShinya Kuribayashi 1942e4a6e36SShinya Kuribayashi li t0, IC0_CFG1CLR 1952e4a6e36SShinya Kuribayashi sw t1, 0(t0) 1962e4a6e36SShinya Kuribayashi 1972e4a6e36SShinya Kuribayashi li t0, IC0_CFG2CLR 1982e4a6e36SShinya Kuribayashi sw t1, 0(t0) 1992e4a6e36SShinya Kuribayashi 2002e4a6e36SShinya Kuribayashi li t0, IC0_SRCSET 2012e4a6e36SShinya Kuribayashi sw t1, 0(t0) 2022e4a6e36SShinya Kuribayashi 2032e4a6e36SShinya Kuribayashi li t0, IC0_ASSIGNSET 2042e4a6e36SShinya Kuribayashi sw t1, 0(t0) 2052e4a6e36SShinya Kuribayashi 2062e4a6e36SShinya Kuribayashi li t0, IC0_WAKECLR 2072e4a6e36SShinya Kuribayashi sw t1, 0(t0) 2082e4a6e36SShinya Kuribayashi 2092e4a6e36SShinya Kuribayashi li t0, IC0_RISINGCLR 2102e4a6e36SShinya Kuribayashi sw t1, 0(t0) 2112e4a6e36SShinya Kuribayashi 2122e4a6e36SShinya Kuribayashi li t0, IC0_FALLINGCLR 2132e4a6e36SShinya Kuribayashi sw t1, 0(t0) 2142e4a6e36SShinya Kuribayashi 2152e4a6e36SShinya Kuribayashi li t0, IC0_TESTBIT 2162e4a6e36SShinya Kuribayashi li t1, 0x00000000 2172e4a6e36SShinya Kuribayashi sw t1, 0(t0) 2182e4a6e36SShinya Kuribayashi sync 2192e4a6e36SShinya Kuribayashi 2202e4a6e36SShinya Kuribayashi li t0, IC1_CFG0CLR 2212e4a6e36SShinya Kuribayashi li t1, 0xFFFFFFFF 2222e4a6e36SShinya Kuribayashi sw t1, 0(t0) 2232e4a6e36SShinya Kuribayashi 2242e4a6e36SShinya Kuribayashi li t0, IC1_CFG0CLR 2252e4a6e36SShinya Kuribayashi sw t1, 0(t0) 2262e4a6e36SShinya Kuribayashi 2272e4a6e36SShinya Kuribayashi li t0, IC1_CFG1CLR 2282e4a6e36SShinya Kuribayashi sw t1, 0(t0) 2292e4a6e36SShinya Kuribayashi 2302e4a6e36SShinya Kuribayashi li t0, IC1_CFG2CLR 2312e4a6e36SShinya Kuribayashi sw t1, 0(t0) 2322e4a6e36SShinya Kuribayashi 2332e4a6e36SShinya Kuribayashi li t0, IC1_SRCSET 2342e4a6e36SShinya Kuribayashi sw t1, 0(t0) 2352e4a6e36SShinya Kuribayashi 2362e4a6e36SShinya Kuribayashi li t0, IC1_ASSIGNSET 2372e4a6e36SShinya Kuribayashi sw t1, 0(t0) 2382e4a6e36SShinya Kuribayashi 2392e4a6e36SShinya Kuribayashi li t0, IC1_WAKECLR 2402e4a6e36SShinya Kuribayashi sw t1, 0(t0) 2412e4a6e36SShinya Kuribayashi 2422e4a6e36SShinya Kuribayashi li t0, IC1_RISINGCLR 2432e4a6e36SShinya Kuribayashi sw t1, 0(t0) 2442e4a6e36SShinya Kuribayashi 2452e4a6e36SShinya Kuribayashi li t0, IC1_FALLINGCLR 2462e4a6e36SShinya Kuribayashi sw t1, 0(t0) 2472e4a6e36SShinya Kuribayashi 2482e4a6e36SShinya Kuribayashi li t0, IC1_TESTBIT 2492e4a6e36SShinya Kuribayashi li t1, 0x00000000 2502e4a6e36SShinya Kuribayashi sw t1, 0(t0) 2512e4a6e36SShinya Kuribayashi sync 2522e4a6e36SShinya Kuribayashi 2532e4a6e36SShinya Kuribayashi li t0, SYS_FREQCTRL0 2542e4a6e36SShinya Kuribayashi li t1, 0x00000000 2552e4a6e36SShinya Kuribayashi sw t1, 0(t0) 2562e4a6e36SShinya Kuribayashi 2572e4a6e36SShinya Kuribayashi li t0, SYS_FREQCTRL1 2582e4a6e36SShinya Kuribayashi li t1, 0x00000000 2592e4a6e36SShinya Kuribayashi sw t1, 0(t0) 2602e4a6e36SShinya Kuribayashi 2612e4a6e36SShinya Kuribayashi li t0, SYS_CLKSRC 2622e4a6e36SShinya Kuribayashi li t1, 0x00000000 2632e4a6e36SShinya Kuribayashi sw t1, 0(t0) 2642e4a6e36SShinya Kuribayashi 2652e4a6e36SShinya Kuribayashi li t0, SYS_PININPUTEN 2662e4a6e36SShinya Kuribayashi li t1, 0x00000000 2672e4a6e36SShinya Kuribayashi sw t1, 0(t0) 2682e4a6e36SShinya Kuribayashi sync 2692e4a6e36SShinya Kuribayashi 2702e4a6e36SShinya Kuribayashi li t0, 0xB1100100 2712e4a6e36SShinya Kuribayashi li t1, 0x00000000 2722e4a6e36SShinya Kuribayashi sw t1, 0(t0) 2732e4a6e36SShinya Kuribayashi 2742e4a6e36SShinya Kuribayashi li t0, 0xB1400100 2752e4a6e36SShinya Kuribayashi li t1, 0x00000000 2762e4a6e36SShinya Kuribayashi sw t1, 0(t0) 2772e4a6e36SShinya Kuribayashi 2782e4a6e36SShinya Kuribayashi 2792e4a6e36SShinya Kuribayashi li t0, SYS_WAKEMSK 2802e4a6e36SShinya Kuribayashi li t1, 0x00000000 2812e4a6e36SShinya Kuribayashi sw t1, 0(t0) 2822e4a6e36SShinya Kuribayashi 2832e4a6e36SShinya Kuribayashi li t0, SYS_WAKESRC 2842e4a6e36SShinya Kuribayashi li t1, 0x00000000 2852e4a6e36SShinya Kuribayashi sw t1, 0(t0) 2862e4a6e36SShinya Kuribayashi 2872e4a6e36SShinya Kuribayashi /* wait 1mS before setup */ 2882e4a6e36SShinya Kuribayashi li t1, MEM_1MS 2892e4a6e36SShinya Kuribayashi1: add t1, -1 2902e4a6e36SShinya Kuribayashi bne t1, zero, 1b 2912e4a6e36SShinya Kuribayashi nop 2922e4a6e36SShinya Kuribayashi 2932e4a6e36SShinya Kuribayashi /* 2942e4a6e36SShinya Kuribayashi * Skip memory setup if we are running from memory 2952e4a6e36SShinya Kuribayashi */ 2962e4a6e36SShinya Kuribayashi li t0, 0x90000000 2972e4a6e36SShinya Kuribayashi sub t0, ra, t0 2982e4a6e36SShinya Kuribayashi bltz t0, skip_memsetup 2992e4a6e36SShinya Kuribayashi nop 3002e4a6e36SShinya Kuribayashi 3012e4a6e36SShinya Kuribayashi /* 3022e4a6e36SShinya Kuribayashi * SDCS0 - Not used, for SMROM 3032e4a6e36SShinya Kuribayashi * SDCS1 - 32MB Micron 48LCBM16A2 3042e4a6e36SShinya Kuribayashi * SDCS2 - 32MB Micron 48LCBM16A2 3052e4a6e36SShinya Kuribayashi */ 3062e4a6e36SShinya Kuribayashi li t0, MEM_SDMODE0 3072e4a6e36SShinya Kuribayashi li t1, 0x00000000 3082e4a6e36SShinya Kuribayashi sw t1, 0(t0) 3092e4a6e36SShinya Kuribayashi 3102e4a6e36SShinya Kuribayashi li t0, MEM_SDMODE1 3112e4a6e36SShinya Kuribayashi li t1, 0x00552229 3122e4a6e36SShinya Kuribayashi sw t1, 0(t0) 3132e4a6e36SShinya Kuribayashi 3142e4a6e36SShinya Kuribayashi li t0, MEM_SDMODE2 3152e4a6e36SShinya Kuribayashi li t1, 0x00552229 3162e4a6e36SShinya Kuribayashi sw t1, 0(t0) 3172e4a6e36SShinya Kuribayashi 3182e4a6e36SShinya Kuribayashi li t0, MEM_SDADDR0 3192e4a6e36SShinya Kuribayashi li t1, 0x00000000 3202e4a6e36SShinya Kuribayashi sw t1, 0(t0) 3212e4a6e36SShinya Kuribayashi 3222e4a6e36SShinya Kuribayashi li t0, MEM_SDADDR1 3232e4a6e36SShinya Kuribayashi li t1, 0x001003F8 3242e4a6e36SShinya Kuribayashi sw t1, 0(t0) 3252e4a6e36SShinya Kuribayashi 3262e4a6e36SShinya Kuribayashi li t0, MEM_SDADDR2 3272e4a6e36SShinya Kuribayashi li t1, 0x001023F8 3282e4a6e36SShinya Kuribayashi sw t1, 0(t0) 3292e4a6e36SShinya Kuribayashi 3302e4a6e36SShinya Kuribayashi sync 3312e4a6e36SShinya Kuribayashi 3322e4a6e36SShinya Kuribayashi li t0, MEM_SDREFCFG 3332e4a6e36SShinya Kuribayashi li t1, 0x74000c30 /* Disable */ 3342e4a6e36SShinya Kuribayashi sw t1, 0(t0) 3352e4a6e36SShinya Kuribayashi sync 3362e4a6e36SShinya Kuribayashi 3372e4a6e36SShinya Kuribayashi li t0, MEM_SDPRECMD 3382e4a6e36SShinya Kuribayashi sw zero, 0(t0) 3392e4a6e36SShinya Kuribayashi sync 3402e4a6e36SShinya Kuribayashi 3412e4a6e36SShinya Kuribayashi li t0, MEM_SDAUTOREF 3422e4a6e36SShinya Kuribayashi sw zero, 0(t0) 3432e4a6e36SShinya Kuribayashi sync 3442e4a6e36SShinya Kuribayashi sw zero, 0(t0) 3452e4a6e36SShinya Kuribayashi sync 3462e4a6e36SShinya Kuribayashi 3472e4a6e36SShinya Kuribayashi li t0, MEM_SDREFCFG 3482e4a6e36SShinya Kuribayashi li t1, 0x76000c30 /* Enable */ 3492e4a6e36SShinya Kuribayashi sw t1, 0(t0) 3502e4a6e36SShinya Kuribayashi sync 3512e4a6e36SShinya Kuribayashi 3522e4a6e36SShinya Kuribayashi li t0, MEM_SDWRMD0 3532e4a6e36SShinya Kuribayashi li t1, 0x00000023 3542e4a6e36SShinya Kuribayashi sw t1, 0(t0) 3552e4a6e36SShinya Kuribayashi sync 3562e4a6e36SShinya Kuribayashi 3572e4a6e36SShinya Kuribayashi li t0, MEM_SDWRMD1 3582e4a6e36SShinya Kuribayashi li t1, 0x00000023 3592e4a6e36SShinya Kuribayashi sw t1, 0(t0) 3602e4a6e36SShinya Kuribayashi sync 3612e4a6e36SShinya Kuribayashi 3622e4a6e36SShinya Kuribayashi li t0, MEM_SDWRMD2 3632e4a6e36SShinya Kuribayashi li t1, 0x00000023 3642e4a6e36SShinya Kuribayashi sw t1, 0(t0) 3652e4a6e36SShinya Kuribayashi sync 3662e4a6e36SShinya Kuribayashi 3672e4a6e36SShinya Kuribayashi /* wait 1mS after setup */ 3682e4a6e36SShinya Kuribayashi li t1, MEM_1MS 3692e4a6e36SShinya Kuribayashi1: add t1, -1 3702e4a6e36SShinya Kuribayashi bne t1, zero, 1b 3712e4a6e36SShinya Kuribayashi nop 3722e4a6e36SShinya Kuribayashi 3732e4a6e36SShinya Kuribayashiskip_memsetup: 3742e4a6e36SShinya Kuribayashi 3752e4a6e36SShinya Kuribayashi li t0, SYS_PINFUNC 3762e4a6e36SShinya Kuribayashi li t1, 0/*0x00008080*/ 3772e4a6e36SShinya Kuribayashi sw t1, 0(t0) 3782e4a6e36SShinya Kuribayashi 3792e4a6e36SShinya Kuribayashi /* 3802e4a6e36SShinya Kuribayashi li t0, SYS_TRIOUTCLR 3812e4a6e36SShinya Kuribayashi li t1, 0x00001FFF 3822e4a6e36SShinya Kuribayashi sw t1, 0(t0) 3832e4a6e36SShinya Kuribayashi 3842e4a6e36SShinya Kuribayashi li t0, SYS_OUTPUTCLR 3852e4a6e36SShinya Kuribayashi li t1, 0x00008000 3862e4a6e36SShinya Kuribayashi sw t1, 0(t0) 3872e4a6e36SShinya Kuribayashi */ 3882e4a6e36SShinya Kuribayashi sync 3892e4a6e36SShinya Kuribayashi 39043c50925SShinya Kuribayashi jr ra 3912e4a6e36SShinya Kuribayashi nop 392