blob: 5c7b541a2b591c3222053cd1a28ec4ab51a562ae [file] [log] [blame]
wdenkc7de8292002-11-19 11:04:11 +00001
2 /*------------------------------------------------------*/
3 /* TERON Articia / SDRAM Init */
4 /*------------------------------------------------------*/
5
6* XD_CTL = 0x81000000 (0x74)
7
8* HBUS_ACC_CTL_0 &= 0xFFFFFDFF (0x5c)
9 /* host bus access ctl reg 2(5e) */
10 /* set - CPU read from memory data one clock after data is latched */
11
12* GLOBL_INFO_0 |= 0x00004000 (0x50)
13 /* global info register 2 (52), AGP/PCI bus 1 arbiter is addressed in Articia S */
14
15 PCI_1_SB_CONFIG_0 |= 0x00000400 (0x80d0)
16 /* PCI1 side band config reg 2 (d2), enable read acces while write buffer not empty */
17
18 MEM_RAS_CTL_0 |= 0x3f000000 (0xcc)
19 &= 0x3fffffff
20 /* RAS park control reg 0(cc), park access enable is set */
21
22 HOST_RDBUF_CTL |= 0x10000000 (0x70)
23 &= 0x10ffffff
24 /* host read buffer control reg, enable prefetch for CPU read from DRAM control */
25
26 HBUS_ACC_CTL_0 |= 0x0100001f (0x5c)
27 &= 0xf1ffffff
28 /* host bus access control register, enable CPU address bus pipe control */
29 /* two outstanding requests, *** changed to 2 from 3 */
30 /* enable line merge write control for CPU write to system memory, PCI 1 */
31 /* and PCI 0 bus memory; enable page merge write control for write to */
32 /* PCI bus 0 & bus 1 memory */
33
34 SRAM_CTL |= 0x00004000 (0xc8)
35 &= 0xffbff7ff
36 /* DRAM detail timing control register 1 (ca), bit 3 set to 0 */
37 /* DRAM start access latency control - wait for one clock */
38 /* ff9f changed to ffbf */
39
40 DIM0_TIM_CTL_0 = 0x737d737d (0xc9)
41 /* DRAM timing control for dimm0 & dimm1; set wait one clock */
42 /* cycle for next data access */
43
44 DIM2_TIM_CTL_0 = 0x737d737d (0xca)
45 /* DRAM timing control for dimm2 & dimm3; set wait one clock */
46 /* cycle for next data access */
47
48 DIM0_BNK0_CTL_0 = BNK0_RAM_SIZ_128MB (0x90)
49 /* set dimm0 bank0 for 128 MB */
50
51 DIM0_BNK1_CTL_0 = BNK1_RAM_SIZ_128MB (0x94)
52 /* set dimm0 for bank1 */
53
54 DIM0_TIM_CTL_0 = 0xf3bf0000 (0xc9)
55 /* dimm0 timing control register; RAS - CAS latency - 4 clock */
56 /* CAS access latency - 3 wait; pre-charge latency - 3 wait */
57 /* pre-charge command period control - 5 clock; wait one clock */
58 /* cycle for next data access; read to write access latency control */
59 /* - 2 clock cycles */
60
61 DRAM_GBL_CTL_0 |= 0x00000100 (0xc0)
62 &= 0xffff01ff
63 /* memory global control register - support buffer sdram on bank 0 */
64
65 DRAM_ECC_CTL_0 |= 0x00260000 (0xc4)
66 &= 0xff26ffff
67 /* enable ECC; enable read, modify, write control */
68
69 DRAM_REF_CTL_0 = DRAM_REF_DATA (0xb8)
70 /* set DRAM refresh parameters *** changed to 00940100 */
71
72 nop
73 nop
74 nop
75 nop
76 nop
77
78 DRAM_ECC_CTL_0 |= 0x20243280 (0xc4)
79 /* turn off ecc */
80 /* for SDRAM bank 0 */
81
82 DRAM_ECC_CTL_0 |= 0x20243290 (0xc4) ?
83 /* for SDRAM bank 1 */
84
85
86/* Additional Stuff...*/
87
88 GLOBL_CTRL |= 0x20000b00 (0x54)
89
90 PCI_0_SB_CONFIG |= 0x04100007 (0xd0)
91 /* PCI 0 Side band config reg*/
92
93 0x8000083c |= 0x00080000
94 /* Disable VGA decode on PCI Bus 1 */
95
96
97/*End Additional Stuff..*/
98
99 /*--------------------------------------------------------------*/
100 /* TERON serial port initialization code */
101 /*--------------------------------------------------------------*/
102
103 0x84380080 |= 0x00030000
104 /* enable super IO configuration VIA chip Register 85 */
105 /* Enable super I/O config mode */
106
107 0xfe0003f0 = 0xe2
108 bl delay1
109
110 0xfe0003f1 = 0x0f
111 bl delay1
112 /* enable com1 & com2, parallel port disabled */
113
114 0xfe0003f0 = 0xe7
115 bl delay1
116 /* let's make com1 base as 0x3f8 */
117
118 0xfe0003f1 = 0xfe
119 bl delay1
120
121 0xfe0003f0 = 0xe8
122 bl delay1
123 /* let's make com2 base as 0x2f8 */
124
125 0xfe0003f1 = 0xbe
126
127 0x84380080 &= 0xfffdffff
128 /* closing super IO configuration VIA chip Register 85 */
129
130
131/* -------------------------------*/
132
133 0xfe0003fb = 0x83
134 bl delay1
135 /*latch enable word length -8 bit */ /* set mslab bit */
136 0xfe0003f8 = 0x0c
137 bl delay1
138 /* set baud rate lsb for 9600 baud */
139 0xfe0003f9 = 0x0
140 bl delay1
141 /* set baud rate msb for 9600 baud */
142 0xfe0003fb = 0x03
143 bl delay1
144 /* reset mslab */
145
146 /*--------------------------------------------------------------*/
147 /* END TERON Serial Port Initialization Code */
148 /*--------------------------------------------------------------*/
149
150
151
152 /*--------------------------------------------------------------*/
153 /* END TERON Articia / SDRAM Initialization code */
154 /*--------------------------------------------------------------*/
155
156Proposed from Documentation:
157
158write dmem 0xfec00cf8 0x50000080
159write dmem 0xfee00cfc 0xc0305411
160
161 Writes to index 0x50-0x53.
162 0x50: Global Information Register 0
163 0xC0 = Little Endian CPU, Sequential order Burst
164 0x51: Global Information Register 1
165 Read only, 0x30 = Provides PowerPC and X86 support
166 0x52: Global Information Register 2
167 0x05 = 64/128 bit CPU bus support
168 0x53: Global Information Register 3
169 0x80 = PCI Bus 0 grant active time is 1 clock after REQ# deasserted
170
171write dmem 0xfec00cf8 0x5c000080
172write dmem 0xfee00cfc 0xb300011F
173
174write dmem 0xfec00cf8 0xc8000080
175write dmem 0xfee00cfc 0x0020f100
176
177write dmem 0xfec00cf8 0x90000080
178write dmem 0xfee00cfc 0x007fe700
179
180write dmem 0xfec00cf8 0x9400080
181write dmem 0xfee00cfc 0x007fe700
182
183write dmem 0xfec00cf8 0xb0000080
184write dmem 0xfee00cfc 0x737d737d
185
186write dmem 0xfec00cf8 0xb4000080
187write dmem 0xfee00cfc 0x737d737d
188
189write dmem 0xfec00cf8 0xc0000080
190write dmem 0xfee00cfc 0x40005500
191
192write dmem 0xfec00cf8 0xb8000080
193write dmem 0xfee00cfc 0x00940100
194
195write dmem 0xfec00cf8 0xc4000080
196write dmem 0xfee00cfc 0x00003280
197
198write dmem 0xfec00cf8 0xc4000080
199write dmem 0xfee00cfc 0x00003290
200
201