/* Memory sub-system initialization code */ #include #include #include #include .globl memsetup memsetup: /* First setup pll:s to make serial work ok */ /* We have a 12 MHz crystal */ li t0, SYS_CPUPLL li t1, 0x21 /* 396 MHz */ sw t1, 0(t0) sync nop /* Setup AUX PLL */ li t0, SYS_AUXPLL li t1, 8 /* 96 MHz */ sw t1, 0(t0) /* aux pll */ sync /* SDCS 0,1 SDRAM */ li t0, MEM_SDMODE0 li t1, 0x005522AA sw t1, 0(t0) li t0, MEM_SDMODE1 li t1, 0x005522AA sw t1, 0(t0) li t0, MEM_SDADDR0 li t1, 0x001003F8 sw t1, 0(t0) li t0, MEM_SDADDR1 li t1, 0x001023F8 sw t1, 0(t0) sync li t0, MEM_SDREFCFG li t1, 0x64000C24 /* Disable */ sw t1, 0(t0) sync li t0, MEM_SDPRECMD sw zero, 0(t0) sync li t0, MEM_SDAUTOREF sw zero, 0(t0) sync sw zero, 0(t0) sync li t0, MEM_SDREFCFG li t1, 0x66000C24 /* Enable */ sw t1, 0(t0) sync li t0, MEM_SDWRMD0 li t1, 0x00000033 sw t1, 0(t0) sync li t0, MEM_SDWRMD1 li t1, 0x00000033 sw t1, 0(t0) sync /* Static memory controller */ /* RCE0 AMD 29LV640M MirrorBit Flash */ li t0, MEM_STCFG0 li t1, 0x00000003 sw t1, 0(t0) li t0, MEM_STTIME0 li t1, 0x22080b20 sw t1, 0(t0) li t0, MEM_STADDR0 li t1, 0x11E03F80 sw t1, 0(t0) /* RCE1 CPLD Board Logic */ li t0, MEM_STCFG1 li t1, 0x00000080 sw t1, 0(t0) li t0, MEM_STTIME1 li t1, 0x22080a20 sw t1, 0(t0) li t0, MEM_STADDR1 li t1, 0x10c03f00 sw t1, 0(t0) /* RCE3 PCMCIA 250ns */ li t0, MEM_STCFG3 li t1, 0x00000002 sw t1, 0(t0) li t0, MEM_STTIME3 li t1, 0x280E3E07 sw t1, 0(t0) li t0, MEM_STADDR3 li t1, 0x10000000 sw t1, 0(t0) sync j ra nop