summaryrefslogtreecommitdiff
path: root/board/dbau1x00/memsetup.S
blob: 34ba2da3fc1e7bb812bf5023fbc958a49e79ca85 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
/* Memory sub-system initialization code */

#include <config.h>
#include <version.h>
#include <asm/regdef.h>
#include <asm/au1x00.h>

	.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