diff options
Diffstat (limited to 'arch/m68knommu')
85 files changed, 16484 insertions, 0 deletions
diff --git a/arch/m68knommu/Kconfig b/arch/m68knommu/Kconfig new file mode 100644 index 000000000000..fc4615b6d3a9 --- /dev/null +++ b/arch/m68knommu/Kconfig | |||
@@ -0,0 +1,581 @@ | |||
1 | # | ||
2 | # For a description of the syntax of this configuration file, | ||
3 | # see Documentation/kbuild/kconfig-language.txt. | ||
4 | # | ||
5 | |||
6 | mainmenu "uClinux/68k (w/o MMU) Kernel Configuration" | ||
7 | |||
8 | config M68KNOMMU | ||
9 | bool | ||
10 | default y | ||
11 | |||
12 | config MMU | ||
13 | bool | ||
14 | default n | ||
15 | |||
16 | config FPU | ||
17 | bool | ||
18 | default n | ||
19 | |||
20 | config UID16 | ||
21 | bool | ||
22 | default y | ||
23 | |||
24 | config RWSEM_GENERIC_SPINLOCK | ||
25 | bool | ||
26 | default y | ||
27 | |||
28 | config RWSEM_XCHGADD_ALGORITHM | ||
29 | bool | ||
30 | default n | ||
31 | |||
32 | config GENERIC_CALIBRATE_DELAY | ||
33 | bool | ||
34 | default y | ||
35 | |||
36 | source "init/Kconfig" | ||
37 | |||
38 | menu "Processor type and features" | ||
39 | |||
40 | choice | ||
41 | prompt "CPU" | ||
42 | default M68EZ328 | ||
43 | |||
44 | config M68328 | ||
45 | bool "MC68328" | ||
46 | help | ||
47 | Motorola 68328 processor support. | ||
48 | |||
49 | config M68EZ328 | ||
50 | bool "MC68EZ328" | ||
51 | help | ||
52 | Motorola 68EX328 processor support. | ||
53 | |||
54 | config M68VZ328 | ||
55 | bool "MC68VZ328" | ||
56 | help | ||
57 | Motorola 68VZ328 processor support. | ||
58 | |||
59 | config M68360 | ||
60 | bool "MC68360" | ||
61 | help | ||
62 | Motorola 68360 processor support. | ||
63 | |||
64 | config M5206 | ||
65 | bool "MCF5206" | ||
66 | help | ||
67 | Motorola ColdFire 5206 processor support. | ||
68 | |||
69 | config M5206e | ||
70 | bool "MCF5206e" | ||
71 | help | ||
72 | Motorola ColdFire 5206e processor support. | ||
73 | |||
74 | config M5249 | ||
75 | bool "MCF5249" | ||
76 | help | ||
77 | Motorola ColdFire 5249 processor support. | ||
78 | |||
79 | config M527x | ||
80 | bool "MCF527x" | ||
81 | help | ||
82 | Freescale (Motorola) ColdFire 5270/5271/5274/5275 processor support. | ||
83 | |||
84 | config M5272 | ||
85 | bool "MCF5272" | ||
86 | help | ||
87 | Motorola ColdFire 5272 processor support. | ||
88 | |||
89 | config M528x | ||
90 | bool "MCF528x" | ||
91 | help | ||
92 | Motorola ColdFire 5280/5282 processor support. | ||
93 | |||
94 | config M5307 | ||
95 | bool "MCF5307" | ||
96 | help | ||
97 | Motorola ColdFire 5307 processor support. | ||
98 | |||
99 | config M5407 | ||
100 | bool "MCF5407" | ||
101 | help | ||
102 | Motorola ColdFire 5407 processor support. | ||
103 | |||
104 | endchoice | ||
105 | |||
106 | config COLDFIRE | ||
107 | bool | ||
108 | depends on (M5206 || M5206e || M5249 || M527x || M5272 || M528x || M5307 || M5407) | ||
109 | default y | ||
110 | |||
111 | choice | ||
112 | prompt "CPU CLOCK Frequency" | ||
113 | default AUTO | ||
114 | |||
115 | config CLOCK_AUTO | ||
116 | bool "AUTO" | ||
117 | ---help--- | ||
118 | Define the CPU clock frequency in use. On many boards you don't | ||
119 | really need to know, so you can select the AUTO option. On some | ||
120 | boards you need to know the real clock frequency to determine other | ||
121 | system timing (for example baud rate dividors, etc). Some processors | ||
122 | have an internal PLL and you can select a frequency to run at. | ||
123 | You need to know a little about the internals of your processor to | ||
124 | set this. If in doubt choose the AUTO option. | ||
125 | |||
126 | config CLOCK_11MHz | ||
127 | bool "11MHz" | ||
128 | help | ||
129 | Select a 11MHz CPU clock frequency. | ||
130 | |||
131 | config CLOCK_16MHz | ||
132 | bool "16MHz" | ||
133 | help | ||
134 | Select a 16MHz CPU clock frequency. | ||
135 | |||
136 | config CLOCK_20MHz | ||
137 | bool "20MHz" | ||
138 | help | ||
139 | Select a 20MHz CPU clock frequency. | ||
140 | |||
141 | config CLOCK_24MHz | ||
142 | bool "24MHz" | ||
143 | help | ||
144 | Select a 24MHz CPU clock frequency. | ||
145 | |||
146 | config CLOCK_25MHz | ||
147 | bool "25MHz" | ||
148 | help | ||
149 | Select a 25MHz CPU clock frequency. | ||
150 | |||
151 | config CLOCK_33MHz | ||
152 | bool "33MHz" | ||
153 | help | ||
154 | Select a 33MHz CPU clock frequency. | ||
155 | |||
156 | config CLOCK_40MHz | ||
157 | bool "40MHz" | ||
158 | help | ||
159 | Select a 40MHz CPU clock frequency. | ||
160 | |||
161 | config CLOCK_45MHz | ||
162 | bool "45MHz" | ||
163 | help | ||
164 | Select a 45MHz CPU clock frequency. | ||
165 | |||
166 | config CLOCK_48MHz | ||
167 | bool "48MHz" | ||
168 | help | ||
169 | Select a 48MHz CPU clock frequency. | ||
170 | |||
171 | config CLOCK_50MHz | ||
172 | bool "50MHz" | ||
173 | help | ||
174 | Select a 50MHz CPU clock frequency. | ||
175 | |||
176 | config CLOCK_54MHz | ||
177 | bool "54MHz" | ||
178 | help | ||
179 | Select a 54MHz CPU clock frequency. | ||
180 | |||
181 | config CLOCK_60MHz | ||
182 | bool "60MHz" | ||
183 | help | ||
184 | Select a 60MHz CPU clock frequency. | ||
185 | |||
186 | config CLOCK_64MHz | ||
187 | bool "64MHz" | ||
188 | help | ||
189 | Select a 64MHz CPU clock frequency. | ||
190 | |||
191 | config CLOCK_66MHz | ||
192 | bool "66MHz" | ||
193 | help | ||
194 | Select a 66MHz CPU clock frequency. | ||
195 | |||
196 | config CLOCK_70MHz | ||
197 | bool "70MHz" | ||
198 | help | ||
199 | Select a 70MHz CPU clock frequency. | ||
200 | |||
201 | config CLOCK_100MHz | ||
202 | bool "100MHz" | ||
203 | help | ||
204 | Select a 100MHz CPU clock frequency. | ||
205 | |||
206 | config CLOCK_140MHz | ||
207 | bool "140MHz" | ||
208 | help | ||
209 | Select a 140MHz CPU clock frequency. | ||
210 | |||
211 | config CLOCK_150MHz | ||
212 | bool "150MHz" | ||
213 | help | ||
214 | Select a 150MHz CPU clock frequency. | ||
215 | |||
216 | config CLOCK_166MHz | ||
217 | bool "166MHz" | ||
218 | help | ||
219 | Select a 166MHz CPU clock frequency. | ||
220 | |||
221 | endchoice | ||
222 | |||
223 | config OLDMASK | ||
224 | bool "Old mask 5307 (1H55J) silicon" | ||
225 | depends on M5307 | ||
226 | help | ||
227 | Build support for the older revision ColdFire 5307 silicon. | ||
228 | Specifically this is the 1H55J mask revision. | ||
229 | |||
230 | comment "Platform" | ||
231 | |||
232 | config PILOT3 | ||
233 | bool "Pilot 1000/5000, PalmPilot Personal/Pro, or PalmIII support" | ||
234 | depends on M68328 | ||
235 | help | ||
236 | Support for the Palm Pilot 1000/5000, Personal/Pro and PalmIII. | ||
237 | |||
238 | config XCOPILOT_BUGS | ||
239 | bool " (X)Copilot support" | ||
240 | depends on PILOT3 | ||
241 | help | ||
242 | Support the bugs of Xcopilot. | ||
243 | |||
244 | config UCSIMM | ||
245 | bool "uCsimm module support" | ||
246 | depends on M68EZ328 | ||
247 | help | ||
248 | Support for the Arcturus Networks uCsimm module. | ||
249 | |||
250 | config UCDIMM | ||
251 | bool "uDsimm module support" | ||
252 | depends on M68VZ328 | ||
253 | help | ||
254 | Support for the Arcturus Networks uDsimm module. | ||
255 | |||
256 | config DRAGEN2 | ||
257 | bool "DragenEngine II board support" | ||
258 | depends on M68VZ328 | ||
259 | help | ||
260 | Support for the DragenEngine II board. | ||
261 | |||
262 | config DIRECT_IO_ACCESS | ||
263 | bool " Allow user to access IO directly" | ||
264 | depends on (UCSIMM || UCDIMM || DRAGEN2) | ||
265 | help | ||
266 | Disable the CPU internal registers protection in user mode, | ||
267 | to allow a user application to read/write them. | ||
268 | |||
269 | config INIT_LCD | ||
270 | bool " Initialize LCD" | ||
271 | depends on (UCSIMM || UCDIMM || DRAGEN2) | ||
272 | help | ||
273 | Initialize the LCD controller of the 68x328 processor. | ||
274 | |||
275 | config MEMORY_RESERVE | ||
276 | int " Memory reservation (MiB)" | ||
277 | depends on (UCSIMM || UCDIMM) | ||
278 | help | ||
279 | Reserve certain memory regions on 68x328 based boards. | ||
280 | |||
281 | config UCQUICC | ||
282 | bool "Lineo uCquicc board support" | ||
283 | depends on M68360 | ||
284 | help | ||
285 | Support for the Lineo uCquicc board. | ||
286 | |||
287 | config ARN5206 | ||
288 | bool "Arnewsh 5206 board support" | ||
289 | depends on M5206 | ||
290 | help | ||
291 | Support for the Arnewsh 5206 board. | ||
292 | |||
293 | config M5206eC3 | ||
294 | bool "Motorola M5206eC3 board support" | ||
295 | depends on M5206e | ||
296 | help | ||
297 | Support for the Motorola M5206eC3 board. | ||
298 | |||
299 | config ELITE | ||
300 | bool "Motorola M5206eLITE board support" | ||
301 | depends on M5206e | ||
302 | help | ||
303 | Support for the Motorola M5206eLITE board. | ||
304 | |||
305 | config M5249C3 | ||
306 | bool "Motorola M5249C3 board support" | ||
307 | depends on M5249 | ||
308 | help | ||
309 | Support for the Motorola M5249C3 board. | ||
310 | |||
311 | config M5271EVB | ||
312 | bool "Freescale (Motorola) M5271EVB board support" | ||
313 | depends on M527x | ||
314 | help | ||
315 | Support for the Freescale (Motorola) M5271EVB board. | ||
316 | |||
317 | config M5275EVB | ||
318 | bool "Freescale (Motorola) M5275EVB board support" | ||
319 | depends on M527x | ||
320 | help | ||
321 | Support for the Freescale (Motorola) M5275EVB board. | ||
322 | |||
323 | config M5272C3 | ||
324 | bool "Motorola M5272C3 board support" | ||
325 | depends on M5272 | ||
326 | help | ||
327 | Support for the Motorola M5272C3 board. | ||
328 | |||
329 | config COBRA5272 | ||
330 | bool "senTec COBRA5272 board support" | ||
331 | depends on M5272 | ||
332 | help | ||
333 | Support for the senTec COBRA5272 board. | ||
334 | |||
335 | config M5282EVB | ||
336 | bool "Motorola M5282EVB board support" | ||
337 | depends on M528x | ||
338 | help | ||
339 | Support for the Motorola M5282EVB board. | ||
340 | |||
341 | config COBRA5282 | ||
342 | bool "senTec COBRA5282 board support" | ||
343 | depends on M528x | ||
344 | help | ||
345 | Support for the senTec COBRA5282 board. | ||
346 | |||
347 | config ARN5307 | ||
348 | bool "Arnewsh 5307 board support" | ||
349 | depends on M5307 | ||
350 | help | ||
351 | Support for the Arnewsh 5307 board. | ||
352 | |||
353 | config M5307C3 | ||
354 | bool "Motorola M5307C3 board support" | ||
355 | depends on M5307 | ||
356 | help | ||
357 | Support for the Motorola M5307C3 board. | ||
358 | |||
359 | config eLIA | ||
360 | bool "Moreton Bay eLIA board support" | ||
361 | depends on M5307 | ||
362 | help | ||
363 | Support for the Moreton Bay eLIA board. | ||
364 | |||
365 | config SECUREEDGEMP3 | ||
366 | bool "SnapGear SecureEdge/MP3 platform support" | ||
367 | depends on M5307 | ||
368 | help | ||
369 | Support for the SnapGear SecureEdge/MP3 platform. | ||
370 | |||
371 | config M5407C3 | ||
372 | bool "Motorola M5407C3 board support" | ||
373 | depends on M5407 | ||
374 | help | ||
375 | Support for the Motorola M5407C3 board. | ||
376 | |||
377 | config CLEOPATRA | ||
378 | bool "Feith CLEOPATRA board support" | ||
379 | depends on (M5307 || M5407) | ||
380 | help | ||
381 | Support for the Feith Cleopatra boards. | ||
382 | |||
383 | config CANCam | ||
384 | bool "Feith CANCam board support" | ||
385 | depends on M5272 | ||
386 | help | ||
387 | Support for the Feith CANCam board. | ||
388 | |||
389 | config SCALES | ||
390 | bool "Feith SCALES board support" | ||
391 | depends on M5272 | ||
392 | help | ||
393 | Support for the Feith SCALES board. | ||
394 | |||
395 | config NETtel | ||
396 | bool "SecureEdge/NETtel board support" | ||
397 | depends on (M5206e || M5272 || M5307) | ||
398 | help | ||
399 | Support for the SnapGear NETtel/SecureEdge/SnapGear boards. | ||
400 | |||
401 | config SNAPGEAR | ||
402 | bool "SnapGear router board support" | ||
403 | depends on NETtel | ||
404 | help | ||
405 | Special additional support for SnapGear router boards. | ||
406 | |||
407 | config CPU16B | ||
408 | bool "Sneha Technologies S.L. Sarasvati board support" | ||
409 | depends on M5272 | ||
410 | help | ||
411 | Support for the SNEHA CPU16B board. | ||
412 | |||
413 | config ROMFS_FROM_ROM | ||
414 | bool " ROMFS image not RAM resident" | ||
415 | depends on (NETtel || SNAPGEAR) | ||
416 | help | ||
417 | The ROMfs filesystem will stay resident in the FLASH/ROM, not be | ||
418 | moved into RAM. | ||
419 | |||
420 | config PILOT | ||
421 | bool | ||
422 | default y | ||
423 | depends on (PILOT3 || PILOT5) | ||
424 | |||
425 | config ARNEWSH | ||
426 | bool | ||
427 | default y | ||
428 | depends on (ARN5206 || ARN5307) | ||
429 | |||
430 | config MOTOROLA | ||
431 | bool | ||
432 | default y | ||
433 | depends on (M5206eC3 || M5249C3 || M5271EVB || M5272C3 || M5275EVB || M5282EVB || M5307C3 || M5407C3) | ||
434 | |||
435 | config HW_FEITH | ||
436 | bool | ||
437 | default y | ||
438 | depends on (CLEOPATRA || CANCam || SCALES) | ||
439 | |||
440 | config senTec | ||
441 | bool | ||
442 | default y | ||
443 | depends on (COBRA5272 || COBRA5282) | ||
444 | |||
445 | config SNEHA | ||
446 | bool | ||
447 | default y | ||
448 | depends on CPU16B | ||
449 | |||
450 | config LARGE_ALLOCS | ||
451 | bool "Allow allocating large blocks (> 1MB) of memory" | ||
452 | help | ||
453 | Allow the slab memory allocator to keep chains for very large | ||
454 | memory sizes - upto 32MB. You may need this if your system has | ||
455 | a lot of RAM, and you need to able to allocate very large | ||
456 | contiguous chunks. If unsure, say N. | ||
457 | |||
458 | choice | ||
459 | prompt "RAM size" | ||
460 | default AUTO | ||
461 | |||
462 | config RAMAUTO | ||
463 | bool "AUTO" | ||
464 | ---help--- | ||
465 | Configure the RAM size on your platform. Many platforms can auto | ||
466 | detect this, on those choose the AUTO option. Otherwise set the | ||
467 | RAM size you intend using. | ||
468 | |||
469 | config RAM4MB | ||
470 | bool "4MiB" | ||
471 | help | ||
472 | Set RAM size to be 4MiB. | ||
473 | |||
474 | config RAM8MB | ||
475 | bool "8MiB" | ||
476 | help | ||
477 | Set RAM size to be 8MiB. | ||
478 | |||
479 | config RAM16MB | ||
480 | bool "16MiB" | ||
481 | help | ||
482 | Set RAM size to be 16MiB. | ||
483 | |||
484 | config RAM32MB | ||
485 | bool "32MiB" | ||
486 | help | ||
487 | Set RAM size to be 32MiB. | ||
488 | |||
489 | endchoice | ||
490 | |||
491 | choice | ||
492 | prompt "RAM bus width" | ||
493 | default RAMAUTOBIT | ||
494 | |||
495 | config RAMAUTOBIT | ||
496 | bool "AUTO" | ||
497 | ---help--- | ||
498 | Select the physical RAM data bus size. Not needed on most platforms, | ||
499 | so you can generally choose AUTO. | ||
500 | |||
501 | config RAM8BIT | ||
502 | bool "8bit" | ||
503 | help | ||
504 | Configure RAM bus to be 8 bits wide. | ||
505 | |||
506 | config RAM16BIT | ||
507 | bool "16bit" | ||
508 | help | ||
509 | Configure RAM bus to be 16 bits wide. | ||
510 | |||
511 | config RAM32BIT | ||
512 | bool "32bit" | ||
513 | help | ||
514 | Configure RAM bus to be 32 bits wide. | ||
515 | |||
516 | endchoice | ||
517 | |||
518 | choice | ||
519 | prompt "Kernel executes from" | ||
520 | ---help--- | ||
521 | Choose the memory type that the kernel will be running in. | ||
522 | |||
523 | config RAMKERNEL | ||
524 | bool "RAM" | ||
525 | help | ||
526 | The kernel will be resident in RAM when running. | ||
527 | |||
528 | config ROMKERNEL | ||
529 | bool "ROM" | ||
530 | help | ||
531 | The kernel will be resident in FLASH/ROM when running. | ||
532 | |||
533 | endchoice | ||
534 | |||
535 | endmenu | ||
536 | |||
537 | menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)" | ||
538 | |||
539 | config PCI | ||
540 | bool "PCI support" | ||
541 | help | ||
542 | Support for PCI bus. | ||
543 | |||
544 | config COMEMPCI | ||
545 | bool "CO-MEM lite PCI controller support" | ||
546 | depends on (M5307 || M5407) | ||
547 | |||
548 | source "drivers/pci/Kconfig" | ||
549 | |||
550 | source "drivers/pcmcia/Kconfig" | ||
551 | |||
552 | source "drivers/pci/hotplug/Kconfig" | ||
553 | |||
554 | endmenu | ||
555 | |||
556 | menu "Executable file formats" | ||
557 | |||
558 | source "fs/Kconfig.binfmt" | ||
559 | |||
560 | endmenu | ||
561 | |||
562 | menu "Power management options" | ||
563 | |||
564 | config PM | ||
565 | bool "Power Management support" | ||
566 | help | ||
567 | Support processor power management modes | ||
568 | |||
569 | endmenu | ||
570 | |||
571 | source "drivers/Kconfig" | ||
572 | |||
573 | source "fs/Kconfig" | ||
574 | |||
575 | source "arch/m68knommu/Kconfig.debug" | ||
576 | |||
577 | source "security/Kconfig" | ||
578 | |||
579 | source "crypto/Kconfig" | ||
580 | |||
581 | source "lib/Kconfig" | ||
diff --git a/arch/m68knommu/Kconfig.debug b/arch/m68knommu/Kconfig.debug new file mode 100644 index 000000000000..763c9aa0b4fd --- /dev/null +++ b/arch/m68knommu/Kconfig.debug | |||
@@ -0,0 +1,42 @@ | |||
1 | menu "Kernel hacking" | ||
2 | |||
3 | source "lib/Kconfig.debug" | ||
4 | |||
5 | config FULLDEBUG | ||
6 | bool "Full Symbolic/Source Debugging support" | ||
7 | help | ||
8 | Enable debuging symbols on kernel build. | ||
9 | |||
10 | config HIGHPROFILE | ||
11 | bool "Use fast second timer for profiling" | ||
12 | depends on COLDFIRE | ||
13 | help | ||
14 | Use a fast secondary clock to produce profiling information. | ||
15 | |||
16 | config BOOTPARAM | ||
17 | bool 'Compiled-in Kernel Boot Parameter' | ||
18 | |||
19 | config BOOTPARAM_STRING | ||
20 | string 'Kernel Boot Parameter' | ||
21 | default 'console=ttyS0,19200' | ||
22 | depends on BOOTPARAM | ||
23 | |||
24 | config DUMPTOFLASH | ||
25 | bool "Panic/Dump to FLASH" | ||
26 | depends on COLDFIRE | ||
27 | help | ||
28 | Dump any panic of trap output into a flash memory segment | ||
29 | for later analysis. | ||
30 | |||
31 | config NO_KERNEL_MSG | ||
32 | bool "Suppress Kernel BUG Messages" | ||
33 | help | ||
34 | Do not output any debug BUG messages within the kernel. | ||
35 | |||
36 | config BDM_DISABLE | ||
37 | bool "Disable BDM signals" | ||
38 | depends on (EXPERIMENTAL && COLDFIRE) | ||
39 | help | ||
40 | Disable the ColdFire CPU's BDM signals. | ||
41 | |||
42 | endmenu | ||
diff --git a/arch/m68knommu/Makefile b/arch/m68knommu/Makefile new file mode 100644 index 000000000000..a254aa9d4998 --- /dev/null +++ b/arch/m68knommu/Makefile | |||
@@ -0,0 +1,117 @@ | |||
1 | # | ||
2 | # arch/m68knommu/Makefile | ||
3 | # | ||
4 | # This file is subject to the terms and conditions of the GNU General Public | ||
5 | # License. See the file "COPYING" in the main directory of this archive | ||
6 | # for more details. | ||
7 | # | ||
8 | # (C) Copyright 2002, Greg Ungerer <gerg@snapgear.com> | ||
9 | # | ||
10 | |||
11 | platform-$(CONFIG_M68328) := 68328 | ||
12 | platform-$(CONFIG_M68EZ328) := 68EZ328 | ||
13 | platform-$(CONFIG_M68VZ328) := 68VZ328 | ||
14 | platform-$(CONFIG_M68360) := 68360 | ||
15 | platform-$(CONFIG_M5206) := 5206 | ||
16 | platform-$(CONFIG_M5206e) := 5206e | ||
17 | platform-$(CONFIG_M5249) := 5249 | ||
18 | platform-$(CONFIG_M527x) := 527x | ||
19 | platform-$(CONFIG_M5272) := 5272 | ||
20 | platform-$(CONFIG_M528x) := 528x | ||
21 | platform-$(CONFIG_M5307) := 5307 | ||
22 | platform-$(CONFIG_M5407) := 5407 | ||
23 | PLATFORM := $(platform-y) | ||
24 | |||
25 | board-$(CONFIG_PILOT) := pilot | ||
26 | board-$(CONFIG_UCSIMM) := ucsimm | ||
27 | board-$(CONFIG_UCDIMM) := ucdimm | ||
28 | board-$(CONFIG_UCQUICC) := uCquicc | ||
29 | board-$(CONFIG_DRAGEN2) := de2 | ||
30 | board-$(CONFIG_ARNEWSH) := ARNEWSH | ||
31 | board-$(CONFIG_MOTOROLA) := MOTOROLA | ||
32 | board-$(CONFIG_M5271EVB) := M5271EVB | ||
33 | board-$(CONFIG_M5275EVB) := M5275EVB | ||
34 | board-$(CONFIG_M5282EVB) := M5282EVB | ||
35 | board-$(CONFIG_ELITE) := eLITE | ||
36 | board-$(CONFIG_eLIA) := eLIA | ||
37 | board-$(CONFIG_NETtel) := NETtel | ||
38 | board-$(CONFIG_SECUREEDGEMP3) := MP3 | ||
39 | board-$(CONFIG_CLEOPATRA) := CLEOPATRA | ||
40 | board-$(CONFIG_senTec) := senTec | ||
41 | board-$(CONFIG_SNEHA) := SNEHA | ||
42 | BOARD := $(board-y) | ||
43 | |||
44 | model-$(CONFIG_RAMKERNEL) := ram | ||
45 | model-$(CONFIG_ROMKERNEL) := rom | ||
46 | MODEL := $(model-y) | ||
47 | |||
48 | # | ||
49 | # Some code support is grouped together for a common cpu-subclass (for | ||
50 | # example all ColdFire cpu's are very similar). Determine the sub-class | ||
51 | # for the selected cpu. ONLY need to define this for the non-base member | ||
52 | # of the family. | ||
53 | # | ||
54 | cpuclass-$(CONFIG_M5206) := 5307 | ||
55 | cpuclass-$(CONFIG_M5206e) := 5307 | ||
56 | cpuclass-$(CONFIG_M5249) := 5307 | ||
57 | cpuclass-$(CONFIG_M527x) := 5307 | ||
58 | cpuclass-$(CONFIG_M5272) := 5307 | ||
59 | cpuclass-$(CONFIG_M528x) := 5307 | ||
60 | cpuclass-$(CONFIG_M5307) := 5307 | ||
61 | cpuclass-$(CONFIG_M5407) := 5307 | ||
62 | cpuclass-$(CONFIG_M68328) := 68328 | ||
63 | cpuclass-$(CONFIG_M68EZ328) := 68328 | ||
64 | cpuclass-$(CONFIG_M68VZ328) := 68328 | ||
65 | cpuclass-$(CONFIG_M68360) := 68360 | ||
66 | CPUCLASS := $(cpuclass-y) | ||
67 | |||
68 | ifneq ($(CPUCLASS),$(PLATFORM)) | ||
69 | CLASSDIR := arch/m68knommu/platform/$(cpuclass-y)/ | ||
70 | endif | ||
71 | |||
72 | export PLATFORM BOARD MODEL CPUCLASS | ||
73 | |||
74 | # | ||
75 | # Some CFLAG additions based on specific CPU type. | ||
76 | # | ||
77 | cflags-$(CONFIG_M5206) := -m5200 -Wa,-S -Wa,-m5200 | ||
78 | cflags-$(CONFIG_M5206e) := -m5200 -Wa,-S -Wa,-m5200 | ||
79 | cflags-$(CONFIG_M5249) := -m5200 -Wa,-S -Wa,-m5200 | ||
80 | cflags-$(CONFIG_M527x) := -m5307 -Wa,-S -Wa,-m5307 | ||
81 | cflags-$(CONFIG_M5272) := -m5307 -Wa,-S -Wa,-m5307 | ||
82 | cflags-$(CONFIG_M528x) := -m5307 -Wa,-S -Wa,-m5307 | ||
83 | cflags-$(CONFIG_M5307) := -m5307 -Wa,-S -Wa,-m5307 | ||
84 | cflags-$(CONFIG_M5407) := -m5200 -Wa,-S -Wa,-m5200 | ||
85 | cflags-$(CONFIG_M68328) := -m68000 | ||
86 | cflags-$(CONFIG_M68EZ328) := -m68000 | ||
87 | cflags-$(CONFIG_M68VZ328) := -m68000 | ||
88 | cflags-$(CONFIG_M68360) := -m68332 | ||
89 | |||
90 | AFLAGS += $(cflags-y) | ||
91 | |||
92 | CFLAGS += $(cflags-y) | ||
93 | CFLAGS += -fno-builtin | ||
94 | CFLAGS += -O1 -g | ||
95 | CFLAGS += -D__linux__ | ||
96 | CFLAGS += -DUTS_SYSNAME=\"uClinux\" | ||
97 | |||
98 | head-y := arch/m68knommu/platform/$(cpuclass-y)/head.o | ||
99 | |||
100 | CLEAN_FILES := include/asm-$(ARCH)/asm-offsets.h \ | ||
101 | arch/$(ARCH)/kernel/asm-offsets.s | ||
102 | |||
103 | core-y += arch/m68knommu/kernel/ \ | ||
104 | arch/m68knommu/mm/ \ | ||
105 | $(CLASSDIR) \ | ||
106 | arch/m68knommu/platform/$(PLATFORM)/ | ||
107 | libs-y += arch/m68knommu/lib/ | ||
108 | |||
109 | prepare: include/asm-$(ARCH)/asm-offsets.h | ||
110 | |||
111 | archclean: | ||
112 | $(call descend arch/$(ARCH)/boot, subdirclean) | ||
113 | |||
114 | include/asm-$(ARCH)/asm-offsets.h: arch/$(ARCH)/kernel/asm-offsets.s \ | ||
115 | include/asm include/linux/version.h \ | ||
116 | include/config/MARKER | ||
117 | $(call filechk,gen-asm-offsets) | ||
diff --git a/arch/m68knommu/defconfig b/arch/m68knommu/defconfig new file mode 100644 index 000000000000..e4bd31be966a --- /dev/null +++ b/arch/m68knommu/defconfig | |||
@@ -0,0 +1,538 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # | ||
4 | # CONFIG_MMU is not set | ||
5 | # CONFIG_FPU is not set | ||
6 | CONFIG_UID16=y | ||
7 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||
8 | # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set | ||
9 | |||
10 | # | ||
11 | # Code maturity level options | ||
12 | # | ||
13 | CONFIG_EXPERIMENTAL=y | ||
14 | |||
15 | # | ||
16 | # General setup | ||
17 | # | ||
18 | # CONFIG_SYSVIPC is not set | ||
19 | # CONFIG_BSD_PROCESS_ACCT is not set | ||
20 | # CONFIG_SYSCTL is not set | ||
21 | CONFIG_LOG_BUF_SHIFT=14 | ||
22 | |||
23 | # | ||
24 | # Loadable module support | ||
25 | # | ||
26 | # CONFIG_MODULES is not set | ||
27 | |||
28 | # | ||
29 | # Processor type and features | ||
30 | # | ||
31 | # CONFIG_M68328 is not set | ||
32 | # CONFIG_M68EZ328 is not set | ||
33 | # CONFIG_M68VZ328 is not set | ||
34 | # CONFIG_M68360 is not set | ||
35 | # CONFIG_M5206 is not set | ||
36 | # CONFIG_M5206e is not set | ||
37 | # CONFIG_M5249 is not set | ||
38 | # CONFIG_M527x is not set | ||
39 | CONFIG_M5272=y | ||
40 | # CONFIG_M528x is not set | ||
41 | # CONFIG_M5307 is not set | ||
42 | # CONFIG_M5407 is not set | ||
43 | CONFIG_COLDFIRE=y | ||
44 | # CONFIG_CLOCK_AUTO is not set | ||
45 | # CONFIG_CLOCK_11MHz is not set | ||
46 | # CONFIG_CLOCK_16MHz is not set | ||
47 | # CONFIG_CLOCK_20MHz is not set | ||
48 | # CONFIG_CLOCK_24MHz is not set | ||
49 | # CONFIG_CLOCK_25MHz is not set | ||
50 | # CONFIG_CLOCK_33MHz is not set | ||
51 | # CONFIG_CLOCK_40MHz is not set | ||
52 | # CONFIG_CLOCK_45MHz is not set | ||
53 | # CONFIG_CLOCK_48MHz is not set | ||
54 | # CONFIG_CLOCK_50MHz is not set | ||
55 | # CONFIG_CLOCK_54MHz is not set | ||
56 | # CONFIG_CLOCK_60MHz is not set | ||
57 | CONFIG_CLOCK_66MHz=y | ||
58 | # CONFIG_CLOCK_70MHz is not set | ||
59 | # CONFIG_CLOCK_100MHz is not set | ||
60 | # CONFIG_CLOCK_140MHz is not set | ||
61 | # CONFIG_CLOCK_150MHz is not set | ||
62 | # CONFIG_CLOCK_166MHz is not set | ||
63 | |||
64 | # | ||
65 | # Platform | ||
66 | # | ||
67 | CONFIG_M5272C3=y | ||
68 | # CONFIG_NETtel is not set | ||
69 | CONFIG_MOTOROLA=y | ||
70 | # CONFIG_LARGE_ALLOCS is not set | ||
71 | # CONFIG_RAMAUTO is not set | ||
72 | # CONFIG_RAM4MB is not set | ||
73 | # CONFIG_RAM8MB is not set | ||
74 | CONFIG_RAM16MB=y | ||
75 | # CONFIG_RAM32MB is not set | ||
76 | CONFIG_RAMAUTOBIT=y | ||
77 | # CONFIG_RAM8BIT is not set | ||
78 | # CONFIG_RAM16BIT is not set | ||
79 | # CONFIG_RAM32BIT is not set | ||
80 | CONFIG_RAMKERNEL=y | ||
81 | # CONFIG_ROMKERNEL is not set | ||
82 | # CONFIG_HIMEMKERNEL is not set | ||
83 | |||
84 | # | ||
85 | # Bus options (PCI, PCMCIA, EISA, MCA, ISA) | ||
86 | # | ||
87 | # CONFIG_PCI is not set | ||
88 | # CONFIG_HOTPLUG is not set | ||
89 | |||
90 | # | ||
91 | # Executable file formats | ||
92 | # | ||
93 | CONFIG_KCORE_AOUT=y | ||
94 | CONFIG_BINFMT_FLAT=y | ||
95 | # CONFIG_BINFMT_ZFLAT is not set | ||
96 | |||
97 | # | ||
98 | # Power management options | ||
99 | # | ||
100 | # CONFIG_PM is not set | ||
101 | |||
102 | # | ||
103 | # Memory Technology Devices (MTD) | ||
104 | # | ||
105 | CONFIG_MTD=y | ||
106 | # CONFIG_MTD_DEBUG is not set | ||
107 | CONFIG_MTD_PARTITIONS=y | ||
108 | # CONFIG_MTD_CONCAT is not set | ||
109 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
110 | # CONFIG_MTD_CMDLINE_PARTS is not set | ||
111 | |||
112 | # | ||
113 | # User Modules And Translation Layers | ||
114 | # | ||
115 | CONFIG_MTD_CHAR=y | ||
116 | CONFIG_MTD_BLOCK=y | ||
117 | # CONFIG_FTL is not set | ||
118 | # CONFIG_NFTL is not set | ||
119 | |||
120 | # | ||
121 | # RAM/ROM/Flash chip drivers | ||
122 | # | ||
123 | # CONFIG_MTD_CFI is not set | ||
124 | # CONFIG_MTD_JEDECPROBE is not set | ||
125 | CONFIG_MTD_RAM=y | ||
126 | # CONFIG_MTD_ROM is not set | ||
127 | # CONFIG_MTD_ABSENT is not set | ||
128 | # CONFIG_MTD_OBSOLETE_CHIPS is not set | ||
129 | |||
130 | # | ||
131 | # Mapping drivers for chip access | ||
132 | # | ||
133 | CONFIG_MTD_UCLINUX=y | ||
134 | |||
135 | # | ||
136 | # Self-contained MTD device drivers | ||
137 | # | ||
138 | # CONFIG_MTD_SLRAM is not set | ||
139 | # CONFIG_MTD_MTDRAM is not set | ||
140 | # CONFIG_MTD_BLKMTD is not set | ||
141 | |||
142 | # | ||
143 | # Disk-On-Chip Device Drivers | ||
144 | # | ||
145 | # CONFIG_MTD_DOC1000 is not set | ||
146 | # CONFIG_MTD_DOC2000 is not set | ||
147 | # CONFIG_MTD_DOC2001 is not set | ||
148 | |||
149 | # | ||
150 | # NAND Flash Device Drivers | ||
151 | # | ||
152 | # CONFIG_MTD_NAND is not set | ||
153 | |||
154 | # | ||
155 | # Parallel port support | ||
156 | # | ||
157 | # CONFIG_PARPORT is not set | ||
158 | |||
159 | # | ||
160 | # Plug and Play support | ||
161 | # | ||
162 | # CONFIG_PNP is not set | ||
163 | |||
164 | # | ||
165 | # Block devices | ||
166 | # | ||
167 | # CONFIG_BLK_DEV_FD is not set | ||
168 | # CONFIG_BLK_DEV_LOOP is not set | ||
169 | # CONFIG_BLK_DEV_NBD is not set | ||
170 | CONFIG_BLK_DEV_RAM=y | ||
171 | CONFIG_BLK_DEV_RAM_SIZE=4096 | ||
172 | # CONFIG_BLK_DEV_INITRD is not set | ||
173 | # CONFIG_BLK_DEV_BLKMEM is not set | ||
174 | |||
175 | # | ||
176 | # ATA/IDE/MFM/RLL support | ||
177 | # | ||
178 | # CONFIG_IDE is not set | ||
179 | |||
180 | # | ||
181 | # SCSI device support | ||
182 | # | ||
183 | # CONFIG_SCSI is not set | ||
184 | |||
185 | # | ||
186 | # Multi-device support (RAID and LVM) | ||
187 | # | ||
188 | # CONFIG_MD is not set | ||
189 | |||
190 | # | ||
191 | # Fusion MPT device support | ||
192 | # | ||
193 | |||
194 | # | ||
195 | # I2O device support | ||
196 | # | ||
197 | |||
198 | # | ||
199 | # Networking support | ||
200 | # | ||
201 | CONFIG_NET=y | ||
202 | |||
203 | # | ||
204 | # Networking options | ||
205 | # | ||
206 | CONFIG_PACKET=y | ||
207 | # CONFIG_PACKET_MMAP is not set | ||
208 | # CONFIG_NETLINK_DEV is not set | ||
209 | # CONFIG_NETFILTER is not set | ||
210 | # CONFIG_FILTER is not set | ||
211 | CONFIG_UNIX=y | ||
212 | # CONFIG_NET_KEY is not set | ||
213 | CONFIG_INET=y | ||
214 | # CONFIG_IP_MULTICAST is not set | ||
215 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
216 | # CONFIG_IP_PNP is not set | ||
217 | # CONFIG_NET_IPIP is not set | ||
218 | # CONFIG_NET_IPGRE is not set | ||
219 | # CONFIG_ARPD is not set | ||
220 | # CONFIG_INET_ECN is not set | ||
221 | # CONFIG_SYN_COOKIES is not set | ||
222 | # CONFIG_INET_AH is not set | ||
223 | # CONFIG_INET_ESP is not set | ||
224 | # CONFIG_XFRM_USER is not set | ||
225 | # CONFIG_IPV6 is not set | ||
226 | |||
227 | # | ||
228 | # SCTP Configuration (EXPERIMENTAL) | ||
229 | # | ||
230 | CONFIG_IPV6_SCTP__=y | ||
231 | # CONFIG_IP_SCTP is not set | ||
232 | # CONFIG_ATM is not set | ||
233 | # CONFIG_VLAN_8021Q is not set | ||
234 | # CONFIG_LLC is not set | ||
235 | # CONFIG_DECNET is not set | ||
236 | # CONFIG_BRIDGE is not set | ||
237 | # CONFIG_X25 is not set | ||
238 | # CONFIG_LAPB is not set | ||
239 | # CONFIG_NET_DIVERT is not set | ||
240 | # CONFIG_ECONET is not set | ||
241 | # CONFIG_WAN_ROUTER is not set | ||
242 | # CONFIG_NET_HW_FLOWCONTROL is not set | ||
243 | |||
244 | # | ||
245 | # QoS and/or fair queueing | ||
246 | # | ||
247 | # CONFIG_NET_SCHED is not set | ||
248 | |||
249 | # | ||
250 | # Network testing | ||
251 | # | ||
252 | # CONFIG_NET_PKTGEN is not set | ||
253 | CONFIG_NETDEVICES=y | ||
254 | # CONFIG_DUMMY is not set | ||
255 | # CONFIG_BONDING is not set | ||
256 | # CONFIG_EQUALIZER is not set | ||
257 | # CONFIG_TUN is not set | ||
258 | # CONFIG_ETHERTAP is not set | ||
259 | |||
260 | # | ||
261 | # Ethernet (10 or 100Mbit) | ||
262 | # | ||
263 | CONFIG_NET_ETHERNET=y | ||
264 | # CONFIG_MII is not set | ||
265 | CONFIG_FEC=y | ||
266 | |||
267 | # | ||
268 | # Ethernet (1000 Mbit) | ||
269 | # | ||
270 | CONFIG_PPP=y | ||
271 | # CONFIG_PPP_MULTILINK is not set | ||
272 | # CONFIG_PPP_ASYNC is not set | ||
273 | # CONFIG_PPP_SYNC_TTY is not set | ||
274 | # CONFIG_PPP_DEFLATE is not set | ||
275 | # CONFIG_PPP_BSDCOMP is not set | ||
276 | # CONFIG_PPPOE is not set | ||
277 | # CONFIG_SLIP is not set | ||
278 | |||
279 | # | ||
280 | # Wireless LAN (non-hamradio) | ||
281 | # | ||
282 | # CONFIG_NET_RADIO is not set | ||
283 | |||
284 | # | ||
285 | # Token Ring devices (depends on LLC=y) | ||
286 | # | ||
287 | # CONFIG_SHAPER is not set | ||
288 | |||
289 | # | ||
290 | # Wan interfaces | ||
291 | # | ||
292 | # CONFIG_WAN is not set | ||
293 | |||
294 | # | ||
295 | # Amateur Radio support | ||
296 | # | ||
297 | # CONFIG_HAMRADIO is not set | ||
298 | |||
299 | # | ||
300 | # IrDA (infrared) support | ||
301 | # | ||
302 | # CONFIG_IRDA is not set | ||
303 | |||
304 | # | ||
305 | # ISDN subsystem | ||
306 | # | ||
307 | # CONFIG_ISDN_BOOL is not set | ||
308 | |||
309 | # | ||
310 | # Telephony Support | ||
311 | # | ||
312 | # CONFIG_PHONE is not set | ||
313 | |||
314 | # | ||
315 | # Input device support | ||
316 | # | ||
317 | CONFIG_INPUT=y | ||
318 | |||
319 | # | ||
320 | # Userland interfaces | ||
321 | # | ||
322 | CONFIG_INPUT_MOUSEDEV=y | ||
323 | CONFIG_INPUT_MOUSEDEV_PSAUX=y | ||
324 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | ||
325 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | ||
326 | # CONFIG_INPUT_JOYDEV is not set | ||
327 | # CONFIG_INPUT_TSDEV is not set | ||
328 | # CONFIG_INPUT_EVDEV is not set | ||
329 | # CONFIG_INPUT_EVBUG is not set | ||
330 | |||
331 | # | ||
332 | # Input I/O drivers | ||
333 | # | ||
334 | # CONFIG_GAMEPORT is not set | ||
335 | CONFIG_SOUND_GAMEPORT=y | ||
336 | CONFIG_SERIO=y | ||
337 | CONFIG_SERIO_I8042=y | ||
338 | CONFIG_SERIO_SERPORT=y | ||
339 | # CONFIG_SERIO_CT82C710 is not set | ||
340 | |||
341 | # | ||
342 | # Input Device Drivers | ||
343 | # | ||
344 | CONFIG_INPUT_KEYBOARD=y | ||
345 | CONFIG_KEYBOARD_ATKBD=y | ||
346 | # CONFIG_KEYBOARD_SUNKBD is not set | ||
347 | # CONFIG_KEYBOARD_XTKBD is not set | ||
348 | # CONFIG_KEYBOARD_NEWTON is not set | ||
349 | CONFIG_INPUT_MOUSE=y | ||
350 | CONFIG_MOUSE_PS2=y | ||
351 | # CONFIG_MOUSE_SERIAL is not set | ||
352 | # CONFIG_INPUT_JOYSTICK is not set | ||
353 | # CONFIG_INPUT_TOUCHSCREEN is not set | ||
354 | # CONFIG_INPUT_MISC is not set | ||
355 | |||
356 | # | ||
357 | # Character devices | ||
358 | # | ||
359 | # CONFIG_VT is not set | ||
360 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
361 | # CONFIG_RESETSWITCH is not set | ||
362 | |||
363 | # | ||
364 | # Serial drivers | ||
365 | # | ||
366 | # CONFIG_SERIAL_8250 is not set | ||
367 | |||
368 | # | ||
369 | # Non-8250 serial port support | ||
370 | # | ||
371 | CONFIG_SERIAL_COLDFIRE=y | ||
372 | # CONFIG_UNIX98_PTYS is not set | ||
373 | |||
374 | # | ||
375 | # I2C support | ||
376 | # | ||
377 | # CONFIG_I2C is not set | ||
378 | |||
379 | # | ||
380 | # I2C Hardware Sensors Mainboard support | ||
381 | # | ||
382 | |||
383 | # | ||
384 | # I2C Hardware Sensors Chip support | ||
385 | # | ||
386 | |||
387 | # | ||
388 | # Mice | ||
389 | # | ||
390 | # CONFIG_BUSMOUSE is not set | ||
391 | # CONFIG_QIC02_TAPE is not set | ||
392 | |||
393 | # | ||
394 | # IPMI | ||
395 | # | ||
396 | # CONFIG_IPMI_HANDLER is not set | ||
397 | |||
398 | # | ||
399 | # Watchdog Cards | ||
400 | # | ||
401 | # CONFIG_WATCHDOG is not set | ||
402 | # CONFIG_NVRAM is not set | ||
403 | # CONFIG_RTC is not set | ||
404 | # CONFIG_GEN_RTC is not set | ||
405 | # CONFIG_DTLK is not set | ||
406 | # CONFIG_R3964 is not set | ||
407 | # CONFIG_APPLICOM is not set | ||
408 | |||
409 | # | ||
410 | # Ftape, the floppy tape device driver | ||
411 | # | ||
412 | # CONFIG_FTAPE is not set | ||
413 | # CONFIG_AGP is not set | ||
414 | # CONFIG_DRM is not set | ||
415 | # CONFIG_RAW_DRIVER is not set | ||
416 | # CONFIG_HANGCHECK_TIMER is not set | ||
417 | |||
418 | # | ||
419 | # Multimedia devices | ||
420 | # | ||
421 | # CONFIG_VIDEO_DEV is not set | ||
422 | |||
423 | # | ||
424 | # File systems | ||
425 | # | ||
426 | CONFIG_EXT2_FS=y | ||
427 | # CONFIG_EXT2_FS_XATTR is not set | ||
428 | # CONFIG_EXT3_FS is not set | ||
429 | # CONFIG_JBD is not set | ||
430 | # CONFIG_REISERFS_FS is not set | ||
431 | # CONFIG_JFS_FS is not set | ||
432 | # CONFIG_XFS_FS is not set | ||
433 | # CONFIG_MINIX_FS is not set | ||
434 | CONFIG_ROMFS_FS=y | ||
435 | # CONFIG_QUOTA is not set | ||
436 | # CONFIG_AUTOFS_FS is not set | ||
437 | # CONFIG_AUTOFS4_FS is not set | ||
438 | |||
439 | # | ||
440 | # CD-ROM/DVD Filesystems | ||
441 | # | ||
442 | # CONFIG_ISO9660_FS is not set | ||
443 | # CONFIG_UDF_FS is not set | ||
444 | |||
445 | # | ||
446 | # DOS/FAT/NT Filesystems | ||
447 | # | ||
448 | # CONFIG_FAT_FS is not set | ||
449 | # CONFIG_NTFS_FS is not set | ||
450 | |||
451 | # | ||
452 | # Pseudo filesystems | ||
453 | # | ||
454 | CONFIG_PROC_FS=y | ||
455 | # CONFIG_DEVFS_FS is not set | ||
456 | # CONFIG_TMPFS is not set | ||
457 | CONFIG_RAMFS=y | ||
458 | |||
459 | # | ||
460 | # Miscellaneous filesystems | ||
461 | # | ||
462 | # CONFIG_ADFS_FS is not set | ||
463 | # CONFIG_AFFS_FS is not set | ||
464 | # CONFIG_HFS_FS is not set | ||
465 | # CONFIG_BEFS_FS is not set | ||
466 | # CONFIG_BFS_FS is not set | ||
467 | # CONFIG_EFS_FS is not set | ||
468 | # CONFIG_JFFS_FS is not set | ||
469 | # CONFIG_JFFS2_FS is not set | ||
470 | # CONFIG_CRAMFS is not set | ||
471 | # CONFIG_VXFS_FS is not set | ||
472 | # CONFIG_HPFS_FS is not set | ||
473 | # CONFIG_QNX4FS_FS is not set | ||
474 | # CONFIG_SYSV_FS is not set | ||
475 | # CONFIG_UFS_FS is not set | ||
476 | |||
477 | # | ||
478 | # Network File Systems | ||
479 | # | ||
480 | # CONFIG_NFS_FS is not set | ||
481 | # CONFIG_NFSD is not set | ||
482 | # CONFIG_EXPORTFS is not set | ||
483 | # CONFIG_SMB_FS is not set | ||
484 | # CONFIG_CIFS is not set | ||
485 | # CONFIG_NCP_FS is not set | ||
486 | # CONFIG_CODA_FS is not set | ||
487 | # CONFIG_INTERMEZZO_FS is not set | ||
488 | # CONFIG_AFS_FS is not set | ||
489 | |||
490 | # | ||
491 | # Partition Types | ||
492 | # | ||
493 | # CONFIG_PARTITION_ADVANCED is not set | ||
494 | CONFIG_MSDOS_PARTITION=y | ||
495 | |||
496 | # | ||
497 | # Graphics support | ||
498 | # | ||
499 | # CONFIG_FB is not set | ||
500 | |||
501 | # | ||
502 | # Sound | ||
503 | # | ||
504 | # CONFIG_SOUND is not set | ||
505 | |||
506 | # | ||
507 | # USB support | ||
508 | # | ||
509 | |||
510 | # | ||
511 | # Bluetooth support | ||
512 | # | ||
513 | # CONFIG_BT is not set | ||
514 | |||
515 | # | ||
516 | # Kernel hacking | ||
517 | # | ||
518 | # CONFIG_FULLDEBUG is not set | ||
519 | # CONFIG_MAGIC_SYSRQ is not set | ||
520 | # CONFIG_HIGHPROFILE is not set | ||
521 | # CONFIG_DUMPTOFLASH is not set | ||
522 | # CONFIG_NO_KERNEL_MSG is not set | ||
523 | # CONFIG_BDM_DISABLE is not set | ||
524 | |||
525 | # | ||
526 | # Security options | ||
527 | # | ||
528 | # CONFIG_SECURITY is not set | ||
529 | |||
530 | # | ||
531 | # Cryptographic options | ||
532 | # | ||
533 | # CONFIG_CRYPTO is not set | ||
534 | |||
535 | # | ||
536 | # Library routines | ||
537 | # | ||
538 | # CONFIG_CRC32 is not set | ||
diff --git a/arch/m68knommu/kernel/Makefile b/arch/m68knommu/kernel/Makefile new file mode 100644 index 000000000000..1c6cd1ab571e --- /dev/null +++ b/arch/m68knommu/kernel/Makefile | |||
@@ -0,0 +1,11 @@ | |||
1 | # | ||
2 | # Makefile for arch/m68knommu/kernel. | ||
3 | # | ||
4 | |||
5 | extra-y := vmlinux.lds | ||
6 | |||
7 | obj-y += dma.o entry.o init_task.o m68k_ksyms.o process.o ptrace.o semaphore.o \ | ||
8 | setup.o signal.o syscalltable.o sys_m68k.o time.o traps.o | ||
9 | |||
10 | obj-$(CONFIG_MODULES) += module.o | ||
11 | obj-$(CONFIG_COMEMPCI) += comempci.o | ||
diff --git a/arch/m68knommu/kernel/asm-offsets.c b/arch/m68knommu/kernel/asm-offsets.c new file mode 100644 index 000000000000..cd3ffe12653e --- /dev/null +++ b/arch/m68knommu/kernel/asm-offsets.c | |||
@@ -0,0 +1,101 @@ | |||
1 | /* | ||
2 | * This program is used to generate definitions needed by | ||
3 | * assembly language modules. | ||
4 | * | ||
5 | * We use the technique used in the OSF Mach kernel code: | ||
6 | * generate asm statements containing #defines, | ||
7 | * compile this file to assembler, and then extract the | ||
8 | * #defines from the assembly-language output. | ||
9 | */ | ||
10 | |||
11 | #include <linux/stddef.h> | ||
12 | #include <linux/sched.h> | ||
13 | #include <linux/kernel_stat.h> | ||
14 | #include <linux/ptrace.h> | ||
15 | #include <linux/hardirq.h> | ||
16 | #include <asm/bootinfo.h> | ||
17 | #include <asm/irq.h> | ||
18 | #include <asm/thread_info.h> | ||
19 | |||
20 | #define DEFINE(sym, val) \ | ||
21 | asm volatile("\n->" #sym " %0 " #val : : "i" (val)) | ||
22 | |||
23 | #define BLANK() asm volatile("\n->" : : ) | ||
24 | |||
25 | int main(void) | ||
26 | { | ||
27 | /* offsets into the task struct */ | ||
28 | DEFINE(TASK_STATE, offsetof(struct task_struct, state)); | ||
29 | DEFINE(TASK_FLAGS, offsetof(struct task_struct, flags)); | ||
30 | DEFINE(TASK_PTRACE, offsetof(struct task_struct, ptrace)); | ||
31 | DEFINE(TASK_BLOCKED, offsetof(struct task_struct, blocked)); | ||
32 | DEFINE(TASK_THREAD, offsetof(struct task_struct, thread)); | ||
33 | DEFINE(TASK_THREAD_INFO, offsetof(struct task_struct, thread_info)); | ||
34 | DEFINE(TASK_MM, offsetof(struct task_struct, mm)); | ||
35 | DEFINE(TASK_ACTIVE_MM, offsetof(struct task_struct, active_mm)); | ||
36 | |||
37 | /* offsets into the kernel_stat struct */ | ||
38 | DEFINE(STAT_IRQ, offsetof(struct kernel_stat, irqs)); | ||
39 | |||
40 | /* offsets into the irq_cpustat_t struct */ | ||
41 | DEFINE(CPUSTAT_SOFTIRQ_PENDING, offsetof(irq_cpustat_t, __softirq_pending)); | ||
42 | |||
43 | /* offsets into the thread struct */ | ||
44 | DEFINE(THREAD_KSP, offsetof(struct thread_struct, ksp)); | ||
45 | DEFINE(THREAD_USP, offsetof(struct thread_struct, usp)); | ||
46 | DEFINE(THREAD_SR, offsetof(struct thread_struct, sr)); | ||
47 | DEFINE(THREAD_FS, offsetof(struct thread_struct, fs)); | ||
48 | DEFINE(THREAD_CRP, offsetof(struct thread_struct, crp)); | ||
49 | DEFINE(THREAD_ESP0, offsetof(struct thread_struct, esp0)); | ||
50 | DEFINE(THREAD_FPREG, offsetof(struct thread_struct, fp)); | ||
51 | DEFINE(THREAD_FPCNTL, offsetof(struct thread_struct, fpcntl)); | ||
52 | DEFINE(THREAD_FPSTATE, offsetof(struct thread_struct, fpstate)); | ||
53 | |||
54 | /* offsets into the pt_regs */ | ||
55 | DEFINE(PT_D0, offsetof(struct pt_regs, d0)); | ||
56 | DEFINE(PT_ORIG_D0, offsetof(struct pt_regs, orig_d0)); | ||
57 | DEFINE(PT_D1, offsetof(struct pt_regs, d1)); | ||
58 | DEFINE(PT_D2, offsetof(struct pt_regs, d2)); | ||
59 | DEFINE(PT_D3, offsetof(struct pt_regs, d3)); | ||
60 | DEFINE(PT_D4, offsetof(struct pt_regs, d4)); | ||
61 | DEFINE(PT_D5, offsetof(struct pt_regs, d5)); | ||
62 | DEFINE(PT_A0, offsetof(struct pt_regs, a0)); | ||
63 | DEFINE(PT_A1, offsetof(struct pt_regs, a1)); | ||
64 | DEFINE(PT_A2, offsetof(struct pt_regs, a2)); | ||
65 | DEFINE(PT_PC, offsetof(struct pt_regs, pc)); | ||
66 | DEFINE(PT_SR, offsetof(struct pt_regs, sr)); | ||
67 | |||
68 | #ifdef CONFIG_COLDFIRE | ||
69 | /* bitfields are a bit difficult */ | ||
70 | DEFINE(PT_FORMATVEC, offsetof(struct pt_regs, sr) - 2); | ||
71 | #else | ||
72 | /* bitfields are a bit difficult */ | ||
73 | DEFINE(PT_VECTOR, offsetof(struct pt_regs, pc) + 4); | ||
74 | /* offsets into the irq_handler struct */ | ||
75 | DEFINE(IRQ_HANDLER, offsetof(struct irq_node, handler)); | ||
76 | DEFINE(IRQ_DEVID, offsetof(struct irq_node, dev_id)); | ||
77 | DEFINE(IRQ_NEXT, offsetof(struct irq_node, next)); | ||
78 | #endif | ||
79 | |||
80 | /* offsets into the kernel_stat struct */ | ||
81 | DEFINE(STAT_IRQ, offsetof(struct kernel_stat, irqs)); | ||
82 | |||
83 | /* signal defines */ | ||
84 | DEFINE(SIGSEGV, SIGSEGV); | ||
85 | DEFINE(SEGV_MAPERR, SEGV_MAPERR); | ||
86 | DEFINE(SIGTRAP, SIGTRAP); | ||
87 | DEFINE(TRAP_TRACE, TRAP_TRACE); | ||
88 | |||
89 | DEFINE(PT_PTRACED, PT_PTRACED); | ||
90 | DEFINE(PT_DTRACE, PT_DTRACE); | ||
91 | |||
92 | DEFINE(THREAD_SIZE, THREAD_SIZE); | ||
93 | |||
94 | /* Offsets in thread_info structure */ | ||
95 | DEFINE(TI_TASK, offsetof(struct thread_info, task)); | ||
96 | DEFINE(TI_EXECDOMAIN, offsetof(struct thread_info, exec_domain)); | ||
97 | DEFINE(TI_FLAGS, offsetof(struct thread_info, flags)); | ||
98 | DEFINE(TI_CPU, offsetof(struct thread_info, cpu)); | ||
99 | |||
100 | return 0; | ||
101 | } | ||
diff --git a/arch/m68knommu/kernel/comempci.c b/arch/m68knommu/kernel/comempci.c new file mode 100644 index 000000000000..8670938f1107 --- /dev/null +++ b/arch/m68knommu/kernel/comempci.c | |||
@@ -0,0 +1,989 @@ | |||
1 | /*****************************************************************************/ | ||
2 | |||
3 | /* | ||
4 | * comemlite.c -- PCI access code for embedded CO-MEM Lite PCI controller. | ||
5 | * | ||
6 | * (C) Copyright 1999-2003, Greg Ungerer (gerg@snapgear.com). | ||
7 | * (C) Copyright 2000, Lineo (www.lineo.com) | ||
8 | */ | ||
9 | |||
10 | /*****************************************************************************/ | ||
11 | |||
12 | #include <linux/config.h> | ||
13 | #include <linux/kernel.h> | ||
14 | #include <linux/types.h> | ||
15 | #include <linux/pci.h> | ||
16 | #include <linux/ptrace.h> | ||
17 | #include <linux/spinlock.h> | ||
18 | #include <linux/interrupt.h> | ||
19 | #include <linux/sched.h> | ||
20 | #include <asm/coldfire.h> | ||
21 | #include <asm/mcfsim.h> | ||
22 | #include <asm/irq.h> | ||
23 | #include <asm/anchor.h> | ||
24 | |||
25 | #ifdef CONFIG_eLIA | ||
26 | #include <asm/elia.h> | ||
27 | #endif | ||
28 | |||
29 | /*****************************************************************************/ | ||
30 | |||
31 | /* | ||
32 | * Debug configuration defines. DEBUGRES sets debugging output for | ||
33 | * the resource allocation phase. DEBUGPCI traces on pcibios_ function | ||
34 | * calls, and DEBUGIO traces all accesses to devices on the PCI bus. | ||
35 | */ | ||
36 | /*#define DEBUGRES 1*/ | ||
37 | /*#define DEBUGPCI 1*/ | ||
38 | /*#define DEBUGIO 1*/ | ||
39 | |||
40 | /*****************************************************************************/ | ||
41 | |||
42 | /* | ||
43 | * PCI markers for bus present and active slots. | ||
44 | */ | ||
45 | int pci_bus_is_present = 0; | ||
46 | unsigned long pci_slotmask = 0; | ||
47 | |||
48 | /* | ||
49 | * We may or may not need to swap the bytes of PCI bus tranfers. | ||
50 | * The endianess is re-roder automatically by the CO-MEM, but it | ||
51 | * will get the wrong byte order for a pure data stream. | ||
52 | */ | ||
53 | #define pci_byteswap 0 | ||
54 | |||
55 | |||
56 | /* | ||
57 | * Resource tracking. The CO-MEM part creates a virtual address | ||
58 | * space that all the PCI devices live in - it is not in any way | ||
59 | * directly mapped into the ColdFire address space. So we can | ||
60 | * really assign any resources we like to devices, as long as | ||
61 | * they do not clash with other PCI devices. | ||
62 | */ | ||
63 | unsigned int pci_iobase = PCIBIOS_MIN_IO; /* Arbitrary start address */ | ||
64 | unsigned int pci_membase = PCIBIOS_MIN_MEM; /* Arbitrary start address */ | ||
65 | |||
66 | #define PCI_MINIO 0x100 /* 256 byte minimum I/O */ | ||
67 | #define PCI_MINMEM 0x00010000 /* 64k minimum chunk */ | ||
68 | |||
69 | /* | ||
70 | * The CO-MEM's shared memory segment is visible inside the PCI | ||
71 | * memory address space. We need to keep track of the address that | ||
72 | * this is mapped at, to setup the bus masters pointers. | ||
73 | */ | ||
74 | unsigned int pci_shmemaddr; | ||
75 | |||
76 | /*****************************************************************************/ | ||
77 | |||
78 | void pci_interrupt(int irq, void *id, struct pt_regs *fp); | ||
79 | |||
80 | /*****************************************************************************/ | ||
81 | |||
82 | /* | ||
83 | * Some platforms have custom ways of reseting the PCI bus. | ||
84 | */ | ||
85 | |||
86 | void pci_resetbus(void) | ||
87 | { | ||
88 | #ifdef CONFIG_eLIA | ||
89 | int i; | ||
90 | |||
91 | #ifdef DEBUGPCI | ||
92 | printk(KERN_DEBUG "pci_resetbus()\n"); | ||
93 | #endif | ||
94 | |||
95 | *((volatile unsigned short *) (MCF_MBAR+MCFSIM_PADDR)) |= eLIA_PCIRESET; | ||
96 | for (i = 0; (i < 1000); i++) { | ||
97 | *((volatile unsigned short *) (MCF_MBAR + MCFSIM_PADAT)) = | ||
98 | (ppdata | eLIA_PCIRESET); | ||
99 | } | ||
100 | |||
101 | |||
102 | *((volatile unsigned short *) (MCF_MBAR + MCFSIM_PADAT)) = ppdata; | ||
103 | #endif | ||
104 | } | ||
105 | |||
106 | /*****************************************************************************/ | ||
107 | |||
108 | int pcibios_assign_resource_slot(int slot) | ||
109 | { | ||
110 | volatile unsigned long *rp; | ||
111 | volatile unsigned char *ip; | ||
112 | unsigned int idsel, addr, val, align, i; | ||
113 | int bar; | ||
114 | |||
115 | #ifdef DEBUGPCI | ||
116 | printk(KERN_INFO "pcibios_assign_resource_slot(slot=%x)\n", slot); | ||
117 | #endif | ||
118 | |||
119 | rp = (volatile unsigned long *) COMEM_BASE; | ||
120 | idsel = COMEM_DA_ADDR(0x1 << (slot + 16)); | ||
121 | |||
122 | /* Try to assign resource to each BAR */ | ||
123 | for (bar = 0; (bar < 6); bar++) { | ||
124 | addr = COMEM_PCIBUS + PCI_BASE_ADDRESS_0 + (bar * 4); | ||
125 | rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGRD | idsel; | ||
126 | val = rp[LREG(addr)]; | ||
127 | #ifdef DEBUGRES | ||
128 | printk(KERN_DEBUG "-----------------------------------" | ||
129 | "-------------------------------------\n"); | ||
130 | printk(KERN_DEBUG "BAR[%d]: read=%08x ", bar, val); | ||
131 | #endif | ||
132 | |||
133 | rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGWR | idsel; | ||
134 | rp[LREG(addr)] = 0xffffffff; | ||
135 | |||
136 | rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGRD | idsel; | ||
137 | val = rp[LREG(addr)]; | ||
138 | #ifdef DEBUGRES | ||
139 | printk(KERN_DEBUG "write=%08x ", val); | ||
140 | #endif | ||
141 | if (val == 0) { | ||
142 | #ifdef DEBUGRES | ||
143 | printk(KERN_DEBUG "\n"); | ||
144 | #endif | ||
145 | continue; | ||
146 | } | ||
147 | |||
148 | /* Determine space required by BAR */ | ||
149 | /* FIXME: this should go backwords from 0x80000000... */ | ||
150 | for (i = 0; (i < 32); i++) { | ||
151 | if ((0x1 << i) & (val & 0xfffffffc)) | ||
152 | break; | ||
153 | } | ||
154 | |||
155 | #ifdef DEBUGRES | ||
156 | printk(KERN_DEBUG "size=%08x(%d)\n", (0x1 << i), i); | ||
157 | #endif | ||
158 | i = 0x1 << i; | ||
159 | |||
160 | /* Assign a resource */ | ||
161 | if (val & PCI_BASE_ADDRESS_SPACE_IO) { | ||
162 | if (i < PCI_MINIO) | ||
163 | i = PCI_MINIO; | ||
164 | #ifdef DEBUGRES | ||
165 | printk(KERN_DEBUG "BAR[%d]: IO size=%08x iobase=%08x\n", | ||
166 | bar, i, pci_iobase); | ||
167 | #endif | ||
168 | if (i > 0xffff) { | ||
169 | /* Invalid size?? */ | ||
170 | val = 0 | PCI_BASE_ADDRESS_SPACE_IO; | ||
171 | #ifdef DEBUGRES | ||
172 | printk(KERN_DEBUG "BAR[%d]: too big for IO??\n", bar); | ||
173 | #endif | ||
174 | } else { | ||
175 | /* Check for un-alignment */ | ||
176 | if ((align = pci_iobase % i)) | ||
177 | pci_iobase += (i - align); | ||
178 | val = pci_iobase | PCI_BASE_ADDRESS_SPACE_IO; | ||
179 | pci_iobase += i; | ||
180 | } | ||
181 | } else { | ||
182 | if (i < PCI_MINMEM) | ||
183 | i = PCI_MINMEM; | ||
184 | #ifdef DEBUGRES | ||
185 | printk(KERN_DEBUG "BAR[%d]: MEMORY size=%08x membase=%08x\n", | ||
186 | bar, i, pci_membase); | ||
187 | #endif | ||
188 | /* Check for un-alignment */ | ||
189 | if ((align = pci_membase % i)) | ||
190 | pci_membase += (i - align); | ||
191 | val = pci_membase | PCI_BASE_ADDRESS_SPACE_MEMORY; | ||
192 | pci_membase += i; | ||
193 | } | ||
194 | |||
195 | /* Write resource back into BAR register */ | ||
196 | rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGWR | idsel; | ||
197 | rp[LREG(addr)] = val; | ||
198 | #ifdef DEBUGRES | ||
199 | printk(KERN_DEBUG "BAR[%d]: assigned bar=%08x\n", bar, val); | ||
200 | #endif | ||
201 | } | ||
202 | |||
203 | #ifdef DEBUGRES | ||
204 | printk(KERN_DEBUG "-----------------------------------" | ||
205 | "-------------------------------------\n"); | ||
206 | #endif | ||
207 | |||
208 | /* Assign IRQ if one is wanted... */ | ||
209 | ip = (volatile unsigned char *) (COMEM_BASE + COMEM_PCIBUS); | ||
210 | rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGRD | idsel; | ||
211 | |||
212 | addr = (PCI_INTERRUPT_PIN & 0xfc) + (~PCI_INTERRUPT_PIN & 0x03); | ||
213 | if (ip[addr]) { | ||
214 | rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGWR | idsel; | ||
215 | addr = (PCI_INTERRUPT_LINE & 0xfc)+(~PCI_INTERRUPT_LINE & 0x03); | ||
216 | ip[addr] = 25; | ||
217 | #ifdef DEBUGRES | ||
218 | printk(KERN_DEBUG "IRQ LINE=25\n"); | ||
219 | #endif | ||
220 | } | ||
221 | |||
222 | return(0); | ||
223 | } | ||
224 | |||
225 | /*****************************************************************************/ | ||
226 | |||
227 | int pcibios_enable_slot(int slot) | ||
228 | { | ||
229 | volatile unsigned long *rp; | ||
230 | volatile unsigned short *wp; | ||
231 | unsigned int idsel, addr; | ||
232 | unsigned short cmd; | ||
233 | |||
234 | #ifdef DEBUGPCI | ||
235 | printk(KERN_DEBUG "pcibios_enbale_slot(slot=%x)\n", slot); | ||
236 | #endif | ||
237 | |||
238 | rp = (volatile unsigned long *) COMEM_BASE; | ||
239 | wp = (volatile unsigned short *) COMEM_BASE; | ||
240 | idsel = COMEM_DA_ADDR(0x1 << (slot + 16)); | ||
241 | |||
242 | /* Get current command settings */ | ||
243 | addr = COMEM_PCIBUS + PCI_COMMAND; | ||
244 | addr = (addr & ~0x3) + (~addr & 0x02); | ||
245 | rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGRD | idsel; | ||
246 | cmd = wp[WREG(addr)]; | ||
247 | /*val = ((val & 0xff) << 8) | ((val >> 8) & 0xff);*/ | ||
248 | |||
249 | /* Enable I/O and memory accesses to this device */ | ||
250 | rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGWR | idsel; | ||
251 | cmd |= PCI_COMMAND_IO | PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER; | ||
252 | wp[WREG(addr)] = cmd; | ||
253 | |||
254 | return(0); | ||
255 | } | ||
256 | |||
257 | /*****************************************************************************/ | ||
258 | |||
259 | void pcibios_assign_resources(void) | ||
260 | { | ||
261 | volatile unsigned long *rp; | ||
262 | unsigned long sel, id; | ||
263 | int slot; | ||
264 | |||
265 | rp = (volatile unsigned long *) COMEM_BASE; | ||
266 | |||
267 | /* | ||
268 | * Do a quick scan of the PCI bus and see what is here. | ||
269 | */ | ||
270 | for (slot = COMEM_MINDEV; (slot <= COMEM_MAXDEV); slot++) { | ||
271 | sel = COMEM_DA_CFGRD | COMEM_DA_ADDR(0x1 << (slot + 16)); | ||
272 | rp[LREG(COMEM_DAHBASE)] = sel; | ||
273 | rp[LREG(COMEM_PCIBUS)] = 0; /* Clear bus */ | ||
274 | id = rp[LREG(COMEM_PCIBUS)]; | ||
275 | if ((id != 0) && ((id & 0xffff0000) != (sel & 0xffff0000))) { | ||
276 | printk(KERN_INFO "PCI: slot=%d id=%08x\n", slot, (int) id); | ||
277 | pci_slotmask |= 0x1 << slot; | ||
278 | pcibios_assign_resource_slot(slot); | ||
279 | pcibios_enable_slot(slot); | ||
280 | } | ||
281 | } | ||
282 | } | ||
283 | |||
284 | /*****************************************************************************/ | ||
285 | |||
286 | int pcibios_init(void) | ||
287 | { | ||
288 | volatile unsigned long *rp; | ||
289 | unsigned long sel, id; | ||
290 | int slot; | ||
291 | |||
292 | #ifdef DEBUGPCI | ||
293 | printk(KERN_DEBUG "pcibios_init()\n"); | ||
294 | #endif | ||
295 | |||
296 | pci_resetbus(); | ||
297 | |||
298 | /* | ||
299 | * Do some sort of basic check to see if the CO-MEM part | ||
300 | * is present... This works ok, but I think we really need | ||
301 | * something better... | ||
302 | */ | ||
303 | rp = (volatile unsigned long *) COMEM_BASE; | ||
304 | if ((rp[LREG(COMEM_LBUSCFG)] & 0xff) != 0x50) { | ||
305 | printk(KERN_INFO "PCI: no PCI bus present\n"); | ||
306 | return(0); | ||
307 | } | ||
308 | |||
309 | #ifdef COMEM_BRIDGEDEV | ||
310 | /* | ||
311 | * Setup the PCI bridge device first. It needs resources too, | ||
312 | * so that bus masters can get to its shared memory. | ||
313 | */ | ||
314 | slot = COMEM_BRIDGEDEV; | ||
315 | sel = COMEM_DA_CFGRD | COMEM_DA_ADDR(0x1 << (slot + 16)); | ||
316 | rp[LREG(COMEM_DAHBASE)] = sel; | ||
317 | rp[LREG(COMEM_PCIBUS)] = 0; /* Clear bus */ | ||
318 | id = rp[LREG(COMEM_PCIBUS)]; | ||
319 | if ((id == 0) || ((id & 0xffff0000) == (sel & 0xffff0000))) { | ||
320 | printk(KERN_INFO "PCI: no PCI bus bridge present\n"); | ||
321 | return(0); | ||
322 | } | ||
323 | |||
324 | printk(KERN_INFO "PCI: bridge device at slot=%d id=%08x\n", slot, (int) id); | ||
325 | pci_slotmask |= 0x1 << slot; | ||
326 | pci_shmemaddr = pci_membase; | ||
327 | pcibios_assign_resource_slot(slot); | ||
328 | pcibios_enable_slot(slot); | ||
329 | #endif | ||
330 | |||
331 | pci_bus_is_present = 1; | ||
332 | |||
333 | /* Get PCI irq for local vectoring */ | ||
334 | if (request_irq(COMEM_IRQ, pci_interrupt, 0, "PCI bridge", NULL)) { | ||
335 | printk(KERN_WARNING "PCI: failed to acquire interrupt %d\n", COMEM_IRQ); | ||
336 | } else { | ||
337 | mcf_autovector(COMEM_IRQ); | ||
338 | } | ||
339 | |||
340 | pcibios_assign_resources(); | ||
341 | |||
342 | return(0); | ||
343 | } | ||
344 | |||
345 | /*****************************************************************************/ | ||
346 | |||
347 | char *pcibios_setup(char *option) | ||
348 | { | ||
349 | /* Nothing for us to handle. */ | ||
350 | return(option); | ||
351 | } | ||
352 | /*****************************************************************************/ | ||
353 | |||
354 | void pcibios_fixup_bus(struct pci_bus *b) | ||
355 | { | ||
356 | } | ||
357 | |||
358 | /*****************************************************************************/ | ||
359 | |||
360 | void pcibios_align_resource(void *data, struct resource *res, unsigned long size, unsigned long align) | ||
361 | { | ||
362 | } | ||
363 | |||
364 | /*****************************************************************************/ | ||
365 | |||
366 | int pcibios_enable_device(struct pci_dev *dev, int mask) | ||
367 | { | ||
368 | int slot; | ||
369 | |||
370 | slot = PCI_SLOT(dev->devfn); | ||
371 | if ((dev->bus == 0) && (pci_slotmask & (1 << slot))) | ||
372 | pcibios_enable_slot(slot); | ||
373 | return(0); | ||
374 | } | ||
375 | |||
376 | /*****************************************************************************/ | ||
377 | |||
378 | void pcibios_update_resource(struct pci_dev *dev, struct resource *root, struct resource *r, int resource) | ||
379 | { | ||
380 | printk(KERN_WARNING "%s(%d): no support for changing PCI resources...\n", | ||
381 | __FILE__, __LINE__); | ||
382 | } | ||
383 | |||
384 | |||
385 | /*****************************************************************************/ | ||
386 | |||
387 | /* | ||
388 | * Local routines to interrcept the standard I/O and vector handling | ||
389 | * code. Don't include this 'till now - initialization code above needs | ||
390 | * access to the real code too. | ||
391 | */ | ||
392 | #include <asm/mcfpci.h> | ||
393 | |||
394 | /*****************************************************************************/ | ||
395 | |||
396 | void pci_outb(unsigned char val, unsigned int addr) | ||
397 | { | ||
398 | volatile unsigned long *rp; | ||
399 | volatile unsigned char *bp; | ||
400 | |||
401 | #ifdef DEBUGIO | ||
402 | printk(KERN_DEBUG "pci_outb(val=%02x,addr=%x)\n", val, addr); | ||
403 | #endif | ||
404 | |||
405 | rp = (volatile unsigned long *) COMEM_BASE; | ||
406 | bp = (volatile unsigned char *) COMEM_BASE; | ||
407 | rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IOWR | COMEM_DA_ADDR(addr); | ||
408 | addr = (addr & ~0x3) + (~addr & 0x03); | ||
409 | bp[(COMEM_PCIBUS + COMEM_DA_OFFSET(addr))] = val; | ||
410 | } | ||
411 | |||
412 | /*****************************************************************************/ | ||
413 | |||
414 | void pci_outw(unsigned short val, unsigned int addr) | ||
415 | { | ||
416 | volatile unsigned long *rp; | ||
417 | volatile unsigned short *sp; | ||
418 | |||
419 | #ifdef DEBUGIO | ||
420 | printk(KERN_DEBUG "pci_outw(val=%04x,addr=%x)\n", val, addr); | ||
421 | #endif | ||
422 | |||
423 | rp = (volatile unsigned long *) COMEM_BASE; | ||
424 | sp = (volatile unsigned short *) COMEM_BASE; | ||
425 | rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IOWR | COMEM_DA_ADDR(addr); | ||
426 | addr = (addr & ~0x3) + (~addr & 0x02); | ||
427 | if (pci_byteswap) | ||
428 | val = ((val & 0xff) << 8) | ((val >> 8) & 0xff); | ||
429 | sp[WREG(COMEM_PCIBUS + COMEM_DA_OFFSET(addr))] = val; | ||
430 | } | ||
431 | |||
432 | /*****************************************************************************/ | ||
433 | |||
434 | void pci_outl(unsigned int val, unsigned int addr) | ||
435 | { | ||
436 | volatile unsigned long *rp; | ||
437 | volatile unsigned int *lp; | ||
438 | |||
439 | #ifdef DEBUGIO | ||
440 | printk(KERN_DEBUG "pci_outl(val=%08x,addr=%x)\n", val, addr); | ||
441 | #endif | ||
442 | |||
443 | rp = (volatile unsigned long *) COMEM_BASE; | ||
444 | lp = (volatile unsigned int *) COMEM_BASE; | ||
445 | rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IOWR | COMEM_DA_ADDR(addr); | ||
446 | |||
447 | if (pci_byteswap) | ||
448 | val = (val << 24) | ((val & 0x0000ff00) << 8) | | ||
449 | ((val & 0x00ff0000) >> 8) | (val >> 24); | ||
450 | |||
451 | lp[LREG(COMEM_PCIBUS + COMEM_DA_OFFSET(addr))] = val; | ||
452 | } | ||
453 | |||
454 | /*****************************************************************************/ | ||
455 | |||
456 | unsigned long pci_blmask[] = { | ||
457 | 0x000000e0, | ||
458 | 0x000000d0, | ||
459 | 0x000000b0, | ||
460 | 0x00000070 | ||
461 | }; | ||
462 | |||
463 | unsigned char pci_inb(unsigned int addr) | ||
464 | { | ||
465 | volatile unsigned long *rp; | ||
466 | volatile unsigned char *bp; | ||
467 | unsigned long r; | ||
468 | unsigned char val; | ||
469 | |||
470 | #ifdef DEBUGIO | ||
471 | printk(KERN_DEBUG "pci_inb(addr=%x)\n", addr); | ||
472 | #endif | ||
473 | |||
474 | rp = (volatile unsigned long *) COMEM_BASE; | ||
475 | bp = (volatile unsigned char *) COMEM_BASE; | ||
476 | |||
477 | r = COMEM_DA_IORD | COMEM_DA_ADDR(addr) | pci_blmask[(addr & 0x3)]; | ||
478 | rp[LREG(COMEM_DAHBASE)] = r; | ||
479 | |||
480 | addr = (addr & ~0x3) + (~addr & 0x3); | ||
481 | val = bp[(COMEM_PCIBUS + COMEM_DA_OFFSET(addr))]; | ||
482 | return(val); | ||
483 | } | ||
484 | |||
485 | /*****************************************************************************/ | ||
486 | |||
487 | unsigned long pci_bwmask[] = { | ||
488 | 0x000000c0, | ||
489 | 0x000000c0, | ||
490 | 0x00000030, | ||
491 | 0x00000030 | ||
492 | }; | ||
493 | |||
494 | unsigned short pci_inw(unsigned int addr) | ||
495 | { | ||
496 | volatile unsigned long *rp; | ||
497 | volatile unsigned short *sp; | ||
498 | unsigned long r; | ||
499 | unsigned short val; | ||
500 | |||
501 | #ifdef DEBUGIO | ||
502 | printk(KERN_DEBUG "pci_inw(addr=%x)", addr); | ||
503 | #endif | ||
504 | |||
505 | rp = (volatile unsigned long *) COMEM_BASE; | ||
506 | r = COMEM_DA_IORD | COMEM_DA_ADDR(addr) | pci_bwmask[(addr & 0x3)]; | ||
507 | rp[LREG(COMEM_DAHBASE)] = r; | ||
508 | |||
509 | sp = (volatile unsigned short *) COMEM_BASE; | ||
510 | addr = (addr & ~0x3) + (~addr & 0x02); | ||
511 | val = sp[WREG(COMEM_PCIBUS + COMEM_DA_OFFSET(addr))]; | ||
512 | if (pci_byteswap) | ||
513 | val = ((val & 0xff) << 8) | ((val >> 8) & 0xff); | ||
514 | #ifdef DEBUGIO | ||
515 | printk(KERN_DEBUG "=%04x\n", val); | ||
516 | #endif | ||
517 | return(val); | ||
518 | } | ||
519 | |||
520 | /*****************************************************************************/ | ||
521 | |||
522 | unsigned int pci_inl(unsigned int addr) | ||
523 | { | ||
524 | volatile unsigned long *rp; | ||
525 | volatile unsigned int *lp; | ||
526 | unsigned int val; | ||
527 | |||
528 | #ifdef DEBUGIO | ||
529 | printk(KERN_DEBUG "pci_inl(addr=%x)", addr); | ||
530 | #endif | ||
531 | |||
532 | rp = (volatile unsigned long *) COMEM_BASE; | ||
533 | lp = (volatile unsigned int *) COMEM_BASE; | ||
534 | rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IORD | COMEM_DA_ADDR(addr); | ||
535 | val = lp[LREG(COMEM_PCIBUS + COMEM_DA_OFFSET(addr))]; | ||
536 | |||
537 | if (pci_byteswap) | ||
538 | val = (val << 24) | ((val & 0x0000ff00) << 8) | | ||
539 | ((val & 0x00ff0000) >> 8) | (val >> 24); | ||
540 | |||
541 | #ifdef DEBUGIO | ||
542 | printk(KERN_DEBUG "=%08x\n", val); | ||
543 | #endif | ||
544 | return(val); | ||
545 | } | ||
546 | |||
547 | /*****************************************************************************/ | ||
548 | |||
549 | void pci_outsb(void *addr, void *buf, int len) | ||
550 | { | ||
551 | volatile unsigned long *rp; | ||
552 | volatile unsigned char *bp; | ||
553 | unsigned char *dp = (unsigned char *) buf; | ||
554 | unsigned int a = (unsigned int) addr; | ||
555 | |||
556 | #ifdef DEBUGIO | ||
557 | printk(KERN_DEBUG "pci_outsb(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len); | ||
558 | #endif | ||
559 | |||
560 | rp = (volatile unsigned long *) COMEM_BASE; | ||
561 | rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IOWR | COMEM_DA_ADDR(a); | ||
562 | |||
563 | a = (a & ~0x3) + (~a & 0x03); | ||
564 | bp = (volatile unsigned char *) | ||
565 | (COMEM_BASE + COMEM_PCIBUS + COMEM_DA_OFFSET(a)); | ||
566 | |||
567 | while (len--) | ||
568 | *bp = *dp++; | ||
569 | } | ||
570 | |||
571 | /*****************************************************************************/ | ||
572 | |||
573 | void pci_outsw(void *addr, void *buf, int len) | ||
574 | { | ||
575 | volatile unsigned long *rp; | ||
576 | volatile unsigned short *wp; | ||
577 | unsigned short w, *dp = (unsigned short *) buf; | ||
578 | unsigned int a = (unsigned int) addr; | ||
579 | |||
580 | #ifdef DEBUGIO | ||
581 | printk(KERN_DEBUG "pci_outsw(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len); | ||
582 | #endif | ||
583 | |||
584 | rp = (volatile unsigned long *) COMEM_BASE; | ||
585 | rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IOWR | COMEM_DA_ADDR(a); | ||
586 | |||
587 | a = (a & ~0x3) + (~a & 0x2); | ||
588 | wp = (volatile unsigned short *) | ||
589 | (COMEM_BASE + COMEM_PCIBUS + COMEM_DA_OFFSET(a)); | ||
590 | |||
591 | while (len--) { | ||
592 | w = *dp++; | ||
593 | if (pci_byteswap) | ||
594 | w = ((w & 0xff) << 8) | ((w >> 8) & 0xff); | ||
595 | *wp = w; | ||
596 | } | ||
597 | } | ||
598 | |||
599 | /*****************************************************************************/ | ||
600 | |||
601 | void pci_outsl(void *addr, void *buf, int len) | ||
602 | { | ||
603 | volatile unsigned long *rp; | ||
604 | volatile unsigned long *lp; | ||
605 | unsigned long l, *dp = (unsigned long *) buf; | ||
606 | unsigned int a = (unsigned int) addr; | ||
607 | |||
608 | #ifdef DEBUGIO | ||
609 | printk(KERN_DEBUG "pci_outsl(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len); | ||
610 | #endif | ||
611 | |||
612 | rp = (volatile unsigned long *) COMEM_BASE; | ||
613 | rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IOWR | COMEM_DA_ADDR(a); | ||
614 | |||
615 | lp = (volatile unsigned long *) | ||
616 | (COMEM_BASE + COMEM_PCIBUS + COMEM_DA_OFFSET(a)); | ||
617 | |||
618 | while (len--) { | ||
619 | l = *dp++; | ||
620 | if (pci_byteswap) | ||
621 | l = (l << 24) | ((l & 0x0000ff00) << 8) | | ||
622 | ((l & 0x00ff0000) >> 8) | (l >> 24); | ||
623 | *lp = l; | ||
624 | } | ||
625 | } | ||
626 | |||
627 | /*****************************************************************************/ | ||
628 | |||
629 | void pci_insb(void *addr, void *buf, int len) | ||
630 | { | ||
631 | volatile unsigned long *rp; | ||
632 | volatile unsigned char *bp; | ||
633 | unsigned char *dp = (unsigned char *) buf; | ||
634 | unsigned int a = (unsigned int) addr; | ||
635 | |||
636 | #ifdef DEBUGIO | ||
637 | printk(KERN_DEBUG "pci_insb(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len); | ||
638 | #endif | ||
639 | |||
640 | rp = (volatile unsigned long *) COMEM_BASE; | ||
641 | rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IORD | COMEM_DA_ADDR(a); | ||
642 | |||
643 | a = (a & ~0x3) + (~a & 0x03); | ||
644 | bp = (volatile unsigned char *) | ||
645 | (COMEM_BASE + COMEM_PCIBUS + COMEM_DA_OFFSET(a)); | ||
646 | |||
647 | while (len--) | ||
648 | *dp++ = *bp; | ||
649 | } | ||
650 | |||
651 | /*****************************************************************************/ | ||
652 | |||
653 | void pci_insw(void *addr, void *buf, int len) | ||
654 | { | ||
655 | volatile unsigned long *rp; | ||
656 | volatile unsigned short *wp; | ||
657 | unsigned short w, *dp = (unsigned short *) buf; | ||
658 | unsigned int a = (unsigned int) addr; | ||
659 | |||
660 | #ifdef DEBUGIO | ||
661 | printk(KERN_DEBUG "pci_insw(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len); | ||
662 | #endif | ||
663 | |||
664 | rp = (volatile unsigned long *) COMEM_BASE; | ||
665 | rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IORD | COMEM_DA_ADDR(a); | ||
666 | |||
667 | a = (a & ~0x3) + (~a & 0x2); | ||
668 | wp = (volatile unsigned short *) | ||
669 | (COMEM_BASE + COMEM_PCIBUS + COMEM_DA_OFFSET(a)); | ||
670 | |||
671 | while (len--) { | ||
672 | w = *wp; | ||
673 | if (pci_byteswap) | ||
674 | w = ((w & 0xff) << 8) | ((w >> 8) & 0xff); | ||
675 | *dp++ = w; | ||
676 | } | ||
677 | } | ||
678 | |||
679 | /*****************************************************************************/ | ||
680 | |||
681 | void pci_insl(void *addr, void *buf, int len) | ||
682 | { | ||
683 | volatile unsigned long *rp; | ||
684 | volatile unsigned long *lp; | ||
685 | unsigned long l, *dp = (unsigned long *) buf; | ||
686 | unsigned int a = (unsigned int) addr; | ||
687 | |||
688 | #ifdef DEBUGIO | ||
689 | printk(KERN_DEBUG "pci_insl(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len); | ||
690 | #endif | ||
691 | |||
692 | rp = (volatile unsigned long *) COMEM_BASE; | ||
693 | rp[LREG(COMEM_DAHBASE)] = COMEM_DA_IORD | COMEM_DA_ADDR(a); | ||
694 | |||
695 | lp = (volatile unsigned long *) | ||
696 | (COMEM_BASE + COMEM_PCIBUS + COMEM_DA_OFFSET(a)); | ||
697 | |||
698 | while (len--) { | ||
699 | l = *lp; | ||
700 | if (pci_byteswap) | ||
701 | l = (l << 24) | ((l & 0x0000ff00) << 8) | | ||
702 | ((l & 0x00ff0000) >> 8) | (l >> 24); | ||
703 | *dp++ = l; | ||
704 | } | ||
705 | } | ||
706 | |||
707 | /*****************************************************************************/ | ||
708 | |||
709 | struct pci_localirqlist { | ||
710 | void (*handler)(int, void *, struct pt_regs *); | ||
711 | const char *device; | ||
712 | void *dev_id; | ||
713 | }; | ||
714 | |||
715 | struct pci_localirqlist pci_irqlist[COMEM_MAXPCI]; | ||
716 | |||
717 | /*****************************************************************************/ | ||
718 | |||
719 | int pci_request_irq(unsigned int irq, | ||
720 | void (*handler)(int, void *, struct pt_regs *), | ||
721 | unsigned long flags, const char *device, void *dev_id) | ||
722 | { | ||
723 | int i; | ||
724 | |||
725 | #ifdef DEBUGIO | ||
726 | printk(KERN_DEBUG "pci_request_irq(irq=%d,handler=%x,flags=%x,device=%s," | ||
727 | "dev_id=%x)\n", irq, (int) handler, (int) flags, device, | ||
728 | (int) dev_id); | ||
729 | #endif | ||
730 | |||
731 | /* Check if this interrupt handler is already lodged */ | ||
732 | for (i = 0; (i < COMEM_MAXPCI); i++) { | ||
733 | if (pci_irqlist[i].handler == handler) | ||
734 | return(0); | ||
735 | } | ||
736 | |||
737 | /* Find a free spot to put this handler */ | ||
738 | for (i = 0; (i < COMEM_MAXPCI); i++) { | ||
739 | if (pci_irqlist[i].handler == 0) { | ||
740 | pci_irqlist[i].handler = handler; | ||
741 | pci_irqlist[i].device = device; | ||
742 | pci_irqlist[i].dev_id = dev_id; | ||
743 | return(0); | ||
744 | } | ||
745 | } | ||
746 | |||
747 | /* Couldn't fit?? */ | ||
748 | return(1); | ||
749 | } | ||
750 | |||
751 | /*****************************************************************************/ | ||
752 | |||
753 | void pci_free_irq(unsigned int irq, void *dev_id) | ||
754 | { | ||
755 | int i; | ||
756 | |||
757 | #ifdef DEBUGIO | ||
758 | printk(KERN_DEBUG "pci_free_irq(irq=%d,dev_id=%x)\n", irq, (int) dev_id); | ||
759 | #endif | ||
760 | |||
761 | if (dev_id == (void *) NULL) | ||
762 | return; | ||
763 | |||
764 | /* Check if this interrupt handler is lodged */ | ||
765 | for (i = 0; (i < COMEM_MAXPCI); i++) { | ||
766 | if (pci_irqlist[i].dev_id == dev_id) { | ||
767 | pci_irqlist[i].handler = NULL; | ||
768 | pci_irqlist[i].device = NULL; | ||
769 | pci_irqlist[i].dev_id = NULL; | ||
770 | break; | ||
771 | } | ||
772 | } | ||
773 | } | ||
774 | |||
775 | /*****************************************************************************/ | ||
776 | |||
777 | void pci_interrupt(int irq, void *id, struct pt_regs *fp) | ||
778 | { | ||
779 | int i; | ||
780 | |||
781 | #ifdef DEBUGIO | ||
782 | printk(KERN_DEBUG "pci_interrupt(irq=%d,id=%x,fp=%x)\n", irq, (int) id, (int) fp); | ||
783 | #endif | ||
784 | |||
785 | for (i = 0; (i < COMEM_MAXPCI); i++) { | ||
786 | if (pci_irqlist[i].handler) | ||
787 | (*pci_irqlist[i].handler)(irq,pci_irqlist[i].dev_id,fp); | ||
788 | } | ||
789 | } | ||
790 | |||
791 | /*****************************************************************************/ | ||
792 | |||
793 | /* | ||
794 | * The shared memory region is broken up into contiguous 512 byte | ||
795 | * regions for easy allocation... This is not an optimal solution | ||
796 | * but it makes allocation and freeing regions really easy. | ||
797 | */ | ||
798 | |||
799 | #define PCI_MEMSLOTSIZE 512 | ||
800 | #define PCI_MEMSLOTS (COMEM_SHMEMSIZE / PCI_MEMSLOTSIZE) | ||
801 | |||
802 | char pci_shmemmap[PCI_MEMSLOTS]; | ||
803 | |||
804 | |||
805 | void *pci_bmalloc(int size) | ||
806 | { | ||
807 | int i, j, nrslots; | ||
808 | |||
809 | #ifdef DEBUGIO | ||
810 | printk(KERN_DEBUG "pci_bmalloc(size=%d)\n", size); | ||
811 | #endif | ||
812 | |||
813 | if (size <= 0) | ||
814 | return((void *) NULL); | ||
815 | |||
816 | nrslots = (size - 1) / PCI_MEMSLOTSIZE; | ||
817 | |||
818 | for (i = 0; (i < (PCI_MEMSLOTS-nrslots)); i++) { | ||
819 | if (pci_shmemmap[i] == 0) { | ||
820 | for (j = i+1; (j < (i+nrslots)); j++) { | ||
821 | if (pci_shmemmap[j]) | ||
822 | goto restart; | ||
823 | } | ||
824 | |||
825 | for (j = i; (j <= i+nrslots); j++) | ||
826 | pci_shmemmap[j] = 1; | ||
827 | break; | ||
828 | } | ||
829 | restart: | ||
830 | } | ||
831 | |||
832 | return((void *) (COMEM_BASE + COMEM_SHMEM + (i * PCI_MEMSLOTSIZE))); | ||
833 | } | ||
834 | |||
835 | /*****************************************************************************/ | ||
836 | |||
837 | void pci_bmfree(void *mp, int size) | ||
838 | { | ||
839 | int i, j, nrslots; | ||
840 | |||
841 | #ifdef DEBUGIO | ||
842 | printk(KERN_DEBUG "pci_bmfree(mp=%x,size=%d)\n", (int) mp, size); | ||
843 | #endif | ||
844 | |||
845 | nrslots = size / PCI_MEMSLOTSIZE; | ||
846 | i = (((unsigned long) mp) - (COMEM_BASE + COMEM_SHMEM)) / | ||
847 | PCI_MEMSLOTSIZE; | ||
848 | |||
849 | for (j = i; (j < (i+nrslots)); j++) | ||
850 | pci_shmemmap[j] = 0; | ||
851 | } | ||
852 | |||
853 | /*****************************************************************************/ | ||
854 | |||
855 | unsigned long pci_virt_to_bus(volatile void *address) | ||
856 | { | ||
857 | unsigned long l; | ||
858 | |||
859 | #ifdef DEBUGIO | ||
860 | printk(KERN_DEBUG "pci_virt_to_bus(address=%x)", (int) address); | ||
861 | #endif | ||
862 | |||
863 | l = ((unsigned long) address) - COMEM_BASE; | ||
864 | #ifdef DEBUGIO | ||
865 | printk(KERN_DEBUG "=%x\n", (int) (l+pci_shmemaddr)); | ||
866 | #endif | ||
867 | return(l + pci_shmemaddr); | ||
868 | } | ||
869 | |||
870 | /*****************************************************************************/ | ||
871 | |||
872 | void *pci_bus_to_virt(unsigned long address) | ||
873 | { | ||
874 | unsigned long l; | ||
875 | |||
876 | #ifdef DEBUGIO | ||
877 | printk(KERN_DEBUG "pci_bus_to_virt(address=%x)", (int) address); | ||
878 | #endif | ||
879 | |||
880 | l = address - pci_shmemaddr; | ||
881 | #ifdef DEBUGIO | ||
882 | printk(KERN_DEBUG "=%x\n", (int) (address + COMEM_BASE)); | ||
883 | #endif | ||
884 | return((void *) (address + COMEM_BASE)); | ||
885 | } | ||
886 | |||
887 | /*****************************************************************************/ | ||
888 | |||
889 | void pci_bmcpyto(void *dst, void *src, int len) | ||
890 | { | ||
891 | unsigned long *dp, *sp, val; | ||
892 | unsigned char *dcp, *scp; | ||
893 | int i, j; | ||
894 | |||
895 | #ifdef DEBUGIO | ||
896 | printk(KERN_DEBUG "pci_bmcpyto(dst=%x,src=%x,len=%d)\n", (int)dst, (int)src, len); | ||
897 | #endif | ||
898 | |||
899 | dp = (unsigned long *) dst; | ||
900 | sp = (unsigned long *) src; | ||
901 | i = len >> 2; | ||
902 | |||
903 | #if 0 | ||
904 | printk(KERN_INFO "DATA:"); | ||
905 | scp = (unsigned char *) sp; | ||
906 | for (i = 0; (i < len); i++) { | ||
907 | if ((i % 16) == 0) printk(KERN_INFO "\n%04x: ", i); | ||
908 | printk(KERN_INFO "%02x ", *scp++); | ||
909 | } | ||
910 | printk(KERN_INFO "\n"); | ||
911 | #endif | ||
912 | |||
913 | for (j = 0; (i >= 0); i--, j++) { | ||
914 | val = *sp++; | ||
915 | val = (val << 24) | ((val & 0x0000ff00) << 8) | | ||
916 | ((val & 0x00ff0000) >> 8) | (val >> 24); | ||
917 | *dp++ = val; | ||
918 | } | ||
919 | |||
920 | if (len & 0x3) { | ||
921 | dcp = (unsigned char *) dp; | ||
922 | scp = ((unsigned char *) sp) + 3; | ||
923 | for (i = 0; (i < (len & 0x3)); i++) | ||
924 | *dcp++ = *scp--; | ||
925 | } | ||
926 | } | ||
927 | |||
928 | /*****************************************************************************/ | ||
929 | |||
930 | void pci_bmcpyfrom(void *dst, void *src, int len) | ||
931 | { | ||
932 | unsigned long *dp, *sp, val; | ||
933 | unsigned char *dcp, *scp; | ||
934 | int i; | ||
935 | |||
936 | #ifdef DEBUGIO | ||
937 | printk(KERN_DEBUG "pci_bmcpyfrom(dst=%x,src=%x,len=%d)\n",(int)dst,(int)src,len); | ||
938 | #endif | ||
939 | |||
940 | dp = (unsigned long *) dst; | ||
941 | sp = (unsigned long *) src; | ||
942 | i = len >> 2; | ||
943 | |||
944 | for (; (i >= 0); i--) { | ||
945 | val = *sp++; | ||
946 | val = (val << 24) | ((val & 0x0000ff00) << 8) | | ||
947 | ((val & 0x00ff0000) >> 8) | (val >> 24); | ||
948 | *dp++ = val; | ||
949 | } | ||
950 | |||
951 | if (len & 0x3) { | ||
952 | dcp = ((unsigned char *) dp) + 3; | ||
953 | scp = (unsigned char *) sp; | ||
954 | for (i = 0; (i < (len & 0x3)); i++) | ||
955 | *dcp++ = *scp--; | ||
956 | } | ||
957 | |||
958 | #if 0 | ||
959 | printk(KERN_INFO "DATA:"); | ||
960 | dcp = (unsigned char *) dst; | ||
961 | for (i = 0; (i < len); i++) { | ||
962 | if ((i % 16) == 0) printk(KERN_INFO "\n%04x: ", i); | ||
963 | printk(KERN_INFO "%02x ", *dcp++); | ||
964 | } | ||
965 | printk(KERN_INFO "\n"); | ||
966 | #endif | ||
967 | } | ||
968 | |||
969 | /*****************************************************************************/ | ||
970 | |||
971 | void *pci_alloc_consistent(struct pci_dev *dev, size_t size, dma_addr_t *dma_addr) | ||
972 | { | ||
973 | void *mp; | ||
974 | if ((mp = pci_bmalloc(size)) != NULL) { | ||
975 | dma_addr = mp - (COMEM_BASE + COMEM_SHMEM); | ||
976 | return(mp); | ||
977 | } | ||
978 | *dma_addr = (dma_addr_t) NULL; | ||
979 | return(NULL); | ||
980 | } | ||
981 | |||
982 | /*****************************************************************************/ | ||
983 | |||
984 | void pci_free_consistent(struct pci_dev *dev, size_t size, void *cpu_addr, dma_addr_t dma_addr) | ||
985 | { | ||
986 | pci_bmfree(cpu_addr, size); | ||
987 | } | ||
988 | |||
989 | /*****************************************************************************/ | ||
diff --git a/arch/m68knommu/kernel/dma.c b/arch/m68knommu/kernel/dma.c new file mode 100644 index 000000000000..14b19c4161f4 --- /dev/null +++ b/arch/m68knommu/kernel/dma.c | |||
@@ -0,0 +1,36 @@ | |||
1 | /* | ||
2 | * Dynamic DMA mapping support. | ||
3 | * | ||
4 | * We never have any address translations to worry about, so this | ||
5 | * is just alloc/free. | ||
6 | */ | ||
7 | |||
8 | #include <linux/types.h> | ||
9 | #include <linux/mm.h> | ||
10 | #include <linux/string.h> | ||
11 | #include <linux/pci.h> | ||
12 | #include <asm/io.h> | ||
13 | |||
14 | void *dma_alloc_coherent(struct device *dev, size_t size, | ||
15 | dma_addr_t *dma_handle, int gfp) | ||
16 | { | ||
17 | void *ret; | ||
18 | /* ignore region specifiers */ | ||
19 | gfp &= ~(__GFP_DMA | __GFP_HIGHMEM); | ||
20 | |||
21 | if (dev == NULL || (*dev->dma_mask < 0xffffffff)) | ||
22 | gfp |= GFP_DMA; | ||
23 | ret = (void *)__get_free_pages(gfp, get_order(size)); | ||
24 | |||
25 | if (ret != NULL) { | ||
26 | memset(ret, 0, size); | ||
27 | *dma_handle = virt_to_phys(ret); | ||
28 | } | ||
29 | return ret; | ||
30 | } | ||
31 | |||
32 | void dma_free_coherent(struct device *dev, size_t size, | ||
33 | void *vaddr, dma_addr_t dma_handle) | ||
34 | { | ||
35 | free_pages((unsigned long)vaddr, get_order(size)); | ||
36 | } | ||
diff --git a/arch/m68knommu/kernel/entry.S b/arch/m68knommu/kernel/entry.S new file mode 100644 index 000000000000..8b1f47239b9a --- /dev/null +++ b/arch/m68knommu/kernel/entry.S | |||
@@ -0,0 +1,143 @@ | |||
1 | /* | ||
2 | * linux/arch/m68knommu/kernel/entry.S | ||
3 | * | ||
4 | * Copyright (C) 1999-2002, Greg Ungerer (gerg@snapgear.com) | ||
5 | * Copyright (C) 1998 D. Jeff Dionne <jeff@lineo.ca>, | ||
6 | * Kenneth Albanowski <kjahds@kjahds.com>, | ||
7 | * Copyright (C) 2000 Lineo Inc. (www.lineo.com) | ||
8 | * | ||
9 | * Based on: | ||
10 | * | ||
11 | * linux/arch/m68k/kernel/entry.S | ||
12 | * | ||
13 | * Copyright (C) 1991, 1992 Linus Torvalds | ||
14 | * | ||
15 | * This file is subject to the terms and conditions of the GNU General Public | ||
16 | * License. See the file README.legal in the main directory of this archive | ||
17 | * for more details. | ||
18 | * | ||
19 | * Linux/m68k support by Hamish Macdonald | ||
20 | * | ||
21 | * 68060 fixes by Jesper Skov | ||
22 | * ColdFire support by Greg Ungerer (gerg@snapgear.com) | ||
23 | * 5307 fixes by David W. Miller | ||
24 | * linux 2.4 support David McCullough <davidm@snapgear.com> | ||
25 | */ | ||
26 | |||
27 | #include <linux/config.h> | ||
28 | #include <linux/sys.h> | ||
29 | #include <linux/linkage.h> | ||
30 | #include <asm/thread_info.h> | ||
31 | #include <asm/errno.h> | ||
32 | #include <asm/setup.h> | ||
33 | #include <asm/segment.h> | ||
34 | #include <asm/asm-offsets.h> | ||
35 | #include <asm/entry.h> | ||
36 | |||
37 | .text | ||
38 | |||
39 | .globl buserr | ||
40 | .globl trap | ||
41 | .globl ret_from_exception | ||
42 | .globl ret_from_signal | ||
43 | .globl sys_fork | ||
44 | .globl sys_clone | ||
45 | .globl sys_vfork | ||
46 | |||
47 | ENTRY(buserr) | ||
48 | SAVE_ALL | ||
49 | moveq #-1,%d0 | ||
50 | movel %d0,%sp@(PT_ORIG_D0) | ||
51 | movel %sp,%sp@- /* stack frame pointer argument */ | ||
52 | jsr buserr_c | ||
53 | addql #4,%sp | ||
54 | jra ret_from_exception | ||
55 | |||
56 | ENTRY(trap) | ||
57 | SAVE_ALL | ||
58 | moveq #-1,%d0 | ||
59 | movel %d0,%sp@(PT_ORIG_D0) | ||
60 | movel %sp,%sp@- /* stack frame pointer argument */ | ||
61 | jsr trap_c | ||
62 | addql #4,%sp | ||
63 | jra ret_from_exception | ||
64 | |||
65 | #ifdef TRAP_DBG_INTERRUPT | ||
66 | |||
67 | .globl dbginterrupt | ||
68 | ENTRY(dbginterrupt) | ||
69 | SAVE_ALL | ||
70 | moveq #-1,%d0 | ||
71 | movel %d0,%sp@(PT_ORIG_D0) | ||
72 | movel %sp,%sp@- /* stack frame pointer argument */ | ||
73 | jsr dbginterrupt_c | ||
74 | addql #4,%sp | ||
75 | jra ret_from_exception | ||
76 | #endif | ||
77 | |||
78 | ENTRY(reschedule) | ||
79 | /* save top of frame */ | ||
80 | pea %sp@ | ||
81 | jbsr set_esp0 | ||
82 | addql #4,%sp | ||
83 | pea ret_from_exception | ||
84 | jmp schedule | ||
85 | |||
86 | ENTRY(ret_from_fork) | ||
87 | movel %d1,%sp@- | ||
88 | jsr schedule_tail | ||
89 | addql #4,%sp | ||
90 | jra ret_from_exception | ||
91 | |||
92 | ENTRY(sys_fork) | ||
93 | SAVE_SWITCH_STACK | ||
94 | pea %sp@(SWITCH_STACK_SIZE) | ||
95 | jbsr m68k_fork | ||
96 | addql #4,%sp | ||
97 | RESTORE_SWITCH_STACK | ||
98 | rts | ||
99 | |||
100 | ENTRY(sys_vfork) | ||
101 | SAVE_SWITCH_STACK | ||
102 | pea %sp@(SWITCH_STACK_SIZE) | ||
103 | jbsr m68k_vfork | ||
104 | addql #4,%sp | ||
105 | RESTORE_SWITCH_STACK | ||
106 | rts | ||
107 | |||
108 | ENTRY(sys_clone) | ||
109 | SAVE_SWITCH_STACK | ||
110 | pea %sp@(SWITCH_STACK_SIZE) | ||
111 | jbsr m68k_clone | ||
112 | addql #4,%sp | ||
113 | RESTORE_SWITCH_STACK | ||
114 | rts | ||
115 | |||
116 | ENTRY(sys_sigsuspend) | ||
117 | SAVE_SWITCH_STACK | ||
118 | pea %sp@(SWITCH_STACK_SIZE) | ||
119 | jbsr do_sigsuspend | ||
120 | addql #4,%sp | ||
121 | RESTORE_SWITCH_STACK | ||
122 | rts | ||
123 | |||
124 | ENTRY(sys_rt_sigsuspend) | ||
125 | SAVE_SWITCH_STACK | ||
126 | pea %sp@(SWITCH_STACK_SIZE) | ||
127 | jbsr do_rt_sigsuspend | ||
128 | addql #4,%sp | ||
129 | RESTORE_SWITCH_STACK | ||
130 | rts | ||
131 | |||
132 | ENTRY(sys_sigreturn) | ||
133 | SAVE_SWITCH_STACK | ||
134 | jbsr do_sigreturn | ||
135 | RESTORE_SWITCH_STACK | ||
136 | rts | ||
137 | |||
138 | ENTRY(sys_rt_sigreturn) | ||
139 | SAVE_SWITCH_STACK | ||
140 | jbsr do_rt_sigreturn | ||
141 | RESTORE_SWITCH_STACK | ||
142 | rts | ||
143 | |||
diff --git a/arch/m68knommu/kernel/init_task.c b/arch/m68knommu/kernel/init_task.c new file mode 100644 index 000000000000..3897043a126a --- /dev/null +++ b/arch/m68knommu/kernel/init_task.c | |||
@@ -0,0 +1,43 @@ | |||
1 | /* | ||
2 | * linux/arch/m68knommu/kernel/init_task.c | ||
3 | */ | ||
4 | #include <linux/mm.h> | ||
5 | #include <linux/module.h> | ||
6 | #include <linux/sched.h> | ||
7 | #include <linux/init.h> | ||
8 | #include <linux/init_task.h> | ||
9 | #include <linux/fs.h> | ||
10 | #include <linux/mqueue.h> | ||
11 | |||
12 | #include <asm/uaccess.h> | ||
13 | #include <asm/pgtable.h> | ||
14 | |||
15 | static struct fs_struct init_fs = INIT_FS; | ||
16 | static struct files_struct init_files = INIT_FILES; | ||
17 | static struct signal_struct init_signals = INIT_SIGNALS(init_signals); | ||
18 | static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand); | ||
19 | struct mm_struct init_mm = INIT_MM(init_mm); | ||
20 | |||
21 | EXPORT_SYMBOL(init_mm); | ||
22 | |||
23 | /* | ||
24 | * Initial task structure. | ||
25 | * | ||
26 | * All other task structs will be allocated on slabs in fork.c | ||
27 | */ | ||
28 | __asm__(".align 4"); | ||
29 | struct task_struct init_task = INIT_TASK(init_task); | ||
30 | |||
31 | EXPORT_SYMBOL(init_task); | ||
32 | |||
33 | /* | ||
34 | * Initial thread structure. | ||
35 | * | ||
36 | * We need to make sure that this is 8192-byte aligned due to the | ||
37 | * way process stacks are handled. This is done by having a special | ||
38 | * "init_task" linker map entry.. | ||
39 | */ | ||
40 | union thread_union init_thread_union | ||
41 | __attribute__((__section__(".data.init_task"))) = | ||
42 | { INIT_THREAD_INFO(init_task) }; | ||
43 | |||
diff --git a/arch/m68knommu/kernel/m68k_ksyms.c b/arch/m68knommu/kernel/m68k_ksyms.c new file mode 100644 index 000000000000..e93a5ad56496 --- /dev/null +++ b/arch/m68knommu/kernel/m68k_ksyms.c | |||
@@ -0,0 +1,104 @@ | |||
1 | #include <linux/module.h> | ||
2 | #include <linux/linkage.h> | ||
3 | #include <linux/sched.h> | ||
4 | #include <linux/string.h> | ||
5 | #include <linux/mm.h> | ||
6 | #include <linux/user.h> | ||
7 | #include <linux/elfcore.h> | ||
8 | #include <linux/in6.h> | ||
9 | #include <linux/interrupt.h> | ||
10 | #include <linux/config.h> | ||
11 | |||
12 | #include <asm/setup.h> | ||
13 | #include <asm/machdep.h> | ||
14 | #include <asm/pgalloc.h> | ||
15 | #include <asm/irq.h> | ||
16 | #include <asm/io.h> | ||
17 | #include <asm/semaphore.h> | ||
18 | #include <asm/checksum.h> | ||
19 | #include <asm/current.h> | ||
20 | |||
21 | extern void dump_thread(struct pt_regs *, struct user *); | ||
22 | extern int dump_fpu(struct pt_regs *, elf_fpregset_t *); | ||
23 | |||
24 | /* platform dependent support */ | ||
25 | |||
26 | EXPORT_SYMBOL(__ioremap); | ||
27 | EXPORT_SYMBOL(iounmap); | ||
28 | EXPORT_SYMBOL(dump_fpu); | ||
29 | EXPORT_SYMBOL(dump_thread); | ||
30 | EXPORT_SYMBOL(strnlen); | ||
31 | EXPORT_SYMBOL(strrchr); | ||
32 | EXPORT_SYMBOL(strstr); | ||
33 | EXPORT_SYMBOL(strchr); | ||
34 | EXPORT_SYMBOL(strcat); | ||
35 | EXPORT_SYMBOL(strlen); | ||
36 | EXPORT_SYMBOL(strcmp); | ||
37 | EXPORT_SYMBOL(strncmp); | ||
38 | |||
39 | EXPORT_SYMBOL(ip_fast_csum); | ||
40 | |||
41 | EXPORT_SYMBOL(mach_enable_irq); | ||
42 | EXPORT_SYMBOL(mach_disable_irq); | ||
43 | EXPORT_SYMBOL(kernel_thread); | ||
44 | |||
45 | /* Networking helper routines. */ | ||
46 | EXPORT_SYMBOL(csum_partial_copy); | ||
47 | |||
48 | /* The following are special because they're not called | ||
49 | explicitly (the C compiler generates them). Fortunately, | ||
50 | their interface isn't gonna change any time soon now, so | ||
51 | it's OK to leave it out of version control. */ | ||
52 | EXPORT_SYMBOL(memcpy); | ||
53 | EXPORT_SYMBOL(memset); | ||
54 | EXPORT_SYMBOL(memcmp); | ||
55 | EXPORT_SYMBOL(memscan); | ||
56 | EXPORT_SYMBOL(memmove); | ||
57 | |||
58 | EXPORT_SYMBOL(__down_failed); | ||
59 | EXPORT_SYMBOL(__down_failed_interruptible); | ||
60 | EXPORT_SYMBOL(__down_failed_trylock); | ||
61 | EXPORT_SYMBOL(__up_wakeup); | ||
62 | |||
63 | EXPORT_SYMBOL(get_wchan); | ||
64 | |||
65 | /* | ||
66 | * libgcc functions - functions that are used internally by the | ||
67 | * compiler... (prototypes are not correct though, but that | ||
68 | * doesn't really matter since they're not versioned). | ||
69 | */ | ||
70 | extern void __ashldi3(void); | ||
71 | extern void __ashrdi3(void); | ||
72 | extern void __divsi3(void); | ||
73 | extern void __lshrdi3(void); | ||
74 | extern void __modsi3(void); | ||
75 | extern void __muldi3(void); | ||
76 | extern void __mulsi3(void); | ||
77 | extern void __udivsi3(void); | ||
78 | extern void __umodsi3(void); | ||
79 | |||
80 | /* gcc lib functions */ | ||
81 | EXPORT_SYMBOL(__ashldi3); | ||
82 | EXPORT_SYMBOL(__ashrdi3); | ||
83 | EXPORT_SYMBOL(__divsi3); | ||
84 | EXPORT_SYMBOL(__lshrdi3); | ||
85 | EXPORT_SYMBOL(__modsi3); | ||
86 | EXPORT_SYMBOL(__muldi3); | ||
87 | EXPORT_SYMBOL(__mulsi3); | ||
88 | EXPORT_SYMBOL(__udivsi3); | ||
89 | EXPORT_SYMBOL(__umodsi3); | ||
90 | |||
91 | EXPORT_SYMBOL(is_in_rom); | ||
92 | |||
93 | #ifdef CONFIG_COLDFIRE | ||
94 | extern unsigned int *dma_device_address; | ||
95 | extern unsigned long dma_base_addr, _ramend; | ||
96 | EXPORT_SYMBOL(dma_base_addr); | ||
97 | EXPORT_SYMBOL(dma_device_address); | ||
98 | EXPORT_SYMBOL(_ramend); | ||
99 | |||
100 | extern asmlinkage void trap(void); | ||
101 | extern void *_ramvec; | ||
102 | EXPORT_SYMBOL(trap); | ||
103 | EXPORT_SYMBOL(_ramvec); | ||
104 | #endif /* CONFIG_COLDFIRE */ | ||
diff --git a/arch/m68knommu/kernel/module.c b/arch/m68knommu/kernel/module.c new file mode 100644 index 000000000000..3b1a2ff61ddc --- /dev/null +++ b/arch/m68knommu/kernel/module.c | |||
@@ -0,0 +1,128 @@ | |||
1 | #include <linux/moduleloader.h> | ||
2 | #include <linux/elf.h> | ||
3 | #include <linux/vmalloc.h> | ||
4 | #include <linux/fs.h> | ||
5 | #include <linux/string.h> | ||
6 | #include <linux/kernel.h> | ||
7 | |||
8 | #if 0 | ||
9 | #define DEBUGP printk | ||
10 | #else | ||
11 | #define DEBUGP(fmt...) | ||
12 | #endif | ||
13 | |||
14 | void *module_alloc(unsigned long size) | ||
15 | { | ||
16 | if (size == 0) | ||
17 | return NULL; | ||
18 | return vmalloc(size); | ||
19 | } | ||
20 | |||
21 | |||
22 | /* Free memory returned from module_alloc */ | ||
23 | void module_free(struct module *mod, void *module_region) | ||
24 | { | ||
25 | vfree(module_region); | ||
26 | /* FIXME: If module_region == mod->init_region, trim exception | ||
27 | table entries. */ | ||
28 | } | ||
29 | |||
30 | /* We don't need anything special. */ | ||
31 | int module_frob_arch_sections(Elf_Ehdr *hdr, | ||
32 | Elf_Shdr *sechdrs, | ||
33 | char *secstrings, | ||
34 | struct module *mod) | ||
35 | { | ||
36 | return 0; | ||
37 | } | ||
38 | |||
39 | int apply_relocate(Elf32_Shdr *sechdrs, | ||
40 | const char *strtab, | ||
41 | unsigned int symindex, | ||
42 | unsigned int relsec, | ||
43 | struct module *me) | ||
44 | { | ||
45 | unsigned int i; | ||
46 | Elf32_Rel *rel = (void *)sechdrs[relsec].sh_addr; | ||
47 | Elf32_Sym *sym; | ||
48 | uint32_t *location; | ||
49 | |||
50 | DEBUGP("Applying relocate section %u to %u\n", relsec, | ||
51 | sechdrs[relsec].sh_info); | ||
52 | for (i = 0; i < sechdrs[relsec].sh_size / sizeof(*rel); i++) { | ||
53 | /* This is where to make the change */ | ||
54 | location = (void *)sechdrs[sechdrs[relsec].sh_info].sh_addr | ||
55 | + rel[i].r_offset; | ||
56 | /* This is the symbol it is referring to. Note that all | ||
57 | undefined symbols have been resolved. */ | ||
58 | sym = (Elf32_Sym *)sechdrs[symindex].sh_addr | ||
59 | + ELF32_R_SYM(rel[i].r_info); | ||
60 | |||
61 | switch (ELF32_R_TYPE(rel[i].r_info)) { | ||
62 | case R_68K_32: | ||
63 | /* We add the value into the location given */ | ||
64 | *location += sym->st_value; | ||
65 | break; | ||
66 | case R_68K_PC32: | ||
67 | /* Add the value, subtract its postition */ | ||
68 | *location += sym->st_value - (uint32_t)location; | ||
69 | break; | ||
70 | default: | ||
71 | printk(KERN_ERR "module %s: Unknown relocation: %u\n", | ||
72 | me->name, ELF32_R_TYPE(rel[i].r_info)); | ||
73 | return -ENOEXEC; | ||
74 | } | ||
75 | } | ||
76 | return 0; | ||
77 | } | ||
78 | |||
79 | int apply_relocate_add(Elf32_Shdr *sechdrs, | ||
80 | const char *strtab, | ||
81 | unsigned int symindex, | ||
82 | unsigned int relsec, | ||
83 | struct module *me) | ||
84 | { | ||
85 | unsigned int i; | ||
86 | Elf32_Rela *rel = (void *)sechdrs[relsec].sh_addr; | ||
87 | Elf32_Sym *sym; | ||
88 | uint32_t *location; | ||
89 | |||
90 | DEBUGP("Applying relocate_add section %u to %u\n", relsec, | ||
91 | sechdrs[relsec].sh_info); | ||
92 | for (i = 0; i < sechdrs[relsec].sh_size / sizeof(*rel); i++) { | ||
93 | /* This is where to make the change */ | ||
94 | location = (void *)sechdrs[sechdrs[relsec].sh_info].sh_addr | ||
95 | + rel[i].r_offset; | ||
96 | /* This is the symbol it is referring to. Note that all | ||
97 | undefined symbols have been resolved. */ | ||
98 | sym = (Elf32_Sym *)sechdrs[symindex].sh_addr | ||
99 | + ELF32_R_SYM(rel[i].r_info); | ||
100 | |||
101 | switch (ELF32_R_TYPE(rel[i].r_info)) { | ||
102 | case R_68K_32: | ||
103 | /* We add the value into the location given */ | ||
104 | *location = rel[i].r_addend + sym->st_value; | ||
105 | break; | ||
106 | case R_68K_PC32: | ||
107 | /* Add the value, subtract its postition */ | ||
108 | *location = rel[i].r_addend + sym->st_value - (uint32_t)location; | ||
109 | break; | ||
110 | default: | ||
111 | printk(KERN_ERR "module %s: Unknown relocation: %u\n", | ||
112 | me->name, ELF32_R_TYPE(rel[i].r_info)); | ||
113 | return -ENOEXEC; | ||
114 | } | ||
115 | } | ||
116 | return 0; | ||
117 | } | ||
118 | |||
119 | int module_finalize(const Elf_Ehdr *hdr, | ||
120 | const Elf_Shdr *sechdrs, | ||
121 | struct module *me) | ||
122 | { | ||
123 | return 0; | ||
124 | } | ||
125 | |||
126 | void module_arch_cleanup(struct module *mod) | ||
127 | { | ||
128 | } | ||
diff --git a/arch/m68knommu/kernel/process.c b/arch/m68knommu/kernel/process.c new file mode 100644 index 000000000000..2b6c9d32b7a6 --- /dev/null +++ b/arch/m68knommu/kernel/process.c | |||
@@ -0,0 +1,442 @@ | |||
1 | /* | ||
2 | * linux/arch/m68knommu/kernel/process.c | ||
3 | * | ||
4 | * Copyright (C) 1995 Hamish Macdonald | ||
5 | * | ||
6 | * 68060 fixes by Jesper Skov | ||
7 | * | ||
8 | * uClinux changes | ||
9 | * Copyright (C) 2000-2002, David McCullough <davidm@snapgear.com> | ||
10 | */ | ||
11 | |||
12 | /* | ||
13 | * This file handles the architecture-dependent parts of process handling.. | ||
14 | */ | ||
15 | |||
16 | #include <linux/config.h> | ||
17 | #include <linux/module.h> | ||
18 | #include <linux/errno.h> | ||
19 | #include <linux/sched.h> | ||
20 | #include <linux/kernel.h> | ||
21 | #include <linux/mm.h> | ||
22 | #include <linux/smp.h> | ||
23 | #include <linux/smp_lock.h> | ||
24 | #include <linux/stddef.h> | ||
25 | #include <linux/unistd.h> | ||
26 | #include <linux/ptrace.h> | ||
27 | #include <linux/slab.h> | ||
28 | #include <linux/user.h> | ||
29 | #include <linux/a.out.h> | ||
30 | #include <linux/interrupt.h> | ||
31 | #include <linux/reboot.h> | ||
32 | |||
33 | #include <asm/uaccess.h> | ||
34 | #include <asm/system.h> | ||
35 | #include <asm/traps.h> | ||
36 | #include <asm/machdep.h> | ||
37 | #include <asm/setup.h> | ||
38 | #include <asm/pgtable.h> | ||
39 | |||
40 | asmlinkage void ret_from_fork(void); | ||
41 | |||
42 | |||
43 | /* | ||
44 | * The idle loop on an m68knommu.. | ||
45 | */ | ||
46 | void default_idle(void) | ||
47 | { | ||
48 | while(1) { | ||
49 | if (need_resched()) | ||
50 | __asm__("stop #0x2000" : : : "cc"); | ||
51 | schedule(); | ||
52 | } | ||
53 | } | ||
54 | |||
55 | void (*idle)(void) = default_idle; | ||
56 | |||
57 | /* | ||
58 | * The idle thread. There's no useful work to be | ||
59 | * done, so just try to conserve power and have a | ||
60 | * low exit latency (ie sit in a loop waiting for | ||
61 | * somebody to say that they'd like to reschedule) | ||
62 | */ | ||
63 | void cpu_idle(void) | ||
64 | { | ||
65 | /* endless idle loop with no priority at all */ | ||
66 | idle(); | ||
67 | } | ||
68 | |||
69 | void machine_restart(char * __unused) | ||
70 | { | ||
71 | if (mach_reset) | ||
72 | mach_reset(); | ||
73 | for (;;); | ||
74 | } | ||
75 | |||
76 | EXPORT_SYMBOL(machine_restart); | ||
77 | |||
78 | void machine_halt(void) | ||
79 | { | ||
80 | if (mach_halt) | ||
81 | mach_halt(); | ||
82 | for (;;); | ||
83 | } | ||
84 | |||
85 | EXPORT_SYMBOL(machine_halt); | ||
86 | |||
87 | void machine_power_off(void) | ||
88 | { | ||
89 | if (mach_power_off) | ||
90 | mach_power_off(); | ||
91 | for (;;); | ||
92 | } | ||
93 | |||
94 | EXPORT_SYMBOL(machine_power_off); | ||
95 | |||
96 | void show_regs(struct pt_regs * regs) | ||
97 | { | ||
98 | printk(KERN_NOTICE "\n"); | ||
99 | printk(KERN_NOTICE "Format %02x Vector: %04x PC: %08lx Status: %04x %s\n", | ||
100 | regs->format, regs->vector, regs->pc, regs->sr, print_tainted()); | ||
101 | printk(KERN_NOTICE "ORIG_D0: %08lx D0: %08lx A2: %08lx A1: %08lx\n", | ||
102 | regs->orig_d0, regs->d0, regs->a2, regs->a1); | ||
103 | printk(KERN_NOTICE "A0: %08lx D5: %08lx D4: %08lx\n", | ||
104 | regs->a0, regs->d5, regs->d4); | ||
105 | printk(KERN_NOTICE "D3: %08lx D2: %08lx D1: %08lx\n", | ||
106 | regs->d3, regs->d2, regs->d1); | ||
107 | if (!(regs->sr & PS_S)) | ||
108 | printk(KERN_NOTICE "USP: %08lx\n", rdusp()); | ||
109 | } | ||
110 | |||
111 | /* | ||
112 | * Create a kernel thread | ||
113 | */ | ||
114 | int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) | ||
115 | { | ||
116 | int retval; | ||
117 | long clone_arg = flags | CLONE_VM; | ||
118 | mm_segment_t fs; | ||
119 | |||
120 | fs = get_fs(); | ||
121 | set_fs(KERNEL_DS); | ||
122 | |||
123 | __asm__ __volatile__ ( | ||
124 | "movel %%sp, %%d2\n\t" | ||
125 | "movel %5, %%d1\n\t" | ||
126 | "movel %1, %%d0\n\t" | ||
127 | "trap #0\n\t" | ||
128 | "cmpl %%sp, %%d2\n\t" | ||
129 | "jeq 1f\n\t" | ||
130 | "movel %3, %%sp@-\n\t" | ||
131 | "jsr %4@\n\t" | ||
132 | "movel %2, %%d0\n\t" | ||
133 | "trap #0\n" | ||
134 | "1:\n\t" | ||
135 | "movel %%d0, %0\n" | ||
136 | : "=d" (retval) | ||
137 | : "i" (__NR_clone), | ||
138 | "i" (__NR_exit), | ||
139 | "a" (arg), | ||
140 | "a" (fn), | ||
141 | "a" (clone_arg) | ||
142 | : "cc", "%d0", "%d1", "%d2"); | ||
143 | |||
144 | set_fs(fs); | ||
145 | return retval; | ||
146 | } | ||
147 | |||
148 | void flush_thread(void) | ||
149 | { | ||
150 | #ifdef CONFIG_FPU | ||
151 | unsigned long zero = 0; | ||
152 | #endif | ||
153 | set_fs(USER_DS); | ||
154 | current->thread.fs = __USER_DS; | ||
155 | #ifdef CONFIG_FPU | ||
156 | if (!FPU_IS_EMU) | ||
157 | asm volatile (".chip 68k/68881\n\t" | ||
158 | "frestore %0@\n\t" | ||
159 | ".chip 68k" : : "a" (&zero)); | ||
160 | #endif | ||
161 | } | ||
162 | |||
163 | /* | ||
164 | * "m68k_fork()".. By the time we get here, the | ||
165 | * non-volatile registers have also been saved on the | ||
166 | * stack. We do some ugly pointer stuff here.. (see | ||
167 | * also copy_thread) | ||
168 | */ | ||
169 | |||
170 | asmlinkage int m68k_fork(struct pt_regs *regs) | ||
171 | { | ||
172 | /* fork almost works, enough to trick you into looking elsewhere :-( */ | ||
173 | return(-EINVAL); | ||
174 | } | ||
175 | |||
176 | asmlinkage int m68k_vfork(struct pt_regs *regs) | ||
177 | { | ||
178 | return do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD, rdusp(), regs, 0, NULL, NULL); | ||
179 | } | ||
180 | |||
181 | asmlinkage int m68k_clone(struct pt_regs *regs) | ||
182 | { | ||
183 | unsigned long clone_flags; | ||
184 | unsigned long newsp; | ||
185 | |||
186 | /* syscall2 puts clone_flags in d1 and usp in d2 */ | ||
187 | clone_flags = regs->d1; | ||
188 | newsp = regs->d2; | ||
189 | if (!newsp) | ||
190 | newsp = rdusp(); | ||
191 | return do_fork(clone_flags, newsp, regs, 0, NULL, NULL); | ||
192 | } | ||
193 | |||
194 | int copy_thread(int nr, unsigned long clone_flags, | ||
195 | unsigned long usp, unsigned long topstk, | ||
196 | struct task_struct * p, struct pt_regs * regs) | ||
197 | { | ||
198 | struct pt_regs * childregs; | ||
199 | struct switch_stack * childstack, *stack; | ||
200 | unsigned long stack_offset, *retp; | ||
201 | |||
202 | stack_offset = THREAD_SIZE - sizeof(struct pt_regs); | ||
203 | childregs = (struct pt_regs *) ((unsigned long) p->thread_info + stack_offset); | ||
204 | |||
205 | *childregs = *regs; | ||
206 | childregs->d0 = 0; | ||
207 | |||
208 | retp = ((unsigned long *) regs); | ||
209 | stack = ((struct switch_stack *) retp) - 1; | ||
210 | |||
211 | childstack = ((struct switch_stack *) childregs) - 1; | ||
212 | *childstack = *stack; | ||
213 | childstack->retpc = (unsigned long)ret_from_fork; | ||
214 | |||
215 | p->thread.usp = usp; | ||
216 | p->thread.ksp = (unsigned long)childstack; | ||
217 | /* | ||
218 | * Must save the current SFC/DFC value, NOT the value when | ||
219 | * the parent was last descheduled - RGH 10-08-96 | ||
220 | */ | ||
221 | p->thread.fs = get_fs().seg; | ||
222 | |||
223 | #ifdef CONFIG_FPU | ||
224 | if (!FPU_IS_EMU) { | ||
225 | /* Copy the current fpu state */ | ||
226 | asm volatile ("fsave %0" : : "m" (p->thread.fpstate[0]) : "memory"); | ||
227 | |||
228 | if (p->thread.fpstate[0]) | ||
229 | asm volatile ("fmovemx %/fp0-%/fp7,%0\n\t" | ||
230 | "fmoveml %/fpiar/%/fpcr/%/fpsr,%1" | ||
231 | : : "m" (p->thread.fp[0]), "m" (p->thread.fpcntl[0]) | ||
232 | : "memory"); | ||
233 | /* Restore the state in case the fpu was busy */ | ||
234 | asm volatile ("frestore %0" : : "m" (p->thread.fpstate[0])); | ||
235 | } | ||
236 | #endif | ||
237 | |||
238 | return 0; | ||
239 | } | ||
240 | |||
241 | /* Fill in the fpu structure for a core dump. */ | ||
242 | |||
243 | int dump_fpu(struct pt_regs *regs, struct user_m68kfp_struct *fpu) | ||
244 | { | ||
245 | #ifdef CONFIG_FPU | ||
246 | char fpustate[216]; | ||
247 | |||
248 | if (FPU_IS_EMU) { | ||
249 | int i; | ||
250 | |||
251 | memcpy(fpu->fpcntl, current->thread.fpcntl, 12); | ||
252 | memcpy(fpu->fpregs, current->thread.fp, 96); | ||
253 | /* Convert internal fpu reg representation | ||
254 | * into long double format | ||
255 | */ | ||
256 | for (i = 0; i < 24; i += 3) | ||
257 | fpu->fpregs[i] = ((fpu->fpregs[i] & 0xffff0000) << 15) | | ||
258 | ((fpu->fpregs[i] & 0x0000ffff) << 16); | ||
259 | return 1; | ||
260 | } | ||
261 | |||
262 | /* First dump the fpu context to avoid protocol violation. */ | ||
263 | asm volatile ("fsave %0" :: "m" (fpustate[0]) : "memory"); | ||
264 | if (!fpustate[0]) | ||
265 | return 0; | ||
266 | |||
267 | asm volatile ("fmovem %/fpiar/%/fpcr/%/fpsr,%0" | ||
268 | :: "m" (fpu->fpcntl[0]) | ||
269 | : "memory"); | ||
270 | asm volatile ("fmovemx %/fp0-%/fp7,%0" | ||
271 | :: "m" (fpu->fpregs[0]) | ||
272 | : "memory"); | ||
273 | #endif | ||
274 | return 1; | ||
275 | } | ||
276 | |||
277 | /* | ||
278 | * fill in the user structure for a core dump.. | ||
279 | */ | ||
280 | void dump_thread(struct pt_regs * regs, struct user * dump) | ||
281 | { | ||
282 | struct switch_stack *sw; | ||
283 | |||
284 | /* changed the size calculations - should hopefully work better. lbt */ | ||
285 | dump->magic = CMAGIC; | ||
286 | dump->start_code = 0; | ||
287 | dump->start_stack = rdusp() & ~(PAGE_SIZE - 1); | ||
288 | dump->u_tsize = ((unsigned long) current->mm->end_code) >> PAGE_SHIFT; | ||
289 | dump->u_dsize = ((unsigned long) (current->mm->brk + | ||
290 | (PAGE_SIZE-1))) >> PAGE_SHIFT; | ||
291 | dump->u_dsize -= dump->u_tsize; | ||
292 | dump->u_ssize = 0; | ||
293 | |||
294 | if (dump->start_stack < TASK_SIZE) | ||
295 | dump->u_ssize = ((unsigned long) (TASK_SIZE - dump->start_stack)) >> PAGE_SHIFT; | ||
296 | |||
297 | dump->u_ar0 = (struct user_regs_struct *)((int)&dump->regs - (int)dump); | ||
298 | sw = ((struct switch_stack *)regs) - 1; | ||
299 | dump->regs.d1 = regs->d1; | ||
300 | dump->regs.d2 = regs->d2; | ||
301 | dump->regs.d3 = regs->d3; | ||
302 | dump->regs.d4 = regs->d4; | ||
303 | dump->regs.d5 = regs->d5; | ||
304 | dump->regs.d6 = sw->d6; | ||
305 | dump->regs.d7 = sw->d7; | ||
306 | dump->regs.a0 = regs->a0; | ||
307 | dump->regs.a1 = regs->a1; | ||
308 | dump->regs.a2 = regs->a2; | ||
309 | dump->regs.a3 = sw->a3; | ||
310 | dump->regs.a4 = sw->a4; | ||
311 | dump->regs.a5 = sw->a5; | ||
312 | dump->regs.a6 = sw->a6; | ||
313 | dump->regs.d0 = regs->d0; | ||
314 | dump->regs.orig_d0 = regs->orig_d0; | ||
315 | dump->regs.stkadj = regs->stkadj; | ||
316 | dump->regs.sr = regs->sr; | ||
317 | dump->regs.pc = regs->pc; | ||
318 | dump->regs.fmtvec = (regs->format << 12) | regs->vector; | ||
319 | /* dump floating point stuff */ | ||
320 | dump->u_fpvalid = dump_fpu (regs, &dump->m68kfp); | ||
321 | } | ||
322 | |||
323 | /* | ||
324 | * Generic dumping code. Used for panic and debug. | ||
325 | */ | ||
326 | void dump(struct pt_regs *fp) | ||
327 | { | ||
328 | unsigned long *sp; | ||
329 | unsigned char *tp; | ||
330 | int i; | ||
331 | |||
332 | printk(KERN_EMERG "\nCURRENT PROCESS:\n\n"); | ||
333 | printk(KERN_EMERG "COMM=%s PID=%d\n", current->comm, current->pid); | ||
334 | |||
335 | if (current->mm) { | ||
336 | printk(KERN_EMERG "TEXT=%08x-%08x DATA=%08x-%08x BSS=%08x-%08x\n", | ||
337 | (int) current->mm->start_code, | ||
338 | (int) current->mm->end_code, | ||
339 | (int) current->mm->start_data, | ||
340 | (int) current->mm->end_data, | ||
341 | (int) current->mm->end_data, | ||
342 | (int) current->mm->brk); | ||
343 | printk(KERN_EMERG "USER-STACK=%08x KERNEL-STACK=%08x\n\n", | ||
344 | (int) current->mm->start_stack, | ||
345 | (int)(((unsigned long) current) + THREAD_SIZE)); | ||
346 | } | ||
347 | |||
348 | printk(KERN_EMERG "PC: %08lx\n", fp->pc); | ||
349 | printk(KERN_EMERG "SR: %08lx SP: %08lx\n", (long) fp->sr, (long) fp); | ||
350 | printk(KERN_EMERG "d0: %08lx d1: %08lx d2: %08lx d3: %08lx\n", | ||
351 | fp->d0, fp->d1, fp->d2, fp->d3); | ||
352 | printk(KERN_EMERG "d4: %08lx d5: %08lx a0: %08lx a1: %08lx\n", | ||
353 | fp->d4, fp->d5, fp->a0, fp->a1); | ||
354 | printk(KERN_EMERG "\nUSP: %08x TRAPFRAME: %08x\n", (unsigned int) rdusp(), | ||
355 | (unsigned int) fp); | ||
356 | |||
357 | printk(KERN_EMERG "\nCODE:"); | ||
358 | tp = ((unsigned char *) fp->pc) - 0x20; | ||
359 | for (sp = (unsigned long *) tp, i = 0; (i < 0x40); i += 4) { | ||
360 | if ((i % 0x10) == 0) | ||
361 | printk(KERN_EMERG "\n%08x: ", (int) (tp + i)); | ||
362 | printk(KERN_EMERG "%08x ", (int) *sp++); | ||
363 | } | ||
364 | printk(KERN_EMERG "\n"); | ||
365 | |||
366 | printk(KERN_EMERG "\nKERNEL STACK:"); | ||
367 | tp = ((unsigned char *) fp) - 0x40; | ||
368 | for (sp = (unsigned long *) tp, i = 0; (i < 0xc0); i += 4) { | ||
369 | if ((i % 0x10) == 0) | ||
370 | printk(KERN_EMERG "\n%08x: ", (int) (tp + i)); | ||
371 | printk(KERN_EMERG "%08x ", (int) *sp++); | ||
372 | } | ||
373 | printk(KERN_EMERG "\n"); | ||
374 | printk(KERN_EMERG "\n"); | ||
375 | |||
376 | printk(KERN_EMERG "\nUSER STACK:"); | ||
377 | tp = (unsigned char *) (rdusp() - 0x10); | ||
378 | for (sp = (unsigned long *) tp, i = 0; (i < 0x80); i += 4) { | ||
379 | if ((i % 0x10) == 0) | ||
380 | printk(KERN_EMERG "\n%08x: ", (int) (tp + i)); | ||
381 | printk(KERN_EMERG "%08x ", (int) *sp++); | ||
382 | } | ||
383 | printk(KERN_EMERG "\n\n"); | ||
384 | } | ||
385 | |||
386 | /* | ||
387 | * sys_execve() executes a new program. | ||
388 | */ | ||
389 | asmlinkage int sys_execve(char *name, char **argv, char **envp) | ||
390 | { | ||
391 | int error; | ||
392 | char * filename; | ||
393 | struct pt_regs *regs = (struct pt_regs *) &name; | ||
394 | |||
395 | lock_kernel(); | ||
396 | filename = getname(name); | ||
397 | error = PTR_ERR(filename); | ||
398 | if (IS_ERR(filename)) | ||
399 | goto out; | ||
400 | error = do_execve(filename, argv, envp, regs); | ||
401 | putname(filename); | ||
402 | out: | ||
403 | unlock_kernel(); | ||
404 | return error; | ||
405 | } | ||
406 | |||
407 | unsigned long get_wchan(struct task_struct *p) | ||
408 | { | ||
409 | unsigned long fp, pc; | ||
410 | unsigned long stack_page; | ||
411 | int count = 0; | ||
412 | if (!p || p == current || p->state == TASK_RUNNING) | ||
413 | return 0; | ||
414 | |||
415 | stack_page = (unsigned long)p; | ||
416 | fp = ((struct switch_stack *)p->thread.ksp)->a6; | ||
417 | do { | ||
418 | if (fp < stack_page+sizeof(struct thread_info) || | ||
419 | fp >= 8184+stack_page) | ||
420 | return 0; | ||
421 | pc = ((unsigned long *)fp)[1]; | ||
422 | if (!in_sched_functions(pc)) | ||
423 | return pc; | ||
424 | fp = *(unsigned long *) fp; | ||
425 | } while (count++ < 16); | ||
426 | return 0; | ||
427 | } | ||
428 | |||
429 | /* | ||
430 | * Return saved PC of a blocked thread. | ||
431 | */ | ||
432 | unsigned long thread_saved_pc(struct task_struct *tsk) | ||
433 | { | ||
434 | struct switch_stack *sw = (struct switch_stack *)tsk->thread.ksp; | ||
435 | |||
436 | /* Check whether the thread is blocked in resume() */ | ||
437 | if (in_sched_functions(sw->retpc)) | ||
438 | return ((unsigned long *)sw->a6)[1]; | ||
439 | else | ||
440 | return sw->retpc; | ||
441 | } | ||
442 | |||
diff --git a/arch/m68knommu/kernel/ptrace.c b/arch/m68knommu/kernel/ptrace.c new file mode 100644 index 000000000000..15cf79080b15 --- /dev/null +++ b/arch/m68knommu/kernel/ptrace.c | |||
@@ -0,0 +1,383 @@ | |||
1 | /* | ||
2 | * linux/arch/m68knommu/kernel/ptrace.c | ||
3 | * | ||
4 | * Copyright (C) 1994 by Hamish Macdonald | ||
5 | * Taken from linux/kernel/ptrace.c and modified for M680x0. | ||
6 | * linux/kernel/ptrace.c is by Ross Biro 1/23/92, edited by Linus Torvalds | ||
7 | * | ||
8 | * This file is subject to the terms and conditions of the GNU General | ||
9 | * Public License. See the file COPYING in the main directory of | ||
10 | * this archive for more details. | ||
11 | */ | ||
12 | |||
13 | #include <linux/kernel.h> | ||
14 | #include <linux/sched.h> | ||
15 | #include <linux/mm.h> | ||
16 | #include <linux/smp.h> | ||
17 | #include <linux/smp_lock.h> | ||
18 | #include <linux/errno.h> | ||
19 | #include <linux/ptrace.h> | ||
20 | #include <linux/user.h> | ||
21 | #include <linux/config.h> | ||
22 | |||
23 | #include <asm/uaccess.h> | ||
24 | #include <asm/page.h> | ||
25 | #include <asm/pgtable.h> | ||
26 | #include <asm/system.h> | ||
27 | #include <asm/processor.h> | ||
28 | |||
29 | /* | ||
30 | * does not yet catch signals sent when the child dies. | ||
31 | * in exit.c or in signal.c. | ||
32 | */ | ||
33 | |||
34 | /* determines which bits in the SR the user has access to. */ | ||
35 | /* 1 = access 0 = no access */ | ||
36 | #define SR_MASK 0x001f | ||
37 | |||
38 | /* sets the trace bits. */ | ||
39 | #define TRACE_BITS 0x8000 | ||
40 | |||
41 | /* Find the stack offset for a register, relative to thread.esp0. */ | ||
42 | #define PT_REG(reg) ((long)&((struct pt_regs *)0)->reg) | ||
43 | #define SW_REG(reg) ((long)&((struct switch_stack *)0)->reg \ | ||
44 | - sizeof(struct switch_stack)) | ||
45 | /* Mapping from PT_xxx to the stack offset at which the register is | ||
46 | saved. Notice that usp has no stack-slot and needs to be treated | ||
47 | specially (see get_reg/put_reg below). */ | ||
48 | static int regoff[] = { | ||
49 | PT_REG(d1), PT_REG(d2), PT_REG(d3), PT_REG(d4), | ||
50 | PT_REG(d5), SW_REG(d6), SW_REG(d7), PT_REG(a0), | ||
51 | PT_REG(a1), PT_REG(a2), SW_REG(a3), SW_REG(a4), | ||
52 | SW_REG(a5), SW_REG(a6), PT_REG(d0), -1, | ||
53 | PT_REG(orig_d0), PT_REG(sr), PT_REG(pc), | ||
54 | }; | ||
55 | |||
56 | /* | ||
57 | * Get contents of register REGNO in task TASK. | ||
58 | */ | ||
59 | static inline long get_reg(struct task_struct *task, int regno) | ||
60 | { | ||
61 | unsigned long *addr; | ||
62 | |||
63 | if (regno == PT_USP) | ||
64 | addr = &task->thread.usp; | ||
65 | else if (regno < sizeof(regoff)/sizeof(regoff[0])) | ||
66 | addr = (unsigned long *)(task->thread.esp0 + regoff[regno]); | ||
67 | else | ||
68 | return 0; | ||
69 | return *addr; | ||
70 | } | ||
71 | |||
72 | /* | ||
73 | * Write contents of register REGNO in task TASK. | ||
74 | */ | ||
75 | static inline int put_reg(struct task_struct *task, int regno, | ||
76 | unsigned long data) | ||
77 | { | ||
78 | unsigned long *addr; | ||
79 | |||
80 | if (regno == PT_USP) | ||
81 | addr = &task->thread.usp; | ||
82 | else if (regno < sizeof(regoff)/sizeof(regoff[0])) | ||
83 | addr = (unsigned long *) (task->thread.esp0 + regoff[regno]); | ||
84 | else | ||
85 | return -1; | ||
86 | *addr = data; | ||
87 | return 0; | ||
88 | } | ||
89 | |||
90 | /* | ||
91 | * Called by kernel/ptrace.c when detaching.. | ||
92 | * | ||
93 | * Make sure the single step bit is not set. | ||
94 | */ | ||
95 | void ptrace_disable(struct task_struct *child) | ||
96 | { | ||
97 | unsigned long tmp; | ||
98 | /* make sure the single step bit is not set. */ | ||
99 | tmp = get_reg(child, PT_SR) & ~(TRACE_BITS << 16); | ||
100 | put_reg(child, PT_SR, tmp); | ||
101 | } | ||
102 | |||
103 | asmlinkage int sys_ptrace(long request, long pid, long addr, long data) | ||
104 | { | ||
105 | struct task_struct *child; | ||
106 | int ret; | ||
107 | |||
108 | lock_kernel(); | ||
109 | ret = -EPERM; | ||
110 | if (request == PTRACE_TRACEME) { | ||
111 | /* are we already being traced? */ | ||
112 | if (current->ptrace & PT_PTRACED) | ||
113 | goto out; | ||
114 | /* set the ptrace bit in the process flags. */ | ||
115 | current->ptrace |= PT_PTRACED; | ||
116 | ret = 0; | ||
117 | goto out; | ||
118 | } | ||
119 | ret = -ESRCH; | ||
120 | read_lock(&tasklist_lock); | ||
121 | child = find_task_by_pid(pid); | ||
122 | if (child) | ||
123 | get_task_struct(child); | ||
124 | read_unlock(&tasklist_lock); | ||
125 | if (!child) | ||
126 | goto out; | ||
127 | |||
128 | ret = -EPERM; | ||
129 | if (pid == 1) /* you may not mess with init */ | ||
130 | goto out_tsk; | ||
131 | |||
132 | if (request == PTRACE_ATTACH) { | ||
133 | ret = ptrace_attach(child); | ||
134 | goto out_tsk; | ||
135 | } | ||
136 | ret = ptrace_check_attach(child, request == PTRACE_KILL); | ||
137 | if (ret < 0) | ||
138 | goto out_tsk; | ||
139 | |||
140 | switch (request) { | ||
141 | /* when I and D space are separate, these will need to be fixed. */ | ||
142 | case PTRACE_PEEKTEXT: /* read word at location addr. */ | ||
143 | case PTRACE_PEEKDATA: { | ||
144 | unsigned long tmp; | ||
145 | int copied; | ||
146 | |||
147 | copied = access_process_vm(child, addr, &tmp, sizeof(tmp), 0); | ||
148 | ret = -EIO; | ||
149 | if (copied != sizeof(tmp)) | ||
150 | break; | ||
151 | ret = put_user(tmp,(unsigned long *) data); | ||
152 | break; | ||
153 | } | ||
154 | |||
155 | /* read the word at location addr in the USER area. */ | ||
156 | case PTRACE_PEEKUSR: { | ||
157 | unsigned long tmp; | ||
158 | |||
159 | ret = -EIO; | ||
160 | if ((addr & 3) || addr < 0 || | ||
161 | addr > sizeof(struct user) - 3) | ||
162 | break; | ||
163 | |||
164 | tmp = 0; /* Default return condition */ | ||
165 | addr = addr >> 2; /* temporary hack. */ | ||
166 | ret = -EIO; | ||
167 | if (addr < 19) { | ||
168 | tmp = get_reg(child, addr); | ||
169 | if (addr == PT_SR) | ||
170 | tmp >>= 16; | ||
171 | } else if (addr >= 21 && addr < 49) { | ||
172 | tmp = child->thread.fp[addr - 21]; | ||
173 | #ifdef CONFIG_M68KFPU_EMU | ||
174 | /* Convert internal fpu reg representation | ||
175 | * into long double format | ||
176 | */ | ||
177 | if (FPU_IS_EMU && (addr < 45) && !(addr % 3)) | ||
178 | tmp = ((tmp & 0xffff0000) << 15) | | ||
179 | ((tmp & 0x0000ffff) << 16); | ||
180 | #endif | ||
181 | } else if (addr == 49) { | ||
182 | tmp = child->mm->start_code; | ||
183 | } else if (addr == 50) { | ||
184 | tmp = child->mm->start_data; | ||
185 | } else if (addr == 51) { | ||
186 | tmp = child->mm->end_code; | ||
187 | } else | ||
188 | break; | ||
189 | ret = put_user(tmp,(unsigned long *) data); | ||
190 | break; | ||
191 | } | ||
192 | |||
193 | /* when I and D space are separate, this will have to be fixed. */ | ||
194 | case PTRACE_POKETEXT: /* write the word at location addr. */ | ||
195 | case PTRACE_POKEDATA: | ||
196 | ret = 0; | ||
197 | if (access_process_vm(child, addr, &data, sizeof(data), 1) == sizeof(data)) | ||
198 | break; | ||
199 | ret = -EIO; | ||
200 | break; | ||
201 | |||
202 | case PTRACE_POKEUSR: /* write the word at location addr in the USER area */ | ||
203 | ret = -EIO; | ||
204 | if ((addr & 3) || addr < 0 || | ||
205 | addr > sizeof(struct user) - 3) | ||
206 | break; | ||
207 | |||
208 | addr = addr >> 2; /* temporary hack. */ | ||
209 | |||
210 | if (addr == PT_SR) { | ||
211 | data &= SR_MASK; | ||
212 | data <<= 16; | ||
213 | data |= get_reg(child, PT_SR) & ~(SR_MASK << 16); | ||
214 | } | ||
215 | if (addr < 19) { | ||
216 | if (put_reg(child, addr, data)) | ||
217 | break; | ||
218 | ret = 0; | ||
219 | break; | ||
220 | } | ||
221 | if (addr >= 21 && addr < 48) | ||
222 | { | ||
223 | #ifdef CONFIG_M68KFPU_EMU | ||
224 | /* Convert long double format | ||
225 | * into internal fpu reg representation | ||
226 | */ | ||
227 | if (FPU_IS_EMU && (addr < 45) && !(addr % 3)) { | ||
228 | data = (unsigned long)data << 15; | ||
229 | data = (data & 0xffff0000) | | ||
230 | ((data & 0x0000ffff) >> 1); | ||
231 | } | ||
232 | #endif | ||
233 | child->thread.fp[addr - 21] = data; | ||
234 | ret = 0; | ||
235 | } | ||
236 | break; | ||
237 | |||
238 | case PTRACE_SYSCALL: /* continue and stop at next (return from) syscall */ | ||
239 | case PTRACE_CONT: { /* restart after signal. */ | ||
240 | long tmp; | ||
241 | |||
242 | ret = -EIO; | ||
243 | if ((unsigned long) data > _NSIG) | ||
244 | break; | ||
245 | if (request == PTRACE_SYSCALL) | ||
246 | set_tsk_thread_flag(child, TIF_SYSCALL_TRACE); | ||
247 | else | ||
248 | clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE); | ||
249 | child->exit_code = data; | ||
250 | /* make sure the single step bit is not set. */ | ||
251 | tmp = get_reg(child, PT_SR) & ~(TRACE_BITS << 16); | ||
252 | put_reg(child, PT_SR, tmp); | ||
253 | wake_up_process(child); | ||
254 | ret = 0; | ||
255 | break; | ||
256 | } | ||
257 | |||
258 | /* | ||
259 | * make the child exit. Best I can do is send it a sigkill. | ||
260 | * perhaps it should be put in the status that it wants to | ||
261 | * exit. | ||
262 | */ | ||
263 | case PTRACE_KILL: { | ||
264 | long tmp; | ||
265 | |||
266 | ret = 0; | ||
267 | if (child->exit_state == EXIT_ZOMBIE) /* already dead */ | ||
268 | break; | ||
269 | child->exit_code = SIGKILL; | ||
270 | /* make sure the single step bit is not set. */ | ||
271 | tmp = get_reg(child, PT_SR) & ~(TRACE_BITS << 16); | ||
272 | put_reg(child, PT_SR, tmp); | ||
273 | wake_up_process(child); | ||
274 | break; | ||
275 | } | ||
276 | |||
277 | case PTRACE_SINGLESTEP: { /* set the trap flag. */ | ||
278 | long tmp; | ||
279 | |||
280 | ret = -EIO; | ||
281 | if ((unsigned long) data > _NSIG) | ||
282 | break; | ||
283 | clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE); | ||
284 | tmp = get_reg(child, PT_SR) | (TRACE_BITS << 16); | ||
285 | put_reg(child, PT_SR, tmp); | ||
286 | |||
287 | child->exit_code = data; | ||
288 | /* give it a chance to run. */ | ||
289 | wake_up_process(child); | ||
290 | ret = 0; | ||
291 | break; | ||
292 | } | ||
293 | |||
294 | case PTRACE_DETACH: /* detach a process that was attached. */ | ||
295 | ret = ptrace_detach(child, data); | ||
296 | break; | ||
297 | |||
298 | case PTRACE_GETREGS: { /* Get all gp regs from the child. */ | ||
299 | int i; | ||
300 | unsigned long tmp; | ||
301 | for (i = 0; i < 19; i++) { | ||
302 | tmp = get_reg(child, i); | ||
303 | if (i == PT_SR) | ||
304 | tmp >>= 16; | ||
305 | if (put_user(tmp, (unsigned long *) data)) { | ||
306 | ret = -EFAULT; | ||
307 | break; | ||
308 | } | ||
309 | data += sizeof(long); | ||
310 | } | ||
311 | ret = 0; | ||
312 | break; | ||
313 | } | ||
314 | |||
315 | case PTRACE_SETREGS: { /* Set all gp regs in the child. */ | ||
316 | int i; | ||
317 | unsigned long tmp; | ||
318 | for (i = 0; i < 19; i++) { | ||
319 | if (get_user(tmp, (unsigned long *) data)) { | ||
320 | ret = -EFAULT; | ||
321 | break; | ||
322 | } | ||
323 | if (i == PT_SR) { | ||
324 | tmp &= SR_MASK; | ||
325 | tmp <<= 16; | ||
326 | tmp |= get_reg(child, PT_SR) & ~(SR_MASK << 16); | ||
327 | } | ||
328 | put_reg(child, i, tmp); | ||
329 | data += sizeof(long); | ||
330 | } | ||
331 | ret = 0; | ||
332 | break; | ||
333 | } | ||
334 | |||
335 | #ifdef PTRACE_GETFPREGS | ||
336 | case PTRACE_GETFPREGS: { /* Get the child FPU state. */ | ||
337 | ret = 0; | ||
338 | if (copy_to_user((void *)data, &child->thread.fp, | ||
339 | sizeof(struct user_m68kfp_struct))) | ||
340 | ret = -EFAULT; | ||
341 | break; | ||
342 | } | ||
343 | #endif | ||
344 | |||
345 | #ifdef PTRACE_SETFPREGS | ||
346 | case PTRACE_SETFPREGS: { /* Set the child FPU state. */ | ||
347 | ret = 0; | ||
348 | if (copy_from_user(&child->thread.fp, (void *)data, | ||
349 | sizeof(struct user_m68kfp_struct))) | ||
350 | ret = -EFAULT; | ||
351 | break; | ||
352 | } | ||
353 | #endif | ||
354 | |||
355 | default: | ||
356 | ret = -EIO; | ||
357 | break; | ||
358 | } | ||
359 | out_tsk: | ||
360 | put_task_struct(child); | ||
361 | out: | ||
362 | unlock_kernel(); | ||
363 | return ret; | ||
364 | } | ||
365 | |||
366 | asmlinkage void syscall_trace(void) | ||
367 | { | ||
368 | if (!test_thread_flag(TIF_SYSCALL_TRACE)) | ||
369 | return; | ||
370 | if (!(current->ptrace & PT_PTRACED)) | ||
371 | return; | ||
372 | ptrace_notify(SIGTRAP | ((current->ptrace & PT_TRACESYSGOOD) | ||
373 | ? 0x80 : 0)); | ||
374 | /* | ||
375 | * this isn't the same as continuing with a signal, but it will do | ||
376 | * for normal use. strace only continues with a signal if the | ||
377 | * stopping signal is not SIGTRAP. -brl | ||
378 | */ | ||
379 | if (current->exit_code) { | ||
380 | send_sig(current->exit_code, current, 1); | ||
381 | current->exit_code = 0; | ||
382 | } | ||
383 | } | ||
diff --git a/arch/m68knommu/kernel/semaphore.c b/arch/m68knommu/kernel/semaphore.c new file mode 100644 index 000000000000..c083f4772add --- /dev/null +++ b/arch/m68knommu/kernel/semaphore.c | |||
@@ -0,0 +1,134 @@ | |||
1 | /* | ||
2 | * Generic semaphore code. Buyer beware. Do your own | ||
3 | * specific changes in <asm/semaphore-helper.h> | ||
4 | */ | ||
5 | |||
6 | #include <linux/config.h> | ||
7 | #include <linux/sched.h> | ||
8 | #include <linux/err.h> | ||
9 | #include <linux/init.h> | ||
10 | #include <asm/semaphore-helper.h> | ||
11 | |||
12 | #ifndef CONFIG_RMW_INSNS | ||
13 | spinlock_t semaphore_wake_lock; | ||
14 | #endif | ||
15 | |||
16 | /* | ||
17 | * Semaphores are implemented using a two-way counter: | ||
18 | * The "count" variable is decremented for each process | ||
19 | * that tries to sleep, while the "waking" variable is | ||
20 | * incremented when the "up()" code goes to wake up waiting | ||
21 | * processes. | ||
22 | * | ||
23 | * Notably, the inline "up()" and "down()" functions can | ||
24 | * efficiently test if they need to do any extra work (up | ||
25 | * needs to do something only if count was negative before | ||
26 | * the increment operation. | ||
27 | * | ||
28 | * waking_non_zero() (from asm/semaphore.h) must execute | ||
29 | * atomically. | ||
30 | * | ||
31 | * When __up() is called, the count was negative before | ||
32 | * incrementing it, and we need to wake up somebody. | ||
33 | * | ||
34 | * This routine adds one to the count of processes that need to | ||
35 | * wake up and exit. ALL waiting processes actually wake up but | ||
36 | * only the one that gets to the "waking" field first will gate | ||
37 | * through and acquire the semaphore. The others will go back | ||
38 | * to sleep. | ||
39 | * | ||
40 | * Note that these functions are only called when there is | ||
41 | * contention on the lock, and as such all this is the | ||
42 | * "non-critical" part of the whole semaphore business. The | ||
43 | * critical part is the inline stuff in <asm/semaphore.h> | ||
44 | * where we want to avoid any extra jumps and calls. | ||
45 | */ | ||
46 | void __up(struct semaphore *sem) | ||
47 | { | ||
48 | wake_one_more(sem); | ||
49 | wake_up(&sem->wait); | ||
50 | } | ||
51 | |||
52 | /* | ||
53 | * Perform the "down" function. Return zero for semaphore acquired, | ||
54 | * return negative for signalled out of the function. | ||
55 | * | ||
56 | * If called from __down, the return is ignored and the wait loop is | ||
57 | * not interruptible. This means that a task waiting on a semaphore | ||
58 | * using "down()" cannot be killed until someone does an "up()" on | ||
59 | * the semaphore. | ||
60 | * | ||
61 | * If called from __down_interruptible, the return value gets checked | ||
62 | * upon return. If the return value is negative then the task continues | ||
63 | * with the negative value in the return register (it can be tested by | ||
64 | * the caller). | ||
65 | * | ||
66 | * Either form may be used in conjunction with "up()". | ||
67 | * | ||
68 | */ | ||
69 | |||
70 | |||
71 | #define DOWN_HEAD(task_state) \ | ||
72 | \ | ||
73 | \ | ||
74 | current->state = (task_state); \ | ||
75 | add_wait_queue(&sem->wait, &wait); \ | ||
76 | \ | ||
77 | /* \ | ||
78 | * Ok, we're set up. sem->count is known to be less than zero \ | ||
79 | * so we must wait. \ | ||
80 | * \ | ||
81 | * We can let go the lock for purposes of waiting. \ | ||
82 | * We re-acquire it after awaking so as to protect \ | ||
83 | * all semaphore operations. \ | ||
84 | * \ | ||
85 | * If "up()" is called before we call waking_non_zero() then \ | ||
86 | * we will catch it right away. If it is called later then \ | ||
87 | * we will have to go through a wakeup cycle to catch it. \ | ||
88 | * \ | ||
89 | * Multiple waiters contend for the semaphore lock to see \ | ||
90 | * who gets to gate through and who has to wait some more. \ | ||
91 | */ \ | ||
92 | for (;;) { | ||
93 | |||
94 | #define DOWN_TAIL(task_state) \ | ||
95 | current->state = (task_state); \ | ||
96 | } \ | ||
97 | current->state = TASK_RUNNING; \ | ||
98 | remove_wait_queue(&sem->wait, &wait); | ||
99 | |||
100 | void __sched __down(struct semaphore * sem) | ||
101 | { | ||
102 | DECLARE_WAITQUEUE(wait, current); | ||
103 | |||
104 | DOWN_HEAD(TASK_UNINTERRUPTIBLE) | ||
105 | if (waking_non_zero(sem)) | ||
106 | break; | ||
107 | schedule(); | ||
108 | DOWN_TAIL(TASK_UNINTERRUPTIBLE) | ||
109 | } | ||
110 | |||
111 | int __sched __down_interruptible(struct semaphore * sem) | ||
112 | { | ||
113 | DECLARE_WAITQUEUE(wait, current); | ||
114 | int ret = 0; | ||
115 | |||
116 | DOWN_HEAD(TASK_INTERRUPTIBLE) | ||
117 | |||
118 | ret = waking_non_zero_interruptible(sem, current); | ||
119 | if (ret) | ||
120 | { | ||
121 | if (ret == 1) | ||
122 | /* ret != 0 only if we get interrupted -arca */ | ||
123 | ret = 0; | ||
124 | break; | ||
125 | } | ||
126 | schedule(); | ||
127 | DOWN_TAIL(TASK_INTERRUPTIBLE) | ||
128 | return ret; | ||
129 | } | ||
130 | |||
131 | int __down_trylock(struct semaphore * sem) | ||
132 | { | ||
133 | return waking_non_zero_trylock(sem); | ||
134 | } | ||
diff --git a/arch/m68knommu/kernel/setup.c b/arch/m68knommu/kernel/setup.c new file mode 100644 index 000000000000..557238596dcb --- /dev/null +++ b/arch/m68knommu/kernel/setup.c | |||
@@ -0,0 +1,347 @@ | |||
1 | /* | ||
2 | * linux/arch/m68knommu/kernel/setup.c | ||
3 | * | ||
4 | * Copyright (C) 1999-2004 Greg Ungerer (gerg@snapgear.com) | ||
5 | * Copyright (C) 1998,1999 D. Jeff Dionne <jeff@lineo.ca> | ||
6 | * Copyleft ()) 2000 James D. Schettine {james@telos-systems.com} | ||
7 | * Copyright (C) 1998 Kenneth Albanowski <kjahds@kjahds.com> | ||
8 | * Copyright (C) 1995 Hamish Macdonald | ||
9 | * Copyright (C) 2000 Lineo Inc. (www.lineo.com) | ||
10 | * Copyright (C) 2001 Lineo, Inc. <www.lineo.com> | ||
11 | * | ||
12 | * 68VZ328 Fixes/support Evan Stawnyczy <e@lineo.ca> | ||
13 | */ | ||
14 | |||
15 | /* | ||
16 | * This file handles the architecture-dependent parts of system setup | ||
17 | */ | ||
18 | |||
19 | #include <linux/config.h> | ||
20 | #include <linux/kernel.h> | ||
21 | #include <linux/sched.h> | ||
22 | #include <linux/delay.h> | ||
23 | #include <linux/interrupt.h> | ||
24 | #include <linux/fs.h> | ||
25 | #include <linux/fb.h> | ||
26 | #include <linux/console.h> | ||
27 | #include <linux/genhd.h> | ||
28 | #include <linux/errno.h> | ||
29 | #include <linux/string.h> | ||
30 | #include <linux/major.h> | ||
31 | #include <linux/bootmem.h> | ||
32 | #include <linux/seq_file.h> | ||
33 | #include <linux/root_dev.h> | ||
34 | #include <linux/init.h> | ||
35 | |||
36 | #include <asm/setup.h> | ||
37 | #include <asm/irq.h> | ||
38 | #include <asm/machdep.h> | ||
39 | |||
40 | #ifdef CONFIG_BLK_DEV_INITRD | ||
41 | #include <asm/pgtable.h> | ||
42 | #endif | ||
43 | |||
44 | unsigned long rom_length; | ||
45 | unsigned long memory_start; | ||
46 | unsigned long memory_end; | ||
47 | |||
48 | char command_line[COMMAND_LINE_SIZE]; | ||
49 | |||
50 | /* setup some dummy routines */ | ||
51 | static void dummy_waitbut(void) | ||
52 | { | ||
53 | } | ||
54 | |||
55 | void (*mach_sched_init) (irqreturn_t (*handler)(int, void *, struct pt_regs *)) = NULL; | ||
56 | void (*mach_tick)( void ) = NULL; | ||
57 | /* machine dependent keyboard functions */ | ||
58 | int (*mach_keyb_init) (void) = NULL; | ||
59 | int (*mach_kbdrate) (struct kbd_repeat *) = NULL; | ||
60 | void (*mach_kbd_leds) (unsigned int) = NULL; | ||
61 | /* machine dependent irq functions */ | ||
62 | void (*mach_init_IRQ) (void) = NULL; | ||
63 | irqreturn_t (*(*mach_default_handler)[]) (int, void *, struct pt_regs *) = NULL; | ||
64 | void (*mach_enable_irq) (unsigned int) = NULL; | ||
65 | void (*mach_disable_irq) (unsigned int) = NULL; | ||
66 | int (*mach_get_irq_list) (struct seq_file *, void *) = NULL; | ||
67 | void (*mach_process_int) (int irq, struct pt_regs *fp) = NULL; | ||
68 | void (*mach_trap_init) (void); | ||
69 | /* machine dependent timer functions */ | ||
70 | unsigned long (*mach_gettimeoffset) (void) = NULL; | ||
71 | void (*mach_gettod) (int*, int*, int*, int*, int*, int*) = NULL; | ||
72 | int (*mach_hwclk) (int, struct hwclk_time*) = NULL; | ||
73 | int (*mach_set_clock_mmss) (unsigned long) = NULL; | ||
74 | void (*mach_mksound)( unsigned int count, unsigned int ticks ) = NULL; | ||
75 | void (*mach_reset)( void ) = NULL; | ||
76 | void (*waitbut)(void) = dummy_waitbut; | ||
77 | void (*mach_debug_init)(void) = NULL; | ||
78 | void (*mach_halt)( void ) = NULL; | ||
79 | void (*mach_power_off)( void ) = NULL; | ||
80 | |||
81 | |||
82 | #ifdef CONFIG_M68000 | ||
83 | #define CPU "MC68000" | ||
84 | #endif | ||
85 | #ifdef CONFIG_M68328 | ||
86 | #define CPU "MC68328" | ||
87 | #endif | ||
88 | #ifdef CONFIG_M68EZ328 | ||
89 | #define CPU "MC68EZ328" | ||
90 | #endif | ||
91 | #ifdef CONFIG_M68VZ328 | ||
92 | #define CPU "MC68VZ328" | ||
93 | #endif | ||
94 | #ifdef CONFIG_M68332 | ||
95 | #define CPU "MC68332" | ||
96 | #endif | ||
97 | #ifdef CONFIG_M68360 | ||
98 | #define CPU "MC68360" | ||
99 | #endif | ||
100 | #if defined(CONFIG_M5206) | ||
101 | #define CPU "COLDFIRE(m5206)" | ||
102 | #endif | ||
103 | #if defined(CONFIG_M5206e) | ||
104 | #define CPU "COLDFIRE(m5206e)" | ||
105 | #endif | ||
106 | #if defined(CONFIG_M5249) | ||
107 | #define CPU "COLDFIRE(m5249)" | ||
108 | #endif | ||
109 | #if defined(CONFIG_M527x) | ||
110 | #define CPU "COLDFIRE(m5270/5271/5274/5275)" | ||
111 | #endif | ||
112 | #if defined(CONFIG_M5272) | ||
113 | #define CPU "COLDFIRE(m5272)" | ||
114 | #endif | ||
115 | #if defined(CONFIG_M528x) | ||
116 | #define CPU "COLDFIRE(m5280/5282)" | ||
117 | #endif | ||
118 | #if defined(CONFIG_M5307) | ||
119 | #define CPU "COLDFIRE(m5307)" | ||
120 | #endif | ||
121 | #if defined(CONFIG_M5407) | ||
122 | #define CPU "COLDFIRE(m5407)" | ||
123 | #endif | ||
124 | #ifndef CPU | ||
125 | #define CPU "UNKOWN" | ||
126 | #endif | ||
127 | |||
128 | /* (es) */ | ||
129 | /* note: why is this defined here? the must be a better place to put this */ | ||
130 | #if defined( CONFIG_TELOS) || defined( CONFIG_UCDIMM ) || defined( CONFIG_UCSIMM ) || defined(CONFIG_DRAGEN2) || (defined( CONFIG_PILOT ) && defined( CONFIG_M68328 )) | ||
131 | #define CAT_ROMARRAY | ||
132 | #endif | ||
133 | /* (/es) */ | ||
134 | |||
135 | extern int _stext, _etext, _sdata, _edata, _sbss, _ebss, _end; | ||
136 | extern int _ramstart, _ramend; | ||
137 | |||
138 | void setup_arch(char **cmdline_p) | ||
139 | { | ||
140 | int bootmap_size; | ||
141 | |||
142 | #if defined(CAT_ROMARRAY) && defined(DEBUG) | ||
143 | extern int __data_rom_start; | ||
144 | extern int __data_start; | ||
145 | int *romarray = (int *)((int) &__data_rom_start + | ||
146 | (int)&_edata - (int)&__data_start); | ||
147 | #endif | ||
148 | |||
149 | memory_start = PAGE_ALIGN(_ramstart); | ||
150 | memory_end = _ramend; /* by now the stack is part of the init task */ | ||
151 | |||
152 | init_mm.start_code = (unsigned long) &_stext; | ||
153 | init_mm.end_code = (unsigned long) &_etext; | ||
154 | init_mm.end_data = (unsigned long) &_edata; | ||
155 | init_mm.brk = (unsigned long) 0; | ||
156 | |||
157 | config_BSP(&command_line[0], sizeof(command_line)); | ||
158 | |||
159 | printk(KERN_INFO "\x0F\r\n\nuClinux/" CPU "\n"); | ||
160 | |||
161 | #ifdef CONFIG_UCDIMM | ||
162 | printk(KERN_INFO "uCdimm by Lineo, Inc. <www.lineo.com>\n"); | ||
163 | #endif | ||
164 | #ifdef CONFIG_M68VZ328 | ||
165 | printk(KERN_INFO "M68VZ328 support by Evan Stawnyczy <e@lineo.ca>\n"); | ||
166 | #endif | ||
167 | #ifdef CONFIG_COLDFIRE | ||
168 | printk(KERN_INFO "COLDFIRE port done by Greg Ungerer, gerg@snapgear.com\n"); | ||
169 | #ifdef CONFIG_M5307 | ||
170 | printk(KERN_INFO "Modified for M5307 by Dave Miller, dmiller@intellistor.com\n"); | ||
171 | #endif | ||
172 | #ifdef CONFIG_ELITE | ||
173 | printk(KERN_INFO "Modified for M5206eLITE by Rob Scott, rscott@mtrob.fdns.net\n"); | ||
174 | #endif | ||
175 | #ifdef CONFIG_TELOS | ||
176 | printk(KERN_INFO "Modified for Omnia ToolVox by James D. Schettine, james@telos-systems.com\n"); | ||
177 | #endif | ||
178 | #endif | ||
179 | printk(KERN_INFO "Flat model support (C) 1998,1999 Kenneth Albanowski, D. Jeff Dionne\n"); | ||
180 | |||
181 | #if defined( CONFIG_PILOT ) && defined( CONFIG_M68328 ) | ||
182 | printk(KERN_INFO "TRG SuperPilot FLASH card support <info@trgnet.com>\n"); | ||
183 | #endif | ||
184 | |||
185 | #if defined( CONFIG_PILOT ) && defined( CONFIG_M68EZ328 ) | ||
186 | printk(KERN_INFO "PalmV support by Lineo Inc. <jeff@uclinux.com>\n"); | ||
187 | #endif | ||
188 | |||
189 | #ifdef CONFIG_M68EZ328ADS | ||
190 | printk(KERN_INFO "M68EZ328ADS board support (C) 1999 Vladimir Gurevich <vgurevic@cisco.com>\n"); | ||
191 | #endif | ||
192 | |||
193 | #ifdef CONFIG_ALMA_ANS | ||
194 | printk(KERN_INFO "Alma Electronics board support (C) 1999 Vladimir Gurevich <vgurevic@cisco.com>\n"); | ||
195 | #endif | ||
196 | #if defined (CONFIG_M68360) | ||
197 | printk(KERN_INFO "QUICC port done by SED Systems <hamilton@sedsystems.ca>,\n"); | ||
198 | printk(KERN_INFO "based on 2.0.38 port by Lineo Inc. <mleslie@lineo.com>.\n"); | ||
199 | #endif | ||
200 | #ifdef CONFIG_DRAGEN2 | ||
201 | printk(KERN_INFO "DragonEngine II board support by Georges Menie\n"); | ||
202 | #endif | ||
203 | |||
204 | #ifdef DEBUG | ||
205 | printk(KERN_DEBUG "KERNEL -> TEXT=0x%06x-0x%06x DATA=0x%06x-0x%06x " | ||
206 | "BSS=0x%06x-0x%06x\n", (int) &_stext, (int) &_etext, | ||
207 | (int) &_sdata, (int) &_edata, | ||
208 | (int) &_sbss, (int) &_ebss); | ||
209 | printk(KERN_DEBUG "KERNEL -> ROMFS=0x%06x-0x%06x MEM=0x%06x-0x%06x " | ||
210 | "STACK=0x%06x-0x%06x\n", | ||
211 | #ifdef CAT_ROMARRAY | ||
212 | (int) romarray, ((int) romarray) + romarray[2], | ||
213 | #else | ||
214 | (int) &_ebss, (int) memory_start, | ||
215 | #endif | ||
216 | (int) memory_start, (int) memory_end, | ||
217 | (int) memory_end, (int) _ramend); | ||
218 | #endif | ||
219 | |||
220 | /* Keep a copy of command line */ | ||
221 | *cmdline_p = &command_line[0]; | ||
222 | memcpy(saved_command_line, command_line, COMMAND_LINE_SIZE); | ||
223 | saved_command_line[COMMAND_LINE_SIZE-1] = 0; | ||
224 | |||
225 | #ifdef DEBUG | ||
226 | if (strlen(*cmdline_p)) | ||
227 | printk(KERN_DEBUG "Command line: '%s'\n", *cmdline_p); | ||
228 | #endif | ||
229 | |||
230 | #if defined(CONFIG_FRAMEBUFFER_CONSOLE) && defined(CONFIG_DUMMY_CONSOLE) | ||
231 | conswitchp = &dummy_con; | ||
232 | #endif | ||
233 | |||
234 | /* | ||
235 | * Give all the memory to the bootmap allocator, tell it to put the | ||
236 | * boot mem_map at the start of memory. | ||
237 | */ | ||
238 | bootmap_size = init_bootmem_node( | ||
239 | NODE_DATA(0), | ||
240 | memory_start >> PAGE_SHIFT, /* map goes here */ | ||
241 | PAGE_OFFSET >> PAGE_SHIFT, /* 0 on coldfire */ | ||
242 | memory_end >> PAGE_SHIFT); | ||
243 | /* | ||
244 | * Free the usable memory, we have to make sure we do not free | ||
245 | * the bootmem bitmap so we then reserve it after freeing it :-) | ||
246 | */ | ||
247 | free_bootmem(memory_start, memory_end - memory_start); | ||
248 | reserve_bootmem(memory_start, bootmap_size); | ||
249 | |||
250 | /* | ||
251 | * Get kmalloc into gear. | ||
252 | */ | ||
253 | paging_init(); | ||
254 | } | ||
255 | |||
256 | int get_cpuinfo(char * buffer) | ||
257 | { | ||
258 | char *cpu, *mmu, *fpu; | ||
259 | u_long clockfreq; | ||
260 | |||
261 | cpu = CPU; | ||
262 | mmu = "none"; | ||
263 | fpu = "none"; | ||
264 | |||
265 | #ifdef CONFIG_COLDFIRE | ||
266 | clockfreq = (loops_per_jiffy*HZ)*3; | ||
267 | #else | ||
268 | clockfreq = (loops_per_jiffy*HZ)*16; | ||
269 | #endif | ||
270 | |||
271 | return(sprintf(buffer, "CPU:\t\t%s\n" | ||
272 | "MMU:\t\t%s\n" | ||
273 | "FPU:\t\t%s\n" | ||
274 | "Clocking:\t%lu.%1luMHz\n" | ||
275 | "BogoMips:\t%lu.%02lu\n" | ||
276 | "Calibration:\t%lu loops\n", | ||
277 | cpu, mmu, fpu, | ||
278 | clockfreq/1000000,(clockfreq/100000)%10, | ||
279 | (loops_per_jiffy*HZ)/500000,((loops_per_jiffy*HZ)/5000)%100, | ||
280 | (loops_per_jiffy*HZ))); | ||
281 | |||
282 | } | ||
283 | |||
284 | /* | ||
285 | * Get CPU information for use by the procfs. | ||
286 | */ | ||
287 | |||
288 | static int show_cpuinfo(struct seq_file *m, void *v) | ||
289 | { | ||
290 | char *cpu, *mmu, *fpu; | ||
291 | u_long clockfreq; | ||
292 | |||
293 | cpu = CPU; | ||
294 | mmu = "none"; | ||
295 | fpu = "none"; | ||
296 | |||
297 | #ifdef CONFIG_COLDFIRE | ||
298 | clockfreq = (loops_per_jiffy*HZ)*3; | ||
299 | #else | ||
300 | clockfreq = (loops_per_jiffy*HZ)*16; | ||
301 | #endif | ||
302 | |||
303 | seq_printf(m, "CPU:\t\t%s\n" | ||
304 | "MMU:\t\t%s\n" | ||
305 | "FPU:\t\t%s\n" | ||
306 | "Clocking:\t%lu.%1luMHz\n" | ||
307 | "BogoMips:\t%lu.%02lu\n" | ||
308 | "Calibration:\t%lu loops\n", | ||
309 | cpu, mmu, fpu, | ||
310 | clockfreq/1000000,(clockfreq/100000)%10, | ||
311 | (loops_per_jiffy*HZ)/500000,((loops_per_jiffy*HZ)/5000)%100, | ||
312 | (loops_per_jiffy*HZ)); | ||
313 | |||
314 | return 0; | ||
315 | } | ||
316 | |||
317 | static void *c_start(struct seq_file *m, loff_t *pos) | ||
318 | { | ||
319 | return *pos < NR_CPUS ? ((void *) 0x12345678) : NULL; | ||
320 | } | ||
321 | |||
322 | static void *c_next(struct seq_file *m, void *v, loff_t *pos) | ||
323 | { | ||
324 | ++*pos; | ||
325 | return c_start(m, pos); | ||
326 | } | ||
327 | |||
328 | static void c_stop(struct seq_file *m, void *v) | ||
329 | { | ||
330 | } | ||
331 | |||
332 | struct seq_operations cpuinfo_op = { | ||
333 | .start = c_start, | ||
334 | .next = c_next, | ||
335 | .stop = c_stop, | ||
336 | .show = show_cpuinfo, | ||
337 | }; | ||
338 | |||
339 | void arch_gettod(int *year, int *mon, int *day, int *hour, | ||
340 | int *min, int *sec) | ||
341 | { | ||
342 | if (mach_gettod) | ||
343 | mach_gettod(year, mon, day, hour, min, sec); | ||
344 | else | ||
345 | *year = *mon = *day = *hour = *min = *sec = 0; | ||
346 | } | ||
347 | |||
diff --git a/arch/m68knommu/kernel/signal.c b/arch/m68knommu/kernel/signal.c new file mode 100644 index 000000000000..30dceb59a462 --- /dev/null +++ b/arch/m68knommu/kernel/signal.c | |||
@@ -0,0 +1,788 @@ | |||
1 | /* | ||
2 | * linux/arch/m68knommu/kernel/signal.c | ||
3 | * | ||
4 | * Copyright (C) 1991, 1992 Linus Torvalds | ||
5 | * | ||
6 | * This file is subject to the terms and conditions of the GNU General Public | ||
7 | * License. See the file COPYING in the main directory of this archive | ||
8 | * for more details. | ||
9 | */ | ||
10 | |||
11 | /* | ||
12 | * Linux/m68k support by Hamish Macdonald | ||
13 | * | ||
14 | * 68060 fixes by Jesper Skov | ||
15 | * | ||
16 | * 1997-12-01 Modified for POSIX.1b signals by Andreas Schwab | ||
17 | * | ||
18 | * mathemu support by Roman Zippel | ||
19 | * (Note: fpstate in the signal context is completely ignored for the emulator | ||
20 | * and the internal floating point format is put on stack) | ||
21 | */ | ||
22 | |||
23 | /* | ||
24 | * ++roman (07/09/96): implemented signal stacks (specially for tosemu on | ||
25 | * Atari :-) Current limitation: Only one sigstack can be active at one time. | ||
26 | * If a second signal with SA_ONSTACK set arrives while working on a sigstack, | ||
27 | * SA_ONSTACK is ignored. This behaviour avoids lots of trouble with nested | ||
28 | * signal handlers! | ||
29 | */ | ||
30 | |||
31 | #include <linux/sched.h> | ||
32 | #include <linux/mm.h> | ||
33 | #include <linux/kernel.h> | ||
34 | #include <linux/signal.h> | ||
35 | #include <linux/syscalls.h> | ||
36 | #include <linux/errno.h> | ||
37 | #include <linux/wait.h> | ||
38 | #include <linux/ptrace.h> | ||
39 | #include <linux/unistd.h> | ||
40 | #include <linux/stddef.h> | ||
41 | #include <linux/highuid.h> | ||
42 | #include <linux/tty.h> | ||
43 | #include <linux/personality.h> | ||
44 | #include <linux/binfmts.h> | ||
45 | |||
46 | #include <asm/setup.h> | ||
47 | #include <asm/uaccess.h> | ||
48 | #include <asm/pgtable.h> | ||
49 | #include <asm/traps.h> | ||
50 | #include <asm/ucontext.h> | ||
51 | |||
52 | #define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP))) | ||
53 | |||
54 | asmlinkage int do_signal(sigset_t *oldset, struct pt_regs *regs); | ||
55 | |||
56 | /* | ||
57 | * Atomically swap in the new signal mask, and wait for a signal. | ||
58 | */ | ||
59 | asmlinkage int do_sigsuspend(struct pt_regs *regs) | ||
60 | { | ||
61 | old_sigset_t mask = regs->d3; | ||
62 | sigset_t saveset; | ||
63 | |||
64 | mask &= _BLOCKABLE; | ||
65 | spin_lock_irq(¤t->sighand->siglock); | ||
66 | saveset = current->blocked; | ||
67 | siginitset(¤t->blocked, mask); | ||
68 | recalc_sigpending(); | ||
69 | spin_unlock_irq(¤t->sighand->siglock); | ||
70 | |||
71 | regs->d0 = -EINTR; | ||
72 | while (1) { | ||
73 | current->state = TASK_INTERRUPTIBLE; | ||
74 | schedule(); | ||
75 | if (do_signal(&saveset, regs)) | ||
76 | return -EINTR; | ||
77 | } | ||
78 | } | ||
79 | |||
80 | asmlinkage int | ||
81 | do_rt_sigsuspend(struct pt_regs *regs) | ||
82 | { | ||
83 | sigset_t *unewset = (sigset_t *)regs->d1; | ||
84 | size_t sigsetsize = (size_t)regs->d2; | ||
85 | sigset_t saveset, newset; | ||
86 | |||
87 | /* XXX: Don't preclude handling different sized sigset_t's. */ | ||
88 | if (sigsetsize != sizeof(sigset_t)) | ||
89 | return -EINVAL; | ||
90 | |||
91 | if (copy_from_user(&newset, unewset, sizeof(newset))) | ||
92 | return -EFAULT; | ||
93 | sigdelsetmask(&newset, ~_BLOCKABLE); | ||
94 | |||
95 | spin_lock_irq(¤t->sighand->siglock); | ||
96 | saveset = current->blocked; | ||
97 | current->blocked = newset; | ||
98 | recalc_sigpending(); | ||
99 | spin_unlock_irq(¤t->sighand->siglock); | ||
100 | |||
101 | regs->d0 = -EINTR; | ||
102 | while (1) { | ||
103 | current->state = TASK_INTERRUPTIBLE; | ||
104 | schedule(); | ||
105 | if (do_signal(&saveset, regs)) | ||
106 | return -EINTR; | ||
107 | } | ||
108 | } | ||
109 | |||
110 | asmlinkage int | ||
111 | sys_sigaction(int sig, const struct old_sigaction *act, | ||
112 | struct old_sigaction *oact) | ||
113 | { | ||
114 | struct k_sigaction new_ka, old_ka; | ||
115 | int ret; | ||
116 | |||
117 | if (act) { | ||
118 | old_sigset_t mask; | ||
119 | if (!access_ok(VERIFY_READ, act, sizeof(*act)) || | ||
120 | __get_user(new_ka.sa.sa_handler, &act->sa_handler) || | ||
121 | __get_user(new_ka.sa.sa_restorer, &act->sa_restorer)) | ||
122 | return -EFAULT; | ||
123 | __get_user(new_ka.sa.sa_flags, &act->sa_flags); | ||
124 | __get_user(mask, &act->sa_mask); | ||
125 | siginitset(&new_ka.sa.sa_mask, mask); | ||
126 | } | ||
127 | |||
128 | ret = do_sigaction(sig, act ? &new_ka : NULL, oact ? &old_ka : NULL); | ||
129 | |||
130 | if (!ret && oact) { | ||
131 | if (!access_ok(VERIFY_WRITE, oact, sizeof(*oact)) || | ||
132 | __put_user(old_ka.sa.sa_handler, &oact->sa_handler) || | ||
133 | __put_user(old_ka.sa.sa_restorer, &oact->sa_restorer)) | ||
134 | return -EFAULT; | ||
135 | __put_user(old_ka.sa.sa_flags, &oact->sa_flags); | ||
136 | __put_user(old_ka.sa.sa_mask.sig[0], &oact->sa_mask); | ||
137 | } | ||
138 | |||
139 | return ret; | ||
140 | } | ||
141 | |||
142 | asmlinkage int | ||
143 | sys_sigaltstack(const stack_t *uss, stack_t *uoss) | ||
144 | { | ||
145 | return do_sigaltstack(uss, uoss, rdusp()); | ||
146 | } | ||
147 | |||
148 | |||
149 | /* | ||
150 | * Do a signal return; undo the signal stack. | ||
151 | * | ||
152 | * Keep the return code on the stack quadword aligned! | ||
153 | * That makes the cache flush below easier. | ||
154 | */ | ||
155 | |||
156 | struct sigframe | ||
157 | { | ||
158 | char *pretcode; | ||
159 | int sig; | ||
160 | int code; | ||
161 | struct sigcontext *psc; | ||
162 | char retcode[8]; | ||
163 | unsigned long extramask[_NSIG_WORDS-1]; | ||
164 | struct sigcontext sc; | ||
165 | }; | ||
166 | |||
167 | struct rt_sigframe | ||
168 | { | ||
169 | char *pretcode; | ||
170 | int sig; | ||
171 | struct siginfo *pinfo; | ||
172 | void *puc; | ||
173 | char retcode[8]; | ||
174 | struct siginfo info; | ||
175 | struct ucontext uc; | ||
176 | }; | ||
177 | |||
178 | #ifdef CONFIG_FPU | ||
179 | |||
180 | static unsigned char fpu_version = 0; /* version number of fpu, set by setup_frame */ | ||
181 | |||
182 | static inline int restore_fpu_state(struct sigcontext *sc) | ||
183 | { | ||
184 | int err = 1; | ||
185 | |||
186 | if (FPU_IS_EMU) { | ||
187 | /* restore registers */ | ||
188 | memcpy(current->thread.fpcntl, sc->sc_fpcntl, 12); | ||
189 | memcpy(current->thread.fp, sc->sc_fpregs, 24); | ||
190 | return 0; | ||
191 | } | ||
192 | |||
193 | if (sc->sc_fpstate[0]) { | ||
194 | /* Verify the frame format. */ | ||
195 | if (sc->sc_fpstate[0] != fpu_version) | ||
196 | goto out; | ||
197 | |||
198 | __asm__ volatile (".chip 68k/68881\n\t" | ||
199 | "fmovemx %0,%/fp0-%/fp1\n\t" | ||
200 | "fmoveml %1,%/fpcr/%/fpsr/%/fpiar\n\t" | ||
201 | ".chip 68k" | ||
202 | : /* no outputs */ | ||
203 | : "m" (*sc->sc_fpregs), "m" (*sc->sc_fpcntl)); | ||
204 | } | ||
205 | __asm__ volatile (".chip 68k/68881\n\t" | ||
206 | "frestore %0\n\t" | ||
207 | ".chip 68k" : : "m" (*sc->sc_fpstate)); | ||
208 | err = 0; | ||
209 | |||
210 | out: | ||
211 | return err; | ||
212 | } | ||
213 | |||
214 | #define FPCONTEXT_SIZE 216 | ||
215 | #define uc_fpstate uc_filler[0] | ||
216 | #define uc_formatvec uc_filler[FPCONTEXT_SIZE/4] | ||
217 | #define uc_extra uc_filler[FPCONTEXT_SIZE/4+1] | ||
218 | |||
219 | static inline int rt_restore_fpu_state(struct ucontext *uc) | ||
220 | { | ||
221 | unsigned char fpstate[FPCONTEXT_SIZE]; | ||
222 | int context_size = 0; | ||
223 | fpregset_t fpregs; | ||
224 | int err = 1; | ||
225 | |||
226 | if (FPU_IS_EMU) { | ||
227 | /* restore fpu control register */ | ||
228 | if (__copy_from_user(current->thread.fpcntl, | ||
229 | &uc->uc_mcontext.fpregs.f_pcr, 12)) | ||
230 | goto out; | ||
231 | /* restore all other fpu register */ | ||
232 | if (__copy_from_user(current->thread.fp, | ||
233 | uc->uc_mcontext.fpregs.f_fpregs, 96)) | ||
234 | goto out; | ||
235 | return 0; | ||
236 | } | ||
237 | |||
238 | if (__get_user(*(long *)fpstate, (long *)&uc->uc_fpstate)) | ||
239 | goto out; | ||
240 | if (fpstate[0]) { | ||
241 | context_size = fpstate[1]; | ||
242 | |||
243 | /* Verify the frame format. */ | ||
244 | if (fpstate[0] != fpu_version) | ||
245 | goto out; | ||
246 | if (__copy_from_user(&fpregs, &uc->uc_mcontext.fpregs, | ||
247 | sizeof(fpregs))) | ||
248 | goto out; | ||
249 | __asm__ volatile (".chip 68k/68881\n\t" | ||
250 | "fmovemx %0,%/fp0-%/fp7\n\t" | ||
251 | "fmoveml %1,%/fpcr/%/fpsr/%/fpiar\n\t" | ||
252 | ".chip 68k" | ||
253 | : /* no outputs */ | ||
254 | : "m" (*fpregs.f_fpregs), | ||
255 | "m" (fpregs.f_pcr)); | ||
256 | } | ||
257 | if (context_size && | ||
258 | __copy_from_user(fpstate + 4, (long *)&uc->uc_fpstate + 1, | ||
259 | context_size)) | ||
260 | goto out; | ||
261 | __asm__ volatile (".chip 68k/68881\n\t" | ||
262 | "frestore %0\n\t" | ||
263 | ".chip 68k" : : "m" (*fpstate)); | ||
264 | err = 0; | ||
265 | |||
266 | out: | ||
267 | return err; | ||
268 | } | ||
269 | |||
270 | #endif | ||
271 | |||
272 | static inline int | ||
273 | restore_sigcontext(struct pt_regs *regs, struct sigcontext *usc, void *fp, | ||
274 | int *pd0) | ||
275 | { | ||
276 | int formatvec; | ||
277 | struct sigcontext context; | ||
278 | int err = 0; | ||
279 | |||
280 | /* get previous context */ | ||
281 | if (copy_from_user(&context, usc, sizeof(context))) | ||
282 | goto badframe; | ||
283 | |||
284 | /* restore passed registers */ | ||
285 | regs->d1 = context.sc_d1; | ||
286 | regs->a0 = context.sc_a0; | ||
287 | regs->a1 = context.sc_a1; | ||
288 | regs->sr = (regs->sr & 0xff00) | (context.sc_sr & 0xff); | ||
289 | regs->pc = context.sc_pc; | ||
290 | regs->orig_d0 = -1; /* disable syscall checks */ | ||
291 | wrusp(context.sc_usp); | ||
292 | formatvec = context.sc_formatvec; | ||
293 | regs->format = formatvec >> 12; | ||
294 | regs->vector = formatvec & 0xfff; | ||
295 | |||
296 | #ifdef CONFIG_FPU | ||
297 | err = restore_fpu_state(&context); | ||
298 | #endif | ||
299 | |||
300 | *pd0 = context.sc_d0; | ||
301 | return err; | ||
302 | |||
303 | badframe: | ||
304 | return 1; | ||
305 | } | ||
306 | |||
307 | static inline int | ||
308 | rt_restore_ucontext(struct pt_regs *regs, struct switch_stack *sw, | ||
309 | struct ucontext *uc, int *pd0) | ||
310 | { | ||
311 | int temp; | ||
312 | greg_t *gregs = uc->uc_mcontext.gregs; | ||
313 | unsigned long usp; | ||
314 | int err; | ||
315 | |||
316 | err = __get_user(temp, &uc->uc_mcontext.version); | ||
317 | if (temp != MCONTEXT_VERSION) | ||
318 | goto badframe; | ||
319 | /* restore passed registers */ | ||
320 | err |= __get_user(regs->d0, &gregs[0]); | ||
321 | err |= __get_user(regs->d1, &gregs[1]); | ||
322 | err |= __get_user(regs->d2, &gregs[2]); | ||
323 | err |= __get_user(regs->d3, &gregs[3]); | ||
324 | err |= __get_user(regs->d4, &gregs[4]); | ||
325 | err |= __get_user(regs->d5, &gregs[5]); | ||
326 | err |= __get_user(sw->d6, &gregs[6]); | ||
327 | err |= __get_user(sw->d7, &gregs[7]); | ||
328 | err |= __get_user(regs->a0, &gregs[8]); | ||
329 | err |= __get_user(regs->a1, &gregs[9]); | ||
330 | err |= __get_user(regs->a2, &gregs[10]); | ||
331 | err |= __get_user(sw->a3, &gregs[11]); | ||
332 | err |= __get_user(sw->a4, &gregs[12]); | ||
333 | err |= __get_user(sw->a5, &gregs[13]); | ||
334 | err |= __get_user(sw->a6, &gregs[14]); | ||
335 | err |= __get_user(usp, &gregs[15]); | ||
336 | wrusp(usp); | ||
337 | err |= __get_user(regs->pc, &gregs[16]); | ||
338 | err |= __get_user(temp, &gregs[17]); | ||
339 | regs->sr = (regs->sr & 0xff00) | (temp & 0xff); | ||
340 | regs->orig_d0 = -1; /* disable syscall checks */ | ||
341 | regs->format = temp >> 12; | ||
342 | regs->vector = temp & 0xfff; | ||
343 | |||
344 | if (do_sigaltstack(&uc->uc_stack, NULL, usp) == -EFAULT) | ||
345 | goto badframe; | ||
346 | |||
347 | *pd0 = regs->d0; | ||
348 | return err; | ||
349 | |||
350 | badframe: | ||
351 | return 1; | ||
352 | } | ||
353 | |||
354 | asmlinkage int do_sigreturn(unsigned long __unused) | ||
355 | { | ||
356 | struct switch_stack *sw = (struct switch_stack *) &__unused; | ||
357 | struct pt_regs *regs = (struct pt_regs *) (sw + 1); | ||
358 | unsigned long usp = rdusp(); | ||
359 | struct sigframe *frame = (struct sigframe *)(usp - 4); | ||
360 | sigset_t set; | ||
361 | int d0; | ||
362 | |||
363 | if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) | ||
364 | goto badframe; | ||
365 | if (__get_user(set.sig[0], &frame->sc.sc_mask) || | ||
366 | (_NSIG_WORDS > 1 && | ||
367 | __copy_from_user(&set.sig[1], &frame->extramask, | ||
368 | sizeof(frame->extramask)))) | ||
369 | goto badframe; | ||
370 | |||
371 | sigdelsetmask(&set, ~_BLOCKABLE); | ||
372 | spin_lock_irq(¤t->sighand->siglock); | ||
373 | current->blocked = set; | ||
374 | recalc_sigpending(); | ||
375 | spin_unlock_irq(¤t->sighand->siglock); | ||
376 | |||
377 | if (restore_sigcontext(regs, &frame->sc, frame + 1, &d0)) | ||
378 | goto badframe; | ||
379 | return d0; | ||
380 | |||
381 | badframe: | ||
382 | force_sig(SIGSEGV, current); | ||
383 | return 0; | ||
384 | } | ||
385 | |||
386 | asmlinkage int do_rt_sigreturn(unsigned long __unused) | ||
387 | { | ||
388 | struct switch_stack *sw = (struct switch_stack *) &__unused; | ||
389 | struct pt_regs *regs = (struct pt_regs *) (sw + 1); | ||
390 | unsigned long usp = rdusp(); | ||
391 | struct rt_sigframe *frame = (struct rt_sigframe *)(usp - 4); | ||
392 | sigset_t set; | ||
393 | int d0; | ||
394 | |||
395 | if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) | ||
396 | goto badframe; | ||
397 | if (__copy_from_user(&set, &frame->uc.uc_sigmask, sizeof(set))) | ||
398 | goto badframe; | ||
399 | |||
400 | sigdelsetmask(&set, ~_BLOCKABLE); | ||
401 | spin_lock_irq(¤t->sighand->siglock); | ||
402 | current->blocked = set; | ||
403 | recalc_sigpending(); | ||
404 | spin_unlock_irq(¤t->sighand->siglock); | ||
405 | |||
406 | if (rt_restore_ucontext(regs, sw, &frame->uc, &d0)) | ||
407 | goto badframe; | ||
408 | return d0; | ||
409 | |||
410 | badframe: | ||
411 | force_sig(SIGSEGV, current); | ||
412 | return 0; | ||
413 | } | ||
414 | |||
415 | #ifdef CONFIG_FPU | ||
416 | /* | ||
417 | * Set up a signal frame. | ||
418 | */ | ||
419 | |||
420 | static inline void save_fpu_state(struct sigcontext *sc, struct pt_regs *regs) | ||
421 | { | ||
422 | if (FPU_IS_EMU) { | ||
423 | /* save registers */ | ||
424 | memcpy(sc->sc_fpcntl, current->thread.fpcntl, 12); | ||
425 | memcpy(sc->sc_fpregs, current->thread.fp, 24); | ||
426 | return; | ||
427 | } | ||
428 | |||
429 | __asm__ volatile (".chip 68k/68881\n\t" | ||
430 | "fsave %0\n\t" | ||
431 | ".chip 68k" | ||
432 | : : "m" (*sc->sc_fpstate) : "memory"); | ||
433 | |||
434 | if (sc->sc_fpstate[0]) { | ||
435 | fpu_version = sc->sc_fpstate[0]; | ||
436 | __asm__ volatile (".chip 68k/68881\n\t" | ||
437 | "fmovemx %/fp0-%/fp1,%0\n\t" | ||
438 | "fmoveml %/fpcr/%/fpsr/%/fpiar,%1\n\t" | ||
439 | ".chip 68k" | ||
440 | : /* no outputs */ | ||
441 | : "m" (*sc->sc_fpregs), | ||
442 | "m" (*sc->sc_fpcntl) | ||
443 | : "memory"); | ||
444 | } | ||
445 | } | ||
446 | |||
447 | static inline int rt_save_fpu_state(struct ucontext *uc, struct pt_regs *regs) | ||
448 | { | ||
449 | unsigned char fpstate[FPCONTEXT_SIZE]; | ||
450 | int context_size = 0; | ||
451 | int err = 0; | ||
452 | |||
453 | if (FPU_IS_EMU) { | ||
454 | /* save fpu control register */ | ||
455 | err |= copy_to_user(&uc->uc_mcontext.fpregs.f_pcr, | ||
456 | current->thread.fpcntl, 12); | ||
457 | /* save all other fpu register */ | ||
458 | err |= copy_to_user(uc->uc_mcontext.fpregs.f_fpregs, | ||
459 | current->thread.fp, 96); | ||
460 | return err; | ||
461 | } | ||
462 | |||
463 | __asm__ volatile (".chip 68k/68881\n\t" | ||
464 | "fsave %0\n\t" | ||
465 | ".chip 68k" | ||
466 | : : "m" (*fpstate) : "memory"); | ||
467 | |||
468 | err |= __put_user(*(long *)fpstate, (long *)&uc->uc_fpstate); | ||
469 | if (fpstate[0]) { | ||
470 | fpregset_t fpregs; | ||
471 | context_size = fpstate[1]; | ||
472 | fpu_version = fpstate[0]; | ||
473 | __asm__ volatile (".chip 68k/68881\n\t" | ||
474 | "fmovemx %/fp0-%/fp7,%0\n\t" | ||
475 | "fmoveml %/fpcr/%/fpsr/%/fpiar,%1\n\t" | ||
476 | ".chip 68k" | ||
477 | : /* no outputs */ | ||
478 | : "m" (*fpregs.f_fpregs), | ||
479 | "m" (fpregs.f_pcr) | ||
480 | : "memory"); | ||
481 | err |= copy_to_user(&uc->uc_mcontext.fpregs, &fpregs, | ||
482 | sizeof(fpregs)); | ||
483 | } | ||
484 | if (context_size) | ||
485 | err |= copy_to_user((long *)&uc->uc_fpstate + 1, fpstate + 4, | ||
486 | context_size); | ||
487 | return err; | ||
488 | } | ||
489 | |||
490 | #endif | ||
491 | |||
492 | static void setup_sigcontext(struct sigcontext *sc, struct pt_regs *regs, | ||
493 | unsigned long mask) | ||
494 | { | ||
495 | sc->sc_mask = mask; | ||
496 | sc->sc_usp = rdusp(); | ||
497 | sc->sc_d0 = regs->d0; | ||
498 | sc->sc_d1 = regs->d1; | ||
499 | sc->sc_a0 = regs->a0; | ||
500 | sc->sc_a1 = regs->a1; | ||
501 | sc->sc_sr = regs->sr; | ||
502 | sc->sc_pc = regs->pc; | ||
503 | sc->sc_formatvec = regs->format << 12 | regs->vector; | ||
504 | #ifdef CONFIG_FPU | ||
505 | save_fpu_state(sc, regs); | ||
506 | #endif | ||
507 | } | ||
508 | |||
509 | static inline int rt_setup_ucontext(struct ucontext *uc, struct pt_regs *regs) | ||
510 | { | ||
511 | struct switch_stack *sw = (struct switch_stack *)regs - 1; | ||
512 | greg_t *gregs = uc->uc_mcontext.gregs; | ||
513 | int err = 0; | ||
514 | |||
515 | err |= __put_user(MCONTEXT_VERSION, &uc->uc_mcontext.version); | ||
516 | err |= __put_user(regs->d0, &gregs[0]); | ||
517 | err |= __put_user(regs->d1, &gregs[1]); | ||
518 | err |= __put_user(regs->d2, &gregs[2]); | ||
519 | err |= __put_user(regs->d3, &gregs[3]); | ||
520 | err |= __put_user(regs->d4, &gregs[4]); | ||
521 | err |= __put_user(regs->d5, &gregs[5]); | ||
522 | err |= __put_user(sw->d6, &gregs[6]); | ||
523 | err |= __put_user(sw->d7, &gregs[7]); | ||
524 | err |= __put_user(regs->a0, &gregs[8]); | ||
525 | err |= __put_user(regs->a1, &gregs[9]); | ||
526 | err |= __put_user(regs->a2, &gregs[10]); | ||
527 | err |= __put_user(sw->a3, &gregs[11]); | ||
528 | err |= __put_user(sw->a4, &gregs[12]); | ||
529 | err |= __put_user(sw->a5, &gregs[13]); | ||
530 | err |= __put_user(sw->a6, &gregs[14]); | ||
531 | err |= __put_user(rdusp(), &gregs[15]); | ||
532 | err |= __put_user(regs->pc, &gregs[16]); | ||
533 | err |= __put_user(regs->sr, &gregs[17]); | ||
534 | #ifdef CONFIG_FPU | ||
535 | err |= rt_save_fpu_state(uc, regs); | ||
536 | #endif | ||
537 | return err; | ||
538 | } | ||
539 | |||
540 | static inline void push_cache (unsigned long vaddr) | ||
541 | { | ||
542 | } | ||
543 | |||
544 | static inline void * | ||
545 | get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, size_t frame_size) | ||
546 | { | ||
547 | unsigned long usp; | ||
548 | |||
549 | /* Default to using normal stack. */ | ||
550 | usp = rdusp(); | ||
551 | |||
552 | /* This is the X/Open sanctioned signal stack switching. */ | ||
553 | if (ka->sa.sa_flags & SA_ONSTACK) { | ||
554 | if (!on_sig_stack(usp)) | ||
555 | usp = current->sas_ss_sp + current->sas_ss_size; | ||
556 | } | ||
557 | return (void *)((usp - frame_size) & -8UL); | ||
558 | } | ||
559 | |||
560 | static void setup_frame (int sig, struct k_sigaction *ka, | ||
561 | sigset_t *set, struct pt_regs *regs) | ||
562 | { | ||
563 | struct sigframe *frame; | ||
564 | struct sigcontext context; | ||
565 | int err = 0; | ||
566 | |||
567 | frame = get_sigframe(ka, regs, sizeof(*frame)); | ||
568 | |||
569 | err |= __put_user((current_thread_info()->exec_domain | ||
570 | && current_thread_info()->exec_domain->signal_invmap | ||
571 | && sig < 32 | ||
572 | ? current_thread_info()->exec_domain->signal_invmap[sig] | ||
573 | : sig), | ||
574 | &frame->sig); | ||
575 | |||
576 | err |= __put_user(regs->vector, &frame->code); | ||
577 | err |= __put_user(&frame->sc, &frame->psc); | ||
578 | |||
579 | if (_NSIG_WORDS > 1) | ||
580 | err |= copy_to_user(frame->extramask, &set->sig[1], | ||
581 | sizeof(frame->extramask)); | ||
582 | |||
583 | setup_sigcontext(&context, regs, set->sig[0]); | ||
584 | err |= copy_to_user (&frame->sc, &context, sizeof(context)); | ||
585 | |||
586 | /* Set up to return from userspace. */ | ||
587 | err |= __put_user(frame->retcode, &frame->pretcode); | ||
588 | /* moveq #,d0; trap #0 */ | ||
589 | err |= __put_user(0x70004e40 + (__NR_sigreturn << 16), | ||
590 | (long *)(frame->retcode)); | ||
591 | |||
592 | if (err) | ||
593 | goto give_sigsegv; | ||
594 | |||
595 | push_cache ((unsigned long) &frame->retcode); | ||
596 | |||
597 | /* Set up registers for signal handler */ | ||
598 | wrusp ((unsigned long) frame); | ||
599 | regs->pc = (unsigned long) ka->sa.sa_handler; | ||
600 | |||
601 | adjust_stack: | ||
602 | /* Prepare to skip over the extra stuff in the exception frame. */ | ||
603 | if (regs->stkadj) { | ||
604 | struct pt_regs *tregs = | ||
605 | (struct pt_regs *)((ulong)regs + regs->stkadj); | ||
606 | #if DEBUG | ||
607 | printk(KERN_DEBUG "Performing stackadjust=%04x\n", regs->stkadj); | ||
608 | #endif | ||
609 | /* This must be copied with decreasing addresses to | ||
610 | handle overlaps. */ | ||
611 | tregs->vector = 0; | ||
612 | tregs->format = 0; | ||
613 | tregs->pc = regs->pc; | ||
614 | tregs->sr = regs->sr; | ||
615 | } | ||
616 | return; | ||
617 | |||
618 | give_sigsegv: | ||
619 | force_sigsegv(sig, current); | ||
620 | goto adjust_stack; | ||
621 | } | ||
622 | |||
623 | static void setup_rt_frame (int sig, struct k_sigaction *ka, siginfo_t *info, | ||
624 | sigset_t *set, struct pt_regs *regs) | ||
625 | { | ||
626 | struct rt_sigframe *frame; | ||
627 | int err = 0; | ||
628 | |||
629 | frame = get_sigframe(ka, regs, sizeof(*frame)); | ||
630 | |||
631 | err |= __put_user((current_thread_info()->exec_domain | ||
632 | && current_thread_info()->exec_domain->signal_invmap | ||
633 | && sig < 32 | ||
634 | ? current_thread_info()->exec_domain->signal_invmap[sig] | ||
635 | : sig), | ||
636 | &frame->sig); | ||
637 | err |= __put_user(&frame->info, &frame->pinfo); | ||
638 | err |= __put_user(&frame->uc, &frame->puc); | ||
639 | err |= copy_siginfo_to_user(&frame->info, info); | ||
640 | |||
641 | /* Create the ucontext. */ | ||
642 | err |= __put_user(0, &frame->uc.uc_flags); | ||
643 | err |= __put_user(0, &frame->uc.uc_link); | ||
644 | err |= __put_user((void *)current->sas_ss_sp, | ||
645 | &frame->uc.uc_stack.ss_sp); | ||
646 | err |= __put_user(sas_ss_flags(rdusp()), | ||
647 | &frame->uc.uc_stack.ss_flags); | ||
648 | err |= __put_user(current->sas_ss_size, &frame->uc.uc_stack.ss_size); | ||
649 | err |= rt_setup_ucontext(&frame->uc, regs); | ||
650 | err |= copy_to_user (&frame->uc.uc_sigmask, set, sizeof(*set)); | ||
651 | |||
652 | /* Set up to return from userspace. */ | ||
653 | err |= __put_user(frame->retcode, &frame->pretcode); | ||
654 | /* moveq #,d0; notb d0; trap #0 */ | ||
655 | err |= __put_user(0x70004600 + ((__NR_rt_sigreturn ^ 0xff) << 16), | ||
656 | (long *)(frame->retcode + 0)); | ||
657 | err |= __put_user(0x4e40, (short *)(frame->retcode + 4)); | ||
658 | |||
659 | if (err) | ||
660 | goto give_sigsegv; | ||
661 | |||
662 | push_cache ((unsigned long) &frame->retcode); | ||
663 | |||
664 | /* Set up registers for signal handler */ | ||
665 | wrusp ((unsigned long) frame); | ||
666 | regs->pc = (unsigned long) ka->sa.sa_handler; | ||
667 | |||
668 | adjust_stack: | ||
669 | /* Prepare to skip over the extra stuff in the exception frame. */ | ||
670 | if (regs->stkadj) { | ||
671 | struct pt_regs *tregs = | ||
672 | (struct pt_regs *)((ulong)regs + regs->stkadj); | ||
673 | #if DEBUG | ||
674 | printk(KERN_DEBUG "Performing stackadjust=%04x\n", regs->stkadj); | ||
675 | #endif | ||
676 | /* This must be copied with decreasing addresses to | ||
677 | handle overlaps. */ | ||
678 | tregs->vector = 0; | ||
679 | tregs->format = 0; | ||
680 | tregs->pc = regs->pc; | ||
681 | tregs->sr = regs->sr; | ||
682 | } | ||
683 | return; | ||
684 | |||
685 | give_sigsegv: | ||
686 | force_sigsegv(sig, current); | ||
687 | goto adjust_stack; | ||
688 | } | ||
689 | |||
690 | static inline void | ||
691 | handle_restart(struct pt_regs *regs, struct k_sigaction *ka, int has_handler) | ||
692 | { | ||
693 | switch (regs->d0) { | ||
694 | case -ERESTARTNOHAND: | ||
695 | if (!has_handler) | ||
696 | goto do_restart; | ||
697 | regs->d0 = -EINTR; | ||
698 | break; | ||
699 | |||
700 | case -ERESTARTSYS: | ||
701 | if (has_handler && !(ka->sa.sa_flags & SA_RESTART)) { | ||
702 | regs->d0 = -EINTR; | ||
703 | break; | ||
704 | } | ||
705 | /* fallthrough */ | ||
706 | case -ERESTARTNOINTR: | ||
707 | do_restart: | ||
708 | regs->d0 = regs->orig_d0; | ||
709 | regs->pc -= 2; | ||
710 | break; | ||
711 | } | ||
712 | } | ||
713 | |||
714 | /* | ||
715 | * OK, we're invoking a handler | ||
716 | */ | ||
717 | static void | ||
718 | handle_signal(int sig, struct k_sigaction *ka, siginfo_t *info, | ||
719 | sigset_t *oldset, struct pt_regs *regs) | ||
720 | { | ||
721 | /* are we from a system call? */ | ||
722 | if (regs->orig_d0 >= 0) | ||
723 | /* If so, check system call restarting.. */ | ||
724 | handle_restart(regs, ka, 1); | ||
725 | |||
726 | /* set up the stack frame */ | ||
727 | if (ka->sa.sa_flags & SA_SIGINFO) | ||
728 | setup_rt_frame(sig, ka, info, oldset, regs); | ||
729 | else | ||
730 | setup_frame(sig, ka, oldset, regs); | ||
731 | |||
732 | if (ka->sa.sa_flags & SA_ONESHOT) | ||
733 | ka->sa.sa_handler = SIG_DFL; | ||
734 | |||
735 | if (!(ka->sa.sa_flags & SA_NODEFER)) { | ||
736 | spin_lock_irq(¤t->sighand->siglock); | ||
737 | sigorsets(¤t->blocked,¤t->blocked,&ka->sa.sa_mask); | ||
738 | sigaddset(¤t->blocked,sig); | ||
739 | recalc_sigpending(); | ||
740 | spin_unlock_irq(¤t->sighand->siglock); | ||
741 | } | ||
742 | } | ||
743 | |||
744 | /* | ||
745 | * Note that 'init' is a special process: it doesn't get signals it doesn't | ||
746 | * want to handle. Thus you cannot kill init even with a SIGKILL even by | ||
747 | * mistake. | ||
748 | */ | ||
749 | asmlinkage int do_signal(sigset_t *oldset, struct pt_regs *regs) | ||
750 | { | ||
751 | struct k_sigaction ka; | ||
752 | siginfo_t info; | ||
753 | int signr; | ||
754 | |||
755 | /* | ||
756 | * We want the common case to go fast, which | ||
757 | * is why we may in certain cases get here from | ||
758 | * kernel mode. Just return without doing anything | ||
759 | * if so. | ||
760 | */ | ||
761 | if (!user_mode(regs)) | ||
762 | return 1; | ||
763 | |||
764 | if (!oldset) | ||
765 | oldset = ¤t->blocked; | ||
766 | |||
767 | signr = get_signal_to_deliver(&info, &ka, regs, NULL); | ||
768 | if (signr > 0) { | ||
769 | /* Whee! Actually deliver the signal. */ | ||
770 | handle_signal(signr, &ka, &info, oldset, regs); | ||
771 | return 1; | ||
772 | } | ||
773 | |||
774 | /* Did we come from a system call? */ | ||
775 | if (regs->orig_d0 >= 0) { | ||
776 | /* Restart the system call - no handlers present */ | ||
777 | if (regs->d0 == -ERESTARTNOHAND | ||
778 | || regs->d0 == -ERESTARTSYS | ||
779 | || regs->d0 == -ERESTARTNOINTR) { | ||
780 | regs->d0 = regs->orig_d0; | ||
781 | regs->pc -= 2; | ||
782 | } else if (regs->d0 == -ERESTART_RESTARTBLOCK) { | ||
783 | regs->d0 = __NR_restart_syscall; | ||
784 | regs->pc -= 2; | ||
785 | } | ||
786 | } | ||
787 | return 0; | ||
788 | } | ||
diff --git a/arch/m68knommu/kernel/sys_m68k.c b/arch/m68knommu/kernel/sys_m68k.c new file mode 100644 index 000000000000..d87e1e0a1336 --- /dev/null +++ b/arch/m68knommu/kernel/sys_m68k.c | |||
@@ -0,0 +1,208 @@ | |||
1 | /* | ||
2 | * linux/arch/m68knommu/kernel/sys_m68k.c | ||
3 | * | ||
4 | * This file contains various random system calls that | ||
5 | * have a non-standard calling sequence on the Linux/m68k | ||
6 | * platform. | ||
7 | */ | ||
8 | |||
9 | #include <linux/errno.h> | ||
10 | #include <linux/sched.h> | ||
11 | #include <linux/mm.h> | ||
12 | #include <linux/smp.h> | ||
13 | #include <linux/smp_lock.h> | ||
14 | #include <linux/sem.h> | ||
15 | #include <linux/msg.h> | ||
16 | #include <linux/shm.h> | ||
17 | #include <linux/stat.h> | ||
18 | #include <linux/syscalls.h> | ||
19 | #include <linux/mman.h> | ||
20 | #include <linux/file.h> | ||
21 | #include <linux/utsname.h> | ||
22 | |||
23 | #include <asm/setup.h> | ||
24 | #include <asm/uaccess.h> | ||
25 | #include <asm/cachectl.h> | ||
26 | #include <asm/traps.h> | ||
27 | #include <asm/ipc.h> | ||
28 | #include <asm/cacheflush.h> | ||
29 | |||
30 | /* | ||
31 | * sys_pipe() is the normal C calling standard for creating | ||
32 | * a pipe. It's not the way unix traditionally does this, though. | ||
33 | */ | ||
34 | asmlinkage int sys_pipe(unsigned long * fildes) | ||
35 | { | ||
36 | int fd[2]; | ||
37 | int error; | ||
38 | |||
39 | error = do_pipe(fd); | ||
40 | if (!error) { | ||
41 | if (copy_to_user(fildes, fd, 2*sizeof(int))) | ||
42 | error = -EFAULT; | ||
43 | } | ||
44 | return error; | ||
45 | } | ||
46 | |||
47 | /* common code for old and new mmaps */ | ||
48 | static inline long do_mmap2( | ||
49 | unsigned long addr, unsigned long len, | ||
50 | unsigned long prot, unsigned long flags, | ||
51 | unsigned long fd, unsigned long pgoff) | ||
52 | { | ||
53 | int error = -EBADF; | ||
54 | struct file * file = NULL; | ||
55 | |||
56 | flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE); | ||
57 | if (!(flags & MAP_ANONYMOUS)) { | ||
58 | file = fget(fd); | ||
59 | if (!file) | ||
60 | goto out; | ||
61 | } | ||
62 | |||
63 | down_write(¤t->mm->mmap_sem); | ||
64 | error = do_mmap_pgoff(file, addr, len, prot, flags, pgoff); | ||
65 | up_write(¤t->mm->mmap_sem); | ||
66 | |||
67 | if (file) | ||
68 | fput(file); | ||
69 | out: | ||
70 | return error; | ||
71 | } | ||
72 | |||
73 | asmlinkage long sys_mmap2(unsigned long addr, unsigned long len, | ||
74 | unsigned long prot, unsigned long flags, | ||
75 | unsigned long fd, unsigned long pgoff) | ||
76 | { | ||
77 | return do_mmap2(addr, len, prot, flags, fd, pgoff); | ||
78 | } | ||
79 | |||
80 | /* | ||
81 | * Perform the select(nd, in, out, ex, tv) and mmap() system | ||
82 | * calls. Linux/m68k cloned Linux/i386, which didn't use to be able to | ||
83 | * handle more than 4 system call parameters, so these system calls | ||
84 | * used a memory block for parameter passing.. | ||
85 | */ | ||
86 | |||
87 | struct mmap_arg_struct { | ||
88 | unsigned long addr; | ||
89 | unsigned long len; | ||
90 | unsigned long prot; | ||
91 | unsigned long flags; | ||
92 | unsigned long fd; | ||
93 | unsigned long offset; | ||
94 | }; | ||
95 | |||
96 | asmlinkage int old_mmap(struct mmap_arg_struct *arg) | ||
97 | { | ||
98 | struct mmap_arg_struct a; | ||
99 | int error = -EFAULT; | ||
100 | |||
101 | if (copy_from_user(&a, arg, sizeof(a))) | ||
102 | goto out; | ||
103 | |||
104 | error = -EINVAL; | ||
105 | if (a.offset & ~PAGE_MASK) | ||
106 | goto out; | ||
107 | |||
108 | a.flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE); | ||
109 | |||
110 | error = do_mmap2(a.addr, a.len, a.prot, a.flags, a.fd, a.offset >> PAGE_SHIFT); | ||
111 | out: | ||
112 | return error; | ||
113 | } | ||
114 | |||
115 | struct sel_arg_struct { | ||
116 | unsigned long n; | ||
117 | fd_set *inp, *outp, *exp; | ||
118 | struct timeval *tvp; | ||
119 | }; | ||
120 | |||
121 | asmlinkage int old_select(struct sel_arg_struct *arg) | ||
122 | { | ||
123 | struct sel_arg_struct a; | ||
124 | |||
125 | if (copy_from_user(&a, arg, sizeof(a))) | ||
126 | return -EFAULT; | ||
127 | /* sys_select() does the appropriate kernel locking */ | ||
128 | return sys_select(a.n, a.inp, a.outp, a.exp, a.tvp); | ||
129 | } | ||
130 | |||
131 | /* | ||
132 | * sys_ipc() is the de-multiplexer for the SysV IPC calls.. | ||
133 | * | ||
134 | * This is really horribly ugly. | ||
135 | */ | ||
136 | asmlinkage int sys_ipc (uint call, int first, int second, | ||
137 | int third, void *ptr, long fifth) | ||
138 | { | ||
139 | int version; | ||
140 | |||
141 | version = call >> 16; /* hack for backward compatibility */ | ||
142 | call &= 0xffff; | ||
143 | |||
144 | if (call <= SEMCTL) | ||
145 | switch (call) { | ||
146 | case SEMOP: | ||
147 | return sys_semop (first, (struct sembuf *)ptr, second); | ||
148 | case SEMGET: | ||
149 | return sys_semget (first, second, third); | ||
150 | case SEMCTL: { | ||
151 | union semun fourth; | ||
152 | if (!ptr) | ||
153 | return -EINVAL; | ||
154 | if (get_user(fourth.__pad, (void **) ptr)) | ||
155 | return -EFAULT; | ||
156 | return sys_semctl (first, second, third, fourth); | ||
157 | } | ||
158 | default: | ||
159 | return -EINVAL; | ||
160 | } | ||
161 | if (call <= MSGCTL) | ||
162 | switch (call) { | ||
163 | case MSGSND: | ||
164 | return sys_msgsnd (first, (struct msgbuf *) ptr, | ||
165 | second, third); | ||
166 | case MSGRCV: | ||
167 | switch (version) { | ||
168 | case 0: { | ||
169 | struct ipc_kludge tmp; | ||
170 | if (!ptr) | ||
171 | return -EINVAL; | ||
172 | if (copy_from_user (&tmp, | ||
173 | (struct ipc_kludge *)ptr, | ||
174 | sizeof (tmp))) | ||
175 | return -EFAULT; | ||
176 | return sys_msgrcv (first, tmp.msgp, second, | ||
177 | tmp.msgtyp, third); | ||
178 | } | ||
179 | default: | ||
180 | return sys_msgrcv (first, | ||
181 | (struct msgbuf *) ptr, | ||
182 | second, fifth, third); | ||
183 | } | ||
184 | case MSGGET: | ||
185 | return sys_msgget ((key_t) first, second); | ||
186 | case MSGCTL: | ||
187 | return sys_msgctl (first, second, | ||
188 | (struct msqid_ds *) ptr); | ||
189 | default: | ||
190 | return -EINVAL; | ||
191 | } | ||
192 | |||
193 | return -EINVAL; | ||
194 | } | ||
195 | |||
196 | /* sys_cacheflush -- flush (part of) the processor cache. */ | ||
197 | asmlinkage int | ||
198 | sys_cacheflush (unsigned long addr, int scope, int cache, unsigned long len) | ||
199 | { | ||
200 | flush_cache_all(); | ||
201 | return(0); | ||
202 | } | ||
203 | |||
204 | asmlinkage int sys_getpagesize(void) | ||
205 | { | ||
206 | return PAGE_SIZE; | ||
207 | } | ||
208 | |||
diff --git a/arch/m68knommu/kernel/syscalltable.S b/arch/m68knommu/kernel/syscalltable.S new file mode 100644 index 000000000000..897deaa06b01 --- /dev/null +++ b/arch/m68knommu/kernel/syscalltable.S | |||
@@ -0,0 +1,308 @@ | |||
1 | /* | ||
2 | * linux/arch/m68knommu/kernel/syscalltable.S | ||
3 | * | ||
4 | * Copyright (C) 2002, Greg Ungerer (gerg@snapgear.com) | ||
5 | * | ||
6 | * Based on older entry.S files, the following copyrights apply: | ||
7 | * | ||
8 | * Copyright (C) 1998 D. Jeff Dionne <jeff@lineo.ca>, | ||
9 | * Kenneth Albanowski <kjahds@kjahds.com>, | ||
10 | * Copyright (C) 2000 Lineo Inc. (www.lineo.com) | ||
11 | * Copyright (C) 1991, 1992 Linus Torvalds | ||
12 | */ | ||
13 | |||
14 | #include <linux/config.h> | ||
15 | #include <linux/sys.h> | ||
16 | #include <linux/linkage.h> | ||
17 | #include <asm/unistd.h> | ||
18 | |||
19 | .text | ||
20 | ALIGN | ||
21 | ENTRY(sys_call_table) | ||
22 | .long sys_ni_syscall /* 0 - old "setup()" system call*/ | ||
23 | .long sys_exit | ||
24 | .long sys_fork | ||
25 | .long sys_read | ||
26 | .long sys_write | ||
27 | .long sys_open /* 5 */ | ||
28 | .long sys_close | ||
29 | .long sys_waitpid | ||
30 | .long sys_creat | ||
31 | .long sys_link | ||
32 | .long sys_unlink /* 10 */ | ||
33 | .long sys_execve | ||
34 | .long sys_chdir | ||
35 | .long sys_time | ||
36 | .long sys_mknod | ||
37 | .long sys_chmod /* 15 */ | ||
38 | .long sys_chown16 | ||
39 | .long sys_ni_syscall /* old break syscall holder */ | ||
40 | .long sys_stat | ||
41 | .long sys_lseek | ||
42 | .long sys_getpid /* 20 */ | ||
43 | .long sys_mount | ||
44 | .long sys_oldumount | ||
45 | .long sys_setuid16 | ||
46 | .long sys_getuid16 | ||
47 | .long sys_stime /* 25 */ | ||
48 | .long sys_ptrace | ||
49 | .long sys_alarm | ||
50 | .long sys_fstat | ||
51 | .long sys_pause | ||
52 | .long sys_utime /* 30 */ | ||
53 | .long sys_ni_syscall /* old stty syscall holder */ | ||
54 | .long sys_ni_syscall /* old gtty syscall holder */ | ||
55 | .long sys_access | ||
56 | .long sys_nice | ||
57 | .long sys_ni_syscall /* 35 */ /* old ftime syscall holder */ | ||
58 | .long sys_sync | ||
59 | .long sys_kill | ||
60 | .long sys_rename | ||
61 | .long sys_mkdir | ||
62 | .long sys_rmdir /* 40 */ | ||
63 | .long sys_dup | ||
64 | .long sys_pipe | ||
65 | .long sys_times | ||
66 | .long sys_ni_syscall /* old prof syscall holder */ | ||
67 | .long sys_brk /* 45 */ | ||
68 | .long sys_setgid16 | ||
69 | .long sys_getgid16 | ||
70 | .long sys_signal | ||
71 | .long sys_geteuid16 | ||
72 | .long sys_getegid16 /* 50 */ | ||
73 | .long sys_acct | ||
74 | .long sys_umount /* recycled never used phys() */ | ||
75 | .long sys_ni_syscall /* old lock syscall holder */ | ||
76 | .long sys_ioctl | ||
77 | .long sys_fcntl /* 55 */ | ||
78 | .long sys_ni_syscall /* old mpx syscall holder */ | ||
79 | .long sys_setpgid | ||
80 | .long sys_ni_syscall /* old ulimit syscall holder */ | ||
81 | .long sys_ni_syscall | ||
82 | .long sys_umask /* 60 */ | ||
83 | .long sys_chroot | ||
84 | .long sys_ustat | ||
85 | .long sys_dup2 | ||
86 | .long sys_getppid | ||
87 | .long sys_getpgrp /* 65 */ | ||
88 | .long sys_setsid | ||
89 | .long sys_sigaction | ||
90 | .long sys_sgetmask | ||
91 | .long sys_ssetmask | ||
92 | .long sys_setreuid16 /* 70 */ | ||
93 | .long sys_setregid16 | ||
94 | .long sys_sigsuspend | ||
95 | .long sys_sigpending | ||
96 | .long sys_sethostname | ||
97 | .long sys_setrlimit /* 75 */ | ||
98 | .long sys_old_getrlimit | ||
99 | .long sys_getrusage | ||
100 | .long sys_gettimeofday | ||
101 | .long sys_settimeofday | ||
102 | .long sys_getgroups16 /* 80 */ | ||
103 | .long sys_setgroups16 | ||
104 | .long old_select | ||
105 | .long sys_symlink | ||
106 | .long sys_lstat | ||
107 | .long sys_readlink /* 85 */ | ||
108 | .long sys_uselib | ||
109 | .long sys_ni_syscall /* sys_swapon */ | ||
110 | .long sys_reboot | ||
111 | .long old_readdir | ||
112 | .long old_mmap /* 90 */ | ||
113 | .long sys_munmap | ||
114 | .long sys_truncate | ||
115 | .long sys_ftruncate | ||
116 | .long sys_fchmod | ||
117 | .long sys_fchown16 /* 95 */ | ||
118 | .long sys_getpriority | ||
119 | .long sys_setpriority | ||
120 | .long sys_ni_syscall /* old profil syscall holder */ | ||
121 | .long sys_statfs | ||
122 | .long sys_fstatfs /* 100 */ | ||
123 | .long sys_ni_syscall /* ioperm for i386 */ | ||
124 | .long sys_socketcall | ||
125 | .long sys_syslog | ||
126 | .long sys_setitimer | ||
127 | .long sys_getitimer /* 105 */ | ||
128 | .long sys_newstat | ||
129 | .long sys_newlstat | ||
130 | .long sys_newfstat | ||
131 | .long sys_ni_syscall | ||
132 | .long sys_ni_syscall /* iopl for i386 */ /* 110 */ | ||
133 | .long sys_vhangup | ||
134 | .long sys_ni_syscall /* obsolete idle() syscall */ | ||
135 | .long sys_ni_syscall /* vm86old for i386 */ | ||
136 | .long sys_wait4 | ||
137 | .long sys_ni_syscall /* 115 */ /* sys_swapoff */ | ||
138 | .long sys_sysinfo | ||
139 | .long sys_ipc | ||
140 | .long sys_fsync | ||
141 | .long sys_sigreturn | ||
142 | .long sys_clone /* 120 */ | ||
143 | .long sys_setdomainname | ||
144 | .long sys_newuname | ||
145 | .long sys_cacheflush /* modify_ldt for i386 */ | ||
146 | .long sys_adjtimex | ||
147 | .long sys_ni_syscall /* 125 */ /* sys_mprotect */ | ||
148 | .long sys_sigprocmask | ||
149 | .long sys_ni_syscall /* old "creat_module" */ | ||
150 | .long sys_init_module | ||
151 | .long sys_delete_module | ||
152 | .long sys_ni_syscall /* 130: old "get_kernel_syms" */ | ||
153 | .long sys_quotactl | ||
154 | .long sys_getpgid | ||
155 | .long sys_fchdir | ||
156 | .long sys_bdflush | ||
157 | .long sys_sysfs /* 135 */ | ||
158 | .long sys_personality | ||
159 | .long sys_ni_syscall /* for afs_syscall */ | ||
160 | .long sys_setfsuid16 | ||
161 | .long sys_setfsgid16 | ||
162 | .long sys_llseek /* 140 */ | ||
163 | .long sys_getdents | ||
164 | .long sys_select | ||
165 | .long sys_flock | ||
166 | .long sys_ni_syscall /* sys_msync */ | ||
167 | .long sys_readv /* 145 */ | ||
168 | .long sys_writev | ||
169 | .long sys_getsid | ||
170 | .long sys_fdatasync | ||
171 | .long sys_sysctl | ||
172 | .long sys_ni_syscall /* 150 */ /* sys_mlock */ | ||
173 | .long sys_ni_syscall /* sys_munlock */ | ||
174 | .long sys_ni_syscall /* sys_mlockall */ | ||
175 | .long sys_ni_syscall /* sys_munlockall */ | ||
176 | .long sys_sched_setparam | ||
177 | .long sys_sched_getparam /* 155 */ | ||
178 | .long sys_sched_setscheduler | ||
179 | .long sys_sched_getscheduler | ||
180 | .long sys_sched_yield | ||
181 | .long sys_sched_get_priority_max | ||
182 | .long sys_sched_get_priority_min /* 160 */ | ||
183 | .long sys_sched_rr_get_interval | ||
184 | .long sys_nanosleep | ||
185 | .long sys_ni_syscall /* sys_mremap */ | ||
186 | .long sys_setresuid16 | ||
187 | .long sys_getresuid16 /* 165 */ | ||
188 | .long sys_getpagesize /* sys_getpagesize */ | ||
189 | .long sys_ni_syscall /* old "query_module" */ | ||
190 | .long sys_poll | ||
191 | .long sys_ni_syscall /* sys_nfsservctl */ | ||
192 | .long sys_setresgid16 /* 170 */ | ||
193 | .long sys_getresgid16 | ||
194 | .long sys_prctl | ||
195 | .long sys_rt_sigreturn | ||
196 | .long sys_rt_sigaction | ||
197 | .long sys_rt_sigprocmask /* 175 */ | ||
198 | .long sys_rt_sigpending | ||
199 | .long sys_rt_sigtimedwait | ||
200 | .long sys_rt_sigqueueinfo | ||
201 | .long sys_rt_sigsuspend | ||
202 | .long sys_pread64 /* 180 */ | ||
203 | .long sys_pwrite64 | ||
204 | .long sys_lchown16 | ||
205 | .long sys_getcwd | ||
206 | .long sys_capget | ||
207 | .long sys_capset /* 185 */ | ||
208 | .long sys_sigaltstack | ||
209 | .long sys_sendfile | ||
210 | .long sys_ni_syscall /* streams1 */ | ||
211 | .long sys_ni_syscall /* streams2 */ | ||
212 | .long sys_vfork /* 190 */ | ||
213 | .long sys_getrlimit | ||
214 | .long sys_mmap2 | ||
215 | .long sys_truncate64 | ||
216 | .long sys_ftruncate64 | ||
217 | .long sys_stat64 /* 195 */ | ||
218 | .long sys_lstat64 | ||
219 | .long sys_fstat64 | ||
220 | .long sys_chown | ||
221 | .long sys_getuid | ||
222 | .long sys_getgid /* 200 */ | ||
223 | .long sys_geteuid | ||
224 | .long sys_getegid | ||
225 | .long sys_setreuid | ||
226 | .long sys_setregid | ||
227 | .long sys_getgroups /* 205 */ | ||
228 | .long sys_setgroups | ||
229 | .long sys_fchown | ||
230 | .long sys_setresuid | ||
231 | .long sys_getresuid | ||
232 | .long sys_setresgid /* 210 */ | ||
233 | .long sys_getresgid | ||
234 | .long sys_lchown | ||
235 | .long sys_setuid | ||
236 | .long sys_setgid | ||
237 | .long sys_setfsuid /* 215 */ | ||
238 | .long sys_setfsgid | ||
239 | .long sys_pivot_root | ||
240 | .long sys_ni_syscall | ||
241 | .long sys_ni_syscall | ||
242 | .long sys_getdents64 /* 220 */ | ||
243 | .long sys_gettid | ||
244 | .long sys_tkill | ||
245 | .long sys_setxattr | ||
246 | .long sys_lsetxattr | ||
247 | .long sys_fsetxattr /* 225 */ | ||
248 | .long sys_getxattr | ||
249 | .long sys_lgetxattr | ||
250 | .long sys_fgetxattr | ||
251 | .long sys_listxattr | ||
252 | .long sys_llistxattr /* 230 */ | ||
253 | .long sys_flistxattr | ||
254 | .long sys_removexattr | ||
255 | .long sys_lremovexattr | ||
256 | .long sys_fremovexattr | ||
257 | .long sys_futex /* 235 */ | ||
258 | .long sys_sendfile64 | ||
259 | .long sys_ni_syscall /* sys_mincore */ | ||
260 | .long sys_ni_syscall /* sys_madvise */ | ||
261 | .long sys_fcntl64 | ||
262 | .long sys_readahead /* 240 */ | ||
263 | .long sys_io_setup | ||
264 | .long sys_io_destroy | ||
265 | .long sys_io_getevents | ||
266 | .long sys_io_submit | ||
267 | .long sys_io_cancel /* 245 */ | ||
268 | .long sys_fadvise64 | ||
269 | .long sys_exit_group | ||
270 | .long sys_lookup_dcookie | ||
271 | .long sys_epoll_create | ||
272 | .long sys_epoll_ctl /* 250 */ | ||
273 | .long sys_epoll_wait | ||
274 | .long sys_ni_syscall /* sys_remap_file_pages */ | ||
275 | .long sys_set_tid_address | ||
276 | .long sys_timer_create | ||
277 | .long sys_timer_settime /* 255 */ | ||
278 | .long sys_timer_gettime | ||
279 | .long sys_timer_getoverrun | ||
280 | .long sys_timer_delete | ||
281 | .long sys_clock_settime | ||
282 | .long sys_clock_gettime /* 260 */ | ||
283 | .long sys_clock_getres | ||
284 | .long sys_clock_nanosleep | ||
285 | .long sys_statfs64 | ||
286 | .long sys_fstatfs64 | ||
287 | .long sys_tgkill /* 265 */ | ||
288 | .long sys_utimes | ||
289 | .long sys_fadvise64_64 | ||
290 | .long sys_mbind | ||
291 | .long sys_get_mempolicy | ||
292 | .long sys_set_mempolicy /* 270 */ | ||
293 | .long sys_mq_open | ||
294 | .long sys_mq_unlink | ||
295 | .long sys_mq_timedsend | ||
296 | .long sys_mq_timedreceive | ||
297 | .long sys_mq_notify /* 275 */ | ||
298 | .long sys_mq_getsetattr | ||
299 | .long sys_waitid | ||
300 | .long sys_ni_syscall /* sys_setaltroot */ | ||
301 | .long sys_ni_syscall /* sys_add_key */ | ||
302 | .long sys_ni_syscall /* 280 */ /* sys_request_key */ | ||
303 | .long sys_ni_syscall /* sys_keyctl */ | ||
304 | |||
305 | .rept NR_syscalls-(.-sys_call_table)/4 | ||
306 | .long sys_ni_syscall | ||
307 | .endr | ||
308 | |||
diff --git a/arch/m68knommu/kernel/time.c b/arch/m68knommu/kernel/time.c new file mode 100644 index 000000000000..5c3ca671627c --- /dev/null +++ b/arch/m68knommu/kernel/time.c | |||
@@ -0,0 +1,198 @@ | |||
1 | /* | ||
2 | * linux/arch/m68knommu/kernel/time.c | ||
3 | * | ||
4 | * Copyright (C) 1991, 1992, 1995 Linus Torvalds | ||
5 | * | ||
6 | * This file contains the m68k-specific time handling details. | ||
7 | * Most of the stuff is located in the machine specific files. | ||
8 | * | ||
9 | * 1997-09-10 Updated NTP code according to technical memorandum Jan '96 | ||
10 | * "A Kernel Model for Precision Timekeeping" by Dave Mills | ||
11 | */ | ||
12 | |||
13 | #include <linux/config.h> | ||
14 | #include <linux/errno.h> | ||
15 | #include <linux/module.h> | ||
16 | #include <linux/sched.h> | ||
17 | #include <linux/kernel.h> | ||
18 | #include <linux/param.h> | ||
19 | #include <linux/string.h> | ||
20 | #include <linux/mm.h> | ||
21 | #include <linux/profile.h> | ||
22 | #include <linux/time.h> | ||
23 | #include <linux/timex.h> | ||
24 | |||
25 | #include <asm/machdep.h> | ||
26 | #include <asm/io.h> | ||
27 | |||
28 | #define TICK_SIZE (tick_nsec / 1000) | ||
29 | |||
30 | u64 jiffies_64 = INITIAL_JIFFIES; | ||
31 | |||
32 | EXPORT_SYMBOL(jiffies_64); | ||
33 | |||
34 | extern unsigned long wall_jiffies; | ||
35 | |||
36 | |||
37 | static inline int set_rtc_mmss(unsigned long nowtime) | ||
38 | { | ||
39 | if (mach_set_clock_mmss) | ||
40 | return mach_set_clock_mmss (nowtime); | ||
41 | return -1; | ||
42 | } | ||
43 | |||
44 | /* | ||
45 | * timer_interrupt() needs to keep up the real-time clock, | ||
46 | * as well as call the "do_timer()" routine every clocktick | ||
47 | */ | ||
48 | static irqreturn_t timer_interrupt(int irq, void *dummy, struct pt_regs * regs) | ||
49 | { | ||
50 | /* last time the cmos clock got updated */ | ||
51 | static long last_rtc_update=0; | ||
52 | |||
53 | /* may need to kick the hardware timer */ | ||
54 | if (mach_tick) | ||
55 | mach_tick(); | ||
56 | |||
57 | write_seqlock(&xtime_lock); | ||
58 | |||
59 | do_timer(regs); | ||
60 | #ifndef CONFIG_SMP | ||
61 | update_process_times(user_mode(regs)); | ||
62 | #endif | ||
63 | if (current->pid) | ||
64 | profile_tick(CPU_PROFILING, regs); | ||
65 | |||
66 | /* | ||
67 | * If we have an externally synchronized Linux clock, then update | ||
68 | * CMOS clock accordingly every ~11 minutes. Set_rtc_mmss() has to be | ||
69 | * called as close as possible to 500 ms before the new second starts. | ||
70 | */ | ||
71 | if ((time_status & STA_UNSYNC) == 0 && | ||
72 | xtime.tv_sec > last_rtc_update + 660 && | ||
73 | (xtime.tv_nsec / 1000) >= 500000 - ((unsigned) TICK_SIZE) / 2 && | ||
74 | (xtime.tv_nsec / 1000) <= 500000 + ((unsigned) TICK_SIZE) / 2) { | ||
75 | if (set_rtc_mmss(xtime.tv_sec) == 0) | ||
76 | last_rtc_update = xtime.tv_sec; | ||
77 | else | ||
78 | last_rtc_update = xtime.tv_sec - 600; /* do it again in 60 s */ | ||
79 | } | ||
80 | #ifdef CONFIG_HEARTBEAT | ||
81 | /* use power LED as a heartbeat instead -- much more useful | ||
82 | for debugging -- based on the version for PReP by Cort */ | ||
83 | /* acts like an actual heart beat -- ie thump-thump-pause... */ | ||
84 | if (mach_heartbeat) { | ||
85 | static unsigned cnt = 0, period = 0, dist = 0; | ||
86 | |||
87 | if (cnt == 0 || cnt == dist) | ||
88 | mach_heartbeat( 1 ); | ||
89 | else if (cnt == 7 || cnt == dist+7) | ||
90 | mach_heartbeat( 0 ); | ||
91 | |||
92 | if (++cnt > period) { | ||
93 | cnt = 0; | ||
94 | /* The hyperbolic function below modifies the heartbeat period | ||
95 | * length in dependency of the current (5min) load. It goes | ||
96 | * through the points f(0)=126, f(1)=86, f(5)=51, | ||
97 | * f(inf)->30. */ | ||
98 | period = ((672<<FSHIFT)/(5*avenrun[0]+(7<<FSHIFT))) + 30; | ||
99 | dist = period / 4; | ||
100 | } | ||
101 | } | ||
102 | #endif /* CONFIG_HEARTBEAT */ | ||
103 | |||
104 | write_sequnlock(&xtime_lock); | ||
105 | return(IRQ_HANDLED); | ||
106 | } | ||
107 | |||
108 | void time_init(void) | ||
109 | { | ||
110 | unsigned int year, mon, day, hour, min, sec; | ||
111 | |||
112 | extern void arch_gettod(int *year, int *mon, int *day, int *hour, | ||
113 | int *min, int *sec); | ||
114 | |||
115 | arch_gettod(&year, &mon, &day, &hour, &min, &sec); | ||
116 | |||
117 | if ((year += 1900) < 1970) | ||
118 | year += 100; | ||
119 | xtime.tv_sec = mktime(year, mon, day, hour, min, sec); | ||
120 | xtime.tv_nsec = 0; | ||
121 | wall_to_monotonic.tv_sec = -xtime.tv_sec; | ||
122 | |||
123 | mach_sched_init(timer_interrupt); | ||
124 | } | ||
125 | |||
126 | /* | ||
127 | * This version of gettimeofday has near microsecond resolution. | ||
128 | */ | ||
129 | void do_gettimeofday(struct timeval *tv) | ||
130 | { | ||
131 | unsigned long flags; | ||
132 | unsigned long lost, seq; | ||
133 | unsigned long usec, sec; | ||
134 | |||
135 | do { | ||
136 | seq = read_seqbegin_irqsave(&xtime_lock, flags); | ||
137 | usec = mach_gettimeoffset ? mach_gettimeoffset() : 0; | ||
138 | lost = jiffies - wall_jiffies; | ||
139 | if (lost) | ||
140 | usec += lost * (1000000 / HZ); | ||
141 | sec = xtime.tv_sec; | ||
142 | usec += (xtime.tv_nsec / 1000); | ||
143 | } while (read_seqretry_irqrestore(&xtime_lock, seq, flags)); | ||
144 | |||
145 | while (usec >= 1000000) { | ||
146 | usec -= 1000000; | ||
147 | sec++; | ||
148 | } | ||
149 | |||
150 | tv->tv_sec = sec; | ||
151 | tv->tv_usec = usec; | ||
152 | } | ||
153 | |||
154 | EXPORT_SYMBOL(do_gettimeofday); | ||
155 | |||
156 | int do_settimeofday(struct timespec *tv) | ||
157 | { | ||
158 | time_t wtm_sec, sec = tv->tv_sec; | ||
159 | long wtm_nsec, nsec = tv->tv_nsec; | ||
160 | |||
161 | if ((unsigned long)tv->tv_nsec >= NSEC_PER_SEC) | ||
162 | return -EINVAL; | ||
163 | |||
164 | write_seqlock_irq(&xtime_lock); | ||
165 | /* | ||
166 | * This is revolting. We need to set the xtime.tv_usec | ||
167 | * correctly. However, the value in this location is | ||
168 | * is value at the last tick. | ||
169 | * Discover what correction gettimeofday | ||
170 | * would have done, and then undo it! | ||
171 | */ | ||
172 | if (mach_gettimeoffset) | ||
173 | nsec -= (mach_gettimeoffset() * 1000); | ||
174 | |||
175 | wtm_sec = wall_to_monotonic.tv_sec + (xtime.tv_sec - sec); | ||
176 | wtm_nsec = wall_to_monotonic.tv_nsec + (xtime.tv_nsec - nsec); | ||
177 | |||
178 | set_normalized_timespec(&xtime, sec, nsec); | ||
179 | set_normalized_timespec(&wall_to_monotonic, wtm_sec, wtm_nsec); | ||
180 | |||
181 | time_adjust = 0; /* stop active adjtime() */ | ||
182 | time_status |= STA_UNSYNC; | ||
183 | time_maxerror = NTP_PHASE_LIMIT; | ||
184 | time_esterror = NTP_PHASE_LIMIT; | ||
185 | write_sequnlock_irq(&xtime_lock); | ||
186 | clock_was_set(); | ||
187 | return 0; | ||
188 | } | ||
189 | |||
190 | /* | ||
191 | * Scheduler clock - returns current time in nanosec units. | ||
192 | */ | ||
193 | unsigned long long sched_clock(void) | ||
194 | { | ||
195 | return (unsigned long long)jiffies * (1000000000 / HZ); | ||
196 | } | ||
197 | |||
198 | EXPORT_SYMBOL(do_settimeofday); | ||
diff --git a/arch/m68knommu/kernel/traps.c b/arch/m68knommu/kernel/traps.c new file mode 100644 index 000000000000..ad7dc6347f19 --- /dev/null +++ b/arch/m68knommu/kernel/traps.c | |||
@@ -0,0 +1,320 @@ | |||
1 | /* | ||
2 | * linux/arch/m68knommu/kernel/traps.c | ||
3 | * | ||
4 | * Copyright (C) 1993, 1994 by Hamish Macdonald | ||
5 | * | ||
6 | * 68040 fixes by Michael Rausch | ||
7 | * 68040 fixes by Martin Apel | ||
8 | * 68060 fixes by Roman Hodek | ||
9 | * 68060 fixes by Jesper Skov | ||
10 | * | ||
11 | * This file is subject to the terms and conditions of the GNU General Public | ||
12 | * License. See the file COPYING in the main directory of this archive | ||
13 | * for more details. | ||
14 | */ | ||
15 | |||
16 | /* | ||
17 | * Sets up all exception vectors | ||
18 | */ | ||
19 | #include <linux/config.h> | ||
20 | #include <linux/sched.h> | ||
21 | #include <linux/signal.h> | ||
22 | #include <linux/kernel.h> | ||
23 | #include <linux/mm.h> | ||
24 | #include <linux/types.h> | ||
25 | #include <linux/a.out.h> | ||
26 | #include <linux/user.h> | ||
27 | #include <linux/string.h> | ||
28 | #include <linux/linkage.h> | ||
29 | #include <linux/init.h> | ||
30 | #include <linux/ptrace.h> | ||
31 | |||
32 | #include <asm/setup.h> | ||
33 | #include <asm/fpu.h> | ||
34 | #include <asm/system.h> | ||
35 | #include <asm/uaccess.h> | ||
36 | #include <asm/traps.h> | ||
37 | #include <asm/pgtable.h> | ||
38 | #include <asm/machdep.h> | ||
39 | #include <asm/siginfo.h> | ||
40 | |||
41 | static char *vec_names[] = { | ||
42 | "RESET SP", "RESET PC", "BUS ERROR", "ADDRESS ERROR", | ||
43 | "ILLEGAL INSTRUCTION", "ZERO DIVIDE", "CHK", "TRAPcc", | ||
44 | "PRIVILEGE VIOLATION", "TRACE", "LINE 1010", "LINE 1111", | ||
45 | "UNASSIGNED RESERVED 12", "COPROCESSOR PROTOCOL VIOLATION", | ||
46 | "FORMAT ERROR", "UNINITIALIZED INTERRUPT", | ||
47 | "UNASSIGNED RESERVED 16", "UNASSIGNED RESERVED 17", | ||
48 | "UNASSIGNED RESERVED 18", "UNASSIGNED RESERVED 19", | ||
49 | "UNASSIGNED RESERVED 20", "UNASSIGNED RESERVED 21", | ||
50 | "UNASSIGNED RESERVED 22", "UNASSIGNED RESERVED 23", | ||
51 | "SPURIOUS INTERRUPT", "LEVEL 1 INT", "LEVEL 2 INT", "LEVEL 3 INT", | ||
52 | "LEVEL 4 INT", "LEVEL 5 INT", "LEVEL 6 INT", "LEVEL 7 INT", | ||
53 | "SYSCALL", "TRAP #1", "TRAP #2", "TRAP #3", | ||
54 | "TRAP #4", "TRAP #5", "TRAP #6", "TRAP #7", | ||
55 | "TRAP #8", "TRAP #9", "TRAP #10", "TRAP #11", | ||
56 | "TRAP #12", "TRAP #13", "TRAP #14", "TRAP #15", | ||
57 | "FPCP BSUN", "FPCP INEXACT", "FPCP DIV BY 0", "FPCP UNDERFLOW", | ||
58 | "FPCP OPERAND ERROR", "FPCP OVERFLOW", "FPCP SNAN", | ||
59 | "FPCP UNSUPPORTED OPERATION", | ||
60 | "MMU CONFIGURATION ERROR" | ||
61 | }; | ||
62 | |||
63 | void __init trap_init(void) | ||
64 | { | ||
65 | if (mach_trap_init) | ||
66 | mach_trap_init(); | ||
67 | } | ||
68 | |||
69 | void die_if_kernel(char *str, struct pt_regs *fp, int nr) | ||
70 | { | ||
71 | if (!(fp->sr & PS_S)) | ||
72 | return; | ||
73 | |||
74 | console_verbose(); | ||
75 | printk(KERN_EMERG "%s: %08x\n",str,nr); | ||
76 | printk(KERN_EMERG "PC: [<%08lx>]\nSR: %04x SP: %p a2: %08lx\n", | ||
77 | fp->pc, fp->sr, fp, fp->a2); | ||
78 | printk(KERN_EMERG "d0: %08lx d1: %08lx d2: %08lx d3: %08lx\n", | ||
79 | fp->d0, fp->d1, fp->d2, fp->d3); | ||
80 | printk(KERN_EMERG "d4: %08lx d5: %08lx a0: %08lx a1: %08lx\n", | ||
81 | fp->d4, fp->d5, fp->a0, fp->a1); | ||
82 | |||
83 | printk(KERN_EMERG "Process %s (pid: %d, stackpage=%08lx)\n", | ||
84 | current->comm, current->pid, PAGE_SIZE+(unsigned long)current); | ||
85 | show_stack(NULL, (unsigned long *)fp); | ||
86 | do_exit(SIGSEGV); | ||
87 | } | ||
88 | |||
89 | asmlinkage void buserr_c(struct frame *fp) | ||
90 | { | ||
91 | /* Only set esp0 if coming from user mode */ | ||
92 | if (user_mode(&fp->ptregs)) | ||
93 | current->thread.esp0 = (unsigned long) fp; | ||
94 | |||
95 | #if DEBUG | ||
96 | printk (KERN_DEBUG "*** Bus Error *** Format is %x\n", fp->ptregs.format); | ||
97 | #endif | ||
98 | |||
99 | die_if_kernel("bad frame format",&fp->ptregs,0); | ||
100 | #if DEBUG | ||
101 | printk(KERN_DEBUG "Unknown SIGSEGV - 4\n"); | ||
102 | #endif | ||
103 | force_sig(SIGSEGV, current); | ||
104 | } | ||
105 | |||
106 | |||
107 | int kstack_depth_to_print = 48; | ||
108 | |||
109 | void show_stack(struct task_struct *task, unsigned long *esp) | ||
110 | { | ||
111 | unsigned long *stack, *endstack, addr; | ||
112 | extern char _start, _etext; | ||
113 | int i; | ||
114 | |||
115 | if (esp == NULL) | ||
116 | esp = (unsigned long *) &esp; | ||
117 | |||
118 | stack = esp; | ||
119 | addr = (unsigned long) esp; | ||
120 | endstack = (unsigned long *) PAGE_ALIGN(addr); | ||
121 | |||
122 | printk(KERN_EMERG "Stack from %08lx:", (unsigned long)stack); | ||
123 | for (i = 0; i < kstack_depth_to_print; i++) { | ||
124 | if (stack + 1 > endstack) | ||
125 | break; | ||
126 | if (i % 8 == 0) | ||
127 | printk(KERN_EMERG "\n "); | ||
128 | printk(KERN_EMERG " %08lx", *stack++); | ||
129 | } | ||
130 | |||
131 | printk(KERN_EMERG "\nCall Trace:"); | ||
132 | i = 0; | ||
133 | while (stack + 1 <= endstack) { | ||
134 | addr = *stack++; | ||
135 | /* | ||
136 | * If the address is either in the text segment of the | ||
137 | * kernel, or in the region which contains vmalloc'ed | ||
138 | * memory, it *may* be the address of a calling | ||
139 | * routine; if so, print it so that someone tracing | ||
140 | * down the cause of the crash will be able to figure | ||
141 | * out the call path that was taken. | ||
142 | */ | ||
143 | if (((addr >= (unsigned long) &_start) && | ||
144 | (addr <= (unsigned long) &_etext))) { | ||
145 | if (i % 4 == 0) | ||
146 | printk(KERN_EMERG "\n "); | ||
147 | printk(KERN_EMERG " [<%08lx>]", addr); | ||
148 | i++; | ||
149 | } | ||
150 | } | ||
151 | printk(KERN_EMERG "\n"); | ||
152 | } | ||
153 | |||
154 | void bad_super_trap(struct frame *fp) | ||
155 | { | ||
156 | console_verbose(); | ||
157 | if (fp->ptregs.vector < 4*sizeof(vec_names)/sizeof(vec_names[0])) | ||
158 | printk (KERN_WARNING "*** %s *** FORMAT=%X\n", | ||
159 | vec_names[(fp->ptregs.vector) >> 2], | ||
160 | fp->ptregs.format); | ||
161 | else | ||
162 | printk (KERN_WARNING "*** Exception %d *** FORMAT=%X\n", | ||
163 | (fp->ptregs.vector) >> 2, | ||
164 | fp->ptregs.format); | ||
165 | printk (KERN_WARNING "Current process id is %d\n", current->pid); | ||
166 | die_if_kernel("BAD KERNEL TRAP", &fp->ptregs, 0); | ||
167 | } | ||
168 | |||
169 | asmlinkage void trap_c(struct frame *fp) | ||
170 | { | ||
171 | int sig; | ||
172 | siginfo_t info; | ||
173 | |||
174 | if (fp->ptregs.sr & PS_S) { | ||
175 | if ((fp->ptregs.vector >> 2) == VEC_TRACE) { | ||
176 | /* traced a trapping instruction */ | ||
177 | current->ptrace |= PT_DTRACE; | ||
178 | } else | ||
179 | bad_super_trap(fp); | ||
180 | return; | ||
181 | } | ||
182 | |||
183 | /* send the appropriate signal to the user program */ | ||
184 | switch ((fp->ptregs.vector) >> 2) { | ||
185 | case VEC_ADDRERR: | ||
186 | info.si_code = BUS_ADRALN; | ||
187 | sig = SIGBUS; | ||
188 | break; | ||
189 | case VEC_ILLEGAL: | ||
190 | case VEC_LINE10: | ||
191 | case VEC_LINE11: | ||
192 | info.si_code = ILL_ILLOPC; | ||
193 | sig = SIGILL; | ||
194 | break; | ||
195 | case VEC_PRIV: | ||
196 | info.si_code = ILL_PRVOPC; | ||
197 | sig = SIGILL; | ||
198 | break; | ||
199 | case VEC_COPROC: | ||
200 | info.si_code = ILL_COPROC; | ||
201 | sig = SIGILL; | ||
202 | break; | ||
203 | case VEC_TRAP1: /* gdbserver breakpoint */ | ||
204 | fp->ptregs.pc -= 2; | ||
205 | info.si_code = TRAP_TRACE; | ||
206 | sig = SIGTRAP; | ||
207 | break; | ||
208 | case VEC_TRAP2: | ||
209 | case VEC_TRAP3: | ||
210 | case VEC_TRAP4: | ||
211 | case VEC_TRAP5: | ||
212 | case VEC_TRAP6: | ||
213 | case VEC_TRAP7: | ||
214 | case VEC_TRAP8: | ||
215 | case VEC_TRAP9: | ||
216 | case VEC_TRAP10: | ||
217 | case VEC_TRAP11: | ||
218 | case VEC_TRAP12: | ||
219 | case VEC_TRAP13: | ||
220 | case VEC_TRAP14: | ||
221 | info.si_code = ILL_ILLTRP; | ||
222 | sig = SIGILL; | ||
223 | break; | ||
224 | case VEC_FPBRUC: | ||
225 | case VEC_FPOE: | ||
226 | case VEC_FPNAN: | ||
227 | info.si_code = FPE_FLTINV; | ||
228 | sig = SIGFPE; | ||
229 | break; | ||
230 | case VEC_FPIR: | ||
231 | info.si_code = FPE_FLTRES; | ||
232 | sig = SIGFPE; | ||
233 | break; | ||
234 | case VEC_FPDIVZ: | ||
235 | info.si_code = FPE_FLTDIV; | ||
236 | sig = SIGFPE; | ||
237 | break; | ||
238 | case VEC_FPUNDER: | ||
239 | info.si_code = FPE_FLTUND; | ||
240 | sig = SIGFPE; | ||
241 | break; | ||
242 | case VEC_FPOVER: | ||
243 | info.si_code = FPE_FLTOVF; | ||
244 | sig = SIGFPE; | ||
245 | break; | ||
246 | case VEC_ZERODIV: | ||
247 | info.si_code = FPE_INTDIV; | ||
248 | sig = SIGFPE; | ||
249 | break; | ||
250 | case VEC_CHK: | ||
251 | case VEC_TRAP: | ||
252 | info.si_code = FPE_INTOVF; | ||
253 | sig = SIGFPE; | ||
254 | break; | ||
255 | case VEC_TRACE: /* ptrace single step */ | ||
256 | info.si_code = TRAP_TRACE; | ||
257 | sig = SIGTRAP; | ||
258 | break; | ||
259 | case VEC_TRAP15: /* breakpoint */ | ||
260 | info.si_code = TRAP_BRKPT; | ||
261 | sig = SIGTRAP; | ||
262 | break; | ||
263 | default: | ||
264 | info.si_code = ILL_ILLOPC; | ||
265 | sig = SIGILL; | ||
266 | break; | ||
267 | } | ||
268 | info.si_signo = sig; | ||
269 | info.si_errno = 0; | ||
270 | switch (fp->ptregs.format) { | ||
271 | default: | ||
272 | info.si_addr = (void *) fp->ptregs.pc; | ||
273 | break; | ||
274 | case 2: | ||
275 | info.si_addr = (void *) fp->un.fmt2.iaddr; | ||
276 | break; | ||
277 | case 7: | ||
278 | info.si_addr = (void *) fp->un.fmt7.effaddr; | ||
279 | break; | ||
280 | case 9: | ||
281 | info.si_addr = (void *) fp->un.fmt9.iaddr; | ||
282 | break; | ||
283 | case 10: | ||
284 | info.si_addr = (void *) fp->un.fmta.daddr; | ||
285 | break; | ||
286 | case 11: | ||
287 | info.si_addr = (void *) fp->un.fmtb.daddr; | ||
288 | break; | ||
289 | } | ||
290 | force_sig_info (sig, &info, current); | ||
291 | } | ||
292 | |||
293 | asmlinkage void set_esp0(unsigned long ssp) | ||
294 | { | ||
295 | current->thread.esp0 = ssp; | ||
296 | } | ||
297 | |||
298 | |||
299 | /* | ||
300 | * The architecture-independent backtrace generator | ||
301 | */ | ||
302 | void dump_stack(void) | ||
303 | { | ||
304 | unsigned long stack; | ||
305 | |||
306 | show_stack(current, &stack); | ||
307 | } | ||
308 | |||
309 | #ifdef CONFIG_M68KFPU_EMU | ||
310 | asmlinkage void fpemu_signal(int signal, int code, void *addr) | ||
311 | { | ||
312 | siginfo_t info; | ||
313 | |||
314 | info.si_signo = signal; | ||
315 | info.si_errno = 0; | ||
316 | info.si_code = code; | ||
317 | info.si_addr = addr; | ||
318 | force_sig_info(signal, &info, current); | ||
319 | } | ||
320 | #endif | ||
diff --git a/arch/m68knommu/kernel/vmlinux.lds.S b/arch/m68knommu/kernel/vmlinux.lds.S new file mode 100644 index 000000000000..31cb12892da5 --- /dev/null +++ b/arch/m68knommu/kernel/vmlinux.lds.S | |||
@@ -0,0 +1,348 @@ | |||
1 | /* | ||
2 | * vmlinux.lds.S -- master linker script for m68knommu arch | ||
3 | * | ||
4 | * (C) Copyright 2002-2004, Greg Ungerer <gerg@snapgear.com> | ||
5 | * | ||
6 | * This ends up looking compilcated, because of the number of | ||
7 | * address variations for ram and rom/flash layouts. The real | ||
8 | * work of the linker script is all at the end, and reasonably | ||
9 | * strait forward. | ||
10 | */ | ||
11 | |||
12 | #include <linux/config.h> | ||
13 | #include <asm-generic/vmlinux.lds.h> | ||
14 | |||
15 | /* | ||
16 | * Original Palm pilot (same for Xcopilot). | ||
17 | * There is really only a rom target for this. | ||
18 | */ | ||
19 | #ifdef CONFIG_PILOT3 | ||
20 | #define ROMVEC_START 0x10c00000 | ||
21 | #define ROMVEC_LENGTH 0x10400 | ||
22 | #define ROM_START 0x10c10400 | ||
23 | #define ROM_LENGTH 0xfec00 | ||
24 | #define ROM_END 0x10d00000 | ||
25 | #define RAMVEC_START 0x00000000 | ||
26 | #define RAMVEC_LENGTH 0x400 | ||
27 | #define RAM_START 0x10000400 | ||
28 | #define RAM_LENGTH 0xffc00 | ||
29 | #define RAM_END 0x10100000 | ||
30 | #define _ramend _ram_end_notused | ||
31 | #define DATA_ADDR RAM_START | ||
32 | #endif | ||
33 | |||
34 | /* | ||
35 | * Same setup on both the uCsimm and uCdimm. | ||
36 | */ | ||
37 | #if defined(CONFIG_UCSIMM) || defined(CONFIG_UCDIMM) | ||
38 | #ifdef CONFIG_RAMKERNEL | ||
39 | #define ROMVEC_START 0x10c10000 | ||
40 | #define ROMVEC_LENGTH 0x400 | ||
41 | #define ROM_START 0x10c10400 | ||
42 | #define ROM_LENGTH 0x1efc00 | ||
43 | #define ROM_END 0x10e00000 | ||
44 | #define RAMVEC_START 0x00000000 | ||
45 | #define RAMVEC_LENGTH 0x400 | ||
46 | #define RAM_START 0x00020400 | ||
47 | #define RAM_LENGTH 0x7dfc00 | ||
48 | #define RAM_END 0x00800000 | ||
49 | #endif | ||
50 | #ifdef CONFIG_ROMKERNEL | ||
51 | #define ROMVEC_START 0x10c10000 | ||
52 | #define ROMVEC_LENGTH 0x400 | ||
53 | #define ROM_START 0x10c10400 | ||
54 | #define ROM_LENGTH 0x1efc00 | ||
55 | #define ROM_END 0x10e00000 | ||
56 | #define RAMVEC_START 0x00000000 | ||
57 | #define RAMVEC_LENGTH 0x400 | ||
58 | #define RAM_START 0x00020000 | ||
59 | #define RAM_LENGTH 0x600000 | ||
60 | #define RAM_END 0x00800000 | ||
61 | #endif | ||
62 | #ifdef CONFIG_HIMEMKERNEL | ||
63 | #define ROMVEC_START 0x00600000 | ||
64 | #define ROMVEC_LENGTH 0x400 | ||
65 | #define ROM_START 0x00600400 | ||
66 | #define ROM_LENGTH 0x1efc00 | ||
67 | #define ROM_END 0x007f0000 | ||
68 | #define RAMVEC_START 0x00000000 | ||
69 | #define RAMVEC_LENGTH 0x400 | ||
70 | #define RAM_START 0x00020000 | ||
71 | #define RAM_LENGTH 0x5e0000 | ||
72 | #define RAM_END 0x00600000 | ||
73 | #endif | ||
74 | #endif | ||
75 | |||
76 | #ifdef CONFIG_DRAGEN2 | ||
77 | #define RAM_START 0x10000 | ||
78 | #define RAM_LENGTH 0x7f0000 | ||
79 | #endif | ||
80 | |||
81 | #ifdef CONFIG_UCQUICC | ||
82 | #define ROMVEC_START 0x00000000 | ||
83 | #define ROMVEC_LENGTH 0x404 | ||
84 | #define ROM_START 0x00000404 | ||
85 | #define ROM_LENGTH 0x1ff6fc | ||
86 | #define ROM_END 0x00200000 | ||
87 | #define RAMVEC_START 0x00200000 | ||
88 | #define RAMVEC_LENGTH 0x404 | ||
89 | #define RAM_START 0x00200404 | ||
90 | #define RAM_LENGTH 0x1ff6fc | ||
91 | #define RAM_END 0x00400000 | ||
92 | #endif | ||
93 | |||
94 | /* | ||
95 | * The standard Arnewsh 5206 board only has 1MiB of ram. Not normally | ||
96 | * enough to be useful. Assume the user has fitted something larger, | ||
97 | * at least 4MiB in size. No point in not letting the kernel completely | ||
98 | * link, it will be obvious if it is too big when they go to load it. | ||
99 | */ | ||
100 | #if defined(CONFIG_ARN5206) | ||
101 | #define RAM_START 0x10000 | ||
102 | #define RAM_LENGTH 0x3f0000 | ||
103 | #endif | ||
104 | |||
105 | /* | ||
106 | * The Motorola 5206eLITE board only has 1MiB of static RAM. | ||
107 | */ | ||
108 | #if defined(CONFIG_ELITE) | ||
109 | #define RAM_START 0x30020000 | ||
110 | #define RAM_END 0xe0000 | ||
111 | #endif | ||
112 | |||
113 | /* | ||
114 | * All the Motorola eval boards have the same basic arrangement. | ||
115 | * The end of RAM will vary depending on how much ram is fitted, | ||
116 | * but this isn't important here, we assume at least 4MiB. | ||
117 | */ | ||
118 | #if defined(CONFIG_M5206eC3) || defined(CONFIG_M5249C3) || \ | ||
119 | defined(CONFIG_M5272C3) || defined(CONFIG_M5307C3) || \ | ||
120 | defined(CONFIG_ARN5307) || defined(CONFIG_M5407C3) || \ | ||
121 | defined(CONFIG_M5271EVB) || defined(CONFIG_M5275EVB) | ||
122 | #define RAM_START 0x20000 | ||
123 | #define RAM_LENGTH 0x3e0000 | ||
124 | #endif | ||
125 | |||
126 | /* | ||
127 | * The senTec COBRA5272 board has nearly the same memory layout as | ||
128 | * the M5272C3. We assume 16MiB ram. | ||
129 | */ | ||
130 | #if defined(CONFIG_COBRA5272) | ||
131 | #define RAM_START 0x20000 | ||
132 | #define RAM_LENGTH 0xfe0000 | ||
133 | #endif | ||
134 | |||
135 | #if defined(CONFIG_M5282EVB) | ||
136 | #define RAM_START 0x10000 | ||
137 | #define RAM_LENGTH 0x3f0000 | ||
138 | #endif | ||
139 | |||
140 | /* | ||
141 | * The senTec COBRA5282 board has the same memory layout as the M5282EVB. | ||
142 | */ | ||
143 | #if defined(CONFIG_COBRA5282) | ||
144 | #define RAM_START 0x10000 | ||
145 | #define RAM_LENGTH 0x3f0000 | ||
146 | #endif | ||
147 | |||
148 | /* | ||
149 | * These flash boot boards use all of ram for operation. Again the | ||
150 | * actual memory size is not important here, assume at least 4MiB. | ||
151 | * They currently have no support for running in flash. | ||
152 | */ | ||
153 | #if defined(CONFIG_NETtel) || defined(CONFIG_eLIA) || \ | ||
154 | defined(CONFIG_DISKtel) || defined(CONFIG_SECUREEDGEMP3) || \ | ||
155 | defined(CONFIG_HW_FEITH) | ||
156 | #define RAM_START 0x400 | ||
157 | #define RAM_LENGTH 0x3ffc00 | ||
158 | #endif | ||
159 | |||
160 | /* | ||
161 | * Sneha Boards mimimun memmory | ||
162 | * The end of RAM will vary depending on how much ram is fitted, | ||
163 | * but this isn't important here, we assume at least 4MiB. | ||
164 | */ | ||
165 | #if defined(CONFIG_CPU16B) | ||
166 | #define RAM_START 0x20000 | ||
167 | #define RAM_LENGTH 0x3e0000 | ||
168 | #endif | ||
169 | |||
170 | |||
171 | #if defined(CONFIG_RAMKERNEL) | ||
172 | #define TEXT ram | ||
173 | #define DATA ram | ||
174 | #define INIT ram | ||
175 | #define BSS ram | ||
176 | #endif | ||
177 | #if defined(CONFIG_ROMKERNEL) || defined(CONFIG_HIMEMKERNEL) | ||
178 | #define TEXT rom | ||
179 | #define DATA ram | ||
180 | #define INIT ram | ||
181 | #define BSS ram | ||
182 | #endif | ||
183 | |||
184 | #ifndef DATA_ADDR | ||
185 | #define DATA_ADDR | ||
186 | #endif | ||
187 | |||
188 | |||
189 | OUTPUT_ARCH(m68k) | ||
190 | ENTRY(_start) | ||
191 | |||
192 | MEMORY { | ||
193 | #ifdef RAMVEC_START | ||
194 | ramvec : ORIGIN = RAMVEC_START, LENGTH = RAMVEC_LENGTH | ||
195 | #endif | ||
196 | ram : ORIGIN = RAM_START, LENGTH = RAM_LENGTH | ||
197 | #ifdef RAM_END | ||
198 | eram : ORIGIN = RAM_END, LENGTH = 0 | ||
199 | #endif | ||
200 | #ifdef ROM_START | ||
201 | romvec : ORIGIN = ROMVEC_START, LENGTH = ROMVEC_LENGTH | ||
202 | rom : ORIGIN = ROM_START, LENGTH = ROM_LENGTH | ||
203 | erom : ORIGIN = ROM_END, LENGTH = 0 | ||
204 | #endif | ||
205 | } | ||
206 | |||
207 | jiffies = jiffies_64 + 4; | ||
208 | |||
209 | SECTIONS { | ||
210 | |||
211 | #ifdef ROMVEC_START | ||
212 | . = ROMVEC_START ; | ||
213 | .romvec : { | ||
214 | __rom_start = . ; | ||
215 | _romvec = .; | ||
216 | *(.data.initvect) | ||
217 | } > romvec | ||
218 | #endif | ||
219 | |||
220 | .text : { | ||
221 | _stext = . ; | ||
222 | *(.text) | ||
223 | SCHED_TEXT | ||
224 | *(.text.lock) | ||
225 | |||
226 | . = ALIGN(16); /* Exception table */ | ||
227 | __start___ex_table = .; | ||
228 | *(__ex_table) | ||
229 | __stop___ex_table = .; | ||
230 | |||
231 | *(.rodata) *(.rodata.*) | ||
232 | *(__vermagic) /* Kernel version magic */ | ||
233 | *(.rodata1) | ||
234 | *(.rodata.str1.1) | ||
235 | |||
236 | /* Kernel symbol table: Normal symbols */ | ||
237 | . = ALIGN(4); | ||
238 | __start___ksymtab = .; | ||
239 | *(__ksymtab) | ||
240 | __stop___ksymtab = .; | ||
241 | |||
242 | /* Kernel symbol table: GPL-only symbols */ | ||
243 | __start___ksymtab_gpl = .; | ||
244 | *(__ksymtab_gpl) | ||
245 | __stop___ksymtab_gpl = .; | ||
246 | |||
247 | /* Kernel symbol table: Normal symbols */ | ||
248 | __start___kcrctab = .; | ||
249 | *(__kcrctab) | ||
250 | __stop___kcrctab = .; | ||
251 | |||
252 | /* Kernel symbol table: GPL-only symbols */ | ||
253 | __start___kcrctab_gpl = .; | ||
254 | *(__kcrctab_gpl) | ||
255 | __stop___kcrctab_gpl = .; | ||
256 | |||
257 | /* Kernel symbol table: strings */ | ||
258 | *(__ksymtab_strings) | ||
259 | |||
260 | /* Built-in module parameters */ | ||
261 | __start___param = .; | ||
262 | *(__param) | ||
263 | __stop___param = .; | ||
264 | |||
265 | . = ALIGN(4) ; | ||
266 | _etext = . ; | ||
267 | } > TEXT | ||
268 | |||
269 | #ifdef ROM_END | ||
270 | . = ROM_END ; | ||
271 | .erom : { | ||
272 | __rom_end = . ; | ||
273 | } > erom | ||
274 | #endif | ||
275 | #ifdef RAMVEC_START | ||
276 | . = RAMVEC_START ; | ||
277 | .ramvec : { | ||
278 | __ramvec = .; | ||
279 | } > ramvec | ||
280 | #endif | ||
281 | |||
282 | .data DATA_ADDR : { | ||
283 | . = ALIGN(4); | ||
284 | _sdata = . ; | ||
285 | *(.data) | ||
286 | . = ALIGN(8192) ; | ||
287 | *(.data.init_task) | ||
288 | _edata = . ; | ||
289 | } > DATA | ||
290 | |||
291 | .init : { | ||
292 | . = ALIGN(4096); | ||
293 | __init_begin = .; | ||
294 | _sinittext = .; | ||
295 | *(.init.text) | ||
296 | _einittext = .; | ||
297 | *(.init.data) | ||
298 | . = ALIGN(16); | ||
299 | __setup_start = .; | ||
300 | *(.init.setup) | ||
301 | __setup_end = .; | ||
302 | __initcall_start = .; | ||
303 | *(.initcall1.init) | ||
304 | *(.initcall2.init) | ||
305 | *(.initcall3.init) | ||
306 | *(.initcall4.init) | ||
307 | *(.initcall5.init) | ||
308 | *(.initcall6.init) | ||
309 | *(.initcall7.init) | ||
310 | __initcall_end = .; | ||
311 | __con_initcall_start = .; | ||
312 | *(.con_initcall.init) | ||
313 | __con_initcall_end = .; | ||
314 | __security_initcall_start = .; | ||
315 | *(.security_initcall.init) | ||
316 | __security_initcall_end = .; | ||
317 | . = ALIGN(4); | ||
318 | __initramfs_start = .; | ||
319 | *(.init.ramfs) | ||
320 | __initramfs_end = .; | ||
321 | . = ALIGN(4096); | ||
322 | __init_end = .; | ||
323 | } > INIT | ||
324 | |||
325 | /DISCARD/ : { | ||
326 | *(.exit.text) | ||
327 | *(.exit.data) | ||
328 | *(.exitcall.exit) | ||
329 | } | ||
330 | |||
331 | .bss : { | ||
332 | . = ALIGN(4); | ||
333 | _sbss = . ; | ||
334 | *(.bss) | ||
335 | *(COMMON) | ||
336 | . = ALIGN(4) ; | ||
337 | _ebss = . ; | ||
338 | } > BSS | ||
339 | |||
340 | #ifdef RAM_END | ||
341 | . = RAM_END ; | ||
342 | .eram : { | ||
343 | __ramend = . ; | ||
344 | _ramend = . ; | ||
345 | } > eram | ||
346 | #endif | ||
347 | } | ||
348 | |||
diff --git a/arch/m68knommu/lib/Makefile b/arch/m68knommu/lib/Makefile new file mode 100644 index 000000000000..e051a7913987 --- /dev/null +++ b/arch/m68knommu/lib/Makefile | |||
@@ -0,0 +1,7 @@ | |||
1 | # | ||
2 | # Makefile for m68knommu specific library files.. | ||
3 | # | ||
4 | |||
5 | lib-y := ashldi3.o ashrdi3.o lshrdi3.o \ | ||
6 | muldi3.o mulsi3.o divsi3.o udivsi3.o modsi3.o umodsi3.o \ | ||
7 | checksum.o semaphore.o memcpy.o memset.o delay.o | ||
diff --git a/arch/m68knommu/lib/ashldi3.c b/arch/m68knommu/lib/ashldi3.c new file mode 100644 index 000000000000..008403eb8ce2 --- /dev/null +++ b/arch/m68knommu/lib/ashldi3.c | |||
@@ -0,0 +1,62 @@ | |||
1 | /* ashrdi3.c extracted from gcc-2.95.2/libgcc2.c which is: */ | ||
2 | /* Copyright (C) 1989, 92-98, 1999 Free Software Foundation, Inc. | ||
3 | |||
4 | This file is part of GNU CC. | ||
5 | |||
6 | GNU CC is free software; you can redistribute it and/or modify | ||
7 | it under the terms of the GNU General Public License as published by | ||
8 | the Free Software Foundation; either version 2, or (at your option) | ||
9 | any later version. | ||
10 | |||
11 | GNU CC is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with GNU CC; see the file COPYING. If not, write to | ||
18 | the Free Software Foundation, 59 Temple Place - Suite 330, | ||
19 | Boston, MA 02111-1307, USA. */ | ||
20 | |||
21 | #define BITS_PER_UNIT 8 | ||
22 | |||
23 | typedef int SItype __attribute__ ((mode (SI))); | ||
24 | typedef unsigned int USItype __attribute__ ((mode (SI))); | ||
25 | typedef int DItype __attribute__ ((mode (DI))); | ||
26 | typedef int word_type __attribute__ ((mode (__word__))); | ||
27 | |||
28 | struct DIstruct {SItype high, low;}; | ||
29 | |||
30 | typedef union | ||
31 | { | ||
32 | struct DIstruct s; | ||
33 | DItype ll; | ||
34 | } DIunion; | ||
35 | |||
36 | DItype | ||
37 | __ashldi3 (DItype u, word_type b) | ||
38 | { | ||
39 | DIunion w; | ||
40 | word_type bm; | ||
41 | DIunion uu; | ||
42 | |||
43 | if (b == 0) | ||
44 | return u; | ||
45 | |||
46 | uu.ll = u; | ||
47 | |||
48 | bm = (sizeof (SItype) * BITS_PER_UNIT) - b; | ||
49 | if (bm <= 0) | ||
50 | { | ||
51 | w.s.low = 0; | ||
52 | w.s.high = (USItype)uu.s.low << -bm; | ||
53 | } | ||
54 | else | ||
55 | { | ||
56 | USItype carries = (USItype)uu.s.low >> bm; | ||
57 | w.s.low = (USItype)uu.s.low << b; | ||
58 | w.s.high = ((USItype)uu.s.high << b) | carries; | ||
59 | } | ||
60 | |||
61 | return w.ll; | ||
62 | } | ||
diff --git a/arch/m68knommu/lib/ashrdi3.c b/arch/m68knommu/lib/ashrdi3.c new file mode 100644 index 000000000000..78efb65e315a --- /dev/null +++ b/arch/m68knommu/lib/ashrdi3.c | |||
@@ -0,0 +1,63 @@ | |||
1 | /* ashrdi3.c extracted from gcc-2.7.2/libgcc2.c which is: */ | ||
2 | /* Copyright (C) 1989, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. | ||
3 | |||
4 | This file is part of GNU CC. | ||
5 | |||
6 | GNU CC is free software; you can redistribute it and/or modify | ||
7 | it under the terms of the GNU General Public License as published by | ||
8 | the Free Software Foundation; either version 2, or (at your option) | ||
9 | any later version. | ||
10 | |||
11 | GNU CC is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with GNU CC; see the file COPYING. If not, write to | ||
18 | the Free Software Foundation, 59 Temple Place - Suite 330, | ||
19 | Boston, MA 02111-1307, USA. */ | ||
20 | |||
21 | #define BITS_PER_UNIT 8 | ||
22 | |||
23 | typedef int SItype __attribute__ ((mode (SI))); | ||
24 | typedef unsigned int USItype __attribute__ ((mode (SI))); | ||
25 | typedef int DItype __attribute__ ((mode (DI))); | ||
26 | typedef int word_type __attribute__ ((mode (__word__))); | ||
27 | |||
28 | struct DIstruct {SItype high, low;}; | ||
29 | |||
30 | typedef union | ||
31 | { | ||
32 | struct DIstruct s; | ||
33 | DItype ll; | ||
34 | } DIunion; | ||
35 | |||
36 | DItype | ||
37 | __ashrdi3 (DItype u, word_type b) | ||
38 | { | ||
39 | DIunion w; | ||
40 | word_type bm; | ||
41 | DIunion uu; | ||
42 | |||
43 | if (b == 0) | ||
44 | return u; | ||
45 | |||
46 | uu.ll = u; | ||
47 | |||
48 | bm = (sizeof (SItype) * BITS_PER_UNIT) - b; | ||
49 | if (bm <= 0) | ||
50 | { | ||
51 | /* w.s.high = 1..1 or 0..0 */ | ||
52 | w.s.high = uu.s.high >> (sizeof (SItype) * BITS_PER_UNIT - 1); | ||
53 | w.s.low = uu.s.high >> -bm; | ||
54 | } | ||
55 | else | ||
56 | { | ||
57 | USItype carries = (USItype)uu.s.high << bm; | ||
58 | w.s.high = uu.s.high >> b; | ||
59 | w.s.low = ((USItype)uu.s.low >> b) | carries; | ||
60 | } | ||
61 | |||
62 | return w.ll; | ||
63 | } | ||
diff --git a/arch/m68knommu/lib/checksum.c b/arch/m68knommu/lib/checksum.c new file mode 100644 index 000000000000..7bec6fdee34b --- /dev/null +++ b/arch/m68knommu/lib/checksum.c | |||
@@ -0,0 +1,160 @@ | |||
1 | /* | ||
2 | * INET An implementation of the TCP/IP protocol suite for the LINUX | ||
3 | * operating system. INET is implemented using the BSD Socket | ||
4 | * interface as the means of communication with the user level. | ||
5 | * | ||
6 | * IP/TCP/UDP checksumming routines | ||
7 | * | ||
8 | * Authors: Jorge Cwik, <jorge@laser.satlink.net> | ||
9 | * Arnt Gulbrandsen, <agulbra@nvg.unit.no> | ||
10 | * Tom May, <ftom@netcom.com> | ||
11 | * Andreas Schwab, <schwab@issan.informatik.uni-dortmund.de> | ||
12 | * Lots of code moved from tcp.c and ip.c; see those files | ||
13 | * for more names. | ||
14 | * | ||
15 | * 03/02/96 Jes Sorensen, Andreas Schwab, Roman Hodek: | ||
16 | * Fixed some nasty bugs, causing some horrible crashes. | ||
17 | * A: At some points, the sum (%0) was used as | ||
18 | * length-counter instead of the length counter | ||
19 | * (%1). Thanks to Roman Hodek for pointing this out. | ||
20 | * B: GCC seems to mess up if one uses too many | ||
21 | * data-registers to hold input values and one tries to | ||
22 | * specify d0 and d1 as scratch registers. Letting gcc choose these | ||
23 | * registers itself solves the problem. | ||
24 | * | ||
25 | * This program is free software; you can redistribute it and/or | ||
26 | * modify it under the terms of the GNU General Public License | ||
27 | * as published by the Free Software Foundation; either version | ||
28 | * 2 of the License, or (at your option) any later version. | ||
29 | */ | ||
30 | |||
31 | /* Revised by Kenneth Albanowski for m68knommu. Basic problem: unaligned access kills, so most | ||
32 | of the assembly has to go. */ | ||
33 | |||
34 | #include <linux/module.h> | ||
35 | #include <net/checksum.h> | ||
36 | |||
37 | static inline unsigned short from32to16(unsigned long x) | ||
38 | { | ||
39 | /* add up 16-bit and 16-bit for 16+c bit */ | ||
40 | x = (x & 0xffff) + (x >> 16); | ||
41 | /* add up carry.. */ | ||
42 | x = (x & 0xffff) + (x >> 16); | ||
43 | return x; | ||
44 | } | ||
45 | |||
46 | static unsigned long do_csum(const unsigned char * buff, int len) | ||
47 | { | ||
48 | int odd, count; | ||
49 | unsigned long result = 0; | ||
50 | |||
51 | if (len <= 0) | ||
52 | goto out; | ||
53 | odd = 1 & (unsigned long) buff; | ||
54 | if (odd) { | ||
55 | result = *buff; | ||
56 | len--; | ||
57 | buff++; | ||
58 | } | ||
59 | count = len >> 1; /* nr of 16-bit words.. */ | ||
60 | if (count) { | ||
61 | if (2 & (unsigned long) buff) { | ||
62 | result += *(unsigned short *) buff; | ||
63 | count--; | ||
64 | len -= 2; | ||
65 | buff += 2; | ||
66 | } | ||
67 | count >>= 1; /* nr of 32-bit words.. */ | ||
68 | if (count) { | ||
69 | unsigned long carry = 0; | ||
70 | do { | ||
71 | unsigned long w = *(unsigned long *) buff; | ||
72 | count--; | ||
73 | buff += 4; | ||
74 | result += carry; | ||
75 | result += w; | ||
76 | carry = (w > result); | ||
77 | } while (count); | ||
78 | result += carry; | ||
79 | result = (result & 0xffff) + (result >> 16); | ||
80 | } | ||
81 | if (len & 2) { | ||
82 | result += *(unsigned short *) buff; | ||
83 | buff += 2; | ||
84 | } | ||
85 | } | ||
86 | if (len & 1) | ||
87 | result += (*buff << 8); | ||
88 | result = from32to16(result); | ||
89 | if (odd) | ||
90 | result = ((result >> 8) & 0xff) | ((result & 0xff) << 8); | ||
91 | out: | ||
92 | return result; | ||
93 | } | ||
94 | |||
95 | /* | ||
96 | * This is a version of ip_compute_csum() optimized for IP headers, | ||
97 | * which always checksum on 4 octet boundaries. | ||
98 | */ | ||
99 | unsigned short ip_fast_csum(unsigned char * iph, unsigned int ihl) | ||
100 | { | ||
101 | return ~do_csum(iph,ihl*4); | ||
102 | } | ||
103 | |||
104 | /* | ||
105 | * computes the checksum of a memory block at buff, length len, | ||
106 | * and adds in "sum" (32-bit) | ||
107 | * | ||
108 | * returns a 32-bit number suitable for feeding into itself | ||
109 | * or csum_tcpudp_magic | ||
110 | * | ||
111 | * this function must be called with even lengths, except | ||
112 | * for the last fragment, which may be odd | ||
113 | * | ||
114 | * it's best to have buff aligned on a 32-bit boundary | ||
115 | */ | ||
116 | unsigned int csum_partial(const unsigned char * buff, int len, unsigned int sum) | ||
117 | { | ||
118 | unsigned int result = do_csum(buff, len); | ||
119 | |||
120 | /* add in old sum, and carry.. */ | ||
121 | result += sum; | ||
122 | if (sum > result) | ||
123 | result += 1; | ||
124 | return result; | ||
125 | } | ||
126 | |||
127 | EXPORT_SYMBOL(csum_partial); | ||
128 | |||
129 | /* | ||
130 | * this routine is used for miscellaneous IP-like checksums, mainly | ||
131 | * in icmp.c | ||
132 | */ | ||
133 | unsigned short ip_compute_csum(const unsigned char * buff, int len) | ||
134 | { | ||
135 | return ~do_csum(buff,len); | ||
136 | } | ||
137 | |||
138 | /* | ||
139 | * copy from fs while checksumming, otherwise like csum_partial | ||
140 | */ | ||
141 | |||
142 | unsigned int | ||
143 | csum_partial_copy_from_user(const unsigned char *src, unsigned char *dst, | ||
144 | int len, int sum, int *csum_err) | ||
145 | { | ||
146 | if (csum_err) *csum_err = 0; | ||
147 | memcpy(dst, src, len); | ||
148 | return csum_partial(dst, len, sum); | ||
149 | } | ||
150 | |||
151 | /* | ||
152 | * copy from ds while checksumming, otherwise like csum_partial | ||
153 | */ | ||
154 | |||
155 | unsigned int | ||
156 | csum_partial_copy(const unsigned char *src, unsigned char *dst, int len, int sum) | ||
157 | { | ||
158 | memcpy(dst, src, len); | ||
159 | return csum_partial(dst, len, sum); | ||
160 | } | ||
diff --git a/arch/m68knommu/lib/delay.c b/arch/m68knommu/lib/delay.c new file mode 100644 index 000000000000..5bd5472d38a0 --- /dev/null +++ b/arch/m68knommu/lib/delay.c | |||
@@ -0,0 +1,21 @@ | |||
1 | /* | ||
2 | * arch/m68knommu/lib/delay.c | ||
3 | * | ||
4 | * (C) Copyright 2004, Greg Ungerer <gerg@snapgear.com> | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | */ | ||
10 | |||
11 | #include <linux/module.h> | ||
12 | #include <asm/param.h> | ||
13 | #include <asm/delay.h> | ||
14 | |||
15 | EXPORT_SYMBOL(udelay); | ||
16 | |||
17 | void udelay(unsigned long usecs) | ||
18 | { | ||
19 | _udelay(usecs); | ||
20 | } | ||
21 | |||
diff --git a/arch/m68knommu/lib/divsi3.S b/arch/m68knommu/lib/divsi3.S new file mode 100644 index 000000000000..ec307b61991e --- /dev/null +++ b/arch/m68knommu/lib/divsi3.S | |||
@@ -0,0 +1,125 @@ | |||
1 | /* libgcc1 routines for 68000 w/o floating-point hardware. | ||
2 | Copyright (C) 1994, 1996, 1997, 1998 Free Software Foundation, Inc. | ||
3 | |||
4 | This file is part of GNU CC. | ||
5 | |||
6 | GNU CC is free software; you can redistribute it and/or modify it | ||
7 | under the terms of the GNU General Public License as published by the | ||
8 | Free Software Foundation; either version 2, or (at your option) any | ||
9 | later version. | ||
10 | |||
11 | In addition to the permissions in the GNU General Public License, the | ||
12 | Free Software Foundation gives you unlimited permission to link the | ||
13 | compiled version of this file with other programs, and to distribute | ||
14 | those programs without any restriction coming from the use of this | ||
15 | file. (The General Public License restrictions do apply in other | ||
16 | respects; for example, they cover modification of the file, and | ||
17 | distribution when not linked into another program.) | ||
18 | |||
19 | This file is distributed in the hope that it will be useful, but | ||
20 | WITHOUT ANY WARRANTY; without even the implied warranty of | ||
21 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
22 | General Public License for more details. | ||
23 | |||
24 | You should have received a copy of the GNU General Public License | ||
25 | along with this program; see the file COPYING. If not, write to | ||
26 | the Free Software Foundation, 59 Temple Place - Suite 330, | ||
27 | Boston, MA 02111-1307, USA. */ | ||
28 | |||
29 | /* As a special exception, if you link this library with files | ||
30 | compiled with GCC to produce an executable, this does not cause | ||
31 | the resulting executable to be covered by the GNU General Public License. | ||
32 | This exception does not however invalidate any other reasons why | ||
33 | the executable file might be covered by the GNU General Public License. */ | ||
34 | |||
35 | /* Use this one for any 680x0; assumes no floating point hardware. | ||
36 | The trailing " '" appearing on some lines is for ANSI preprocessors. Yuk. | ||
37 | Some of this code comes from MINIX, via the folks at ericsson. | ||
38 | D. V. Henkel-Wallace (gumby@cygnus.com) Fete Bastille, 1992 | ||
39 | */ | ||
40 | |||
41 | /* These are predefined by new versions of GNU cpp. */ | ||
42 | |||
43 | #ifndef __USER_LABEL_PREFIX__ | ||
44 | #define __USER_LABEL_PREFIX__ _ | ||
45 | #endif | ||
46 | |||
47 | #ifndef __REGISTER_PREFIX__ | ||
48 | #define __REGISTER_PREFIX__ | ||
49 | #endif | ||
50 | |||
51 | #ifndef __IMMEDIATE_PREFIX__ | ||
52 | #define __IMMEDIATE_PREFIX__ # | ||
53 | #endif | ||
54 | |||
55 | /* ANSI concatenation macros. */ | ||
56 | |||
57 | #define CONCAT1(a, b) CONCAT2(a, b) | ||
58 | #define CONCAT2(a, b) a ## b | ||
59 | |||
60 | /* Use the right prefix for global labels. */ | ||
61 | |||
62 | #define SYM(x) CONCAT1 (__USER_LABEL_PREFIX__, x) | ||
63 | |||
64 | /* Use the right prefix for registers. */ | ||
65 | |||
66 | #define REG(x) CONCAT1 (__REGISTER_PREFIX__, x) | ||
67 | |||
68 | /* Use the right prefix for immediate values. */ | ||
69 | |||
70 | #define IMM(x) CONCAT1 (__IMMEDIATE_PREFIX__, x) | ||
71 | |||
72 | #define d0 REG (d0) | ||
73 | #define d1 REG (d1) | ||
74 | #define d2 REG (d2) | ||
75 | #define d3 REG (d3) | ||
76 | #define d4 REG (d4) | ||
77 | #define d5 REG (d5) | ||
78 | #define d6 REG (d6) | ||
79 | #define d7 REG (d7) | ||
80 | #define a0 REG (a0) | ||
81 | #define a1 REG (a1) | ||
82 | #define a2 REG (a2) | ||
83 | #define a3 REG (a3) | ||
84 | #define a4 REG (a4) | ||
85 | #define a5 REG (a5) | ||
86 | #define a6 REG (a6) | ||
87 | #define fp REG (fp) | ||
88 | #define sp REG (sp) | ||
89 | |||
90 | .text | ||
91 | .proc | ||
92 | .globl SYM (__divsi3) | ||
93 | SYM (__divsi3): | ||
94 | movel d2, sp@- | ||
95 | |||
96 | moveq IMM (1), d2 /* sign of result stored in d2 (=1 or =-1) */ | ||
97 | movel sp@(12), d1 /* d1 = divisor */ | ||
98 | jpl L1 | ||
99 | negl d1 | ||
100 | #if !(defined(__mcf5200__) || defined(__mcoldfire__)) | ||
101 | negb d2 /* change sign because divisor <0 */ | ||
102 | #else | ||
103 | negl d2 /* change sign because divisor <0 */ | ||
104 | #endif | ||
105 | L1: movel sp@(8), d0 /* d0 = dividend */ | ||
106 | jpl L2 | ||
107 | negl d0 | ||
108 | #if !(defined(__mcf5200__) || defined(__mcoldfire__)) | ||
109 | negb d2 | ||
110 | #else | ||
111 | negl d2 | ||
112 | #endif | ||
113 | |||
114 | L2: movel d1, sp@- | ||
115 | movel d0, sp@- | ||
116 | jbsr SYM (__udivsi3) /* divide abs(dividend) by abs(divisor) */ | ||
117 | addql IMM (8), sp | ||
118 | |||
119 | tstb d2 | ||
120 | jpl L3 | ||
121 | negl d0 | ||
122 | |||
123 | L3: movel sp@+, d2 | ||
124 | rts | ||
125 | |||
diff --git a/arch/m68knommu/lib/lshrdi3.c b/arch/m68knommu/lib/lshrdi3.c new file mode 100644 index 000000000000..93b1cb6fdee8 --- /dev/null +++ b/arch/m68knommu/lib/lshrdi3.c | |||
@@ -0,0 +1,62 @@ | |||
1 | /* lshrdi3.c extracted from gcc-2.7.2/libgcc2.c which is: */ | ||
2 | /* Copyright (C) 1989, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. | ||
3 | |||
4 | This file is part of GNU CC. | ||
5 | |||
6 | GNU CC is free software; you can redistribute it and/or modify | ||
7 | it under the terms of the GNU General Public License as published by | ||
8 | the Free Software Foundation; either version 2, or (at your option) | ||
9 | any later version. | ||
10 | |||
11 | GNU CC is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with GNU CC; see the file COPYING. If not, write to | ||
18 | the Free Software Foundation, 59 Temple Place - Suite 330, | ||
19 | Boston, MA 02111-1307, USA. */ | ||
20 | |||
21 | #define BITS_PER_UNIT 8 | ||
22 | |||
23 | typedef int SItype __attribute__ ((mode (SI))); | ||
24 | typedef unsigned int USItype __attribute__ ((mode (SI))); | ||
25 | typedef int DItype __attribute__ ((mode (DI))); | ||
26 | typedef int word_type __attribute__ ((mode (__word__))); | ||
27 | |||
28 | struct DIstruct {SItype high, low;}; | ||
29 | |||
30 | typedef union | ||
31 | { | ||
32 | struct DIstruct s; | ||
33 | DItype ll; | ||
34 | } DIunion; | ||
35 | |||
36 | DItype | ||
37 | __lshrdi3 (DItype u, word_type b) | ||
38 | { | ||
39 | DIunion w; | ||
40 | word_type bm; | ||
41 | DIunion uu; | ||
42 | |||
43 | if (b == 0) | ||
44 | return u; | ||
45 | |||
46 | uu.ll = u; | ||
47 | |||
48 | bm = (sizeof (SItype) * BITS_PER_UNIT) - b; | ||
49 | if (bm <= 0) | ||
50 | { | ||
51 | w.s.high = 0; | ||
52 | w.s.low = (USItype)uu.s.high >> -bm; | ||
53 | } | ||
54 | else | ||
55 | { | ||
56 | USItype carries = (USItype)uu.s.high << bm; | ||
57 | w.s.high = (USItype)uu.s.high >> b; | ||
58 | w.s.low = ((USItype)uu.s.low >> b) | carries; | ||
59 | } | ||
60 | |||
61 | return w.ll; | ||
62 | } | ||
diff --git a/arch/m68knommu/lib/memcpy.c b/arch/m68knommu/lib/memcpy.c new file mode 100644 index 000000000000..0d5577569e4c --- /dev/null +++ b/arch/m68knommu/lib/memcpy.c | |||
@@ -0,0 +1,63 @@ | |||
1 | |||
2 | #include <linux/types.h> | ||
3 | #include <linux/autoconf.h> | ||
4 | |||
5 | void * memcpy(void * to, const void * from, size_t n) | ||
6 | { | ||
7 | #ifdef CONFIG_COLDFIRE | ||
8 | void *xto = to; | ||
9 | size_t temp; | ||
10 | |||
11 | if (!n) | ||
12 | return xto; | ||
13 | if ((long) to & 1) | ||
14 | { | ||
15 | char *cto = to; | ||
16 | const char *cfrom = from; | ||
17 | *cto++ = *cfrom++; | ||
18 | to = cto; | ||
19 | from = cfrom; | ||
20 | n--; | ||
21 | } | ||
22 | if (n > 2 && (long) to & 2) | ||
23 | { | ||
24 | short *sto = to; | ||
25 | const short *sfrom = from; | ||
26 | *sto++ = *sfrom++; | ||
27 | to = sto; | ||
28 | from = sfrom; | ||
29 | n -= 2; | ||
30 | } | ||
31 | temp = n >> 2; | ||
32 | if (temp) | ||
33 | { | ||
34 | long *lto = to; | ||
35 | const long *lfrom = from; | ||
36 | for (; temp; temp--) | ||
37 | *lto++ = *lfrom++; | ||
38 | to = lto; | ||
39 | from = lfrom; | ||
40 | } | ||
41 | if (n & 2) | ||
42 | { | ||
43 | short *sto = to; | ||
44 | const short *sfrom = from; | ||
45 | *sto++ = *sfrom++; | ||
46 | to = sto; | ||
47 | from = sfrom; | ||
48 | } | ||
49 | if (n & 1) | ||
50 | { | ||
51 | char *cto = to; | ||
52 | const char *cfrom = from; | ||
53 | *cto = *cfrom; | ||
54 | } | ||
55 | return xto; | ||
56 | #else | ||
57 | const char *c_from = from; | ||
58 | char *c_to = to; | ||
59 | while (n-- > 0) | ||
60 | *c_to++ = *c_from++; | ||
61 | return((void *) to); | ||
62 | #endif | ||
63 | } | ||
diff --git a/arch/m68knommu/lib/memset.c b/arch/m68knommu/lib/memset.c new file mode 100644 index 000000000000..1389bf455633 --- /dev/null +++ b/arch/m68knommu/lib/memset.c | |||
@@ -0,0 +1,47 @@ | |||
1 | #include <linux/types.h> | ||
2 | |||
3 | void * memset(void * s, int c, size_t count) | ||
4 | { | ||
5 | void *xs = s; | ||
6 | size_t temp; | ||
7 | |||
8 | if (!count) | ||
9 | return xs; | ||
10 | c &= 0xff; | ||
11 | c |= c << 8; | ||
12 | c |= c << 16; | ||
13 | if ((long) s & 1) | ||
14 | { | ||
15 | char *cs = s; | ||
16 | *cs++ = c; | ||
17 | s = cs; | ||
18 | count--; | ||
19 | } | ||
20 | if (count > 2 && (long) s & 2) | ||
21 | { | ||
22 | short *ss = s; | ||
23 | *ss++ = c; | ||
24 | s = ss; | ||
25 | count -= 2; | ||
26 | } | ||
27 | temp = count >> 2; | ||
28 | if (temp) | ||
29 | { | ||
30 | long *ls = s; | ||
31 | for (; temp; temp--) | ||
32 | *ls++ = c; | ||
33 | s = ls; | ||
34 | } | ||
35 | if (count & 2) | ||
36 | { | ||
37 | short *ss = s; | ||
38 | *ss++ = c; | ||
39 | s = ss; | ||
40 | } | ||
41 | if (count & 1) | ||
42 | { | ||
43 | char *cs = s; | ||
44 | *cs = c; | ||
45 | } | ||
46 | return xs; | ||
47 | } | ||
diff --git a/arch/m68knommu/lib/modsi3.S b/arch/m68knommu/lib/modsi3.S new file mode 100644 index 000000000000..ef3849435768 --- /dev/null +++ b/arch/m68knommu/lib/modsi3.S | |||
@@ -0,0 +1,113 @@ | |||
1 | /* libgcc1 routines for 68000 w/o floating-point hardware. | ||
2 | Copyright (C) 1994, 1996, 1997, 1998 Free Software Foundation, Inc. | ||
3 | |||
4 | This file is part of GNU CC. | ||
5 | |||
6 | GNU CC is free software; you can redistribute it and/or modify it | ||
7 | under the terms of the GNU General Public License as published by the | ||
8 | Free Software Foundation; either version 2, or (at your option) any | ||
9 | later version. | ||
10 | |||
11 | In addition to the permissions in the GNU General Public License, the | ||
12 | Free Software Foundation gives you unlimited permission to link the | ||
13 | compiled version of this file with other programs, and to distribute | ||
14 | those programs without any restriction coming from the use of this | ||
15 | file. (The General Public License restrictions do apply in other | ||
16 | respects; for example, they cover modification of the file, and | ||
17 | distribution when not linked into another program.) | ||
18 | |||
19 | This file is distributed in the hope that it will be useful, but | ||
20 | WITHOUT ANY WARRANTY; without even the implied warranty of | ||
21 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
22 | General Public License for more details. | ||
23 | |||
24 | You should have received a copy of the GNU General Public License | ||
25 | along with this program; see the file COPYING. If not, write to | ||
26 | the Free Software Foundation, 59 Temple Place - Suite 330, | ||
27 | Boston, MA 02111-1307, USA. */ | ||
28 | |||
29 | /* As a special exception, if you link this library with files | ||
30 | compiled with GCC to produce an executable, this does not cause | ||
31 | the resulting executable to be covered by the GNU General Public License. | ||
32 | This exception does not however invalidate any other reasons why | ||
33 | the executable file might be covered by the GNU General Public License. */ | ||
34 | |||
35 | /* Use this one for any 680x0; assumes no floating point hardware. | ||
36 | The trailing " '" appearing on some lines is for ANSI preprocessors. Yuk. | ||
37 | Some of this code comes from MINIX, via the folks at ericsson. | ||
38 | D. V. Henkel-Wallace (gumby@cygnus.com) Fete Bastille, 1992 | ||
39 | */ | ||
40 | |||
41 | /* These are predefined by new versions of GNU cpp. */ | ||
42 | |||
43 | #ifndef __USER_LABEL_PREFIX__ | ||
44 | #define __USER_LABEL_PREFIX__ _ | ||
45 | #endif | ||
46 | |||
47 | #ifndef __REGISTER_PREFIX__ | ||
48 | #define __REGISTER_PREFIX__ | ||
49 | #endif | ||
50 | |||
51 | #ifndef __IMMEDIATE_PREFIX__ | ||
52 | #define __IMMEDIATE_PREFIX__ # | ||
53 | #endif | ||
54 | |||
55 | /* ANSI concatenation macros. */ | ||
56 | |||
57 | #define CONCAT1(a, b) CONCAT2(a, b) | ||
58 | #define CONCAT2(a, b) a ## b | ||
59 | |||
60 | /* Use the right prefix for global labels. */ | ||
61 | |||
62 | #define SYM(x) CONCAT1 (__USER_LABEL_PREFIX__, x) | ||
63 | |||
64 | /* Use the right prefix for registers. */ | ||
65 | |||
66 | #define REG(x) CONCAT1 (__REGISTER_PREFIX__, x) | ||
67 | |||
68 | /* Use the right prefix for immediate values. */ | ||
69 | |||
70 | #define IMM(x) CONCAT1 (__IMMEDIATE_PREFIX__, x) | ||
71 | |||
72 | #define d0 REG (d0) | ||
73 | #define d1 REG (d1) | ||
74 | #define d2 REG (d2) | ||
75 | #define d3 REG (d3) | ||
76 | #define d4 REG (d4) | ||
77 | #define d5 REG (d5) | ||
78 | #define d6 REG (d6) | ||
79 | #define d7 REG (d7) | ||
80 | #define a0 REG (a0) | ||
81 | #define a1 REG (a1) | ||
82 | #define a2 REG (a2) | ||
83 | #define a3 REG (a3) | ||
84 | #define a4 REG (a4) | ||
85 | #define a5 REG (a5) | ||
86 | #define a6 REG (a6) | ||
87 | #define fp REG (fp) | ||
88 | #define sp REG (sp) | ||
89 | |||
90 | .text | ||
91 | .proc | ||
92 | .globl SYM (__modsi3) | ||
93 | SYM (__modsi3): | ||
94 | movel sp@(8), d1 /* d1 = divisor */ | ||
95 | movel sp@(4), d0 /* d0 = dividend */ | ||
96 | movel d1, sp@- | ||
97 | movel d0, sp@- | ||
98 | jbsr SYM (__divsi3) | ||
99 | addql IMM (8), sp | ||
100 | movel sp@(8), d1 /* d1 = divisor */ | ||
101 | #if !(defined(__mcf5200__) || defined(__mcoldfire__)) | ||
102 | movel d1, sp@- | ||
103 | movel d0, sp@- | ||
104 | jbsr SYM (__mulsi3) /* d0 = (a/b)*b */ | ||
105 | addql IMM (8), sp | ||
106 | #else | ||
107 | mulsl d1,d0 | ||
108 | #endif | ||
109 | movel sp@(4), d1 /* d1 = dividend */ | ||
110 | subl d0, d1 /* d1 = a - (a/b)*b */ | ||
111 | movel d1, d0 | ||
112 | rts | ||
113 | |||
diff --git a/arch/m68knommu/lib/muldi3.c b/arch/m68knommu/lib/muldi3.c new file mode 100644 index 000000000000..34af72c30303 --- /dev/null +++ b/arch/m68knommu/lib/muldi3.c | |||
@@ -0,0 +1,86 @@ | |||
1 | /* muldi3.c extracted from gcc-2.7.2.3/libgcc2.c and | ||
2 | gcc-2.7.2.3/longlong.h which is: */ | ||
3 | /* Copyright (C) 1989, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. | ||
4 | |||
5 | This file is part of GNU CC. | ||
6 | |||
7 | GNU CC is free software; you can redistribute it and/or modify | ||
8 | it under the terms of the GNU General Public License as published by | ||
9 | the Free Software Foundation; either version 2, or (at your option) | ||
10 | any later version. | ||
11 | |||
12 | GNU CC is distributed in the hope that it will be useful, | ||
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
15 | GNU General Public License for more details. | ||
16 | |||
17 | You should have received a copy of the GNU General Public License | ||
18 | along with GNU CC; see the file COPYING. If not, write to | ||
19 | the Free Software Foundation, 59 Temple Place - Suite 330, | ||
20 | Boston, MA 02111-1307, USA. */ | ||
21 | |||
22 | #define BITS_PER_UNIT 8 | ||
23 | #define SI_TYPE_SIZE 32 | ||
24 | |||
25 | #define __BITS4 (SI_TYPE_SIZE / 4) | ||
26 | #define __ll_B (1L << (SI_TYPE_SIZE / 2)) | ||
27 | #define __ll_lowpart(t) ((USItype) (t) % __ll_B) | ||
28 | #define __ll_highpart(t) ((USItype) (t) / __ll_B) | ||
29 | |||
30 | #define umul_ppmm(w1, w0, u, v) \ | ||
31 | do { \ | ||
32 | USItype __x0, __x1, __x2, __x3; \ | ||
33 | USItype __ul, __vl, __uh, __vh; \ | ||
34 | \ | ||
35 | __ul = __ll_lowpart (u); \ | ||
36 | __uh = __ll_highpart (u); \ | ||
37 | __vl = __ll_lowpart (v); \ | ||
38 | __vh = __ll_highpart (v); \ | ||
39 | \ | ||
40 | __x0 = (USItype) __ul * __vl; \ | ||
41 | __x1 = (USItype) __ul * __vh; \ | ||
42 | __x2 = (USItype) __uh * __vl; \ | ||
43 | __x3 = (USItype) __uh * __vh; \ | ||
44 | \ | ||
45 | __x1 += __ll_highpart (__x0);/* this can't give carry */ \ | ||
46 | __x1 += __x2; /* but this indeed can */ \ | ||
47 | if (__x1 < __x2) /* did we get it? */ \ | ||
48 | __x3 += __ll_B; /* yes, add it in the proper pos. */ \ | ||
49 | \ | ||
50 | (w1) = __x3 + __ll_highpart (__x1); \ | ||
51 | (w0) = __ll_lowpart (__x1) * __ll_B + __ll_lowpart (__x0); \ | ||
52 | } while (0) | ||
53 | |||
54 | #define __umulsidi3(u, v) \ | ||
55 | ({DIunion __w; \ | ||
56 | umul_ppmm (__w.s.high, __w.s.low, u, v); \ | ||
57 | __w.ll; }) | ||
58 | |||
59 | typedef int SItype __attribute__ ((mode (SI))); | ||
60 | typedef unsigned int USItype __attribute__ ((mode (SI))); | ||
61 | typedef int DItype __attribute__ ((mode (DI))); | ||
62 | typedef int word_type __attribute__ ((mode (__word__))); | ||
63 | |||
64 | struct DIstruct {SItype high, low;}; | ||
65 | |||
66 | typedef union | ||
67 | { | ||
68 | struct DIstruct s; | ||
69 | DItype ll; | ||
70 | } DIunion; | ||
71 | |||
72 | DItype | ||
73 | __muldi3 (DItype u, DItype v) | ||
74 | { | ||
75 | DIunion w; | ||
76 | DIunion uu, vv; | ||
77 | |||
78 | uu.ll = u, | ||
79 | vv.ll = v; | ||
80 | |||
81 | w.ll = __umulsidi3 (uu.s.low, vv.s.low); | ||
82 | w.s.high += ((USItype) uu.s.low * (USItype) vv.s.high | ||
83 | + (USItype) uu.s.high * (USItype) vv.s.low); | ||
84 | |||
85 | return w.ll; | ||
86 | } | ||
diff --git a/arch/m68knommu/lib/mulsi3.S b/arch/m68knommu/lib/mulsi3.S new file mode 100644 index 000000000000..ce29ea37b45f --- /dev/null +++ b/arch/m68knommu/lib/mulsi3.S | |||
@@ -0,0 +1,110 @@ | |||
1 | /* libgcc1 routines for 68000 w/o floating-point hardware. | ||
2 | Copyright (C) 1994, 1996, 1997, 1998 Free Software Foundation, Inc. | ||
3 | |||
4 | This file is part of GNU CC. | ||
5 | |||
6 | GNU CC is free software; you can redistribute it and/or modify it | ||
7 | under the terms of the GNU General Public License as published by the | ||
8 | Free Software Foundation; either version 2, or (at your option) any | ||
9 | later version. | ||
10 | |||
11 | In addition to the permissions in the GNU General Public License, the | ||
12 | Free Software Foundation gives you unlimited permission to link the | ||
13 | compiled version of this file with other programs, and to distribute | ||
14 | those programs without any restriction coming from the use of this | ||
15 | file. (The General Public License restrictions do apply in other | ||
16 | respects; for example, they cover modification of the file, and | ||
17 | distribution when not linked into another program.) | ||
18 | |||
19 | This file is distributed in the hope that it will be useful, but | ||
20 | WITHOUT ANY WARRANTY; without even the implied warranty of | ||
21 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
22 | General Public License for more details. | ||
23 | |||
24 | You should have received a copy of the GNU General Public License | ||
25 | along with this program; see the file COPYING. If not, write to | ||
26 | the Free Software Foundation, 59 Temple Place - Suite 330, | ||
27 | Boston, MA 02111-1307, USA. */ | ||
28 | |||
29 | /* As a special exception, if you link this library with files | ||
30 | compiled with GCC to produce an executable, this does not cause | ||
31 | the resulting executable to be covered by the GNU General Public License. | ||
32 | This exception does not however invalidate any other reasons why | ||
33 | the executable file might be covered by the GNU General Public License. */ | ||
34 | |||
35 | /* Use this one for any 680x0; assumes no floating point hardware. | ||
36 | The trailing " '" appearing on some lines is for ANSI preprocessors. Yuk. | ||
37 | Some of this code comes from MINIX, via the folks at ericsson. | ||
38 | D. V. Henkel-Wallace (gumby@cygnus.com) Fete Bastille, 1992 | ||
39 | */ | ||
40 | |||
41 | /* These are predefined by new versions of GNU cpp. */ | ||
42 | |||
43 | #ifndef __USER_LABEL_PREFIX__ | ||
44 | #define __USER_LABEL_PREFIX__ _ | ||
45 | #endif | ||
46 | |||
47 | #ifndef __REGISTER_PREFIX__ | ||
48 | #define __REGISTER_PREFIX__ | ||
49 | #endif | ||
50 | |||
51 | #ifndef __IMMEDIATE_PREFIX__ | ||
52 | #define __IMMEDIATE_PREFIX__ # | ||
53 | #endif | ||
54 | |||
55 | /* ANSI concatenation macros. */ | ||
56 | |||
57 | #define CONCAT1(a, b) CONCAT2(a, b) | ||
58 | #define CONCAT2(a, b) a ## b | ||
59 | |||
60 | /* Use the right prefix for global labels. */ | ||
61 | |||
62 | #define SYM(x) CONCAT1 (__USER_LABEL_PREFIX__, x) | ||
63 | |||
64 | /* Use the right prefix for registers. */ | ||
65 | |||
66 | #define REG(x) CONCAT1 (__REGISTER_PREFIX__, x) | ||
67 | |||
68 | /* Use the right prefix for immediate values. */ | ||
69 | |||
70 | #define IMM(x) CONCAT1 (__IMMEDIATE_PREFIX__, x) | ||
71 | |||
72 | #define d0 REG (d0) | ||
73 | #define d1 REG (d1) | ||
74 | #define d2 REG (d2) | ||
75 | #define d3 REG (d3) | ||
76 | #define d4 REG (d4) | ||
77 | #define d5 REG (d5) | ||
78 | #define d6 REG (d6) | ||
79 | #define d7 REG (d7) | ||
80 | #define a0 REG (a0) | ||
81 | #define a1 REG (a1) | ||
82 | #define a2 REG (a2) | ||
83 | #define a3 REG (a3) | ||
84 | #define a4 REG (a4) | ||
85 | #define a5 REG (a5) | ||
86 | #define a6 REG (a6) | ||
87 | #define fp REG (fp) | ||
88 | #define sp REG (sp) | ||
89 | |||
90 | .text | ||
91 | .proc | ||
92 | .globl SYM (__mulsi3) | ||
93 | SYM (__mulsi3): | ||
94 | movew sp@(4), d0 /* x0 -> d0 */ | ||
95 | muluw sp@(10), d0 /* x0*y1 */ | ||
96 | movew sp@(6), d1 /* x1 -> d1 */ | ||
97 | muluw sp@(8), d1 /* x1*y0 */ | ||
98 | #if !(defined(__mcf5200__) || defined(__mcoldfire__)) | ||
99 | addw d1, d0 | ||
100 | #else | ||
101 | addl d1, d0 | ||
102 | #endif | ||
103 | swap d0 | ||
104 | clrw d0 | ||
105 | movew sp@(6), d1 /* x1 -> d1 */ | ||
106 | muluw sp@(10), d1 /* x1*y1 */ | ||
107 | addl d1, d0 | ||
108 | |||
109 | rts | ||
110 | |||
diff --git a/arch/m68knommu/lib/semaphore.S b/arch/m68knommu/lib/semaphore.S new file mode 100644 index 000000000000..76765362fea6 --- /dev/null +++ b/arch/m68knommu/lib/semaphore.S | |||
@@ -0,0 +1,67 @@ | |||
1 | /* | ||
2 | * linux/arch/m68k/lib/semaphore.S | ||
3 | * | ||
4 | * Copyright (C) 1996 Linus Torvalds | ||
5 | * | ||
6 | * m68k version by Andreas Schwab | ||
7 | * | ||
8 | * MAR/1999 -- modified to support ColdFire (gerg@snapgear.com) | ||
9 | */ | ||
10 | |||
11 | #include <linux/linkage.h> | ||
12 | #include <linux/config.h> | ||
13 | #include <asm/semaphore.h> | ||
14 | |||
15 | /* | ||
16 | * "down_failed" is called with the eventual return address | ||
17 | * in %a0, and the address of the semaphore in %a1. We need | ||
18 | * to increment the number of waiters on the semaphore, | ||
19 | * call "__down()", and then eventually return to try again. | ||
20 | */ | ||
21 | ENTRY(__down_failed) | ||
22 | #ifdef CONFIG_COLDFIRE | ||
23 | subl #12,%sp | ||
24 | moveml %a0/%d0/%d1,(%sp) | ||
25 | #else | ||
26 | moveml %a0/%d0/%d1,-(%sp) | ||
27 | #endif | ||
28 | movel %a1,-(%sp) | ||
29 | jbsr __down | ||
30 | movel (%sp)+,%a1 | ||
31 | movel (%sp)+,%d0 | ||
32 | movel (%sp)+,%d1 | ||
33 | rts | ||
34 | |||
35 | ENTRY(__down_failed_interruptible) | ||
36 | movel %a0,-(%sp) | ||
37 | movel %d1,-(%sp) | ||
38 | movel %a1,-(%sp) | ||
39 | jbsr __down_interruptible | ||
40 | movel (%sp)+,%a1 | ||
41 | movel (%sp)+,%d1 | ||
42 | rts | ||
43 | |||
44 | ENTRY(__up_wakeup) | ||
45 | #ifdef CONFIG_COLDFIRE | ||
46 | subl #12,%sp | ||
47 | moveml %a0/%d0/%d1,(%sp) | ||
48 | #else | ||
49 | moveml %a0/%d0/%d1,-(%sp) | ||
50 | #endif | ||
51 | movel %a1,-(%sp) | ||
52 | jbsr __up | ||
53 | movel (%sp)+,%a1 | ||
54 | movel (%sp)+,%d0 | ||
55 | movel (%sp)+,%d1 | ||
56 | rts | ||
57 | |||
58 | ENTRY(__down_failed_trylock) | ||
59 | movel %a0,-(%sp) | ||
60 | movel %d1,-(%sp) | ||
61 | movel %a1,-(%sp) | ||
62 | jbsr __down_trylock | ||
63 | movel (%sp)+,%a1 | ||
64 | movel (%sp)+,%d1 | ||
65 | movel (%sp)+,%a0 | ||
66 | rts | ||
67 | |||
diff --git a/arch/m68knommu/lib/udivsi3.S b/arch/m68knommu/lib/udivsi3.S new file mode 100644 index 000000000000..c424c4a1f0a3 --- /dev/null +++ b/arch/m68knommu/lib/udivsi3.S | |||
@@ -0,0 +1,162 @@ | |||
1 | /* libgcc1 routines for 68000 w/o floating-point hardware. | ||
2 | Copyright (C) 1994, 1996, 1997, 1998 Free Software Foundation, Inc. | ||
3 | |||
4 | This file is part of GNU CC. | ||
5 | |||
6 | GNU CC is free software; you can redistribute it and/or modify it | ||
7 | under the terms of the GNU General Public License as published by the | ||
8 | Free Software Foundation; either version 2, or (at your option) any | ||
9 | later version. | ||
10 | |||
11 | In addition to the permissions in the GNU General Public License, the | ||
12 | Free Software Foundation gives you unlimited permission to link the | ||
13 | compiled version of this file with other programs, and to distribute | ||
14 | those programs without any restriction coming from the use of this | ||
15 | file. (The General Public License restrictions do apply in other | ||
16 | respects; for example, they cover modification of the file, and | ||
17 | distribution when not linked into another program.) | ||
18 | |||
19 | This file is distributed in the hope that it will be useful, but | ||
20 | WITHOUT ANY WARRANTY; without even the implied warranty of | ||
21 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
22 | General Public License for more details. | ||
23 | |||
24 | You should have received a copy of the GNU General Public License | ||
25 | along with this program; see the file COPYING. If not, write to | ||
26 | the Free Software Foundation, 59 Temple Place - Suite 330, | ||
27 | Boston, MA 02111-1307, USA. */ | ||
28 | |||
29 | /* As a special exception, if you link this library with files | ||
30 | compiled with GCC to produce an executable, this does not cause | ||
31 | the resulting executable to be covered by the GNU General Public License. | ||
32 | This exception does not however invalidate any other reasons why | ||
33 | the executable file might be covered by the GNU General Public License. */ | ||
34 | |||
35 | /* Use this one for any 680x0; assumes no floating point hardware. | ||
36 | The trailing " '" appearing on some lines is for ANSI preprocessors. Yuk. | ||
37 | Some of this code comes from MINIX, via the folks at ericsson. | ||
38 | D. V. Henkel-Wallace (gumby@cygnus.com) Fete Bastille, 1992 | ||
39 | */ | ||
40 | |||
41 | /* These are predefined by new versions of GNU cpp. */ | ||
42 | |||
43 | #ifndef __USER_LABEL_PREFIX__ | ||
44 | #define __USER_LABEL_PREFIX__ _ | ||
45 | #endif | ||
46 | |||
47 | #ifndef __REGISTER_PREFIX__ | ||
48 | #define __REGISTER_PREFIX__ | ||
49 | #endif | ||
50 | |||
51 | #ifndef __IMMEDIATE_PREFIX__ | ||
52 | #define __IMMEDIATE_PREFIX__ # | ||
53 | #endif | ||
54 | |||
55 | /* ANSI concatenation macros. */ | ||
56 | |||
57 | #define CONCAT1(a, b) CONCAT2(a, b) | ||
58 | #define CONCAT2(a, b) a ## b | ||
59 | |||
60 | /* Use the right prefix for global labels. */ | ||
61 | |||
62 | #define SYM(x) CONCAT1 (__USER_LABEL_PREFIX__, x) | ||
63 | |||
64 | /* Use the right prefix for registers. */ | ||
65 | |||
66 | #define REG(x) CONCAT1 (__REGISTER_PREFIX__, x) | ||
67 | |||
68 | /* Use the right prefix for immediate values. */ | ||
69 | |||
70 | #define IMM(x) CONCAT1 (__IMMEDIATE_PREFIX__, x) | ||
71 | |||
72 | #define d0 REG (d0) | ||
73 | #define d1 REG (d1) | ||
74 | #define d2 REG (d2) | ||
75 | #define d3 REG (d3) | ||
76 | #define d4 REG (d4) | ||
77 | #define d5 REG (d5) | ||
78 | #define d6 REG (d6) | ||
79 | #define d7 REG (d7) | ||
80 | #define a0 REG (a0) | ||
81 | #define a1 REG (a1) | ||
82 | #define a2 REG (a2) | ||
83 | #define a3 REG (a3) | ||
84 | #define a4 REG (a4) | ||
85 | #define a5 REG (a5) | ||
86 | #define a6 REG (a6) | ||
87 | #define fp REG (fp) | ||
88 | #define sp REG (sp) | ||
89 | |||
90 | .text | ||
91 | .proc | ||
92 | .globl SYM (__udivsi3) | ||
93 | SYM (__udivsi3): | ||
94 | #if !(defined(__mcf5200__) || defined(__mcoldfire__)) | ||
95 | movel d2, sp@- | ||
96 | movel sp@(12), d1 /* d1 = divisor */ | ||
97 | movel sp@(8), d0 /* d0 = dividend */ | ||
98 | |||
99 | cmpl IMM (0x10000), d1 /* divisor >= 2 ^ 16 ? */ | ||
100 | jcc L3 /* then try next algorithm */ | ||
101 | movel d0, d2 | ||
102 | clrw d2 | ||
103 | swap d2 | ||
104 | divu d1, d2 /* high quotient in lower word */ | ||
105 | movew d2, d0 /* save high quotient */ | ||
106 | swap d0 | ||
107 | movew sp@(10), d2 /* get low dividend + high rest */ | ||
108 | divu d1, d2 /* low quotient */ | ||
109 | movew d2, d0 | ||
110 | jra L6 | ||
111 | |||
112 | L3: movel d1, d2 /* use d2 as divisor backup */ | ||
113 | L4: lsrl IMM (1), d1 /* shift divisor */ | ||
114 | lsrl IMM (1), d0 /* shift dividend */ | ||
115 | cmpl IMM (0x10000), d1 /* still divisor >= 2 ^ 16 ? */ | ||
116 | jcc L4 | ||
117 | divu d1, d0 /* now we have 16 bit divisor */ | ||
118 | andl IMM (0xffff), d0 /* mask out divisor, ignore remainder */ | ||
119 | |||
120 | /* Multiply the 16 bit tentative quotient with the 32 bit divisor. Because of | ||
121 | the operand ranges, this might give a 33 bit product. If this product is | ||
122 | greater than the dividend, the tentative quotient was too large. */ | ||
123 | movel d2, d1 | ||
124 | mulu d0, d1 /* low part, 32 bits */ | ||
125 | swap d2 | ||
126 | mulu d0, d2 /* high part, at most 17 bits */ | ||
127 | swap d2 /* align high part with low part */ | ||
128 | tstw d2 /* high part 17 bits? */ | ||
129 | jne L5 /* if 17 bits, quotient was too large */ | ||
130 | addl d2, d1 /* add parts */ | ||
131 | jcs L5 /* if sum is 33 bits, quotient was too large */ | ||
132 | cmpl sp@(8), d1 /* compare the sum with the dividend */ | ||
133 | jls L6 /* if sum > dividend, quotient was too large */ | ||
134 | L5: subql IMM (1), d0 /* adjust quotient */ | ||
135 | |||
136 | L6: movel sp@+, d2 | ||
137 | rts | ||
138 | |||
139 | #else /* __mcf5200__ || __mcoldfire__ */ | ||
140 | |||
141 | /* Coldfire implementation of non-restoring division algorithm from | ||
142 | Hennessy & Patterson, Appendix A. */ | ||
143 | link a6,IMM (-12) | ||
144 | moveml d2-d4,sp@ | ||
145 | movel a6@(8),d0 | ||
146 | movel a6@(12),d1 | ||
147 | clrl d2 | clear p | ||
148 | moveq IMM (31),d4 | ||
149 | L1: addl d0,d0 | shift reg pair (p,a) one bit left | ||
150 | addxl d2,d2 | ||
151 | movl d2,d3 | subtract b from p, store in tmp. | ||
152 | subl d1,d3 | ||
153 | jcs L2 | if no carry, | ||
154 | bset IMM (0),d0 | set the low order bit of a to 1, | ||
155 | movl d3,d2 | and store tmp in p. | ||
156 | L2: subql IMM (1),d4 | ||
157 | jcc L1 | ||
158 | moveml sp@,d2-d4 | restore data registers | ||
159 | unlk a6 | and return | ||
160 | rts | ||
161 | #endif /* __mcf5200__ || __mcoldfire__ */ | ||
162 | |||
diff --git a/arch/m68knommu/lib/umodsi3.S b/arch/m68knommu/lib/umodsi3.S new file mode 100644 index 000000000000..5def5f626478 --- /dev/null +++ b/arch/m68knommu/lib/umodsi3.S | |||
@@ -0,0 +1,113 @@ | |||
1 | /* libgcc1 routines for 68000 w/o floating-point hardware. | ||
2 | Copyright (C) 1994, 1996, 1997, 1998 Free Software Foundation, Inc. | ||
3 | |||
4 | This file is part of GNU CC. | ||
5 | |||
6 | GNU CC is free software; you can redistribute it and/or modify it | ||
7 | under the terms of the GNU General Public License as published by the | ||
8 | Free Software Foundation; either version 2, or (at your option) any | ||
9 | later version. | ||
10 | |||
11 | In addition to the permissions in the GNU General Public License, the | ||
12 | Free Software Foundation gives you unlimited permission to link the | ||
13 | compiled version of this file with other programs, and to distribute | ||
14 | those programs without any restriction coming from the use of this | ||
15 | file. (The General Public License restrictions do apply in other | ||
16 | respects; for example, they cover modification of the file, and | ||
17 | distribution when not linked into another program.) | ||
18 | |||
19 | This file is distributed in the hope that it will be useful, but | ||
20 | WITHOUT ANY WARRANTY; without even the implied warranty of | ||
21 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
22 | General Public License for more details. | ||
23 | |||
24 | You should have received a copy of the GNU General Public License | ||
25 | along with this program; see the file COPYING. If not, write to | ||
26 | the Free Software Foundation, 59 Temple Place - Suite 330, | ||
27 | Boston, MA 02111-1307, USA. */ | ||
28 | |||
29 | /* As a special exception, if you link this library with files | ||
30 | compiled with GCC to produce an executable, this does not cause | ||
31 | the resulting executable to be covered by the GNU General Public License. | ||
32 | This exception does not however invalidate any other reasons why | ||
33 | the executable file might be covered by the GNU General Public License. */ | ||
34 | |||
35 | /* Use this one for any 680x0; assumes no floating point hardware. | ||
36 | The trailing " '" appearing on some lines is for ANSI preprocessors. Yuk. | ||
37 | Some of this code comes from MINIX, via the folks at ericsson. | ||
38 | D. V. Henkel-Wallace (gumby@cygnus.com) Fete Bastille, 1992 | ||
39 | */ | ||
40 | |||
41 | /* These are predefined by new versions of GNU cpp. */ | ||
42 | |||
43 | #ifndef __USER_LABEL_PREFIX__ | ||
44 | #define __USER_LABEL_PREFIX__ _ | ||
45 | #endif | ||
46 | |||
47 | #ifndef __REGISTER_PREFIX__ | ||
48 | #define __REGISTER_PREFIX__ | ||
49 | #endif | ||
50 | |||
51 | #ifndef __IMMEDIATE_PREFIX__ | ||
52 | #define __IMMEDIATE_PREFIX__ # | ||
53 | #endif | ||
54 | |||
55 | /* ANSI concatenation macros. */ | ||
56 | |||
57 | #define CONCAT1(a, b) CONCAT2(a, b) | ||
58 | #define CONCAT2(a, b) a ## b | ||
59 | |||
60 | /* Use the right prefix for global labels. */ | ||
61 | |||
62 | #define SYM(x) CONCAT1 (__USER_LABEL_PREFIX__, x) | ||
63 | |||
64 | /* Use the right prefix for registers. */ | ||
65 | |||
66 | #define REG(x) CONCAT1 (__REGISTER_PREFIX__, x) | ||
67 | |||
68 | /* Use the right prefix for immediate values. */ | ||
69 | |||
70 | #define IMM(x) CONCAT1 (__IMMEDIATE_PREFIX__, x) | ||
71 | |||
72 | #define d0 REG (d0) | ||
73 | #define d1 REG (d1) | ||
74 | #define d2 REG (d2) | ||
75 | #define d3 REG (d3) | ||
76 | #define d4 REG (d4) | ||
77 | #define d5 REG (d5) | ||
78 | #define d6 REG (d6) | ||
79 | #define d7 REG (d7) | ||
80 | #define a0 REG (a0) | ||
81 | #define a1 REG (a1) | ||
82 | #define a2 REG (a2) | ||
83 | #define a3 REG (a3) | ||
84 | #define a4 REG (a4) | ||
85 | #define a5 REG (a5) | ||
86 | #define a6 REG (a6) | ||
87 | #define fp REG (fp) | ||
88 | #define sp REG (sp) | ||
89 | |||
90 | .text | ||
91 | .proc | ||
92 | .globl SYM (__umodsi3) | ||
93 | SYM (__umodsi3): | ||
94 | movel sp@(8), d1 /* d1 = divisor */ | ||
95 | movel sp@(4), d0 /* d0 = dividend */ | ||
96 | movel d1, sp@- | ||
97 | movel d0, sp@- | ||
98 | jbsr SYM (__udivsi3) | ||
99 | addql IMM (8), sp | ||
100 | movel sp@(8), d1 /* d1 = divisor */ | ||
101 | #if !(defined(__mcf5200__) || defined(__mcoldfire__)) | ||
102 | movel d1, sp@- | ||
103 | movel d0, sp@- | ||
104 | jbsr SYM (__mulsi3) /* d0 = (a/b)*b */ | ||
105 | addql IMM (8), sp | ||
106 | #else | ||
107 | mulsl d1,d0 | ||
108 | #endif | ||
109 | movel sp@(4), d1 /* d1 = dividend */ | ||
110 | subl d0, d1 /* d1 = a - (a/b)*b */ | ||
111 | movel d1, d0 | ||
112 | rts | ||
113 | |||
diff --git a/arch/m68knommu/mm/Makefile b/arch/m68knommu/mm/Makefile new file mode 100644 index 000000000000..fc91f254f51b --- /dev/null +++ b/arch/m68knommu/mm/Makefile | |||
@@ -0,0 +1,5 @@ | |||
1 | # | ||
2 | # Makefile for the linux m68knommu specific parts of the memory manager. | ||
3 | # | ||
4 | |||
5 | obj-y += init.o fault.o memory.o kmap.o | ||
diff --git a/arch/m68knommu/mm/fault.c b/arch/m68knommu/mm/fault.c new file mode 100644 index 000000000000..6f6673cb5829 --- /dev/null +++ b/arch/m68knommu/mm/fault.c | |||
@@ -0,0 +1,57 @@ | |||
1 | /* | ||
2 | * linux/arch/m68knommu/mm/fault.c | ||
3 | * | ||
4 | * Copyright (C) 1998 D. Jeff Dionne <jeff@lineo.ca>, | ||
5 | * Copyright (C) 2000 Lineo, Inc. (www.lineo.com) | ||
6 | * | ||
7 | * Based on: | ||
8 | * | ||
9 | * linux/arch/m68k/mm/fault.c | ||
10 | * | ||
11 | * Copyright (C) 1995 Hamish Macdonald | ||
12 | */ | ||
13 | |||
14 | #include <linux/mman.h> | ||
15 | #include <linux/mm.h> | ||
16 | #include <linux/kernel.h> | ||
17 | #include <linux/ptrace.h> | ||
18 | |||
19 | #include <asm/system.h> | ||
20 | #include <asm/pgtable.h> | ||
21 | |||
22 | extern void die_if_kernel(char *, struct pt_regs *, long); | ||
23 | |||
24 | /* | ||
25 | * This routine handles page faults. It determines the problem, and | ||
26 | * then passes it off to one of the appropriate routines. | ||
27 | * | ||
28 | * error_code: | ||
29 | * bit 0 == 0 means no page found, 1 means protection fault | ||
30 | * bit 1 == 0 means read, 1 means write | ||
31 | * | ||
32 | * If this routine detects a bad access, it returns 1, otherwise it | ||
33 | * returns 0. | ||
34 | */ | ||
35 | asmlinkage int do_page_fault(struct pt_regs *regs, unsigned long address, | ||
36 | unsigned long error_code) | ||
37 | { | ||
38 | #ifdef DEBUG | ||
39 | printk (KERN_DEBUG "regs->sr=%#x, regs->pc=%#lx, address=%#lx, %ld\n", | ||
40 | regs->sr, regs->pc, address, error_code); | ||
41 | #endif | ||
42 | |||
43 | /* | ||
44 | * Oops. The kernel tried to access some bad page. We'll have to | ||
45 | * terminate things with extreme prejudice. | ||
46 | */ | ||
47 | if ((unsigned long) address < PAGE_SIZE) { | ||
48 | printk(KERN_ALERT "Unable to handle kernel NULL pointer dereference"); | ||
49 | } else | ||
50 | printk(KERN_ALERT "Unable to handle kernel access"); | ||
51 | printk(KERN_ALERT " at virtual address %08lx\n",address); | ||
52 | die_if_kernel("Oops", regs, error_code); | ||
53 | do_exit(SIGKILL); | ||
54 | |||
55 | return 1; | ||
56 | } | ||
57 | |||
diff --git a/arch/m68knommu/mm/init.c b/arch/m68knommu/mm/init.c new file mode 100644 index 000000000000..89f0b554ffb7 --- /dev/null +++ b/arch/m68knommu/mm/init.c | |||
@@ -0,0 +1,231 @@ | |||
1 | /* | ||
2 | * linux/arch/m68knommu/mm/init.c | ||
3 | * | ||
4 | * Copyright (C) 1998 D. Jeff Dionne <jeff@lineo.ca>, | ||
5 | * Kenneth Albanowski <kjahds@kjahds.com>, | ||
6 | * Copyright (C) 2000 Lineo, Inc. (www.lineo.com) | ||
7 | * | ||
8 | * Based on: | ||
9 | * | ||
10 | * linux/arch/m68k/mm/init.c | ||
11 | * | ||
12 | * Copyright (C) 1995 Hamish Macdonald | ||
13 | * | ||
14 | * JAN/1999 -- hacked to support ColdFire (gerg@snapgear.com) | ||
15 | * DEC/2000 -- linux 2.4 support <davidm@snapgear.com> | ||
16 | */ | ||
17 | |||
18 | #include <linux/config.h> | ||
19 | #include <linux/signal.h> | ||
20 | #include <linux/sched.h> | ||
21 | #include <linux/kernel.h> | ||
22 | #include <linux/errno.h> | ||
23 | #include <linux/string.h> | ||
24 | #include <linux/types.h> | ||
25 | #include <linux/ptrace.h> | ||
26 | #include <linux/mman.h> | ||
27 | #include <linux/mm.h> | ||
28 | #include <linux/swap.h> | ||
29 | #include <linux/init.h> | ||
30 | #include <linux/highmem.h> | ||
31 | #include <linux/pagemap.h> | ||
32 | #include <linux/bootmem.h> | ||
33 | #include <linux/slab.h> | ||
34 | |||
35 | #include <asm/setup.h> | ||
36 | #include <asm/segment.h> | ||
37 | #include <asm/page.h> | ||
38 | #include <asm/pgtable.h> | ||
39 | #include <asm/system.h> | ||
40 | #include <asm/machdep.h> | ||
41 | |||
42 | #undef DEBUG | ||
43 | |||
44 | extern void die_if_kernel(char *,struct pt_regs *,long); | ||
45 | extern void free_initmem(void); | ||
46 | |||
47 | /* | ||
48 | * BAD_PAGE is the page that is used for page faults when linux | ||
49 | * is out-of-memory. Older versions of linux just did a | ||
50 | * do_exit(), but using this instead means there is less risk | ||
51 | * for a process dying in kernel mode, possibly leaving a inode | ||
52 | * unused etc.. | ||
53 | * | ||
54 | * BAD_PAGETABLE is the accompanying page-table: it is initialized | ||
55 | * to point to BAD_PAGE entries. | ||
56 | * | ||
57 | * ZERO_PAGE is a special page that is used for zero-initialized | ||
58 | * data and COW. | ||
59 | */ | ||
60 | static unsigned long empty_bad_page_table; | ||
61 | |||
62 | static unsigned long empty_bad_page; | ||
63 | |||
64 | unsigned long empty_zero_page; | ||
65 | |||
66 | extern unsigned long rom_length; | ||
67 | |||
68 | void show_mem(void) | ||
69 | { | ||
70 | unsigned long i; | ||
71 | int free = 0, total = 0, reserved = 0, shared = 0; | ||
72 | int cached = 0; | ||
73 | |||
74 | printk(KERN_INFO "\nMem-info:\n"); | ||
75 | show_free_areas(); | ||
76 | i = max_mapnr; | ||
77 | while (i-- > 0) { | ||
78 | total++; | ||
79 | if (PageReserved(mem_map+i)) | ||
80 | reserved++; | ||
81 | else if (PageSwapCache(mem_map+i)) | ||
82 | cached++; | ||
83 | else if (!page_count(mem_map+i)) | ||
84 | free++; | ||
85 | else | ||
86 | shared += page_count(mem_map+i) - 1; | ||
87 | } | ||
88 | printk(KERN_INFO "%d pages of RAM\n",total); | ||
89 | printk(KERN_INFO "%d free pages\n",free); | ||
90 | printk(KERN_INFO "%d reserved pages\n",reserved); | ||
91 | printk(KERN_INFO "%d pages shared\n",shared); | ||
92 | printk(KERN_INFO "%d pages swap cached\n",cached); | ||
93 | } | ||
94 | |||
95 | extern unsigned long memory_start; | ||
96 | extern unsigned long memory_end; | ||
97 | |||
98 | /* | ||
99 | * paging_init() continues the virtual memory environment setup which | ||
100 | * was begun by the code in arch/head.S. | ||
101 | * The parameters are pointers to where to stick the starting and ending | ||
102 | * addresses of available kernel virtual memory. | ||
103 | */ | ||
104 | void paging_init(void) | ||
105 | { | ||
106 | /* | ||
107 | * Make sure start_mem is page aligned, otherwise bootmem and | ||
108 | * page_alloc get different views of the world. | ||
109 | */ | ||
110 | #ifdef DEBUG | ||
111 | unsigned long start_mem = PAGE_ALIGN(memory_start); | ||
112 | #endif | ||
113 | unsigned long end_mem = memory_end & PAGE_MASK; | ||
114 | |||
115 | #ifdef DEBUG | ||
116 | printk (KERN_DEBUG "start_mem is %#lx\nvirtual_end is %#lx\n", | ||
117 | start_mem, end_mem); | ||
118 | #endif | ||
119 | |||
120 | /* | ||
121 | * Initialize the bad page table and bad page to point | ||
122 | * to a couple of allocated pages. | ||
123 | */ | ||
124 | empty_bad_page_table = (unsigned long)alloc_bootmem_pages(PAGE_SIZE); | ||
125 | empty_bad_page = (unsigned long)alloc_bootmem_pages(PAGE_SIZE); | ||
126 | empty_zero_page = (unsigned long)alloc_bootmem_pages(PAGE_SIZE); | ||
127 | memset((void *)empty_zero_page, 0, PAGE_SIZE); | ||
128 | |||
129 | /* | ||
130 | * Set up SFC/DFC registers (user data space). | ||
131 | */ | ||
132 | set_fs (USER_DS); | ||
133 | |||
134 | #ifdef DEBUG | ||
135 | printk (KERN_DEBUG "before free_area_init\n"); | ||
136 | |||
137 | printk (KERN_DEBUG "free_area_init -> start_mem is %#lx\nvirtual_end is %#lx\n", | ||
138 | start_mem, end_mem); | ||
139 | #endif | ||
140 | |||
141 | { | ||
142 | unsigned long zones_size[MAX_NR_ZONES] = {0, 0, 0}; | ||
143 | |||
144 | zones_size[ZONE_DMA] = 0 >> PAGE_SHIFT; | ||
145 | zones_size[ZONE_NORMAL] = (end_mem - PAGE_OFFSET) >> PAGE_SHIFT; | ||
146 | #ifdef CONFIG_HIGHMEM | ||
147 | zones_size[ZONE_HIGHMEM] = 0; | ||
148 | #endif | ||
149 | free_area_init(zones_size); | ||
150 | } | ||
151 | } | ||
152 | |||
153 | void mem_init(void) | ||
154 | { | ||
155 | int codek = 0, datak = 0, initk = 0; | ||
156 | unsigned long tmp; | ||
157 | extern char _etext, _stext, _sdata, _ebss, __init_begin, __init_end; | ||
158 | extern unsigned int _ramend, _rambase; | ||
159 | unsigned long len = _ramend - _rambase; | ||
160 | unsigned long start_mem = memory_start; /* DAVIDM - these must start at end of kernel */ | ||
161 | unsigned long end_mem = memory_end; /* DAVIDM - this must not include kernel stack at top */ | ||
162 | |||
163 | #ifdef DEBUG | ||
164 | printk(KERN_DEBUG "Mem_init: start=%lx, end=%lx\n", start_mem, end_mem); | ||
165 | #endif | ||
166 | |||
167 | end_mem &= PAGE_MASK; | ||
168 | high_memory = (void *) end_mem; | ||
169 | |||
170 | start_mem = PAGE_ALIGN(start_mem); | ||
171 | max_mapnr = num_physpages = (((unsigned long) high_memory) - PAGE_OFFSET) >> PAGE_SHIFT; | ||
172 | |||
173 | /* this will put all memory onto the freelists */ | ||
174 | totalram_pages = free_all_bootmem(); | ||
175 | |||
176 | codek = (&_etext - &_stext) >> 10; | ||
177 | datak = (&_ebss - &_sdata) >> 10; | ||
178 | initk = (&__init_begin - &__init_end) >> 10; | ||
179 | |||
180 | tmp = nr_free_pages() << PAGE_SHIFT; | ||
181 | printk(KERN_INFO "Memory available: %luk/%luk RAM, %luk/%luk ROM (%dk kernel code, %dk data)\n", | ||
182 | tmp >> 10, | ||
183 | len >> 10, | ||
184 | (rom_length > 0) ? ((rom_length >> 10) - codek) : 0, | ||
185 | rom_length >> 10, | ||
186 | codek, | ||
187 | datak | ||
188 | ); | ||
189 | } | ||
190 | |||
191 | |||
192 | #ifdef CONFIG_BLK_DEV_INITRD | ||
193 | void free_initrd_mem(unsigned long start, unsigned long end) | ||
194 | { | ||
195 | int pages = 0; | ||
196 | for (; start < end; start += PAGE_SIZE) { | ||
197 | ClearPageReserved(virt_to_page(start)); | ||
198 | set_page_count(virt_to_page(start), 1); | ||
199 | free_page(start); | ||
200 | totalram_pages++; | ||
201 | pages++; | ||
202 | } | ||
203 | printk (KERN_NOTICE "Freeing initrd memory: %dk freed\n", pages); | ||
204 | } | ||
205 | #endif | ||
206 | |||
207 | void | ||
208 | free_initmem() | ||
209 | { | ||
210 | #ifdef CONFIG_RAMKERNEL | ||
211 | unsigned long addr; | ||
212 | extern char __init_begin, __init_end; | ||
213 | /* | ||
214 | * The following code should be cool even if these sections | ||
215 | * are not page aligned. | ||
216 | */ | ||
217 | addr = PAGE_ALIGN((unsigned long)(&__init_begin)); | ||
218 | /* next to check that the page we free is not a partial page */ | ||
219 | for (; addr + PAGE_SIZE < (unsigned long)(&__init_end); addr +=PAGE_SIZE) { | ||
220 | ClearPageReserved(virt_to_page(addr)); | ||
221 | set_page_count(virt_to_page(addr), 1); | ||
222 | free_page(addr); | ||
223 | totalram_pages++; | ||
224 | } | ||
225 | printk(KERN_NOTICE "Freeing unused kernel memory: %ldk freed (0x%x - 0x%x)\n", | ||
226 | (addr - PAGE_ALIGN((long) &__init_begin)) >> 10, | ||
227 | (int)(PAGE_ALIGN((unsigned long)(&__init_begin))), | ||
228 | (int)(addr - PAGE_SIZE)); | ||
229 | #endif | ||
230 | } | ||
231 | |||
diff --git a/arch/m68knommu/mm/kmap.c b/arch/m68knommu/mm/kmap.c new file mode 100644 index 000000000000..04213e1c1e57 --- /dev/null +++ b/arch/m68knommu/mm/kmap.c | |||
@@ -0,0 +1,56 @@ | |||
1 | /* | ||
2 | * linux/arch/m68knommu/mm/kmap.c | ||
3 | * | ||
4 | * Copyright (C) 2000 Lineo, <davidm@snapgear.com> | ||
5 | * Copyright (C) 2000-2002 David McCullough <davidm@snapgear.com> | ||
6 | */ | ||
7 | |||
8 | #include <linux/config.h> | ||
9 | #include <linux/mm.h> | ||
10 | #include <linux/kernel.h> | ||
11 | #include <linux/string.h> | ||
12 | #include <linux/types.h> | ||
13 | #include <linux/slab.h> | ||
14 | #include <linux/vmalloc.h> | ||
15 | |||
16 | #include <asm/setup.h> | ||
17 | #include <asm/segment.h> | ||
18 | #include <asm/page.h> | ||
19 | #include <asm/pgalloc.h> | ||
20 | #include <asm/io.h> | ||
21 | #include <asm/system.h> | ||
22 | |||
23 | #undef DEBUG | ||
24 | |||
25 | /* | ||
26 | * Map some physical address range into the kernel address space. | ||
27 | */ | ||
28 | void *__ioremap(unsigned long physaddr, unsigned long size, int cacheflag) | ||
29 | { | ||
30 | return (void *)physaddr; | ||
31 | } | ||
32 | |||
33 | /* | ||
34 | * Unmap a ioremap()ed region again. | ||
35 | */ | ||
36 | void iounmap(void *addr) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | /* | ||
41 | * __iounmap unmaps nearly everything, so be careful | ||
42 | * it doesn't free currently pointer/page tables anymore but it | ||
43 | * wans't used anyway and might be added later. | ||
44 | */ | ||
45 | void __iounmap(void *addr, unsigned long size) | ||
46 | { | ||
47 | } | ||
48 | |||
49 | /* | ||
50 | * Set new cache mode for some kernel address space. | ||
51 | * The caller must push data for that range itself, if such data may already | ||
52 | * be in the cache. | ||
53 | */ | ||
54 | void kernel_set_cachemode(void *addr, unsigned long size, int cmode) | ||
55 | { | ||
56 | } | ||
diff --git a/arch/m68knommu/mm/memory.c b/arch/m68knommu/mm/memory.c new file mode 100644 index 000000000000..0eef72915e61 --- /dev/null +++ b/arch/m68knommu/mm/memory.c | |||
@@ -0,0 +1,132 @@ | |||
1 | /* | ||
2 | * linux/arch/m68knommu/mm/memory.c | ||
3 | * | ||
4 | * Copyright (C) 1998 Kenneth Albanowski <kjahds@kjahds.com>, | ||
5 | * Copyright (C) 1999-2002, Greg Ungerer (gerg@snapgear.com) | ||
6 | * | ||
7 | * Based on: | ||
8 | * | ||
9 | * linux/arch/m68k/mm/memory.c | ||
10 | * | ||
11 | * Copyright (C) 1995 Hamish Macdonald | ||
12 | */ | ||
13 | |||
14 | #include <linux/config.h> | ||
15 | #include <linux/mm.h> | ||
16 | #include <linux/kernel.h> | ||
17 | #include <linux/string.h> | ||
18 | #include <linux/types.h> | ||
19 | #include <linux/slab.h> | ||
20 | |||
21 | #include <asm/setup.h> | ||
22 | #include <asm/segment.h> | ||
23 | #include <asm/page.h> | ||
24 | #include <asm/pgtable.h> | ||
25 | #include <asm/system.h> | ||
26 | #include <asm/traps.h> | ||
27 | #include <asm/io.h> | ||
28 | |||
29 | /* | ||
30 | * cache_clear() semantics: Clear any cache entries for the area in question, | ||
31 | * without writing back dirty entries first. This is useful if the data will | ||
32 | * be overwritten anyway, e.g. by DMA to memory. The range is defined by a | ||
33 | * _physical_ address. | ||
34 | */ | ||
35 | |||
36 | void cache_clear (unsigned long paddr, int len) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | |||
41 | /* | ||
42 | * Define cache invalidate functions. The ColdFire 5407 is really | ||
43 | * the only processor that needs to do some work here. Anything | ||
44 | * that has separate data and instruction caches will be a problem. | ||
45 | */ | ||
46 | #ifdef CONFIG_M5407 | ||
47 | |||
48 | static __inline__ void cache_invalidate_lines(unsigned long paddr, int len) | ||
49 | { | ||
50 | unsigned long sset, eset; | ||
51 | |||
52 | sset = (paddr & 0x00000ff0); | ||
53 | eset = ((paddr + len) & 0x0000ff0) + 0x10; | ||
54 | |||
55 | __asm__ __volatile__ ( | ||
56 | "nop\n\t" | ||
57 | "clrl %%d0\n\t" | ||
58 | "1:\n\t" | ||
59 | "movel %0,%%a0\n\t" | ||
60 | "addl %%d0,%%a0\n\t" | ||
61 | "2:\n\t" | ||
62 | ".word 0xf4e8\n\t" | ||
63 | "addl #0x10,%%a0\n\t" | ||
64 | "cmpl %1,%%a0\n\t" | ||
65 | "blt 2b\n\t" | ||
66 | "addql #1,%%d0\n\t" | ||
67 | "cmpil #4,%%d0\n\t" | ||
68 | "bne 1b" | ||
69 | : : "a" (sset), "a" (eset) : "d0", "a0" ); | ||
70 | } | ||
71 | |||
72 | #else | ||
73 | #define cache_invalidate_lines(a,b) | ||
74 | #endif | ||
75 | |||
76 | |||
77 | /* | ||
78 | * cache_push() semantics: Write back any dirty cache data in the given area, | ||
79 | * and invalidate the range in the instruction cache. It needs not (but may) | ||
80 | * invalidate those entries also in the data cache. The range is defined by a | ||
81 | * _physical_ address. | ||
82 | */ | ||
83 | |||
84 | void cache_push (unsigned long paddr, int len) | ||
85 | { | ||
86 | cache_invalidate_lines(paddr, len); | ||
87 | } | ||
88 | |||
89 | |||
90 | /* | ||
91 | * cache_push_v() semantics: Write back any dirty cache data in the given | ||
92 | * area, and invalidate those entries at least in the instruction cache. This | ||
93 | * is intended to be used after data has been written that can be executed as | ||
94 | * code later. The range is defined by a _user_mode_ _virtual_ address (or, | ||
95 | * more exactly, the space is defined by the %sfc/%dfc register.) | ||
96 | */ | ||
97 | |||
98 | void cache_push_v (unsigned long vaddr, int len) | ||
99 | { | ||
100 | cache_invalidate_lines(vaddr, len); | ||
101 | } | ||
102 | |||
103 | /* Map some physical address range into the kernel address space. The | ||
104 | * code is copied and adapted from map_chunk(). | ||
105 | */ | ||
106 | |||
107 | unsigned long kernel_map(unsigned long paddr, unsigned long size, | ||
108 | int nocacheflag, unsigned long *memavailp ) | ||
109 | { | ||
110 | return paddr; | ||
111 | } | ||
112 | |||
113 | |||
114 | int is_in_rom(unsigned long addr) | ||
115 | { | ||
116 | extern unsigned long _ramstart, _ramend; | ||
117 | |||
118 | /* | ||
119 | * What we are really trying to do is determine if addr is | ||
120 | * in an allocated kernel memory region. If not then assume | ||
121 | * we cannot free it or otherwise de-allocate it. Ideally | ||
122 | * we could restrict this to really being in a ROM or flash, | ||
123 | * but that would need to be done on a board by board basis, | ||
124 | * not globally. | ||
125 | */ | ||
126 | if ((addr < _ramstart) || (addr >= _ramend)) | ||
127 | return(1); | ||
128 | |||
129 | /* Default case, not in ROM */ | ||
130 | return(0); | ||
131 | } | ||
132 | |||
diff --git a/arch/m68knommu/platform/5206/Makefile b/arch/m68knommu/platform/5206/Makefile new file mode 100644 index 000000000000..701b7abe019d --- /dev/null +++ b/arch/m68knommu/platform/5206/Makefile | |||
@@ -0,0 +1,20 @@ | |||
1 | # | ||
2 | # Makefile for the m68knommu linux kernel. | ||
3 | # | ||
4 | |||
5 | # | ||
6 | # If you want to play with the HW breakpoints then you will | ||
7 | # need to add define this, which will give you a stack backtrace | ||
8 | # on the console port whenever a DBG interrupt occurs. You have to | ||
9 | # set up you HW breakpoints to trigger a DBG interrupt: | ||
10 | # | ||
11 | # EXTRA_CFLAGS += -DTRAP_DBG_INTERRUPT | ||
12 | # EXTRA_AFLAGS += -DTRAP_DBG_INTERRUPT | ||
13 | # | ||
14 | |||
15 | ifdef CONFIG_FULLDEBUG | ||
16 | AFLAGS += -DDEBUGGER_COMPATIBLE_CACHE=1 | ||
17 | endif | ||
18 | |||
19 | obj-y := config.o | ||
20 | |||
diff --git a/arch/m68knommu/platform/5206/config.c b/arch/m68knommu/platform/5206/config.c new file mode 100644 index 000000000000..987c91a9a206 --- /dev/null +++ b/arch/m68knommu/platform/5206/config.c | |||
@@ -0,0 +1,117 @@ | |||
1 | /***************************************************************************/ | ||
2 | |||
3 | /* | ||
4 | * linux/arch/m68knommu/platform/5206/config.c | ||
5 | * | ||
6 | * Copyright (C) 1999-2002, Greg Ungerer (gerg@snapgear.com) | ||
7 | * Copyright (C) 2000-2001, Lineo Inc. (www.lineo.com) | ||
8 | */ | ||
9 | |||
10 | /***************************************************************************/ | ||
11 | |||
12 | #include <linux/config.h> | ||
13 | #include <linux/kernel.h> | ||
14 | #include <linux/sched.h> | ||
15 | #include <linux/param.h> | ||
16 | #include <linux/init.h> | ||
17 | #include <linux/interrupt.h> | ||
18 | #include <asm/irq.h> | ||
19 | #include <asm/dma.h> | ||
20 | #include <asm/traps.h> | ||
21 | #include <asm/machdep.h> | ||
22 | #include <asm/coldfire.h> | ||
23 | #include <asm/mcftimer.h> | ||
24 | #include <asm/mcfsim.h> | ||
25 | #include <asm/mcfdma.h> | ||
26 | |||
27 | /***************************************************************************/ | ||
28 | |||
29 | void coldfire_tick(void); | ||
30 | void coldfire_timer_init(irqreturn_t (*handler)(int, void *, struct pt_regs *)); | ||
31 | unsigned long coldfire_timer_offset(void); | ||
32 | void coldfire_trap_init(void); | ||
33 | void coldfire_reset(void); | ||
34 | |||
35 | /***************************************************************************/ | ||
36 | |||
37 | /* | ||
38 | * DMA channel base address table. | ||
39 | */ | ||
40 | unsigned int dma_base_addr[MAX_M68K_DMA_CHANNELS] = { | ||
41 | MCF_MBAR + MCFDMA_BASE0, | ||
42 | MCF_MBAR + MCFDMA_BASE1, | ||
43 | }; | ||
44 | |||
45 | unsigned int dma_device_address[MAX_M68K_DMA_CHANNELS]; | ||
46 | |||
47 | /***************************************************************************/ | ||
48 | |||
49 | void mcf_autovector(unsigned int vec) | ||
50 | { | ||
51 | volatile unsigned char *mbar; | ||
52 | unsigned char icr; | ||
53 | |||
54 | if ((vec >= 25) && (vec <= 31)) { | ||
55 | vec -= 25; | ||
56 | mbar = (volatile unsigned char *) MCF_MBAR; | ||
57 | icr = MCFSIM_ICR_AUTOVEC | (vec << 3); | ||
58 | *(mbar + MCFSIM_ICR1 + vec) = icr; | ||
59 | vec = 0x1 << (vec + 1); | ||
60 | mcf_setimr(mcf_getimr() & ~vec); | ||
61 | } | ||
62 | } | ||
63 | |||
64 | /***************************************************************************/ | ||
65 | |||
66 | void mcf_settimericr(unsigned int timer, unsigned int level) | ||
67 | { | ||
68 | volatile unsigned char *icrp; | ||
69 | unsigned int icr, imr; | ||
70 | |||
71 | if (timer <= 2) { | ||
72 | switch (timer) { | ||
73 | case 2: icr = MCFSIM_TIMER2ICR; imr = MCFSIM_IMR_TIMER2; break; | ||
74 | default: icr = MCFSIM_TIMER1ICR; imr = MCFSIM_IMR_TIMER1; break; | ||
75 | } | ||
76 | |||
77 | icrp = (volatile unsigned char *) (MCF_MBAR + icr); | ||
78 | *icrp = MCFSIM_ICR_AUTOVEC | (level << 2) | MCFSIM_ICR_PRI3; | ||
79 | mcf_setimr(mcf_getimr() & ~imr); | ||
80 | } | ||
81 | } | ||
82 | |||
83 | /***************************************************************************/ | ||
84 | |||
85 | int mcf_timerirqpending(int timer) | ||
86 | { | ||
87 | unsigned int imr = 0; | ||
88 | |||
89 | switch (timer) { | ||
90 | case 1: imr = MCFSIM_IMR_TIMER1; break; | ||
91 | case 2: imr = MCFSIM_IMR_TIMER2; break; | ||
92 | default: break; | ||
93 | } | ||
94 | return (mcf_getipr() & imr); | ||
95 | } | ||
96 | |||
97 | /***************************************************************************/ | ||
98 | |||
99 | void config_BSP(char *commandp, int size) | ||
100 | { | ||
101 | mcf_setimr(MCFSIM_IMR_MASKALL); | ||
102 | |||
103 | #if defined(CONFIG_BOOTPARAM) | ||
104 | strncpy(commandp, CONFIG_BOOTPARAM_STRING, size); | ||
105 | commandp[size-1] = 0; | ||
106 | #else | ||
107 | memset(commandp, 0, size); | ||
108 | #endif | ||
109 | |||
110 | mach_sched_init = coldfire_timer_init; | ||
111 | mach_tick = coldfire_tick; | ||
112 | mach_gettimeoffset = coldfire_timer_offset; | ||
113 | mach_trap_init = coldfire_trap_init; | ||
114 | mach_reset = coldfire_reset; | ||
115 | } | ||
116 | |||
117 | /***************************************************************************/ | ||
diff --git a/arch/m68knommu/platform/5206e/Makefile b/arch/m68knommu/platform/5206e/Makefile new file mode 100644 index 000000000000..701b7abe019d --- /dev/null +++ b/arch/m68knommu/platform/5206e/Makefile | |||
@@ -0,0 +1,20 @@ | |||
1 | # | ||
2 | # Makefile for the m68knommu linux kernel. | ||
3 | # | ||
4 | |||
5 | # | ||
6 | # If you want to play with the HW breakpoints then you will | ||
7 | # need to add define this, which will give you a stack backtrace | ||
8 | # on the console port whenever a DBG interrupt occurs. You have to | ||
9 | # set up you HW breakpoints to trigger a DBG interrupt: | ||
10 | # | ||
11 | # EXTRA_CFLAGS += -DTRAP_DBG_INTERRUPT | ||
12 | # EXTRA_AFLAGS += -DTRAP_DBG_INTERRUPT | ||
13 | # | ||
14 | |||
15 | ifdef CONFIG_FULLDEBUG | ||
16 | AFLAGS += -DDEBUGGER_COMPATIBLE_CACHE=1 | ||
17 | endif | ||
18 | |||
19 | obj-y := config.o | ||
20 | |||
diff --git a/arch/m68knommu/platform/5206e/config.c b/arch/m68knommu/platform/5206e/config.c new file mode 100644 index 000000000000..f35b8606c1ee --- /dev/null +++ b/arch/m68knommu/platform/5206e/config.c | |||
@@ -0,0 +1,120 @@ | |||
1 | /***************************************************************************/ | ||
2 | |||
3 | /* | ||
4 | * linux/arch/m68knommu/platform/5206e/config.c | ||
5 | * | ||
6 | * Copyright (C) 1999-2002, Greg Ungerer (gerg@snapgear.com) | ||
7 | */ | ||
8 | |||
9 | /***************************************************************************/ | ||
10 | |||
11 | #include <linux/config.h> | ||
12 | #include <linux/kernel.h> | ||
13 | #include <linux/sched.h> | ||
14 | #include <linux/param.h> | ||
15 | #include <linux/interrupt.h> | ||
16 | #include <asm/irq.h> | ||
17 | #include <asm/dma.h> | ||
18 | #include <asm/traps.h> | ||
19 | #include <asm/machdep.h> | ||
20 | #include <asm/coldfire.h> | ||
21 | #include <asm/mcftimer.h> | ||
22 | #include <asm/mcfsim.h> | ||
23 | #include <asm/mcfdma.h> | ||
24 | #include <asm/irq.h> | ||
25 | |||
26 | /***************************************************************************/ | ||
27 | |||
28 | void coldfire_tick(void); | ||
29 | void coldfire_timer_init(irqreturn_t (*handler)(int, void *, struct pt_regs *)); | ||
30 | unsigned long coldfire_timer_offset(void); | ||
31 | void coldfire_trap_init(void); | ||
32 | void coldfire_reset(void); | ||
33 | |||
34 | /***************************************************************************/ | ||
35 | |||
36 | /* | ||
37 | * DMA channel base address table. | ||
38 | */ | ||
39 | unsigned int dma_base_addr[MAX_M68K_DMA_CHANNELS] = { | ||
40 | MCF_MBAR + MCFDMA_BASE0, | ||
41 | MCF_MBAR + MCFDMA_BASE1, | ||
42 | }; | ||
43 | |||
44 | unsigned int dma_device_address[MAX_M68K_DMA_CHANNELS]; | ||
45 | |||
46 | /***************************************************************************/ | ||
47 | |||
48 | void mcf_autovector(unsigned int vec) | ||
49 | { | ||
50 | volatile unsigned char *mbar; | ||
51 | unsigned char icr; | ||
52 | |||
53 | if ((vec >= 25) && (vec <= 31)) { | ||
54 | vec -= 25; | ||
55 | mbar = (volatile unsigned char *) MCF_MBAR; | ||
56 | icr = MCFSIM_ICR_AUTOVEC | (vec << 3); | ||
57 | *(mbar + MCFSIM_ICR1 + vec) = icr; | ||
58 | vec = 0x1 << (vec + 1); | ||
59 | mcf_setimr(mcf_getimr() & ~vec); | ||
60 | } | ||
61 | } | ||
62 | |||
63 | /***************************************************************************/ | ||
64 | |||
65 | void mcf_settimericr(unsigned int timer, unsigned int level) | ||
66 | { | ||
67 | volatile unsigned char *icrp; | ||
68 | unsigned int icr, imr; | ||
69 | |||
70 | if (timer <= 2) { | ||
71 | switch (timer) { | ||
72 | case 2: icr = MCFSIM_TIMER2ICR; imr = MCFSIM_IMR_TIMER2; break; | ||
73 | default: icr = MCFSIM_TIMER1ICR; imr = MCFSIM_IMR_TIMER1; break; | ||
74 | } | ||
75 | |||
76 | icrp = (volatile unsigned char *) (MCF_MBAR + icr); | ||
77 | *icrp = MCFSIM_ICR_AUTOVEC | (level << 2) | MCFSIM_ICR_PRI3; | ||
78 | mcf_setimr(mcf_getimr() & ~imr); | ||
79 | } | ||
80 | } | ||
81 | |||
82 | /***************************************************************************/ | ||
83 | |||
84 | int mcf_timerirqpending(int timer) | ||
85 | { | ||
86 | unsigned int imr = 0; | ||
87 | |||
88 | switch (timer) { | ||
89 | case 1: imr = MCFSIM_IMR_TIMER1; break; | ||
90 | case 2: imr = MCFSIM_IMR_TIMER2; break; | ||
91 | default: break; | ||
92 | } | ||
93 | return (mcf_getipr() & imr); | ||
94 | } | ||
95 | |||
96 | /***************************************************************************/ | ||
97 | |||
98 | void config_BSP(char *commandp, int size) | ||
99 | { | ||
100 | mcf_setimr(MCFSIM_IMR_MASKALL); | ||
101 | |||
102 | #if defined(CONFIG_BOOTPARAM) | ||
103 | strncpy(commandp, CONFIG_BOOTPARAM_STRING, size); | ||
104 | commandp[size-1] = 0; | ||
105 | #elif defined(CONFIG_NETtel) | ||
106 | /* Copy command line from FLASH to local buffer... */ | ||
107 | memcpy(commandp, (char *) 0xf0004000, size); | ||
108 | commandp[size-1] = 0; | ||
109 | #else | ||
110 | memset(commandp, 0, size); | ||
111 | #endif /* CONFIG_NETtel */ | ||
112 | |||
113 | mach_sched_init = coldfire_timer_init; | ||
114 | mach_tick = coldfire_tick; | ||
115 | mach_gettimeoffset = coldfire_timer_offset; | ||
116 | mach_trap_init = coldfire_trap_init; | ||
117 | mach_reset = coldfire_reset; | ||
118 | } | ||
119 | |||
120 | /***************************************************************************/ | ||
diff --git a/arch/m68knommu/platform/5249/Makefile b/arch/m68knommu/platform/5249/Makefile new file mode 100644 index 000000000000..701b7abe019d --- /dev/null +++ b/arch/m68knommu/platform/5249/Makefile | |||
@@ -0,0 +1,20 @@ | |||
1 | # | ||
2 | # Makefile for the m68knommu linux kernel. | ||
3 | # | ||
4 | |||
5 | # | ||
6 | # If you want to play with the HW breakpoints then you will | ||
7 | # need to add define this, which will give you a stack backtrace | ||
8 | # on the console port whenever a DBG interrupt occurs. You have to | ||
9 | # set up you HW breakpoints to trigger a DBG interrupt: | ||
10 | # | ||
11 | # EXTRA_CFLAGS += -DTRAP_DBG_INTERRUPT | ||
12 | # EXTRA_AFLAGS += -DTRAP_DBG_INTERRUPT | ||
13 | # | ||
14 | |||
15 | ifdef CONFIG_FULLDEBUG | ||
16 | AFLAGS += -DDEBUGGER_COMPATIBLE_CACHE=1 | ||
17 | endif | ||
18 | |||
19 | obj-y := config.o | ||
20 | |||
diff --git a/arch/m68knommu/platform/5249/config.c b/arch/m68knommu/platform/5249/config.c new file mode 100644 index 000000000000..289c1821b841 --- /dev/null +++ b/arch/m68knommu/platform/5249/config.c | |||
@@ -0,0 +1,114 @@ | |||
1 | /***************************************************************************/ | ||
2 | |||
3 | /* | ||
4 | * linux/arch/m68knommu/platform/5249/config.c | ||
5 | * | ||
6 | * Copyright (C) 2002, Greg Ungerer (gerg@snapgear.com) | ||
7 | */ | ||
8 | |||
9 | /***************************************************************************/ | ||
10 | |||
11 | #include <linux/config.h> | ||
12 | #include <linux/kernel.h> | ||
13 | #include <linux/sched.h> | ||
14 | #include <linux/param.h> | ||
15 | #include <linux/init.h> | ||
16 | #include <asm/irq.h> | ||
17 | #include <asm/dma.h> | ||
18 | #include <asm/traps.h> | ||
19 | #include <asm/machdep.h> | ||
20 | #include <asm/coldfire.h> | ||
21 | #include <asm/mcftimer.h> | ||
22 | #include <asm/mcfsim.h> | ||
23 | #include <asm/mcfdma.h> | ||
24 | |||
25 | /***************************************************************************/ | ||
26 | |||
27 | void coldfire_tick(void); | ||
28 | void coldfire_timer_init(irqreturn_t (*handler)(int, void *, struct pt_regs *)); | ||
29 | unsigned long coldfire_timer_offset(void); | ||
30 | void coldfire_trap_init(void); | ||
31 | void coldfire_reset(void); | ||
32 | |||
33 | /***************************************************************************/ | ||
34 | |||
35 | /* | ||
36 | * DMA channel base address table. | ||
37 | */ | ||
38 | unsigned int dma_base_addr[MAX_M68K_DMA_CHANNELS] = { | ||
39 | MCF_MBAR + MCFDMA_BASE0, | ||
40 | MCF_MBAR + MCFDMA_BASE1, | ||
41 | MCF_MBAR + MCFDMA_BASE2, | ||
42 | MCF_MBAR + MCFDMA_BASE3, | ||
43 | }; | ||
44 | |||
45 | unsigned int dma_device_address[MAX_M68K_DMA_CHANNELS]; | ||
46 | |||
47 | /***************************************************************************/ | ||
48 | |||
49 | void mcf_autovector(unsigned int vec) | ||
50 | { | ||
51 | volatile unsigned char *mbar; | ||
52 | |||
53 | if ((vec >= 25) && (vec <= 31)) { | ||
54 | mbar = (volatile unsigned char *) MCF_MBAR; | ||
55 | vec = 0x1 << (vec - 24); | ||
56 | *(mbar + MCFSIM_AVR) |= vec; | ||
57 | mcf_setimr(mcf_getimr() & ~vec); | ||
58 | } | ||
59 | } | ||
60 | |||
61 | /***************************************************************************/ | ||
62 | |||
63 | void mcf_settimericr(unsigned int timer, unsigned int level) | ||
64 | { | ||
65 | volatile unsigned char *icrp; | ||
66 | unsigned int icr, imr; | ||
67 | |||
68 | if (timer <= 2) { | ||
69 | switch (timer) { | ||
70 | case 2: icr = MCFSIM_TIMER2ICR; imr = MCFSIM_IMR_TIMER2; break; | ||
71 | default: icr = MCFSIM_TIMER1ICR; imr = MCFSIM_IMR_TIMER1; break; | ||
72 | } | ||
73 | |||
74 | icrp = (volatile unsigned char *) (MCF_MBAR + icr); | ||
75 | *icrp = MCFSIM_ICR_AUTOVEC | (level << 2) | MCFSIM_ICR_PRI3; | ||
76 | mcf_setimr(mcf_getimr() & ~imr); | ||
77 | } | ||
78 | } | ||
79 | |||
80 | /***************************************************************************/ | ||
81 | |||
82 | int mcf_timerirqpending(int timer) | ||
83 | { | ||
84 | unsigned int imr = 0; | ||
85 | |||
86 | switch (timer) { | ||
87 | case 1: imr = MCFSIM_IMR_TIMER1; break; | ||
88 | case 2: imr = MCFSIM_IMR_TIMER2; break; | ||
89 | default: break; | ||
90 | } | ||
91 | return (mcf_getipr() & imr); | ||
92 | } | ||
93 | |||
94 | /***************************************************************************/ | ||
95 | |||
96 | void config_BSP(char *commandp, int size) | ||
97 | { | ||
98 | mcf_setimr(MCFSIM_IMR_MASKALL); | ||
99 | |||
100 | #if defined(CONFIG_BOOTPARAM) | ||
101 | strncpy(commandp, CONFIG_BOOTPARAM_STRING, size); | ||
102 | commandp[size-1] = 0; | ||
103 | #else | ||
104 | memset(commandp, 0, size); | ||
105 | #endif | ||
106 | |||
107 | mach_sched_init = coldfire_timer_init; | ||
108 | mach_tick = coldfire_tick; | ||
109 | mach_gettimeoffset = coldfire_timer_offset; | ||
110 | mach_trap_init = coldfire_trap_init; | ||
111 | mach_reset = coldfire_reset; | ||
112 | } | ||
113 | |||
114 | /***************************************************************************/ | ||
diff --git a/arch/m68knommu/platform/5272/Makefile b/arch/m68knommu/platform/5272/Makefile new file mode 100644 index 000000000000..0871a29dd589 --- /dev/null +++ b/arch/m68knommu/platform/5272/Makefile | |||
@@ -0,0 +1,20 @@ | |||
1 | # | ||
2 | # Makefile for the linux kernel. | ||
3 | # | ||
4 | |||
5 | # | ||
6 | # If you want to play with the HW breakpoints then you will | ||
7 | # need to add define this, which will give you a stack backtrace | ||
8 | # on the console port whenever a DBG interrupt occurs. You have to | ||
9 | # set up you HW breakpoints to trigger a DBG interrupt: | ||
10 | # | ||
11 | # EXTRA_CFLAGS += -DTRAP_DBG_INTERRUPT | ||
12 | # EXTRA_AFLAGS += -DTRAP_DBG_INTERRUPT | ||
13 | # | ||
14 | |||
15 | ifdef CONFIG_FULLDEBUG | ||
16 | AFLAGS += -DDEBUGGER_COMPATIBLE_CACHE=1 | ||
17 | endif | ||
18 | |||
19 | obj-y := config.o | ||
20 | |||
diff --git a/arch/m68knommu/platform/5272/config.c b/arch/m68knommu/platform/5272/config.c new file mode 100644 index 000000000000..5cb28690f89a --- /dev/null +++ b/arch/m68knommu/platform/5272/config.c | |||
@@ -0,0 +1,145 @@ | |||
1 | /***************************************************************************/ | ||
2 | |||
3 | /* | ||
4 | * linux/arch/m68knommu/platform/5272/config.c | ||
5 | * | ||
6 | * Copyright (C) 1999-2002, Greg Ungerer (gerg@snapgear.com) | ||
7 | * Copyright (C) 2001-2002, SnapGear Inc. (www.snapgear.com) | ||
8 | */ | ||
9 | |||
10 | /***************************************************************************/ | ||
11 | |||
12 | #include <linux/config.h> | ||
13 | #include <linux/kernel.h> | ||
14 | #include <linux/sched.h> | ||
15 | #include <linux/param.h> | ||
16 | #include <linux/init.h> | ||
17 | #include <linux/interrupt.h> | ||
18 | #include <asm/irq.h> | ||
19 | #include <asm/dma.h> | ||
20 | #include <asm/traps.h> | ||
21 | #include <asm/machdep.h> | ||
22 | #include <asm/coldfire.h> | ||
23 | #include <asm/mcftimer.h> | ||
24 | #include <asm/mcfsim.h> | ||
25 | #include <asm/mcfdma.h> | ||
26 | |||
27 | /***************************************************************************/ | ||
28 | |||
29 | void coldfire_tick(void); | ||
30 | void coldfire_timer_init(irqreturn_t (*handler)(int, void *, struct pt_regs *)); | ||
31 | unsigned long coldfire_timer_offset(void); | ||
32 | void coldfire_trap_init(void); | ||
33 | void coldfire_reset(void); | ||
34 | |||
35 | extern unsigned int mcf_timervector; | ||
36 | extern unsigned int mcf_profilevector; | ||
37 | extern unsigned int mcf_timerlevel; | ||
38 | |||
39 | /***************************************************************************/ | ||
40 | |||
41 | /* | ||
42 | * Some platforms need software versions of the GPIO data registers. | ||
43 | */ | ||
44 | unsigned short ppdata; | ||
45 | unsigned char ledbank = 0xff; | ||
46 | |||
47 | /***************************************************************************/ | ||
48 | |||
49 | /* | ||
50 | * DMA channel base address table. | ||
51 | */ | ||
52 | unsigned int dma_base_addr[MAX_M68K_DMA_CHANNELS] = { | ||
53 | MCF_MBAR + MCFDMA_BASE0, | ||
54 | }; | ||
55 | |||
56 | unsigned int dma_device_address[MAX_M68K_DMA_CHANNELS]; | ||
57 | |||
58 | /***************************************************************************/ | ||
59 | |||
60 | void mcf_disableall(void) | ||
61 | { | ||
62 | volatile unsigned long *icrp; | ||
63 | |||
64 | icrp = (volatile unsigned long *) (MCF_MBAR + MCFSIM_ICR1); | ||
65 | icrp[0] = 0x88888888; | ||
66 | icrp[1] = 0x88888888; | ||
67 | icrp[2] = 0x88888888; | ||
68 | icrp[3] = 0x88888888; | ||
69 | } | ||
70 | |||
71 | /***************************************************************************/ | ||
72 | |||
73 | void mcf_autovector(unsigned int vec) | ||
74 | { | ||
75 | /* Everything is auto-vectored on the 5272 */ | ||
76 | } | ||
77 | |||
78 | /***************************************************************************/ | ||
79 | |||
80 | void mcf_settimericr(int timer, int level) | ||
81 | { | ||
82 | volatile unsigned long *icrp; | ||
83 | |||
84 | if ((timer >= 1 ) && (timer <= 4)) { | ||
85 | icrp = (volatile unsigned long *) (MCF_MBAR + MCFSIM_ICR1); | ||
86 | *icrp = (0x8 | level) << ((4 - timer) * 4); | ||
87 | } | ||
88 | } | ||
89 | |||
90 | /***************************************************************************/ | ||
91 | |||
92 | int mcf_timerirqpending(int timer) | ||
93 | { | ||
94 | volatile unsigned long *icrp; | ||
95 | |||
96 | if ((timer >= 1 ) && (timer <= 4)) { | ||
97 | icrp = (volatile unsigned long *) (MCF_MBAR + MCFSIM_ICR1); | ||
98 | return (*icrp & (0x8 << ((4 - timer) * 4))); | ||
99 | } | ||
100 | return 0; | ||
101 | } | ||
102 | |||
103 | /***************************************************************************/ | ||
104 | |||
105 | void config_BSP(char *commandp, int size) | ||
106 | { | ||
107 | #if 0 | ||
108 | volatile unsigned long *pivrp; | ||
109 | |||
110 | /* Set base of device vectors to be 64 */ | ||
111 | pivrp = (volatile unsigned long *) (MCF_MBAR + MCFSIM_PIVR); | ||
112 | *pivrp = 0x40; | ||
113 | #endif | ||
114 | |||
115 | mcf_disableall(); | ||
116 | |||
117 | #if defined(CONFIG_BOOTPARAM) | ||
118 | strncpy(commandp, CONFIG_BOOTPARAM_STRING, size); | ||
119 | commandp[size-1] = 0; | ||
120 | #elif defined(CONFIG_NETtel) || defined(CONFIG_SCALES) | ||
121 | /* Copy command line from FLASH to local buffer... */ | ||
122 | memcpy(commandp, (char *) 0xf0004000, size); | ||
123 | commandp[size-1] = 0; | ||
124 | #elif defined(CONFIG_MTD_KeyTechnology) | ||
125 | /* Copy command line from FLASH to local buffer... */ | ||
126 | memcpy(commandp, (char *) 0xffe06000, size); | ||
127 | commandp[size-1] = 0; | ||
128 | #elif defined(CONFIG_CANCam) | ||
129 | /* Copy command line from FLASH to local buffer... */ | ||
130 | memcpy(commandp, (char *) 0xf0010000, size); | ||
131 | commandp[size-1] = 0; | ||
132 | #else | ||
133 | memset(commandp, 0, size); | ||
134 | #endif | ||
135 | |||
136 | mcf_timervector = 69; | ||
137 | mcf_profilevector = 70; | ||
138 | mach_sched_init = coldfire_timer_init; | ||
139 | mach_tick = coldfire_tick; | ||
140 | mach_gettimeoffset = coldfire_timer_offset; | ||
141 | mach_trap_init = coldfire_trap_init; | ||
142 | mach_reset = coldfire_reset; | ||
143 | } | ||
144 | |||
145 | /***************************************************************************/ | ||
diff --git a/arch/m68knommu/platform/527x/Makefile b/arch/m68knommu/platform/527x/Makefile new file mode 100644 index 000000000000..0871a29dd589 --- /dev/null +++ b/arch/m68knommu/platform/527x/Makefile | |||
@@ -0,0 +1,20 @@ | |||
1 | # | ||
2 | # Makefile for the linux kernel. | ||
3 | # | ||
4 | |||
5 | # | ||
6 | # If you want to play with the HW breakpoints then you will | ||
7 | # need to add define this, which will give you a stack backtrace | ||
8 | # on the console port whenever a DBG interrupt occurs. You have to | ||
9 | # set up you HW breakpoints to trigger a DBG interrupt: | ||
10 | # | ||
11 | # EXTRA_CFLAGS += -DTRAP_DBG_INTERRUPT | ||
12 | # EXTRA_AFLAGS += -DTRAP_DBG_INTERRUPT | ||
13 | # | ||
14 | |||
15 | ifdef CONFIG_FULLDEBUG | ||
16 | AFLAGS += -DDEBUGGER_COMPATIBLE_CACHE=1 | ||
17 | endif | ||
18 | |||
19 | obj-y := config.o | ||
20 | |||
diff --git a/arch/m68knommu/platform/527x/config.c b/arch/m68knommu/platform/527x/config.c new file mode 100644 index 000000000000..804de33cd6b7 --- /dev/null +++ b/arch/m68knommu/platform/527x/config.c | |||
@@ -0,0 +1,82 @@ | |||
1 | /***************************************************************************/ | ||
2 | |||
3 | /* | ||
4 | * linux/arch/m68knommu/platform/527x/config.c | ||
5 | * | ||
6 | * Sub-architcture dependant initialization code for the Freescale | ||
7 | * 5270/5271 CPUs. | ||
8 | * | ||
9 | * Copyright (C) 1999-2004, Greg Ungerer (gerg@snapgear.com) | ||
10 | * Copyright (C) 2001-2004, SnapGear Inc. (www.snapgear.com) | ||
11 | */ | ||
12 | |||
13 | /***************************************************************************/ | ||
14 | |||
15 | #include <linux/config.h> | ||
16 | #include <linux/kernel.h> | ||
17 | #include <linux/sched.h> | ||
18 | #include <linux/param.h> | ||
19 | #include <linux/init.h> | ||
20 | #include <linux/interrupt.h> | ||
21 | #include <asm/dma.h> | ||
22 | #include <asm/traps.h> | ||
23 | #include <asm/machdep.h> | ||
24 | #include <asm/coldfire.h> | ||
25 | #include <asm/mcfsim.h> | ||
26 | #include <asm/mcfdma.h> | ||
27 | |||
28 | /***************************************************************************/ | ||
29 | |||
30 | void coldfire_pit_tick(void); | ||
31 | void coldfire_pit_init(irqreturn_t (*handler)(int, void *, struct pt_regs *)); | ||
32 | unsigned long coldfire_pit_offset(void); | ||
33 | void coldfire_trap_init(void); | ||
34 | void coldfire_reset(void); | ||
35 | |||
36 | /***************************************************************************/ | ||
37 | |||
38 | /* | ||
39 | * DMA channel base address table. | ||
40 | */ | ||
41 | unsigned int dma_base_addr[MAX_M68K_DMA_CHANNELS] = { | ||
42 | MCF_MBAR + MCFDMA_BASE0, | ||
43 | }; | ||
44 | |||
45 | unsigned int dma_device_address[MAX_M68K_DMA_CHANNELS]; | ||
46 | |||
47 | /***************************************************************************/ | ||
48 | |||
49 | void mcf_disableall(void) | ||
50 | { | ||
51 | *((volatile unsigned long *) (MCF_IPSBAR + MCFICM_INTC0 + MCFINTC_IMRH)) = 0xffffffff; | ||
52 | *((volatile unsigned long *) (MCF_IPSBAR + MCFICM_INTC0 + MCFINTC_IMRL)) = 0xffffffff; | ||
53 | } | ||
54 | |||
55 | /***************************************************************************/ | ||
56 | |||
57 | void mcf_autovector(unsigned int vec) | ||
58 | { | ||
59 | /* Everything is auto-vectored on the 5272 */ | ||
60 | } | ||
61 | |||
62 | /***************************************************************************/ | ||
63 | |||
64 | void config_BSP(char *commandp, int size) | ||
65 | { | ||
66 | mcf_disableall(); | ||
67 | |||
68 | #ifdef CONFIG_BOOTPARAM | ||
69 | strncpy(commandp, CONFIG_BOOTPARAM_STRING, size); | ||
70 | commandp[size-1] = 0; | ||
71 | #else | ||
72 | memset(commandp, 0, size); | ||
73 | #endif | ||
74 | |||
75 | mach_sched_init = coldfire_pit_init; | ||
76 | mach_tick = coldfire_pit_tick; | ||
77 | mach_gettimeoffset = coldfire_pit_offset; | ||
78 | mach_trap_init = coldfire_trap_init; | ||
79 | mach_reset = coldfire_reset; | ||
80 | } | ||
81 | |||
82 | /***************************************************************************/ | ||
diff --git a/arch/m68knommu/platform/528x/Makefile b/arch/m68knommu/platform/528x/Makefile new file mode 100644 index 000000000000..0871a29dd589 --- /dev/null +++ b/arch/m68knommu/platform/528x/Makefile | |||
@@ -0,0 +1,20 @@ | |||
1 | # | ||
2 | # Makefile for the linux kernel. | ||
3 | # | ||
4 | |||
5 | # | ||
6 | # If you want to play with the HW breakpoints then you will | ||
7 | # need to add define this, which will give you a stack backtrace | ||
8 | # on the console port whenever a DBG interrupt occurs. You have to | ||
9 | # set up you HW breakpoints to trigger a DBG interrupt: | ||
10 | # | ||
11 | # EXTRA_CFLAGS += -DTRAP_DBG_INTERRUPT | ||
12 | # EXTRA_AFLAGS += -DTRAP_DBG_INTERRUPT | ||
13 | # | ||
14 | |||
15 | ifdef CONFIG_FULLDEBUG | ||
16 | AFLAGS += -DDEBUGGER_COMPATIBLE_CACHE=1 | ||
17 | endif | ||
18 | |||
19 | obj-y := config.o | ||
20 | |||
diff --git a/arch/m68knommu/platform/528x/config.c b/arch/m68knommu/platform/528x/config.c new file mode 100644 index 000000000000..a5d2aa38a27a --- /dev/null +++ b/arch/m68knommu/platform/528x/config.c | |||
@@ -0,0 +1,82 @@ | |||
1 | /***************************************************************************/ | ||
2 | |||
3 | /* | ||
4 | * linux/arch/m68knommu/platform/528x/config.c | ||
5 | * | ||
6 | * Sub-architcture dependant initialization code for the Motorola | ||
7 | * 5280 and 5282 CPUs. | ||
8 | * | ||
9 | * Copyright (C) 1999-2003, Greg Ungerer (gerg@snapgear.com) | ||
10 | * Copyright (C) 2001-2003, SnapGear Inc. (www.snapgear.com) | ||
11 | */ | ||
12 | |||
13 | /***************************************************************************/ | ||
14 | |||
15 | #include <linux/config.h> | ||
16 | #include <linux/kernel.h> | ||
17 | #include <linux/sched.h> | ||
18 | #include <linux/param.h> | ||
19 | #include <linux/init.h> | ||
20 | #include <linux/interrupt.h> | ||
21 | #include <asm/dma.h> | ||
22 | #include <asm/traps.h> | ||
23 | #include <asm/machdep.h> | ||
24 | #include <asm/coldfire.h> | ||
25 | #include <asm/mcfsim.h> | ||
26 | #include <asm/mcfdma.h> | ||
27 | |||
28 | /***************************************************************************/ | ||
29 | |||
30 | void coldfire_pit_tick(void); | ||
31 | void coldfire_pit_init(irqreturn_t (*handler)(int, void *, struct pt_regs *)); | ||
32 | unsigned long coldfire_pit_offset(void); | ||
33 | void coldfire_trap_init(void); | ||
34 | void coldfire_reset(void); | ||
35 | |||
36 | /***************************************************************************/ | ||
37 | |||
38 | /* | ||
39 | * DMA channel base address table. | ||
40 | */ | ||
41 | unsigned int dma_base_addr[MAX_M68K_DMA_CHANNELS] = { | ||
42 | MCF_MBAR + MCFDMA_BASE0, | ||
43 | }; | ||
44 | |||
45 | unsigned int dma_device_address[MAX_M68K_DMA_CHANNELS]; | ||
46 | |||
47 | /***************************************************************************/ | ||
48 | |||
49 | void mcf_disableall(void) | ||
50 | { | ||
51 | *((volatile unsigned long *) (MCF_IPSBAR + MCFICM_INTC0 + MCFINTC_IMRH)) = 0xffffffff; | ||
52 | *((volatile unsigned long *) (MCF_IPSBAR + MCFICM_INTC0 + MCFINTC_IMRL)) = 0xffffffff; | ||
53 | } | ||
54 | |||
55 | /***************************************************************************/ | ||
56 | |||
57 | void mcf_autovector(unsigned int vec) | ||
58 | { | ||
59 | /* Everything is auto-vectored on the 5272 */ | ||
60 | } | ||
61 | |||
62 | /***************************************************************************/ | ||
63 | |||
64 | void config_BSP(char *commandp, int size) | ||
65 | { | ||
66 | mcf_disableall(); | ||
67 | |||
68 | #ifdef CONFIG_BOOTPARAM | ||
69 | strncpy(commandp, CONFIG_BOOTPARAM_STRING, size); | ||
70 | commandp[size-1] = 0; | ||
71 | #else | ||
72 | memset(commandp, 0, size); | ||
73 | #endif | ||
74 | |||
75 | mach_sched_init = coldfire_pit_init; | ||
76 | mach_tick = coldfire_pit_tick; | ||
77 | mach_gettimeoffset = coldfire_pit_offset; | ||
78 | mach_trap_init = coldfire_trap_init; | ||
79 | mach_reset = coldfire_reset; | ||
80 | } | ||
81 | |||
82 | /***************************************************************************/ | ||
diff --git a/arch/m68knommu/platform/5307/Makefile b/arch/m68knommu/platform/5307/Makefile new file mode 100644 index 000000000000..84b6b70641e1 --- /dev/null +++ b/arch/m68knommu/platform/5307/Makefile | |||
@@ -0,0 +1,29 @@ | |||
1 | # | ||
2 | # Makefile for the m68knommu kernel. | ||
3 | # | ||
4 | |||
5 | # | ||
6 | # If you want to play with the HW breakpoints then you will | ||
7 | # need to add define this, which will give you a stack backtrace | ||
8 | # on the console port whenever a DBG interrupt occurs. You have to | ||
9 | # set up you HW breakpoints to trigger a DBG interrupt: | ||
10 | # | ||
11 | # EXTRA_CFLAGS += -DTRAP_DBG_INTERRUPT | ||
12 | # EXTRA_AFLAGS += -DTRAP_DBG_INTERRUPT | ||
13 | # | ||
14 | |||
15 | ifdef CONFIG_FULLDEBUG | ||
16 | AFLAGS += -DDEBUGGER_COMPATIBLE_CACHE=1 | ||
17 | endif | ||
18 | |||
19 | obj-$(CONFIG_COLDFIRE) += entry.o vectors.o ints.o | ||
20 | obj-$(CONFIG_M5206) += timers.o | ||
21 | obj-$(CONFIG_M5206e) += timers.o | ||
22 | obj-$(CONFIG_M5249) += timers.o | ||
23 | obj-$(CONFIG_M527x) += pit.o | ||
24 | obj-$(CONFIG_M5272) += timers.o | ||
25 | obj-$(CONFIG_M5307) += config.o timers.o | ||
26 | obj-$(CONFIG_M528x) += pit.o | ||
27 | obj-$(CONFIG_M5407) += timers.o | ||
28 | |||
29 | extra-y := head.o | ||
diff --git a/arch/m68knommu/platform/5307/config.c b/arch/m68knommu/platform/5307/config.c new file mode 100644 index 000000000000..7ed5782e9236 --- /dev/null +++ b/arch/m68knommu/platform/5307/config.c | |||
@@ -0,0 +1,148 @@ | |||
1 | /***************************************************************************/ | ||
2 | |||
3 | /* | ||
4 | * linux/arch/m68knommu/platform/5307/config.c | ||
5 | * | ||
6 | * Copyright (C) 1999-2002, Greg Ungerer (gerg@snapgear.com) | ||
7 | * Copyright (C) 2000, Lineo (www.lineo.com) | ||
8 | */ | ||
9 | |||
10 | /***************************************************************************/ | ||
11 | |||
12 | #include <linux/config.h> | ||
13 | #include <linux/kernel.h> | ||
14 | #include <linux/sched.h> | ||
15 | #include <linux/param.h> | ||
16 | #include <linux/init.h> | ||
17 | #include <linux/interrupt.h> | ||
18 | #include <asm/irq.h> | ||
19 | #include <asm/dma.h> | ||
20 | #include <asm/traps.h> | ||
21 | #include <asm/machdep.h> | ||
22 | #include <asm/coldfire.h> | ||
23 | #include <asm/mcftimer.h> | ||
24 | #include <asm/mcfsim.h> | ||
25 | #include <asm/mcfdma.h> | ||
26 | #include <asm/mcfwdebug.h> | ||
27 | |||
28 | /***************************************************************************/ | ||
29 | |||
30 | void coldfire_tick(void); | ||
31 | void coldfire_timer_init(irqreturn_t (*handler)(int, void *, struct pt_regs *)); | ||
32 | unsigned long coldfire_timer_offset(void); | ||
33 | void coldfire_trap_init(void); | ||
34 | void coldfire_reset(void); | ||
35 | |||
36 | extern unsigned int mcf_timervector; | ||
37 | extern unsigned int mcf_profilevector; | ||
38 | extern unsigned int mcf_timerlevel; | ||
39 | |||
40 | /***************************************************************************/ | ||
41 | |||
42 | /* | ||
43 | * Some platforms need software versions of the GPIO data registers. | ||
44 | */ | ||
45 | unsigned short ppdata; | ||
46 | unsigned char ledbank = 0xff; | ||
47 | |||
48 | /***************************************************************************/ | ||
49 | |||
50 | /* | ||
51 | * DMA channel base address table. | ||
52 | */ | ||
53 | unsigned int dma_base_addr[MAX_M68K_DMA_CHANNELS] = { | ||
54 | MCF_MBAR + MCFDMA_BASE0, | ||
55 | MCF_MBAR + MCFDMA_BASE1, | ||
56 | MCF_MBAR + MCFDMA_BASE2, | ||
57 | MCF_MBAR + MCFDMA_BASE3, | ||
58 | }; | ||
59 | |||
60 | unsigned int dma_device_address[MAX_M68K_DMA_CHANNELS]; | ||
61 | |||
62 | /***************************************************************************/ | ||
63 | |||
64 | void mcf_autovector(unsigned int vec) | ||
65 | { | ||
66 | volatile unsigned char *mbar; | ||
67 | |||
68 | if ((vec >= 25) && (vec <= 31)) { | ||
69 | mbar = (volatile unsigned char *) MCF_MBAR; | ||
70 | vec = 0x1 << (vec - 24); | ||
71 | *(mbar + MCFSIM_AVR) |= vec; | ||
72 | mcf_setimr(mcf_getimr() & ~vec); | ||
73 | } | ||
74 | } | ||
75 | |||
76 | /***************************************************************************/ | ||
77 | |||
78 | void mcf_settimericr(unsigned int timer, unsigned int level) | ||
79 | { | ||
80 | volatile unsigned char *icrp; | ||
81 | unsigned int icr, imr; | ||
82 | |||
83 | if (timer <= 2) { | ||
84 | switch (timer) { | ||
85 | case 2: icr = MCFSIM_TIMER2ICR; imr = MCFSIM_IMR_TIMER2; break; | ||
86 | default: icr = MCFSIM_TIMER1ICR; imr = MCFSIM_IMR_TIMER1; break; | ||
87 | } | ||
88 | |||
89 | icrp = (volatile unsigned char *) (MCF_MBAR + icr); | ||
90 | *icrp = MCFSIM_ICR_AUTOVEC | (level << 2) | MCFSIM_ICR_PRI3; | ||
91 | mcf_setimr(mcf_getimr() & ~imr); | ||
92 | } | ||
93 | } | ||
94 | |||
95 | /***************************************************************************/ | ||
96 | |||
97 | int mcf_timerirqpending(int timer) | ||
98 | { | ||
99 | unsigned int imr = 0; | ||
100 | |||
101 | switch (timer) { | ||
102 | case 1: imr = MCFSIM_IMR_TIMER1; break; | ||
103 | case 2: imr = MCFSIM_IMR_TIMER2; break; | ||
104 | default: break; | ||
105 | } | ||
106 | return (mcf_getipr() & imr); | ||
107 | } | ||
108 | |||
109 | /***************************************************************************/ | ||
110 | |||
111 | void config_BSP(char *commandp, int size) | ||
112 | { | ||
113 | mcf_setimr(MCFSIM_IMR_MASKALL); | ||
114 | |||
115 | #if defined(CONFIG_BOOTPARAM) | ||
116 | strncpy(commandp, CONFIG_BOOTPARAM_STRING, size); | ||
117 | commandp[size-1] = 0; | ||
118 | #elif defined(CONFIG_NETtel) || defined(CONFIG_eLIA) || \ | ||
119 | defined(CONFIG_DISKtel) || defined(CONFIG_SECUREEDGEMP3) || \ | ||
120 | defined(CONFIG_CLEOPATRA) | ||
121 | /* Copy command line from FLASH to local buffer... */ | ||
122 | memcpy(commandp, (char *) 0xf0004000, size); | ||
123 | commandp[size-1] = 0; | ||
124 | /* Different timer setup - to prevent device clash */ | ||
125 | mcf_timervector = 30; | ||
126 | mcf_profilevector = 31; | ||
127 | mcf_timerlevel = 6; | ||
128 | #else | ||
129 | memset(commandp, 0, size); | ||
130 | #endif | ||
131 | |||
132 | mach_sched_init = coldfire_timer_init; | ||
133 | mach_tick = coldfire_tick; | ||
134 | mach_gettimeoffset = coldfire_timer_offset; | ||
135 | mach_trap_init = coldfire_trap_init; | ||
136 | mach_reset = coldfire_reset; | ||
137 | |||
138 | #ifdef MCF_BDM_DISABLE | ||
139 | /* | ||
140 | * Disable the BDM clocking. This also turns off most of the rest of | ||
141 | * the BDM device. This is good for EMC reasons. This option is not | ||
142 | * incompatible with the memory protection option. | ||
143 | */ | ||
144 | wdebug(MCFDEBUG_CSR, MCFDEBUG_CSR_PSTCLK); | ||
145 | #endif | ||
146 | } | ||
147 | |||
148 | /***************************************************************************/ | ||
diff --git a/arch/m68knommu/platform/5307/entry.S b/arch/m68knommu/platform/5307/entry.S new file mode 100644 index 000000000000..89b180d4ed6a --- /dev/null +++ b/arch/m68knommu/platform/5307/entry.S | |||
@@ -0,0 +1,268 @@ | |||
1 | /* | ||
2 | * linux/arch/m68knommu/platform/5307/entry.S | ||
3 | * | ||
4 | * Copyright (C) 1999-2002, Greg Ungerer (gerg@snapgear.com) | ||
5 | * Copyright (C) 1998 D. Jeff Dionne <jeff@lineo.ca>, | ||
6 | * Kenneth Albanowski <kjahds@kjahds.com>, | ||
7 | * Copyright (C) 2000 Lineo Inc. (www.lineo.com) | ||
8 | * Copyright (C) 2004 Macq Electronique SA. (www.macqel.com) | ||
9 | * | ||
10 | * Based on: | ||
11 | * | ||
12 | * linux/arch/m68k/kernel/entry.S | ||
13 | * | ||
14 | * Copyright (C) 1991, 1992 Linus Torvalds | ||
15 | * | ||
16 | * This file is subject to the terms and conditions of the GNU General Public | ||
17 | * License. See the file README.legal in the main directory of this archive | ||
18 | * for more details. | ||
19 | * | ||
20 | * Linux/m68k support by Hamish Macdonald | ||
21 | * | ||
22 | * 68060 fixes by Jesper Skov | ||
23 | * ColdFire support by Greg Ungerer (gerg@snapgear.com) | ||
24 | * 5307 fixes by David W. Miller | ||
25 | * linux 2.4 support David McCullough <davidm@snapgear.com> | ||
26 | * Bug, speed and maintainability fixes by Philippe De Muyter <phdm@macqel.be> | ||
27 | */ | ||
28 | |||
29 | #include <linux/config.h> | ||
30 | #include <linux/sys.h> | ||
31 | #include <linux/linkage.h> | ||
32 | #include <asm/unistd.h> | ||
33 | #include <asm/thread_info.h> | ||
34 | #include <asm/errno.h> | ||
35 | #include <asm/setup.h> | ||
36 | #include <asm/segment.h> | ||
37 | #include <asm/asm-offsets.h> | ||
38 | #include <asm/entry.h> | ||
39 | |||
40 | .bss | ||
41 | |||
42 | sw_ksp: | ||
43 | .long 0 | ||
44 | |||
45 | sw_usp: | ||
46 | .long 0 | ||
47 | |||
48 | .text | ||
49 | |||
50 | .globl system_call | ||
51 | .globl resume | ||
52 | .globl ret_from_exception | ||
53 | .globl ret_from_signal | ||
54 | .globl sys_call_table | ||
55 | .globl ret_from_interrupt | ||
56 | .globl inthandler | ||
57 | .globl fasthandler | ||
58 | |||
59 | ENTRY(system_call) | ||
60 | SAVE_ALL | ||
61 | move #0x2000,%sr /* enable intrs again */ | ||
62 | |||
63 | movel #-LENOSYS,%d2 | ||
64 | movel %d2,PT_D0(%sp) /* default return value in d0 */ | ||
65 | /* original D0 is in orig_d0 */ | ||
66 | movel %d0,%d2 | ||
67 | |||
68 | /* save top of frame */ | ||
69 | pea %sp@ | ||
70 | jbsr set_esp0 | ||
71 | addql #4,%sp | ||
72 | |||
73 | cmpl #NR_syscalls,%d2 | ||
74 | jcc ret_from_exception | ||
75 | lea sys_call_table,%a0 | ||
76 | lsll #2,%d2 /* movel %a0@(%d2:l:4),%d3 */ | ||
77 | movel %a0@(%d2),%d3 | ||
78 | jeq ret_from_exception | ||
79 | lsrl #2,%d2 | ||
80 | |||
81 | movel %sp,%d2 /* get thread_info pointer */ | ||
82 | andl #-THREAD_SIZE,%d2 /* at start of kernel stack */ | ||
83 | movel %d2,%a0 | ||
84 | btst #TIF_SYSCALL_TRACE,%a0@(TI_FLAGS) | ||
85 | bnes 1f | ||
86 | |||
87 | movel %d3,%a0 | ||
88 | jbsr %a0@ | ||
89 | movel %d0,%sp@(PT_D0) /* save the return value */ | ||
90 | jra ret_from_exception | ||
91 | 1: | ||
92 | subql #4,%sp | ||
93 | SAVE_SWITCH_STACK | ||
94 | jbsr syscall_trace | ||
95 | RESTORE_SWITCH_STACK | ||
96 | addql #4,%sp | ||
97 | movel %d3,%a0 | ||
98 | jbsr %a0@ | ||
99 | movel %d0,%sp@(PT_D0) /* save the return value */ | ||
100 | subql #4,%sp /* dummy return address */ | ||
101 | SAVE_SWITCH_STACK | ||
102 | jbsr syscall_trace | ||
103 | |||
104 | ret_from_signal: | ||
105 | RESTORE_SWITCH_STACK | ||
106 | addql #4,%sp | ||
107 | |||
108 | ret_from_exception: | ||
109 | btst #5,%sp@(PT_SR) /* check if returning to kernel */ | ||
110 | jeq Luser_return /* if so, skip resched, signals */ | ||
111 | |||
112 | Lkernel_return: | ||
113 | moveml %sp@,%d1-%d5/%a0-%a2 | ||
114 | lea %sp@(32),%sp /* space for 8 regs */ | ||
115 | movel %sp@+,%d0 | ||
116 | addql #4,%sp /* orig d0 */ | ||
117 | addl %sp@+,%sp /* stk adj */ | ||
118 | rte | ||
119 | |||
120 | Luser_return: | ||
121 | movel %sp,%d1 /* get thread_info pointer */ | ||
122 | andl #-THREAD_SIZE,%d1 /* at base of kernel stack */ | ||
123 | movel %d1,%a0 | ||
124 | movel %a0@(TI_FLAGS),%d1 /* get thread_info->flags */ | ||
125 | andl #_TIF_WORK_MASK,%d1 | ||
126 | jne Lwork_to_do /* still work to do */ | ||
127 | |||
128 | Lreturn: | ||
129 | move #0x2700,%sr /* disable intrs */ | ||
130 | movel sw_usp,%a0 /* get usp */ | ||
131 | movel %sp@(PT_PC),%a0@- /* copy exception program counter */ | ||
132 | movel %sp@(PT_FORMATVEC),%a0@-/* copy exception format/vector/sr */ | ||
133 | moveml %sp@,%d1-%d5/%a0-%a2 | ||
134 | lea %sp@(32),%sp /* space for 8 regs */ | ||
135 | movel %sp@+,%d0 | ||
136 | addql #4,%sp /* orig d0 */ | ||
137 | addl %sp@+,%sp /* stk adj */ | ||
138 | addql #8,%sp /* remove exception */ | ||
139 | movel %sp,sw_ksp /* save ksp */ | ||
140 | subql #8,sw_usp /* set exception */ | ||
141 | movel sw_usp,%sp /* restore usp */ | ||
142 | rte | ||
143 | |||
144 | Lwork_to_do: | ||
145 | movel %a0@(TI_FLAGS),%d1 /* get thread_info->flags */ | ||
146 | btst #TIF_NEED_RESCHED,%d1 | ||
147 | jne reschedule | ||
148 | |||
149 | /* GERG: do we need something here for TRACEing?? */ | ||
150 | |||
151 | Lsignal_return: | ||
152 | subql #4,%sp /* dummy return address */ | ||
153 | SAVE_SWITCH_STACK | ||
154 | pea %sp@(SWITCH_STACK_SIZE) | ||
155 | clrl %sp@- | ||
156 | jsr do_signal | ||
157 | addql #8,%sp | ||
158 | RESTORE_SWITCH_STACK | ||
159 | addql #4,%sp | ||
160 | jmp Lreturn | ||
161 | |||
162 | /* | ||
163 | * This is the generic interrupt handler (for all hardware interrupt | ||
164 | * sources). It figures out the vector number and calls the appropriate | ||
165 | * interrupt service routine directly. | ||
166 | */ | ||
167 | ENTRY(inthandler) | ||
168 | SAVE_ALL | ||
169 | moveq #-1,%d0 | ||
170 | movel %d0,%sp@(PT_ORIG_D0) | ||
171 | addql #1,local_irq_count | ||
172 | |||
173 | movew %sp@(PT_FORMATVEC),%d0 /* put exception # in d0 */ | ||
174 | andl #0x03fc,%d0 /* mask out vector only */ | ||
175 | |||
176 | leal per_cpu__kstat+STAT_IRQ,%a0 | ||
177 | addql #1,%a0@(%d0) | ||
178 | |||
179 | lsrl #2,%d0 /* calculate real vector # */ | ||
180 | movel %d0,%d1 /* calculate array offset */ | ||
181 | lsll #4,%d1 | ||
182 | lea irq_list,%a0 | ||
183 | addl %d1,%a0 /* pointer to array struct */ | ||
184 | |||
185 | movel %sp,%sp@- /* push regs arg onto stack */ | ||
186 | movel %a0@(8),%sp@- /* push devid arg */ | ||
187 | movel %d0,%sp@- /* push vector # on stack */ | ||
188 | |||
189 | movel %a0@,%a0 /* get function to call */ | ||
190 | jbsr %a0@ /* call vector handler */ | ||
191 | lea %sp@(12),%sp /* pop parameters off stack */ | ||
192 | |||
193 | bra ret_from_interrupt /* this was fallthrough */ | ||
194 | |||
195 | /* | ||
196 | * This is the fast interrupt handler (for certain hardware interrupt | ||
197 | * sources). Unlike the normal interrupt handler it just uses the | ||
198 | * current stack (doesn't care if it is user or kernel). It also | ||
199 | * doesn't bother doing the bottom half handlers. | ||
200 | */ | ||
201 | ENTRY(fasthandler) | ||
202 | SAVE_LOCAL | ||
203 | |||
204 | movew %sp@(PT_FORMATVEC),%d0 | ||
205 | andl #0x03fc,%d0 /* mask out vector only */ | ||
206 | |||
207 | leal per_cpu__kstat+STAT_IRQ,%a0 | ||
208 | addql #1,%a0@(%d0) | ||
209 | |||
210 | movel %sp,%sp@- /* push regs arg onto stack */ | ||
211 | clrl %sp@- /* push devid arg */ | ||
212 | lsrl #2,%d0 /* calculate real vector # */ | ||
213 | movel %d0,%sp@- /* push vector # on stack */ | ||
214 | |||
215 | lsll #4,%d0 /* adjust for array offset */ | ||
216 | lea irq_list,%a0 | ||
217 | movel %a0@(%d0),%a0 /* get function to call */ | ||
218 | jbsr %a0@ /* call vector handler */ | ||
219 | lea %sp@(12),%sp /* pop parameters off stack */ | ||
220 | |||
221 | RESTORE_LOCAL | ||
222 | |||
223 | ENTRY(ret_from_interrupt) | ||
224 | subql #1,local_irq_count | ||
225 | jeq 2f | ||
226 | 1: | ||
227 | RESTORE_ALL | ||
228 | 2: | ||
229 | moveb %sp@(PT_SR),%d0 | ||
230 | andl #0x7,%d0 | ||
231 | jhi 1b | ||
232 | |||
233 | /* check if we need to do software interrupts */ | ||
234 | movel irq_stat+CPUSTAT_SOFTIRQ_PENDING,%d0 | ||
235 | jeq ret_from_exception | ||
236 | |||
237 | pea ret_from_exception | ||
238 | jmp do_softirq | ||
239 | |||
240 | /* | ||
241 | * Beware - when entering resume, prev (the current task) is | ||
242 | * in a0, next (the new task) is in a1,so don't change these | ||
243 | * registers until their contents are no longer needed. | ||
244 | */ | ||
245 | ENTRY(resume) | ||
246 | movel %a0, %d1 /* get prev thread in d1 */ | ||
247 | |||
248 | movew %sr,%d0 /* save thread status reg */ | ||
249 | movew %d0,%a0@(TASK_THREAD+THREAD_SR) | ||
250 | |||
251 | oril #0x700,%d0 /* disable interrupts */ | ||
252 | move %d0,%sr | ||
253 | |||
254 | movel sw_usp,%d0 /* save usp */ | ||
255 | movel %d0,%a0@(TASK_THREAD+THREAD_USP) | ||
256 | |||
257 | SAVE_SWITCH_STACK | ||
258 | movel %sp,%a0@(TASK_THREAD+THREAD_KSP) /* save kernel stack pointer */ | ||
259 | movel %a1@(TASK_THREAD+THREAD_KSP),%sp /* restore new thread stack */ | ||
260 | RESTORE_SWITCH_STACK | ||
261 | |||
262 | movel %a1@(TASK_THREAD+THREAD_USP),%a0 /* restore thread user stack */ | ||
263 | movel %a0, sw_usp | ||
264 | |||
265 | movew %a1@(TASK_THREAD+THREAD_SR),%d0 /* restore thread status reg */ | ||
266 | movew %d0, %sr | ||
267 | rts | ||
268 | |||
diff --git a/arch/m68knommu/platform/5307/head.S b/arch/m68knommu/platform/5307/head.S new file mode 100644 index 000000000000..c7d7a395c4cc --- /dev/null +++ b/arch/m68knommu/platform/5307/head.S | |||
@@ -0,0 +1,253 @@ | |||
1 | /*****************************************************************************/ | ||
2 | |||
3 | /* | ||
4 | * head.S -- common startup code for ColdFire CPUs. | ||
5 | * | ||
6 | * (C) Copyright 1999-2004, Greg Ungerer (gerg@snapgear.com). | ||
7 | */ | ||
8 | |||
9 | /*****************************************************************************/ | ||
10 | |||
11 | #include <linux/config.h> | ||
12 | #include <linux/sys.h> | ||
13 | #include <linux/linkage.h> | ||
14 | #include <asm/asm-offsets.h> | ||
15 | #include <asm/coldfire.h> | ||
16 | #include <asm/mcfcache.h> | ||
17 | #include <asm/mcfsim.h> | ||
18 | |||
19 | /*****************************************************************************/ | ||
20 | |||
21 | /* | ||
22 | * Define fixed memory sizes. Configuration of a fixed memory size | ||
23 | * overrides everything else. If the user defined a size we just | ||
24 | * blindly use it (they know what they are doing right :-) | ||
25 | */ | ||
26 | #if defined(CONFIG_RAM32MB) | ||
27 | #define MEM_SIZE 0x02000000 /* memory size 32Mb */ | ||
28 | #elif defined(CONFIG_RAM16MB) | ||
29 | #define MEM_SIZE 0x01000000 /* memory size 16Mb */ | ||
30 | #elif defined(CONFIG_RAM8MB) | ||
31 | #define MEM_SIZE 0x00800000 /* memory size 8Mb */ | ||
32 | #elif defined(CONFIG_RAM4MB) | ||
33 | #define MEM_SIZE 0x00400000 /* memory size 4Mb */ | ||
34 | #elif defined(CONFIG_RAM1MB) | ||
35 | #define MEM_SIZE 0x00100000 /* memory size 1Mb */ | ||
36 | #endif | ||
37 | |||
38 | /* | ||
39 | * Memory size exceptions for special cases. Some boards may be set | ||
40 | * for auto memory sizing, but we can't do it that way for some reason. | ||
41 | * For example the 5206eLITE board has static RAM, and auto-detecting | ||
42 | * the SDRAM will do you no good at all. | ||
43 | */ | ||
44 | #ifdef CONFIG_RAMAUTO | ||
45 | #if defined(CONFIG_M5206eLITE) | ||
46 | #define MEM_SIZE 0x00100000 /* 1MiB default memory */ | ||
47 | #endif | ||
48 | #endif /* CONFIG_RAMAUTO */ | ||
49 | |||
50 | /* | ||
51 | * If we don't have a fixed memory size now, then lets build in code | ||
52 | * to auto detect the DRAM size. Obviously this is the prefered | ||
53 | * method, and should work for most boards (it won't work for those | ||
54 | * that do not have their RAM starting at address 0). | ||
55 | */ | ||
56 | #if defined(MEM_SIZE) | ||
57 | .macro GET_MEM_SIZE | ||
58 | movel #MEM_SIZE,%d0 /* hard coded memory size */ | ||
59 | .endm | ||
60 | |||
61 | #elif defined(CONFIG_M5206) || defined(CONFIG_M5206e) || \ | ||
62 | defined(CONFIG_M5249) || defined(CONFIG_M527x) || \ | ||
63 | defined(CONFIG_M528x) || defined(CONFIG_M5307) || \ | ||
64 | defined(CONFIG_M5407) | ||
65 | /* | ||
66 | * Not all these devices have exactly the same DRAM controller, | ||
67 | * but the DCMR register is virtually identical - give or take | ||
68 | * a couple of bits. The only exception is the 5272 devices, their | ||
69 | * DRAM controller is quite different. | ||
70 | */ | ||
71 | .macro GET_MEM_SIZE | ||
72 | movel MCF_MBAR+MCFSIM_DMR0,%d0 /* get mask for 1st bank */ | ||
73 | btst #0,%d0 /* check if region enabled */ | ||
74 | beq 1f | ||
75 | andl #0xfffc0000,%d0 | ||
76 | beq 1f | ||
77 | addl #0x00040000,%d0 /* convert mask to size */ | ||
78 | 1: | ||
79 | movel MCF_MBAR+MCFSIM_DMR1,%d1 /* get mask for 2nd bank */ | ||
80 | btst #0,%d1 /* check if region enabled */ | ||
81 | beq 2f | ||
82 | andl #0xfffc0000, %d1 | ||
83 | beq 2f | ||
84 | addl #0x00040000,%d1 | ||
85 | addl %d1,%d0 /* total mem size in d0 */ | ||
86 | 2: | ||
87 | .endm | ||
88 | |||
89 | #elif defined(CONFIG_M5272) | ||
90 | .macro GET_MEM_SIZE | ||
91 | movel MCF_MBAR+MCFSIM_CSOR7,%d0 /* get SDRAM address mask */ | ||
92 | andil #0xfffff000,%d0 /* mask out chip select options */ | ||
93 | negl %d0 /* negate bits */ | ||
94 | .endm | ||
95 | |||
96 | #else | ||
97 | #error "ERROR: I don't know how to determine your boards memory size?" | ||
98 | #endif | ||
99 | |||
100 | |||
101 | /* | ||
102 | * Most ColdFire boards have their DRAM starting at address 0. | ||
103 | * Notable exception is the 5206eLITE board. | ||
104 | */ | ||
105 | #if defined(CONFIG_M5206eLITE) | ||
106 | #define MEM_BASE 0x30000000 | ||
107 | #endif | ||
108 | |||
109 | #ifndef MEM_BASE | ||
110 | #define MEM_BASE 0x00000000 /* memory base at address 0 */ | ||
111 | #endif | ||
112 | |||
113 | /* | ||
114 | * The default location for the vectors is at the base of RAM. | ||
115 | * Some boards might like to use internal SRAM or something like | ||
116 | * that. If no board specific header defines an alternative then | ||
117 | * use the base of RAM. | ||
118 | */ | ||
119 | #ifndef VBR_BASE | ||
120 | #define VBR_BASE MEM_BASE /* vector address */ | ||
121 | #endif | ||
122 | |||
123 | /*****************************************************************************/ | ||
124 | |||
125 | /* | ||
126 | * Boards and platforms can do specific early hardware setup if | ||
127 | * they need to. Most don't need this, define away if not required. | ||
128 | */ | ||
129 | #ifndef PLATFORM_SETUP | ||
130 | #define PLATFORM_SETUP | ||
131 | #endif | ||
132 | |||
133 | /*****************************************************************************/ | ||
134 | |||
135 | .global _start | ||
136 | .global _rambase | ||
137 | .global _ramvec | ||
138 | .global _ramstart | ||
139 | .global _ramend | ||
140 | |||
141 | /*****************************************************************************/ | ||
142 | |||
143 | .data | ||
144 | |||
145 | /* | ||
146 | * During startup we store away the RAM setup. These are not in the | ||
147 | * bss, since their values are determined and written before the bss | ||
148 | * has been cleared. | ||
149 | */ | ||
150 | _rambase: | ||
151 | .long 0 | ||
152 | _ramvec: | ||
153 | .long 0 | ||
154 | _ramstart: | ||
155 | .long 0 | ||
156 | _ramend: | ||
157 | .long 0 | ||
158 | |||
159 | /*****************************************************************************/ | ||
160 | |||
161 | .text | ||
162 | |||
163 | /* | ||
164 | * This is the codes first entry point. This is where it all | ||
165 | * begins... | ||
166 | */ | ||
167 | |||
168 | _start: | ||
169 | nop /* filler */ | ||
170 | movew #0x2700, %sr /* no interrupts */ | ||
171 | |||
172 | /* | ||
173 | * Do any platform or board specific setup now. Most boards | ||
174 | * don't need anything. Those exceptions are define this in | ||
175 | * their board specific includes. | ||
176 | */ | ||
177 | PLATFORM_SETUP | ||
178 | |||
179 | /* | ||
180 | * Create basic memory configuration. Set VBR accordingly, | ||
181 | * and size memory. | ||
182 | */ | ||
183 | movel #VBR_BASE,%a7 | ||
184 | movec %a7,%VBR /* set vectors addr */ | ||
185 | movel %a7,_ramvec | ||
186 | |||
187 | movel #MEM_BASE,%a7 /* mark the base of RAM */ | ||
188 | movel %a7,_rambase | ||
189 | |||
190 | GET_MEM_SIZE /* macro code determines size */ | ||
191 | movel %d0,_ramend /* set end ram addr */ | ||
192 | |||
193 | /* | ||
194 | * Now that we know what the memory is, lets enable cache | ||
195 | * and get things moving. This is Coldfire CPU specific. | ||
196 | */ | ||
197 | CACHE_ENABLE /* enable CPU cache */ | ||
198 | |||
199 | |||
200 | #ifdef CONFIG_ROMFS_FS | ||
201 | /* | ||
202 | * Move ROM filesystem above bss :-) | ||
203 | */ | ||
204 | lea _sbss,%a0 /* get start of bss */ | ||
205 | lea _ebss,%a1 /* set up destination */ | ||
206 | movel %a0,%a2 /* copy of bss start */ | ||
207 | |||
208 | movel 8(%a0),%d0 /* get size of ROMFS */ | ||
209 | addql #8,%d0 /* allow for rounding */ | ||
210 | andl #0xfffffffc, %d0 /* whole words */ | ||
211 | |||
212 | addl %d0,%a0 /* copy from end */ | ||
213 | addl %d0,%a1 /* copy from end */ | ||
214 | movel %a1,_ramstart /* set start of ram */ | ||
215 | |||
216 | _copy_romfs: | ||
217 | movel -(%a0),%d0 /* copy dword */ | ||
218 | movel %d0,-(%a1) | ||
219 | cmpl %a0,%a2 /* check if at end */ | ||
220 | bne _copy_romfs | ||
221 | |||
222 | #else /* CONFIG_ROMFS_FS */ | ||
223 | lea _ebss,%a1 | ||
224 | movel %a1,_ramstart | ||
225 | #endif /* CONFIG_ROMFS_FS */ | ||
226 | |||
227 | |||
228 | /* | ||
229 | * Zero out the bss region. | ||
230 | */ | ||
231 | lea _sbss,%a0 /* get start of bss */ | ||
232 | lea _ebss,%a1 /* get end of bss */ | ||
233 | clrl %d0 /* set value */ | ||
234 | _clear_bss: | ||
235 | movel %d0,(%a0)+ /* clear each word */ | ||
236 | cmpl %a0,%a1 /* check if at end */ | ||
237 | bne _clear_bss | ||
238 | |||
239 | /* | ||
240 | * Load the current task pointer and stack. | ||
241 | */ | ||
242 | lea init_thread_union,%a0 | ||
243 | lea THREAD_SIZE(%a0),%sp | ||
244 | |||
245 | /* | ||
246 | * Assember start up done, start code proper. | ||
247 | */ | ||
248 | jsr start_kernel /* start Linux kernel */ | ||
249 | |||
250 | _exit: | ||
251 | jmp _exit /* should never get here */ | ||
252 | |||
253 | /*****************************************************************************/ | ||
diff --git a/arch/m68knommu/platform/5307/ints.c b/arch/m68knommu/platform/5307/ints.c new file mode 100644 index 000000000000..0117754d44f3 --- /dev/null +++ b/arch/m68knommu/platform/5307/ints.c | |||
@@ -0,0 +1,280 @@ | |||
1 | /* | ||
2 | * linux/arch/m68knommu/kernel/ints.c -- General interrupt handling code | ||
3 | * | ||
4 | * Copyright (C) 1999-2002 Greg Ungerer (gerg@snapgear.com) | ||
5 | * Copyright (C) 1998 D. Jeff Dionne <jeff@lineo.ca>, | ||
6 | * Kenneth Albanowski <kjahds@kjahds.com>, | ||
7 | * Copyright (C) 2000 Lineo Inc. (www.lineo.com) | ||
8 | * | ||
9 | * Based on: | ||
10 | * | ||
11 | * linux/arch/m68k/kernel/ints.c -- Linux/m68k general interrupt handling code | ||
12 | * | ||
13 | * This file is subject to the terms and conditions of the GNU General Public | ||
14 | * License. See the file COPYING in the main directory of this archive | ||
15 | * for more details. | ||
16 | */ | ||
17 | |||
18 | #include <linux/module.h> | ||
19 | #include <linux/types.h> | ||
20 | #include <linux/init.h> | ||
21 | #include <linux/sched.h> | ||
22 | #include <linux/kernel_stat.h> | ||
23 | #include <linux/errno.h> | ||
24 | #include <linux/config.h> | ||
25 | #include <linux/seq_file.h> | ||
26 | |||
27 | #include <asm/system.h> | ||
28 | #include <asm/irq.h> | ||
29 | #include <asm/traps.h> | ||
30 | #include <asm/page.h> | ||
31 | #include <asm/machdep.h> | ||
32 | |||
33 | /* | ||
34 | * This table stores the address info for each vector handler. | ||
35 | */ | ||
36 | irq_handler_t irq_list[SYS_IRQS]; | ||
37 | |||
38 | #define NUM_IRQ_NODES 16 | ||
39 | static irq_node_t nodes[NUM_IRQ_NODES]; | ||
40 | |||
41 | /* The number of spurious interrupts */ | ||
42 | volatile unsigned int num_spurious; | ||
43 | |||
44 | unsigned int local_bh_count[NR_CPUS]; | ||
45 | unsigned int local_irq_count[NR_CPUS]; | ||
46 | |||
47 | static irqreturn_t default_irq_handler(int irq, void *ptr, struct pt_regs *regs) | ||
48 | { | ||
49 | #if 1 | ||
50 | printk(KERN_INFO "%s(%d): default irq handler vec=%d [0x%x]\n", | ||
51 | __FILE__, __LINE__, irq, irq); | ||
52 | #endif | ||
53 | return(IRQ_HANDLED); | ||
54 | } | ||
55 | |||
56 | /* | ||
57 | * void init_IRQ(void) | ||
58 | * | ||
59 | * Parameters: None | ||
60 | * | ||
61 | * Returns: Nothing | ||
62 | * | ||
63 | * This function should be called during kernel startup to initialize | ||
64 | * the IRQ handling routines. | ||
65 | */ | ||
66 | |||
67 | void __init init_IRQ(void) | ||
68 | { | ||
69 | int i; | ||
70 | |||
71 | for (i = 0; i < SYS_IRQS; i++) { | ||
72 | if (mach_default_handler) | ||
73 | irq_list[i].handler = (*mach_default_handler)[i]; | ||
74 | else | ||
75 | irq_list[i].handler = default_irq_handler; | ||
76 | irq_list[i].flags = IRQ_FLG_STD; | ||
77 | irq_list[i].dev_id = NULL; | ||
78 | irq_list[i].devname = NULL; | ||
79 | } | ||
80 | |||
81 | for (i = 0; i < NUM_IRQ_NODES; i++) | ||
82 | nodes[i].handler = NULL; | ||
83 | |||
84 | if (mach_init_IRQ) | ||
85 | mach_init_IRQ(); | ||
86 | } | ||
87 | |||
88 | irq_node_t *new_irq_node(void) | ||
89 | { | ||
90 | irq_node_t *node; | ||
91 | short i; | ||
92 | |||
93 | for (node = nodes, i = NUM_IRQ_NODES-1; i >= 0; node++, i--) | ||
94 | if (!node->handler) | ||
95 | return node; | ||
96 | |||
97 | printk(KERN_INFO "new_irq_node: out of nodes\n"); | ||
98 | return NULL; | ||
99 | } | ||
100 | |||
101 | int request_irq( | ||
102 | unsigned int irq, | ||
103 | irqreturn_t (*handler)(int, void *, struct pt_regs *), | ||
104 | unsigned long flags, | ||
105 | const char *devname, | ||
106 | void *dev_id) | ||
107 | { | ||
108 | if (irq < 0 || irq >= NR_IRQS) { | ||
109 | printk(KERN_WARNING "%s: Incorrect IRQ %d from %s\n", __FUNCTION__, | ||
110 | irq, devname); | ||
111 | return -ENXIO; | ||
112 | } | ||
113 | |||
114 | if (!(irq_list[irq].flags & IRQ_FLG_STD)) { | ||
115 | if (irq_list[irq].flags & IRQ_FLG_LOCK) { | ||
116 | printk(KERN_WARNING "%s: IRQ %d from %s is not replaceable\n", | ||
117 | __FUNCTION__, irq, irq_list[irq].devname); | ||
118 | return -EBUSY; | ||
119 | } | ||
120 | if (flags & IRQ_FLG_REPLACE) { | ||
121 | printk(KERN_WARNING "%s: %s can't replace IRQ %d from %s\n", | ||
122 | __FUNCTION__, devname, irq, irq_list[irq].devname); | ||
123 | return -EBUSY; | ||
124 | } | ||
125 | } | ||
126 | |||
127 | if (flags & IRQ_FLG_FAST) { | ||
128 | extern asmlinkage void fasthandler(void); | ||
129 | extern void set_evector(int vecnum, void (*handler)(void)); | ||
130 | set_evector(irq, fasthandler); | ||
131 | } | ||
132 | |||
133 | irq_list[irq].handler = handler; | ||
134 | irq_list[irq].flags = flags; | ||
135 | irq_list[irq].dev_id = dev_id; | ||
136 | irq_list[irq].devname = devname; | ||
137 | return 0; | ||
138 | } | ||
139 | |||
140 | EXPORT_SYMBOL(request_irq); | ||
141 | |||
142 | void free_irq(unsigned int irq, void *dev_id) | ||
143 | { | ||
144 | if (irq >= NR_IRQS) { | ||
145 | printk(KERN_WARNING "%s: Incorrect IRQ %d\n", __FUNCTION__, irq); | ||
146 | return; | ||
147 | } | ||
148 | |||
149 | if (irq_list[irq].dev_id != dev_id) | ||
150 | printk(KERN_WARNING "%s: Removing probably wrong IRQ %d from %s\n", | ||
151 | __FUNCTION__, irq, irq_list[irq].devname); | ||
152 | |||
153 | if (irq_list[irq].flags & IRQ_FLG_FAST) { | ||
154 | extern asmlinkage void inthandler(void); | ||
155 | extern void set_evector(int vecnum, void (*handler)(void)); | ||
156 | set_evector(irq, inthandler); | ||
157 | } | ||
158 | |||
159 | if (mach_default_handler) | ||
160 | irq_list[irq].handler = (*mach_default_handler)[irq]; | ||
161 | else | ||
162 | irq_list[irq].handler = default_irq_handler; | ||
163 | irq_list[irq].flags = IRQ_FLG_STD; | ||
164 | irq_list[irq].dev_id = NULL; | ||
165 | irq_list[irq].devname = NULL; | ||
166 | } | ||
167 | |||
168 | EXPORT_SYMBOL(free_irq); | ||
169 | |||
170 | |||
171 | int sys_request_irq(unsigned int irq, | ||
172 | irqreturn_t (*handler)(int, void *, struct pt_regs *), | ||
173 | unsigned long flags, const char *devname, void *dev_id) | ||
174 | { | ||
175 | if (irq > IRQ7) { | ||
176 | printk(KERN_WARNING "%s: Incorrect IRQ %d from %s\n", | ||
177 | __FUNCTION__, irq, devname); | ||
178 | return -ENXIO; | ||
179 | } | ||
180 | |||
181 | #if 0 | ||
182 | if (!(irq_list[irq].flags & IRQ_FLG_STD)) { | ||
183 | if (irq_list[irq].flags & IRQ_FLG_LOCK) { | ||
184 | printk(KERN_WARNING "%s: IRQ %d from %s is not replaceable\n", | ||
185 | __FUNCTION__, irq, irq_list[irq].devname); | ||
186 | return -EBUSY; | ||
187 | } | ||
188 | if (!(flags & IRQ_FLG_REPLACE)) { | ||
189 | printk(KERN_WARNING "%s: %s can't replace IRQ %d from %s\n", | ||
190 | __FUNCTION__, devname, irq, irq_list[irq].devname); | ||
191 | return -EBUSY; | ||
192 | } | ||
193 | } | ||
194 | #endif | ||
195 | |||
196 | irq_list[irq].handler = handler; | ||
197 | irq_list[irq].flags = flags; | ||
198 | irq_list[irq].dev_id = dev_id; | ||
199 | irq_list[irq].devname = devname; | ||
200 | return 0; | ||
201 | } | ||
202 | |||
203 | void sys_free_irq(unsigned int irq, void *dev_id) | ||
204 | { | ||
205 | if (irq > IRQ7) { | ||
206 | printk(KERN_WARNING "%s: Incorrect IRQ %d\n", __FUNCTION__, irq); | ||
207 | return; | ||
208 | } | ||
209 | |||
210 | if (irq_list[irq].dev_id != dev_id) | ||
211 | printk(KERN_WARNING "%s: Removing probably wrong IRQ %d from %s\n", | ||
212 | __FUNCTION__, irq, irq_list[irq].devname); | ||
213 | |||
214 | irq_list[irq].handler = (*mach_default_handler)[irq]; | ||
215 | irq_list[irq].flags = 0; | ||
216 | irq_list[irq].dev_id = NULL; | ||
217 | irq_list[irq].devname = NULL; | ||
218 | } | ||
219 | |||
220 | /* | ||
221 | * Do we need these probe functions on the m68k? | ||
222 | * | ||
223 | * ... may be useful with ISA devices | ||
224 | */ | ||
225 | unsigned long probe_irq_on (void) | ||
226 | { | ||
227 | return 0; | ||
228 | } | ||
229 | |||
230 | EXPORT_SYMBOL(probe_irq_on); | ||
231 | |||
232 | int probe_irq_off (unsigned long irqs) | ||
233 | { | ||
234 | return 0; | ||
235 | } | ||
236 | |||
237 | EXPORT_SYMBOL(probe_irq_off); | ||
238 | |||
239 | asmlinkage void process_int(unsigned long vec, struct pt_regs *fp) | ||
240 | { | ||
241 | if (vec >= VEC_INT1 && vec <= VEC_INT7) { | ||
242 | vec -= VEC_SPUR; | ||
243 | kstat_cpu(0).irqs[vec]++; | ||
244 | irq_list[vec].handler(vec, irq_list[vec].dev_id, fp); | ||
245 | } else { | ||
246 | if (mach_process_int) | ||
247 | mach_process_int(vec, fp); | ||
248 | else | ||
249 | panic("Can't process interrupt vector %ld\n", vec); | ||
250 | return; | ||
251 | } | ||
252 | } | ||
253 | |||
254 | |||
255 | int show_interrupts(struct seq_file *p, void *v) | ||
256 | { | ||
257 | int i = *(loff_t *) v; | ||
258 | |||
259 | if (i < NR_IRQS) { | ||
260 | if (! (irq_list[i].flags & IRQ_FLG_STD)) { | ||
261 | seq_printf(p, "%3d: %10u ", i, | ||
262 | (i ? kstat_cpu(0).irqs[i] : num_spurious)); | ||
263 | if (irq_list[i].flags & IRQ_FLG_LOCK) | ||
264 | seq_printf(p, "L "); | ||
265 | else | ||
266 | seq_printf(p, " "); | ||
267 | seq_printf(p, "%s\n", irq_list[i].devname); | ||
268 | } | ||
269 | } | ||
270 | |||
271 | if (i == NR_IRQS && mach_get_irq_list) | ||
272 | mach_get_irq_list(p, v); | ||
273 | return 0; | ||
274 | } | ||
275 | |||
276 | void init_irq_proc(void) | ||
277 | { | ||
278 | /* Insert /proc/irq driver here */ | ||
279 | } | ||
280 | |||
diff --git a/arch/m68knommu/platform/5307/pit.c b/arch/m68knommu/platform/5307/pit.c new file mode 100644 index 000000000000..a9b2c2e7e280 --- /dev/null +++ b/arch/m68knommu/platform/5307/pit.c | |||
@@ -0,0 +1,88 @@ | |||
1 | /***************************************************************************/ | ||
2 | |||
3 | /* | ||
4 | * pit.c -- Motorola ColdFire PIT timer. Currently this type of | ||
5 | * hardware timer only exists in the Motorola ColdFire | ||
6 | * 5270/5271 and 5282 CPUs. | ||
7 | * | ||
8 | * Copyright (C) 1999-2004, Greg Ungerer (gerg@snapgear.com) | ||
9 | * Copyright (C) 2001-2004, SnapGear Inc. (www.snapgear.com) | ||
10 | * | ||
11 | */ | ||
12 | |||
13 | /***************************************************************************/ | ||
14 | |||
15 | #include <linux/config.h> | ||
16 | #include <linux/kernel.h> | ||
17 | #include <linux/sched.h> | ||
18 | #include <linux/param.h> | ||
19 | #include <linux/init.h> | ||
20 | #include <linux/interrupt.h> | ||
21 | #include <asm/irq.h> | ||
22 | #include <asm/coldfire.h> | ||
23 | #include <asm/mcfpit.h> | ||
24 | #include <asm/mcfsim.h> | ||
25 | |||
26 | /***************************************************************************/ | ||
27 | |||
28 | void coldfire_pit_tick(void) | ||
29 | { | ||
30 | volatile struct mcfpit *tp; | ||
31 | |||
32 | /* Reset the ColdFire timer */ | ||
33 | tp = (volatile struct mcfpit *) (MCF_IPSBAR + MCFPIT_BASE1); | ||
34 | tp->pcsr |= MCFPIT_PCSR_PIF; | ||
35 | } | ||
36 | |||
37 | /***************************************************************************/ | ||
38 | |||
39 | void coldfire_pit_init(irqreturn_t (*handler)(int, void *, struct pt_regs *)) | ||
40 | { | ||
41 | volatile unsigned char *icrp; | ||
42 | volatile unsigned long *imrp; | ||
43 | volatile struct mcfpit *tp; | ||
44 | |||
45 | request_irq(MCFINT_VECBASE + MCFINT_PIT1, handler, SA_INTERRUPT, | ||
46 | "ColdFire Timer", NULL); | ||
47 | |||
48 | icrp = (volatile unsigned char *) (MCF_IPSBAR + MCFICM_INTC0 + | ||
49 | MCFINTC_ICR0 + MCFINT_PIT1); | ||
50 | *icrp = 0x2b; /* PIT1 with level 5, priority 3 */ | ||
51 | |||
52 | imrp = (volatile unsigned long *) (MCF_IPSBAR + MCFICM_INTC0 + MCFINTC_IMRH); | ||
53 | *imrp &= ~(1 << (MCFINT_PIT1 - 32)); | ||
54 | |||
55 | /* Set up PIT timer 1 as poll clock */ | ||
56 | tp = (volatile struct mcfpit *) (MCF_IPSBAR + MCFPIT_BASE1); | ||
57 | tp->pcsr = MCFPIT_PCSR_DISABLE; | ||
58 | |||
59 | tp->pmr = ((MCF_CLK / 2) / 64) / HZ; | ||
60 | tp->pcsr = MCFPIT_PCSR_EN | MCFPIT_PCSR_PIE | MCFPIT_PCSR_OVW | | ||
61 | MCFPIT_PCSR_RLD | MCFPIT_PCSR_CLK64; | ||
62 | } | ||
63 | |||
64 | /***************************************************************************/ | ||
65 | |||
66 | unsigned long coldfire_pit_offset(void) | ||
67 | { | ||
68 | volatile struct mcfpit *tp; | ||
69 | volatile unsigned long *ipr; | ||
70 | unsigned long pmr, pcntr, offset; | ||
71 | |||
72 | tp = (volatile struct mcfpit *) (MCF_IPSBAR + MCFPIT_BASE1); | ||
73 | ipr = (volatile unsigned long *) (MCF_IPSBAR + MCFICM_INTC0 + MCFINTC_IPRH); | ||
74 | |||
75 | pmr = *(&tp->pmr); | ||
76 | pcntr = *(&tp->pcntr); | ||
77 | |||
78 | /* | ||
79 | * If we are still in the first half of the upcount and a | ||
80 | * timer interupt is pending, then add on a ticks worth of time. | ||
81 | */ | ||
82 | offset = ((pmr - pcntr) * (1000000 / HZ)) / pmr; | ||
83 | if ((offset < (1000000 / HZ / 2)) && (*ipr & (1 << (MCFINT_PIT1 - 32)))) | ||
84 | offset += 1000000 / HZ; | ||
85 | return offset; | ||
86 | } | ||
87 | |||
88 | /***************************************************************************/ | ||
diff --git a/arch/m68knommu/platform/5307/timers.c b/arch/m68knommu/platform/5307/timers.c new file mode 100644 index 000000000000..ef49596aa09c --- /dev/null +++ b/arch/m68knommu/platform/5307/timers.c | |||
@@ -0,0 +1,138 @@ | |||
1 | /***************************************************************************/ | ||
2 | |||
3 | /* | ||
4 | * timers.c -- generic ColdFire hardware timer support. | ||
5 | * | ||
6 | * Copyright (C) 1999-2003, Greg Ungerer (gerg@snapgear.com) | ||
7 | */ | ||
8 | |||
9 | /***************************************************************************/ | ||
10 | |||
11 | #include <linux/config.h> | ||
12 | #include <linux/kernel.h> | ||
13 | #include <linux/sched.h> | ||
14 | #include <linux/param.h> | ||
15 | #include <linux/interrupt.h> | ||
16 | #include <linux/init.h> | ||
17 | #include <asm/irq.h> | ||
18 | #include <asm/traps.h> | ||
19 | #include <asm/machdep.h> | ||
20 | #include <asm/coldfire.h> | ||
21 | #include <asm/mcftimer.h> | ||
22 | #include <asm/mcfsim.h> | ||
23 | |||
24 | /***************************************************************************/ | ||
25 | |||
26 | /* | ||
27 | * Default the timer and vector to use for ColdFire. Some ColdFire | ||
28 | * CPU's and some boards may want different. Their sub-architecture | ||
29 | * startup code (in config.c) can change these if they want. | ||
30 | */ | ||
31 | unsigned int mcf_timervector = 29; | ||
32 | unsigned int mcf_profilevector = 31; | ||
33 | unsigned int mcf_timerlevel = 5; | ||
34 | |||
35 | static volatile struct mcftimer *mcf_timerp; | ||
36 | |||
37 | /* | ||
38 | * These provide the underlying interrupt vector support. | ||
39 | * Unfortunately it is a little different on each ColdFire. | ||
40 | */ | ||
41 | extern void mcf_settimericr(int timer, int level); | ||
42 | extern int mcf_timerirqpending(int timer); | ||
43 | |||
44 | /***************************************************************************/ | ||
45 | |||
46 | void coldfire_tick(void) | ||
47 | { | ||
48 | /* Reset the ColdFire timer */ | ||
49 | mcf_timerp->ter = MCFTIMER_TER_CAP | MCFTIMER_TER_REF; | ||
50 | } | ||
51 | |||
52 | /***************************************************************************/ | ||
53 | |||
54 | void coldfire_timer_init(irqreturn_t (*handler)(int, void *, struct pt_regs *)) | ||
55 | { | ||
56 | /* Set up an internal TIMER as poll clock */ | ||
57 | mcf_timerp = (volatile struct mcftimer *) (MCF_MBAR + MCFTIMER_BASE1); | ||
58 | mcf_timerp->tmr = MCFTIMER_TMR_DISABLE; | ||
59 | |||
60 | mcf_timerp->trr = (unsigned short) ((MCF_BUSCLK / 16) / HZ); | ||
61 | mcf_timerp->tmr = MCFTIMER_TMR_ENORI | MCFTIMER_TMR_CLK16 | | ||
62 | MCFTIMER_TMR_RESTART | MCFTIMER_TMR_ENABLE; | ||
63 | |||
64 | request_irq(mcf_timervector, handler, SA_INTERRUPT, "timer", NULL); | ||
65 | mcf_settimericr(1, mcf_timerlevel); | ||
66 | |||
67 | #ifdef CONFIG_HIGHPROFILE | ||
68 | coldfire_profile_init(); | ||
69 | #endif | ||
70 | } | ||
71 | |||
72 | /***************************************************************************/ | ||
73 | |||
74 | unsigned long coldfire_timer_offset(void) | ||
75 | { | ||
76 | unsigned long trr, tcn, offset; | ||
77 | |||
78 | /* | ||
79 | * The change to pointer and de-reference is to force the compiler | ||
80 | * to read the registers with a single 16bit access. Otherwise it | ||
81 | * does some crazy 8bit read combining. | ||
82 | */ | ||
83 | tcn = *(&mcf_timerp->tcn); | ||
84 | trr = *(&mcf_timerp->trr); | ||
85 | offset = (tcn * (1000000 / HZ)) / trr; | ||
86 | |||
87 | /* Check if we just wrapped the counters and maybe missed a tick */ | ||
88 | if ((offset < (1000000 / HZ / 2)) && mcf_timerirqpending(1)) | ||
89 | offset += 1000000 / HZ; | ||
90 | return offset; | ||
91 | } | ||
92 | |||
93 | /***************************************************************************/ | ||
94 | #ifdef CONFIG_HIGHPROFILE | ||
95 | /***************************************************************************/ | ||
96 | |||
97 | /* | ||
98 | * Choose a reasonably fast profile timer. Make it an odd value to | ||
99 | * try and get good coverage of kernal operations. | ||
100 | */ | ||
101 | #define PROFILEHZ 1013 | ||
102 | |||
103 | static volatile struct mcftimer *mcf_proftp; | ||
104 | |||
105 | /* | ||
106 | * Use the other timer to provide high accuracy profiling info. | ||
107 | */ | ||
108 | |||
109 | void coldfire_profile_tick(int irq, void *dummy, struct pt_regs *regs) | ||
110 | { | ||
111 | /* Reset ColdFire timer2 */ | ||
112 | mcf_proftp->ter = MCFTIMER_TER_CAP | MCFTIMER_TER_REF; | ||
113 | if (current->pid) | ||
114 | profile_tick(CPU_PROFILING, regs); | ||
115 | } | ||
116 | |||
117 | /***************************************************************************/ | ||
118 | |||
119 | void coldfire_profile_init(void) | ||
120 | { | ||
121 | printk(KERN_INFO "PROFILE: lodging TIMER2 @ %dHz as profile timer\n", PROFILEHZ); | ||
122 | |||
123 | /* Set up TIMER 2 as high speed profile clock */ | ||
124 | mcf_proftp = (volatile struct mcftimer *) (MCF_MBAR + MCFTIMER_BASE2); | ||
125 | mcf_proftp->tmr = MCFTIMER_TMR_DISABLE; | ||
126 | |||
127 | mcf_proftp->trr = (unsigned short) ((MCF_CLK / 16) / PROFILEHZ); | ||
128 | mcf_proftp->tmr = MCFTIMER_TMR_ENORI | MCFTIMER_TMR_CLK16 | | ||
129 | MCFTIMER_TMR_RESTART | MCFTIMER_TMR_ENABLE; | ||
130 | |||
131 | request_irq(mcf_profilevector, coldfire_profile_tick, | ||
132 | (SA_INTERRUPT | IRQ_FLG_FAST), "profile timer", NULL); | ||
133 | mcf_settimericr(2, 7); | ||
134 | } | ||
135 | |||
136 | /***************************************************************************/ | ||
137 | #endif /* CONFIG_HIGHPROFILE */ | ||
138 | /***************************************************************************/ | ||
diff --git a/arch/m68knommu/platform/5307/vectors.c b/arch/m68knommu/platform/5307/vectors.c new file mode 100644 index 000000000000..ac313a160d8d --- /dev/null +++ b/arch/m68knommu/platform/5307/vectors.c | |||
@@ -0,0 +1,95 @@ | |||
1 | /***************************************************************************/ | ||
2 | |||
3 | /* | ||
4 | * linux/arch/m68knommu/platform/5307/vectors.c | ||
5 | * | ||
6 | * Copyright (C) 1999-2003, Greg Ungerer <gerg@snapgear.com> | ||
7 | */ | ||
8 | |||
9 | /***************************************************************************/ | ||
10 | |||
11 | #include <linux/config.h> | ||
12 | #include <linux/kernel.h> | ||
13 | #include <linux/sched.h> | ||
14 | #include <linux/param.h> | ||
15 | #include <linux/init.h> | ||
16 | #include <linux/unistd.h> | ||
17 | #include <linux/delay.h> | ||
18 | #include <asm/irq.h> | ||
19 | #include <asm/dma.h> | ||
20 | #include <asm/traps.h> | ||
21 | #include <asm/machdep.h> | ||
22 | #include <asm/coldfire.h> | ||
23 | #include <asm/mcftimer.h> | ||
24 | #include <asm/mcfsim.h> | ||
25 | #include <asm/mcfdma.h> | ||
26 | #include <asm/mcfwdebug.h> | ||
27 | |||
28 | /***************************************************************************/ | ||
29 | |||
30 | #ifdef TRAP_DBG_INTERRUPT | ||
31 | |||
32 | asmlinkage void dbginterrupt_c(struct frame *fp) | ||
33 | { | ||
34 | extern void dump(struct pt_regs *fp); | ||
35 | printk(KERN_DEBUG "%s(%d): BUS ERROR TRAP\n", __FILE__, __LINE__); | ||
36 | dump((struct pt_regs *) fp); | ||
37 | asm("halt"); | ||
38 | } | ||
39 | |||
40 | #endif | ||
41 | |||
42 | /***************************************************************************/ | ||
43 | |||
44 | extern e_vector *_ramvec; | ||
45 | |||
46 | void set_evector(int vecnum, void (*handler)(void)) | ||
47 | { | ||
48 | if (vecnum >= 0 && vecnum <= 255) | ||
49 | _ramvec[vecnum] = handler; | ||
50 | } | ||
51 | |||
52 | /***************************************************************************/ | ||
53 | |||
54 | /* Assembler routines */ | ||
55 | asmlinkage void buserr(void); | ||
56 | asmlinkage void trap(void); | ||
57 | asmlinkage void system_call(void); | ||
58 | asmlinkage void inthandler(void); | ||
59 | |||
60 | void __init coldfire_trap_init(void) | ||
61 | { | ||
62 | int i; | ||
63 | |||
64 | /* | ||
65 | * There is a common trap handler and common interrupt | ||
66 | * handler that handle almost every vector. We treat | ||
67 | * the system call and bus error special, they get their | ||
68 | * own first level handlers. | ||
69 | */ | ||
70 | for (i = 3; (i <= 23); i++) | ||
71 | _ramvec[i] = trap; | ||
72 | for (i = 33; (i <= 63); i++) | ||
73 | _ramvec[i] = trap; | ||
74 | for (i = 24; (i <= 31); i++) | ||
75 | _ramvec[i] = inthandler; | ||
76 | for (i = 64; (i < 255); i++) | ||
77 | _ramvec[i] = inthandler; | ||
78 | _ramvec[255] = 0; | ||
79 | |||
80 | _ramvec[2] = buserr; | ||
81 | _ramvec[32] = system_call; | ||
82 | |||
83 | #ifdef TRAP_DBG_INTERRUPT | ||
84 | _ramvec[12] = dbginterrupt; | ||
85 | #endif | ||
86 | } | ||
87 | |||
88 | /***************************************************************************/ | ||
89 | |||
90 | void coldfire_reset(void) | ||
91 | { | ||
92 | HARD_RESET_NOW(); | ||
93 | } | ||
94 | |||
95 | /***************************************************************************/ | ||
diff --git a/arch/m68knommu/platform/5407/Makefile b/arch/m68knommu/platform/5407/Makefile new file mode 100644 index 000000000000..91b2f495dd39 --- /dev/null +++ b/arch/m68knommu/platform/5407/Makefile | |||
@@ -0,0 +1,20 @@ | |||
1 | # | ||
2 | # Makefile for the m68knommu linux kernel. | ||
3 | # | ||
4 | |||
5 | # | ||
6 | # If you want to play with the HW breakpoints then you will | ||
7 | # need to add define this, which will give you a stack backtrace | ||
8 | # on the console port whenever a DBG interrupt occurs. You have to | ||
9 | # set up you HW breakpoints to trigger a DBG interrupt: | ||
10 | # | ||
11 | # EXTRA_CFLAGS += -DTRAP_DBG_INTERRUPT | ||
12 | # EXTRA_AFLAGS += -DTRAP_DBG_INTERRUPT | ||
13 | # | ||
14 | |||
15 | ifdef CONFIG_FULLDEBUG | ||
16 | AFLAGS += -DDEBUGGER_COMPATIBLE_CACHE=1 | ||
17 | endif | ||
18 | |||
19 | obj-y := config.o | ||
20 | |||
diff --git a/arch/m68knommu/platform/5407/config.c b/arch/m68knommu/platform/5407/config.c new file mode 100644 index 000000000000..f7c9018b85a7 --- /dev/null +++ b/arch/m68knommu/platform/5407/config.c | |||
@@ -0,0 +1,127 @@ | |||
1 | /***************************************************************************/ | ||
2 | |||
3 | /* | ||
4 | * linux/arch/m68knommu/platform/5407/config.c | ||
5 | * | ||
6 | * Copyright (C) 1999-2002, Greg Ungerer (gerg@snapgear.com) | ||
7 | * Copyright (C) 2000, Lineo (www.lineo.com) | ||
8 | */ | ||
9 | |||
10 | /***************************************************************************/ | ||
11 | |||
12 | #include <linux/config.h> | ||
13 | #include <linux/kernel.h> | ||
14 | #include <linux/sched.h> | ||
15 | #include <linux/param.h> | ||
16 | #include <linux/init.h> | ||
17 | #include <linux/interrupt.h> | ||
18 | #include <asm/irq.h> | ||
19 | #include <asm/dma.h> | ||
20 | #include <asm/traps.h> | ||
21 | #include <asm/machdep.h> | ||
22 | #include <asm/coldfire.h> | ||
23 | #include <asm/mcftimer.h> | ||
24 | #include <asm/mcfsim.h> | ||
25 | #include <asm/mcfdma.h> | ||
26 | |||
27 | /***************************************************************************/ | ||
28 | |||
29 | void coldfire_tick(void); | ||
30 | void coldfire_timer_init(irqreturn_t (*handler)(int, void *, struct pt_regs *)); | ||
31 | unsigned long coldfire_timer_offset(void); | ||
32 | void coldfire_trap_init(void); | ||
33 | void coldfire_reset(void); | ||
34 | |||
35 | extern unsigned int mcf_timervector; | ||
36 | extern unsigned int mcf_profilevector; | ||
37 | extern unsigned int mcf_timerlevel; | ||
38 | |||
39 | /***************************************************************************/ | ||
40 | |||
41 | /* | ||
42 | * DMA channel base address table. | ||
43 | */ | ||
44 | unsigned int dma_base_addr[MAX_M68K_DMA_CHANNELS] = { | ||
45 | MCF_MBAR + MCFDMA_BASE0, | ||
46 | MCF_MBAR + MCFDMA_BASE1, | ||
47 | MCF_MBAR + MCFDMA_BASE2, | ||
48 | MCF_MBAR + MCFDMA_BASE3, | ||
49 | }; | ||
50 | |||
51 | unsigned int dma_device_address[MAX_M68K_DMA_CHANNELS]; | ||
52 | |||
53 | /***************************************************************************/ | ||
54 | |||
55 | void mcf_autovector(unsigned int vec) | ||
56 | { | ||
57 | volatile unsigned char *mbar; | ||
58 | |||
59 | if ((vec >= 25) && (vec <= 31)) { | ||
60 | mbar = (volatile unsigned char *) MCF_MBAR; | ||
61 | vec = 0x1 << (vec - 24); | ||
62 | *(mbar + MCFSIM_AVR) |= vec; | ||
63 | mcf_setimr(mcf_getimr() & ~vec); | ||
64 | } | ||
65 | } | ||
66 | |||
67 | /***************************************************************************/ | ||
68 | |||
69 | void mcf_settimericr(unsigned int timer, unsigned int level) | ||
70 | { | ||
71 | volatile unsigned char *icrp; | ||
72 | unsigned int icr, imr; | ||
73 | |||
74 | if (timer <= 2) { | ||
75 | switch (timer) { | ||
76 | case 2: icr = MCFSIM_TIMER2ICR; imr = MCFSIM_IMR_TIMER2; break; | ||
77 | default: icr = MCFSIM_TIMER1ICR; imr = MCFSIM_IMR_TIMER1; break; | ||
78 | } | ||
79 | |||
80 | icrp = (volatile unsigned char *) (MCF_MBAR + icr); | ||
81 | *icrp = MCFSIM_ICR_AUTOVEC | (level << 2) | MCFSIM_ICR_PRI3; | ||
82 | mcf_setimr(mcf_getimr() & ~imr); | ||
83 | } | ||
84 | } | ||
85 | |||
86 | /***************************************************************************/ | ||
87 | |||
88 | int mcf_timerirqpending(int timer) | ||
89 | { | ||
90 | unsigned int imr = 0; | ||
91 | |||
92 | switch (timer) { | ||
93 | case 1: imr = MCFSIM_IMR_TIMER1; break; | ||
94 | case 2: imr = MCFSIM_IMR_TIMER2; break; | ||
95 | default: break; | ||
96 | } | ||
97 | return (mcf_getipr() & imr); | ||
98 | } | ||
99 | |||
100 | /***************************************************************************/ | ||
101 | |||
102 | void config_BSP(char *commandp, int size) | ||
103 | { | ||
104 | mcf_setimr(MCFSIM_IMR_MASKALL); | ||
105 | |||
106 | #if defined(CONFIG_BOOTPARAM) | ||
107 | strncpy(commandp, CONFIG_BOOTPARAM_STRING, size); | ||
108 | commandp[size-1] = 0; | ||
109 | #else | ||
110 | memset(commandp, 0, size); | ||
111 | #endif | ||
112 | |||
113 | #if defined(CONFIG_CLEOPATRA) | ||
114 | /* Different timer setup - to prevent device clash */ | ||
115 | mcf_timervector = 30; | ||
116 | mcf_profilevector = 31; | ||
117 | mcf_timerlevel = 6; | ||
118 | #endif | ||
119 | |||
120 | mach_sched_init = coldfire_timer_init; | ||
121 | mach_tick = coldfire_tick; | ||
122 | mach_gettimeoffset = coldfire_timer_offset; | ||
123 | mach_trap_init = coldfire_trap_init; | ||
124 | mach_reset = coldfire_reset; | ||
125 | } | ||
126 | |||
127 | /***************************************************************************/ | ||
diff --git a/arch/m68knommu/platform/68328/Makefile b/arch/m68knommu/platform/68328/Makefile new file mode 100644 index 000000000000..1b3b719e4479 --- /dev/null +++ b/arch/m68knommu/platform/68328/Makefile | |||
@@ -0,0 +1,21 @@ | |||
1 | # | ||
2 | # Makefile for arch/m68knommu/platform/68328. | ||
3 | # | ||
4 | |||
5 | head-y = head-$(MODEL).o | ||
6 | head-$(CONFIG_PILOT) = head-pilot.o | ||
7 | head-$(CONFIG_DRAGEN2) = head-de2.o | ||
8 | |||
9 | obj-y += entry.o ints.o timers.o | ||
10 | obj-$(CONFIG_M68328) += config.o | ||
11 | |||
12 | extra-y := head.o | ||
13 | extra-$(CONFIG_M68328) += bootlogo.rh head.o | ||
14 | |||
15 | $(obj)/bootlogo.rh: $(src)/bootlogo.h | ||
16 | perl $(src)/bootlogo.pl < $(src)/bootlogo.h > $(obj)/bootlogo.rh | ||
17 | |||
18 | $(obj)/head.o: $(obj)/$(head-y) | ||
19 | ln -sf $(head-y) $(obj)/head.o | ||
20 | |||
21 | clean-files := $(obj)/bootlogo.rh $(obj)/head.o $(head-y) | ||
diff --git a/arch/m68knommu/platform/68328/bootlogo.h b/arch/m68knommu/platform/68328/bootlogo.h new file mode 100644 index 000000000000..67bc2c17386e --- /dev/null +++ b/arch/m68knommu/platform/68328/bootlogo.h | |||
@@ -0,0 +1,270 @@ | |||
1 | #define bootlogo_width 160 | ||
2 | #define bootlogo_height 160 | ||
3 | static unsigned char bootlogo_bits[] = { | ||
4 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x01, 0x00, 0x00, 0x00, | ||
5 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
6 | 0x00, 0x00, 0x40, 0x55, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
7 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x55, | ||
8 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
9 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
10 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
11 | 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
12 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, | ||
13 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
14 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
15 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
16 | 0x00, 0x10, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
17 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, | ||
18 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
19 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
20 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
21 | 0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
22 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x20, 0x00, 0x00, | ||
23 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
24 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
25 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
26 | 0x80, 0x08, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, | ||
27 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x08, 0x00, 0x00, | ||
28 | 0x00, 0xff, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
29 | 0x00, 0x00, 0x00, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0xf8, 0x80, 0x0f, | ||
30 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
31 | 0x50, 0x04, 0x00, 0x00, 0x00, 0x78, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, | ||
32 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x03, 0x00, 0x00, | ||
33 | 0x00, 0x78, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
34 | 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, | ||
35 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x40, | ||
36 | 0xa8, 0x02, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
37 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x70, 0x28, 0x01, 0x00, 0x00, | ||
38 | 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
39 | 0x00, 0x20, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, | ||
40 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x70, | ||
41 | 0x54, 0x01, 0x00, 0x00, 0x00, 0x3e, 0x80, 0x01, 0x3a, 0x78, 0x80, 0x0e, | ||
42 | 0x50, 0xc0, 0x03, 0x0e, 0x00, 0x20, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, | ||
43 | 0x00, 0x3e, 0xf0, 0x83, 0x1f, 0xfc, 0xe0, 0x0f, 0x78, 0xf8, 0x87, 0x1f, | ||
44 | 0x00, 0x18, 0x00, 0x30, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x1e, 0xf8, 0xc3, | ||
45 | 0x1f, 0xfc, 0xe0, 0x0f, 0x78, 0xf8, 0x87, 0x0f, 0x00, 0x20, 0x00, 0x10, | ||
46 | 0x55, 0x00, 0x00, 0x00, 0x00, 0x1e, 0xc0, 0x03, 0x9f, 0xf3, 0x80, 0x0f, | ||
47 | 0x78, 0x80, 0xc7, 0x0e, 0x00, 0x18, 0x00, 0x20, 0xaa, 0x00, 0x00, 0x00, | ||
48 | 0x00, 0x1e, 0xe0, 0x03, 0x9f, 0xf1, 0x80, 0x07, 0x78, 0x80, 0x67, 0x00, | ||
49 | 0x00, 0x24, 0x00, 0x18, 0x55, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xe0, 0x01, | ||
50 | 0x5e, 0xf0, 0x80, 0x07, 0x3c, 0x00, 0x2f, 0x00, 0x00, 0x14, 0x00, 0x20, | ||
51 | 0xaa, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xe0, 0x01, 0x7f, 0xf0, 0x80, 0x07, | ||
52 | 0x3c, 0x00, 0x3f, 0x00, 0x00, 0x08, 0x00, 0x18, 0x55, 0x00, 0x00, 0x00, | ||
53 | 0x00, 0x0f, 0xe0, 0x00, 0x3f, 0xf0, 0xc0, 0x03, 0x1e, 0x00, 0x1f, 0x00, | ||
54 | 0x00, 0x14, 0x00, 0x28, 0xaa, 0x00, 0x00, 0x00, 0x80, 0x0f, 0xf0, 0x00, | ||
55 | 0x1f, 0xf0, 0xc0, 0x03, 0x1f, 0x00, 0x1f, 0x00, 0x00, 0x04, 0x00, 0x0c, | ||
56 | 0x54, 0x00, 0x00, 0x00, 0x80, 0x07, 0x78, 0x00, 0x1f, 0x78, 0xc0, 0x03, | ||
57 | 0x1f, 0x00, 0x1e, 0x00, 0x00, 0x0a, 0x00, 0x12, 0xa8, 0x00, 0x00, 0x00, | ||
58 | 0x80, 0x07, 0x78, 0x00, 0x1f, 0x78, 0xe0, 0x03, 0x1f, 0x00, 0x1f, 0x00, | ||
59 | 0x00, 0x04, 0x00, 0x0a, 0x54, 0x00, 0x00, 0x00, 0x80, 0x07, 0x78, 0x80, | ||
60 | 0x0f, 0x78, 0xe0, 0x03, 0x1f, 0x00, 0x1e, 0x00, 0x00, 0x0a, 0x00, 0x08, | ||
61 | 0x50, 0x01, 0x00, 0x00, 0x84, 0x03, 0x78, 0x80, 0x07, 0x3c, 0xe0, 0xc1, | ||
62 | 0x0f, 0x00, 0x1f, 0x00, 0x00, 0x04, 0x00, 0x06, 0xa8, 0x00, 0x00, 0x00, | ||
63 | 0xc0, 0x03, 0x78, 0xc0, 0x07, 0x3c, 0xe0, 0xc1, 0x0f, 0x00, 0x1f, 0x00, | ||
64 | 0x00, 0x0a, 0x00, 0x08, 0x50, 0x01, 0x00, 0x00, 0xc2, 0x01, 0x38, 0xc0, | ||
65 | 0x07, 0x3c, 0xe0, 0x60, 0x0f, 0x80, 0x1e, 0x00, 0x00, 0x05, 0x00, 0x07, | ||
66 | 0xa0, 0x00, 0x00, 0x80, 0xe0, 0x01, 0x3c, 0xc0, 0x07, 0x3c, 0xf0, 0xa0, | ||
67 | 0x07, 0xc0, 0x1c, 0x00, 0x00, 0x0a, 0x80, 0x08, 0xa0, 0x02, 0x00, 0xa0, | ||
68 | 0xe0, 0x21, 0x1c, 0xc0, 0x03, 0x1c, 0x71, 0x90, 0x47, 0x40, 0x3c, 0x04, | ||
69 | 0x00, 0x05, 0x80, 0x06, 0xa0, 0x02, 0x00, 0x20, 0xe0, 0x31, 0x1e, 0xc3, | ||
70 | 0x03, 0x1e, 0x79, 0x98, 0x47, 0x60, 0x38, 0x04, 0x00, 0x15, 0x40, 0x0a, | ||
71 | 0xa0, 0x0a, 0x00, 0x1a, 0xe0, 0x19, 0x9e, 0xe1, 0x01, 0x9e, 0x78, 0xcc, | ||
72 | 0xa7, 0x32, 0x78, 0x02, 0x80, 0x2a, 0x40, 0x05, 0x80, 0x2a, 0x00, 0x05, | ||
73 | 0xe0, 0x0d, 0x9e, 0xe0, 0x01, 0xde, 0x78, 0xc6, 0x97, 0x1b, 0x78, 0x03, | ||
74 | 0x80, 0x52, 0x30, 0x0a, 0x00, 0x95, 0xd2, 0x0a, 0xe0, 0x0f, 0xfe, 0xe0, | ||
75 | 0x00, 0x7e, 0xf8, 0x87, 0x9f, 0x0f, 0xf8, 0x01, 0x00, 0xa1, 0x0e, 0x15, | ||
76 | 0x80, 0x55, 0x55, 0x01, 0xe0, 0x01, 0x3c, 0xf0, 0x00, 0x3c, 0xf0, 0x80, | ||
77 | 0x8f, 0x0f, 0x70, 0x00, 0x00, 0x81, 0x02, 0x14, 0x00, 0x54, 0x55, 0x00, | ||
78 | 0xc0, 0x01, 0x3c, 0x00, 0x00, 0x0c, 0x60, 0x00, 0x07, 0x03, 0x70, 0x00, | ||
79 | 0x80, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
80 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, | ||
81 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
82 | 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
83 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
84 | 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
85 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, | ||
86 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
87 | 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
88 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
89 | 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
90 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, | ||
91 | 0x00, 0x00, 0x40, 0x01, 0x00, 0x11, 0x09, 0x00, 0x04, 0x00, 0x01, 0x00, | ||
92 | 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, | ||
93 | 0x00, 0x20, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
94 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x49, 0x32, 0x49, 0x49, 0x91, | ||
95 | 0x24, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
96 | 0x00, 0x00, 0x20, 0x49, 0x0a, 0x09, 0xc9, 0x92, 0x14, 0x81, 0x00, 0x00, | ||
97 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x49, | ||
98 | 0x18, 0x01, 0x49, 0x92, 0x0c, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
99 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x49, 0x30, 0x01, 0x49, 0x92, | ||
100 | 0x14, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
101 | 0x00, 0x00, 0x08, 0x69, 0x22, 0x09, 0x49, 0xd2, 0x24, 0x24, 0x00, 0x00, | ||
102 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x51, | ||
103 | 0x1a, 0x09, 0x49, 0xa2, 0x44, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
104 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, 0x00, 0x00, | ||
105 | 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
106 | 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
107 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
108 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
109 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
110 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
111 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
112 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
113 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
114 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
115 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, | ||
116 | 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
117 | 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x87, 0x08, 0x00, 0x00, 0x00, | ||
118 | 0xf2, 0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0xf0, 0x00, 0x08, 0x00, 0x00, 0x00, | ||
119 | 0x00, 0x00, 0x40, 0x88, 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x09, 0x09, | ||
120 | 0x09, 0x01, 0x10, 0x01, 0x08, 0x00, 0x00, 0x00, 0x00, 0x40, 0x24, 0x80, | ||
121 | 0x88, 0x86, 0x48, 0x04, 0x09, 0x08, 0x01, 0x01, 0x09, 0x01, 0x10, 0x71, | ||
122 | 0x88, 0x66, 0x00, 0x00, 0x00, 0x40, 0x24, 0x80, 0x88, 0x89, 0x48, 0x84, | ||
123 | 0x08, 0x08, 0x01, 0x01, 0x09, 0x01, 0x10, 0x89, 0x88, 0x99, 0x00, 0x00, | ||
124 | 0x00, 0x40, 0x24, 0x80, 0x88, 0x88, 0x88, 0x82, 0xf8, 0xf0, 0xe0, 0x80, | ||
125 | 0xf0, 0xf8, 0x13, 0x81, 0x88, 0x88, 0x00, 0x00, 0x00, 0x40, 0x24, 0x80, | ||
126 | 0x88, 0x88, 0x08, 0x81, 0x08, 0x09, 0x01, 0x41, 0x08, 0x01, 0xf0, 0xf0, | ||
127 | 0x88, 0x88, 0x00, 0x00, 0x00, 0x40, 0x24, 0x80, 0x88, 0x88, 0x88, 0x42, | ||
128 | 0x08, 0x09, 0x01, 0x21, 0x08, 0x01, 0x10, 0x88, 0x88, 0x88, 0x00, 0x00, | ||
129 | 0x00, 0x40, 0x46, 0x88, 0x88, 0x88, 0x4c, 0x44, 0x08, 0x09, 0x09, 0x11, | ||
130 | 0x08, 0x01, 0x10, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x80, 0x85, 0x87, | ||
131 | 0x88, 0x08, 0x4b, 0x24, 0xf0, 0xf0, 0xf0, 0xf8, 0xf1, 0x00, 0x10, 0x70, | ||
132 | 0x89, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, | ||
133 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
134 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
135 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
136 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
137 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
138 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
139 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
140 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
141 | 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
142 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x7f, 0x00, 0x00, 0x00, | ||
143 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
144 | 0x00, 0x00, 0x00, 0xf8, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
145 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, | ||
146 | 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
147 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x0f, 0x00, 0x00, | ||
148 | 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, | ||
149 | 0x00, 0x00, 0x00, 0xff, 0x3f, 0x0f, 0x00, 0x00, 0x08, 0x02, 0x04, 0x00, | ||
150 | 0x00, 0x00, 0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, | ||
151 | 0xff, 0x1f, 0x00, 0x00, 0x48, 0x62, 0xc4, 0x31, 0x4a, 0x18, 0x3c, 0x03, | ||
152 | 0x21, 0x45, 0x92, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x1f, 0x00, 0x00, | ||
153 | 0x48, 0x92, 0x24, 0x48, 0xb6, 0x24, 0x88, 0x04, 0x21, 0x4b, 0x92, 0x00, | ||
154 | 0x00, 0x00, 0x80, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xa8, 0xf2, 0x24, 0x48, | ||
155 | 0x92, 0x3c, 0x88, 0x04, 0x21, 0x49, 0x62, 0x00, 0x00, 0x00, 0x80, 0xff, | ||
156 | 0xff, 0x3f, 0x00, 0x00, 0x10, 0x11, 0x24, 0x48, 0x92, 0x04, 0x88, 0x04, | ||
157 | 0x21, 0x49, 0x62, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x3f, 0x00, 0x00, | ||
158 | 0x10, 0x11, 0x24, 0x48, 0x92, 0x04, 0x88, 0x04, 0x21, 0x49, 0x93, 0x00, | ||
159 | 0x00, 0x00, 0x80, 0xff, 0xcf, 0x7e, 0x00, 0x00, 0x10, 0xe1, 0xc4, 0x31, | ||
160 | 0x92, 0x38, 0x30, 0x03, 0x2f, 0x89, 0x92, 0x00, 0x00, 0x00, 0x80, 0xe3, | ||
161 | 0x07, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
162 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc1, 0x03, 0x7e, 0x00, 0x00, | ||
163 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
164 | 0x00, 0x00, 0x80, 0xc9, 0x23, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
165 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x95, | ||
166 | 0x33, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
167 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xdd, 0xfb, 0x7e, 0x00, 0x00, | ||
168 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
169 | 0x00, 0x00, 0x80, 0x1d, 0xf8, 0x7e, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, | ||
170 | 0x02, 0x00, 0x40, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x9b, | ||
171 | 0x70, 0x7e, 0x00, 0x00, 0x08, 0x00, 0xe0, 0x00, 0x02, 0x00, 0x47, 0x80, | ||
172 | 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x80, 0x03, 0x00, 0x7e, 0x00, 0x00, | ||
173 | 0x3c, 0xa3, 0x20, 0x31, 0x52, 0x02, 0x49, 0xcc, 0x3f, 0xa3, 0x94, 0x08, | ||
174 | 0x00, 0x00, 0x00, 0x27, 0x02, 0x7e, 0x00, 0x00, 0x88, 0xe4, 0x20, 0x41, | ||
175 | 0xb2, 0x05, 0x49, 0x90, 0x88, 0xe4, 0x6c, 0x09, 0x00, 0x00, 0x00, 0x01, | ||
176 | 0x00, 0x7e, 0x00, 0x00, 0x88, 0x24, 0xe0, 0x70, 0x92, 0x04, 0x47, 0x9c, | ||
177 | 0x88, 0x24, 0x24, 0x09, 0x00, 0x00, 0x00, 0x13, 0x48, 0x7e, 0x00, 0x00, | ||
178 | 0x88, 0x24, 0x20, 0x48, 0x92, 0x04, 0x41, 0x92, 0x88, 0x24, 0x24, 0x01, | ||
179 | 0x00, 0x00, 0x00, 0x43, 0x00, 0xfe, 0x00, 0x00, 0x88, 0x24, 0x20, 0x48, | ||
180 | 0x92, 0x04, 0x41, 0x92, 0x88, 0x24, 0x24, 0x09, 0x00, 0x00, 0x00, 0x07, | ||
181 | 0x94, 0xce, 0x00, 0x00, 0x08, 0x23, 0x20, 0xb0, 0x92, 0x04, 0x41, 0x2c, | ||
182 | 0x0b, 0x23, 0x24, 0x09, 0x00, 0x00, 0x00, 0x49, 0x02, 0xce, 0x01, 0x00, | ||
183 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
184 | 0x00, 0x00, 0x00, 0x11, 0x08, 0xdc, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
185 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, | ||
186 | 0x01, 0xfc, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
187 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0xf8, 0x07, 0x00, | ||
188 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
189 | 0x00, 0x00, 0xc0, 0x01, 0x00, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
190 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, | ||
191 | 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
192 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0xf0, 0x1f, 0x00, | ||
193 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
194 | 0x00, 0x00, 0x70, 0x00, 0x00, 0xe0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
195 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, | ||
196 | 0x00, 0xe0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
197 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0xe0, 0x7f, 0x00, | ||
198 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
199 | 0x00, 0x00, 0x3c, 0x00, 0x00, 0xe0, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
200 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, | ||
201 | 0x00, 0xc0, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
202 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0xc0, 0xff, 0x01, | ||
203 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
204 | 0x00, 0x00, 0x1f, 0x00, 0x00, 0x80, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, | ||
205 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, | ||
206 | 0x00, 0x80, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
207 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x07, | ||
208 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
209 | 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, | ||
210 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, | ||
211 | 0x00, 0x00, 0xfe, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, | ||
212 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, 0xfe, 0x0f, | ||
213 | 0x00, 0x00, 0x80, 0x08, 0x00, 0x00, 0x05, 0x00, 0x00, 0x80, 0x08, 0x00, | ||
214 | 0x00, 0xc0, 0x03, 0x00, 0x78, 0x00, 0xfe, 0x0f, 0x00, 0x00, 0x40, 0x10, | ||
215 | 0x12, 0x10, 0x05, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, | ||
216 | 0x84, 0x00, 0xfe, 0x0f, 0x00, 0x00, 0x20, 0x26, 0x0a, 0x10, 0x9d, 0x39, | ||
217 | 0xa6, 0xb2, 0x0a, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x02, 0x00, 0xfe, 0x0f, | ||
218 | 0x00, 0x00, 0x20, 0x21, 0x06, 0x28, 0x25, 0x4a, 0xa9, 0x8a, 0x09, 0x00, | ||
219 | 0x00, 0xe0, 0x01, 0x22, 0x02, 0x00, 0xfc, 0x1f, 0x00, 0x00, 0x20, 0x21, | ||
220 | 0x0e, 0x38, 0xa5, 0x4b, 0xa9, 0xb2, 0x09, 0x00, 0x00, 0xf0, 0x01, 0x22, | ||
221 | 0x02, 0x00, 0xfc, 0x1f, 0x00, 0x00, 0x20, 0x21, 0x12, 0x44, 0xa5, 0x4a, | ||
222 | 0x49, 0xa1, 0x0a, 0x00, 0x00, 0xf8, 0x01, 0x22, 0x02, 0x00, 0xfc, 0x1f, | ||
223 | 0x00, 0x00, 0x20, 0x26, 0x52, 0x44, 0x9d, 0x4d, 0x46, 0x99, 0x0a, 0x00, | ||
224 | 0x00, 0xfc, 0x01, 0x22, 0x02, 0x00, 0xfc, 0x1f, 0x00, 0x00, 0x40, 0x10, | ||
225 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x01, 0xb2, | ||
226 | 0x84, 0x00, 0xfc, 0x1f, 0x00, 0x00, 0x80, 0x08, 0x00, 0x00, 0x00, 0x00, | ||
227 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x01, 0x6e, 0x78, 0x00, 0xfc, 0x1f, | ||
228 | 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
229 | 0x00, 0xfc, 0x01, 0x02, 0x00, 0x00, 0xfc, 0x1f, 0x00, 0x00, 0x00, 0x00, | ||
230 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x01, 0x02, | ||
231 | 0x00, 0x00, 0xfe, 0x1f, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, | ||
232 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x06, 0x00, 0x00, 0xfc, 0x0f, | ||
233 | 0x00, 0x00, 0x80, 0x08, 0x00, 0x00, 0x20, 0x01, 0x02, 0x00, 0x00, 0x00, | ||
234 | 0x00, 0x24, 0x06, 0x00, 0x00, 0x00, 0xfc, 0x07, 0x00, 0x00, 0x40, 0x10, | ||
235 | 0x1e, 0x20, 0x90, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, | ||
236 | 0x00, 0x80, 0xfc, 0x03, 0x00, 0x00, 0x20, 0x26, 0x22, 0x20, 0xf9, 0x89, | ||
237 | 0x32, 0xe7, 0x08, 0x00, 0x00, 0x92, 0x38, 0x00, 0x00, 0x00, 0xfc, 0x01, | ||
238 | 0x00, 0x00, 0x20, 0x21, 0x22, 0xa0, 0x92, 0x88, 0x4a, 0x29, 0x15, 0x00, | ||
239 | 0x00, 0x00, 0x78, 0x00, 0x00, 0x40, 0xfa, 0x04, 0x00, 0x00, 0x20, 0x21, | ||
240 | 0x22, 0xa0, 0x93, 0x88, 0x4a, 0x29, 0x1d, 0x00, 0x00, 0x11, 0xf2, 0x00, | ||
241 | 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x20, 0x21, 0x22, 0xa8, 0x90, 0x88, | ||
242 | 0x4a, 0x29, 0x05, 0x00, 0x48, 0x40, 0xf0, 0x01, 0x00, 0x80, 0x14, 0x04, | ||
243 | 0x00, 0x00, 0x20, 0x26, 0x9e, 0x10, 0x93, 0x78, 0x32, 0x29, 0x19, 0x00, | ||
244 | 0x00, 0x09, 0xe0, 0x03, 0x00, 0x00, 0x80, 0x10, 0x00, 0x00, 0x40, 0x10, | ||
245 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0xc5, 0x03, | ||
246 | 0x00, 0x40, 0x22, 0x00, 0x00, 0x00, 0x80, 0x08, 0x00, 0x00, 0x00, 0x00, | ||
247 | 0x00, 0x00, 0x00, 0x00, 0x40, 0x04, 0xc0, 0x07, 0x00, 0x20, 0x08, 0x04, | ||
248 | 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
249 | 0x08, 0x50, 0x90, 0x03, 0x00, 0xb0, 0x00, 0x41, 0x00, 0x00, 0x00, 0x00, | ||
250 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, | ||
251 | 0x00, 0x38, 0x22, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
252 | 0x00, 0x00, 0x00, 0x00, 0x48, 0x04, 0x44, 0x00, 0x00, 0x3c, 0x08, 0x00, | ||
253 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
254 | 0x00, 0x20, 0x00, 0x00, 0x00, 0xbf, 0x40, 0x42, 0x00, 0x00, 0x00, 0x00, | ||
255 | 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x00, 0x00, 0x24, 0x80, 0x48, 0x02, | ||
256 | 0xc0, 0x1f, 0x00, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4e, 0x00, | ||
257 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x05, 0xf0, 0x3f, 0x09, 0x00, | ||
258 | 0x00, 0x10, 0x24, 0x48, 0x10, 0x12, 0x41, 0x52, 0x24, 0x09, 0x46, 0x71, | ||
259 | 0x90, 0x20, 0x02, 0xfc, 0xff, 0x1f, 0x80, 0x22, 0x00, 0x90, 0x24, 0x49, | ||
260 | 0x12, 0x92, 0x40, 0xb2, 0x24, 0x09, 0xc9, 0x49, 0x04, 0x80, 0x90, 0xfc, | ||
261 | 0xff, 0xbf, 0x24, 0x00, 0x00, 0x90, 0x24, 0x49, 0x12, 0x92, 0x40, 0x92, | ||
262 | 0x24, 0x06, 0x49, 0x48, 0x50, 0x0a, 0x02, 0xfe, 0xff, 0x3f, 0x00, 0x05, | ||
263 | 0x00, 0x50, 0xa5, 0x4a, 0x15, 0x92, 0x40, 0x92, 0x24, 0x06, 0x49, 0x48, | ||
264 | 0x80, 0x40, 0x48, 0xfe, 0xff, 0x3f, 0x49, 0x00, 0x00, 0x20, 0x42, 0x84, | ||
265 | 0x88, 0x1a, 0x41, 0x92, 0x34, 0x49, 0x49, 0x68, 0x00, 0x38, 0x10, 0x07, | ||
266 | 0x00, 0x60, 0x80, 0x00, 0x00, 0x20, 0x42, 0x84, 0x88, 0x14, 0x4e, 0x92, | ||
267 | 0x28, 0x49, 0x46, 0x50, 0x00, 0x80, 0x83, 0x01, 0x00, 0xa0, 0x6a, 0x00, | ||
268 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, | ||
269 | 0x00, 0x00, 0xfc, 0x00, 0x00, 0xc0, 0x3b, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
270 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, }; | ||
diff --git a/arch/m68knommu/platform/68328/bootlogo.pl b/arch/m68knommu/platform/68328/bootlogo.pl new file mode 100644 index 000000000000..b04ae3f50da5 --- /dev/null +++ b/arch/m68knommu/platform/68328/bootlogo.pl | |||
@@ -0,0 +1,10 @@ | |||
1 | |||
2 | $_ = join("", <>); | ||
3 | |||
4 | s/(0x[0-9a-f]{2})/sprintf("0x%.2x",ord(pack("b8",unpack("B8",chr(hex($1))))))/gei; | ||
5 | |||
6 | s/^ / .byte /gm; | ||
7 | s/[,};]+$//gm; | ||
8 | s/^static.*//gm; | ||
9 | |||
10 | print $_; | ||
diff --git a/arch/m68knommu/platform/68328/config.c b/arch/m68knommu/platform/68328/config.c new file mode 100644 index 000000000000..fd7c93f86481 --- /dev/null +++ b/arch/m68knommu/platform/68328/config.c | |||
@@ -0,0 +1,125 @@ | |||
1 | /* | ||
2 | * linux/arch/$(ARCH)/platform/$(PLATFORM)/config.c | ||
3 | * | ||
4 | * Copyright (C) 1993 Hamish Macdonald | ||
5 | * Copyright (C) 1999 D. Jeff Dionne | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General Public | ||
8 | * License. See the file COPYING in the main directory of this archive | ||
9 | * for more details. | ||
10 | * | ||
11 | * VZ Support/Fixes Evan Stawnyczy <e@lineo.ca> | ||
12 | */ | ||
13 | |||
14 | #include <asm/dbg.h> | ||
15 | #include <stdarg.h> | ||
16 | #include <linux/config.h> | ||
17 | #include <linux/types.h> | ||
18 | #include <linux/kernel.h> | ||
19 | #include <linux/mm.h> | ||
20 | #include <linux/tty.h> | ||
21 | #include <linux/console.h> | ||
22 | #include <linux/interrupt.h> | ||
23 | #include <asm/current.h> | ||
24 | |||
25 | #include <asm/setup.h> | ||
26 | #include <asm/system.h> | ||
27 | #include <asm/pgtable.h> | ||
28 | #include <asm/irq.h> | ||
29 | #include <asm/machdep.h> | ||
30 | #include <asm/MC68328.h> | ||
31 | |||
32 | |||
33 | void BSP_sched_init(irqreturn_t (*timer_routine)(int, void *, struct pt_regs *)) | ||
34 | { | ||
35 | |||
36 | #ifdef CONFIG_XCOPILOT_BUGS | ||
37 | /* | ||
38 | * The only thing I know is that CLK32 is not available on Xcopilot | ||
39 | * I have little idea about what frequency SYSCLK has on Xcopilot. | ||
40 | * The values for prescaler and compare registers were simply | ||
41 | * taken from the original source | ||
42 | */ | ||
43 | |||
44 | /* Restart mode, Enable int, SYSCLK, Enable timer */ | ||
45 | TCTL2 = TCTL_OM | TCTL_IRQEN | TCTL_CLKSOURCE_SYSCLK | TCTL_TEN; | ||
46 | /* Set prescaler */ | ||
47 | TPRER2 = 2; | ||
48 | /* Set compare register */ | ||
49 | TCMP2 = 0xd7e4; | ||
50 | #else | ||
51 | /* Restart mode, Enable int, 32KHz, Enable timer */ | ||
52 | TCTL2 = TCTL_OM | TCTL_IRQEN | TCTL_CLKSOURCE_32KHZ | TCTL_TEN; | ||
53 | /* Set prescaler (Divide 32KHz by 32)*/ | ||
54 | TPRER2 = 31; | ||
55 | /* Set compare register 32Khz / 32 / 10 = 100 */ | ||
56 | TCMP2 = 10; | ||
57 | #endif | ||
58 | |||
59 | request_irq(TMR2_IRQ_NUM, timer_routine, IRQ_FLG_LOCK, "timer", NULL); | ||
60 | } | ||
61 | |||
62 | void BSP_tick(void) | ||
63 | { | ||
64 | /* Reset Timer2 */ | ||
65 | TSTAT2 &= 0; | ||
66 | } | ||
67 | |||
68 | unsigned long BSP_gettimeoffset (void) | ||
69 | { | ||
70 | return 0; | ||
71 | } | ||
72 | |||
73 | void BSP_gettod (int *yearp, int *monp, int *dayp, | ||
74 | int *hourp, int *minp, int *secp) | ||
75 | { | ||
76 | } | ||
77 | |||
78 | int BSP_hwclk(int op, struct hwclk_time *t) | ||
79 | { | ||
80 | if (!op) { | ||
81 | /* read */ | ||
82 | } else { | ||
83 | /* write */ | ||
84 | } | ||
85 | return 0; | ||
86 | } | ||
87 | |||
88 | int BSP_set_clock_mmss (unsigned long nowtime) | ||
89 | { | ||
90 | #if 0 | ||
91 | short real_seconds = nowtime % 60, real_minutes = (nowtime / 60) % 60; | ||
92 | |||
93 | tod->second1 = real_seconds / 10; | ||
94 | tod->second2 = real_seconds % 10; | ||
95 | tod->minute1 = real_minutes / 10; | ||
96 | tod->minute2 = real_minutes % 10; | ||
97 | #endif | ||
98 | return 0; | ||
99 | } | ||
100 | |||
101 | void BSP_reset (void) | ||
102 | { | ||
103 | local_irq_disable(); | ||
104 | asm volatile ("moveal #0x10c00000, %a0;\n\t" | ||
105 | "moveb #0, 0xFFFFF300;\n\t" | ||
106 | "moveal 0(%a0), %sp;\n\t" | ||
107 | "moveal 4(%a0), %a0;\n\t" | ||
108 | "jmp (%a0);"); | ||
109 | } | ||
110 | |||
111 | void config_BSP(char *command, int len) | ||
112 | { | ||
113 | printk(KERN_INFO "\n68328 support D. Jeff Dionne <jeff@uclinux.org>\n"); | ||
114 | printk(KERN_INFO "68328 support Kenneth Albanowski <kjahds@kjshds.com>\n"); | ||
115 | printk(KERN_INFO "68328/Pilot support Bernhard Kuhn <kuhn@lpr.e-technik.tu-muenchen.de>\n"); | ||
116 | |||
117 | mach_sched_init = BSP_sched_init; | ||
118 | mach_tick = BSP_tick; | ||
119 | mach_gettimeoffset = BSP_gettimeoffset; | ||
120 | mach_gettod = BSP_gettod; | ||
121 | mach_hwclk = NULL; | ||
122 | mach_set_clock_mmss = NULL; | ||
123 | mach_reset = BSP_reset; | ||
124 | *command = '\0'; | ||
125 | } | ||
diff --git a/arch/m68knommu/platform/68328/entry.S b/arch/m68knommu/platform/68328/entry.S new file mode 100644 index 000000000000..0f5d1fe8eb5f --- /dev/null +++ b/arch/m68knommu/platform/68328/entry.S | |||
@@ -0,0 +1,276 @@ | |||
1 | /* | ||
2 | * linux/arch/m68knommu/platform/68328/entry.S | ||
3 | * | ||
4 | * Copyright (C) 1991, 1992 Linus Torvalds | ||
5 | * | ||
6 | * This file is subject to the terms and conditions of the GNU General Public | ||
7 | * License. See the file README.legal in the main directory of this archive | ||
8 | * for more details. | ||
9 | * | ||
10 | * Linux/m68k support by Hamish Macdonald | ||
11 | */ | ||
12 | |||
13 | #include <linux/config.h> | ||
14 | #include <linux/sys.h> | ||
15 | #include <linux/linkage.h> | ||
16 | #include <asm/thread_info.h> | ||
17 | #include <asm/unistd.h> | ||
18 | #include <asm/errno.h> | ||
19 | #include <asm/setup.h> | ||
20 | #include <asm/segment.h> | ||
21 | #include <asm/traps.h> | ||
22 | #include <asm/asm-offsets.h> | ||
23 | #include <asm/entry.h> | ||
24 | |||
25 | .text | ||
26 | |||
27 | .globl system_call | ||
28 | .globl resume | ||
29 | .globl ret_from_exception | ||
30 | .globl ret_from_signal | ||
31 | .globl sys_call_table | ||
32 | .globl ret_from_interrupt | ||
33 | .globl bad_interrupt | ||
34 | .globl inthandler1 | ||
35 | .globl inthandler2 | ||
36 | .globl inthandler3 | ||
37 | .globl inthandler4 | ||
38 | .globl inthandler5 | ||
39 | .globl inthandler6 | ||
40 | .globl inthandler7 | ||
41 | |||
42 | badsys: | ||
43 | movel #-ENOSYS,%sp@(PT_D0) | ||
44 | jra ret_from_exception | ||
45 | |||
46 | do_trace: | ||
47 | movel #-ENOSYS,%sp@(PT_D0) /* needed for strace*/ | ||
48 | subql #4,%sp | ||
49 | SAVE_SWITCH_STACK | ||
50 | jbsr syscall_trace | ||
51 | RESTORE_SWITCH_STACK | ||
52 | addql #4,%sp | ||
53 | movel %sp@(PT_ORIG_D0),%d1 | ||
54 | movel #-ENOSYS,%d0 | ||
55 | cmpl #NR_syscalls,%d1 | ||
56 | jcc 1f | ||
57 | lsl #2,%d1 | ||
58 | lea sys_call_table, %a0 | ||
59 | jbsr %a0@(%d1) | ||
60 | |||
61 | 1: movel %d0,%sp@(PT_D0) /* save the return value */ | ||
62 | subql #4,%sp /* dummy return address */ | ||
63 | SAVE_SWITCH_STACK | ||
64 | jbsr syscall_trace | ||
65 | |||
66 | ret_from_signal: | ||
67 | RESTORE_SWITCH_STACK | ||
68 | addql #4,%sp | ||
69 | jra ret_from_exception | ||
70 | |||
71 | ENTRY(system_call) | ||
72 | SAVE_ALL | ||
73 | |||
74 | /* save top of frame*/ | ||
75 | pea %sp@ | ||
76 | jbsr set_esp0 | ||
77 | addql #4,%sp | ||
78 | |||
79 | movel %sp@(PT_ORIG_D0),%d0 | ||
80 | |||
81 | movel %sp,%d1 /* get thread_info pointer */ | ||
82 | andl #0xffffe000,%d1 | ||
83 | movel %d1,%a2 | ||
84 | btst #TIF_SYSCALL_TRACE,%a2@(TI_FLAGS) | ||
85 | jne do_trace | ||
86 | cmpl #NR_syscalls,%d0 | ||
87 | jcc badsys | ||
88 | lsl #2,%d0 | ||
89 | lea sys_call_table,%a0 | ||
90 | movel %a0@(%d0), %a0 | ||
91 | jbsr %a0@ | ||
92 | movel %d0,%sp@(PT_D0) /* save the return value*/ | ||
93 | |||
94 | ret_from_exception: | ||
95 | btst #5,%sp@(PT_SR) /* check if returning to kernel*/ | ||
96 | jeq Luser_return /* if so, skip resched, signals*/ | ||
97 | |||
98 | Lkernel_return: | ||
99 | RESTORE_ALL | ||
100 | |||
101 | Luser_return: | ||
102 | /* only allow interrupts when we are really the last one on the*/ | ||
103 | /* kernel stack, otherwise stack overflow can occur during*/ | ||
104 | /* heavy interrupt load*/ | ||
105 | andw #ALLOWINT,%sr | ||
106 | |||
107 | movel %sp,%d1 /* get thread_info pointer */ | ||
108 | andl #0xffffe000,%d1 | ||
109 | movel %d1,%a2 | ||
110 | move %a2@(TI_FLAGS),%d1 /* thread_info->flags */ | ||
111 | andl #_TIF_WORK_MASK,%d1 | ||
112 | jne Lwork_to_do | ||
113 | RESTORE_ALL | ||
114 | |||
115 | Lwork_to_do: | ||
116 | movel %a2@(TI_FLAGS),%d1 /* thread_info->flags */ | ||
117 | btst #TIF_NEED_RESCHED,%d1 | ||
118 | jne reschedule | ||
119 | |||
120 | Lsignal_return: | ||
121 | subql #4,%sp /* dummy return address*/ | ||
122 | SAVE_SWITCH_STACK | ||
123 | pea %sp@(SWITCH_STACK_SIZE) | ||
124 | clrl %sp@- | ||
125 | bsrw do_signal | ||
126 | addql #8,%sp | ||
127 | RESTORE_SWITCH_STACK | ||
128 | addql #4,%sp | ||
129 | Lreturn: | ||
130 | RESTORE_ALL | ||
131 | |||
132 | /* | ||
133 | * This is the main interrupt handler, responsible for calling process_int() | ||
134 | */ | ||
135 | inthandler1: | ||
136 | SAVE_ALL | ||
137 | addql #1,local_irq_count /* put exception # in d0*/ | ||
138 | movew %sp@(PT_VECTOR), %d0 | ||
139 | and #0x3ff, %d0 | ||
140 | |||
141 | movel %sp,%sp@- | ||
142 | movel #65,%sp@- /* put vector # on stack*/ | ||
143 | jbsr process_int /* process the IRQ*/ | ||
144 | 3: addql #8,%sp /* pop parameters off stack*/ | ||
145 | bra ret_from_interrupt | ||
146 | |||
147 | inthandler2: | ||
148 | SAVE_ALL | ||
149 | addql #1,local_irq_count /* put exception # in d0*/ | ||
150 | movew %sp@(PT_VECTOR), %d0 | ||
151 | and #0x3ff, %d0 | ||
152 | |||
153 | movel %sp,%sp@- | ||
154 | movel #66,%sp@- /* put vector # on stack*/ | ||
155 | jbsr process_int /* process the IRQ*/ | ||
156 | 3: addql #8,%sp /* pop parameters off stack*/ | ||
157 | bra ret_from_interrupt | ||
158 | |||
159 | inthandler3: | ||
160 | SAVE_ALL | ||
161 | addql #1,local_irq_count /* put exception # in d0*/ | ||
162 | movew %sp@(PT_VECTOR), %d0 | ||
163 | and #0x3ff, %d0 | ||
164 | |||
165 | movel %sp,%sp@- | ||
166 | movel #67,%sp@- /* put vector # on stack*/ | ||
167 | jbsr process_int /* process the IRQ*/ | ||
168 | 3: addql #8,%sp /* pop parameters off stack*/ | ||
169 | bra ret_from_interrupt | ||
170 | |||
171 | inthandler4: | ||
172 | SAVE_ALL | ||
173 | addql #1,local_irq_count /* put exception # in d0*/ | ||
174 | movew %sp@(PT_VECTOR), %d0 | ||
175 | and #0x3ff, %d0 | ||
176 | |||
177 | movel %sp,%sp@- | ||
178 | movel #68,%sp@- /* put vector # on stack*/ | ||
179 | jbsr process_int /* process the IRQ*/ | ||
180 | 3: addql #8,%sp /* pop parameters off stack*/ | ||
181 | bra ret_from_interrupt | ||
182 | |||
183 | inthandler5: | ||
184 | SAVE_ALL | ||
185 | addql #1,local_irq_count /* put exception # in d0*/ | ||
186 | movew %sp@(PT_VECTOR), %d0 | ||
187 | and #0x3ff, %d0 | ||
188 | |||
189 | movel %sp,%sp@- | ||
190 | movel #69,%sp@- /* put vector # on stack*/ | ||
191 | jbsr process_int /* process the IRQ*/ | ||
192 | 3: addql #8,%sp /* pop parameters off stack*/ | ||
193 | bra ret_from_interrupt | ||
194 | |||
195 | inthandler6: | ||
196 | SAVE_ALL | ||
197 | addql #1,local_irq_count /* put exception # in d0*/ | ||
198 | movew %sp@(PT_VECTOR), %d0 | ||
199 | and #0x3ff, %d0 | ||
200 | |||
201 | movel %sp,%sp@- | ||
202 | movel #70,%sp@- /* put vector # on stack*/ | ||
203 | jbsr process_int /* process the IRQ*/ | ||
204 | 3: addql #8,%sp /* pop parameters off stack*/ | ||
205 | bra ret_from_interrupt | ||
206 | |||
207 | inthandler7: | ||
208 | SAVE_ALL | ||
209 | addql #1,local_irq_count /* put exception # in d0*/ | ||
210 | movew %sp@(PT_VECTOR), %d0 | ||
211 | and #0x3ff, %d0 | ||
212 | |||
213 | movel %sp,%sp@- | ||
214 | movel #71,%sp@- /* put vector # on stack*/ | ||
215 | jbsr process_int /* process the IRQ*/ | ||
216 | 3: addql #8,%sp /* pop parameters off stack*/ | ||
217 | bra ret_from_interrupt | ||
218 | |||
219 | inthandler: | ||
220 | SAVE_ALL | ||
221 | addql #1,local_irq_count /* put exception # in d0*/ | ||
222 | movew %sp@(PT_VECTOR), %d0 | ||
223 | and #0x3ff, %d0 | ||
224 | |||
225 | movel %sp,%sp@- | ||
226 | movel %d0,%sp@- /* put vector # on stack*/ | ||
227 | jbsr process_int /* process the IRQ*/ | ||
228 | 3: addql #8,%sp /* pop parameters off stack*/ | ||
229 | bra ret_from_interrupt | ||
230 | |||
231 | ret_from_interrupt: | ||
232 | subql #1,local_irq_count | ||
233 | jeq 1f | ||
234 | 2: | ||
235 | RESTORE_ALL | ||
236 | 1: | ||
237 | moveb %sp@(PT_SR), %d0 | ||
238 | and #7, %d0 | ||
239 | jhi 2b | ||
240 | |||
241 | /* check if we need to do software interrupts */ | ||
242 | movel local_irq_count,%d0 | ||
243 | jeq ret_from_exception | ||
244 | |||
245 | pea ret_from_exception | ||
246 | jra do_softirq | ||
247 | |||
248 | |||
249 | /* | ||
250 | * Handler for uninitialized and spurious interrupts. | ||
251 | */ | ||
252 | ENTRY(bad_interrupt) | ||
253 | addql #1,num_spurious | ||
254 | rte | ||
255 | |||
256 | /* | ||
257 | * Beware - when entering resume, prev (the current task) is | ||
258 | * in a0, next (the new task) is in a1,so don't change these | ||
259 | * registers until their contents are no longer needed. | ||
260 | */ | ||
261 | ENTRY(resume) | ||
262 | movel %a0,%d1 /* save prev thread in d1 */ | ||
263 | movew %sr,%a0@(TASK_THREAD+THREAD_SR) /* save sr */ | ||
264 | movel %usp,%a2 /* save usp */ | ||
265 | movel %a2,%a0@(TASK_THREAD+THREAD_USP) | ||
266 | |||
267 | SAVE_SWITCH_STACK | ||
268 | movel %sp,%a0@(TASK_THREAD+THREAD_KSP) /* save kernel stack */ | ||
269 | movel %a1@(TASK_THREAD+THREAD_KSP),%sp /* restore new thread stack */ | ||
270 | RESTORE_SWITCH_STACK | ||
271 | |||
272 | movel %a1@(TASK_THREAD+THREAD_USP),%a0 /* restore user stack */ | ||
273 | movel %a0,%usp | ||
274 | movew %a1@(TASK_THREAD+THREAD_SR),%sr /* restore thread status reg */ | ||
275 | rts | ||
276 | |||
diff --git a/arch/m68knommu/platform/68328/head-pilot.S b/arch/m68knommu/platform/68328/head-pilot.S new file mode 100644 index 000000000000..c46775fe04be --- /dev/null +++ b/arch/m68knommu/platform/68328/head-pilot.S | |||
@@ -0,0 +1,224 @@ | |||
1 | /* | ||
2 | * linux/arch/m68knommu/platform/68328/head-rom.S | ||
3 | * - A startup file for the MC68328 | ||
4 | * | ||
5 | * Copyright (C) 1998 D. Jeff Dionne <jeff@ryeham.ee.ryerson.ca>, | ||
6 | * Kenneth Albanowski <kjahds@kjahds.com>, | ||
7 | * The Silver Hammer Group, Ltd. | ||
8 | * | ||
9 | * (c) 1995, Dionne & Associates | ||
10 | * (c) 1995, DKG Display Tech. | ||
11 | */ | ||
12 | |||
13 | #define ASSEMBLY | ||
14 | |||
15 | #define IMMED # | ||
16 | #define DBG_PUTC(x) moveb IMMED x, 0xfffff907 | ||
17 | |||
18 | #include <linux/config.h> | ||
19 | |||
20 | .global _stext | ||
21 | .global _start | ||
22 | |||
23 | .global _rambase | ||
24 | .global __ramvec | ||
25 | .global _ramvec | ||
26 | .global _ramstart | ||
27 | .global _ramend | ||
28 | |||
29 | .global penguin_bits | ||
30 | |||
31 | #ifdef CONFIG_PILOT | ||
32 | |||
33 | #define IMR 0xFFFFF304 | ||
34 | |||
35 | .data | ||
36 | .align 16 | ||
37 | |||
38 | penguin_bits: | ||
39 | #include "bootlogo.rh" | ||
40 | |||
41 | #endif | ||
42 | |||
43 | /*****************************************************************************/ | ||
44 | |||
45 | .data | ||
46 | |||
47 | /* | ||
48 | * Set up the usable of RAM stuff. Size of RAM is determined then | ||
49 | * an initial stack set up at the end. | ||
50 | */ | ||
51 | .align 4 | ||
52 | _ramvec: | ||
53 | .long 0 | ||
54 | _rambase: | ||
55 | .long 0 | ||
56 | _ramstart: | ||
57 | .long 0 | ||
58 | _ramend: | ||
59 | .long 0 | ||
60 | |||
61 | .text | ||
62 | |||
63 | _start: | ||
64 | _stext: | ||
65 | |||
66 | |||
67 | #ifdef CONFIG_M68328 | ||
68 | |||
69 | #ifdef CONFIG_PILOT | ||
70 | .byte 0x4e, 0xfa, 0x00, 0x0a /* Jmp +X bytes */ | ||
71 | .byte 'b', 'o', 'o', 't' | ||
72 | .word 10000 | ||
73 | |||
74 | nop | ||
75 | #endif | ||
76 | |||
77 | moveq #0, %d0 | ||
78 | movew %d0, 0xfffff618 /* Watchdog off */ | ||
79 | movel #0x00011f07, 0xfffff114 /* CS A1 Mask */ | ||
80 | |||
81 | movew #0x0800, 0xfffff906 /* Ignore CTS */ | ||
82 | movew #0x010b, 0xfffff902 /* BAUD to 9600 */ | ||
83 | |||
84 | movew #0x2410, 0xfffff200 /* PLLCR */ | ||
85 | movew #0x123, 0xfffff202 /* PLLFSR */ | ||
86 | |||
87 | #ifdef CONFIG_PILOT | ||
88 | moveb #0, 0xfffffA27 /* LCKCON */ | ||
89 | movel #_start, 0xfffffA00 /* LSSA */ | ||
90 | moveb #0xa, 0xfffffA05 /* LVPW */ | ||
91 | movew #0x9f, 0xFFFFFa08 /* LXMAX */ | ||
92 | movew #0x9f, 0xFFFFFa0a /* LYMAX */ | ||
93 | moveb #9, 0xfffffa29 /* LBAR */ | ||
94 | moveb #0, 0xfffffa25 /* LPXCD */ | ||
95 | moveb #0x04, 0xFFFFFa20 /* LPICF */ | ||
96 | moveb #0x58, 0xfffffA27 /* LCKCON */ | ||
97 | moveb #0x85, 0xfffff429 /* PFDATA */ | ||
98 | moveb #0xd8, 0xfffffA27 /* LCKCON */ | ||
99 | moveb #0xc5, 0xfffff429 /* PFDATA */ | ||
100 | moveb #0xd5, 0xfffff429 /* PFDATA */ | ||
101 | |||
102 | moveal #0x00100000, %a3 | ||
103 | moveal #0x100ffc00, %a4 | ||
104 | #endif /* CONFIG_PILOT */ | ||
105 | |||
106 | #endif /* CONFIG_M68328 */ | ||
107 | |||
108 | movew #0x2700, %sr | ||
109 | lea %a4@(-4), %sp | ||
110 | |||
111 | DBG_PUTC('\r') | ||
112 | DBG_PUTC('\n') | ||
113 | DBG_PUTC('A') | ||
114 | |||
115 | moveq #0,%d0 | ||
116 | movew #16384, %d0 /* PLL settle wait loop */ | ||
117 | L0: | ||
118 | subw #1, %d0 | ||
119 | bne L0 | ||
120 | |||
121 | DBG_PUTC('B') | ||
122 | |||
123 | /* Copy command line from beginning of RAM (+16) to end of bss */ | ||
124 | movel #__ramvec, %d7 | ||
125 | addl #16, %d7 | ||
126 | moveal %d7, %a0 | ||
127 | moveal #_ebss, %a1 | ||
128 | lea %a1@(512), %a2 | ||
129 | |||
130 | DBG_PUTC('C') | ||
131 | |||
132 | /* Copy %a0 to %a1 until %a1 == %a2 */ | ||
133 | L2: | ||
134 | movel %a0@+, %d0 | ||
135 | movel %d0, %a1@+ | ||
136 | cmpal %a1, %a2 | ||
137 | bhi L2 | ||
138 | |||
139 | /* Copy data+init segment from ROM to RAM */ | ||
140 | moveal #_etext, %a0 | ||
141 | moveal #_sdata, %a1 | ||
142 | moveal #__init_end, %a2 | ||
143 | |||
144 | DBG_PUTC('D') | ||
145 | |||
146 | /* Copy %a0 to %a1 until %a1 == %a2 */ | ||
147 | LD1: | ||
148 | movel %a0@+, %d0 | ||
149 | movel %d0, %a1@+ | ||
150 | cmpal %a1, %a2 | ||
151 | bhi LD1 | ||
152 | |||
153 | DBG_PUTC('E') | ||
154 | |||
155 | moveal #_sbss, %a0 | ||
156 | moveal #_ebss, %a1 | ||
157 | |||
158 | /* Copy 0 to %a0 until %a0 == %a1 */ | ||
159 | L1: | ||
160 | movel #0, %a0@+ | ||
161 | cmpal %a0, %a1 | ||
162 | bhi L1 | ||
163 | |||
164 | DBG_PUTC('F') | ||
165 | |||
166 | /* Copy command line from end of bss to command line */ | ||
167 | moveal #_ebss, %a0 | ||
168 | moveal #command_line, %a1 | ||
169 | lea %a1@(512), %a2 | ||
170 | |||
171 | DBG_PUTC('G') | ||
172 | |||
173 | /* Copy %a0 to %a1 until %a1 == %a2 */ | ||
174 | L3: | ||
175 | movel %a0@+, %d0 | ||
176 | movel %d0, %a1@+ | ||
177 | cmpal %a1, %a2 | ||
178 | bhi L3 | ||
179 | |||
180 | movel #_sdata, %d0 | ||
181 | movel %d0, _rambase | ||
182 | movel #_ebss, %d0 | ||
183 | movel %d0, _ramstart | ||
184 | |||
185 | movel %a4, %d0 | ||
186 | subl #4096, %d0 /* Reserve 4K of stack */ | ||
187 | moveq #79, %d7 | ||
188 | movel %d0, _ramend | ||
189 | |||
190 | movel %a3, %d0 | ||
191 | movel %d0, rom_length | ||
192 | |||
193 | pea 0 | ||
194 | pea env | ||
195 | pea %sp@(4) | ||
196 | pea 0 | ||
197 | |||
198 | DBG_PUTC('H') | ||
199 | |||
200 | #ifdef CONFIG_PILOT | ||
201 | movel #penguin_bits, 0xFFFFFA00 | ||
202 | moveb #10, 0xFFFFFA05 | ||
203 | movew #160, 0xFFFFFA08 | ||
204 | movew #160, 0xFFFFFA0A | ||
205 | #endif /* CONFIG_PILOT */ | ||
206 | |||
207 | DBG_PUTC('I') | ||
208 | |||
209 | lea init_thread_union, %a0 | ||
210 | lea 0x2000(%a0), %sp | ||
211 | |||
212 | DBG_PUTC('J') | ||
213 | DBG_PUTC('\r') | ||
214 | DBG_PUTC('\n') | ||
215 | |||
216 | jsr start_kernel | ||
217 | _exit: | ||
218 | |||
219 | jmp _exit | ||
220 | |||
221 | |||
222 | .data | ||
223 | env: | ||
224 | .long 0 | ||
diff --git a/arch/m68knommu/platform/68328/head-ram.S b/arch/m68knommu/platform/68328/head-ram.S new file mode 100644 index 000000000000..6bdc9bce43f2 --- /dev/null +++ b/arch/m68knommu/platform/68328/head-ram.S | |||
@@ -0,0 +1,171 @@ | |||
1 | #include <linux/config.h> | ||
2 | |||
3 | .global __main | ||
4 | .global __ram_start | ||
5 | .global __ram_end | ||
6 | .global __rom_start | ||
7 | .global __rom_end | ||
8 | |||
9 | .global _rambase | ||
10 | .global _ramstart | ||
11 | |||
12 | .global splash_bits | ||
13 | .global _start | ||
14 | .global _stext | ||
15 | |||
16 | #define DEBUG | ||
17 | #define ROM_OFFSET 0x10C00000 | ||
18 | #define STACK_GAURD 0x10 | ||
19 | |||
20 | .text | ||
21 | |||
22 | _start: | ||
23 | _stext: | ||
24 | movew #0x2700, %sr /* Exceptions off! */ | ||
25 | |||
26 | #if 0 | ||
27 | /* Init chip registers. uCsimm specific */ | ||
28 | moveb #0x00, 0xfffffb0b /* Watchdog off */ | ||
29 | moveb #0x10, 0xfffff000 /* SCR */ | ||
30 | |||
31 | movew #0x2400, 0xfffff200 /* PLLCR */ | ||
32 | movew #0x0123, 0xfffff202 /* PLLFSR */ | ||
33 | |||
34 | moveb #0x00, 0xfffff40b /* enable chip select */ | ||
35 | moveb #0x00, 0xfffff423 /* enable /DWE */ | ||
36 | moveb #0x08, 0xfffffd0d /* disable hardmap */ | ||
37 | moveb #0x07, 0xfffffd0e /* level 7 interrupt clear */ | ||
38 | |||
39 | movew #0x8600, 0xfffff100 /* FLASH at 0x10c00000 */ | ||
40 | movew #0x018b, 0xfffff110 /* 2Meg, enable, 0ws */ | ||
41 | |||
42 | movew #0x8f00, 0xfffffc00 /* DRAM configuration */ | ||
43 | movew #0x9667, 0xfffffc02 /* DRAM control */ | ||
44 | movew #0x0000, 0xfffff106 /* DRAM at 0x00000000 */ | ||
45 | movew #0x068f, 0xfffff116 /* 8Meg, enable, 0ws */ | ||
46 | |||
47 | moveb #0x40, 0xfffff300 /* IVR */ | ||
48 | movel #0x007FFFFF, %d0 /* IMR */ | ||
49 | movel %d0, 0xfffff304 | ||
50 | |||
51 | moveb 0xfffff42b, %d0 | ||
52 | andb #0xe0, %d0 | ||
53 | moveb %d0, 0xfffff42b | ||
54 | |||
55 | moveb #0x08, 0xfffff907 /* Ignore CTS */ | ||
56 | movew #0x010b, 0xfffff902 /* BAUD to 9600 */ | ||
57 | movew #0xe100, 0xfffff900 /* enable */ | ||
58 | #endif | ||
59 | |||
60 | movew #16384, %d0 /* PLL settle wait loop */ | ||
61 | L0: | ||
62 | subw #1, %d0 | ||
63 | bne L0 | ||
64 | #ifdef DEBUG | ||
65 | moveq #70, %d7 /* 'F' */ | ||
66 | moveb %d7,0xfffff907 /* No absolute addresses */ | ||
67 | pclp1: | ||
68 | movew 0xfffff906, %d7 | ||
69 | andw #0x2000, %d7 | ||
70 | beq pclp1 | ||
71 | #endif /* DEBUG */ | ||
72 | |||
73 | #ifdef CONFIG_RELOCATE | ||
74 | /* Copy me to RAM */ | ||
75 | moveal #__rom_start, %a0 | ||
76 | moveal #__ram_start, %a1 | ||
77 | moveal #_edata, %a2 | ||
78 | |||
79 | /* Copy %a0 to %a1 until %a1 == %a2 */ | ||
80 | LD1: | ||
81 | movel %a0@+, %d0 | ||
82 | movel %d0, %a1@+ | ||
83 | cmpal %a1, %a2 | ||
84 | bhi LD1 | ||
85 | |||
86 | #ifdef DEBUG | ||
87 | moveq #74, %d7 /* 'J' */ | ||
88 | moveb %d7,0xfffff907 /* No absolute addresses */ | ||
89 | pclp2: | ||
90 | movew 0xfffff906, %d7 | ||
91 | andw #0x2000, %d7 | ||
92 | beq pclp2 | ||
93 | #endif /* DEBUG */ | ||
94 | /* jump into the RAM copy */ | ||
95 | jmp ram_jump | ||
96 | ram_jump: | ||
97 | |||
98 | #endif /* CONFIG_RELOCATE */ | ||
99 | |||
100 | #ifdef DEBUG | ||
101 | moveq #82, %d7 /* 'R' */ | ||
102 | moveb %d7,0xfffff907 /* No absolute addresses */ | ||
103 | pclp3: | ||
104 | movew 0xfffff906, %d7 | ||
105 | andw #0x2000, %d7 | ||
106 | beq pclp3 | ||
107 | #endif /* DEBUG */ | ||
108 | moveal #0x007ffff0, %ssp | ||
109 | moveal #_sbss, %a0 | ||
110 | moveal #_ebss, %a1 | ||
111 | |||
112 | /* Copy 0 to %a0 until %a0 >= %a1 */ | ||
113 | L1: | ||
114 | movel #0, %a0@+ | ||
115 | cmpal %a0, %a1 | ||
116 | bhi L1 | ||
117 | |||
118 | #ifdef DEBUG | ||
119 | moveq #67, %d7 /* 'C' */ | ||
120 | jsr putc | ||
121 | #endif /* DEBUG */ | ||
122 | |||
123 | pea 0 | ||
124 | pea env | ||
125 | pea %sp@(4) | ||
126 | pea 0 | ||
127 | |||
128 | #ifdef DEBUG | ||
129 | moveq #70, %d7 /* 'F' */ | ||
130 | jsr putc | ||
131 | #endif /* DEBUG */ | ||
132 | |||
133 | lp: | ||
134 | jsr start_kernel | ||
135 | jmp lp | ||
136 | _exit: | ||
137 | |||
138 | jmp _exit | ||
139 | |||
140 | __main: | ||
141 | /* nothing */ | ||
142 | rts | ||
143 | |||
144 | #ifdef DEBUG | ||
145 | putc: | ||
146 | moveb %d7,0xfffff907 | ||
147 | pclp: | ||
148 | movew 0xfffff906, %d7 | ||
149 | andw #0x2000, %d7 | ||
150 | beq pclp | ||
151 | rts | ||
152 | #endif /* DEBUG */ | ||
153 | |||
154 | .data | ||
155 | |||
156 | /* | ||
157 | * Set up the usable of RAM stuff. Size of RAM is determined then | ||
158 | * an initial stack set up at the end. | ||
159 | */ | ||
160 | .align 4 | ||
161 | _ramvec: | ||
162 | .long 0 | ||
163 | _rambase: | ||
164 | .long 0 | ||
165 | _ramstart: | ||
166 | .long 0 | ||
167 | _ramend: | ||
168 | .long 0 | ||
169 | |||
170 | env: | ||
171 | .long 0 | ||
diff --git a/arch/m68knommu/platform/68328/head-rom.S b/arch/m68knommu/platform/68328/head-rom.S new file mode 100644 index 000000000000..2b448a297011 --- /dev/null +++ b/arch/m68knommu/platform/68328/head-rom.S | |||
@@ -0,0 +1,109 @@ | |||
1 | #include <linux/config.h> | ||
2 | |||
3 | .global _start | ||
4 | .global _stext | ||
5 | |||
6 | .global _rambase | ||
7 | .global _ramvec | ||
8 | .global _ramstart | ||
9 | .global _ramend | ||
10 | |||
11 | #ifdef CONFIG_INIT_LCD | ||
12 | .global splash_bits | ||
13 | #endif | ||
14 | |||
15 | .data | ||
16 | |||
17 | /* | ||
18 | * Set up the usable of RAM stuff. Size of RAM is determined then | ||
19 | * an initial stack set up at the end. | ||
20 | */ | ||
21 | .align 4 | ||
22 | _ramvec: | ||
23 | .long 0 | ||
24 | _rambase: | ||
25 | .long 0 | ||
26 | _ramstart: | ||
27 | .long 0 | ||
28 | _ramend: | ||
29 | .long 0 | ||
30 | |||
31 | #ifdef CONFIG_INIT_LCD | ||
32 | splash_bits: | ||
33 | #include "bootlogo.rh" | ||
34 | #endif | ||
35 | |||
36 | .text | ||
37 | _start: | ||
38 | _stext: movew #0x2700,%sr | ||
39 | #ifdef CONFIG_INIT_LCD | ||
40 | movel #splash_bits, 0xfffffA00 /* LSSA */ | ||
41 | moveb #0x28, 0xfffffA05 /* LVPW */ | ||
42 | movew #0x280, 0xFFFFFa08 /* LXMAX */ | ||
43 | movew #0x1df, 0xFFFFFa0a /* LYMAX */ | ||
44 | moveb #0, 0xfffffa29 /* LBAR */ | ||
45 | moveb #0, 0xfffffa25 /* LPXCD */ | ||
46 | moveb #0x08, 0xFFFFFa20 /* LPICF */ | ||
47 | moveb #0x01, 0xFFFFFA21 /* -ve pol */ | ||
48 | moveb #0x81, 0xfffffA27 /* LCKCON */ | ||
49 | movew #0xff00, 0xfffff412 /* LCD pins */ | ||
50 | #endif | ||
51 | moveal #__ramend-CONFIG_MEMORY_RESERVE*0x100000 - 0x10, %sp | ||
52 | movew #32767, %d0 /* PLL settle wait loop */ | ||
53 | 1: subq #1, %d0 | ||
54 | bne 1b | ||
55 | |||
56 | /* Copy data segment from ROM to RAM */ | ||
57 | moveal #_etext, %a0 | ||
58 | moveal #_sdata, %a1 | ||
59 | moveal #_edata, %a2 | ||
60 | |||
61 | /* Copy %a0 to %a1 until %a1 == %a2 */ | ||
62 | 1: movel %a0@+, %a1@+ | ||
63 | cmpal %a1, %a2 | ||
64 | bhi 1b | ||
65 | |||
66 | moveal #_sbss, %a0 | ||
67 | moveal #_ebss, %a1 | ||
68 | /* Copy 0 to %a0 until %a0 == %a1 */ | ||
69 | |||
70 | 1: | ||
71 | clrl %a0@+ | ||
72 | cmpal %a0, %a1 | ||
73 | bhi 1b | ||
74 | |||
75 | movel #_sdata, %d0 | ||
76 | movel %d0, _rambase | ||
77 | movel #_ebss, %d0 | ||
78 | movel %d0, _ramstart | ||
79 | movel #__ramend-CONFIG_MEMORY_RESERVE*0x100000, %d0 | ||
80 | movel %d0, _ramend | ||
81 | movel #__ramvec, %d0 | ||
82 | movel %d0, _ramvec | ||
83 | |||
84 | /* | ||
85 | * load the current task pointer and stack | ||
86 | */ | ||
87 | lea init_thread_union, %a0 | ||
88 | lea 0x2000(%a0), %sp | ||
89 | |||
90 | 1: jsr start_kernel | ||
91 | bra 1b | ||
92 | _exit: | ||
93 | |||
94 | jmp _exit | ||
95 | |||
96 | |||
97 | putc: | ||
98 | moveb %d7,0xfffff907 | ||
99 | 1: | ||
100 | movew 0xfffff906, %d7 | ||
101 | andw #0x2000, %d7 | ||
102 | beq 1b | ||
103 | rts | ||
104 | |||
105 | .data | ||
106 | env: | ||
107 | .long 0 | ||
108 | .text | ||
109 | |||
diff --git a/arch/m68knommu/platform/68328/ints.c b/arch/m68knommu/platform/68328/ints.c new file mode 100644 index 000000000000..7437217813d2 --- /dev/null +++ b/arch/m68knommu/platform/68328/ints.c | |||
@@ -0,0 +1,285 @@ | |||
1 | /* | ||
2 | * linux/arch/m68knommu/platform/68328/ints.c | ||
3 | * | ||
4 | * This file is subject to the terms and conditions of the GNU General Public | ||
5 | * License. See the file COPYING in the main directory of this archive | ||
6 | * for more details. | ||
7 | * | ||
8 | * Copyright 1996 Roman Zippel | ||
9 | * Copyright 1999 D. Jeff Dionne <jeff@rt-control.com> | ||
10 | */ | ||
11 | |||
12 | #include <linux/module.h> | ||
13 | #include <linux/types.h> | ||
14 | #include <linux/kernel.h> | ||
15 | #include <linux/sched.h> | ||
16 | #include <linux/kernel_stat.h> | ||
17 | #include <linux/errno.h> | ||
18 | |||
19 | #include <asm/system.h> | ||
20 | #include <asm/irq.h> | ||
21 | #include <asm/traps.h> | ||
22 | #include <asm/io.h> | ||
23 | #include <asm/machdep.h> | ||
24 | #include <asm/setup.h> | ||
25 | |||
26 | #if defined(CONFIG_M68328) | ||
27 | #include <asm/MC68328.h> | ||
28 | #elif defined(CONFIG_M68EZ328) | ||
29 | #include <asm/MC68EZ328.h> | ||
30 | #elif defined(CONFIG_M68VZ328) | ||
31 | #include <asm/MC68VZ328.h> | ||
32 | #endif | ||
33 | |||
34 | /* assembler routines */ | ||
35 | asmlinkage void system_call(void); | ||
36 | asmlinkage void buserr(void); | ||
37 | asmlinkage void trap(void); | ||
38 | asmlinkage void trap3(void); | ||
39 | asmlinkage void trap4(void); | ||
40 | asmlinkage void trap5(void); | ||
41 | asmlinkage void trap6(void); | ||
42 | asmlinkage void trap7(void); | ||
43 | asmlinkage void trap8(void); | ||
44 | asmlinkage void trap9(void); | ||
45 | asmlinkage void trap10(void); | ||
46 | asmlinkage void trap11(void); | ||
47 | asmlinkage void trap12(void); | ||
48 | asmlinkage void trap13(void); | ||
49 | asmlinkage void trap14(void); | ||
50 | asmlinkage void trap15(void); | ||
51 | asmlinkage void trap33(void); | ||
52 | asmlinkage void trap34(void); | ||
53 | asmlinkage void trap35(void); | ||
54 | asmlinkage void trap36(void); | ||
55 | asmlinkage void trap37(void); | ||
56 | asmlinkage void trap38(void); | ||
57 | asmlinkage void trap39(void); | ||
58 | asmlinkage void trap40(void); | ||
59 | asmlinkage void trap41(void); | ||
60 | asmlinkage void trap42(void); | ||
61 | asmlinkage void trap43(void); | ||
62 | asmlinkage void trap44(void); | ||
63 | asmlinkage void trap45(void); | ||
64 | asmlinkage void trap46(void); | ||
65 | asmlinkage void trap47(void); | ||
66 | asmlinkage irqreturn_t bad_interrupt(int, void *, struct pt_regs *); | ||
67 | asmlinkage irqreturn_t inthandler(void); | ||
68 | asmlinkage irqreturn_t inthandler1(void); | ||
69 | asmlinkage irqreturn_t inthandler2(void); | ||
70 | asmlinkage irqreturn_t inthandler3(void); | ||
71 | asmlinkage irqreturn_t inthandler4(void); | ||
72 | asmlinkage irqreturn_t inthandler5(void); | ||
73 | asmlinkage irqreturn_t inthandler6(void); | ||
74 | asmlinkage irqreturn_t inthandler7(void); | ||
75 | |||
76 | extern e_vector *_ramvec; | ||
77 | |||
78 | /* The number of spurious interrupts */ | ||
79 | volatile unsigned int num_spurious; | ||
80 | unsigned int local_irq_count[NR_CPUS]; | ||
81 | |||
82 | /* irq node variables for the 32 (potential) on chip sources */ | ||
83 | static irq_node_t int_irq_list[NR_IRQS]; | ||
84 | |||
85 | #if !defined(CONFIG_DRAGEN2) | ||
86 | asm (".global _start, __ramend/n/t" | ||
87 | ".section .romvec/n" | ||
88 | "e_vectors:\n\t" | ||
89 | ".long __ramend-4, _start, buserr, trap, trap, trap, trap, trap\n\t" | ||
90 | ".long trap, trap, trap, trap, trap, trap, trap, trap\n\t" | ||
91 | ".long trap, trap, trap, trap, trap, trap, trap, trap\n\t" | ||
92 | ".long trap, trap, trap, trap\n\t" | ||
93 | ".long trap, trap, trap, trap\n\t" | ||
94 | /*.long inthandler, inthandler, inthandler, inthandler | ||
95 | .long inthandler4, inthandler, inthandler, inthandler */ | ||
96 | /* TRAP #0-15 */ | ||
97 | ".long system_call, trap, trap, trap, trap, trap, trap, trap\n\t" | ||
98 | ".long trap, trap, trap, trap, trap, trap, trap, trap\n\t" | ||
99 | ".long 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n\t" | ||
100 | ".text\n" | ||
101 | "ignore: rte"); | ||
102 | #endif | ||
103 | |||
104 | /* | ||
105 | * This function should be called during kernel startup to initialize | ||
106 | * the IRQ handling routines. | ||
107 | */ | ||
108 | void init_IRQ(void) | ||
109 | { | ||
110 | int i; | ||
111 | |||
112 | /* set up the vectors */ | ||
113 | for (i = 72; i < 256; ++i) | ||
114 | _ramvec[i] = (e_vector) bad_interrupt; | ||
115 | |||
116 | _ramvec[32] = system_call; | ||
117 | |||
118 | _ramvec[65] = (e_vector) inthandler1; | ||
119 | _ramvec[66] = (e_vector) inthandler2; | ||
120 | _ramvec[67] = (e_vector) inthandler3; | ||
121 | _ramvec[68] = (e_vector) inthandler4; | ||
122 | _ramvec[69] = (e_vector) inthandler5; | ||
123 | _ramvec[70] = (e_vector) inthandler6; | ||
124 | _ramvec[71] = (e_vector) inthandler7; | ||
125 | |||
126 | IVR = 0x40; /* Set DragonBall IVR (interrupt base) to 64 */ | ||
127 | |||
128 | /* initialize handlers */ | ||
129 | for (i = 0; i < NR_IRQS; i++) { | ||
130 | int_irq_list[i].handler = bad_interrupt; | ||
131 | int_irq_list[i].flags = IRQ_FLG_STD; | ||
132 | int_irq_list[i].dev_id = NULL; | ||
133 | int_irq_list[i].devname = NULL; | ||
134 | } | ||
135 | |||
136 | /* turn off all interrupts */ | ||
137 | IMR = ~0; | ||
138 | } | ||
139 | |||
140 | int request_irq( | ||
141 | unsigned int irq, | ||
142 | irqreturn_t (*handler)(int, void *, struct pt_regs *), | ||
143 | unsigned long flags, | ||
144 | const char *devname, | ||
145 | void *dev_id) | ||
146 | { | ||
147 | if (irq >= NR_IRQS) { | ||
148 | printk (KERN_ERR "%s: Unknown IRQ %d from %s\n", __FUNCTION__, irq, devname); | ||
149 | return -ENXIO; | ||
150 | } | ||
151 | |||
152 | if (!(int_irq_list[irq].flags & IRQ_FLG_STD)) { | ||
153 | if (int_irq_list[irq].flags & IRQ_FLG_LOCK) { | ||
154 | printk(KERN_ERR "%s: IRQ %d from %s is not replaceable\n", | ||
155 | __FUNCTION__, irq, int_irq_list[irq].devname); | ||
156 | return -EBUSY; | ||
157 | } | ||
158 | if (flags & IRQ_FLG_REPLACE) { | ||
159 | printk(KERN_ERR "%s: %s can't replace IRQ %d from %s\n", | ||
160 | __FUNCTION__, devname, irq, int_irq_list[irq].devname); | ||
161 | return -EBUSY; | ||
162 | } | ||
163 | } | ||
164 | |||
165 | int_irq_list[irq].handler = handler; | ||
166 | int_irq_list[irq].flags = flags; | ||
167 | int_irq_list[irq].dev_id = dev_id; | ||
168 | int_irq_list[irq].devname = devname; | ||
169 | |||
170 | IMR &= ~(1<<irq); | ||
171 | |||
172 | return 0; | ||
173 | } | ||
174 | |||
175 | EXPORT_SYMBOL(request_irq); | ||
176 | |||
177 | void free_irq(unsigned int irq, void *dev_id) | ||
178 | { | ||
179 | if (irq >= NR_IRQS) { | ||
180 | printk (KERN_ERR "%s: Unknown IRQ %d\n", __FUNCTION__, irq); | ||
181 | return; | ||
182 | } | ||
183 | |||
184 | if (int_irq_list[irq].dev_id != dev_id) | ||
185 | printk(KERN_INFO "%s: removing probably wrong IRQ %d from %s\n", | ||
186 | __FUNCTION__, irq, int_irq_list[irq].devname); | ||
187 | |||
188 | int_irq_list[irq].handler = bad_interrupt; | ||
189 | int_irq_list[irq].flags = IRQ_FLG_STD; | ||
190 | int_irq_list[irq].dev_id = NULL; | ||
191 | int_irq_list[irq].devname = NULL; | ||
192 | |||
193 | IMR |= 1<<irq; | ||
194 | } | ||
195 | |||
196 | EXPORT_SYMBOL(free_irq); | ||
197 | |||
198 | int show_interrupts(struct seq_file *p, void *v) | ||
199 | { | ||
200 | int i = *(loff_t *) v; | ||
201 | |||
202 | if (i < NR_IRQS) { | ||
203 | if (int_irq_list[i].devname) { | ||
204 | seq_printf(p, "%3d: %10u ", i, kstat_cpu(0).irqs[i]); | ||
205 | if (int_irq_list[i].flags & IRQ_FLG_LOCK) | ||
206 | seq_printf(p, "L "); | ||
207 | else | ||
208 | seq_printf(p, " "); | ||
209 | seq_printf(p, "%s\n", int_irq_list[i].devname); | ||
210 | } | ||
211 | } | ||
212 | if (i == NR_IRQS) | ||
213 | seq_printf(p, " : %10u spurious\n", num_spurious); | ||
214 | |||
215 | return 0; | ||
216 | } | ||
217 | |||
218 | /* The 68k family did not have a good way to determine the source | ||
219 | * of interrupts until later in the family. The EC000 core does | ||
220 | * not provide the vector number on the stack, we vector everything | ||
221 | * into one vector and look in the blasted mask register... | ||
222 | * This code is designed to be fast, almost constant time, not clean! | ||
223 | */ | ||
224 | void process_int(int vec, struct pt_regs *fp) | ||
225 | { | ||
226 | int irq; | ||
227 | int mask; | ||
228 | |||
229 | unsigned long pend = ISR; | ||
230 | |||
231 | while (pend) { | ||
232 | if (pend & 0x0000ffff) { | ||
233 | if (pend & 0x000000ff) { | ||
234 | if (pend & 0x0000000f) { | ||
235 | mask = 0x00000001; | ||
236 | irq = 0; | ||
237 | } else { | ||
238 | mask = 0x00000010; | ||
239 | irq = 4; | ||
240 | } | ||
241 | } else { | ||
242 | if (pend & 0x00000f00) { | ||
243 | mask = 0x00000100; | ||
244 | irq = 8; | ||
245 | } else { | ||
246 | mask = 0x00001000; | ||
247 | irq = 12; | ||
248 | } | ||
249 | } | ||
250 | } else { | ||
251 | if (pend & 0x00ff0000) { | ||
252 | if (pend & 0x000f0000) { | ||
253 | mask = 0x00010000; | ||
254 | irq = 16; | ||
255 | } else { | ||
256 | mask = 0x00100000; | ||
257 | irq = 20; | ||
258 | } | ||
259 | } else { | ||
260 | if (pend & 0x0f000000) { | ||
261 | mask = 0x01000000; | ||
262 | irq = 24; | ||
263 | } else { | ||
264 | mask = 0x10000000; | ||
265 | irq = 28; | ||
266 | } | ||
267 | } | ||
268 | } | ||
269 | |||
270 | while (! (mask & pend)) { | ||
271 | mask <<=1; | ||
272 | irq++; | ||
273 | } | ||
274 | |||
275 | kstat_cpu(0).irqs[irq]++; | ||
276 | |||
277 | if (int_irq_list[irq].handler) { | ||
278 | int_irq_list[irq].handler(irq, int_irq_list[irq].dev_id, fp); | ||
279 | } else { | ||
280 | printk(KERN_ERR "unregistered interrupt %d!\nTurning it off in the IMR...\n", irq); | ||
281 | IMR |= mask; | ||
282 | } | ||
283 | pend &= ~mask; | ||
284 | } | ||
285 | } | ||
diff --git a/arch/m68knommu/platform/68360/Makefile b/arch/m68knommu/platform/68360/Makefile new file mode 100644 index 000000000000..cf5af73a5789 --- /dev/null +++ b/arch/m68knommu/platform/68360/Makefile | |||
@@ -0,0 +1,10 @@ | |||
1 | # | ||
2 | # Makefile for arch/m68knommu/platform/68360. | ||
3 | # | ||
4 | |||
5 | obj-y := config.o commproc.o entry.o ints.o | ||
6 | |||
7 | extra-y := head.o | ||
8 | |||
9 | $(obj)/head.o: $(obj)/head-$(MODEL).o | ||
10 | ln -sf head-$(MODEL).o $(obj)/head.o | ||
diff --git a/arch/m68knommu/platform/68360/commproc.c b/arch/m68knommu/platform/68360/commproc.c new file mode 100644 index 000000000000..6acb8d294cb6 --- /dev/null +++ b/arch/m68knommu/platform/68360/commproc.c | |||
@@ -0,0 +1,308 @@ | |||
1 | /* | ||
2 | * General Purpose functions for the global management of the | ||
3 | * Communication Processor Module. | ||
4 | * | ||
5 | * Copyright (c) 2000 Michael Leslie <mleslie@lineo.com> | ||
6 | * Copyright (c) 1997 Dan Malek (dmalek@jlc.net) | ||
7 | * | ||
8 | * In addition to the individual control of the communication | ||
9 | * channels, there are a few functions that globally affect the | ||
10 | * communication processor. | ||
11 | * | ||
12 | * Buffer descriptors must be allocated from the dual ported memory | ||
13 | * space. The allocator for that is here. When the communication | ||
14 | * process is reset, we reclaim the memory available. There is | ||
15 | * currently no deallocator for this memory. | ||
16 | * The amount of space available is platform dependent. On the | ||
17 | * MBX, the EPPC software loads additional microcode into the | ||
18 | * communication processor, and uses some of the DP ram for this | ||
19 | * purpose. Current, the first 512 bytes and the last 256 bytes of | ||
20 | * memory are used. Right now I am conservative and only use the | ||
21 | * memory that can never be used for microcode. If there are | ||
22 | * applications that require more DP ram, we can expand the boundaries | ||
23 | * but then we have to be careful of any downloaded microcode. | ||
24 | * | ||
25 | */ | ||
26 | |||
27 | /* | ||
28 | * Michael Leslie <mleslie@lineo.com> | ||
29 | * adapted Dan Malek's ppc8xx drivers to M68360 | ||
30 | * | ||
31 | */ | ||
32 | |||
33 | #include <linux/errno.h> | ||
34 | #include <linux/sched.h> | ||
35 | #include <linux/kernel.h> | ||
36 | #include <linux/param.h> | ||
37 | #include <linux/string.h> | ||
38 | #include <linux/mm.h> | ||
39 | #include <linux/interrupt.h> | ||
40 | #include <asm/irq.h> | ||
41 | #include <asm/m68360.h> | ||
42 | #include <asm/commproc.h> | ||
43 | |||
44 | /* #include <asm/page.h> */ | ||
45 | /* #include <asm/pgtable.h> */ | ||
46 | extern void *_quicc_base; | ||
47 | extern unsigned int system_clock; | ||
48 | |||
49 | |||
50 | static uint dp_alloc_base; /* Starting offset in DP ram */ | ||
51 | static uint dp_alloc_top; /* Max offset + 1 */ | ||
52 | |||
53 | #if 0 | ||
54 | static void *host_buffer; /* One page of host buffer */ | ||
55 | static void *host_end; /* end + 1 */ | ||
56 | #endif | ||
57 | |||
58 | /* struct cpm360_t *cpmp; */ /* Pointer to comm processor space */ | ||
59 | |||
60 | QUICC *pquicc; | ||
61 | /* QUICC *quicc_dpram; */ /* mleslie - temporary; use extern pquicc elsewhere instead */ | ||
62 | |||
63 | |||
64 | /* CPM interrupt vector functions. */ | ||
65 | struct cpm_action { | ||
66 | void (*handler)(void *); | ||
67 | void *dev_id; | ||
68 | }; | ||
69 | static struct cpm_action cpm_vecs[CPMVEC_NR]; | ||
70 | static void cpm_interrupt(int irq, void * dev, struct pt_regs * regs); | ||
71 | static void cpm_error_interrupt(void *); | ||
72 | |||
73 | /* prototypes: */ | ||
74 | void cpm_install_handler(int vec, void (*handler)(), void *dev_id); | ||
75 | void m360_cpm_reset(void); | ||
76 | |||
77 | |||
78 | |||
79 | |||
80 | void m360_cpm_reset() | ||
81 | { | ||
82 | /* pte_t *pte; */ | ||
83 | |||
84 | pquicc = (struct quicc *)(_quicc_base); /* initialized in crt0_rXm.S */ | ||
85 | |||
86 | /* Perform a CPM reset. */ | ||
87 | pquicc->cp_cr = (SOFTWARE_RESET | CMD_FLAG); | ||
88 | |||
89 | /* Wait for CPM to become ready (should be 2 clocks). */ | ||
90 | while (pquicc->cp_cr & CMD_FLAG); | ||
91 | |||
92 | /* On the recommendation of the 68360 manual, p. 7-60 | ||
93 | * - Set sdma interrupt service mask to 7 | ||
94 | * - Set sdma arbitration ID to 4 | ||
95 | */ | ||
96 | pquicc->sdma_sdcr = 0x0740; | ||
97 | |||
98 | |||
99 | /* Claim the DP memory for our use. | ||
100 | */ | ||
101 | dp_alloc_base = CPM_DATAONLY_BASE; | ||
102 | dp_alloc_top = dp_alloc_base + CPM_DATAONLY_SIZE; | ||
103 | |||
104 | |||
105 | /* Set the host page for allocation. | ||
106 | */ | ||
107 | /* host_buffer = host_page_addr; */ | ||
108 | /* host_end = host_page_addr + PAGE_SIZE; */ | ||
109 | |||
110 | /* pte = find_pte(&init_mm, host_page_addr); */ | ||
111 | /* pte_val(*pte) |= _PAGE_NO_CACHE; */ | ||
112 | /* flush_tlb_page(current->mm->mmap, host_buffer); */ | ||
113 | |||
114 | /* Tell everyone where the comm processor resides. | ||
115 | */ | ||
116 | /* cpmp = (cpm360_t *)commproc; */ | ||
117 | } | ||
118 | |||
119 | |||
120 | /* This is called during init_IRQ. We used to do it above, but this | ||
121 | * was too early since init_IRQ was not yet called. | ||
122 | */ | ||
123 | void | ||
124 | cpm_interrupt_init(void) | ||
125 | { | ||
126 | /* Initialize the CPM interrupt controller. | ||
127 | * NOTE THAT pquicc had better have been initialized! | ||
128 | * reference: MC68360UM p. 7-377 | ||
129 | */ | ||
130 | pquicc->intr_cicr = | ||
131 | (CICR_SCD_SCC4 | CICR_SCC_SCC3 | CICR_SCB_SCC2 | CICR_SCA_SCC1) | | ||
132 | (CPM_INTERRUPT << 13) | | ||
133 | CICR_HP_MASK | | ||
134 | (CPM_VECTOR_BASE << 5) | | ||
135 | CICR_SPS; | ||
136 | |||
137 | /* mask all CPM interrupts from reaching the cpu32 core: */ | ||
138 | pquicc->intr_cimr = 0; | ||
139 | |||
140 | |||
141 | /* mles - If I understand correctly, the 360 just pops over to the CPM | ||
142 | * specific vector, obviating the necessity to vector through the IRQ | ||
143 | * whose priority the CPM is set to. This needs a closer look, though. | ||
144 | */ | ||
145 | |||
146 | /* Set our interrupt handler with the core CPU. */ | ||
147 | /* if (request_irq(CPM_INTERRUPT, cpm_interrupt, 0, "cpm", NULL) != 0) */ | ||
148 | /* panic("Could not allocate CPM IRQ!"); */ | ||
149 | |||
150 | /* Install our own error handler. | ||
151 | */ | ||
152 | /* I think we want to hold off on this one for the moment - mles */ | ||
153 | /* cpm_install_handler(CPMVEC_ERROR, cpm_error_interrupt, NULL); */ | ||
154 | |||
155 | /* master CPM interrupt enable */ | ||
156 | /* pquicc->intr_cicr |= CICR_IEN; */ /* no such animal for 360 */ | ||
157 | } | ||
158 | |||
159 | |||
160 | |||
161 | /* CPM interrupt controller interrupt. | ||
162 | */ | ||
163 | static void | ||
164 | cpm_interrupt(int irq, void * dev, struct pt_regs * regs) | ||
165 | { | ||
166 | /* uint vec; */ | ||
167 | |||
168 | /* mles: Note that this stuff is currently being performed by | ||
169 | * M68360_do_irq(int vec, struct pt_regs *fp), in ../ints.c */ | ||
170 | |||
171 | /* figure out the vector */ | ||
172 | /* call that vector's handler */ | ||
173 | /* clear the irq's bit in the service register */ | ||
174 | |||
175 | #if 0 /* old 860 stuff: */ | ||
176 | /* Get the vector by setting the ACK bit and then reading | ||
177 | * the register. | ||
178 | */ | ||
179 | ((volatile immap_t *)IMAP_ADDR)->im_cpic.cpic_civr = 1; | ||
180 | vec = ((volatile immap_t *)IMAP_ADDR)->im_cpic.cpic_civr; | ||
181 | vec >>= 11; | ||
182 | |||
183 | |||
184 | if (cpm_vecs[vec].handler != 0) | ||
185 | (*cpm_vecs[vec].handler)(cpm_vecs[vec].dev_id); | ||
186 | else | ||
187 | ((immap_t *)IMAP_ADDR)->im_cpic.cpic_cimr &= ~(1 << vec); | ||
188 | |||
189 | /* After servicing the interrupt, we have to remove the status | ||
190 | * indicator. | ||
191 | */ | ||
192 | ((immap_t *)IMAP_ADDR)->im_cpic.cpic_cisr |= (1 << vec); | ||
193 | #endif | ||
194 | |||
195 | } | ||
196 | |||
197 | /* The CPM can generate the error interrupt when there is a race condition | ||
198 | * between generating and masking interrupts. All we have to do is ACK it | ||
199 | * and return. This is a no-op function so we don't need any special | ||
200 | * tests in the interrupt handler. | ||
201 | */ | ||
202 | static void | ||
203 | cpm_error_interrupt(void *dev) | ||
204 | { | ||
205 | } | ||
206 | |||
207 | /* Install a CPM interrupt handler. | ||
208 | */ | ||
209 | void | ||
210 | cpm_install_handler(int vec, void (*handler)(), void *dev_id) | ||
211 | { | ||
212 | |||
213 | request_irq(vec, handler, IRQ_FLG_LOCK, "timer", dev_id); | ||
214 | |||
215 | /* if (cpm_vecs[vec].handler != 0) */ | ||
216 | /* printk(KERN_INFO "CPM interrupt %x replacing %x\n", */ | ||
217 | /* (uint)handler, (uint)cpm_vecs[vec].handler); */ | ||
218 | /* cpm_vecs[vec].handler = handler; */ | ||
219 | /* cpm_vecs[vec].dev_id = dev_id; */ | ||
220 | |||
221 | /* ((immap_t *)IMAP_ADDR)->im_cpic.cpic_cimr |= (1 << vec); */ | ||
222 | /* pquicc->intr_cimr |= (1 << vec); */ | ||
223 | |||
224 | } | ||
225 | |||
226 | /* Free a CPM interrupt handler. | ||
227 | */ | ||
228 | void | ||
229 | cpm_free_handler(int vec) | ||
230 | { | ||
231 | cpm_vecs[vec].handler = NULL; | ||
232 | cpm_vecs[vec].dev_id = NULL; | ||
233 | /* ((immap_t *)IMAP_ADDR)->im_cpic.cpic_cimr &= ~(1 << vec); */ | ||
234 | pquicc->intr_cimr &= ~(1 << vec); | ||
235 | } | ||
236 | |||
237 | |||
238 | |||
239 | |||
240 | /* Allocate some memory from the dual ported ram. We may want to | ||
241 | * enforce alignment restrictions, but right now everyone is a good | ||
242 | * citizen. | ||
243 | */ | ||
244 | uint | ||
245 | m360_cpm_dpalloc(uint size) | ||
246 | { | ||
247 | uint retloc; | ||
248 | |||
249 | if ((dp_alloc_base + size) >= dp_alloc_top) | ||
250 | return(CPM_DP_NOSPACE); | ||
251 | |||
252 | retloc = dp_alloc_base; | ||
253 | dp_alloc_base += size; | ||
254 | |||
255 | return(retloc); | ||
256 | } | ||
257 | |||
258 | |||
259 | #if 0 /* mleslie - for now these are simply kmalloc'd */ | ||
260 | /* We also own one page of host buffer space for the allocation of | ||
261 | * UART "fifos" and the like. | ||
262 | */ | ||
263 | uint | ||
264 | m360_cpm_hostalloc(uint size) | ||
265 | { | ||
266 | uint retloc; | ||
267 | |||
268 | if ((host_buffer + size) >= host_end) | ||
269 | return(0); | ||
270 | |||
271 | retloc = host_buffer; | ||
272 | host_buffer += size; | ||
273 | |||
274 | return(retloc); | ||
275 | } | ||
276 | #endif | ||
277 | |||
278 | |||
279 | /* Set a baud rate generator. This needs lots of work. There are | ||
280 | * four BRGs, any of which can be wired to any channel. | ||
281 | * The internal baud rate clock is the system clock divided by 16. | ||
282 | * This assumes the baudrate is 16x oversampled by the uart. | ||
283 | */ | ||
284 | /* #define BRG_INT_CLK (((bd_t *)__res)->bi_intfreq * 1000000) */ | ||
285 | #define BRG_INT_CLK system_clock | ||
286 | #define BRG_UART_CLK (BRG_INT_CLK/16) | ||
287 | |||
288 | void | ||
289 | m360_cpm_setbrg(uint brg, uint rate) | ||
290 | { | ||
291 | volatile uint *bp; | ||
292 | |||
293 | /* This is good enough to get SMCs running..... | ||
294 | */ | ||
295 | /* bp = (uint *)&cpmp->cp_brgc1; */ | ||
296 | bp = (volatile uint *)(&pquicc->brgc[0].l); | ||
297 | bp += brg; | ||
298 | *bp = ((BRG_UART_CLK / rate - 1) << 1) | CPM_BRG_EN; | ||
299 | } | ||
300 | |||
301 | |||
302 | /* | ||
303 | * Local variables: | ||
304 | * c-indent-level: 4 | ||
305 | * c-basic-offset: 4 | ||
306 | * tab-width: 4 | ||
307 | * End: | ||
308 | */ | ||
diff --git a/arch/m68knommu/platform/68360/config.c b/arch/m68knommu/platform/68360/config.c new file mode 100644 index 000000000000..3db244625f0f --- /dev/null +++ b/arch/m68knommu/platform/68360/config.c | |||
@@ -0,0 +1,208 @@ | |||
1 | /* | ||
2 | * linux/arch/m68knommu/platform/68360/config.c | ||
3 | * | ||
4 | * Copyright (c) 2000 Michael Leslie <mleslie@lineo.com> | ||
5 | * Copyright (C) 1993 Hamish Macdonald | ||
6 | * Copyright (C) 1999 D. Jeff Dionne <jeff@uclinux.org> | ||
7 | * | ||
8 | * This file is subject to the terms and conditions of the GNU General Public | ||
9 | * License. See the file COPYING in the main directory of this archive | ||
10 | * for more details. | ||
11 | */ | ||
12 | |||
13 | #include <stdarg.h> | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/types.h> | ||
16 | #include <linux/kernel.h> | ||
17 | #include <linux/mm.h> | ||
18 | #include <linux/tty.h> | ||
19 | #include <linux/console.h> | ||
20 | |||
21 | #include <asm/setup.h> | ||
22 | #include <asm/system.h> | ||
23 | #include <asm/pgtable.h> | ||
24 | #include <asm/irq.h> | ||
25 | #include <asm/machdep.h> | ||
26 | #include <asm/m68360.h> | ||
27 | |||
28 | #ifdef CONFIG_UCQUICC | ||
29 | #include <asm/bootstd.h> | ||
30 | #endif | ||
31 | |||
32 | extern void m360_cpm_reset(void); | ||
33 | |||
34 | // Mask to select if the PLL prescaler is enabled. | ||
35 | #define MCU_PREEN ((unsigned short)(0x0001 << 13)) | ||
36 | |||
37 | #if defined(CONFIG_UCQUICC) | ||
38 | #define OSCILLATOR (unsigned long int)33000000 | ||
39 | #endif | ||
40 | |||
41 | unsigned long int system_clock; | ||
42 | |||
43 | void M68360_init_IRQ(void); | ||
44 | |||
45 | extern QUICC *pquicc; | ||
46 | |||
47 | /* TODO DON"T Hard Code this */ | ||
48 | /* calculate properly using the right PLL and prescaller */ | ||
49 | // unsigned int system_clock = 33000000l; | ||
50 | extern unsigned long int system_clock; //In kernel setup.c | ||
51 | |||
52 | extern void config_M68360_irq(void); | ||
53 | |||
54 | void BSP_sched_init(void (*timer_routine)(int, void *, struct pt_regs *)) | ||
55 | { | ||
56 | unsigned char prescaler; | ||
57 | unsigned short tgcr_save; | ||
58 | int return_value; | ||
59 | |||
60 | #if 0 | ||
61 | /* Restart mode, Enable int, 32KHz, Enable timer */ | ||
62 | TCTL = TCTL_OM | TCTL_IRQEN | TCTL_CLKSOURCE_32KHZ | TCTL_TEN; | ||
63 | /* Set prescaler (Divide 32KHz by 32)*/ | ||
64 | TPRER = 31; | ||
65 | /* Set compare register 32Khz / 32 / 10 = 100 */ | ||
66 | TCMP = 10; | ||
67 | |||
68 | request_irq(IRQ_MACHSPEC | 1, timer_routine, IRQ_FLG_LOCK, "timer", NULL); | ||
69 | #endif | ||
70 | |||
71 | /* General purpose quicc timers: MC68360UM p7-20 */ | ||
72 | |||
73 | /* Set up timer 1 (in [1..4]) to do 100Hz */ | ||
74 | tgcr_save = pquicc->timer_tgcr & 0xfff0; | ||
75 | pquicc->timer_tgcr = tgcr_save; /* stop and reset timer 1 */ | ||
76 | /* pquicc->timer_tgcr |= 0x4444; */ /* halt timers when FREEZE (ie bdm freeze) */ | ||
77 | |||
78 | prescaler = 8; | ||
79 | pquicc->timer_tmr1 = 0x001a | /* or=1, frr=1, iclk=01b */ | ||
80 | (unsigned short)((prescaler - 1) << 8); | ||
81 | |||
82 | pquicc->timer_tcn1 = 0x0000; /* initial count */ | ||
83 | /* calculate interval for 100Hz based on the _system_clock: */ | ||
84 | pquicc->timer_trr1 = (system_clock/ prescaler) / HZ; /* reference count */ | ||
85 | |||
86 | pquicc->timer_ter1 = 0x0003; /* clear timer events */ | ||
87 | |||
88 | /* enable timer 1 interrupt in CIMR */ | ||
89 | // request_irq(IRQ_MACHSPEC | CPMVEC_TIMER1, timer_routine, IRQ_FLG_LOCK, "timer", NULL); | ||
90 | //return_value = request_irq( CPMVEC_TIMER1, timer_routine, IRQ_FLG_LOCK, "timer", NULL); | ||
91 | return_value = request_irq(CPMVEC_TIMER1 , timer_routine, IRQ_FLG_LOCK, | ||
92 | "Timer", NULL); | ||
93 | |||
94 | /* Start timer 1: */ | ||
95 | tgcr_save = (pquicc->timer_tgcr & 0xfff0) | 0x0001; | ||
96 | pquicc->timer_tgcr = tgcr_save; | ||
97 | } | ||
98 | |||
99 | |||
100 | void BSP_tick(void) | ||
101 | { | ||
102 | /* Reset Timer1 */ | ||
103 | /* TSTAT &= 0; */ | ||
104 | |||
105 | pquicc->timer_ter1 = 0x0002; /* clear timer event */ | ||
106 | } | ||
107 | |||
108 | unsigned long BSP_gettimeoffset (void) | ||
109 | { | ||
110 | return 0; | ||
111 | } | ||
112 | |||
113 | void BSP_gettod (int *yearp, int *monp, int *dayp, | ||
114 | int *hourp, int *minp, int *secp) | ||
115 | { | ||
116 | } | ||
117 | |||
118 | int BSP_hwclk(int op, struct hwclk_time *t) | ||
119 | { | ||
120 | if (!op) { | ||
121 | /* read */ | ||
122 | } else { | ||
123 | /* write */ | ||
124 | } | ||
125 | return 0; | ||
126 | } | ||
127 | |||
128 | int BSP_set_clock_mmss (unsigned long nowtime) | ||
129 | { | ||
130 | #if 0 | ||
131 | short real_seconds = nowtime % 60, real_minutes = (nowtime / 60) % 60; | ||
132 | |||
133 | tod->second1 = real_seconds / 10; | ||
134 | tod->second2 = real_seconds % 10; | ||
135 | tod->minute1 = real_minutes / 10; | ||
136 | tod->minute2 = real_minutes % 10; | ||
137 | #endif | ||
138 | return 0; | ||
139 | } | ||
140 | |||
141 | void BSP_reset (void) | ||
142 | { | ||
143 | local_irq_disable(); | ||
144 | asm volatile (" | ||
145 | moveal #_start, %a0; | ||
146 | moveb #0, 0xFFFFF300; | ||
147 | moveal 0(%a0), %sp; | ||
148 | moveal 4(%a0), %a0; | ||
149 | jmp (%a0); | ||
150 | "); | ||
151 | } | ||
152 | |||
153 | unsigned char *scc1_hwaddr; | ||
154 | static int errno; | ||
155 | |||
156 | #if defined (CONFIG_UCQUICC) | ||
157 | _bsc0(char *, getserialnum) | ||
158 | _bsc1(unsigned char *, gethwaddr, int, a) | ||
159 | _bsc1(char *, getbenv, char *, a) | ||
160 | #endif | ||
161 | |||
162 | |||
163 | void config_BSP(char *command, int len) | ||
164 | { | ||
165 | unsigned char *p; | ||
166 | |||
167 | m360_cpm_reset(); | ||
168 | |||
169 | /* Calculate the real system clock value. */ | ||
170 | { | ||
171 | unsigned int local_pllcr = (unsigned int)(pquicc->sim_pllcr); | ||
172 | if( local_pllcr & MCU_PREEN ) // If the prescaler is dividing by 128 | ||
173 | { | ||
174 | int mf = (int)(pquicc->sim_pllcr & 0x0fff); | ||
175 | system_clock = (OSCILLATOR / 128) * (mf + 1); | ||
176 | } | ||
177 | else | ||
178 | { | ||
179 | int mf = (int)(pquicc->sim_pllcr & 0x0fff); | ||
180 | system_clock = (OSCILLATOR) * (mf + 1); | ||
181 | } | ||
182 | } | ||
183 | |||
184 | printk(KERN_INFO "\n68360 QUICC support (C) 2000 Lineo Inc.\n"); | ||
185 | |||
186 | #if defined(CONFIG_UCQUICC) && 0 | ||
187 | printk(KERN_INFO "uCquicc serial string [%s]\n",getserialnum()); | ||
188 | p = scc1_hwaddr = gethwaddr(0); | ||
189 | printk(KERN_INFO "uCquicc hwaddr %.2x:%.2x:%.2x:%.2x:%.2x:%.2x\n", | ||
190 | p[0], p[1], p[2], p[3], p[4], p[5]); | ||
191 | |||
192 | p = getbenv("APPEND"); | ||
193 | if (p) | ||
194 | strcpy(p,command); | ||
195 | else | ||
196 | command[0] = 0; | ||
197 | #else | ||
198 | scc1_hwaddr = "\00\01\02\03\04\05"; | ||
199 | #endif | ||
200 | |||
201 | mach_sched_init = BSP_sched_init; | ||
202 | mach_tick = BSP_tick; | ||
203 | mach_gettimeoffset = BSP_gettimeoffset; | ||
204 | mach_gettod = BSP_gettod; | ||
205 | mach_hwclk = NULL; | ||
206 | mach_set_clock_mmss = NULL; | ||
207 | mach_reset = BSP_reset; | ||
208 | } | ||
diff --git a/arch/m68knommu/platform/68360/entry.S b/arch/m68knommu/platform/68360/entry.S new file mode 100644 index 000000000000..f7bc80a60e0f --- /dev/null +++ b/arch/m68knommu/platform/68360/entry.S | |||
@@ -0,0 +1,184 @@ | |||
1 | /* | ||
2 | * linux/arch/m68knommu/platform/68360/entry.S | ||
3 | * | ||
4 | * Copyright (C) 1991, 1992 Linus Torvalds | ||
5 | * Copyright (C) 2001 SED Systems, a Division of Calian Ltd. | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General Public | ||
8 | * License. See the file README.legal in the main directory of this archive | ||
9 | * for more details. | ||
10 | * | ||
11 | * Linux/m68k support by Hamish Macdonald | ||
12 | * M68360 Port by SED Systems, and Lineo. | ||
13 | */ | ||
14 | |||
15 | #include <linux/config.h> | ||
16 | #include <linux/sys.h> | ||
17 | #include <linux/linkage.h> | ||
18 | #include <asm/thread_info.h> | ||
19 | #include <asm/unistd.h> | ||
20 | #include <asm/errno.h> | ||
21 | #include <asm/setup.h> | ||
22 | #include <asm/segment.h> | ||
23 | #include <asm/traps.h> | ||
24 | #include <asm/asm-offsets.h> | ||
25 | #include <asm/entry.h> | ||
26 | |||
27 | .text | ||
28 | |||
29 | .globl system_call | ||
30 | .globl resume | ||
31 | .globl ret_from_exception | ||
32 | .globl ret_from_signal | ||
33 | .globl sys_call_table | ||
34 | .globl ret_from_interrupt | ||
35 | .globl bad_interrupt | ||
36 | .globl inthandler | ||
37 | |||
38 | badsys: | ||
39 | movel #-ENOSYS,%sp@(PT_D0) | ||
40 | jra ret_from_exception | ||
41 | |||
42 | do_trace: | ||
43 | movel #-ENOSYS,%sp@(PT_D0) /* needed for strace*/ | ||
44 | subql #4,%sp | ||
45 | SAVE_SWITCH_STACK | ||
46 | jbsr syscall_trace | ||
47 | RESTORE_SWITCH_STACK | ||
48 | addql #4,%sp | ||
49 | movel %sp@(PT_ORIG_D0),%d1 | ||
50 | movel #-ENOSYS,%d0 | ||
51 | cmpl #NR_syscalls,%d1 | ||
52 | jcc 1f | ||
53 | lsl #2,%d1 | ||
54 | lea sys_call_table, %a0 | ||
55 | jbsr %a0@(%d1) | ||
56 | |||
57 | 1: movel %d0,%sp@(PT_D0) /* save the return value */ | ||
58 | subql #4,%sp /* dummy return address */ | ||
59 | SAVE_SWITCH_STACK | ||
60 | jbsr syscall_trace | ||
61 | |||
62 | ret_from_signal: | ||
63 | RESTORE_SWITCH_STACK | ||
64 | addql #4,%sp | ||
65 | jra ret_from_exception | ||
66 | |||
67 | ENTRY(system_call) | ||
68 | SAVE_ALL | ||
69 | |||
70 | /* save top of frame*/ | ||
71 | pea %sp@ | ||
72 | jbsr set_esp0 | ||
73 | addql #4,%sp | ||
74 | |||
75 | btst #PF_TRACESYS_BIT,%a2@(TASK_FLAGS+PF_TRACESYS_OFF) | ||
76 | jne do_trace | ||
77 | cmpl #NR_syscalls,%d0 | ||
78 | jcc badsys | ||
79 | lsl #2,%d0 | ||
80 | lea sys_call_table,%a0 | ||
81 | movel %a0@(%d0), %a0 | ||
82 | jbsr %a0@ | ||
83 | movel %d0,%sp@(PT_D0) /* save the return value*/ | ||
84 | |||
85 | ret_from_exception: | ||
86 | btst #5,%sp@(PT_SR) /* check if returning to kernel*/ | ||
87 | jeq Luser_return /* if so, skip resched, signals*/ | ||
88 | |||
89 | Lkernel_return: | ||
90 | RESTORE_ALL | ||
91 | |||
92 | Luser_return: | ||
93 | /* only allow interrupts when we are really the last one on the*/ | ||
94 | /* kernel stack, otherwise stack overflow can occur during*/ | ||
95 | /* heavy interrupt load*/ | ||
96 | andw #ALLOWINT,%sr | ||
97 | |||
98 | movel %sp,%d1 /* get thread_info pointer */ | ||
99 | andl #0xffffe000,%d1 | ||
100 | movel %d1,%a2 | ||
101 | move %a2@(TI_FLAGS),%d1 /* thread_info->flags */ | ||
102 | andl #_TIF_WORK_MASK,%d1 | ||
103 | jne Lwork_to_do | ||
104 | RESTORE_ALL | ||
105 | |||
106 | Lwork_to_do: | ||
107 | movel %a2@(TI_FLAGS),%d1 /* thread_info->flags */ | ||
108 | btst #TIF_NEED_RESCHED,%d1 | ||
109 | jne reschedule | ||
110 | |||
111 | Lsignal_return: | ||
112 | subql #4,%sp /* dummy return address*/ | ||
113 | SAVE_SWITCH_STACK | ||
114 | pea %sp@(SWITCH_STACK_SIZE) | ||
115 | clrl %sp@- | ||
116 | bsrw do_signal | ||
117 | addql #8,%sp | ||
118 | RESTORE_SWITCH_STACK | ||
119 | addql #4,%sp | ||
120 | Lreturn: | ||
121 | RESTORE_ALL | ||
122 | |||
123 | /* | ||
124 | * This is the main interrupt handler, responsible for calling process_int() | ||
125 | */ | ||
126 | inthandler: | ||
127 | SAVE_ALL | ||
128 | addql #1,local_irq_count /* put exception # in d0*/ | ||
129 | movew %sp@(PT_VECTOR), %d0 | ||
130 | and.l #0x3ff, %d0 | ||
131 | lsr.l #0x02, %d0 | ||
132 | |||
133 | movel %sp,%sp@- | ||
134 | movel %d0,%sp@- /* put vector # on stack*/ | ||
135 | jbsr process_int /* process the IRQ*/ | ||
136 | 3: addql #8,%sp /* pop parameters off stack*/ | ||
137 | bra ret_from_interrupt | ||
138 | |||
139 | ret_from_interrupt: | ||
140 | subql #1,local_irq_count | ||
141 | jeq 1f | ||
142 | 2: | ||
143 | RESTORE_ALL | ||
144 | 1: | ||
145 | moveb %sp@(PT_SR), %d0 | ||
146 | and #7, %d0 | ||
147 | jhi 2b | ||
148 | /* check if we need to do software interrupts */ | ||
149 | |||
150 | movel irq_stat+CPUSTAT_SOFTIRQ_PENDING,%d0 | ||
151 | jeq ret_from_exception | ||
152 | |||
153 | pea ret_from_exception | ||
154 | jra do_softirq | ||
155 | |||
156 | |||
157 | /* | ||
158 | * Handler for uninitialized and spurious interrupts. | ||
159 | */ | ||
160 | bad_interrupt: | ||
161 | addql #1,num_spurious | ||
162 | rte | ||
163 | |||
164 | /* | ||
165 | * Beware - when entering resume, prev (the current task) is | ||
166 | * in a0, next (the new task) is in a1,so don't change these | ||
167 | * registers until their contents are no longer needed. | ||
168 | */ | ||
169 | ENTRY(resume) | ||
170 | movel %a0,%d1 /* save prev thread in d1 */ | ||
171 | movew %sr,%a0@(TASK_THREAD+THREAD_SR) /* save sr */ | ||
172 | movel %usp,%a2 /* save usp */ | ||
173 | movel %a2,%a0@(TASK_THREAD+THREAD_USP) | ||
174 | |||
175 | SAVE_SWITCH_STACK | ||
176 | movel %sp,%a0@(TASK_THREAD+THREAD_KSP) /* save kernel stack */ | ||
177 | movel %a1@(TASK_THREAD+THREAD_KSP),%sp /* restore new thread stack */ | ||
178 | RESTORE_SWITCH_STACK | ||
179 | |||
180 | movel %a1@(TASK_THREAD+THREAD_USP),%a0 /* restore user stack */ | ||
181 | movel %a0,%usp | ||
182 | movew %a1@(TASK_THREAD+THREAD_SR),%sr /* restore thread status reg */ | ||
183 | rts | ||
184 | |||
diff --git a/arch/m68knommu/platform/68360/ints.c b/arch/m68knommu/platform/68360/ints.c new file mode 100644 index 000000000000..ba184db1651b --- /dev/null +++ b/arch/m68knommu/platform/68360/ints.c | |||
@@ -0,0 +1,335 @@ | |||
1 | /* | ||
2 | * linux/arch/$(ARCH)/platform/$(PLATFORM)/ints.c | ||
3 | * | ||
4 | * This file is subject to the terms and conditions of the GNU General Public | ||
5 | * License. See the file COPYING in the main directory of this archive | ||
6 | * for more details. | ||
7 | * | ||
8 | * Copyright (c) 2000 Michael Leslie <mleslie@lineo.com> | ||
9 | * Copyright (c) 1996 Roman Zippel | ||
10 | * Copyright (c) 1999 D. Jeff Dionne <jeff@uclinux.org> | ||
11 | */ | ||
12 | |||
13 | #include <linux/config.h> | ||
14 | #include <linux/module.h> | ||
15 | #include <linux/types.h> | ||
16 | #include <linux/kernel.h> | ||
17 | #include <linux/sched.h> | ||
18 | #include <linux/kernel_stat.h> | ||
19 | #include <linux/errno.h> | ||
20 | |||
21 | #include <asm/system.h> | ||
22 | #include <asm/irq.h> | ||
23 | #include <asm/traps.h> | ||
24 | #include <asm/io.h> | ||
25 | #include <asm/machdep.h> | ||
26 | #include <asm/setup.h> | ||
27 | #include <asm/m68360.h> | ||
28 | |||
29 | /* from quicc/commproc.c: */ | ||
30 | extern QUICC *pquicc; | ||
31 | extern void cpm_interrupt_init(void); | ||
32 | |||
33 | #define INTERNAL_IRQS (96) | ||
34 | |||
35 | /* assembler routines */ | ||
36 | asmlinkage void system_call(void); | ||
37 | asmlinkage void buserr(void); | ||
38 | asmlinkage void trap(void); | ||
39 | asmlinkage irqreturn_t bad_interrupt(void); | ||
40 | asmlinkage irqreturn_t inthandler(void); | ||
41 | |||
42 | extern void *_ramvec[]; | ||
43 | |||
44 | /* The number of spurious interrupts */ | ||
45 | volatile unsigned int num_spurious; | ||
46 | unsigned int local_irq_count[NR_CPUS]; | ||
47 | |||
48 | /* irq node variables for the 32 (potential) on chip sources */ | ||
49 | static irq_node_t int_irq_list[INTERNAL_IRQS]; | ||
50 | |||
51 | static short int_irq_ablecount[INTERNAL_IRQS]; | ||
52 | |||
53 | /* | ||
54 | * This function should be called during kernel startup to initialize | ||
55 | * IRQ handling routines. | ||
56 | */ | ||
57 | |||
58 | void init_IRQ(void) | ||
59 | { | ||
60 | int i; | ||
61 | int vba = (CPM_VECTOR_BASE<<4); | ||
62 | |||
63 | /* set up the vectors */ | ||
64 | _ramvec[2] = buserr; | ||
65 | _ramvec[3] = trap; | ||
66 | _ramvec[4] = trap; | ||
67 | _ramvec[5] = trap; | ||
68 | _ramvec[6] = trap; | ||
69 | _ramvec[7] = trap; | ||
70 | _ramvec[8] = trap; | ||
71 | _ramvec[9] = trap; | ||
72 | _ramvec[10] = trap; | ||
73 | _ramvec[11] = trap; | ||
74 | _ramvec[12] = trap; | ||
75 | _ramvec[13] = trap; | ||
76 | _ramvec[14] = trap; | ||
77 | _ramvec[15] = trap; | ||
78 | |||
79 | _ramvec[32] = system_call; | ||
80 | _ramvec[33] = trap; | ||
81 | |||
82 | |||
83 | cpm_interrupt_init(); | ||
84 | |||
85 | /* set up CICR for vector base address and irq level */ | ||
86 | /* irl = 4, hp = 1f - see MC68360UM p 7-377 */ | ||
87 | pquicc->intr_cicr = 0x00e49f00 | vba; | ||
88 | |||
89 | /* CPM interrupt vectors: (p 7-376) */ | ||
90 | _ramvec[vba+CPMVEC_ERROR] = bad_interrupt; /* Error */ | ||
91 | _ramvec[vba+CPMVEC_PIO_PC11] = inthandler; /* pio - pc11 */ | ||
92 | _ramvec[vba+CPMVEC_PIO_PC10] = inthandler; /* pio - pc10 */ | ||
93 | _ramvec[vba+CPMVEC_SMC2] = inthandler; /* smc2/pip */ | ||
94 | _ramvec[vba+CPMVEC_SMC1] = inthandler; /* smc1 */ | ||
95 | _ramvec[vba+CPMVEC_SPI] = inthandler; /* spi */ | ||
96 | _ramvec[vba+CPMVEC_PIO_PC9] = inthandler; /* pio - pc9 */ | ||
97 | _ramvec[vba+CPMVEC_TIMER4] = inthandler; /* timer 4 */ | ||
98 | _ramvec[vba+CPMVEC_RESERVED1] = inthandler; /* reserved */ | ||
99 | _ramvec[vba+CPMVEC_PIO_PC8] = inthandler; /* pio - pc8 */ | ||
100 | _ramvec[vba+CPMVEC_PIO_PC7] = inthandler; /* pio - pc7 */ | ||
101 | _ramvec[vba+CPMVEC_PIO_PC6] = inthandler; /* pio - pc6 */ | ||
102 | _ramvec[vba+CPMVEC_TIMER3] = inthandler; /* timer 3 */ | ||
103 | _ramvec[vba+CPMVEC_RISCTIMER] = inthandler; /* reserved */ | ||
104 | _ramvec[vba+CPMVEC_PIO_PC5] = inthandler; /* pio - pc5 */ | ||
105 | _ramvec[vba+CPMVEC_PIO_PC4] = inthandler; /* pio - pc4 */ | ||
106 | _ramvec[vba+CPMVEC_RESERVED2] = inthandler; /* reserved */ | ||
107 | _ramvec[vba+CPMVEC_RISCTIMER] = inthandler; /* timer table */ | ||
108 | _ramvec[vba+CPMVEC_TIMER2] = inthandler; /* timer 2 */ | ||
109 | _ramvec[vba+CPMVEC_RESERVED3] = inthandler; /* reserved */ | ||
110 | _ramvec[vba+CPMVEC_IDMA2] = inthandler; /* idma 2 */ | ||
111 | _ramvec[vba+CPMVEC_IDMA1] = inthandler; /* idma 1 */ | ||
112 | _ramvec[vba+CPMVEC_SDMA_CB_ERR] = inthandler; /* sdma channel bus error */ | ||
113 | _ramvec[vba+CPMVEC_PIO_PC3] = inthandler; /* pio - pc3 */ | ||
114 | _ramvec[vba+CPMVEC_PIO_PC2] = inthandler; /* pio - pc2 */ | ||
115 | /* _ramvec[vba+CPMVEC_TIMER1] = cpm_isr_timer1; */ /* timer 1 */ | ||
116 | _ramvec[vba+CPMVEC_TIMER1] = inthandler; /* timer 1 */ | ||
117 | _ramvec[vba+CPMVEC_PIO_PC1] = inthandler; /* pio - pc1 */ | ||
118 | _ramvec[vba+CPMVEC_SCC4] = inthandler; /* scc 4 */ | ||
119 | _ramvec[vba+CPMVEC_SCC3] = inthandler; /* scc 3 */ | ||
120 | _ramvec[vba+CPMVEC_SCC2] = inthandler; /* scc 2 */ | ||
121 | _ramvec[vba+CPMVEC_SCC1] = inthandler; /* scc 1 */ | ||
122 | _ramvec[vba+CPMVEC_PIO_PC0] = inthandler; /* pio - pc0 */ | ||
123 | |||
124 | |||
125 | /* turn off all CPM interrupts */ | ||
126 | pquicc->intr_cimr = 0x00000000; | ||
127 | |||
128 | /* initialize handlers */ | ||
129 | for (i = 0; i < INTERNAL_IRQS; i++) { | ||
130 | int_irq_list[i].handler = NULL; | ||
131 | int_irq_list[i].flags = IRQ_FLG_STD; | ||
132 | int_irq_list[i].dev_id = NULL; | ||
133 | int_irq_list[i].devname = NULL; | ||
134 | } | ||
135 | } | ||
136 | |||
137 | #if 0 | ||
138 | void M68360_insert_irq(irq_node_t **list, irq_node_t *node) | ||
139 | { | ||
140 | unsigned long flags; | ||
141 | irq_node_t *cur; | ||
142 | |||
143 | if (!node->dev_id) | ||
144 | printk(KERN_INFO "%s: Warning: dev_id of %s is zero\n", | ||
145 | __FUNCTION__, node->devname); | ||
146 | |||
147 | local_irq_save(flags); | ||
148 | |||
149 | cur = *list; | ||
150 | |||
151 | while (cur) { | ||
152 | list = &cur->next; | ||
153 | cur = cur->next; | ||
154 | } | ||
155 | |||
156 | node->next = cur; | ||
157 | *list = node; | ||
158 | |||
159 | local_irq_restore(flags); | ||
160 | } | ||
161 | |||
162 | void M68360_delete_irq(irq_node_t **list, void *dev_id) | ||
163 | { | ||
164 | unsigned long flags; | ||
165 | irq_node_t *node; | ||
166 | |||
167 | local_irq_save(flags); | ||
168 | |||
169 | for (node = *list; node; list = &node->next, node = *list) { | ||
170 | if (node->dev_id == dev_id) { | ||
171 | *list = node->next; | ||
172 | /* Mark it as free. */ | ||
173 | node->handler = NULL; | ||
174 | local_irq_restore(flags); | ||
175 | return; | ||
176 | } | ||
177 | } | ||
178 | local_irq_restore(flags); | ||
179 | printk (KERN_INFO "%s: tried to remove invalid irq\n", __FUNCTION__); | ||
180 | } | ||
181 | #endif | ||
182 | |||
183 | int request_irq( | ||
184 | unsigned int irq, | ||
185 | irqreturn_t (*handler)(int, void *, struct pt_regs *), | ||
186 | unsigned long flags, | ||
187 | const char *devname, | ||
188 | void *dev_id) | ||
189 | { | ||
190 | int mask = (1<<irq); | ||
191 | |||
192 | irq += (CPM_VECTOR_BASE<<4); | ||
193 | |||
194 | if (irq >= INTERNAL_IRQS) { | ||
195 | printk (KERN_ERR "%s: Unknown IRQ %d from %s\n", __FUNCTION__, irq, devname); | ||
196 | return -ENXIO; | ||
197 | } | ||
198 | |||
199 | if (!(int_irq_list[irq].flags & IRQ_FLG_STD)) { | ||
200 | if (int_irq_list[irq].flags & IRQ_FLG_LOCK) { | ||
201 | printk(KERN_ERR "%s: IRQ %d from %s is not replaceable\n", | ||
202 | __FUNCTION__, irq, int_irq_list[irq].devname); | ||
203 | return -EBUSY; | ||
204 | } | ||
205 | if (flags & IRQ_FLG_REPLACE) { | ||
206 | printk(KERN_ERR "%s: %s can't replace IRQ %d from %s\n", | ||
207 | __FUNCTION__, devname, irq, int_irq_list[irq].devname); | ||
208 | return -EBUSY; | ||
209 | } | ||
210 | } | ||
211 | int_irq_list[irq].handler = handler; | ||
212 | int_irq_list[irq].flags = flags; | ||
213 | int_irq_list[irq].dev_id = dev_id; | ||
214 | int_irq_list[irq].devname = devname; | ||
215 | |||
216 | /* enable in the CIMR */ | ||
217 | if (!int_irq_ablecount[irq]) | ||
218 | pquicc->intr_cimr |= mask; | ||
219 | /* *(volatile unsigned long *)0xfffff304 &= ~(1<<irq); */ | ||
220 | |||
221 | return 0; | ||
222 | } | ||
223 | |||
224 | EXPORT_SYMBOL(request_irq); | ||
225 | |||
226 | void free_irq(unsigned int irq, void *dev_id) | ||
227 | { | ||
228 | if (irq >= INTERNAL_IRQS) { | ||
229 | printk (KERN_ERR "%s: Unknown IRQ %d\n", __FUNCTION__, irq); | ||
230 | return; | ||
231 | } | ||
232 | |||
233 | if (int_irq_list[irq].dev_id != dev_id) | ||
234 | printk(KERN_INFO "%s: removing probably wrong IRQ %d from %s\n", | ||
235 | __FUNCTION__, irq, int_irq_list[irq].devname); | ||
236 | int_irq_list[irq].handler = NULL; | ||
237 | int_irq_list[irq].flags = IRQ_FLG_STD; | ||
238 | int_irq_list[irq].dev_id = NULL; | ||
239 | int_irq_list[irq].devname = NULL; | ||
240 | |||
241 | *(volatile unsigned long *)0xfffff304 |= 1<<irq; | ||
242 | } | ||
243 | |||
244 | EXPORT_SYMBOL(free_irq); | ||
245 | |||
246 | #if 0 | ||
247 | /* | ||
248 | * Enable/disable a particular machine specific interrupt source. | ||
249 | * Note that this may affect other interrupts in case of a shared interrupt. | ||
250 | * This function should only be called for a _very_ short time to change some | ||
251 | * internal data, that may not be changed by the interrupt at the same time. | ||
252 | * int_(enable|disable)_irq calls may also be nested. | ||
253 | */ | ||
254 | void M68360_enable_irq(unsigned int irq) | ||
255 | { | ||
256 | if (irq >= INTERNAL_IRQS) { | ||
257 | printk(KERN_ERR "%s: Unknown IRQ %d\n", __FUNCTION__, irq); | ||
258 | return; | ||
259 | } | ||
260 | |||
261 | if (--int_irq_ablecount[irq]) | ||
262 | return; | ||
263 | |||
264 | /* enable the interrupt */ | ||
265 | *(volatile unsigned long *)0xfffff304 &= ~(1<<irq); | ||
266 | } | ||
267 | |||
268 | void M68360_disable_irq(unsigned int irq) | ||
269 | { | ||
270 | if (irq >= INTERNAL_IRQS) { | ||
271 | printk(KERN_ERR "%s: Unknown IRQ %d\n", __FUNCTION__, irq); | ||
272 | return; | ||
273 | } | ||
274 | |||
275 | if (int_irq_ablecount[irq]++) | ||
276 | return; | ||
277 | |||
278 | /* disable the interrupt */ | ||
279 | *(volatile unsigned long *)0xfffff304 |= 1<<irq; | ||
280 | } | ||
281 | #endif | ||
282 | |||
283 | int show_interrupts(struct seq_file *p, void *v) | ||
284 | { | ||
285 | int i = *(loff_t *) v; | ||
286 | |||
287 | if (i < NR_IRQS) { | ||
288 | if (int_irq_list[i].devname) { | ||
289 | seq_printf(p, "%3d: %10u ", i, kstat_cpu(0).irqs[i]); | ||
290 | if (int_irq_list[i].flags & IRQ_FLG_LOCK) | ||
291 | seq_printf(p, "L "); | ||
292 | else | ||
293 | seq_printf(p, " "); | ||
294 | seq_printf(p, "%s\n", int_irq_list[i].devname); | ||
295 | } | ||
296 | } | ||
297 | if (i == NR_IRQS) | ||
298 | seq_printf(p, " : %10u spurious\n", num_spurious); | ||
299 | |||
300 | return 0; | ||
301 | } | ||
302 | |||
303 | /* The 68k family did not have a good way to determine the source | ||
304 | * of interrupts until later in the family. The EC000 core does | ||
305 | * not provide the vector number on the stack, we vector everything | ||
306 | * into one vector and look in the blasted mask register... | ||
307 | * This code is designed to be fast, almost constant time, not clean! | ||
308 | */ | ||
309 | void process_int(int vec, struct pt_regs *fp) | ||
310 | { | ||
311 | int irq; | ||
312 | int mask; | ||
313 | |||
314 | /* unsigned long pend = *(volatile unsigned long *)0xfffff30c; */ | ||
315 | |||
316 | /* irq = vec + (CPM_VECTOR_BASE<<4); */ | ||
317 | irq = vec; | ||
318 | |||
319 | /* unsigned long pend = *(volatile unsigned long *)pquicc->intr_cipr; */ | ||
320 | |||
321 | /* Bugger all that weirdness. For the moment, I seem to know where I came from; | ||
322 | * vec is passed from a specific ISR, so I'll use it. */ | ||
323 | |||
324 | if (int_irq_list[irq].handler) { | ||
325 | int_irq_list[irq].handler(irq , int_irq_list[irq].dev_id, fp); | ||
326 | kstat_cpu(0).irqs[irq]++; | ||
327 | pquicc->intr_cisr = (1 << vec); /* indicate that irq has been serviced */ | ||
328 | } else { | ||
329 | printk(KERN_ERR "unregistered interrupt %d!\nTurning it off in the CIMR...\n", irq); | ||
330 | /* *(volatile unsigned long *)0xfffff304 |= mask; */ | ||
331 | pquicc->intr_cimr &= ~(1 << vec); | ||
332 | num_spurious += 1; | ||
333 | } | ||
334 | return(IRQ_HANDLED); | ||
335 | } | ||
diff --git a/arch/m68knommu/platform/68EZ328/Makefile b/arch/m68knommu/platform/68EZ328/Makefile new file mode 100644 index 000000000000..ee97735a242c --- /dev/null +++ b/arch/m68knommu/platform/68EZ328/Makefile | |||
@@ -0,0 +1,11 @@ | |||
1 | # | ||
2 | # Makefile for arch/m68knommu/platform/68EZ328. | ||
3 | # | ||
4 | |||
5 | obj-y := config.o | ||
6 | |||
7 | extra-y := bootlogo.rh | ||
8 | |||
9 | $(obj)/bootlogo.rh: $(src)/bootlogo.h | ||
10 | perl $(src)/../68328/bootlogo.pl < $(src)/bootlogo.h \ | ||
11 | > $(obj)/bootlogo.rh | ||
diff --git a/arch/m68knommu/platform/68EZ328/bootlogo.h b/arch/m68knommu/platform/68EZ328/bootlogo.h new file mode 100644 index 000000000000..e842bdae5839 --- /dev/null +++ b/arch/m68knommu/platform/68EZ328/bootlogo.h | |||
@@ -0,0 +1,3204 @@ | |||
1 | #define splash_width 640 | ||
2 | #define splash_height 480 | ||
3 | static unsigned char splash_bits[] = { | ||
4 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
5 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
6 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
7 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
8 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
9 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
10 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
11 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
12 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
13 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
14 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
15 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
16 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
17 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
18 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
19 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
20 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
21 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
22 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
23 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
24 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
25 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
26 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
27 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
28 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
29 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
30 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
31 | 0x00, 0x00, 0x80, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
32 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
33 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
34 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
35 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
36 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
37 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, | ||
38 | 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
39 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
40 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
41 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
42 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
43 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
44 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, | ||
45 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
46 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
47 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
48 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
49 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
50 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
51 | 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
52 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
53 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
54 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
55 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
56 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
57 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, | ||
58 | 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
59 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
60 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
61 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
62 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
63 | 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
64 | 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, | ||
65 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
66 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
67 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
68 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
69 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 0x00, | ||
70 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
71 | 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, | ||
72 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
73 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
74 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
75 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
76 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
77 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, | ||
78 | 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
79 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
80 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
81 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
82 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
83 | 0x00, 0xf8, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
84 | 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, | ||
85 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
86 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
87 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
88 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
89 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, | ||
90 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, | ||
91 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, | ||
92 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
93 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
94 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
95 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
96 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, | ||
97 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, | ||
98 | 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
99 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
100 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
101 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
102 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
103 | 0x00, 0x00, 0xe0, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
104 | 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
105 | 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
106 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
107 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
108 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
109 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, | ||
110 | 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, | ||
111 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, | ||
112 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
113 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
114 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
115 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
116 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x7f, 0x00, 0x00, | ||
117 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, | ||
118 | 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
119 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
120 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
121 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
122 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
123 | 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
124 | 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
125 | 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
126 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
127 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
128 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
129 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, | ||
130 | 0x03, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, | ||
131 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, | ||
132 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
133 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
134 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
135 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
136 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xfe, 0xff, 0x1f, | ||
137 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
138 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
139 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
140 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
141 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
142 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
143 | 0x00, 0x00, 0x00, 0x7c, 0x00, 0xe0, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, | ||
144 | 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
145 | 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
146 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
147 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
148 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
149 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, | ||
150 | 0x00, 0x00, 0xf8, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, | ||
151 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, | ||
152 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
153 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
154 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
155 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
156 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0xe0, 0x7f, | ||
157 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
158 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
159 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
160 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
161 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
162 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
163 | 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, | ||
164 | 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
165 | 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
166 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
167 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
168 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
169 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, | ||
170 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, | ||
171 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, | ||
172 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
173 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
174 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
175 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
176 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, | ||
177 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
178 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
179 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
180 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
181 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
182 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
183 | 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
184 | 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
185 | 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
186 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
187 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
188 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
189 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, | ||
190 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, | ||
191 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, | ||
192 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
193 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
194 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
195 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
196 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, | ||
197 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
198 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
199 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
200 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
201 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
202 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
203 | 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
204 | 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
205 | 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
206 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
207 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
208 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
209 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, | ||
210 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, | ||
211 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, | ||
212 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
213 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
214 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
215 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
216 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, | ||
217 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
218 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
219 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
220 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
221 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
222 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
223 | 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
224 | 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
225 | 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
226 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
227 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
228 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
229 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, | ||
230 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, | ||
231 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, | ||
232 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
233 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
234 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
235 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
236 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, | ||
237 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
238 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
239 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
240 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
241 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
242 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
243 | 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
244 | 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
245 | 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
246 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
247 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
248 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
249 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, | ||
250 | 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, | ||
251 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, | ||
252 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
253 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
254 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
255 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
256 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x7f, 0x00, 0x00, 0x00, | ||
257 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
258 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
259 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
260 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
261 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
262 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
263 | 0x00, 0x00, 0x00, 0xfc, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
264 | 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
265 | 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
266 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
267 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
268 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
269 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, | ||
270 | 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, | ||
271 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, | ||
272 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
273 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
274 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
275 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
276 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x3f, 0x00, 0x00, | ||
277 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
278 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
279 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
280 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
281 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
282 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
283 | 0x00, 0x00, 0x00, 0x3e, 0xf8, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
284 | 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
285 | 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
286 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
287 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
288 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
289 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, | ||
290 | 0x00, 0xfe, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, | ||
291 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, | ||
292 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
293 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
294 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
295 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
296 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0xfe, 0xff, 0x1f, | ||
297 | 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
298 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
299 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
300 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
301 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
302 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
303 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, | ||
304 | 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
305 | 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
306 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
307 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
308 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
309 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
310 | 0x00, 0x00, 0xfc, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, | ||
311 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, | ||
312 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
313 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
314 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
315 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
316 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x7f, | ||
317 | 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
318 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
319 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
320 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
321 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
322 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
323 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, | ||
324 | 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
325 | 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
326 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
327 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
328 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
329 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
330 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x7f, 0xe0, | ||
331 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x01, | ||
332 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
333 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
334 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
335 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
336 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
337 | 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x7f, 0xe0, 0xff, 0xff, 0xff, 0xff, | ||
338 | 0xff, 0x7f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, | ||
339 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
340 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
341 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
342 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
343 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
344 | 0xe0, 0xff, 0x7f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xe0, 0xff, | ||
345 | 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
346 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
347 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
348 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
349 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
350 | 0x00, 0xe0, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x7f, 0xe0, | ||
351 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x03, | ||
352 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
353 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
354 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
355 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
356 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x1f, | ||
357 | 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x7f, 0xe0, 0xff, 0xff, 0xff, 0xff, | ||
358 | 0xff, 0x7f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, | ||
359 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
360 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
361 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
362 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
363 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, | ||
364 | 0xf0, 0xff, 0x7f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xe0, 0xff, | ||
365 | 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
366 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
367 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
368 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
369 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
370 | 0xf0, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x7f, 0xe0, | ||
371 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xe0, 0xff, 0x07, 0xfe, 0xff, 0x03, | ||
372 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
373 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
374 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
375 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
376 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, | ||
377 | 0x03, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
378 | 0x00, 0x00, 0xe0, 0xff, 0x01, 0xf8, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, | ||
379 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
380 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
381 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
382 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
383 | 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, | ||
384 | 0xf8, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, | ||
385 | 0x00, 0xf0, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
386 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
387 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
388 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
389 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, | ||
390 | 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x7f, 0x00, | ||
391 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x7f, 0x00, 0xe0, 0xff, 0x07, | ||
392 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
393 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
394 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
395 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
396 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x03, | ||
397 | 0x3f, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
398 | 0x00, 0x00, 0xe0, 0x3f, 0x00, 0xc0, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, | ||
399 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
400 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
401 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
402 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
403 | 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x0f, 0xfc, 0x00, 0x00, 0x00, | ||
404 | 0xf8, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f, | ||
405 | 0x00, 0x80, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
406 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
407 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
408 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
409 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, | ||
410 | 0xff, 0xff, 0xff, 0x3f, 0xf0, 0x01, 0x00, 0x00, 0xf8, 0xff, 0x7f, 0x00, | ||
411 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f, 0x00, 0x80, 0xff, 0x07, | ||
412 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
413 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
414 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
415 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
416 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x3f, 0x00, 0xc0, 0xff, | ||
417 | 0xc1, 0x03, 0x00, 0x00, 0xf8, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
418 | 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, | ||
419 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
420 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
421 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
422 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
423 | 0x00, 0x00, 0x00, 0xfe, 0x0f, 0x00, 0x00, 0xfc, 0x07, 0x07, 0x00, 0x00, | ||
424 | 0xf8, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, | ||
425 | 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
426 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
427 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
428 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
429 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, | ||
430 | 0x07, 0x00, 0x00, 0xe0, 0x07, 0x0e, 0x00, 0x00, 0xf8, 0xff, 0x7f, 0x00, | ||
431 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0xff, 0x07, | ||
432 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
433 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
434 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
435 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
436 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00, 0x00, | ||
437 | 0x3f, 0x1c, 0x00, 0x00, 0xf8, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
438 | 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, | ||
439 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
440 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
441 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
442 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
443 | 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x38, 0x00, 0x00, | ||
444 | 0xf8, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, | ||
445 | 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
446 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
447 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
448 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
449 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, | ||
450 | 0x00, 0x00, 0x00, 0x00, 0x78, 0x70, 0x00, 0x00, 0xf8, 0xff, 0x7f, 0x00, | ||
451 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0xff, 0x07, | ||
452 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
453 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
454 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
455 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
456 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, | ||
457 | 0xf0, 0xe0, 0x00, 0x00, 0xf8, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
458 | 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, | ||
459 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
460 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
461 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
462 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
463 | 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc3, 0x01, 0x00, | ||
464 | 0xf8, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f, | ||
465 | 0x00, 0x80, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
466 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
467 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
468 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
469 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, | ||
470 | 0x00, 0x00, 0x00, 0x00, 0x80, 0xc7, 0x03, 0x00, 0xf8, 0xff, 0x7f, 0x00, | ||
471 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f, 0x00, 0x80, 0xff, 0x07, | ||
472 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
473 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
474 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
475 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
476 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, | ||
477 | 0x00, 0x87, 0x03, 0x00, 0xf8, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
478 | 0x00, 0x00, 0xe0, 0x3f, 0x00, 0xc0, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, | ||
479 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
480 | 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
483 | 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x07, 0x00, | ||
484 | 0xf8, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x7f, | ||
485 | 0x00, 0xe0, 0xff, 0x07, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, | ||
488 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
489 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1f, | ||
490 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0e, 0x00, 0xf0, 0xff, 0x7f, 0x00, | ||
491 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x00, 0xf0, 0xff, 0x03, | ||
492 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
493 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, | ||
496 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1f, 0x00, 0x00, 0x00, 0x00, | ||
497 | 0x00, 0x30, 0x0c, 0x00, 0xf0, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
498 | 0x00, 0x00, 0xe0, 0xff, 0x01, 0xf8, 0xff, 0x03, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
502 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
503 | 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x1c, 0x00, | ||
504 | 0xf0, 0xff, 0x7f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
505 | 0x07, 0xfe, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
506 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, | ||
510 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x38, 0x00, 0xf0, 0xff, 0x7f, 0xe0, | ||
511 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, | ||
512 | 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
515 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
516 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, | ||
517 | 0x00, 0x80, 0x38, 0x00, 0xf0, 0xff, 0x7f, 0xe0, 0xff, 0xff, 0xff, 0xff, | ||
518 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, | ||
519 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
520 | 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
523 | 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x00, | ||
524 | 0xe0, 0xff, 0x7f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
525 | 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, | ||
528 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
529 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, | ||
530 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x72, 0x00, 0xe0, 0xff, 0x7f, 0xe0, | ||
531 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, | ||
532 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
533 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, | ||
536 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, | ||
537 | 0x00, 0x00, 0xe2, 0x00, 0xe0, 0xff, 0x7f, 0xe0, 0xff, 0xff, 0xff, 0xff, | ||
538 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
542 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
543 | 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, | ||
544 | 0xe0, 0xff, 0x7f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
545 | 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
546 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, | ||
550 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0xc0, 0xff, 0xff, 0xff, | ||
551 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, | ||
552 | 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
555 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
556 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, | ||
557 | 0x00, 0x00, 0xe0, 0x01, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
558 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
559 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
560 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
561 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
562 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
563 | 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, | ||
564 | 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
565 | 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
566 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
567 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
568 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
569 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, | ||
570 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x80, 0xff, 0xff, 0xff, | ||
571 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, | ||
572 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
573 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
574 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
575 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
576 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, | ||
577 | 0x00, 0x00, 0xc0, 0x03, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
578 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
579 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
580 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
581 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
582 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
583 | 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, | ||
584 | 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
585 | 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
586 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
587 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
588 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
589 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, | ||
590 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0xff, 0xff, 0xff, | ||
591 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, | ||
592 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
593 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
594 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
595 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
596 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, | ||
597 | 0x00, 0x00, 0xc0, 0x07, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
598 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
599 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
600 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
601 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
602 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
603 | 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, | ||
604 | 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
605 | 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
606 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
607 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
608 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
609 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, | ||
610 | 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0xfe, 0xff, 0xff, | ||
611 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, | ||
612 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
613 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
614 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
615 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
616 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, | ||
617 | 0x00, 0x00, 0xc0, 0x07, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
618 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
619 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
620 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
621 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
622 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
623 | 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, | ||
624 | 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
625 | 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
626 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
627 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
628 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
629 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
630 | 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0xf8, 0xff, 0xff, | ||
631 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, | ||
632 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
633 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
634 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
635 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
636 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, | ||
637 | 0x00, 0x00, 0xc0, 0x07, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
638 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
639 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
640 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
641 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
642 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
643 | 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, | ||
644 | 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
645 | 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
646 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
647 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
648 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
649 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
650 | 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0xf0, 0xff, 0xff, | ||
651 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, | ||
652 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
653 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
654 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
655 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
656 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, | ||
657 | 0x00, 0x00, 0x00, 0x07, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
658 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
659 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
660 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
661 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
662 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
663 | 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, | ||
664 | 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
665 | 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
666 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
667 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
668 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
669 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
670 | 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, | ||
671 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, | ||
672 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
673 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
674 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
675 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
676 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, | ||
677 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
678 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
679 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
680 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
681 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
682 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
683 | 0x00, 0x00, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
684 | 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
685 | 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
686 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
687 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
688 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
689 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, | ||
690 | 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, | ||
691 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, | ||
692 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
693 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
694 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
695 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
696 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x9f, 0x00, 0x00, 0x00, | ||
697 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
698 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
699 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
700 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
701 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
702 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
703 | 0x00, 0x00, 0x00, 0xfe, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
704 | 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
705 | 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
706 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
707 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
708 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
709 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, | ||
710 | 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, | ||
711 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, | ||
712 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
713 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
714 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
715 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
716 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x0f, 0x00, 0x00, | ||
717 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
718 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
719 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
720 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
721 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
722 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
723 | 0x00, 0x00, 0x00, 0x1c, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
724 | 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
725 | 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
726 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
727 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
728 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
729 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, | ||
730 | 0xf8, 0xff, 0x1f, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, | ||
731 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, | ||
732 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
733 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
734 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
735 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
736 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x80, 0xff, 0xff, 0x00, | ||
737 | 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
738 | 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
739 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
740 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
741 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
742 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
743 | 0x00, 0x00, 0x00, 0x38, 0x00, 0xfe, 0xff, 0x0f, 0x20, 0x00, 0x00, 0x00, | ||
744 | 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
745 | 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
746 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
747 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
748 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
749 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, | ||
750 | 0x00, 0xf8, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, | ||
751 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, | ||
752 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
753 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
754 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
755 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
756 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0xc0, 0xff, 0xff, | ||
757 | 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, | ||
758 | 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
759 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
760 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
761 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
762 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
763 | 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0xfc, 0xff, 0x7f, 0x00, 0x00, 0x00, | ||
764 | 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
765 | 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
766 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
767 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
768 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
769 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
770 | 0x03, 0x00, 0xe0, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, | ||
771 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, | ||
772 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
773 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
774 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
775 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
776 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, | ||
777 | 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, | ||
778 | 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
779 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
780 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
781 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
782 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
783 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x7f, 0x00, 0x00, 0x00, | ||
784 | 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, | ||
785 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
786 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
787 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
788 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
789 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
790 | 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
791 | 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, | ||
792 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
793 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
794 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
795 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
796 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
797 | 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, | ||
798 | 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
799 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
800 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
801 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
802 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
803 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
804 | 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, | ||
805 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
806 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
807 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
808 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
809 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
810 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
811 | 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
812 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
813 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
814 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
815 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
816 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x07, 0x00, 0x00, 0x00, | ||
817 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, | ||
818 | 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
819 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
820 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
821 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
822 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
823 | 0x00, 0x00, 0x00, 0xfe, 0x3f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
824 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, | ||
825 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
826 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
827 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
828 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
829 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, | ||
830 | 0xff, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
831 | 0x00, 0x00, 0xfc, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
832 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
833 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
834 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
835 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
836 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x1f, 0xc0, 0x00, | ||
837 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, | ||
838 | 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
839 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
840 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
841 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
842 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
843 | 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
844 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
845 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
846 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
847 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
848 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
849 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, | ||
850 | 0xfe, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
851 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
852 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
853 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
854 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
855 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
856 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0xf0, 0xff, 0xff, 0x01, | ||
857 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
858 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
859 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
860 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
861 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
862 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
863 | 0x00, 0x00, 0x00, 0x38, 0x00, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, | ||
864 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
865 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
866 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
867 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
868 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
869 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, | ||
870 | 0x00, 0xf8, 0xff, 0x01, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
871 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
872 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
873 | 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
874 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
875 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
876 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0xc0, 0xff, 0x01, | ||
877 | 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
878 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
879 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, | ||
880 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
881 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
882 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
883 | 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0xfc, 0x01, 0xff, 0x00, 0x00, 0x00, | ||
884 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
885 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
886 | 0x00, 0x00, 0x00, 0x80, 0x41, 0x08, 0x04, 0xb3, 0x07, 0x00, 0x00, 0x00, | ||
887 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
888 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
889 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
890 | 0x01, 0x00, 0xe0, 0x03, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
891 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
892 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, | ||
893 | 0x41, 0x08, 0x04, 0xb3, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
894 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
895 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
896 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, | ||
897 | 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
898 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
899 | 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x18, 0x8e, 0x31, 0x7b, 0x30, | ||
900 | 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
901 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
902 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
903 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, | ||
904 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
905 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
906 | 0x08, 0x00, 0x00, 0x18, 0x8e, 0x31, 0x7b, 0x30, 0x30, 0x00, 0x00, 0x00, | ||
907 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
908 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
909 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
910 | 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
911 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
912 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0xf8, | ||
913 | 0x41, 0xc6, 0x84, 0x0c, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
914 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
915 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
916 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
917 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
918 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
919 | 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0xf8, 0x41, 0xc6, 0x84, 0x0c, | ||
920 | 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
921 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
922 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
923 | 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
924 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
925 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, | ||
926 | 0x0f, 0x00, 0x00, 0x18, 0x0c, 0x08, 0x00, 0x40, 0xc0, 0x00, 0x00, 0x00, | ||
927 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
928 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
929 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, | ||
930 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
931 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
932 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x0f, 0x00, 0x00, 0xe4, | ||
933 | 0xb1, 0xc1, 0x98, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
934 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
935 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
936 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x00, | ||
937 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
938 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
939 | 0x00, 0x00, 0x00, 0xff, 0x09, 0x00, 0x00, 0xe4, 0xb1, 0xc1, 0x98, 0x00, | ||
940 | 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
941 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
942 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
943 | 0x00, 0x00, 0x00, 0xfc, 0x3f, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
944 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
945 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, | ||
946 | 0x08, 0x00, 0x00, 0x1c, 0x02, 0x08, 0x04, 0x4c, 0x00, 0x00, 0x00, 0x00, | ||
947 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
948 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
949 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, | ||
950 | 0xff, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
951 | 0x00, 0x00, 0x10, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
952 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x1c, | ||
953 | 0x02, 0x08, 0x04, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
954 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
955 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
956 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x1f, 0xc0, 0x00, | ||
957 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x10, 0x80, | ||
958 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
959 | 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x64, 0x4c, 0x00, 0x00, 0x00, | ||
960 | 0x36, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
961 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
962 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
963 | 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
964 | 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0xf0, 0xff, 0x00, 0x00, 0x00, 0x00, | ||
965 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, | ||
966 | 0x09, 0x00, 0x00, 0x64, 0x4c, 0x00, 0x00, 0x00, 0x36, 0x01, 0x00, 0x00, | ||
967 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
968 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
969 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
970 | 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, | ||
971 | 0xff, 0x03, 0xf0, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
972 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x9c, | ||
973 | 0x01, 0x08, 0x83, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
974 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
975 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
976 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x01, | ||
977 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x03, 0xf0, 0xff, | ||
978 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
979 | 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x64, 0x8c, 0x01, 0x18, 0x40, | ||
980 | 0x30, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
981 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
982 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
983 | 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, | ||
984 | 0x00, 0x00, 0x00, 0xff, 0xff, 0x03, 0xf0, 0xff, 0x00, 0x00, 0x00, 0x00, | ||
985 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, | ||
986 | 0x0f, 0x00, 0x00, 0x64, 0x8c, 0x01, 0x18, 0x40, 0x30, 0x01, 0x00, 0x00, | ||
987 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
988 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
989 | 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
990 | 0x00, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, | ||
991 | 0xff, 0x03, 0x10, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
992 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x0f, 0x00, 0x00, 0x9b, | ||
993 | 0x01, 0xc0, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
994 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
995 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, | ||
996 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0xff, 0x01, | ||
997 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x02, 0x00, 0x40, | ||
998 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
999 | 0x00, 0x00, 0x00, 0xff, 0x09, 0x00, 0x00, 0x9b, 0x01, 0xc0, 0x00, 0x00, | ||
1000 | 0xc6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1001 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1002 | 0x00, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1003 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, | ||
1004 | 0x00, 0x00, 0x00, 0x01, 0x02, 0x02, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, | ||
1005 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, | ||
1006 | 0x00, 0x00, 0x00, 0x07, 0x32, 0x06, 0x18, 0x43, 0x00, 0x06, 0x00, 0x00, | ||
1007 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1008 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, | ||
1009 | 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1010 | 0x00, 0xf0, 0xc1, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, | ||
1011 | 0x02, 0x02, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1012 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x07, | ||
1013 | 0x32, 0x06, 0x18, 0x43, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1014 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1015 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x00, 0x00, 0x00, | ||
1016 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, | ||
1017 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x02, 0x10, 0xe0, | ||
1018 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1019 | 0x00, 0x00, 0x00, 0x70, 0x08, 0x00, 0x00, 0x7b, 0x00, 0x30, 0x03, 0x0c, | ||
1020 | 0x08, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1021 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1022 | 0x00, 0x00, 0x00, 0xf0, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1023 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1024 | 0x00, 0x00, 0x00, 0xe0, 0x07, 0x03, 0xf0, 0xff, 0x00, 0x00, 0x00, 0x00, | ||
1025 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, | ||
1026 | 0x09, 0x00, 0xc0, 0x84, 0x8d, 0x01, 0x80, 0x00, 0xc0, 0x06, 0x00, 0x00, | ||
1027 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1028 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, | ||
1029 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1030 | 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, | ||
1031 | 0xfd, 0x03, 0xf0, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1032 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0xc0, 0x84, | ||
1033 | 0x8d, 0x01, 0x80, 0x00, 0xc0, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1034 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1035 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, | ||
1036 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, | ||
1037 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfd, 0x03, 0xf0, 0x7f, | ||
1038 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1039 | 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0xc0, 0x1b, 0x00, 0x30, 0x00, 0x40, | ||
1040 | 0x08, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1041 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1042 | 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1043 | 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1044 | 0x00, 0x00, 0x00, 0xff, 0xfc, 0x01, 0xf0, 0x3f, 0x00, 0x00, 0x00, 0x00, | ||
1045 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1046 | 0x08, 0x00, 0xc0, 0x1b, 0x00, 0x30, 0x00, 0x40, 0x08, 0x18, 0x00, 0x00, | ||
1047 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1048 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, | ||
1049 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, | ||
1050 | 0x07, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, | ||
1051 | 0xf8, 0x01, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1052 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0xc0, 0x64, | ||
1053 | 0x42, 0x06, 0x1b, 0x03, 0x00, 0x61, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1054 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1055 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00, 0x00, | ||
1056 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7f, 0x00, 0xc0, 0x00, | ||
1057 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x10, 0x00, | ||
1058 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1059 | 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0xc0, 0x64, 0x42, 0x06, 0x1b, 0x03, | ||
1060 | 0x00, 0x61, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1061 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1062 | 0x00, 0x00, 0x00, 0xf0, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1063 | 0x00, 0x00, 0x00, 0xfe, 0xff, 0x03, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, | ||
1064 | 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1065 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, | ||
1066 | 0x0f, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x80, 0x30, 0x08, 0x86, 0x00, 0x00, | ||
1067 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1068 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, | ||
1069 | 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, | ||
1070 | 0xff, 0x3f, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, | ||
1071 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1072 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x1b, | ||
1073 | 0x00, 0x00, 0x80, 0x30, 0x08, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1074 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1075 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x00, 0x00, 0x00, | ||
1076 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xc3, 0x03, | ||
1077 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, | ||
1078 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1079 | 0x00, 0x00, 0x00, 0xfc, 0x0f, 0x00, 0xe0, 0x84, 0x31, 0x30, 0x04, 0x80, | ||
1080 | 0xc1, 0x18, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1081 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1082 | 0x00, 0x00, 0x00, 0xf0, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1083 | 0x00, 0x00, 0x00, 0x1c, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, | ||
1084 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1085 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, | ||
1086 | 0x09, 0x00, 0xc0, 0x63, 0x02, 0x06, 0x00, 0x00, 0x00, 0x60, 0x6c, 0xfc, | ||
1087 | 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1088 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, | ||
1089 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, | ||
1090 | 0xe0, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1091 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1092 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x08, 0x00, 0xc0, 0x63, | ||
1093 | 0x02, 0x06, 0x00, 0x00, 0x00, 0x60, 0x6c, 0xfc, 0xff, 0x03, 0x00, 0x00, | ||
1094 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1095 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, | ||
1096 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0xff, 0xff, 0x03, | ||
1097 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1098 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1099 | 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0xe0, 0x1c, 0x40, 0x00, 0x1b, 0x4c, | ||
1100 | 0x06, 0x81, 0x80, 0xfd, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1101 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1102 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1103 | 0x00, 0x00, 0x00, 0x70, 0x00, 0xf0, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, | ||
1104 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1105 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, | ||
1106 | 0x00, 0x00, 0xe0, 0x1c, 0x40, 0x00, 0x1b, 0x4c, 0x06, 0x81, 0x80, 0xfd, | ||
1107 | 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1108 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1109 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, | ||
1110 | 0x00, 0x80, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1111 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1112 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x09, 0x00, 0x20, 0x63, | ||
1113 | 0x0c, 0x08, 0x80, 0x00, 0x30, 0x06, 0x0c, 0xfc, 0xff, 0x7f, 0x00, 0x00, | ||
1114 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1115 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, | ||
1116 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x30, 0x00, | ||
1117 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, | ||
1118 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1119 | 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x20, 0x63, 0x0c, 0x08, 0x80, 0x00, | ||
1120 | 0x30, 0x06, 0x0c, 0xfc, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1121 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1122 | 0x00, 0x00, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1123 | 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1124 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, 0x00, 0x00, | ||
1125 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, | ||
1126 | 0x0f, 0x00, 0xd8, 0x84, 0x01, 0xc0, 0x00, 0x00, 0x06, 0x00, 0x80, 0xf1, | ||
1127 | 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1128 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, | ||
1129 | 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1130 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1131 | 0x00, 0x00, 0xe0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1132 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0xf8, 0x1b, | ||
1133 | 0x40, 0x08, 0x84, 0x0c, 0xc0, 0x18, 0x13, 0xcc, 0xff, 0xff, 0x0f, 0x00, | ||
1134 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1135 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x0f, 0x00, 0x00, | ||
1136 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1137 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0xe0, 0x7f, | ||
1138 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1139 | 0x00, 0x00, 0x00, 0xfc, 0x0f, 0x00, 0xf8, 0x1b, 0x40, 0x08, 0x84, 0x0c, | ||
1140 | 0xc0, 0x18, 0x13, 0xcc, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1141 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1142 | 0x00, 0x00, 0x00, 0xe0, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1143 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1144 | 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0xf0, 0xe4, 0x00, 0x00, 0x00, 0x00, | ||
1145 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, | ||
1146 | 0x09, 0x00, 0x38, 0x80, 0x01, 0x00, 0x18, 0x30, 0x06, 0x01, 0x00, 0xc0, | ||
1147 | 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1148 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, | ||
1149 | 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1150 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, | ||
1151 | 0x07, 0x00, 0x30, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1152 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x38, 0x80, | ||
1153 | 0x01, 0x00, 0x18, 0x30, 0x06, 0x01, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x01, | ||
1154 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1155 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, | ||
1156 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x07, 0x00, 0x00, 0x00, | ||
1157 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x07, 0x00, 0x10, 0x84, | ||
1158 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1159 | 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0xd8, 0x1f, 0x30, 0x36, 0x80, 0x00, | ||
1160 | 0x00, 0x00, 0x03, 0xf2, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, | ||
1161 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1162 | 0x00, 0x00, 0x00, 0x10, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1163 | 0x00, 0x00, 0x00, 0xfc, 0x3f, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1164 | 0x00, 0x00, 0x00, 0x4f, 0x0e, 0x00, 0x10, 0x84, 0x00, 0x00, 0x00, 0x00, | ||
1165 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, | ||
1166 | 0x08, 0x00, 0xd8, 0x1f, 0x30, 0x36, 0x80, 0x00, 0x00, 0x00, 0x03, 0xf2, | ||
1167 | 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1168 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, | ||
1169 | 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, | ||
1170 | 0xff, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, | ||
1171 | 0x08, 0x00, 0x10, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1172 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x09, 0x00, 0x3e, 0x00, | ||
1173 | 0x82, 0x01, 0x03, 0x40, 0x30, 0x98, 0x10, 0xf0, 0xe7, 0xff, 0xff, 0xff, | ||
1174 | 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1175 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x20, 0x00, 0x00, | ||
1176 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x1f, 0xc0, 0x00, | ||
1177 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x08, 0x00, 0x10, 0xe4, | ||
1178 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1179 | 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0xe6, 0x1b, 0x00, 0x00, 0x18, 0x0c, | ||
1180 | 0x00, 0x00, 0x00, 0xfc, 0xff, 0xfb, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, | ||
1181 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1182 | 0x00, 0x00, 0x00, 0x10, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1183 | 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1184 | 0x00, 0x00, 0x00, 0x41, 0x08, 0x00, 0x30, 0x7c, 0x00, 0x00, 0x00, 0x00, | ||
1185 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1186 | 0x08, 0x00, 0xe6, 0x1b, 0x00, 0x00, 0x18, 0x0c, 0x00, 0x00, 0x00, 0xfc, | ||
1187 | 0xff, 0xfb, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1188 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, | ||
1189 | 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, | ||
1190 | 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, | ||
1191 | 0x08, 0x00, 0x20, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1192 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x1e, 0x64, | ||
1193 | 0x30, 0xc6, 0x80, 0x80, 0x09, 0x06, 0x63, 0xfe, 0xf9, 0xff, 0xff, 0xff, | ||
1194 | 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1195 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x30, 0x00, 0x00, | ||
1196 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0xf8, 0xff, 0xff, 0x01, | ||
1197 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x0e, 0x00, 0xc0, 0x3c, | ||
1198 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1199 | 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x1e, 0x64, 0x30, 0xc6, 0x80, 0x80, | ||
1200 | 0x09, 0x06, 0x63, 0xfe, 0xf9, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, | ||
1201 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1202 | 0x00, 0x00, 0x00, 0x20, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1203 | 0x00, 0x00, 0x00, 0x1c, 0x80, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, | ||
1204 | 0x00, 0x00, 0x00, 0xc3, 0x07, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, | ||
1205 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1206 | 0x0e, 0x00, 0x39, 0x03, 0x00, 0x00, 0x04, 0x0c, 0xc0, 0x60, 0x80, 0x3f, | ||
1207 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1208 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, | ||
1209 | 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, | ||
1210 | 0x00, 0xfc, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc2, | ||
1211 | 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1212 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x39, 0x03, | ||
1213 | 0x00, 0x00, 0x04, 0x0c, 0xc0, 0x60, 0x80, 0x3f, 0xff, 0xff, 0xff, 0xff, | ||
1214 | 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1215 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x3e, 0x00, 0x00, | ||
1216 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x80, 0xff, 0x01, | ||
1217 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0x03, 0x00, 0x00, 0x00, | ||
1218 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1219 | 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0xe7, 0x04, 0x42, 0xc6, 0x00, 0x00, | ||
1220 | 0x00, 0x00, 0xec, 0xcf, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0x0f, 0x00, | ||
1221 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1222 | 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1223 | 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, | ||
1224 | 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1225 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, | ||
1226 | 0x0f, 0xc0, 0x1f, 0x80, 0x01, 0x00, 0x98, 0x4c, 0x06, 0x06, 0xf0, 0x01, | ||
1227 | 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1228 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, | ||
1229 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, | ||
1230 | 0x01, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1231 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1232 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x09, 0xc0, 0x1f, 0x80, | ||
1233 | 0x01, 0x00, 0x98, 0x4c, 0x06, 0x06, 0xf0, 0x01, 0x00, 0xe0, 0xff, 0xff, | ||
1234 | 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1235 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x20, 0x00, 0x00, | ||
1236 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, | ||
1237 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1238 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1239 | 0x00, 0x00, 0x00, 0x3f, 0x08, 0xc0, 0xe6, 0x04, 0x0c, 0x08, 0x00, 0x00, | ||
1240 | 0xc0, 0x60, 0x7c, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x01, | ||
1241 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1242 | 0x00, 0x00, 0x00, 0xf0, 0x1f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1243 | 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1244 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1245 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, | ||
1246 | 0x00, 0xc0, 0xe6, 0x04, 0x0c, 0x08, 0x00, 0x00, 0xc0, 0x60, 0x7c, 0x00, | ||
1247 | 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, | ||
1248 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, | ||
1249 | 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1250 | 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1251 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1252 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xc0, 0x19, 0x60, | ||
1253 | 0x40, 0x00, 0x63, 0x30, 0x08, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xf8, | ||
1254 | 0xff, 0xf3, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1255 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x3f, 0x00, 0x00, | ||
1256 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, | ||
1257 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, | ||
1258 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1259 | 0x00, 0x00, 0x00, 0xc0, 0x09, 0xc0, 0x19, 0x60, 0x40, 0x00, 0x63, 0x30, | ||
1260 | 0x08, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xf3, 0xff, 0x07, | ||
1261 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1262 | 0x00, 0x00, 0x00, 0xf0, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1263 | 0x00, 0x00, 0x00, 0x78, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1264 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, | ||
1265 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1266 | 0x0f, 0xc0, 0x27, 0x03, 0x00, 0x30, 0x00, 0x03, 0x00, 0xe6, 0x1f, 0x00, | ||
1267 | 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, | ||
1268 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, | ||
1269 | 0xe0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, | ||
1270 | 0xcf, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1271 | 0x00, 0x00, 0xe0, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1272 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0xc0, 0x27, 0x03, | ||
1273 | 0x00, 0x30, 0x00, 0x03, 0x00, 0xe6, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xc0, | ||
1274 | 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1275 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, | ||
1276 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x0f, 0x00, 0x00, | ||
1277 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, | ||
1278 | 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1279 | 0x00, 0x00, 0x00, 0xf0, 0x0f, 0xc0, 0xde, 0x04, 0x0c, 0x06, 0x03, 0x80, | ||
1280 | 0xc1, 0xf8, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x7f, | ||
1281 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1282 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1283 | 0x00, 0x00, 0x00, 0xfe, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1284 | 0x00, 0x00, 0x00, 0x0f, 0x03, 0x00, 0xf8, 0xff, 0x07, 0x00, 0x00, 0x00, | ||
1285 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, | ||
1286 | 0x0f, 0xc0, 0x19, 0x00, 0x32, 0x00, 0x60, 0x30, 0x08, 0xff, 0x03, 0x00, | ||
1287 | 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, | ||
1288 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, | ||
1289 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, | ||
1290 | 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x9f, | ||
1291 | 0x07, 0x00, 0xf8, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1292 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x09, 0xc0, 0x19, 0x00, | ||
1293 | 0x32, 0x00, 0x60, 0x30, 0x08, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1294 | 0xe0, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1295 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x80, 0x00, 0x00, 0x00, | ||
1296 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x07, 0x00, | ||
1297 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x9f, 0x07, 0x00, 0x18, 0x40, | ||
1298 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1299 | 0x00, 0x00, 0x00, 0x3f, 0x00, 0xc0, 0x27, 0x63, 0x80, 0x31, 0x04, 0x03, | ||
1300 | 0xf0, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, | ||
1301 | 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1302 | 0x00, 0x00, 0x00, 0xf8, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1303 | 0x00, 0x00, 0x00, 0x1c, 0xfe, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1304 | 0x00, 0x00, 0x80, 0x1f, 0x07, 0x00, 0x18, 0x40, 0x00, 0x00, 0x00, 0x00, | ||
1305 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, | ||
1306 | 0x00, 0xc0, 0x27, 0x63, 0x80, 0x31, 0x04, 0x03, 0xf0, 0xff, 0x00, 0x00, | ||
1307 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, | ||
1308 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, | ||
1309 | 0x7f, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, | ||
1310 | 0xe0, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x31, | ||
1311 | 0x04, 0x00, 0x10, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1312 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x08, 0x00, 0xd9, 0x04, | ||
1313 | 0x00, 0x08, 0x00, 0x80, 0xf9, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1314 | 0x00, 0xf0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1315 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x7f, 0x1e, 0x00, 0x00, | ||
1316 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0xfe, 0xff, 0x01, | ||
1317 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x20, 0x04, 0x00, 0x60, 0x00, | ||
1318 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1319 | 0x00, 0x00, 0x00, 0xc0, 0x09, 0x00, 0xd9, 0x04, 0x00, 0x08, 0x00, 0x80, | ||
1320 | 0xf9, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, | ||
1321 | 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1322 | 0x00, 0x00, 0x00, 0xf8, 0x7f, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1323 | 0x00, 0x00, 0x00, 0x78, 0x00, 0xf0, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, | ||
1324 | 0x00, 0x00, 0x80, 0x20, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1325 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1326 | 0x0f, 0xc0, 0x27, 0x00, 0x30, 0xc0, 0x60, 0xb0, 0xff, 0x7f, 0x00, 0x00, | ||
1327 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, | ||
1328 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, | ||
1329 | 0x60, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, | ||
1330 | 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, | ||
1331 | 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1332 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xc0, 0xde, 0x9b, | ||
1333 | 0x8d, 0x01, 0x04, 0xc3, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1334 | 0x00, 0x80, 0xf1, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1335 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, | ||
1336 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x03, 0x00, 0xf0, 0x01, | ||
1337 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, | ||
1338 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1339 | 0x00, 0x00, 0x00, 0x00, 0x08, 0xc0, 0xde, 0x9b, 0x8d, 0x01, 0x04, 0xc3, | ||
1340 | 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf1, 0xff, | ||
1341 | 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1342 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1343 | 0x00, 0x00, 0x00, 0x3e, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, | ||
1344 | 0x00, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1345 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1346 | 0x00, 0xc0, 0x39, 0x04, 0x00, 0xc8, 0x00, 0xfc, 0xff, 0x07, 0x00, 0x00, | ||
1347 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xf8, 0xff, 0x3f, 0x00, 0x00, | ||
1348 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, | ||
1349 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, | ||
1350 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, | ||
1351 | 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1352 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0xc0, 0x39, 0x04, | ||
1353 | 0x00, 0xc8, 0x00, 0xfc, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1354 | 0x00, 0x00, 0xc6, 0xf8, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1355 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x40, 0x00, 0x00, 0x00, | ||
1356 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, | ||
1357 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x01, 0x00, 0x00, 0x00, | ||
1358 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1359 | 0x00, 0x00, 0x00, 0x1f, 0x00, 0xc0, 0xc7, 0x60, 0x42, 0x00, 0x60, 0xff, | ||
1360 | 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, | ||
1361 | 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1362 | 0x00, 0x00, 0x00, 0xf8, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1363 | 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1364 | 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1365 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, | ||
1366 | 0x00, 0xc0, 0xc7, 0x60, 0x42, 0x00, 0x60, 0xff, 0xff, 0x01, 0x00, 0x00, | ||
1367 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0x00, 0x00, | ||
1368 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, | ||
1369 | 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, | ||
1370 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, | ||
1371 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1372 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0xc0, 0xff, 0x07, | ||
1373 | 0xb0, 0x09, 0xe4, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1374 | 0x00, 0x00, 0x30, 0x00, 0xfc, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1375 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x7f, 0x00, 0x00, 0x00, | ||
1376 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, | ||
1377 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1378 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1379 | 0x00, 0x00, 0x00, 0x0e, 0x00, 0xc0, 0xde, 0x78, 0x02, 0x00, 0xfb, 0xff, | ||
1380 | 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1381 | 0x80, 0xff, 0x1f, 0xf8, 0xff, 0xff, 0x1f, 0xf0, 0xff, 0xff, 0x00, 0x00, | ||
1382 | 0x00, 0x00, 0x00, 0xf8, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1383 | 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1384 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1385 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1386 | 0x00, 0xc0, 0xde, 0x78, 0x02, 0x00, 0xfb, 0xff, 0xff, 0x00, 0x00, 0x00, | ||
1387 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x1f, 0xf8, | ||
1388 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x08, | ||
1389 | 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, | ||
1390 | 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1391 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1392 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xc0, 0x3f, 0x07, | ||
1393 | 0xb0, 0xc9, 0xf8, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1394 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
1395 | 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1396 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0xc0, 0x01, | ||
1397 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1398 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1399 | 0x00, 0x00, 0x00, 0x00, 0x08, 0xc0, 0x3f, 0x07, 0xb0, 0xc9, 0xf8, 0xff, | ||
1400 | 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1401 | 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, | ||
1402 | 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1403 | 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, | ||
1404 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1405 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, | ||
1406 | 0x0f, 0x00, 0xe7, 0xfb, 0x43, 0x30, 0xf8, 0xff, 0x0f, 0x00, 0x00, 0x00, | ||
1407 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, | ||
1408 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, | ||
1409 | 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1410 | 0x07, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1411 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1412 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x0f, 0x00, 0xe7, 0xfb, | ||
1413 | 0x43, 0x30, 0xf8, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1414 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
1415 | 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x08, 0x70, 0x00, 0x00, 0x00, | ||
1416 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0xe0, 0x01, | ||
1417 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1418 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1419 | 0x00, 0x00, 0x00, 0xff, 0x0f, 0x00, 0xfe, 0x1c, 0xb2, 0x0f, 0xe0, 0xff, | ||
1420 | 0x07, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1421 | 0x00, 0xc0, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
1422 | 0x00, 0x00, 0x00, 0xf8, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1423 | 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x00, 0x00, | ||
1424 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1425 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, | ||
1426 | 0x0f, 0x00, 0xf8, 0xe7, 0xfd, 0x01, 0xe0, 0xff, 0x07, 0x00, 0xe0, 0xff, | ||
1427 | 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0xe0, | ||
1428 | 0xb1, 0x3f, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0xf8, | ||
1429 | 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1430 | 0xf0, 0xc0, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, | ||
1431 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1432 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xf8, 0xe7, | ||
1433 | 0xfd, 0x01, 0xe0, 0xff, 0x07, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x0f, 0x00, | ||
1434 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0xe0, 0xb1, 0x3f, 0x00, 0x00, | ||
1435 | 0xf8, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xf8, 0x7f, 0x00, 0x00, 0x00, | ||
1436 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x03, | ||
1437 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00, 0x00, | ||
1438 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1439 | 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xf8, 0xff, 0x7f, 0x00, 0x80, 0xff, | ||
1440 | 0x01, 0x00, 0xe0, 0x03, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1441 | 0x00, 0x00, 0x00, 0x98, 0x4f, 0x0e, 0x18, 0x00, 0xf8, 0xff, 0xff, 0xff, | ||
1442 | 0x07, 0x00, 0x00, 0xf8, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1443 | 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, | ||
1444 | 0x00, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1445 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, | ||
1446 | 0x00, 0x00, 0xf8, 0xff, 0x7f, 0x00, 0x80, 0xff, 0x01, 0x00, 0xe0, 0x03, | ||
1447 | 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, | ||
1448 | 0x4f, 0x0e, 0xf8, 0x1f, 0xf6, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x08, | ||
1449 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, | ||
1450 | 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, | ||
1451 | 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1452 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xf8, 0xff, | ||
1453 | 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, | ||
1454 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xb1, 0x01, 0xff, 0x1f, | ||
1455 | 0xf6, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, | ||
1456 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x1f, 0x00, | ||
1457 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x07, 0x00, 0x00, 0x00, | ||
1458 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1459 | 0x00, 0x00, 0x00, 0x04, 0x08, 0x00, 0xf8, 0xff, 0x7f, 0x00, 0x00, 0x00, | ||
1460 | 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1461 | 0x00, 0x00, 0x00, 0xf8, 0xb1, 0x01, 0xff, 0x7f, 0xc0, 0xff, 0xff, 0xff, | ||
1462 | 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1463 | 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1464 | 0x00, 0x00, 0x80, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1465 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, | ||
1466 | 0x0f, 0x00, 0xe0, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, | ||
1467 | 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, | ||
1468 | 0x00, 0xce, 0xff, 0x7f, 0xc0, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, | ||
1469 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, | ||
1470 | 0xff, 0xe3, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, | ||
1471 | 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1472 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x0f, 0x00, 0xe0, 0xff, | ||
1473 | 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, | ||
1474 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0xce, 0xff, 0x7f, | ||
1475 | 0x00, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, | ||
1476 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x1f, 0x00, 0x07, 0x00, | ||
1477 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x04, 0x00, 0x00, 0x00, | ||
1478 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1479 | 0x00, 0x00, 0x00, 0xff, 0x0f, 0x00, 0xc0, 0xff, 0x3f, 0x00, 0x00, 0x00, | ||
1480 | 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1481 | 0x00, 0x00, 0x20, 0x1b, 0xb2, 0x31, 0xff, 0x7f, 0x00, 0xff, 0xff, 0xff, | ||
1482 | 0x3f, 0x00, 0x00, 0xe0, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1483 | 0x00, 0x00, 0x00, 0xfe, 0x03, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1484 | 0x00, 0x00, 0x80, 0x01, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1485 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, | ||
1486 | 0x0f, 0x00, 0xc0, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, | ||
1487 | 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0x1c, | ||
1488 | 0x00, 0xc0, 0xff, 0x73, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xf0, | ||
1489 | 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, | ||
1490 | 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, | ||
1491 | 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1492 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xc0, 0xff, | ||
1493 | 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, | ||
1494 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0x1c, 0x00, 0xc0, 0x7f, 0x1c, | ||
1495 | 0x30, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xf8, 0x7f, 0x00, 0x00, 0x00, | ||
1496 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x78, 0x00, | ||
1497 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x01, 0x00, 0x00, | ||
1498 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1499 | 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xc0, 0xff, 0x0f, 0x00, 0x00, 0x00, | ||
1500 | 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1501 | 0x00, 0x00, 0x38, 0x87, 0x31, 0x06, 0x7c, 0x1c, 0x30, 0xff, 0xff, 0xff, | ||
1502 | 0xff, 0x00, 0x00, 0xf8, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1503 | 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1504 | 0x00, 0x00, 0x80, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1505 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1506 | 0x00, 0x00, 0xc0, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1507 | 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x87, | ||
1508 | 0x31, 0x06, 0xfc, 0x0f, 0xc8, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x38, | ||
1509 | 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, | ||
1510 | 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, | ||
1511 | 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1512 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0xc0, 0xff, | ||
1513 | 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0f, 0x00, | ||
1514 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xe6, 0x04, 0x00, 0x30, 0xe3, 0x0f, | ||
1515 | 0xc8, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, | ||
1516 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0xe0, 0x01, | ||
1517 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x01, 0x00, 0x00, | ||
1518 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1519 | 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0xc0, 0xff, 0x0f, 0x00, 0x00, 0x00, | ||
1520 | 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1521 | 0x00, 0x30, 0xe6, 0x04, 0x00, 0x30, 0x03, 0x00, 0xf0, 0xff, 0xff, 0xff, | ||
1522 | 0xff, 0x03, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1523 | 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, | ||
1524 | 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1525 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, | ||
1526 | 0x07, 0x00, 0xc0, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, | ||
1527 | 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x1b, | ||
1528 | 0x4c, 0x00, 0x04, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x10, | ||
1529 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1530 | 0x01, 0x00, 0xf0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, | ||
1531 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1532 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x07, 0x00, 0xc0, 0xff, | ||
1533 | 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, | ||
1534 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x07, 0x04, 0x00, 0x06, 0x18, 0x80, | ||
1535 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, | ||
1536 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x03, | ||
1537 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1538 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1539 | 0x00, 0x00, 0x00, 0x0f, 0x0e, 0x00, 0xc0, 0xff, 0x0f, 0x00, 0x00, 0x00, | ||
1540 | 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1541 | 0x00, 0x02, 0x07, 0x04, 0x00, 0x06, 0x78, 0xf3, 0xff, 0xff, 0xff, 0xff, | ||
1542 | 0xff, 0x07, 0x00, 0xf8, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1543 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, | ||
1544 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1545 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, | ||
1546 | 0x08, 0x00, 0xc0, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1547 | 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x3e, 0x04, | ||
1548 | 0x02, 0x30, 0x60, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0xf8, | ||
1549 | 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1550 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1551 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1552 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0xc0, 0xff, | ||
1553 | 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, | ||
1554 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x3e, 0x04, 0x02, 0x30, 0xe0, 0xff, | ||
1555 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0xf8, 0x7f, 0x00, 0x00, 0x00, | ||
1556 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1557 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1558 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1559 | 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0xff, 0x0f, 0x00, 0x00, 0x00, | ||
1560 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1561 | 0x00, 0x00, 0xc6, 0x04, 0x40, 0x00, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
1562 | 0xff, 0x07, 0x00, 0xf8, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1563 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1564 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1565 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, | ||
1566 | 0x08, 0x00, 0x00, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1567 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x04, | ||
1568 | 0x40, 0x00, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x08, | ||
1569 | 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1570 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1571 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1572 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0xff, | ||
1573 | 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x03, 0x00, | ||
1574 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x39, 0x67, 0x00, 0x06, 0xe0, 0xff, | ||
1575 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, | ||
1576 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1577 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1578 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1579 | 0x00, 0x00, 0x00, 0x03, 0x0f, 0x00, 0x00, 0xff, 0x0f, 0x00, 0x00, 0x00, | ||
1580 | 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1581 | 0x00, 0x00, 0x06, 0x04, 0x30, 0x00, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
1582 | 0xff, 0x3f, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1583 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1584 | 0x00, 0x00, 0x18, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1585 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, | ||
1586 | 0x0f, 0x00, 0x00, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1587 | 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x04, | ||
1588 | 0x30, 0x00, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x08, | ||
1589 | 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1590 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, | ||
1591 | 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1592 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x06, 0x00, 0x00, 0xff, | ||
1593 | 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1f, 0x00, 0x7e, 0x00, | ||
1594 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x3e, 0x9b, 0x01, 0x30, 0xe0, 0xff, | ||
1595 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, | ||
1596 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1597 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x06, 0x00, 0x00, 0x00, | ||
1598 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1599 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x0f, 0x00, 0x00, 0x00, | ||
1600 | 0x00, 0x00, 0x00, 0xc0, 0x1f, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1601 | 0x00, 0x30, 0x3e, 0x9b, 0x01, 0x30, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
1602 | 0xff, 0x3f, 0x00, 0x18, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1603 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1604 | 0x00, 0x00, 0x1c, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1605 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, | ||
1606 | 0x00, 0x02, 0x00, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, | ||
1607 | 0x01, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x1c, | ||
1608 | 0x0c, 0x06, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x38, | ||
1609 | 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1610 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0xe0, | ||
1611 | 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1612 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0xff, | ||
1613 | 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0xf0, 0x01, | ||
1614 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x1c, 0x0c, 0x06, 0xfb, 0xff, | ||
1615 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x68, 0x7c, 0x00, 0x00, 0x00, | ||
1616 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1617 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xf8, 0x07, 0x00, 0x00, 0x00, | ||
1618 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1619 | 0x00, 0x00, 0x00, 0xff, 0xff, 0x03, 0x00, 0xff, 0x3f, 0x00, 0x00, 0x00, | ||
1620 | 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, | ||
1621 | 0x00, 0x00, 0x38, 0x18, 0x00, 0x00, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
1622 | 0xff, 0x3f, 0x00, 0xc0, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1623 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1624 | 0x00, 0x00, 0x18, 0xfe, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1625 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, | ||
1626 | 0xff, 0x03, 0x00, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, | ||
1627 | 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc6, 0x9b, | ||
1628 | 0x81, 0x01, 0x60, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x80, | ||
1629 | 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1630 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, | ||
1631 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1632 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x03, 0x00, 0xff, | ||
1633 | 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0xc0, 0x07, | ||
1634 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc6, 0x9b, 0x81, 0x01, 0x00, 0x00, | ||
1635 | 0xf6, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0xc0, 0x0f, 0x00, 0x00, 0x00, | ||
1636 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1637 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1f, 0x00, 0x00, 0x00, 0x00, | ||
1638 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1639 | 0x00, 0x00, 0x00, 0xff, 0xff, 0x03, 0x00, 0xff, 0x3f, 0x00, 0x00, 0x00, | ||
1640 | 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, | ||
1641 | 0x00, 0x00, 0x38, 0x78, 0x0c, 0x30, 0x04, 0x00, 0xf6, 0xff, 0xff, 0xff, | ||
1642 | 0xff, 0x3f, 0x00, 0xe8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1643 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1644 | 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1645 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, | ||
1646 | 0x00, 0x00, 0x00, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, | ||
1647 | 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x78, | ||
1648 | 0x0c, 0x30, 0x04, 0x00, 0xc8, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0xf8, | ||
1649 | 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1650 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, | ||
1651 | 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1652 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, | ||
1653 | 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x80, 0x07, | ||
1654 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x64, 0x40, 0x00, 0x1c, 0x00, | ||
1655 | 0xc8, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0xf8, 0x58, 0x00, 0x00, 0x00, | ||
1656 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1657 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x04, 0x00, 0x00, 0x00, | ||
1658 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1659 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x3f, 0x00, 0x00, 0x00, | ||
1660 | 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, | ||
1661 | 0x00, 0x00, 0xc0, 0x64, 0x40, 0x00, 0xfc, 0x03, 0xc0, 0xff, 0xff, 0xff, | ||
1662 | 0xff, 0x3f, 0x00, 0x78, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1663 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1664 | 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1665 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, | ||
1666 | 0x08, 0x00, 0x00, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, | ||
1667 | 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xe0, | ||
1668 | 0x01, 0x36, 0xfc, 0x03, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x38, | ||
1669 | 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1670 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1671 | 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, | ||
1672 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0xff, | ||
1673 | 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x80, 0x07, | ||
1674 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xe0, 0x01, 0x36, 0xfc, 0x1f, | ||
1675 | 0x30, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x18, 0x40, 0x00, 0x00, 0x00, | ||
1676 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1677 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, | ||
1678 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1679 | 0x00, 0x00, 0x00, 0xff, 0x8f, 0x01, 0x00, 0xff, 0x3f, 0x00, 0x00, 0x00, | ||
1680 | 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, | ||
1681 | 0x00, 0x00, 0xc6, 0x87, 0x0f, 0x00, 0xff, 0x1f, 0x30, 0xff, 0xff, 0xff, | ||
1682 | 0xff, 0x07, 0x00, 0x08, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1683 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1684 | 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1685 | 0xfe, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, | ||
1686 | 0xcf, 0x03, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, | ||
1687 | 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, | ||
1688 | 0x40, 0xc0, 0xff, 0x7f, 0xc0, 0xfe, 0xff, 0xff, 0xff, 0x07, 0x00, 0x08, | ||
1689 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1690 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1691 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x0f, 0x00, | ||
1692 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xcf, 0x03, 0x00, 0xff, | ||
1693 | 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0xc0, 0x07, | ||
1694 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x40, 0xc0, 0xff, 0x7f, | ||
1695 | 0x00, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1696 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1697 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1698 | 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1699 | 0x00, 0x00, 0x00, 0xff, 0x8f, 0x01, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x00, | ||
1700 | 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, | ||
1701 | 0x00, 0x00, 0x00, 0x03, 0x0e, 0xc6, 0xff, 0x7f, 0x00, 0xff, 0xff, 0xff, | ||
1702 | 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1703 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1704 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1705 | 0xfe, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, | ||
1706 | 0x00, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, | ||
1707 | 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, | ||
1708 | 0x0e, 0xc6, 0xff, 0x7f, 0x00, 0xfe, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, | ||
1709 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1710 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1711 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0c, 0x00, 0x00, | ||
1712 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, | ||
1713 | 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0xf0, 0x01, | ||
1714 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x9c, 0x01, 0x30, 0xff, 0x7f, | ||
1715 | 0x00, 0xfe, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1716 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1717 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1718 | 0x00, 0x00, 0x00, 0x00, 0x02, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1719 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x00, | ||
1720 | 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, | ||
1721 | 0x00, 0x00, 0x20, 0x9c, 0x01, 0x30, 0xff, 0x63, 0x30, 0xff, 0xff, 0xff, | ||
1722 | 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1723 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1724 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1725 | 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, | ||
1726 | 0x08, 0x00, 0x00, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, | ||
1727 | 0x07, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, | ||
1728 | 0x4c, 0x00, 0xff, 0x63, 0x30, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, | ||
1729 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1730 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1731 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x10, 0x00, 0x00, | ||
1732 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0xff, | ||
1733 | 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x3e, 0x00, | ||
1734 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb2, 0x31, 0xfc, 0x1f, | ||
1735 | 0x00, 0xff, 0xff, 0xfd, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1736 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1737 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1738 | 0x00, 0x00, 0x00, 0x00, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1739 | 0x00, 0x00, 0x00, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, 0x01, 0x00, 0x00, | ||
1740 | 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1741 | 0x00, 0x00, 0x00, 0x00, 0xb2, 0x31, 0xfc, 0x0f, 0x00, 0xff, 0xff, 0x03, | ||
1742 | 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1743 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1744 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1745 | 0x0e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, | ||
1746 | 0x0f, 0x00, 0x00, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1747 | 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, | ||
1748 | 0x41, 0x00, 0xe0, 0x0f, 0x00, 0xff, 0xff, 0x03, 0xff, 0x03, 0x00, 0x38, | ||
1749 | 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1750 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1751 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x0f, 0x00, 0x00, | ||
1752 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x0f, 0x00, 0x00, 0xff, | ||
1753 | 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, | ||
1754 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x41, 0x00, 0x00, 0x80, | ||
1755 | 0xc9, 0xf9, 0xff, 0x3d, 0xff, 0x03, 0x00, 0x78, 0xc0, 0x0f, 0x00, 0x00, | ||
1756 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1757 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1758 | 0x00, 0x00, 0x00, 0x00, 0xfc, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1759 | 0x00, 0x00, 0x00, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, 0x07, 0x00, 0x00, | ||
1760 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1761 | 0x00, 0x00, 0x00, 0x60, 0x32, 0x08, 0x00, 0x80, 0xc9, 0xf9, 0xff, 0x3d, | ||
1762 | 0xff, 0x03, 0x00, 0xf8, 0xc0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1763 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1764 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1765 | 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, | ||
1766 | 0x02, 0x00, 0x00, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1767 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, | ||
1768 | 0x32, 0x08, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xcf, 0xff, 0x00, 0x00, 0xf8, | ||
1769 | 0x81, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1770 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1771 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, | ||
1772 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xff, | ||
1773 | 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1774 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xe0, 0x01, 0xf8, 0x00, 0x00, | ||
1775 | 0xf0, 0xff, 0xff, 0xcf, 0xff, 0x00, 0x00, 0x38, 0x03, 0x10, 0x00, 0x00, | ||
1776 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1777 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1778 | 0x00, 0x00, 0x00, 0x60, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1779 | 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0xff, 0xff, 0x3f, 0x00, 0x00, | ||
1780 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1781 | 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x03, 0x80, 0xff, 0xff, 0xff, 0xff, | ||
1782 | 0x3f, 0x00, 0x00, 0x38, 0x06, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1783 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1784 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, | ||
1785 | 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1786 | 0x0c, 0x00, 0x00, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1787 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, | ||
1788 | 0xff, 0xff, 0x03, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x38, | ||
1789 | 0x1e, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1790 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1791 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x18, 0x00, 0x00, | ||
1792 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0xff, | ||
1793 | 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1794 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x03, 0xfc, | ||
1795 | 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x38, 0xfc, 0x1f, 0x00, 0x00, | ||
1796 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1797 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1798 | 0x00, 0x00, 0x00, 0x70, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1799 | 0x00, 0x00, 0x00, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, 0x3f, 0x00, 0x00, | ||
1800 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1801 | 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
1802 | 0x1f, 0x00, 0x00, 0x38, 0xf8, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1803 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1804 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, | ||
1805 | 0x80, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, | ||
1806 | 0x0f, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1807 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, | ||
1808 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x78, | ||
1809 | 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1810 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1811 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xe0, 0x1f, 0x00, 0x00, | ||
1812 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0xff, | ||
1813 | 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1814 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
1815 | 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xf8, 0xc1, 0x07, 0x00, 0x00, | ||
1816 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1817 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1818 | 0x00, 0x00, 0x00, 0x60, 0xf8, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1819 | 0x00, 0x00, 0x00, 0xff, 0x03, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x03, 0x00, | ||
1820 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, | ||
1821 | 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
1822 | 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1823 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1824 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, | ||
1825 | 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, | ||
1826 | 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1827 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0xff, 0xff, | ||
1828 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, | ||
1829 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1830 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1831 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, | ||
1832 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xc0, 0xff, | ||
1833 | 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1834 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
1835 | 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1836 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1837 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1838 | 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1839 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x1f, 0x00, | ||
1840 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1841 | 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
1842 | 0x01, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1843 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1844 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1845 | 0xe0, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1846 | 0x08, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1847 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x67, | ||
1848 | 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xf8, | ||
1849 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1850 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1851 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x13, 0x00, 0x00, | ||
1852 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0xc0, 0xff, | ||
1853 | 0xff, 0xff, 0x1f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1854 | 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x67, 0xfe, 0xff, 0xff, 0xff, | ||
1855 | 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, | ||
1856 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1857 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1858 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1859 | 0x00, 0x00, 0x00, 0xfc, 0x0f, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x1f, 0x03, | ||
1860 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1861 | 0xf0, 0xff, 0xff, 0x98, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, | ||
1862 | 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1863 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1864 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1865 | 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, | ||
1866 | 0x0f, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x08, 0x00, 0x00, 0x00, | ||
1867 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x98, | ||
1868 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x70, | ||
1869 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1870 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1871 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, | ||
1872 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x0f, 0x00, 0xf8, 0xff, | ||
1873 | 0xff, 0xff, 0x7f, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1874 | 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x3f, 0xe7, 0xff, 0xff, 0xff, 0xff, | ||
1875 | 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1876 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1877 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1878 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1879 | 0x00, 0x00, 0x00, 0xff, 0x0f, 0x00, 0xff, 0xfc, 0xff, 0xff, 0xff, 0x00, | ||
1880 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, | ||
1881 | 0xff, 0xff, 0x3f, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, | ||
1882 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1883 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1884 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1885 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, | ||
1886 | 0x00, 0xc0, 0xff, 0x67, 0x8c, 0xf9, 0xfb, 0x73, 0x00, 0x67, 0x10, 0x00, | ||
1887 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xf8, | ||
1888 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x80, | ||
1889 | 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1890 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1891 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1892 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0xc0, 0xff, 0x67, | ||
1893 | 0x8c, 0xf9, 0xfb, 0x73, 0x00, 0x67, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1894 | 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x1f, 0xe7, 0xff, 0xff, 0xff, 0xff, | ||
1895 | 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x07, 0x00, 0x00, | ||
1896 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1897 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1898 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1899 | 0x00, 0x00, 0x00, 0x03, 0x00, 0xc0, 0x27, 0xfc, 0x73, 0xc6, 0x1c, 0x8c, | ||
1900 | 0x37, 0x80, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, | ||
1901 | 0xff, 0xff, 0x1f, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, | ||
1902 | 0x00, 0x00, 0x00, 0xf0, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1903 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1904 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1905 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, | ||
1906 | 0x00, 0xc0, 0x27, 0xfc, 0x73, 0xc6, 0x1c, 0x8c, 0x37, 0x80, 0x0c, 0x00, | ||
1907 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xfc, | ||
1908 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, | ||
1909 | 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1910 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1911 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1912 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x08, 0xc0, 0xfe, 0x03, | ||
1913 | 0x8c, 0x09, 0xe3, 0x73, 0xc8, 0x06, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1914 | 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xff, | ||
1915 | 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x18, 0x00, 0x00, | ||
1916 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1917 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1918 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1919 | 0x00, 0x00, 0x00, 0xff, 0x0f, 0xc0, 0xfe, 0x03, 0x8c, 0x09, 0xe3, 0x73, | ||
1920 | 0xc8, 0x06, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, | ||
1921 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, | ||
1922 | 0x00, 0x00, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1923 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1924 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1925 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, | ||
1926 | 0x0f, 0xc0, 0x27, 0xe7, 0x31, 0x36, 0x04, 0x8c, 0x01, 0x60, 0x03, 0x00, | ||
1927 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
1928 | 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, | ||
1929 | 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1930 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1931 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1932 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x0f, 0xc0, 0xde, 0x18, | ||
1933 | 0x42, 0xc0, 0x98, 0x30, 0x08, 0x01, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, | ||
1934 | 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, | ||
1935 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x18, 0x00, 0x00, | ||
1936 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1937 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1938 | 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1939 | 0x00, 0x00, 0x00, 0xff, 0x0f, 0xc0, 0xde, 0x18, 0x42, 0xc0, 0x98, 0x30, | ||
1940 | 0x08, 0x01, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, | ||
1941 | 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1942 | 0x00, 0x00, 0x00, 0xf0, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1943 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1944 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1945 | 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, | ||
1946 | 0x00, 0xc0, 0x27, 0x63, 0x00, 0x08, 0x63, 0x03, 0x06, 0x60, 0x10, 0x00, | ||
1947 | 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
1948 | 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, | ||
1949 | 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1950 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1951 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x07, 0x00, | ||
1952 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xc0, 0x27, 0x63, | ||
1953 | 0x00, 0x08, 0x63, 0x03, 0x06, 0x60, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1954 | 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, | ||
1955 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x07, 0x00, 0x00, | ||
1956 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1957 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1958 | 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1959 | 0x00, 0x00, 0x00, 0x00, 0x08, 0xc0, 0xd9, 0x04, 0xb2, 0x01, 0x00, 0xb0, | ||
1960 | 0x31, 0x19, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf9, 0xff, | ||
1961 | 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1962 | 0x00, 0x00, 0x00, 0x80, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1963 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1964 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1965 | 0xfe, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, | ||
1966 | 0x08, 0xc0, 0xd9, 0x04, 0xb2, 0x01, 0x00, 0xb0, 0x31, 0x19, 0x03, 0x00, | ||
1967 | 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xff, 0xff, 0x07, | ||
1968 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1969 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1970 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1971 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x07, 0x00, | ||
1972 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0c, 0xc0, 0x1e, 0x63, | ||
1973 | 0x00, 0x30, 0x04, 0x03, 0xc8, 0x60, 0x00, 0x0e, 0x00, 0x00, 0xfc, 0xff, | ||
1974 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, | ||
1975 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1976 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1977 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1978 | 0x00, 0x00, 0x00, 0x00, 0x02, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1979 | 0x00, 0x00, 0x00, 0x03, 0x0e, 0xc0, 0xe1, 0x18, 0x80, 0x01, 0x60, 0xb0, | ||
1980 | 0x01, 0xe7, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
1981 | 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1982 | 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1983 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1984 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1985 | 0x02, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, | ||
1986 | 0x0f, 0xc0, 0xe1, 0x18, 0x80, 0x01, 0x60, 0xb0, 0x01, 0xe7, 0xf3, 0xff, | ||
1987 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, | ||
1988 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, | ||
1989 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1990 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1991 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x04, 0x04, 0x00, | ||
1992 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8d, 0x0f, 0xc0, 0x1e, 0x03, | ||
1993 | 0x02, 0x08, 0x04, 0x00, 0xc8, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
1994 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1995 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, | ||
1996 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1997 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1998 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
1999 | 0x00, 0x00, 0x00, 0xd8, 0x0f, 0xc0, 0x1e, 0x03, 0x02, 0x08, 0x04, 0x00, | ||
2000 | 0xc8, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
2001 | 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2002 | 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2003 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2004 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2005 | 0xc0, 0x0f, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, | ||
2006 | 0x0b, 0x00, 0x21, 0x64, 0x40, 0xc0, 0x00, 0xb3, 0xf1, 0xfe, 0xff, 0xff, | ||
2007 | 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, | ||
2008 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, | ||
2009 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2010 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2011 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xfb, 0x07, 0x00, | ||
2012 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x21, 0x64, | ||
2013 | 0x40, 0xc0, 0x00, 0xb3, 0xf1, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
2014 | 0xfb, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2015 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2016 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2017 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2018 | 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfb, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2019 | 0x00, 0x00, 0x00, 0xfd, 0x00, 0xc0, 0xdf, 0x00, 0x00, 0x06, 0x60, 0x00, | ||
2020 | 0x0e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
2021 | 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2022 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2023 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2024 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2025 | 0xfe, 0xf9, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, | ||
2026 | 0x01, 0xc0, 0xdf, 0x00, 0x00, 0x06, 0x60, 0x00, 0x0e, 0xff, 0xff, 0xff, | ||
2027 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, | ||
2028 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, | ||
2029 | 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2030 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2031 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0xf0, 0x03, 0x00, | ||
2032 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x0b, 0xc0, 0xc0, 0x84, | ||
2033 | 0x31, 0xc0, 0x00, 0x4c, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
2034 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2035 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x83, 0x07, 0x00, 0x00, | ||
2036 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2037 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2038 | 0x00, 0x00, 0x00, 0x00, 0x1e, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2039 | 0x00, 0x00, 0x00, 0x0f, 0x0e, 0xc0, 0x3f, 0x18, 0x00, 0x06, 0x84, 0x80, | ||
2040 | 0x09, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
2041 | 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2042 | 0x00, 0x00, 0x00, 0xf0, 0xc3, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2043 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2044 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2045 | 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, | ||
2046 | 0x0c, 0xc0, 0x3f, 0x18, 0x00, 0x06, 0x84, 0x80, 0x09, 0xff, 0xff, 0x3f, | ||
2047 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, | ||
2048 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, | ||
2049 | 0xc1, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2050 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2051 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, | ||
2052 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x08, 0xc0, 0xc1, 0x03, | ||
2053 | 0x4c, 0x00, 0x00, 0x30, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
2054 | 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2055 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x90, 0x13, 0x00, 0x00, | ||
2056 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2057 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2058 | 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2059 | 0x00, 0x00, 0x00, 0x01, 0x08, 0xc0, 0xc1, 0x03, 0x4c, 0x00, 0x00, 0x30, | ||
2060 | 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
2061 | 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2062 | 0x00, 0x00, 0x00, 0x08, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2063 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2064 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2065 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, | ||
2066 | 0x00, 0xc0, 0x3f, 0x98, 0x01, 0x08, 0x1b, 0x43, 0xc8, 0xff, 0xff, 0xff, | ||
2067 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, | ||
2068 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, | ||
2069 | 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2070 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2071 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2072 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x98, | ||
2073 | 0x01, 0x08, 0x1b, 0x43, 0xc8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
2074 | 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2075 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x38, 0x18, 0x00, 0x00, | ||
2076 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2077 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2078 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2079 | 0x00, 0x00, 0x00, 0x0e, 0x00, 0xc0, 0xc6, 0x03, 0x40, 0x00, 0x00, 0x80, | ||
2080 | 0x31, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff, | ||
2081 | 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2082 | 0x00, 0x00, 0x00, 0xf8, 0xef, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2083 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2084 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2085 | 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, | ||
2086 | 0x00, 0x00, 0x3f, 0x18, 0x0c, 0x30, 0x60, 0x0c, 0xce, 0xff, 0xff, 0xff, | ||
2087 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, | ||
2088 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, | ||
2089 | 0xef, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2090 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2091 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, | ||
2092 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x3f, 0x18, | ||
2093 | 0x0c, 0x30, 0x60, 0x0c, 0xce, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
2094 | 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2095 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xc7, 0x0f, 0x00, 0x00, | ||
2096 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2097 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2098 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2099 | 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0xde, 0x63, 0x40, 0x06, 0x03, 0x30, | ||
2100 | 0x30, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, | ||
2101 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2102 | 0x00, 0x00, 0x00, 0xc0, 0x83, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2103 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2104 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2105 | 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, | ||
2106 | 0x00, 0x00, 0xde, 0x63, 0x40, 0x06, 0x03, 0x30, 0x30, 0xff, 0xff, 0xff, | ||
2107 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, | ||
2108 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2109 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2110 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2111 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04, 0x00, | ||
2112 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x04, | ||
2113 | 0x02, 0x00, 0x00, 0x83, 0xc9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
2114 | 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2115 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2116 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2117 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2118 | 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2119 | 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x38, 0x04, 0x02, 0x00, 0x00, 0x83, | ||
2120 | 0xc9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, | ||
2121 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2122 | 0x00, 0x00, 0x00, 0xc0, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2123 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2124 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2125 | 0xfe, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, | ||
2126 | 0x03, 0x00, 0xe0, 0x1b, 0x0c, 0x08, 0x18, 0x40, 0x30, 0xfe, 0xff, 0xff, | ||
2127 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, | ||
2128 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, | ||
2129 | 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2130 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2131 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x07, 0x00, | ||
2132 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x07, 0x00, 0xc0, 0x84, | ||
2133 | 0x81, 0x01, 0x03, 0x0c, 0xc6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
2134 | 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2135 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x0f, 0x00, 0x00, | ||
2136 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2137 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2138 | 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2139 | 0x00, 0x00, 0x00, 0xfe, 0x07, 0x00, 0xc0, 0x84, 0x81, 0x01, 0x03, 0x0c, | ||
2140 | 0xc6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, | ||
2141 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2142 | 0x00, 0x00, 0x00, 0xf8, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2143 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2144 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2145 | 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, | ||
2146 | 0x0e, 0x00, 0x00, 0x1b, 0x0c, 0x30, 0x80, 0x00, 0x30, 0xf8, 0xff, 0xff, | ||
2147 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2148 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, | ||
2149 | 0x10, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2150 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2151 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04, 0x00, | ||
2152 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x1b, | ||
2153 | 0x0c, 0x30, 0x80, 0x00, 0x30, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
2154 | 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2155 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0x10, 0x00, 0x00, | ||
2156 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2157 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2158 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2159 | 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x67, 0xc0, 0x01, 0x04, 0x40, | ||
2160 | 0x00, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, | ||
2161 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2162 | 0x00, 0x00, 0x00, 0x08, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2163 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2164 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2165 | 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, | ||
2166 | 0x08, 0x00, 0x00, 0x67, 0xc0, 0x01, 0x04, 0x40, 0x00, 0xe1, 0xff, 0xff, | ||
2167 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2168 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, | ||
2169 | 0x30, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2170 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2171 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, | ||
2172 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x9c, | ||
2173 | 0x01, 0x08, 0x60, 0x0c, 0x06, 0x86, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, | ||
2174 | 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2175 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xbf, 0x1f, 0x00, 0x00, | ||
2176 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2177 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2178 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2179 | 0x00, 0x00, 0x00, 0x07, 0x0e, 0x00, 0x00, 0x18, 0x0c, 0xc0, 0x00, 0x00, | ||
2180 | 0xc0, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, | ||
2181 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2182 | 0x00, 0x00, 0x00, 0xf0, 0x9f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2183 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2184 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2185 | 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, | ||
2186 | 0x07, 0x00, 0x00, 0x18, 0x0c, 0xc0, 0x00, 0x00, 0xc0, 0x00, 0xfc, 0xff, | ||
2187 | 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2188 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, | ||
2189 | 0x1f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2190 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2191 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2192 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x07, 0x00, 0x00, 0xe0, | ||
2193 | 0x01, 0x06, 0x00, 0x30, 0x06, 0x86, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
2194 | 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2195 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, | ||
2196 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2197 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2198 | 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2199 | 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0xe0, 0x01, 0x06, 0x00, 0x30, | ||
2200 | 0x06, 0x86, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, | ||
2201 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2202 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2203 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2204 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2205 | 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, | ||
2206 | 0x00, 0x00, 0x00, 0x60, 0x30, 0x00, 0x63, 0x03, 0x30, 0x00, 0xe0, 0xff, | ||
2207 | 0xff, 0xff, 0xff, 0x8f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2208 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2209 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2210 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2211 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, | ||
2212 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, | ||
2213 | 0x30, 0x00, 0x63, 0x03, 0x30, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x0f, | ||
2214 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2215 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2216 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2217 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2218 | 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2219 | 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x80, 0x83, 0x09, 0x18, 0x00, | ||
2220 | 0x00, 0x06, 0x83, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2221 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2222 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2223 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2224 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2225 | 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, | ||
2226 | 0x08, 0x00, 0x00, 0x80, 0x83, 0x09, 0x18, 0x00, 0x00, 0x06, 0x83, 0xff, | ||
2227 | 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2228 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2229 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2230 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2231 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, | ||
2232 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x0f, 0x00, 0x00, 0x00, | ||
2233 | 0x00, 0xc0, 0x00, 0x8c, 0xc9, 0x60, 0x00, 0xfe, 0xff, 0xff, 0x01, 0x00, | ||
2234 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2235 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2236 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2237 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2238 | 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2239 | 0x00, 0x00, 0x00, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x8e, 0x01, 0x84, 0x40, | ||
2240 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2241 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2242 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2243 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2244 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2245 | 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, | ||
2246 | 0x0f, 0x00, 0x00, 0x00, 0x8e, 0x01, 0x84, 0x40, 0x00, 0x00, 0x00, 0x00, | ||
2247 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2248 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2249 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2250 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2251 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, | ||
2252 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x0f, 0x00, 0x00, 0x00, | ||
2253 | 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2254 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2255 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2256 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2257 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2258 | 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2259 | 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, | ||
2260 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2261 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2262 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2263 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2264 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2265 | 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, | ||
2266 | 0x04, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x60, 0x83, 0x01, 0x00, 0x00, 0x00, | ||
2267 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2268 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2269 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2270 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2271 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, | ||
2272 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, | ||
2273 | 0x00, 0xc8, 0x60, 0x83, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2274 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2275 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2276 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2277 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2278 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2279 | 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x30, 0x06, 0x00, 0x0c, | ||
2280 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2281 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2282 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2283 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2284 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2285 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2286 | 0x0f, 0x00, 0x00, 0x00, 0x80, 0xc1, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2287 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2288 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2289 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2290 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2291 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1f, 0x00, 0x00, | ||
2292 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, | ||
2293 | 0x80, 0xc1, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2294 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2295 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2296 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2297 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2298 | 0x00, 0x00, 0x00, 0x00, 0xe0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2299 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x08, 0x60, 0x00, | ||
2300 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2301 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2302 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2303 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2304 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2305 | 0xf8, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xc6, | ||
2306 | 0x03, 0x00, 0x00, 0x00, 0x40, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2307 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2308 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2309 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2310 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2311 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x01, 0x00, | ||
2312 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xef, 0x07, 0x00, 0x00, 0x00, | ||
2313 | 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2314 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2315 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2316 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2317 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2318 | 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2319 | 0x00, 0x00, 0xd8, 0xef, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, | ||
2320 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2321 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2322 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2323 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2324 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2325 | 0x1c, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0xf3, | ||
2326 | 0x0f, 0x00, 0x00, 0x00, 0x80, 0x09, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2327 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2328 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2329 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2330 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2331 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, | ||
2332 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x33, 0x0c, 0x00, 0x00, 0x00, | ||
2333 | 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2334 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2335 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2336 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2337 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2338 | 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2339 | 0x00, 0x00, 0x88, 0x13, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2340 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2341 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2342 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2343 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2344 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2345 | 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x13, | ||
2346 | 0x08, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2347 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2348 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2349 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2350 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2351 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04, 0x00, | ||
2352 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x33, 0x0c, 0x00, 0x00, 0x00, | ||
2353 | 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2354 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2355 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2356 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2357 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2358 | 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2359 | 0x00, 0x00, 0x88, 0xf3, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, | ||
2360 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2361 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2362 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2363 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2364 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2365 | 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0xe3, | ||
2366 | 0x0f, 0x00, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2367 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2368 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2369 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2370 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2371 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x06, 0x00, | ||
2372 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0xe1, 0x1f, 0x00, 0x00, 0x00, | ||
2373 | 0x00, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2374 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2375 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2376 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2377 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2378 | 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2379 | 0x00, 0x00, 0xf0, 0xc1, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2380 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2381 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2382 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2383 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2384 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2385 | 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, | ||
2386 | 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2387 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2388 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2389 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2390 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2391 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0xc0, 0x07, 0x00, | ||
2392 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2393 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2394 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2395 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2396 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2397 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2398 | 0x00, 0x00, 0x00, 0x00, 0x60, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2399 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2400 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2401 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2402 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2403 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2404 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2405 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2406 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2407 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2408 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2409 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2410 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2411 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, | ||
2412 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2413 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2414 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2415 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2416 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2417 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2418 | 0x00, 0x00, 0x00, 0x00, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2419 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2420 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2421 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2422 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2423 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2424 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2425 | 0xfc, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2426 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2427 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2428 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2429 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2430 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2431 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x0f, 0x00, 0x00, | ||
2432 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2433 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2434 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2435 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2436 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2437 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2438 | 0x00, 0x00, 0x00, 0x00, 0x0e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2439 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2440 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2441 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2442 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2443 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2444 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2445 | 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2446 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2447 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2448 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2449 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2450 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2451 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x10, 0x00, 0x00, | ||
2452 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2453 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2454 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2455 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2456 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2457 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2458 | 0x00, 0x00, 0x00, 0x00, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2459 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2460 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2461 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2462 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2463 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2464 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2465 | 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2466 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2467 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2468 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2469 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2470 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2471 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x1c, 0x00, 0x00, | ||
2472 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2473 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2474 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2475 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2476 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2477 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2478 | 0x00, 0x00, 0x00, 0x00, 0xfc, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2479 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2480 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2481 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2482 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2483 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2484 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2485 | 0xfc, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2486 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2487 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2488 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2489 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2490 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2491 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x07, 0x00, 0x00, | ||
2492 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2493 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2494 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2495 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2496 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2497 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2498 | 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2499 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2500 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2501 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2502 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2503 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2504 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2505 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2506 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2507 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2508 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2509 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2510 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2511 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x10, 0x00, 0x00, | ||
2512 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2513 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2514 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2515 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2516 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2517 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2518 | 0x00, 0x00, 0x00, 0x00, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2519 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2520 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2521 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2522 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2523 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2524 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2525 | 0xfe, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2526 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2527 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2528 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2529 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2530 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2531 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x1f, 0x00, 0x00, | ||
2532 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2533 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2534 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2535 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2536 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2537 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2538 | 0x00, 0x00, 0x00, 0x00, 0xfe, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2539 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2540 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2541 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2542 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2543 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2544 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2545 | 0xfe, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2546 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2547 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2548 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2549 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2550 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2551 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, | ||
2552 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2553 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2554 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2555 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2556 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2557 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2558 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2559 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2560 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2561 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2562 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2563 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2564 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2565 | 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2566 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2567 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2568 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2569 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2570 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2571 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, | ||
2572 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2573 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2574 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2575 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2576 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2577 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2578 | 0x00, 0x00, 0x00, 0x00, 0x02, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2579 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2580 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2581 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2582 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2583 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2584 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2585 | 0xfe, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2586 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2587 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2588 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2589 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2590 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2591 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x1f, 0x00, 0x00, | ||
2592 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2593 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2594 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2595 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2596 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2597 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2598 | 0x00, 0x00, 0x00, 0x00, 0xfe, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2599 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2600 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2601 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2602 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2603 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2604 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2605 | 0xfe, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2606 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2607 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2608 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2609 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2610 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2611 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, | ||
2612 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2613 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2614 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2615 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2616 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2617 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2618 | 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2619 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2620 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2621 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2622 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2623 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2624 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2625 | 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2626 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2627 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2628 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2629 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2630 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2631 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, | ||
2632 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2633 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2634 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2635 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2636 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2637 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2638 | 0x00, 0x00, 0x00, 0x00, 0xf8, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2639 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2640 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2641 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2642 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2643 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2644 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2645 | 0xfc, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2646 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2647 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2648 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2649 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2650 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2651 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x01, 0x00, | ||
2652 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2653 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2654 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2655 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2656 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2657 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2658 | 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2659 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2660 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2661 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2662 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2663 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2664 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2665 | 0x06, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2666 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2667 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2668 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2669 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2670 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2671 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x10, 0x00, 0x00, | ||
2672 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2673 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2674 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2675 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2676 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2677 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2678 | 0x00, 0x00, 0x00, 0x00, 0x04, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2679 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2680 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2681 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2682 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2683 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2684 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2685 | 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2686 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2687 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2688 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2689 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2690 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2691 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2692 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2693 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2694 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2695 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2696 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2697 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2698 | 0x00, 0x00, 0x00, 0x00, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2699 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2700 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2701 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2702 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2703 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2704 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2705 | 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2706 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2707 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2708 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2709 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2710 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2711 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x1f, 0x00, 0x00, | ||
2712 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2713 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2714 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2715 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2716 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2717 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2718 | 0x00, 0x00, 0x00, 0x00, 0xfe, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2719 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2720 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2721 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2722 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2723 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2724 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2725 | 0xfe, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2726 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2727 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2728 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2729 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2730 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2731 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x1f, 0x00, 0x00, | ||
2732 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2733 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2734 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2735 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2736 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2737 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2738 | 0x00, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2739 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2740 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2741 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2742 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2743 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2744 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2745 | 0x02, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2746 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2747 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2748 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2749 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2750 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2751 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, | ||
2752 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2753 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2754 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2755 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2756 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2757 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2758 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2759 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2760 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2761 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2762 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2763 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2764 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2765 | 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2766 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2767 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2768 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2769 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2770 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2771 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, | ||
2772 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2773 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2774 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2775 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2776 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2777 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2778 | 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2779 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2780 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2781 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2782 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2783 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2784 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2785 | 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2786 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2787 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2788 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2789 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2790 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2791 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x0f, 0x00, 0x00, | ||
2792 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2793 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2794 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2795 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2796 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2797 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2798 | 0x00, 0x00, 0x00, 0x00, 0xfc, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2799 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2800 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2801 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2802 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2803 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2804 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2805 | 0x0e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2806 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2807 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2808 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2809 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2810 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2811 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x10, 0x00, 0x00, | ||
2812 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2813 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2814 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2815 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2816 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2817 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2818 | 0x00, 0x00, 0x00, 0x00, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2819 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2820 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2821 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2822 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2823 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2824 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2825 | 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2826 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2827 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2828 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2829 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2830 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2831 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x10, 0x00, 0x00, | ||
2832 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2833 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2834 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2835 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2836 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2837 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2838 | 0x00, 0x00, 0x00, 0x00, 0x0e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2839 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2840 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2841 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2842 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2843 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2844 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2845 | 0xfc, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2846 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2847 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2848 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2849 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2850 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2851 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x0f, 0x00, 0x00, | ||
2852 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2853 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2854 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2855 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2856 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2857 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2858 | 0x00, 0x00, 0x00, 0x00, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2859 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2860 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2861 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2862 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2863 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2864 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2865 | 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2866 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2867 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2868 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2869 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2870 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2871 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2872 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2873 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2874 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2875 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2876 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2877 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2878 | 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2879 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2880 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2881 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2882 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2883 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2884 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2885 | 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2886 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2887 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2888 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2889 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2890 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2891 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x07, 0x00, | ||
2892 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2893 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2894 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2895 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2896 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2897 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2898 | 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2899 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2900 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2901 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2902 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2903 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2904 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2905 | 0xfe, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2906 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2907 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2908 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2909 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2910 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2911 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x07, 0x00, | ||
2912 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2913 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2914 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2915 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2916 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2917 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2918 | 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2919 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2920 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2921 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2922 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2923 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2924 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2925 | 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2926 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2927 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2928 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2929 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2930 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2931 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2932 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2933 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2934 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2935 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2936 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2937 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2938 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2939 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2940 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2941 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2942 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2943 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2944 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2945 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2946 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2947 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2948 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2949 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2950 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2951 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2952 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2953 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2954 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2955 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2956 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2957 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2958 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2959 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2960 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2961 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2962 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2963 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2964 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2965 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2966 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2967 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2968 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2969 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2970 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2971 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2972 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2973 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2974 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2975 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2976 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2977 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2978 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2979 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2980 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2981 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2982 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2983 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2984 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2985 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2986 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2987 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2988 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2989 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2990 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2991 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2992 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2993 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2994 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2995 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2996 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2997 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2998 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
2999 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3000 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3001 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3002 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3003 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3004 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3005 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3006 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3007 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3008 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3009 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3010 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3011 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3012 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3013 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3014 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3015 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3016 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3017 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3018 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3019 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3020 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3021 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3022 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3023 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3024 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3025 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3026 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3027 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3028 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3029 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3030 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3031 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3032 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3033 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3034 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3035 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3036 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3037 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3038 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3039 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3040 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3041 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3042 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3043 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3044 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3045 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3046 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3047 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3048 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3049 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3050 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3051 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3052 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3053 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3054 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3055 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3056 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3057 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3058 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3059 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3060 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3061 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3062 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3063 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3064 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3065 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3066 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3067 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3068 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3069 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3070 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3071 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3072 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3073 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3074 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3075 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3076 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3077 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3078 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3079 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3080 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3081 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3082 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3083 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3084 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3085 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3086 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3087 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3088 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3089 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3090 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3091 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3092 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3093 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3094 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3095 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3096 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3097 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3098 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3099 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3100 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3101 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3102 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3103 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3104 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3105 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3106 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3107 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3108 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3109 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3110 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3111 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3112 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3113 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3114 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3115 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3116 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3117 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3118 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3119 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3120 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3121 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3122 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3123 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3124 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3125 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3126 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3127 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3128 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3129 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3130 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3131 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3132 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3133 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3134 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3135 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3136 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3137 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3138 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3139 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3140 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3141 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3142 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3143 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3144 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3145 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3146 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3147 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3148 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3149 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3150 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3151 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3152 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3153 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3154 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3155 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3156 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3157 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3158 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3159 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3160 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3161 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3162 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3163 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3164 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3165 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3166 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3167 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3168 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3169 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3170 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3171 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3172 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3173 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3174 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3175 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3176 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3177 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3178 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3179 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3180 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3181 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3182 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3183 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3184 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3185 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3186 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3187 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3188 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3189 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3190 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3191 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3192 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3193 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3194 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3195 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3196 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3197 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3198 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3199 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3200 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3201 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3202 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3203 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
3204 | }; | ||
diff --git a/arch/m68knommu/platform/68EZ328/config.c b/arch/m68knommu/platform/68EZ328/config.c new file mode 100644 index 000000000000..c21971971ff5 --- /dev/null +++ b/arch/m68knommu/platform/68EZ328/config.c | |||
@@ -0,0 +1,129 @@ | |||
1 | /* | ||
2 | * linux/arch/$(ARCH)/platform/$(PLATFORM)/config.c | ||
3 | * | ||
4 | * Copyright (C) 1993 Hamish Macdonald | ||
5 | * Copyright (C) 1999 D. Jeff Dionne | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General Public | ||
8 | * License. See the file COPYING in the main directory of this archive | ||
9 | * for more details. | ||
10 | */ | ||
11 | |||
12 | #include <stdarg.h> | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/types.h> | ||
15 | #include <linux/kernel.h> | ||
16 | #include <linux/mm.h> | ||
17 | #include <linux/tty.h> | ||
18 | #include <linux/console.h> | ||
19 | |||
20 | #include <asm/setup.h> | ||
21 | #include <asm/system.h> | ||
22 | #include <asm/pgtable.h> | ||
23 | #include <asm/irq.h> | ||
24 | #include <asm/machdep.h> | ||
25 | #include <asm/MC68EZ328.h> | ||
26 | #ifdef CONFIG_UCSIMM | ||
27 | #include <asm/bootstd.h> | ||
28 | #endif | ||
29 | #ifdef CONFIG_PILOT | ||
30 | #include "PalmV/romfs.h" | ||
31 | #endif | ||
32 | |||
33 | void BSP_sched_init(void (*timer_routine)(int, void *, struct pt_regs *)) | ||
34 | { | ||
35 | /* Restart mode, Enable int, 32KHz, Enable timer */ | ||
36 | TCTL = TCTL_OM | TCTL_IRQEN | TCTL_CLKSOURCE_32KHZ | TCTL_TEN; | ||
37 | /* Set prescaler (Divide 32KHz by 32)*/ | ||
38 | TPRER = 31; | ||
39 | /* Set compare register 32Khz / 32 / 10 = 100 */ | ||
40 | TCMP = 10; | ||
41 | |||
42 | request_irq(TMR_IRQ_NUM, timer_routine, IRQ_FLG_LOCK, "timer", NULL); | ||
43 | } | ||
44 | |||
45 | void BSP_tick(void) | ||
46 | { | ||
47 | /* Reset Timer1 */ | ||
48 | TSTAT &= 0; | ||
49 | } | ||
50 | |||
51 | unsigned long BSP_gettimeoffset (void) | ||
52 | { | ||
53 | return 0; | ||
54 | } | ||
55 | |||
56 | void BSP_gettod (int *yearp, int *monp, int *dayp, | ||
57 | int *hourp, int *minp, int *secp) | ||
58 | { | ||
59 | } | ||
60 | |||
61 | int BSP_hwclk(int op, struct hwclk_time *t) | ||
62 | { | ||
63 | if (!op) { | ||
64 | /* read */ | ||
65 | } else { | ||
66 | /* write */ | ||
67 | } | ||
68 | return 0; | ||
69 | } | ||
70 | |||
71 | int BSP_set_clock_mmss (unsigned long nowtime) | ||
72 | { | ||
73 | #if 0 | ||
74 | short real_seconds = nowtime % 60, real_minutes = (nowtime / 60) % 60; | ||
75 | |||
76 | tod->second1 = real_seconds / 10; | ||
77 | tod->second2 = real_seconds % 10; | ||
78 | tod->minute1 = real_minutes / 10; | ||
79 | tod->minute2 = real_minutes % 10; | ||
80 | #endif | ||
81 | return 0; | ||
82 | } | ||
83 | |||
84 | void BSP_reset (void) | ||
85 | { | ||
86 | local_irq_disable(); | ||
87 | asm volatile (" | ||
88 | moveal #0x10c00000, %a0; | ||
89 | moveb #0, 0xFFFFF300; | ||
90 | moveal 0(%a0), %sp; | ||
91 | moveal 4(%a0), %a0; | ||
92 | jmp (%a0); | ||
93 | "); | ||
94 | } | ||
95 | |||
96 | unsigned char *cs8900a_hwaddr; | ||
97 | static int errno; | ||
98 | |||
99 | #ifdef CONFIG_UCSIMM | ||
100 | _bsc0(char *, getserialnum) | ||
101 | _bsc1(unsigned char *, gethwaddr, int, a) | ||
102 | _bsc1(char *, getbenv, char *, a) | ||
103 | #endif | ||
104 | |||
105 | void config_BSP(char *command, int len) | ||
106 | { | ||
107 | unsigned char *p; | ||
108 | |||
109 | printk(KERN_INFO "\n68EZ328 DragonBallEZ support (C) 1999 Rt-Control, Inc\n"); | ||
110 | |||
111 | #ifdef CONFIG_UCSIMM | ||
112 | printk(KERN_INFO "uCsimm serial string [%s]\n",getserialnum()); | ||
113 | p = cs8900a_hwaddr = gethwaddr(0); | ||
114 | printk(KERN_INFO "uCsimm hwaddr %.2x:%.2x:%.2x:%.2x:%.2x:%.2x\n", | ||
115 | p[0], p[1], p[2], p[3], p[4], p[5]); | ||
116 | |||
117 | p = getbenv("APPEND"); | ||
118 | if (p) strcpy(p,command); | ||
119 | else command[0] = 0; | ||
120 | #endif | ||
121 | |||
122 | mach_sched_init = BSP_sched_init; | ||
123 | mach_tick = BSP_tick; | ||
124 | mach_gettimeoffset = BSP_gettimeoffset; | ||
125 | mach_gettod = BSP_gettod; | ||
126 | mach_hwclk = NULL; | ||
127 | mach_set_clock_mmss = NULL; | ||
128 | mach_reset = BSP_reset; | ||
129 | } | ||
diff --git a/arch/m68knommu/platform/68VZ328/Makefile b/arch/m68knommu/platform/68VZ328/Makefile new file mode 100644 index 000000000000..447ffa0fd7c7 --- /dev/null +++ b/arch/m68knommu/platform/68VZ328/Makefile | |||
@@ -0,0 +1,16 @@ | |||
1 | # | ||
2 | # Makefile for arch/m68knommu/platform/68VZ328. | ||
3 | # | ||
4 | |||
5 | obj-y := config.o | ||
6 | logo-$(UCDIMM) := bootlogo.rh | ||
7 | logo-$(DRAGEN2) := screen.h | ||
8 | extra-y := $(logo-y) | ||
9 | |||
10 | $(obj)/bootlogo.rh: $(src)/../68EZ328/bootlogo.h | ||
11 | perl $(src)/bootlogo.pl < $(src)/../68328/bootlogo.h > $(obj)/bootlogo.rh | ||
12 | |||
13 | $(obj)/screen.h: $(src)/screen.xbm $(src)/xbm2lcd.pl | ||
14 | perl $(src)/xbm2lcd.pl < $(src)/screen.xbm > $(obj)/screen.h | ||
15 | |||
16 | clean-files := $(obj)/screen.h $(obj)/bootlogo.rh | ||
diff --git a/arch/m68knommu/platform/68VZ328/de2/config.c b/arch/m68knommu/platform/68VZ328/de2/config.c new file mode 100644 index 000000000000..d0586197f113 --- /dev/null +++ b/arch/m68knommu/platform/68VZ328/de2/config.c | |||
@@ -0,0 +1,191 @@ | |||
1 | /* | ||
2 | * linux/arch/m68knommu/platform/MC68VZ328/de2/config.c | ||
3 | * | ||
4 | * Copyright (C) 1993 Hamish Macdonald | ||
5 | * Copyright (C) 1999 D. Jeff Dionne | ||
6 | * Copyright (C) 2001 Georges Menie, Ken Desmet | ||
7 | * | ||
8 | * This file is subject to the terms and conditions of the GNU General Public | ||
9 | * License. See the file COPYING in the main directory of this archive | ||
10 | * for more details. | ||
11 | */ | ||
12 | |||
13 | #include <linux/config.h> | ||
14 | #include <linux/types.h> | ||
15 | #include <linux/kernel.h> | ||
16 | #include <linux/mm.h> | ||
17 | #include <linux/tty.h> | ||
18 | #include <linux/console.h> | ||
19 | #include <linux/kd.h> | ||
20 | #include <linux/netdevice.h> | ||
21 | |||
22 | #include <asm/setup.h> | ||
23 | #include <asm/system.h> | ||
24 | #include <asm/pgtable.h> | ||
25 | #include <asm/irq.h> | ||
26 | #include <asm/machdep.h> | ||
27 | #include <asm/MC68VZ328.h> | ||
28 | |||
29 | #ifdef CONFIG_INIT_LCD | ||
30 | #include "screen.h" | ||
31 | #endif | ||
32 | |||
33 | /* with a 33.16 MHz clock, this will give usec resolution to the time functions */ | ||
34 | #define CLOCK_SOURCE TCTL_CLKSOURCE_SYSCLK | ||
35 | #define CLOCK_PRE 7 | ||
36 | #define TICKS_PER_JIFFY 41450 | ||
37 | |||
38 | static void | ||
39 | dragen2_sched_init(irqreturn_t (*timer_routine) (int, void *, struct pt_regs *)) | ||
40 | { | ||
41 | /* disable timer 1 */ | ||
42 | TCTL = 0; | ||
43 | |||
44 | /* set ISR */ | ||
45 | if (request_irq(TMR_IRQ_NUM, timer_routine, IRQ_FLG_LOCK, "timer", NULL)) | ||
46 | panic("Unable to attach timer interrupt\n"); | ||
47 | |||
48 | /* Restart mode, Enable int, Set clock source */ | ||
49 | TCTL = TCTL_OM | TCTL_IRQEN | CLOCK_SOURCE; | ||
50 | TPRER = CLOCK_PRE; | ||
51 | TCMP = TICKS_PER_JIFFY; | ||
52 | |||
53 | /* Enable timer 1 */ | ||
54 | TCTL |= TCTL_TEN; | ||
55 | } | ||
56 | |||
57 | static void dragen2_tick(void) | ||
58 | { | ||
59 | /* Reset Timer1 */ | ||
60 | TSTAT &= 0; | ||
61 | } | ||
62 | |||
63 | static unsigned long dragen2_gettimeoffset(void) | ||
64 | { | ||
65 | unsigned long ticks = TCN, offset = 0; | ||
66 | |||
67 | /* check for pending interrupt */ | ||
68 | if (ticks < (TICKS_PER_JIFFY >> 1) && (ISR & (1 << TMR_IRQ_NUM))) | ||
69 | offset = 1000000 / HZ; | ||
70 | |||
71 | ticks = (ticks * 1000000 / HZ) / TICKS_PER_JIFFY; | ||
72 | |||
73 | return ticks + offset; | ||
74 | } | ||
75 | |||
76 | static void dragen2_gettod(int *year, int *mon, int *day, int *hour, | ||
77 | int *min, int *sec) | ||
78 | { | ||
79 | long now = RTCTIME; | ||
80 | |||
81 | *year = *mon = *day = 1; | ||
82 | *hour = (now >> 24) % 24; | ||
83 | *min = (now >> 16) % 60; | ||
84 | *sec = now % 60; | ||
85 | } | ||
86 | |||
87 | static void dragen2_reset(void) | ||
88 | { | ||
89 | local_irq_disable(); | ||
90 | |||
91 | #ifdef CONFIG_INIT_LCD | ||
92 | PBDATA |= 0x20; /* disable CCFL light */ | ||
93 | PKDATA |= 0x4; /* disable LCD controller */ | ||
94 | LCKCON = 0; | ||
95 | #endif | ||
96 | |||
97 | __asm__ __volatile__( | ||
98 | "reset\n\t" | ||
99 | "moveal #0x04000000, %a0\n\t" | ||
100 | "moveal 0(%a0), %sp\n\t" | ||
101 | "moveal 4(%a0), %a0\n\t" | ||
102 | "jmp (%a0)" | ||
103 | ); | ||
104 | } | ||
105 | |||
106 | static void init_hardware(void) | ||
107 | { | ||
108 | #ifdef CONFIG_DIRECT_IO_ACCESS | ||
109 | SCR = 0x10; /* allow user access to internal registers */ | ||
110 | #endif | ||
111 | |||
112 | /* CSGB Init */ | ||
113 | CSGBB = 0x4000; | ||
114 | CSB = 0x1a1; | ||
115 | |||
116 | /* CS8900 init */ | ||
117 | /* PK3: hardware sleep function pin, active low */ | ||
118 | PKSEL |= PK(3); /* select pin as I/O */ | ||
119 | PKDIR |= PK(3); /* select pin as output */ | ||
120 | PKDATA |= PK(3); /* set pin high */ | ||
121 | |||
122 | /* PF5: hardware reset function pin, active high */ | ||
123 | PFSEL |= PF(5); /* select pin as I/O */ | ||
124 | PFDIR |= PF(5); /* select pin as output */ | ||
125 | PFDATA &= ~PF(5); /* set pin low */ | ||
126 | |||
127 | /* cs8900 hardware reset */ | ||
128 | PFDATA |= PF(5); | ||
129 | { int i; for (i = 0; i < 32000; ++i); } | ||
130 | PFDATA &= ~PF(5); | ||
131 | |||
132 | /* INT1 enable (cs8900 IRQ) */ | ||
133 | PDPOL &= ~PD(1); /* active high signal */ | ||
134 | PDIQEG &= ~PD(1); | ||
135 | PDIRQEN |= PD(1); /* IRQ enabled */ | ||
136 | |||
137 | #ifdef CONFIG_68328_SERIAL_UART2 | ||
138 | /* Enable RXD TXD port bits to enable UART2 */ | ||
139 | PJSEL &= ~(PJ(5) | PJ(4)); | ||
140 | #endif | ||
141 | |||
142 | #ifdef CONFIG_INIT_LCD | ||
143 | /* initialize LCD controller */ | ||
144 | LSSA = (long) screen_bits; | ||
145 | LVPW = 0x14; | ||
146 | LXMAX = 0x140; | ||
147 | LYMAX = 0xef; | ||
148 | LRRA = 0; | ||
149 | LPXCD = 3; | ||
150 | LPICF = 0x08; | ||
151 | LPOLCF = 0; | ||
152 | LCKCON = 0x80; | ||
153 | PCPDEN = 0xff; | ||
154 | PCSEL = 0; | ||
155 | |||
156 | /* Enable LCD controller */ | ||
157 | PKDIR |= 0x4; | ||
158 | PKSEL |= 0x4; | ||
159 | PKDATA &= ~0x4; | ||
160 | |||
161 | /* Enable CCFL backlighting circuit */ | ||
162 | PBDIR |= 0x20; | ||
163 | PBSEL |= 0x20; | ||
164 | PBDATA &= ~0x20; | ||
165 | |||
166 | /* contrast control register */ | ||
167 | PFDIR |= 0x1; | ||
168 | PFSEL &= ~0x1; | ||
169 | PWMR = 0x037F; | ||
170 | #endif | ||
171 | } | ||
172 | |||
173 | void config_BSP(char *command, int size) | ||
174 | { | ||
175 | printk(KERN_INFO "68VZ328 DragonBallVZ support (c) 2001 Lineo, Inc.\n"); | ||
176 | |||
177 | #if defined(CONFIG_BOOTPARAM) | ||
178 | strncpy(command, CONFIG_BOOTPARAM_STRING, size); | ||
179 | command[size-1] = 0; | ||
180 | #else | ||
181 | memset(command, 0, size); | ||
182 | #endif | ||
183 | |||
184 | init_hardware(); | ||
185 | |||
186 | mach_sched_init = (void *)dragen2_sched_init; | ||
187 | mach_tick = dragen2_tick; | ||
188 | mach_gettimeoffset = dragen2_gettimeoffset; | ||
189 | mach_reset = dragen2_reset; | ||
190 | mach_gettod = dragen2_gettod; | ||
191 | } | ||
diff --git a/arch/m68knommu/platform/68VZ328/ucdimm/config.c b/arch/m68knommu/platform/68VZ328/ucdimm/config.c new file mode 100644 index 000000000000..2deadaffd81e --- /dev/null +++ b/arch/m68knommu/platform/68VZ328/ucdimm/config.c | |||
@@ -0,0 +1,117 @@ | |||
1 | /* | ||
2 | * linux/arch/m68knommu/platform/68VZ328/ucdimm/config.c | ||
3 | * | ||
4 | * Copyright (C) 1993 Hamish Macdonald | ||
5 | * Copyright (C) 1999 D. Jeff Dionne | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General Public | ||
8 | * License. See the file COPYING in the main directory of this archive | ||
9 | * for more details. | ||
10 | */ | ||
11 | |||
12 | #include <stdarg.h> | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/types.h> | ||
15 | #include <linux/kernel.h> | ||
16 | #include <linux/mm.h> | ||
17 | #include <linux/tty.h> | ||
18 | #include <linux/console.h> | ||
19 | |||
20 | #include <asm/setup.h> | ||
21 | #include <asm/system.h> | ||
22 | #include <asm/pgtable.h> | ||
23 | #include <asm/irq.h> | ||
24 | #include <asm/machdep.h> | ||
25 | #include <asm/MC68VZ328.h> | ||
26 | #include <asm/bootstd.h> | ||
27 | |||
28 | void BSP_sched_init(void (*timer_routine)(int, void *, struct pt_regs *)) | ||
29 | { | ||
30 | /* Restart mode, Enable int, 32KHz, Enable timer */ | ||
31 | TCTL = TCTL_OM | TCTL_IRQEN | TCTL_CLKSOURCE_32KHZ | TCTL_TEN; | ||
32 | /* Set prescaler (Divide 32KHz by 32)*/ | ||
33 | TPRER = 31; | ||
34 | /* Set compare register 32Khz / 32 / 10 = 100 */ | ||
35 | TCMP = 10; | ||
36 | |||
37 | request_irq(TMR_IRQ_NUM, timer_routine, IRQ_FLG_LOCK, "timer", NULL); | ||
38 | } | ||
39 | |||
40 | void BSP_tick(void) | ||
41 | { | ||
42 | /* Reset Timer1 */ | ||
43 | TSTAT &= 0; | ||
44 | } | ||
45 | |||
46 | unsigned long BSP_gettimeoffset (void) | ||
47 | { | ||
48 | return 0; | ||
49 | } | ||
50 | |||
51 | void BSP_gettod (int *yearp, int *monp, int *dayp, | ||
52 | int *hourp, int *minp, int *secp) | ||
53 | { | ||
54 | } | ||
55 | |||
56 | int BSP_hwclk(int op, struct hwclk_time *t) | ||
57 | { | ||
58 | if (!op) { | ||
59 | /* read */ | ||
60 | } else { | ||
61 | /* write */ | ||
62 | } | ||
63 | return 0; | ||
64 | } | ||
65 | |||
66 | int BSP_set_clock_mmss (unsigned long nowtime) | ||
67 | { | ||
68 | #if 0 | ||
69 | short real_seconds = nowtime % 60, real_minutes = (nowtime / 60) % 60; | ||
70 | |||
71 | tod->second1 = real_seconds / 10; | ||
72 | tod->second2 = real_seconds % 10; | ||
73 | tod->minute1 = real_minutes / 10; | ||
74 | tod->minute2 = real_minutes % 10; | ||
75 | #endif | ||
76 | return 0; | ||
77 | } | ||
78 | |||
79 | void BSP_reset (void) | ||
80 | { | ||
81 | local_irq_disable(); | ||
82 | asm volatile (" | ||
83 | moveal #0x10c00000, %a0; | ||
84 | moveb #0, 0xFFFFF300; | ||
85 | moveal 0(%a0), %sp; | ||
86 | moveal 4(%a0), %a0; | ||
87 | jmp (%a0); | ||
88 | "); | ||
89 | } | ||
90 | |||
91 | unsigned char *cs8900a_hwaddr; | ||
92 | static int errno; | ||
93 | |||
94 | _bsc0(char *, getserialnum) | ||
95 | _bsc1(unsigned char *, gethwaddr, int, a) | ||
96 | _bsc1(char *, getbenv, char *, a) | ||
97 | |||
98 | void config_BSP(char *command, int len) | ||
99 | { | ||
100 | unsigned char *p; | ||
101 | |||
102 | printk(KERN_INFO "\n68VZ328 DragonBallVZ support (c) 2001 Lineo, Inc.\n"); | ||
103 | |||
104 | printk(KERN_INFO "uCdimm serial string [%s]\n",getserialnum()); | ||
105 | p = cs8900a_hwaddr = gethwaddr(0); | ||
106 | printk(KERN_INFO "uCdimm hwaddr %.2x:%.2x:%.2x:%.2x:%.2x:%.2x\n", | ||
107 | p[0], p[1], p[2], p[3], p[4], p[5]); | ||
108 | p = getbenv("APPEND"); | ||
109 | if (p) strcpy(p,command); | ||
110 | else command[0] = 0; | ||
111 | |||
112 | mach_sched_init = BSP_sched_init; | ||
113 | mach_tick = BSP_tick; | ||
114 | mach_gettimeoffset = BSP_gettimeoffset; | ||
115 | mach_gettod = BSP_gettod; | ||
116 | mach_reset = BSP_reset; | ||
117 | } | ||
diff --git a/arch/m68knommu/platform/Makefile b/arch/m68knommu/platform/Makefile new file mode 100644 index 000000000000..fc932bf65d34 --- /dev/null +++ b/arch/m68knommu/platform/Makefile | |||
@@ -0,0 +1,3 @@ | |||
1 | # | ||
2 | # Makefile for the arch/m68knommu/platform. | ||
3 | # | ||