2 # GDB Init script for the SecureEdge MP3 ColdFire 5307 board.
4 # The main purpose of this script is to configure the
5 # DRAM controller so code can be loaded.
10 set $mbar = 0x10000001
11 set $rsr = $mbar - 1 + 0x000
12 set $sypcr = $mbar - 1 + 0x001
13 set $swivr = $mbar - 1 + 0x002
14 set $swsr = $mbar - 1 + 0x003
15 set $simr = $mbar - 1 + 0x003
16 set $par = $mbar - 1 + 0x004
17 set $irqpar= $mbar - 1 + 0x006
18 set $pllcr = $mbar - 1 + 0x008
19 set $mpark = $mbar - 1 + 0x00c
20 set $ipr = $mbar - 1 + 0x040
21 set $imr = $mbar - 1 + 0x044
23 set $icr0 = $mbar - 1 + 0x04c
24 set $icr1 = $mbar - 1 + 0x04d
25 set $icr2 = $mbar - 1 + 0x04e
26 set $icr3 = $mbar - 1 + 0x04f
27 set $icr4 = $mbar - 1 + 0x050
28 set $icr5 = $mbar - 1 + 0x051
29 set $icr6 = $mbar - 1 + 0x052
30 set $icr7 = $mbar - 1 + 0x053
31 set $icr8 = $mbar - 1 + 0x054
32 set $icr9 = $mbar - 1 + 0x055
33 set $icr10 = $mbar - 1 + 0x056
34 set $icr11 = $mbar - 1 + 0x057
36 set $csar0 = $mbar - 1 + 0x080
37 set $csmr0 = $mbar - 1 + 0x084
38 set $cscr0 = $mbar - 1 + 0x08a
39 set $csar1 = $mbar - 1 + 0x08c
40 set $csmr1 = $mbar - 1 + 0x090
41 set $cscr1 = $mbar - 1 + 0x096
42 set $csar2 = $mbar - 1 + 0x098
43 set $csmr2 = $mbar - 1 + 0x09c
44 set $cscr2 = $mbar - 1 + 0x0a2
45 set $csar3 = $mbar - 1 + 0x0a4
46 set $csmr3 = $mbar - 1 + 0x0a8
47 set $cscr3 = $mbar - 1 + 0x0ae
48 set $csar4 = $mbar - 1 + 0x0b0
49 set $csmr4 = $mbar - 1 + 0x0b4
50 set $cscr4 = $mbar - 1 + 0x0ba
51 set $csar5 = $mbar - 1 + 0x0bc
52 set $csmr5 = $mbar - 1 + 0x0c0
53 set $cscr5 = $mbar - 1 + 0x0c6
54 set $csar6 = $mbar - 1 + 0x0c8
55 set $csmr6 = $mbar - 1 + 0x0cc
56 set $cscr6 = $mbar - 1 + 0x0d2
57 set $csar7 = $mbar - 1 + 0x0d4
58 set $csmr7 = $mbar - 1 + 0x0d8
59 set $cscr7 = $mbar - 1 + 0x0de
61 set $dcr = $mbar - 1 + 0x100
62 set $dacr0 = $mbar - 1 + 0x108
63 set $dmr0 = $mbar - 1 + 0x10c
64 set $dacr1 = $mbar - 1 + 0x110
65 set $dmr1 = $mbar - 1 + 0x114
67 set $tmr1 = $mbar - 1 + 0x140
68 set $trr1 = $mbar - 1 + 0x144
69 set $tcr1 = $mbar - 1 + 0x148
70 set $tcn1 = $mbar - 1 + 0x14C
71 set $ter1 = $mbar - 1 + 0x151
72 set $tmr2 = $mbar - 1 + 0x180
73 set $trr2 = $mbar - 1 + 0x184
74 set $tcr2 = $mbar - 1 + 0x188
75 set $tcn2 = $mbar - 1 + 0x18C
76 set $ter2 = $mbar - 1 + 0x191
78 set $paddr = $mbar - 1 + 0x244
79 set $padat = $mbar - 1 + 0x248
84 # Setup RAMBAR for the internal SRAM.
88 set $rambar = 0x20000001
93 # Setup Parallel I/O ports...
97 set *((unsigned short *) $par) = 0x005b
98 set *((unsigned short *) $paddr) = 0x0180
99 set *((unsigned short *) $padat) = 0x0000
104 # Setup chip selects...
106 # These are defined so that they are compatible with both the
107 # old and new mask 5307 chips, so be carefull if you modify.
112 # CS0 -- FLASH ROM, address=0xf000000, 1MB-2MB size, 8bit
113 set *((unsigned short *) $csar0) = 0xf000
114 set *((unsigned long *) $csmr0) = 0x001f0001
115 set *((unsigned short *) $cscr0) = 0x3d40
117 # CS1 -- Optional DISK-ON-CHIP device, address=0xe0000000, 16MB, 8bit.
118 set *((unsigned short *) $csar1) = 0xe000
119 set *((unsigned long *) $csmr1) = 0x00ff0001
120 set *((unsigned short *) $cscr1) = 0x3d40
122 # CS2 -- LCD display, address=0x30400000, 8bit
123 set *((unsigned short *) $csar2) = 0x3040
124 set *((unsigned long *) $csmr2) = 0x000f0001
125 set *((unsigned short *) $cscr2) = 0x2940
126 # the next line is for old proto type HW with LCD behind ISA bus
127 # set *((unsigned short *) $cscr2) = 0x0040
129 # CS3 -- Ethernet, address=0x30600000, Davicom, 16bit
130 set *((unsigned short *) $csar3) = 0x3060
131 set *((unsigned long *) $csmr3) = 0x000f0001
132 set *((unsigned short *) $cscr3) = 0x0080
134 # CS4 -- IDE interface, address=0x30800000, 16bit
135 set *((unsigned short *) $csar4) = 0x3080
136 set *((unsigned long *) $csmr4) = 0x000f0001
137 set *((unsigned short *) $cscr4) = 0x0080
139 # CS5 -- Audio CODEC, address=0x30a00000, 8bit
140 set *((unsigned short *) $csar5) = 0x30a0
141 set *((unsigned long *) $csmr5) = 0x000f0001
142 set *((unsigned short *) $cscr5) = 0x0040
144 # CS6 -- Nothing, address=0x30c00000
145 set *((unsigned short *) $csar6) = 0x30c0
146 set *((unsigned long *) $csmr6) = 0x000f0001
147 set *((unsigned short *) $cscr6) = 0x3d40
149 # CS7 -- Nothing, address=0x30e00000
150 set *((unsigned short *) $csar7) = 0x30e0
151 set *((unsigned long *) $csmr7) = 0x000f0001
152 set *((unsigned short *) $cscr7) = 0x3d40
162 load boot/etherboot/ethboot-bdm.elf
163 load boot/boot-bdm.elf
164 symbol-file boot/boot-bdm.elf
166 add-symbol-file boot/etherboot/ethboot-bdm.elf ðerboot_addr
167 echo \nType 'cont' to start bootloader...\n
172 # FLASH prgramming code
175 set *((unsigned char *) 0xf0000aaa) = 0xaa
176 set *((unsigned char *) 0xf0000555) = 0x55
177 set *((unsigned char *) 0xf0000aaa) = 0x80
178 set *((unsigned char *) 0xf0000aaa) = 0xaa
179 set *((unsigned char *) 0xf0000555) = 0x55
180 set *((unsigned char *) 0xf0000000) = 0x30
183 define flash-programbyte
184 set *((unsigned char *) 0xf0000aaa) = 0xaa
185 set *((unsigned char *) 0xf0000555) = 0x55
186 set *((unsigned char *) 0xf0000aaa) = 0xa0
187 set *((unsigned char *) $arg0) = $arg1
188 #while (*((unsigned char *) $arg0) != $arg1)
192 define flash-programstartaddr
193 flash-programbyte 0xf0000004 0xf0
194 flash-programbyte 0xf0000005 0x00
195 flash-programbyte 0xf0000006 0x04
196 flash-programbyte 0xf0000007 0x00
201 set $dst = 0xf0000400
202 set $src = 0x20000000
203 flash-programstartaddr
205 set $byte = *((unsigned char *) $src)
206 flash-programbyte $dst $byte
220 # Set Audio for simple output
225 set *((unsigned char *) 0x30a00000) = 0x46
226 set *((unsigned char *) 0x30a00001) = 0x00
229 set *((unsigned char *) 0x30a00000) = 0x47
230 set *((unsigned char *) 0x30a00001) = 0x00
232 # clock and data format register
233 set *((unsigned char *) 0x30a00000) = 0x48
234 set *((unsigned char *) 0x30a00001) = 0x00
236 # interface configuration register
237 set *((unsigned char *) 0x30a00000) = 0x49
238 set *((unsigned char *) 0x30a00001) = 0x49
241 set *((unsigned char *) 0x30a00000) = 0x4e
242 set *((unsigned char *) 0x30a00001) = 0x00
245 set *((unsigned char *) 0x30a00000) = 0x4f
246 set *((unsigned char *) 0x30a00001) = 0x00
248 # pin control register
249 set *((unsigned char *) 0x30a00000) = 0x4a
250 set *((unsigned char *) 0x30a00001) = 0x02
252 # misc control register
253 set *((unsigned char *) 0x30a00000) = 0x4c
254 set *((unsigned char *) 0x30a00001) = 0xca
256 # crystal, clock select register
257 set *((unsigned char *) 0x30a00000) = 0x40 | 29
258 set *((unsigned char *) 0x30a00001) = 0x60
260 set *((unsigned char *) 0x30a00000) = 0x00
267 set *((unsigned char *) 0x30a00003) = $num
274 set *((unsigned char *) 0x30a00000) = 13
275 set *((unsigned char *) 0x30a00001) = 0x01
280 set *((unsigned char *) 0x30a00000) = 0x49
281 set *((unsigned char *) 0x30a00001) = 0xcb
282 set *((unsigned char *) 0x30a00000) = 0x09
292 set *((unsigned char *) 0x30a00000) = 0x49
293 set *((unsigned char *) 0x30a00001) = 0xcb
294 set *((unsigned char *) 0x30a00000) = 0x09
297 set $byte = *((unsigned char *) 0x30a00003)
298 set *((unsigned char *) 0x30a00003) = $byte
307 set *((unsigned char *) 0x30a00000) = $num
308 set $byte = *((unsigned char *) 0x30a00001)
309 printf "REG[%02d] = %02x\n", $num, $byte
316 set *((unsigned char *) 0x30a00000) = 0x40 | $arg0
317 set *((unsigned char *) 0x30a00001) = $arg1
328 #audio-setreg 11 0x40
329 #audio-setreg 13 0x00
330 #audio-setreg 16 0x11
331 #audio-setreg 17 0x10
332 #audio-setreg 18 0x88
333 #audio-setreg 19 0x88
334 #audio-setreg 20 0x00
335 #audio-setreg 22 0x1f
336 #audio-setreg 23 0x40
337 #audio-setreg 24 0x11
338 #audio-setreg 26 0x03
339 #audio-setreg 27 0x00
342 set *((unsigned char *) 0x30a00000) = 0
351 set *((unsigned short *) 0x10000248) = 0x0000
352 set *((unsigned char *) 0x30400000) = 0x38
353 set *((unsigned char *) 0x30400001) = 0
354 set *((unsigned char *) 0x30400000) = 0x0f
355 set *((unsigned char *) 0x30400001) = 0
356 set *((unsigned char *) 0x30400000) = 0x01
357 set *((unsigned char *) 0x30400001) = 0
358 set *((unsigned char *) 0x30400000) = 0x06
359 set *((unsigned char *) 0x30400001) = 0
363 set *((unsigned short *) 0x10000248) = 0x0000
364 set *((unsigned char *) 0x30400000) = 0x38
365 set *((unsigned char *) 0x30400001) = 0
368 set *((unsigned char *) 0x30400000) = 0x0f
369 set *((unsigned char *) 0x30400001) = 0
372 set *((unsigned char *) 0x30400000) = 0x06
373 set *((unsigned char *) 0x30400001) = 0
376 set *((unsigned char *) 0x30400000) = 0x01
377 set *((unsigned char *) 0x30400001) = 0
381 set *((unsigned short *) 0x10000248) = 0x0100
382 set *((unsigned char *) 0x30400000) = $arg0
383 set *((unsigned char *) 0x30400001) = 0
387 set *((unsigned short *) 0x10000248) = 0x0100
390 set *((unsigned char *) 0x30400000) = $num
391 set *((unsigned char *) 0x30400001) = 0
400 # SecureEdge MP3 ColdFire 5307 target...
402 target bdm /dev/bdmcf0
408 load bin/eliamem.elf # use nettel8mem.elf for old proto's
412 set $vbr = 0x20000000
415 set print asm-demangle