]>
Commit | Line | Data |
---|---|---|
04a85b3b | 1 | /* |
79fa88f3 | 2 | * Intracom TI6711/TI6412 DSP |
04a85b3b WD |
3 | */ |
4 | ||
5 | #include <common.h> | |
6 | #include <post.h> | |
7 | ||
8 | #include "mpc8xx.h" | |
9 | ||
10 | struct ram_range { | |
11 | u32 start; | |
12 | u32 size; | |
13 | }; | |
14 | ||
79fa88f3 WD |
15 | #if defined(CONFIG_NETTA_6412) |
16 | ||
17 | static const struct ram_range int_ram[] = { | |
18 | { 0x00000000U, 0x00040000U }, | |
19 | }; | |
20 | ||
21 | static const struct ram_range ext_ram[] = { | |
22 | { 0x80000000U, 0x00100000U }, | |
23 | }; | |
24 | ||
25 | static const struct ram_range ranges[] = { | |
26 | { 0x00000000U, 0x00040000U }, | |
27 | { 0x80000000U, 0x00100000U }, | |
28 | }; | |
29 | ||
30 | static inline u16 bit_invert(u16 d) | |
31 | { | |
32 | register u8 i; | |
33 | register u16 r; | |
34 | register u16 bit; | |
35 | ||
36 | r = 0; | |
37 | for (i = 0; i < 16; i++) { | |
38 | bit = d & (1 << i); | |
39 | if (bit != 0) | |
40 | r |= 1 << (15 - i); | |
41 | } | |
42 | return r; | |
43 | } | |
44 | ||
45 | #else | |
46 | ||
04a85b3b WD |
47 | static const struct ram_range int_ram[] = { |
48 | { 0x00000000U, 0x00010000U }, | |
49 | }; | |
50 | ||
51 | static const struct ram_range ext_ram[] = { | |
52 | { 0x80000000U, 0x00100000U }, | |
53 | }; | |
54 | ||
55 | static const struct ram_range ranges[] = { | |
56 | { 0x00000000U, 0x00010000U }, | |
57 | { 0x80000000U, 0x00100000U }, | |
58 | }; | |
59 | ||
79fa88f3 WD |
60 | #endif |
61 | ||
04a85b3b WD |
62 | /*******************************************************************************************************/ |
63 | ||
64 | static inline int addr_in_int_ram(u32 addr) | |
65 | { | |
66 | int i; | |
67 | ||
68 | for (i = 0; i < sizeof(int_ram)/sizeof(int_ram[0]); i++) | |
69 | if (addr >= int_ram[i].start && addr < int_ram[i].start + int_ram[i].size) | |
70 | return 1; | |
71 | ||
72 | return 0; | |
73 | } | |
74 | ||
75 | static inline int addr_in_ext_ram(u32 addr) | |
76 | { | |
77 | int i; | |
78 | ||
79 | for (i = 0; i < sizeof(ext_ram)/sizeof(ext_ram[0]); i++) | |
80 | if (addr >= ext_ram[i].start && addr < ext_ram[i].start + ext_ram[i].size) | |
81 | return 1; | |
82 | ||
83 | return 0; | |
84 | } | |
85 | ||
86 | /*******************************************************************************************************/ | |
87 | ||
88 | #define DSP_HPIC 0x0 | |
89 | #define DSP_HPIA 0x4 | |
90 | #define DSP_HPID1 0x8 | |
91 | #define DSP_HPID2 0xC | |
92 | ||
93 | static u32 dummy_delay; | |
94 | static volatile u32 *ti6711_delay = &dummy_delay; | |
95 | ||
96 | static inline void dsp_go_slow(void) | |
97 | { | |
6d0f6bcf | 98 | volatile memctl8xx_t *memctl = &((immap_t *)CONFIG_SYS_IMMR)->im_memctl; |
79fa88f3 WD |
99 | #if defined(CONFIG_NETTA_6412) |
100 | memctl->memc_or6 |= OR_SCY_15_CLK | OR_TRLX; | |
101 | #else | |
04a85b3b | 102 | memctl->memc_or2 |= OR_SCY_15_CLK | OR_TRLX; |
79fa88f3 | 103 | #endif |
04a85b3b WD |
104 | memctl->memc_or5 |= OR_SCY_15_CLK | OR_TRLX; |
105 | ||
106 | ti6711_delay = (u32 *)DUMMY_BASE; | |
107 | } | |
108 | ||
109 | static inline void dsp_go_fast(void) | |
110 | { | |
6d0f6bcf | 111 | volatile memctl8xx_t *memctl = &((immap_t *)CONFIG_SYS_IMMR)->im_memctl; |
79fa88f3 WD |
112 | #if defined(CONFIG_NETTA_6412) |
113 | memctl->memc_or6 = (memctl->memc_or6 & ~(OR_SCY_15_CLK | OR_TRLX)) | OR_SCY_0_CLK; | |
114 | #else | |
04a85b3b | 115 | memctl->memc_or2 = (memctl->memc_or2 & ~(OR_SCY_15_CLK | OR_TRLX)) | OR_SCY_3_CLK; |
79fa88f3 | 116 | #endif |
04a85b3b WD |
117 | memctl->memc_or5 = (memctl->memc_or5 & ~(OR_SCY_15_CLK | OR_TRLX)) | OR_SCY_0_CLK; |
118 | ||
119 | ti6711_delay = &dummy_delay; | |
120 | } | |
121 | ||
122 | /*******************************************************************************************************/ | |
123 | ||
124 | static inline void dsp_delay(void) | |
125 | { | |
126 | /* perform ti6711_delay chip select read to have a small delay */ | |
127 | (void) *(volatile u32 *)ti6711_delay; | |
128 | } | |
129 | ||
130 | static inline u16 dsp_read_hpic(void) | |
131 | { | |
79fa88f3 WD |
132 | #if defined(CONFIG_NETTA_6412) |
133 | return bit_invert(*((volatile u16 *)DSP_BASE)); | |
134 | #else | |
04a85b3b | 135 | return *((volatile u16 *)DSP_BASE); |
79fa88f3 | 136 | #endif |
04a85b3b WD |
137 | } |
138 | ||
139 | static inline void dsp_write_hpic(u16 val) | |
140 | { | |
79fa88f3 WD |
141 | #if defined(CONFIG_NETTA_6412) |
142 | *((volatile u16 *)DSP_BASE) = bit_invert(val); | |
143 | #else | |
04a85b3b | 144 | *((volatile u16 *)DSP_BASE) = val; |
79fa88f3 | 145 | #endif |
04a85b3b WD |
146 | } |
147 | ||
148 | static inline void dsp_reset(void) | |
149 | { | |
79fa88f3 | 150 | #if defined(CONFIG_NETTA_6412) |
6d0f6bcf | 151 | ((volatile immap_t *)CONFIG_SYS_IMMR)->im_ioport.iop_pddat &= ~(1 << (15 - 15)); |
79fa88f3 | 152 | udelay(500); |
6d0f6bcf | 153 | ((volatile immap_t *)CONFIG_SYS_IMMR)->im_ioport.iop_pddat |= (1 << (15 - 15)); |
79fa88f3 WD |
154 | udelay(500); |
155 | #else | |
6d0f6bcf | 156 | ((volatile immap_t *)CONFIG_SYS_IMMR)->im_ioport.iop_pddat &= ~(1 << (15 - 7)); |
04a85b3b | 157 | udelay(250); |
6d0f6bcf | 158 | ((volatile immap_t *)CONFIG_SYS_IMMR)->im_ioport.iop_pddat |= (1 << (15 - 7)); |
04a85b3b | 159 | udelay(250); |
79fa88f3 | 160 | #endif |
04a85b3b WD |
161 | } |
162 | ||
163 | static inline u32 dsp_read_hpic_word(u32 addr) | |
164 | { | |
165 | u32 val; | |
166 | volatile u16 *p; | |
79fa88f3 WD |
167 | #if defined(CONFIG_NETTA_6412) |
168 | p = (volatile u16 *)((volatile u8 *)DSP_BASE + addr); | |
04a85b3b | 169 | |
79fa88f3 WD |
170 | val = ((u32) bit_invert(p[0]) << 16); |
171 | /* dsp_delay(); */ | |
172 | ||
173 | val |= bit_invert(p[1]); | |
174 | /* dsp_delay(); */ | |
175 | #else | |
04a85b3b WD |
176 | p = (volatile u16 *)((volatile u8 *)DSP_BASE + addr); |
177 | ||
178 | val = ((u32) p[0] << 16); | |
179 | dsp_delay(); | |
180 | ||
181 | val |= p[1]; | |
182 | dsp_delay(); | |
79fa88f3 | 183 | #endif |
04a85b3b WD |
184 | return val; |
185 | } | |
186 | ||
187 | static inline u16 dsp_read_hpic_hi_hword(u32 addr) | |
188 | { | |
79fa88f3 WD |
189 | #if defined(CONFIG_NETTA_6412) |
190 | return bit_invert(*(volatile u16 *)((volatile u8 *)DSP_BASE + addr)); | |
191 | #else | |
04a85b3b | 192 | return *(volatile u16 *)((volatile u8 *)DSP_BASE + addr); |
79fa88f3 | 193 | #endif |
04a85b3b WD |
194 | } |
195 | ||
196 | static inline u16 dsp_read_hpic_lo_hword(u32 addr) | |
197 | { | |
79fa88f3 WD |
198 | #if defined(CONFIG_NETTA_6412) |
199 | return bit_invert(*(volatile u16 *)((volatile u8 *)DSP_BASE + addr + 2)); | |
200 | #else | |
04a85b3b | 201 | return *(volatile u16 *)((volatile u8 *)DSP_BASE + addr + 2); |
79fa88f3 WD |
202 | #endif |
203 | } | |
204 | ||
205 | static inline void dsp_wait_hrdy(void) | |
206 | { | |
207 | int i; | |
208 | ||
209 | i = 0; | |
210 | #if defined(CONFIG_NETTA_6412) | |
211 | while (i < 1000 && (dsp_read_hpic_word(DSP_HPIC) & 0x08) == 0) { | |
212 | #else | |
213 | while (i < 1000 && (dsp_read_hpic() & 0x08) == 0) { | |
214 | #endif | |
215 | dsp_delay(); | |
216 | i++; | |
217 | } | |
04a85b3b WD |
218 | } |
219 | ||
220 | static inline void dsp_write_hpic_word(u32 addr, u32 val) | |
221 | { | |
222 | volatile u16 *p; | |
79fa88f3 WD |
223 | #if defined(CONFIG_NETTA_6412) |
224 | p = (volatile u16 *)((volatile u8 *)DSP_BASE + addr); | |
225 | p[0] = bit_invert((u16)(val >> 16)); | |
226 | /* dsp_delay(); */ | |
04a85b3b | 227 | |
79fa88f3 WD |
228 | p[1] = bit_invert((u16)val); |
229 | /* dsp_delay(); */ | |
230 | #else | |
04a85b3b WD |
231 | p = (volatile u16 *)((volatile u8 *)DSP_BASE + addr); |
232 | p[0] = (u16)(val >> 16); | |
233 | dsp_delay(); | |
234 | ||
235 | p[1] = (u16)val; | |
236 | dsp_delay(); | |
79fa88f3 | 237 | #endif |
04a85b3b WD |
238 | } |
239 | ||
240 | static inline void dsp_write_hpic_hi_hword(u32 addr, u16 val_h) | |
241 | { | |
79fa88f3 WD |
242 | #if defined(CONFIG_NETTA_6412) |
243 | *(volatile u16 *)((volatile u8 *)DSP_BASE + addr) = bit_invert(val_h); | |
244 | #else | |
245 | ||
04a85b3b | 246 | *(volatile u16 *)((volatile u8 *)DSP_BASE + addr) = val_h; |
79fa88f3 | 247 | #endif |
04a85b3b WD |
248 | } |
249 | ||
250 | static inline void dsp_write_hpic_lo_hword(u32 addr, u16 val_l) | |
251 | { | |
79fa88f3 WD |
252 | #if defined(CONFIG_NETTA_6412) |
253 | *(volatile u16 *)((volatile u8 *)DSP_BASE + addr + 2) = bit_invert(val_l); | |
254 | #else | |
04a85b3b | 255 | *(volatile u16 *)((volatile u8 *)DSP_BASE + addr + 2) = val_l; |
79fa88f3 | 256 | #endif |
04a85b3b WD |
257 | } |
258 | ||
259 | /********************************************************************/ | |
260 | ||
261 | static inline void c62_write_word(u32 addr, u32 val) | |
262 | { | |
263 | dsp_write_hpic_hi_hword(DSP_HPIA, (u16)(addr >> 16)); | |
79fa88f3 | 264 | #if !defined(CONFIG_NETTA_6412) |
04a85b3b | 265 | dsp_delay(); |
79fa88f3 | 266 | #endif |
04a85b3b | 267 | dsp_write_hpic_lo_hword(DSP_HPIA, (u16)addr); |
79fa88f3 | 268 | #if !defined(CONFIG_NETTA_6412) |
04a85b3b | 269 | dsp_delay(); |
79fa88f3 | 270 | #endif |
04a85b3b WD |
271 | |
272 | dsp_wait_hrdy(); | |
79fa88f3 | 273 | #if !defined(CONFIG_NETTA_6412) |
04a85b3b | 274 | dsp_delay(); |
79fa88f3 | 275 | #endif |
04a85b3b | 276 | dsp_write_hpic_hi_hword(DSP_HPID2, (u16)(val >> 16)); |
79fa88f3 | 277 | #if !defined(CONFIG_NETTA_6412) |
04a85b3b WD |
278 | dsp_delay(); |
279 | ||
79fa88f3 WD |
280 | /* dsp_wait_hrdy(); |
281 | dsp_delay(); */ | |
282 | #endif | |
04a85b3b | 283 | dsp_write_hpic_lo_hword(DSP_HPID2, (u16)val); |
79fa88f3 | 284 | #if !defined(CONFIG_NETTA_6412) |
04a85b3b | 285 | dsp_delay(); |
79fa88f3 | 286 | #endif |
04a85b3b WD |
287 | } |
288 | ||
289 | static u32 c62_read_word(u32 addr) | |
290 | { | |
291 | u32 val; | |
292 | ||
293 | dsp_write_hpic_hi_hword(DSP_HPIA, (u16)(addr >> 16)); | |
79fa88f3 | 294 | #if !defined(CONFIG_NETTA_6412) |
04a85b3b | 295 | dsp_delay(); |
79fa88f3 | 296 | #endif |
04a85b3b | 297 | dsp_write_hpic_lo_hword(DSP_HPIA, (u16)addr); |
79fa88f3 | 298 | #if !defined(CONFIG_NETTA_6412) |
04a85b3b | 299 | dsp_delay(); |
79fa88f3 | 300 | #endif |
04a85b3b WD |
301 | |
302 | /* FETCH */ | |
79fa88f3 WD |
303 | #if defined(CONFIG_NETTA_6412) |
304 | dsp_write_hpic_word(DSP_HPIC, 0x00100010); | |
305 | #else | |
04a85b3b WD |
306 | dsp_write_hpic(0x10); |
307 | dsp_delay(); | |
79fa88f3 | 308 | #endif |
04a85b3b | 309 | dsp_wait_hrdy(); |
79fa88f3 | 310 | #if !defined(CONFIG_NETTA_6412) |
04a85b3b | 311 | dsp_delay(); |
79fa88f3 | 312 | #endif |
04a85b3b | 313 | val = (u32)dsp_read_hpic_hi_hword(DSP_HPID2) << 16; |
79fa88f3 | 314 | #if !defined(CONFIG_NETTA_6412) |
04a85b3b WD |
315 | dsp_delay(); |
316 | ||
79fa88f3 WD |
317 | /* dsp_wait_hrdy(); |
318 | dsp_delay(); */ | |
319 | #endif | |
04a85b3b | 320 | val |= dsp_read_hpic_lo_hword(DSP_HPID2); |
79fa88f3 | 321 | #if !defined(CONFIG_NETTA_6412) |
04a85b3b | 322 | dsp_delay(); |
79fa88f3 | 323 | #endif |
04a85b3b WD |
324 | return val; |
325 | } | |
326 | ||
327 | static inline void c62_read(u32 addr, u32 *buffer, int numdata) | |
328 | { | |
329 | int i; | |
330 | ||
331 | if (numdata <= 0) | |
332 | return; | |
333 | ||
334 | for (i = 0; i < numdata; i++) { | |
335 | *buffer++ = c62_read_word(addr); | |
336 | addr += 4; | |
337 | } | |
338 | } | |
339 | ||
340 | static inline u32 c62_checksum(u32 addr, int numdata) | |
341 | { | |
342 | int i; | |
343 | u32 chksum; | |
344 | ||
345 | chksum = 0; | |
346 | for (i = 0; i < numdata; i++) { | |
347 | chksum += c62_read_word(addr); | |
348 | addr += 4; | |
349 | } | |
350 | ||
351 | return chksum; | |
352 | } | |
353 | ||
354 | static inline void c62_write(u32 addr, const u32 *buffer, int numdata) | |
355 | { | |
356 | int i; | |
357 | ||
358 | if (numdata <= 0) | |
359 | return; | |
360 | ||
361 | for (i = 0; i < numdata; i++) { | |
362 | c62_write_word(addr, *buffer++); | |
363 | addr += 4; | |
364 | } | |
365 | } | |
366 | ||
367 | static inline int c62_write_word_validated(u32 addr, u32 val) | |
368 | { | |
369 | c62_write_word(addr, val); | |
370 | return c62_read_word(addr) == val ? 0 : -1; | |
371 | } | |
372 | ||
373 | static inline int c62_write_validated(u32 addr, const u32 *buffer, int numdata) | |
374 | { | |
375 | int i, r; | |
376 | ||
377 | if (numdata <= 0) | |
378 | return 0; | |
379 | ||
380 | for (i = 0; i < numdata; i++) { | |
381 | r = c62_write_word_validated(addr, *buffer++); | |
382 | if (r < 0) | |
383 | return r; | |
384 | addr += 4; | |
385 | } | |
386 | return 0; | |
387 | } | |
388 | ||
79fa88f3 WD |
389 | #if defined(CONFIG_NETTA_6412) |
390 | ||
391 | #define DRAM_REGS_BASE 0x1800000 | |
392 | ||
393 | #define GBLCTL DRAM_REGS_BASE | |
394 | #define CECTL1 (DRAM_REGS_BASE + 0x4) | |
395 | #define CECTL0 (DRAM_REGS_BASE + 0x8) | |
396 | #define CECTL2 (DRAM_REGS_BASE + 0x10) | |
397 | #define CECTL3 (DRAM_REGS_BASE + 0x14) | |
398 | #define SDCTL (DRAM_REGS_BASE + 0x18) | |
399 | #define SDTIM (DRAM_REGS_BASE + 0x1C) | |
400 | #define SDEXT (DRAM_REGS_BASE + 0x20) | |
401 | #define SESEC1 (DRAM_REGS_BASE + 0x44) | |
402 | #define SESEC0 (DRAM_REGS_BASE + 0x48) | |
403 | #define SESEC2 (DRAM_REGS_BASE + 0x50) | |
404 | #define SESEC3 (DRAM_REGS_BASE + 0x54) | |
405 | ||
406 | #define MAR128 0x1848200 | |
407 | #define MAR129 0x1848204 | |
408 | ||
409 | void dsp_dram_initialize(void) | |
410 | { | |
411 | c62_write_word(GBLCTL, 0x120E4); | |
412 | c62_write_word(CECTL1, 0x18); | |
413 | c62_write_word(CECTL0, 0xD0); | |
414 | c62_write_word(CECTL2, 0x18); | |
415 | c62_write_word(CECTL3, 0x18); | |
416 | c62_write_word(SDCTL, 0x47115000); | |
417 | c62_write_word(SDTIM, 1536); | |
418 | c62_write_word(SDEXT, 0x534A9); | |
419 | #if 0 | |
420 | c62_write_word(SESEC1, 0); | |
421 | c62_write_word(SESEC0, 0); | |
422 | c62_write_word(SESEC2, 0); | |
423 | c62_write_word(SESEC3, 0); | |
424 | #endif | |
425 | c62_write_word(MAR128, 1); | |
426 | c62_write_word(MAR129, 0); | |
427 | } | |
428 | ||
429 | #endif | |
430 | ||
431 | static inline void dsp_init_hpic(void) | |
432 | { | |
433 | int i; | |
434 | volatile u16 *p; | |
435 | #if defined(CONFIG_NETTA_6412) | |
436 | dsp_go_fast(); | |
437 | #else | |
438 | dsp_go_slow(); | |
439 | #endif | |
440 | i = 0; | |
441 | #if defined(CONFIG_NETTA_6412) | |
442 | while (i < 1000 && (dsp_read_hpic_word(DSP_HPIC) & 0x08) == 0) { | |
443 | #else | |
444 | while (i < 1000 && (dsp_read_hpic() & 0x08) == 0) { | |
445 | #endif | |
446 | dsp_delay(); | |
447 | i++; | |
448 | } | |
449 | ||
450 | if (i == 1000) | |
451 | printf("HRDY stuck\n"); | |
452 | ||
453 | dsp_delay(); | |
454 | ||
455 | /* write control register */ | |
456 | p = (volatile u16 *)DSP_BASE; | |
457 | p[0] = 0x0000; | |
458 | dsp_delay(); | |
459 | p[1] = 0x0000; | |
460 | dsp_delay(); | |
461 | ||
462 | #if !defined(CONFIG_NETTA_6412) | |
463 | dsp_go_fast(); | |
464 | #endif | |
465 | } | |
466 | ||
04a85b3b WD |
467 | /***********************************************************************************************************/ |
468 | ||
79fa88f3 WD |
469 | #if !defined(CONFIG_NETTA_6412) |
470 | ||
04a85b3b WD |
471 | static const u8 bootstrap_rbin[5084] = { |
472 | 0x52, 0x42, 0x49, 0x4e, 0xc5, 0xa9, 0x9f, 0x1a, 0x00, 0x00, 0x00, 0x02, | |
473 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, | |
474 | 0x00, 0x00, 0x11, 0xc0, 0x00, 0x17, 0x94, 0x2a, 0x00, 0x00, 0x00, 0x6a, | |
475 | 0x00, 0x00, 0x03, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
476 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, | |
477 | 0x00, 0x18, 0x00, 0xe2, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, | |
478 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
479 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0xe2, | |
480 | 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
481 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
482 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0xe2, 0x00, 0x00, 0x60, 0x00, | |
483 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
484 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
485 | 0x00, 0x18, 0x00, 0xe2, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, | |
486 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
487 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0xe2, | |
488 | 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
489 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
490 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0xe2, 0x00, 0x00, 0x60, 0x00, | |
491 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
492 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
493 | 0x00, 0x18, 0x00, 0xe2, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, | |
494 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
495 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0xe2, | |
496 | 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
497 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
498 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0xe2, 0x00, 0x00, 0x60, 0x00, | |
499 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
500 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
501 | 0x00, 0x18, 0x00, 0xe2, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, | |
502 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
503 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0xe2, | |
504 | 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
505 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
506 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0xe2, 0x00, 0x00, 0x60, 0x00, | |
507 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
508 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
509 | 0x00, 0x18, 0x00, 0xe2, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, | |
510 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
511 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0xe2, | |
512 | 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
513 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
514 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0xe2, 0x00, 0x00, 0x60, 0x00, | |
515 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
516 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
517 | 0x00, 0x17, 0x94, 0x2a, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x03, 0x62, | |
518 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
519 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x18, 0x00, 0xe2, | |
520 | 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
521 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
522 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0xe2, 0x00, 0x00, 0x60, 0x00, | |
523 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
524 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
525 | 0x00, 0x18, 0x00, 0xe2, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, | |
526 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
527 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0xe2, | |
528 | 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
529 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
530 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0xe2, 0x00, 0x00, 0x60, 0x00, | |
531 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
532 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
533 | 0x00, 0x18, 0x00, 0xe2, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, | |
534 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
535 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0xe2, | |
536 | 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
537 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
538 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0xe2, 0x00, 0x00, 0x60, 0x00, | |
539 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
540 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
541 | 0x00, 0x18, 0x00, 0xe2, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, | |
542 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
543 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0xe2, | |
544 | 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
545 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
546 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0xe2, 0x00, 0x00, 0x60, 0x00, | |
547 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
548 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
549 | 0x00, 0x18, 0x00, 0xe2, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, | |
550 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
551 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0xe2, | |
552 | 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
553 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
554 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0xe2, 0x00, 0x00, 0x60, 0x00, | |
555 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
556 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
557 | 0x00, 0x18, 0x00, 0xe2, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, | |
558 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
559 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x90, 0x10, 0x5a, | |
560 | 0x00, 0x19, 0x2e, 0x28, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x64, | |
561 | 0x02, 0x00, 0x00, 0xaa, 0x02, 0x10, 0xac, 0xe2, 0x00, 0x00, 0x20, 0x00, | |
562 | 0x00, 0x00, 0x02, 0x64, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x9f, 0x7a, | |
563 | 0x30, 0x00, 0x08, 0x10, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x04, 0x28, | |
564 | 0x00, 0x00, 0xc6, 0x69, 0x02, 0x16, 0x4c, 0xa2, 0x02, 0x00, 0x90, 0x7a, | |
565 | 0x00, 0x10, 0x02, 0xe4, 0x00, 0x00, 0x60, 0x00, 0x00, 0x02, 0xd6, 0xc8, | |
566 | 0x00, 0x10, 0x02, 0xf4, 0x03, 0x10, 0x02, 0xe6, 0x00, 0x00, 0x60, 0x00, | |
567 | 0x03, 0x1a, 0xf7, 0xca, 0x03, 0x10, 0x02, 0xf6, 0x00, 0x00, 0x04, 0x28, | |
568 | 0x00, 0x00, 0xc6, 0x69, 0x02, 0x16, 0x4c, 0xa2, 0x02, 0x00, 0x90, 0x7a, | |
569 | 0x02, 0x90, 0x02, 0xe6, 0x00, 0x00, 0x60, 0x00, 0x02, 0x97, 0xcf, 0x5a, | |
570 | 0x02, 0x90, 0x02, 0xf6, 0x02, 0x90, 0x02, 0xe6, 0x00, 0x00, 0x60, 0x00, | |
571 | 0x02, 0x96, 0x10, 0xca, 0x02, 0x90, 0x02, 0xf6, 0x00, 0x0c, 0x03, 0x62, | |
572 | 0x00, 0x00, 0x80, 0x00, 0x02, 0x90, 0x10, 0x5a, 0x00, 0x00, 0x04, 0x28, | |
573 | 0x00, 0x00, 0xc6, 0x69, 0x02, 0x16, 0x4c, 0xa2, 0x02, 0x00, 0x90, 0x7a, | |
574 | 0x03, 0x10, 0x02, 0xe6, 0x00, 0x00, 0x60, 0x00, 0x03, 0x18, 0x2f, 0xda, | |
575 | 0x03, 0x10, 0x02, 0xf6, 0x03, 0x10, 0x02, 0xe6, 0x00, 0x00, 0x60, 0x00, | |
576 | 0x03, 0x1a, 0x10, 0x8a, 0x03, 0x10, 0x02, 0xf6, 0x00, 0x19, 0x2e, 0x28, | |
577 | 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x64, 0x03, 0x00, 0x00, 0xaa, | |
578 | 0x02, 0x98, 0xac, 0xe2, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x02, 0x64, | |
579 | 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xbf, 0x7a, 0x22, 0x90, 0x02, 0xe6, | |
580 | 0x00, 0x00, 0x60, 0x00, 0x22, 0x96, 0xd6, 0x8a, 0x22, 0x90, 0x02, 0xf6, | |
581 | 0x22, 0x90, 0x02, 0xe6, 0x00, 0x00, 0x60, 0x00, 0x22, 0x96, 0xf7, 0x8a, | |
582 | 0x22, 0x90, 0x02, 0xf6, 0x00, 0x0c, 0x03, 0x62, 0x00, 0x00, 0x80, 0x00, | |
583 | 0x00, 0x0c, 0x03, 0x62, 0x00, 0x00, 0x80, 0x00, 0x00, 0x0c, 0x03, 0x62, | |
584 | 0x00, 0x00, 0x80, 0x00, 0x00, 0x19, 0x2e, 0x28, 0x00, 0x00, 0x00, 0x68, | |
585 | 0x00, 0x00, 0x02, 0x64, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x02, 0x64, | |
586 | 0x00, 0x00, 0x60, 0x00, 0x00, 0x80, 0x4f, 0x58, 0x02, 0x00, 0x12, 0x2a, | |
587 | 0x02, 0x00, 0xc8, 0x6a, 0x02, 0x90, 0x02, 0xe6, 0x00, 0x00, 0x60, 0x00, | |
588 | 0x02, 0x95, 0x8c, 0xca, 0x02, 0x90, 0x02, 0xf6, 0x00, 0x00, 0x12, 0x28, | |
589 | 0x00, 0x00, 0xc8, 0x68, 0x02, 0x00, 0x02, 0x66, 0x00, 0x00, 0x60, 0x00, | |
590 | 0x02, 0x11, 0xad, 0xca, 0x02, 0x00, 0x02, 0x76, 0x92, 0x00, 0x12, 0x2a, | |
591 | 0x92, 0x00, 0xc8, 0x6a, 0x92, 0x90, 0x02, 0xe6, 0x00, 0x00, 0x60, 0x00, | |
592 | 0x92, 0x95, 0x6b, 0xca, 0x92, 0x90, 0x02, 0xf6, 0x80, 0x00, 0x12, 0x28, | |
593 | 0x80, 0x00, 0xc8, 0x68, 0x82, 0x00, 0x02, 0x66, 0x80, 0x00, 0x12, 0x28, | |
594 | 0x80, 0x00, 0xc8, 0x68, 0x00, 0x00, 0x20, 0x00, 0x82, 0x11, 0x6b, 0x8a, | |
595 | 0x82, 0x00, 0x02, 0x76, 0x02, 0x00, 0x12, 0x2a, 0x02, 0x00, 0xc8, 0x6a, | |
596 | 0x02, 0x90, 0x02, 0xe6, 0x00, 0x00, 0x60, 0x00, 0x02, 0x95, 0x4a, 0xca, | |
597 | 0x02, 0x90, 0x02, 0xf6, 0x90, 0x00, 0x12, 0x28, 0x90, 0x00, 0xc8, 0x68, | |
598 | 0x92, 0x00, 0x02, 0x66, 0x00, 0x00, 0x60, 0x00, 0x92, 0x11, 0x29, 0xca, | |
599 | 0x92, 0x00, 0x02, 0x76, 0x82, 0x00, 0x12, 0x2a, 0x82, 0x00, 0xc8, 0x6a, | |
600 | 0x82, 0x10, 0x02, 0xe6, 0x80, 0x00, 0x12, 0x28, 0x80, 0x00, 0xc8, 0x68, | |
601 | 0x00, 0x00, 0x20, 0x00, 0x82, 0x11, 0x29, 0x8a, 0x82, 0x00, 0x02, 0x76, | |
602 | 0x00, 0x00, 0x12, 0x28, 0x00, 0x00, 0xc8, 0x68, 0x02, 0x00, 0x02, 0x66, | |
603 | 0x00, 0x00, 0x60, 0x00, 0x02, 0x11, 0x08, 0xca, 0x02, 0x00, 0x02, 0x76, | |
604 | 0x02, 0x00, 0x12, 0x2a, 0x02, 0x00, 0xc8, 0x6a, 0x02, 0x90, 0x02, 0xe6, | |
605 | 0x00, 0x00, 0x60, 0x00, 0x02, 0x97, 0x6f, 0x5a, 0x02, 0x90, 0x02, 0xf6, | |
606 | 0x00, 0x00, 0x12, 0x28, 0x00, 0x00, 0xc8, 0x68, 0x01, 0x80, 0x02, 0x64, | |
607 | 0x00, 0x00, 0x60, 0x00, 0x02, 0x0e, 0xff, 0x5a, 0x02, 0x00, 0x02, 0x76, | |
608 | 0x02, 0x00, 0x12, 0x2a, 0x02, 0x00, 0xc8, 0x6a, 0x00, 0x10, 0x02, 0xe4, | |
609 | 0x00, 0x00, 0x60, 0x00, 0x02, 0x83, 0xbf, 0x5a, 0x02, 0x90, 0x02, 0xf6, | |
610 | 0x00, 0x00, 0x12, 0x28, 0x00, 0x00, 0xc8, 0x68, 0x01, 0x80, 0x02, 0x64, | |
611 | 0x00, 0x00, 0x60, 0x00, 0x02, 0x0f, 0xdf, 0x5a, 0x02, 0x00, 0x02, 0x76, | |
612 | 0x00, 0x00, 0x04, 0x28, 0x00, 0x00, 0xc8, 0x68, 0x02, 0x00, 0x02, 0x66, | |
613 | 0x00, 0x00, 0x60, 0x00, 0x02, 0x12, 0xf7, 0xca, 0x02, 0x00, 0x02, 0x76, | |
614 | 0x02, 0x00, 0x04, 0x2a, 0x02, 0x00, 0xc8, 0x6a, 0x02, 0x90, 0x02, 0xe6, | |
615 | 0x00, 0x00, 0x60, 0x00, 0x02, 0x96, 0xd6, 0xca, 0x02, 0x90, 0x02, 0xf6, | |
616 | 0x00, 0x00, 0x04, 0x28, 0x00, 0x00, 0xc8, 0x68, 0x02, 0x00, 0x02, 0x66, | |
617 | 0x00, 0x00, 0x04, 0x28, 0x00, 0x00, 0xc8, 0x68, 0x00, 0x00, 0x20, 0x00, | |
618 | 0x02, 0x10, 0x85, 0xca, 0x02, 0x00, 0x02, 0x76, 0x00, 0x00, 0x04, 0x28, | |
619 | 0x00, 0x00, 0xc8, 0x68, 0x02, 0x80, 0x02, 0x66, 0x02, 0x00, 0x04, 0x2a, | |
620 | 0x02, 0x00, 0xc8, 0x6a, 0x00, 0x00, 0x20, 0x00, 0x02, 0x96, 0x95, 0xca, | |
621 | 0x02, 0x90, 0x02, 0xf6, 0x00, 0x00, 0x04, 0x28, 0x00, 0x00, 0xc8, 0x68, | |
622 | 0x01, 0x80, 0x02, 0x64, 0x00, 0x00, 0x60, 0x00, 0x02, 0x0f, 0xdf, 0x5a, | |
623 | 0x02, 0x00, 0x02, 0x76, 0x02, 0x00, 0x04, 0x2a, 0x02, 0x00, 0xc8, 0x6a, | |
624 | 0x02, 0x90, 0x02, 0xe6, 0x00, 0x00, 0x60, 0x00, 0x02, 0x96, 0x10, 0xca, | |
625 | 0x02, 0x90, 0x02, 0xf6, 0x00, 0x00, 0x04, 0x28, 0x00, 0x00, 0xc8, 0x68, | |
626 | 0x02, 0x00, 0x02, 0x66, 0x00, 0x00, 0x60, 0x00, 0x02, 0x11, 0xef, 0xca, | |
627 | 0x02, 0x00, 0x02, 0x76, 0x00, 0x00, 0x04, 0x28, 0x00, 0x00, 0xc8, 0x68, | |
628 | 0x02, 0x80, 0x02, 0x66, 0x02, 0x00, 0x04, 0x2a, 0x02, 0x00, 0xc8, 0x6a, | |
629 | 0x00, 0x00, 0x20, 0x00, 0x02, 0x95, 0xae, 0xca, 0x02, 0x90, 0x02, 0xf6, | |
630 | 0x02, 0x00, 0x06, 0x2a, 0x02, 0x00, 0xc8, 0x6a, 0x02, 0x10, 0x02, 0xe6, | |
631 | 0x00, 0x00, 0x06, 0x28, 0x00, 0x00, 0xc8, 0x68, 0x00, 0x00, 0x20, 0x00, | |
632 | 0x02, 0x10, 0x21, 0x0a, 0x02, 0x00, 0x02, 0x76, 0x00, 0x00, 0x06, 0x28, | |
633 | 0x00, 0x00, 0xc8, 0x68, 0x01, 0x80, 0x02, 0x64, 0x00, 0x00, 0x06, 0x28, | |
634 | 0x00, 0x00, 0xc8, 0x68, 0x00, 0x00, 0x20, 0x00, 0x01, 0x8d, 0xae, 0xc8, | |
635 | 0x01, 0x8d, 0x0c, 0x88, 0x01, 0x80, 0x02, 0x74, 0x00, 0x00, 0x06, 0x28, | |
636 | 0x00, 0x00, 0xc8, 0x68, 0x02, 0x00, 0x02, 0x66, 0x00, 0x00, 0x06, 0x28, | |
637 | 0x00, 0x00, 0xc8, 0x68, 0x00, 0x00, 0x20, 0x00, 0x02, 0x10, 0xa7, 0xca, | |
638 | 0x02, 0x00, 0x02, 0x76, 0x00, 0x00, 0x06, 0x28, 0x00, 0x00, 0xc8, 0x68, | |
639 | 0x00, 0x00, 0x02, 0x64, 0x02, 0x00, 0x06, 0x2a, 0x02, 0x00, 0xc8, 0x6a, | |
640 | 0x00, 0x00, 0x20, 0x00, 0x00, 0x02, 0x31, 0xc8, 0x00, 0x02, 0x10, 0x88, | |
641 | 0x00, 0x10, 0x02, 0xf4, 0x00, 0x00, 0x06, 0x28, 0x00, 0x00, 0xc8, 0x68, | |
642 | 0x02, 0x80, 0x02, 0x66, 0x02, 0x00, 0x06, 0x2a, 0x02, 0x00, 0xc8, 0x6a, | |
643 | 0x00, 0x00, 0x20, 0x00, 0x02, 0x96, 0x74, 0xca, 0x02, 0x90, 0x02, 0xf6, | |
644 | 0x00, 0x00, 0x06, 0x28, 0x00, 0x00, 0xc8, 0x68, 0x02, 0x80, 0x02, 0x66, | |
645 | 0x02, 0x00, 0x06, 0x2a, 0x02, 0x00, 0xc8, 0x6a, 0x00, 0x00, 0x20, 0x00, | |
646 | 0x02, 0x96, 0x52, 0x8a, 0x02, 0x90, 0x02, 0xf6, 0x02, 0x00, 0x08, 0x2a, | |
647 | 0x02, 0x00, 0xc8, 0x6a, 0x02, 0x10, 0x02, 0xe6, 0x00, 0x00, 0x08, 0x28, | |
648 | 0x00, 0x00, 0xc8, 0x68, 0x00, 0x00, 0x20, 0x00, 0x02, 0x10, 0x21, 0x0a, | |
649 | 0x02, 0x00, 0x02, 0x76, 0x00, 0x00, 0x08, 0x28, 0x00, 0x00, 0xc8, 0x68, | |
650 | 0x00, 0x00, 0x02, 0x64, 0x02, 0x00, 0x08, 0x2a, 0x02, 0x00, 0xc8, 0x6a, | |
651 | 0x00, 0x00, 0x20, 0x00, 0x00, 0x01, 0xae, 0xc8, 0x00, 0x01, 0x0c, 0x88, | |
652 | 0x00, 0x10, 0x02, 0xf4, 0x02, 0x00, 0x08, 0x2a, 0x02, 0x00, 0xc8, 0x6a, | |
653 | 0x02, 0x10, 0x02, 0xe6, 0x00, 0x00, 0x08, 0x28, 0x00, 0x00, 0xc8, 0x68, | |
654 | 0x00, 0x00, 0x20, 0x00, 0x02, 0x10, 0xa7, 0xca, 0x02, 0x00, 0x02, 0x76, | |
655 | 0x02, 0x00, 0x08, 0x2a, 0x02, 0x00, 0xc8, 0x6a, 0x02, 0x90, 0x02, 0xe6, | |
656 | 0x02, 0x00, 0x08, 0x2a, 0x02, 0x00, 0xc8, 0x6a, 0x00, 0x00, 0x20, 0x00, | |
657 | 0x02, 0x96, 0x31, 0xca, 0x02, 0x96, 0x10, 0x8a, 0x02, 0x90, 0x02, 0xf6, | |
658 | 0x02, 0x00, 0x08, 0x2a, 0x02, 0x00, 0xc8, 0x6a, 0x02, 0x10, 0x02, 0xe6, | |
659 | 0x00, 0x00, 0x08, 0x28, 0x00, 0x00, 0xc8, 0x68, 0x00, 0x00, 0x20, 0x00, | |
660 | 0x02, 0x12, 0x74, 0xca, 0x02, 0x00, 0x02, 0x76, 0x02, 0x00, 0x08, 0x2a, | |
661 | 0x02, 0x00, 0xc8, 0x6a, 0x02, 0x90, 0x02, 0xe6, 0x02, 0x00, 0x08, 0x2a, | |
662 | 0x02, 0x00, 0xc8, 0x6a, 0x00, 0x00, 0x20, 0x00, 0x02, 0x96, 0x52, 0x8a, | |
663 | 0x02, 0x90, 0x02, 0xf6, 0x90, 0x00, 0x1b, 0x10, 0x90, 0x19, 0x2e, 0x28, | |
664 | 0x90, 0x00, 0x00, 0x68, 0x90, 0x00, 0x02, 0x64, 0x00, 0x00, 0x20, 0x00, | |
665 | 0x00, 0x00, 0x0a, 0x28, 0x00, 0x00, 0xc8, 0x68, 0x01, 0x80, 0x02, 0x64, | |
666 | 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x0a, 0x28, 0x01, 0x8f, 0xbd, 0x88, | |
667 | 0x00, 0x00, 0xc8, 0x68, 0x01, 0x80, 0x02, 0x74, 0x00, 0x00, 0x0a, 0x28, | |
668 | 0x00, 0x00, 0xc8, 0x68, 0x00, 0x00, 0x02, 0x64, 0x02, 0x00, 0x0a, 0x2a, | |
669 | 0x02, 0x00, 0xc8, 0x6a, 0x00, 0x00, 0x20, 0x00, 0x00, 0x03, 0x9c, 0x88, | |
670 | 0x00, 0x10, 0x02, 0xf4, 0x02, 0x00, 0x0a, 0x2a, 0x02, 0x00, 0xc8, 0x6a, | |
671 | 0x00, 0x10, 0x02, 0xe4, 0x02, 0x00, 0x0a, 0x2a, 0x02, 0x00, 0xc8, 0x6a, | |
672 | 0x00, 0x00, 0x20, 0x00, 0x00, 0x03, 0x1b, 0xc8, 0x00, 0x02, 0x17, 0x88, | |
673 | 0x00, 0x10, 0x02, 0xf4, 0x00, 0x19, 0x2e, 0x28, 0x00, 0x00, 0x00, 0x68, | |
674 | 0x00, 0x00, 0x02, 0x64, 0x02, 0x00, 0x0a, 0x2a, 0x02, 0x00, 0xc8, 0x6a, | |
675 | 0x02, 0x10, 0x02, 0xe6, 0x00, 0x00, 0x00, 0x00, 0x01, 0x82, 0x42, 0x64, | |
676 | 0x00, 0x00, 0x0a, 0x28, 0x00, 0x00, 0xc8, 0x68, 0x00, 0x00, 0x00, 0x00, | |
677 | 0x02, 0x10, 0x07, 0xca, 0x02, 0x0c, 0x9f, 0xfa, 0x02, 0x00, 0x02, 0x76, | |
678 | 0x00, 0x19, 0x2e, 0x28, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x64, | |
679 | 0x00, 0x00, 0x60, 0x00, 0x03, 0x00, 0x80, 0x58, 0x03, 0x00, 0x10, 0x2a, | |
680 | 0x02, 0x04, 0x03, 0xe2, 0x02, 0x18, 0x56, 0x15, 0x02, 0x93, 0xcf, 0x5a, | |
681 | 0x00, 0x94, 0x03, 0xa2, 0x02, 0x18, 0x56, 0x14, 0x00, 0x00, 0x20, 0x01, | |
682 | 0x00, 0x00, 0x00, 0x00, 0x02, 0x98, 0x56, 0x15, 0x00, 0x90, 0x4a, 0x58, | |
683 | 0x81, 0x98, 0xa0, 0x14, 0x04, 0x04, 0x00, 0x59, 0x00, 0x00, 0x06, 0x12, | |
684 | 0x00, 0x90, 0x4a, 0x59, 0x02, 0x98, 0x56, 0x15, 0x00, 0x00, 0x00, 0x00, | |
685 | 0x00, 0x1b, 0x40, 0x5b, 0x03, 0x80, 0x00, 0xf9, 0x02, 0x00, 0x00, 0xa9, | |
686 | 0x81, 0x98, 0xa0, 0x14, 0x01, 0x20, 0x00, 0x59, 0x04, 0x04, 0x01, 0xa1, | |
687 | 0x20, 0x00, 0x02, 0x13, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x10, 0x6c, 0xe1, | |
688 | 0x00, 0x94, 0x4a, 0x59, 0x02, 0x98, 0x56, 0x14, 0xa3, 0x9c, 0x0f, 0xf9, | |
689 | 0x20, 0x03, 0xe0, 0x5b, 0x81, 0x98, 0xa0, 0x14, 0x04, 0x04, 0x00, 0x59, | |
690 | 0x01, 0x20, 0x01, 0xa0, 0x00, 0x94, 0x4a, 0x59, 0xa0, 0x10, 0x6c, 0xe0, | |
691 | 0xa3, 0x9c, 0x0f, 0xf9, 0x81, 0x98, 0x60, 0x14, 0x04, 0x04, 0x00, 0x59, | |
692 | 0x01, 0x20, 0x01, 0xa0, 0x00, 0x94, 0x4a, 0x59, 0xa0, 0x10, 0x6c, 0xe0, | |
693 | 0xa3, 0x9c, 0x0f, 0xf9, 0x81, 0x98, 0x20, 0x14, 0x02, 0x84, 0x00, 0x59, | |
694 | 0x01, 0x20, 0x01, 0xa0, 0xa0, 0x10, 0x6c, 0xe0, 0x01, 0x14, 0x01, 0xa1, | |
695 | 0xa3, 0x9c, 0x0f, 0xf8, 0x00, 0x90, 0x03, 0xa2, 0xa0, 0x10, 0x6c, 0xe0, | |
696 | 0xa3, 0x9c, 0x0f, 0xf8, 0x02, 0x00, 0x0c, 0x2b, 0x00, 0x00, 0x00, 0xa8, | |
697 | 0x02, 0x00, 0xc8, 0x6b, 0x00, 0x00, 0x01, 0xe8, 0x00, 0x10, 0x02, 0xf4, | |
698 | 0x02, 0x00, 0x0e, 0x2a, 0x02, 0x00, 0xc8, 0x6a, 0x03, 0x90, 0x02, 0xf4, | |
699 | 0x00, 0x00, 0x10, 0x28, 0x00, 0x00, 0xc8, 0x68, 0x03, 0x80, 0x02, 0x74, | |
700 | 0x00, 0x0c, 0x03, 0x62, 0x00, 0x00, 0x80, 0x00, 0x00, 0x19, 0x2e, 0x28, | |
701 | 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x64, 0x00, 0x00, 0x60, 0x00, | |
702 | 0x00, 0x00, 0x02, 0x64, 0x00, 0x00, 0x60, 0x00, 0x00, 0x80, 0x2f, 0x58, | |
703 | 0x02, 0x00, 0x12, 0x2a, 0x02, 0x00, 0xc6, 0x6a, 0x02, 0x90, 0x02, 0xe6, | |
704 | 0x00, 0x00, 0x60, 0x00, 0x02, 0x95, 0x8c, 0xca, 0x02, 0x90, 0x02, 0xf6, | |
705 | 0x00, 0x00, 0x12, 0x28, 0x00, 0x00, 0xc6, 0x68, 0x02, 0x00, 0x02, 0x66, | |
706 | 0x00, 0x00, 0x60, 0x00, 0x02, 0x11, 0xad, 0xca, 0x02, 0x00, 0x02, 0x76, | |
707 | 0x92, 0x00, 0x12, 0x2a, 0x92, 0x00, 0xc6, 0x6a, 0x92, 0x90, 0x02, 0xe6, | |
708 | 0x00, 0x00, 0x60, 0x00, 0x92, 0x95, 0x6b, 0xca, 0x92, 0x90, 0x02, 0xf6, | |
709 | 0x80, 0x00, 0x12, 0x28, 0x80, 0x00, 0xc6, 0x68, 0x82, 0x00, 0x02, 0x66, | |
710 | 0x80, 0x00, 0x12, 0x28, 0x80, 0x00, 0xc6, 0x68, 0x00, 0x00, 0x20, 0x00, | |
711 | 0x82, 0x11, 0x6b, 0x8a, 0x82, 0x00, 0x02, 0x76, 0x02, 0x00, 0x12, 0x2a, | |
712 | 0x02, 0x00, 0xc6, 0x6a, 0x02, 0x90, 0x02, 0xe6, 0x00, 0x00, 0x60, 0x00, | |
713 | 0x02, 0x95, 0x4a, 0xca, 0x02, 0x90, 0x02, 0xf6, 0x90, 0x00, 0x12, 0x28, | |
714 | 0x90, 0x00, 0xc6, 0x68, 0x92, 0x00, 0x02, 0x66, 0x00, 0x00, 0x60, 0x00, | |
715 | 0x92, 0x11, 0x29, 0xca, 0x92, 0x00, 0x02, 0x76, 0x82, 0x00, 0x12, 0x2a, | |
716 | 0x82, 0x00, 0xc6, 0x6a, 0x82, 0x10, 0x02, 0xe6, 0x80, 0x00, 0x12, 0x28, | |
717 | 0x80, 0x00, 0xc6, 0x68, 0x00, 0x00, 0x20, 0x00, 0x82, 0x11, 0x29, 0x8a, | |
718 | 0x82, 0x00, 0x02, 0x76, 0x00, 0x00, 0x12, 0x28, 0x00, 0x00, 0xc6, 0x68, | |
719 | 0x02, 0x00, 0x02, 0x66, 0x00, 0x00, 0x60, 0x00, 0x02, 0x11, 0x08, 0xca, | |
720 | 0x02, 0x00, 0x02, 0x76, 0x02, 0x00, 0x12, 0x2a, 0x02, 0x00, 0xc6, 0x6a, | |
721 | 0x02, 0x90, 0x02, 0xe6, 0x00, 0x00, 0x60, 0x00, 0x02, 0x97, 0x6f, 0x5a, | |
722 | 0x02, 0x90, 0x02, 0xf6, 0x00, 0x00, 0x12, 0x28, 0x00, 0x00, 0xc6, 0x68, | |
723 | 0x01, 0x80, 0x02, 0x64, 0x00, 0x00, 0x60, 0x00, 0x02, 0x0e, 0xff, 0x5a, | |
724 | 0x02, 0x00, 0x02, 0x76, 0x02, 0x00, 0x12, 0x2a, 0x02, 0x00, 0xc6, 0x6a, | |
725 | 0x00, 0x10, 0x02, 0xe4, 0x00, 0x00, 0x60, 0x00, 0x02, 0x83, 0xbf, 0x5a, | |
726 | 0x02, 0x90, 0x02, 0xf6, 0x00, 0x00, 0x12, 0x28, 0x00, 0x00, 0xc6, 0x68, | |
727 | 0x01, 0x80, 0x02, 0x64, 0x00, 0x00, 0x60, 0x00, 0x02, 0x0f, 0xdf, 0x5a, | |
728 | 0x02, 0x00, 0x02, 0x76, 0x00, 0x00, 0x04, 0x28, 0x00, 0x00, 0xc6, 0x68, | |
729 | 0x02, 0x00, 0x02, 0x66, 0x00, 0x00, 0x60, 0x00, 0x02, 0x12, 0xf7, 0xca, | |
730 | 0x02, 0x00, 0x02, 0x76, 0x02, 0x00, 0x04, 0x2a, 0x02, 0x00, 0xc6, 0x6a, | |
731 | 0x02, 0x90, 0x02, 0xe6, 0x00, 0x00, 0x60, 0x00, 0x02, 0x96, 0xd6, 0xca, | |
732 | 0x02, 0x90, 0x02, 0xf6, 0x00, 0x00, 0x04, 0x28, 0x00, 0x00, 0xc6, 0x68, | |
733 | 0x02, 0x00, 0x02, 0x66, 0x00, 0x00, 0x04, 0x28, 0x00, 0x00, 0xc6, 0x68, | |
734 | 0x00, 0x00, 0x20, 0x00, 0x02, 0x10, 0x85, 0xca, 0x02, 0x00, 0x02, 0x76, | |
735 | 0x00, 0x00, 0x04, 0x28, 0x00, 0x00, 0xc6, 0x68, 0x02, 0x80, 0x02, 0x66, | |
736 | 0x02, 0x00, 0x04, 0x2a, 0x02, 0x00, 0xc6, 0x6a, 0x00, 0x00, 0x20, 0x00, | |
737 | 0x02, 0x96, 0x95, 0xca, 0x02, 0x90, 0x02, 0xf6, 0x00, 0x00, 0x04, 0x28, | |
738 | 0x00, 0x00, 0xc6, 0x68, 0x01, 0x80, 0x02, 0x64, 0x00, 0x00, 0x60, 0x00, | |
739 | 0x02, 0x0f, 0xdf, 0x5a, 0x02, 0x00, 0x02, 0x76, 0x02, 0x00, 0x04, 0x2a, | |
740 | 0x02, 0x00, 0xc6, 0x6a, 0x02, 0x90, 0x02, 0xe6, 0x00, 0x00, 0x60, 0x00, | |
741 | 0x02, 0x96, 0x10, 0xca, 0x02, 0x90, 0x02, 0xf6, 0x00, 0x00, 0x04, 0x28, | |
742 | 0x00, 0x00, 0xc6, 0x68, 0x02, 0x00, 0x02, 0x66, 0x00, 0x00, 0x60, 0x00, | |
743 | 0x02, 0x11, 0xef, 0xca, 0x02, 0x00, 0x02, 0x76, 0x00, 0x00, 0x04, 0x28, | |
744 | 0x00, 0x00, 0xc6, 0x68, 0x02, 0x80, 0x02, 0x66, 0x02, 0x00, 0x04, 0x2a, | |
745 | 0x02, 0x00, 0xc6, 0x6a, 0x00, 0x00, 0x20, 0x00, 0x02, 0x95, 0xae, 0xca, | |
746 | 0x02, 0x90, 0x02, 0xf6, 0x02, 0x00, 0x06, 0x2a, 0x02, 0x00, 0xc6, 0x6a, | |
747 | 0x02, 0x10, 0x02, 0xe6, 0x00, 0x00, 0x06, 0x28, 0x00, 0x00, 0xc6, 0x68, | |
748 | 0x00, 0x00, 0x20, 0x00, 0x02, 0x10, 0x21, 0x0a, 0x02, 0x00, 0x02, 0x76, | |
749 | 0x00, 0x00, 0x06, 0x28, 0x00, 0x00, 0xc6, 0x68, 0x01, 0x80, 0x02, 0x64, | |
750 | 0x00, 0x00, 0x06, 0x28, 0x00, 0x00, 0xc6, 0x68, 0x00, 0x00, 0x20, 0x00, | |
751 | 0x01, 0x8d, 0xae, 0xc8, 0x01, 0x8d, 0x0c, 0x88, 0x01, 0x80, 0x02, 0x74, | |
752 | 0x00, 0x00, 0x06, 0x28, 0x00, 0x00, 0xc6, 0x68, 0x02, 0x00, 0x02, 0x66, | |
753 | 0x00, 0x00, 0x06, 0x28, 0x00, 0x00, 0xc6, 0x68, 0x00, 0x00, 0x20, 0x00, | |
754 | 0x02, 0x10, 0xa7, 0xca, 0x02, 0x00, 0x02, 0x76, 0x00, 0x00, 0x06, 0x28, | |
755 | 0x00, 0x00, 0xc6, 0x68, 0x00, 0x00, 0x02, 0x64, 0x02, 0x00, 0x06, 0x2a, | |
756 | 0x02, 0x00, 0xc6, 0x6a, 0x00, 0x00, 0x20, 0x00, 0x00, 0x02, 0x31, 0xc8, | |
757 | 0x00, 0x02, 0x10, 0x88, 0x00, 0x10, 0x02, 0xf4, 0x00, 0x00, 0x06, 0x28, | |
758 | 0x00, 0x00, 0xc6, 0x68, 0x02, 0x80, 0x02, 0x66, 0x02, 0x00, 0x06, 0x2a, | |
759 | 0x02, 0x00, 0xc6, 0x6a, 0x00, 0x00, 0x20, 0x00, 0x02, 0x96, 0x74, 0xca, | |
760 | 0x02, 0x90, 0x02, 0xf6, 0x00, 0x00, 0x06, 0x28, 0x00, 0x00, 0xc6, 0x68, | |
761 | 0x02, 0x80, 0x02, 0x66, 0x02, 0x00, 0x06, 0x2a, 0x02, 0x00, 0xc6, 0x6a, | |
762 | 0x00, 0x00, 0x20, 0x00, 0x02, 0x96, 0x52, 0x8a, 0x02, 0x90, 0x02, 0xf6, | |
763 | 0x02, 0x00, 0x08, 0x2a, 0x02, 0x00, 0xc6, 0x6a, 0x02, 0x10, 0x02, 0xe6, | |
764 | 0x00, 0x00, 0x08, 0x28, 0x00, 0x00, 0xc6, 0x68, 0x00, 0x00, 0x20, 0x00, | |
765 | 0x02, 0x10, 0x21, 0x0a, 0x02, 0x00, 0x02, 0x76, 0x00, 0x00, 0x08, 0x28, | |
766 | 0x00, 0x00, 0xc6, 0x68, 0x00, 0x00, 0x02, 0x64, 0x02, 0x00, 0x08, 0x2a, | |
767 | 0x02, 0x00, 0xc6, 0x6a, 0x00, 0x00, 0x20, 0x00, 0x00, 0x01, 0xae, 0xc8, | |
768 | 0x00, 0x01, 0x0c, 0x88, 0x00, 0x10, 0x02, 0xf4, 0x02, 0x00, 0x08, 0x2a, | |
769 | 0x02, 0x00, 0xc6, 0x6a, 0x02, 0x10, 0x02, 0xe6, 0x00, 0x00, 0x08, 0x28, | |
770 | 0x00, 0x00, 0xc6, 0x68, 0x00, 0x00, 0x20, 0x00, 0x02, 0x10, 0xa7, 0xca, | |
771 | 0x02, 0x00, 0x02, 0x76, 0x02, 0x00, 0x08, 0x2a, 0x02, 0x00, 0xc6, 0x6a, | |
772 | 0x02, 0x90, 0x02, 0xe6, 0x02, 0x00, 0x08, 0x2a, 0x02, 0x00, 0xc6, 0x6a, | |
773 | 0x00, 0x00, 0x20, 0x00, 0x02, 0x96, 0x31, 0xca, 0x02, 0x96, 0x10, 0x8a, | |
774 | 0x02, 0x90, 0x02, 0xf6, 0x02, 0x00, 0x08, 0x2a, 0x02, 0x00, 0xc6, 0x6a, | |
775 | 0x02, 0x10, 0x02, 0xe6, 0x00, 0x00, 0x08, 0x28, 0x00, 0x00, 0xc6, 0x68, | |
776 | 0x00, 0x00, 0x20, 0x00, 0x02, 0x12, 0x74, 0xca, 0x02, 0x00, 0x02, 0x76, | |
777 | 0x02, 0x00, 0x08, 0x2a, 0x02, 0x00, 0xc6, 0x6a, 0x02, 0x90, 0x02, 0xe6, | |
778 | 0x02, 0x00, 0x08, 0x2a, 0x02, 0x00, 0xc6, 0x6a, 0x00, 0x00, 0x20, 0x00, | |
779 | 0x02, 0x96, 0x52, 0x8a, 0x02, 0x90, 0x02, 0xf6, 0x90, 0x00, 0x19, 0x90, | |
780 | 0x90, 0x19, 0x2e, 0x28, 0x90, 0x00, 0x00, 0x68, 0x90, 0x00, 0x02, 0x64, | |
781 | 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x0a, 0x28, 0x00, 0x00, 0xc6, 0x68, | |
782 | 0x01, 0x80, 0x02, 0x64, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x0a, 0x28, | |
783 | 0x01, 0x8f, 0xbd, 0x88, 0x00, 0x00, 0xc6, 0x68, 0x01, 0x80, 0x02, 0x74, | |
784 | 0x00, 0x00, 0x0a, 0x28, 0x00, 0x00, 0xc6, 0x68, 0x00, 0x00, 0x02, 0x64, | |
785 | 0x02, 0x00, 0x0a, 0x2a, 0x02, 0x00, 0xc6, 0x6a, 0x00, 0x00, 0x20, 0x00, | |
786 | 0x00, 0x03, 0x9c, 0x88, 0x00, 0x10, 0x02, 0xf4, 0x02, 0x00, 0x0a, 0x2a, | |
787 | 0x02, 0x00, 0xc6, 0x6a, 0x00, 0x10, 0x02, 0xe4, 0x02, 0x00, 0x0a, 0x2a, | |
788 | 0x02, 0x00, 0xc6, 0x6a, 0x00, 0x00, 0x20, 0x00, 0x00, 0x03, 0x1b, 0xc8, | |
789 | 0x00, 0x02, 0x17, 0x88, 0x00, 0x10, 0x02, 0xf4, 0x00, 0x19, 0x2e, 0x28, | |
790 | 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x64, 0x02, 0x00, 0x0a, 0x2a, | |
791 | 0x02, 0x00, 0xc6, 0x6a, 0x02, 0x10, 0x02, 0xe6, 0x00, 0x00, 0x00, 0x00, | |
792 | 0x01, 0x82, 0x22, 0x64, 0x00, 0x00, 0x0a, 0x28, 0x00, 0x00, 0xc6, 0x68, | |
793 | 0x00, 0x00, 0x00, 0x00, 0x02, 0x10, 0x07, 0xca, 0x02, 0x0c, 0x9f, 0xfa, | |
794 | 0x02, 0x00, 0x02, 0x76, 0x00, 0x19, 0x2e, 0x28, 0x00, 0x00, 0x00, 0x68, | |
795 | 0x00, 0x00, 0x02, 0x64, 0x00, 0x00, 0x60, 0x00, 0x03, 0x00, 0x80, 0x58, | |
796 | 0x03, 0x00, 0x10, 0x2a, 0x02, 0x04, 0x03, 0xe3, 0x00, 0x00, 0x00, 0x00, | |
797 | 0x02, 0x18, 0x56, 0x15, 0x02, 0x93, 0xcf, 0x5a, 0x00, 0x94, 0x03, 0xa2, | |
798 | 0x02, 0x18, 0x56, 0x14, 0x00, 0x00, 0x20, 0x00, 0x02, 0x98, 0x56, 0x15, | |
799 | 0x00, 0x90, 0x2a, 0x58, 0x81, 0x98, 0xa0, 0x14, 0x04, 0x04, 0x00, 0x59, | |
800 | 0x00, 0x00, 0x04, 0x12, 0x00, 0x90, 0x2a, 0x59, 0x02, 0x98, 0x56, 0x14, | |
801 | 0x00, 0x1b, 0x40, 0x5b, 0x03, 0x80, 0x00, 0xf9, 0x02, 0x00, 0x00, 0xa9, | |
802 | 0x81, 0x98, 0xa0, 0x14, 0x01, 0x20, 0x00, 0x59, 0x04, 0x04, 0x01, 0xa1, | |
803 | 0x20, 0x00, 0x00, 0x12, 0xa0, 0x10, 0x6c, 0xe1, 0x00, 0x94, 0x2a, 0x59, | |
804 | 0x02, 0x98, 0x56, 0x15, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, | |
805 | 0xa3, 0x9c, 0x0f, 0xf9, 0x20, 0x03, 0xe0, 0x5b, 0x81, 0x98, 0xa0, 0x14, | |
806 | 0x04, 0x04, 0x00, 0x59, 0x01, 0x20, 0x01, 0xa0, 0x00, 0x94, 0x2a, 0x59, | |
807 | 0xa0, 0x10, 0x6c, 0xe1, 0x00, 0x00, 0x00, 0x00, 0xa3, 0x9c, 0x0f, 0xf9, | |
808 | 0x81, 0x98, 0x60, 0x14, 0x04, 0x04, 0x00, 0x59, 0x01, 0x20, 0x01, 0xa0, | |
809 | 0x00, 0x94, 0x2a, 0x59, 0xa0, 0x10, 0x6c, 0xe0, 0xa3, 0x9c, 0x0f, 0xf9, | |
810 | 0x81, 0x98, 0x20, 0x14, 0x02, 0x84, 0x00, 0x59, 0x01, 0x20, 0x01, 0xa0, | |
811 | 0xa0, 0x10, 0x6c, 0xe0, 0x01, 0x14, 0x01, 0xa1, 0xa3, 0x9c, 0x0f, 0xf8, | |
812 | 0x00, 0x90, 0x03, 0xa2, 0xa0, 0x10, 0x6c, 0xe0, 0xa3, 0x9c, 0x0f, 0xf8, | |
813 | 0x02, 0x00, 0x0c, 0x2b, 0x00, 0x00, 0x00, 0xa8, 0x02, 0x00, 0xc6, 0x6b, | |
814 | 0x00, 0x00, 0x01, 0xe8, 0x00, 0x10, 0x02, 0xf4, 0x02, 0x00, 0x0e, 0x2a, | |
815 | 0x02, 0x00, 0xc6, 0x6a, 0x03, 0x90, 0x02, 0xf4, 0x00, 0x00, 0x10, 0x28, | |
816 | 0x00, 0x00, 0xc6, 0x68, 0x03, 0x80, 0x02, 0x74, 0x00, 0x0c, 0x03, 0x62, | |
817 | 0x00, 0x00, 0x80, 0x00, 0x00, 0x0c, 0x03, 0x62, 0x00, 0x00, 0x80, 0x00, | |
818 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x28, 0x00, 0x00, 0xc0, 0x69, | |
819 | 0x02, 0x00, 0x10, 0x2a, 0x02, 0x00, 0x02, 0x76, 0x00, 0x0c, 0x03, 0x62, | |
820 | 0x00, 0x00, 0x80, 0x00, 0x01, 0xbc, 0x54, 0xf6, 0x02, 0x04, 0x03, 0xe2, | |
821 | 0x02, 0x13, 0xcf, 0x5a, 0x00, 0x90, 0x03, 0xa2, 0x02, 0x18, 0x50, 0x2a, | |
822 | 0x02, 0x00, 0x00, 0x6a, 0x00, 0x10, 0x03, 0x62, 0x01, 0x97, 0x30, 0x2a, | |
823 | 0x01, 0x80, 0x00, 0x6a, 0x00, 0x00, 0x40, 0x00, 0x00, 0x17, 0xb4, 0x28, | |
824 | 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x13, 0x62, 0x01, 0x97, 0x3c, 0x2a, | |
825 | 0x01, 0x80, 0x00, 0x6a, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x04, 0x29, | |
826 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x69, 0x02, 0x00, 0x10, 0x2a, | |
827 | 0x02, 0x00, 0x02, 0x76, 0x00, 0x14, 0x4e, 0x28, 0x00, 0x00, 0x00, 0x68, | |
828 | 0x00, 0x00, 0x13, 0x62, 0x01, 0x97, 0x52, 0x2a, 0x01, 0x80, 0x00, 0x6a, | |
829 | 0x00, 0x00, 0x40, 0x00, 0x00, 0x11, 0x94, 0x28, 0x00, 0x00, 0x00, 0x68, | |
830 | 0x00, 0x00, 0x13, 0x62, 0x01, 0x97, 0x5e, 0x2a, 0x01, 0x80, 0x00, 0x6a, | |
831 | 0x00, 0x00, 0x40, 0x00, 0x02, 0x11, 0x4c, 0x2a, 0x02, 0x00, 0x00, 0x6a, | |
832 | 0x00, 0x10, 0x03, 0x62, 0x01, 0x97, 0x6c, 0x2a, 0x01, 0x80, 0x00, 0x6a, | |
833 | 0x02, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x20, 0x00, 0x00, 0x11, 0x4c, 0x28, | |
834 | 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x13, 0x62, 0x01, 0x97, 0x7a, 0x2a, | |
835 | 0x01, 0x80, 0x00, 0x6a, 0x02, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x20, 0x00, | |
836 | 0x02, 0x04, 0x03, 0xe2, 0x00, 0x12, 0x00, 0x28, 0x02, 0x00, 0x9f, 0xfa, | |
837 | 0x00, 0x90, 0x03, 0xa2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
838 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, | |
839 | 0x01, 0xbc, 0x52, 0xe6, 0x00, 0x00, 0x60, 0x00, 0x00, 0x0c, 0x03, 0x62, | |
840 | 0x00, 0x00, 0x80, 0x00, 0x07, 0xae, 0xfe, 0x2a, 0x07, 0x80, 0x00, 0x6a, | |
841 | 0x00, 0x10, 0x00, 0x28, 0x02, 0x80, 0x13, 0xa2, 0x0f, 0xff, 0xe3, 0x12, | |
842 | 0x00, 0x00, 0x80, 0x00, 0x00, 0x0c, 0x03, 0x62, 0x00, 0x00, 0x80, 0x00, | |
843 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
844 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
845 | 0x00, 0x0c, 0x03, 0x62, 0x00, 0x00, 0x80, 0x00, 0x00, 0x19, 0x30, 0x28, | |
846 | 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x64, 0x00, 0x00, 0x60, 0x00, | |
847 | 0x00, 0x80, 0x02, 0x64, 0x00, 0x00, 0x60, 0x00, 0x90, 0x00, 0x20, 0x90, | |
848 | 0x01, 0x04, 0x2a, 0x58, 0x00, 0x00, 0x60, 0x00, 0xa0, 0x00, 0x0a, 0x10, | |
849 | 0x00, 0x00, 0x80, 0x00, 0x02, 0x00, 0x00, 0xfa, 0x02, 0x00, 0xc0, 0x6a, | |
850 | 0x02, 0x90, 0x02, 0xe6, 0x03, 0x00, 0x08, 0x2a, 0x00, 0x00, 0x40, 0x00, | |
851 | 0x02, 0x94, 0xcd, 0xfa, 0x02, 0x90, 0x02, 0xf6, 0x00, 0x00, 0x00, 0xf8, | |
852 | 0x00, 0x00, 0xc0, 0x68, 0x01, 0x80, 0x02, 0x64, 0x00, 0x00, 0x60, 0x00, | |
853 | 0x01, 0x8d, 0x0d, 0xd8, 0x01, 0x80, 0x02, 0x74, 0x0f, 0xff, 0xfa, 0x90, | |
854 | 0x00, 0x00, 0x80, 0x00, 0x02, 0x60, 0x80, 0x2a, 0x02, 0x00, 0xdb, 0xeb, | |
855 | 0x01, 0x80, 0x00, 0xf8, 0x01, 0x90, 0x02, 0xf4, 0x02, 0x60, 0x80, 0x2a, | |
856 | 0x02, 0x00, 0xdb, 0xeb, 0x02, 0x00, 0x04, 0x28, 0x02, 0x10, 0x02, 0xf4, | |
857 | 0x02, 0x00, 0x22, 0x66, 0x02, 0x60, 0x88, 0x28, 0x02, 0x00, 0xdb, 0xe8, | |
858 | 0x00, 0x00, 0x20, 0x00, 0x02, 0x10, 0x02, 0x76, 0x02, 0x80, 0x42, 0x66, | |
859 | 0x02, 0x60, 0x8a, 0x2a, 0x02, 0x00, 0xdb, 0xea, 0x00, 0x00, 0x20, 0x00, | |
860 | 0x02, 0x90, 0x02, 0xf6, 0x02, 0x00, 0xc2, 0x66, 0x02, 0x60, 0x92, 0x28, | |
861 | 0x02, 0x00, 0xdb, 0xe8, 0x00, 0x00, 0x20, 0x00, 0x02, 0x10, 0x02, 0x76, | |
862 | 0x02, 0x80, 0x62, 0x66, 0x02, 0x60, 0x8c, 0x2a, 0x02, 0x00, 0xdb, 0xea, | |
863 | 0x00, 0x00, 0x20, 0x00, 0x02, 0x90, 0x02, 0xf6, 0x02, 0x00, 0x82, 0x66, | |
864 | 0x02, 0x60, 0x8e, 0x28, 0x02, 0x00, 0xdb, 0xe8, 0x00, 0x00, 0x20, 0x00, | |
865 | 0x02, 0x10, 0x02, 0x76, 0x00, 0x00, 0xa2, 0x64, 0x02, 0x60, 0x90, 0x2a, | |
866 | 0x02, 0x00, 0xdb, 0xea, 0x00, 0x00, 0x20, 0x00, 0x00, 0x10, 0x02, 0xf4, | |
867 | 0x02, 0x60, 0x80, 0x2a, 0x02, 0x00, 0xdb, 0xea, 0x01, 0x90, 0x02, 0xf4, | |
868 | 0x02, 0x60, 0x80, 0x2a, 0x02, 0x00, 0xdb, 0xeb, 0x00, 0x00, 0x00, 0xa8, | |
869 | 0x00, 0x10, 0x02, 0xf4, 0x00, 0x0c, 0x03, 0x62, 0x00, 0x00, 0x80, 0x00, | |
870 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
871 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x19, 0x2a, 0x2a, | |
872 | 0x02, 0x84, 0x20, 0xfb, 0x02, 0x00, 0x00, 0x6a, 0x02, 0x90, 0x02, 0xf6, | |
873 | 0x02, 0x98, 0xe0, 0x2a, 0x02, 0x19, 0x2c, 0x2a, 0x02, 0x00, 0x00, 0x6b, | |
874 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4a, 0x29, 0x02, 0x80, 0x00, 0x6a, | |
875 | 0x03, 0x94, 0x10, 0x59, 0x00, 0x10, 0x02, 0xf4, 0x00, 0x00, 0x12, 0xaa, | |
876 | 0x00, 0x80, 0x00, 0xa8, 0x04, 0x08, 0x00, 0x28, 0x04, 0x00, 0x00, 0x68, | |
877 | 0x20, 0x03, 0xe0, 0x5b, 0x90, 0x14, 0x02, 0x64, 0x20, 0x00, 0x00, 0x12, | |
878 | 0x93, 0x1c, 0x36, 0x74, 0x00, 0x00, 0x00, 0x00, 0x03, 0x20, 0x02, 0x65, | |
879 | 0x02, 0x19, 0x2a, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x79, | |
880 | 0x01, 0xa0, 0x36, 0x65, 0x02, 0x00, 0x00, 0x68, 0x80, 0x87, 0xe0, 0x59, | |
881 | 0x90, 0x14, 0x02, 0x75, 0x02, 0x90, 0x01, 0xa0, 0x00, 0x14, 0x02, 0x64, | |
882 | 0x00, 0x00, 0x40, 0x00, 0x03, 0x1c, 0x36, 0x74, 0x00, 0x00, 0x60, 0x78, | |
883 | 0x00, 0x14, 0x02, 0x74, 0x00, 0x19, 0x2a, 0x28, 0x00, 0x00, 0x00, 0x68, | |
884 | 0x00, 0x18, 0xe0, 0x29, 0x00, 0x00, 0x02, 0x66, 0x00, 0x00, 0x00, 0x68, | |
885 | 0x00, 0x00, 0x40, 0x00, 0x31, 0x80, 0x80, 0x59, 0x32, 0x19, 0x2e, 0x2a, | |
886 | 0x32, 0x00, 0x00, 0x6a, 0x31, 0x90, 0x02, 0xf4, 0x30, 0x02, 0x9d, 0x41, | |
887 | 0x32, 0x19, 0x30, 0x2a, 0x32, 0x00, 0x00, 0x6a, 0x30, 0x10, 0x02, 0xf4, | |
888 | 0x30, 0x00, 0x09, 0x12, 0x00, 0x00, 0x80, 0x00, 0x02, 0x80, 0x00, 0xfa, | |
889 | 0x02, 0x80, 0xc0, 0x6a, 0x03, 0x14, 0x02, 0xe6, 0x02, 0x00, 0x08, 0x2a, | |
890 | 0x00, 0x00, 0x40, 0x00, 0x02, 0x18, 0x8d, 0xfa, 0x02, 0x14, 0x02, 0xf6, | |
891 | 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0xc0, 0x68, 0x01, 0x80, 0x02, 0x64, | |
892 | 0x00, 0x00, 0x60, 0x00, 0x01, 0x8d, 0x0d, 0xd8, 0x01, 0x80, 0x02, 0x74, | |
893 | 0x0f, 0xff, 0xf9, 0x90, 0x00, 0x00, 0x80, 0x00, 0x00, 0x0c, 0x03, 0x62, | |
894 | 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
895 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 | |
896 | }; | |
897 | ||
898 | static int load_bootstrap(void) | |
899 | { | |
900 | const u8 *s = bootstrap_rbin; | |
901 | u32 l = sizeof(bootstrap_rbin); | |
902 | const u8 *data, *hdr, *h; | |
903 | u32 chksum, chksum2; | |
904 | int i, j, rangenr; | |
905 | u32 start, length; | |
906 | ||
907 | if (l < 12) { | |
908 | printf("bootstrap image corrupted. (too short header)\n"); | |
909 | return -1; | |
910 | } | |
911 | ||
912 | chksum = ((u32)s[4] << 24) | ((u32)s[5] << 16) | ((u32)s[ 6] << 8) | (u32)s[ 7]; | |
913 | rangenr = ((u32)s[8] << 24) | ((u32)s[9] << 16) | ((u32)s[10] << 8) | (u32)s[11]; | |
914 | s += 12; l -= 12; | |
915 | ||
916 | hdr = s; | |
917 | s += 8 * rangenr; l -= 8 * rangenr; | |
918 | data = s; | |
919 | ||
920 | /* validate bootstrap image */ | |
921 | h = hdr; s = data; chksum2 = 0; | |
922 | for (i = 0; i < rangenr; i++) { | |
923 | start = ((u32)h[0] << 24) | ((u32)h[1] << 16) | ((u32)h[2] << 8) | (u32)h[3]; | |
924 | length = ((u32)h[4] << 24) | ((u32)h[5] << 16) | ((u32)h[6] << 8) | (u32)h[7]; | |
925 | h += 8; | |
926 | ||
927 | /* too short */ | |
928 | if (l < length) { | |
929 | printf("bootstrap image corrupted. (too short data)\n"); | |
930 | return -1; | |
931 | } | |
932 | l -= length; | |
933 | ||
934 | j = (int)length / 4; | |
935 | while (j-- > 0) { | |
936 | chksum2 += ((u32)s[0] << 24) | ((u32)s[1] << 16) | ((u32)s[2] << 8) | (u32)s[3]; | |
937 | s += 4; | |
938 | } | |
939 | } | |
940 | ||
941 | /* checksum must match */ | |
942 | if (chksum != chksum2) { | |
943 | printf("bootstrap image corrupted. (checksum error)\n"); | |
944 | return -1; | |
945 | } | |
946 | ||
947 | /* nothing must be left */ | |
948 | if (l != 0) { | |
949 | printf("bootstrap image corrupted. (garbage at the end)\n"); | |
950 | return -1; | |
951 | } | |
952 | ||
953 | /* write the image */ | |
954 | h = hdr; | |
955 | s = data; | |
956 | for (i = 0; i < rangenr; i++) { | |
957 | start = ((u32)h[0] << 24) | ((u32)h[1] << 16) | ((u32)h[2] << 8) | (u32)h[3]; | |
958 | length = ((u32)h[4] << 24) | ((u32)h[5] << 16) | ((u32)h[6] << 8) | (u32)h[7]; | |
959 | h += 8; | |
960 | c62_write(start, (u32 *)s, length / 4); | |
961 | s += length; | |
962 | } | |
963 | ||
964 | /* and now validate checksum */ | |
965 | h = hdr; | |
966 | s = data; | |
967 | chksum2 = 0; | |
968 | for (i = 0; i < rangenr; i++) { | |
969 | start = ((u32)h[0] << 24) | ((u32)h[1] << 16) | ((u32)h[2] << 8) | (u32)h[3]; | |
970 | length = ((u32)h[4] << 24) | ((u32)h[5] << 16) | ((u32)h[6] << 8) | (u32)h[7]; | |
971 | h += 8; | |
972 | chksum2 += c62_checksum(start, length / 4); | |
973 | s += length; | |
974 | } | |
975 | ||
976 | /* checksum must match */ | |
977 | if (chksum != chksum2) { | |
978 | printf("bootstrap in DSP memory is corrupted\n"); | |
979 | return -1; | |
980 | } | |
981 | ||
982 | return 0; | |
983 | } | |
984 | ||
985 | struct host_init { | |
986 | u32 master_mode; | |
987 | struct { | |
988 | u8 port_id; | |
989 | u8 slot_id; | |
990 | } ch_serial_map[32]; | |
991 | u32 clk_divider[2]; | |
992 | /* pll */ | |
993 | u32 initmode; | |
994 | u32 pllm; | |
995 | u32 div[4]; | |
996 | u32 oscdiv1; | |
997 | u32 unused[10]; | |
998 | }; | |
999 | ||
1000 | const struct host_init hi_default = { | |
1001 | .master_mode = | |
1002 | #if !defined(CONFIG_NETTA_ISDN) | |
1003 | -1, | |
1004 | #else | |
1005 | 0, | |
1006 | #endif | |
1007 | ||
1008 | .ch_serial_map = { | |
1009 | [ 0] = { .port_id = 2, .slot_id = 16 }, | |
1010 | [ 1] = { .port_id = 2, .slot_id = 17 }, | |
1011 | [ 2] = { .port_id = 2, .slot_id = 18 }, | |
1012 | [ 3] = { .port_id = 2, .slot_id = 19 }, | |
1013 | [ 4] = { .port_id = 2, .slot_id = 20 }, | |
1014 | [ 5] = { .port_id = 2, .slot_id = 21 }, | |
1015 | [ 6] = { .port_id = 2, .slot_id = 22 }, | |
1016 | [ 7] = { .port_id = 2, .slot_id = 23 }, | |
1017 | [ 8] = { .port_id = 2, .slot_id = 24 }, | |
1018 | [ 9] = { .port_id = 2, .slot_id = 25 }, | |
1019 | [10] = { .port_id = 2, .slot_id = 26 }, | |
1020 | [11] = { .port_id = 2, .slot_id = 27 }, | |
1021 | [12] = { .port_id = 2, .slot_id = 28 }, | |
1022 | [13] = { .port_id = 2, .slot_id = 29 }, | |
1023 | [14] = { .port_id = 2, .slot_id = 30 }, | |
1024 | [15] = { .port_id = 2, .slot_id = 31 }, | |
1025 | }, | |
1026 | ||
1027 | /* | |
1028 | dsp_clk(xin, pllm) = xin * pllm | |
1029 | serial_clk(xin, pllm, div) = (dsp_clk(xin, pllm) / 2) / (div + 1) | |
1030 | */ | |
1031 | ||
1032 | .clk_divider = { | |
1033 | [0] = 47, /* must be 2048Hz */ | |
53677ef1 | 1034 | [1] = 47, |
04a85b3b WD |
1035 | }, |
1036 | ||
1037 | .initmode = 1, | |
1038 | .pllm = | |
1039 | #if !defined(CONFIG_NETTA_ISDN) | |
1040 | 8, /* for =~ 25MHz 8 */ | |
1041 | #else | |
1042 | 4, | |
1043 | #endif | |
1044 | .div = { | |
1045 | [0] = 0x8000, | |
1046 | [1] = 0x8000, /* for =~ 25MHz 0x8000 */ | |
1047 | [2] = 0x8001, /* for =~ 25MHz 0x8001 */ | |
1048 | [3] = 0x8001, /* for =~ 25MHz 0x8001 */ | |
1049 | }, | |
1050 | ||
1051 | .oscdiv1 = 0, | |
1052 | }; | |
1053 | ||
1054 | static void hi_write(const struct host_init *hi) | |
1055 | { | |
1056 | u32 hi_buf[1 + sizeof(*hi) / sizeof(u32)]; | |
1057 | u32 *s; | |
1058 | u32 chksum; | |
1059 | int i; | |
1060 | ||
1061 | memset(hi_buf, 0, sizeof(hi_buf)); | |
1062 | ||
1063 | s = hi_buf; | |
1064 | s++; | |
1065 | *s++ = hi->master_mode; | |
1066 | for (i = 0; i < (sizeof(hi->ch_serial_map) / sizeof(hi->ch_serial_map[0])) / 2; i++) | |
1067 | *s++ = ((u32)hi->ch_serial_map[i * 2 + 1].slot_id << 24) | ((u32)hi->ch_serial_map[i * 2 + 1].port_id << 16) | | |
1068 | ((u32)hi->ch_serial_map[i * 2 + 0].slot_id << 8) | (u32)hi->ch_serial_map[i * 2 + 0].port_id; | |
1069 | ||
1070 | for (i = 0; i < sizeof(hi->clk_divider)/sizeof(hi->clk_divider[0]); i++) | |
1071 | *s++ = hi->clk_divider[i]; | |
1072 | ||
1073 | *s++ = hi->initmode; | |
1074 | *s++ = hi->pllm; | |
1075 | for (i = 0; i < sizeof(hi->div)/sizeof(hi->div[0]); i++) | |
1076 | *s++ = hi->div[i]; | |
1077 | *s++ = hi->oscdiv1; | |
1078 | ||
1079 | chksum = 0; | |
1080 | for (i = 1; i < sizeof(hi_buf)/sizeof(hi_buf[0]); i++) | |
1081 | chksum += hi_buf[i]; | |
1082 | hi_buf[0] = -chksum; | |
1083 | ||
1084 | c62_write(0x1000, hi_buf, sizeof(hi_buf) / sizeof(hi_buf[0])); | |
1085 | } | |
1086 | ||
1087 | static void run_bootstrap(void) | |
1088 | { | |
1089 | dsp_go_slow(); | |
1090 | ||
1091 | hi_write(&hi_default); | |
1092 | ||
1093 | /* signal interrupt */ | |
1094 | dsp_write_hpic(0x0002); | |
1095 | dsp_delay(); | |
1096 | ||
1097 | dsp_go_fast(); | |
1098 | } | |
1099 | ||
79fa88f3 WD |
1100 | #endif |
1101 | ||
04a85b3b WD |
1102 | /***********************************************************************************************************/ |
1103 | ||
1104 | int board_post_dsp(int flags) | |
1105 | { | |
1106 | u32 ramS, ramE; | |
1107 | u32 data, data2; | |
79fa88f3 WD |
1108 | int i, j, k; |
1109 | #if !defined(CONFIG_NETTA_6412) | |
1110 | int r; | |
1111 | #endif | |
04a85b3b WD |
1112 | dsp_reset(); |
1113 | dsp_init_hpic(); | |
79fa88f3 | 1114 | #if !defined(CONFIG_NETTA_6412) |
04a85b3b | 1115 | dsp_go_slow(); |
79fa88f3 | 1116 | #endif |
04a85b3b WD |
1117 | data = 0x11223344; |
1118 | dsp_write_hpic_word(DSP_HPIA, data); | |
1119 | data2 = dsp_read_hpic_word(DSP_HPIA); | |
1120 | if (data2 != 0x11223344) { | |
1121 | printf("HPIA: ** ERROR; wrote 0x%08X read 0x%08X **\n", data, data2); | |
1122 | goto err; | |
1123 | } | |
1124 | ||
1125 | data = 0xFFEEDDCC; | |
1126 | dsp_write_hpic_word(DSP_HPIA, data); | |
1127 | data2 = dsp_read_hpic_word(DSP_HPIA); | |
1128 | if (data2 != 0xFFEEDDCC) { | |
1129 | printf("HPIA: ** ERROR; wrote 0x%08X read 0x%08X **\n", data, data2); | |
1130 | goto err; | |
1131 | } | |
79fa88f3 WD |
1132 | #if defined(CONFIG_NETTA_6412) |
1133 | dsp_dram_initialize(); | |
1134 | #else | |
04a85b3b WD |
1135 | r = load_bootstrap(); |
1136 | if (r < 0) { | |
1137 | printf("BOOTSTRAP: ** ERROR ** failed to load\n"); | |
1138 | goto err; | |
1139 | } | |
1140 | ||
1141 | run_bootstrap(); | |
1142 | ||
1143 | dsp_go_fast(); | |
79fa88f3 | 1144 | #endif |
04a85b3b WD |
1145 | printf(" "); |
1146 | ||
1147 | /* test RAMs */ | |
1148 | for (k = 0; k < sizeof(ranges)/sizeof(ranges[0]); k++) { | |
1149 | ||
1150 | ramS = ranges[k].start; | |
1151 | ramE = ranges[k].start + ranges[k].size; | |
1152 | ||
1153 | for (j = 0; j < 3; j++) { | |
1154 | ||
1155 | printf("\b\b\b\bR%d.%d", k, j); | |
1156 | ||
1157 | for (i = ramS; i < ramE; i += 4) { | |
1158 | ||
1159 | data = 0; | |
1160 | switch (j) { | |
1161 | case 0: data = 0xAA55AA55; break; | |
1162 | case 1: data = 0x55AA55AA; break; | |
1163 | case 2: data = (u32)i; break; | |
1164 | } | |
1165 | ||
1166 | c62_write_word(i, data); | |
1167 | data2 = c62_read_word(i); | |
1168 | if (data != data2) { | |
1169 | printf(" ** ERROR at 0x%08X; wrote 0x%08X read 0x%08X **\n", i, data, data2); | |
1170 | goto err; | |
1171 | } | |
1172 | } | |
1173 | } | |
1174 | } | |
1175 | ||
1176 | printf("\b\b\b\b \b\b\b\bOK\n"); | |
79fa88f3 | 1177 | #if !defined(CONFIG_NETTA_6412) |
04a85b3b WD |
1178 | /* XXX assume that this works */ |
1179 | load_bootstrap(); | |
1180 | run_bootstrap(); | |
1181 | dsp_go_fast(); | |
79fa88f3 | 1182 | #endif |
04a85b3b WD |
1183 | return 0; |
1184 | ||
1185 | err: | |
1186 | return -1; | |
1187 | } | |
1188 | ||
1189 | int board_dsp_reset(void) | |
1190 | { | |
79fa88f3 | 1191 | #if !defined(CONFIG_NETTA_6412) |
04a85b3b | 1192 | int r; |
79fa88f3 | 1193 | #endif |
04a85b3b WD |
1194 | dsp_reset(); |
1195 | dsp_init_hpic(); | |
79fa88f3 WD |
1196 | #if defined(CONFIG_NETTA_6412) |
1197 | dsp_dram_initialize(); | |
1198 | #else | |
04a85b3b WD |
1199 | dsp_go_slow(); |
1200 | r = load_bootstrap(); | |
1201 | if (r < 0) | |
1202 | return r; | |
1203 | ||
1204 | run_bootstrap(); | |
1205 | dsp_go_fast(); | |
79fa88f3 | 1206 | #endif |
04a85b3b WD |
1207 | return 0; |
1208 | } |