diff options
author | Greg Ungerer <gerg@uclinux.org> | 2011-03-21 23:39:27 -0400 |
---|---|---|
committer | Greg Ungerer <gerg@uclinux.org> | 2011-03-25 00:05:13 -0400 |
commit | 66d857b08b8c3ed5c72c361f863cce77d2a978d7 (patch) | |
tree | 47222d86f4d78dc0da31baf64188bd2e4b38ac1e /arch/m68k/platform | |
parent | d39dd11c3e6a7af5c20bfac40594db36cf270f42 (diff) |
m68k: merge m68k and m68knommu arch directories
There is a lot of common code that could be shared between the m68k
and m68knommu arch branches. It makes sense to merge the two branches
into a single directory structure so that we can more easily share
that common code.
This is a brute force merge, based on a script from Stephen King
<sfking@fdwdc.com>, which was originally written by Arnd Bergmann
<arnd@arndb.de>.
> The script was inspired by the script Sam Ravnborg used to merge the
> includes from m68knommu. For those files common to both arches but
> differing in content, the m68k version of the file is renamed to
> <file>_mm.<ext> and the m68knommu version of the file is moved into the
> corresponding m68k directory and renamed <file>_no.<ext> and a small
> wrapper file <file>.<ext> is used to select between the two version. Files
> that are common to both but don't differ are removed from the m68knommu
> tree and files and directories that are unique to the m68knommu tree are
> moved to the m68k tree. Finally, the arch/m68knommu tree is removed.
>
> To select between the the versions of the files, the wrapper uses
>
> #ifdef CONFIG_MMU
> #include <file>_mm.<ext>
> #else
> #include <file>_no.<ext>
> #endif
On top of this file merge I have done a simplistic merge of m68k and
m68knommu Kconfig, which primarily attempts to keep existing options and
menus in place. Other than a handful of options being moved it produces
identical .config outputs on m68k and m68knommu targets I tested it on.
With this in place there is now quite a bit of scope for merge cleanups
in future patches.
Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Diffstat (limited to 'arch/m68k/platform')
80 files changed, 14714 insertions, 0 deletions
diff --git a/arch/m68k/platform/5206/Makefile b/arch/m68k/platform/5206/Makefile new file mode 100644 index 000000000000..b5db05625cfa --- /dev/null +++ b/arch/m68k/platform/5206/Makefile | |||
@@ -0,0 +1,18 @@ | |||
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 | # ccflags-y := -DTRAP_DBG_INTERRUPT | ||
12 | # asflags-y := -DTRAP_DBG_INTERRUPT | ||
13 | # | ||
14 | |||
15 | asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1 | ||
16 | |||
17 | obj-y := config.o gpio.o | ||
18 | |||
diff --git a/arch/m68k/platform/5206/config.c b/arch/m68k/platform/5206/config.c new file mode 100644 index 000000000000..9c335465e66d --- /dev/null +++ b/arch/m68k/platform/5206/config.c | |||
@@ -0,0 +1,121 @@ | |||
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/kernel.h> | ||
13 | #include <linux/param.h> | ||
14 | #include <linux/init.h> | ||
15 | #include <linux/io.h> | ||
16 | #include <asm/machdep.h> | ||
17 | #include <asm/coldfire.h> | ||
18 | #include <asm/mcfsim.h> | ||
19 | #include <asm/mcfuart.h> | ||
20 | |||
21 | /***************************************************************************/ | ||
22 | |||
23 | static struct mcf_platform_uart m5206_uart_platform[] = { | ||
24 | { | ||
25 | .mapbase = MCF_MBAR + MCFUART_BASE1, | ||
26 | .irq = 73, | ||
27 | }, | ||
28 | { | ||
29 | .mapbase = MCF_MBAR + MCFUART_BASE2, | ||
30 | .irq = 74, | ||
31 | }, | ||
32 | { }, | ||
33 | }; | ||
34 | |||
35 | static struct platform_device m5206_uart = { | ||
36 | .name = "mcfuart", | ||
37 | .id = 0, | ||
38 | .dev.platform_data = m5206_uart_platform, | ||
39 | }; | ||
40 | |||
41 | static struct platform_device *m5206_devices[] __initdata = { | ||
42 | &m5206_uart, | ||
43 | }; | ||
44 | |||
45 | /***************************************************************************/ | ||
46 | |||
47 | static void __init m5206_uart_init_line(int line, int irq) | ||
48 | { | ||
49 | if (line == 0) { | ||
50 | writel(MCFSIM_ICR_LEVEL6 | MCFSIM_ICR_PRI1, MCF_MBAR + MCFSIM_UART1ICR); | ||
51 | writeb(irq, MCFUART_BASE1 + MCFUART_UIVR); | ||
52 | mcf_mapirq2imr(irq, MCFINTC_UART0); | ||
53 | } else if (line == 1) { | ||
54 | writel(MCFSIM_ICR_LEVEL6 | MCFSIM_ICR_PRI2, MCF_MBAR + MCFSIM_UART2ICR); | ||
55 | writeb(irq, MCFUART_BASE2 + MCFUART_UIVR); | ||
56 | mcf_mapirq2imr(irq, MCFINTC_UART1); | ||
57 | } | ||
58 | } | ||
59 | |||
60 | static void __init m5206_uarts_init(void) | ||
61 | { | ||
62 | const int nrlines = ARRAY_SIZE(m5206_uart_platform); | ||
63 | int line; | ||
64 | |||
65 | for (line = 0; (line < nrlines); line++) | ||
66 | m5206_uart_init_line(line, m5206_uart_platform[line].irq); | ||
67 | } | ||
68 | |||
69 | /***************************************************************************/ | ||
70 | |||
71 | static void __init m5206_timers_init(void) | ||
72 | { | ||
73 | /* Timer1 is always used as system timer */ | ||
74 | writeb(MCFSIM_ICR_AUTOVEC | MCFSIM_ICR_LEVEL6 | MCFSIM_ICR_PRI3, | ||
75 | MCF_MBAR + MCFSIM_TIMER1ICR); | ||
76 | mcf_mapirq2imr(MCF_IRQ_TIMER, MCFINTC_TIMER1); | ||
77 | |||
78 | #ifdef CONFIG_HIGHPROFILE | ||
79 | /* Timer2 is to be used as a high speed profile timer */ | ||
80 | writeb(MCFSIM_ICR_AUTOVEC | MCFSIM_ICR_LEVEL7 | MCFSIM_ICR_PRI3, | ||
81 | MCF_MBAR + MCFSIM_TIMER2ICR); | ||
82 | mcf_mapirq2imr(MCF_IRQ_PROFILER, MCFINTC_TIMER2); | ||
83 | #endif | ||
84 | } | ||
85 | |||
86 | /***************************************************************************/ | ||
87 | |||
88 | void m5206_cpu_reset(void) | ||
89 | { | ||
90 | local_irq_disable(); | ||
91 | /* Set watchdog to soft reset, and enabled */ | ||
92 | __raw_writeb(0xc0, MCF_MBAR + MCFSIM_SYPCR); | ||
93 | for (;;) | ||
94 | /* wait for watchdog to timeout */; | ||
95 | } | ||
96 | |||
97 | /***************************************************************************/ | ||
98 | |||
99 | void __init config_BSP(char *commandp, int size) | ||
100 | { | ||
101 | mach_reset = m5206_cpu_reset; | ||
102 | m5206_timers_init(); | ||
103 | m5206_uarts_init(); | ||
104 | |||
105 | /* Only support the external interrupts on their primary level */ | ||
106 | mcf_mapirq2imr(25, MCFINTC_EINT1); | ||
107 | mcf_mapirq2imr(28, MCFINTC_EINT4); | ||
108 | mcf_mapirq2imr(31, MCFINTC_EINT7); | ||
109 | } | ||
110 | |||
111 | /***************************************************************************/ | ||
112 | |||
113 | static int __init init_BSP(void) | ||
114 | { | ||
115 | platform_add_devices(m5206_devices, ARRAY_SIZE(m5206_devices)); | ||
116 | return 0; | ||
117 | } | ||
118 | |||
119 | arch_initcall(init_BSP); | ||
120 | |||
121 | /***************************************************************************/ | ||
diff --git a/arch/m68k/platform/5206/gpio.c b/arch/m68k/platform/5206/gpio.c new file mode 100644 index 000000000000..b9ab4a120f28 --- /dev/null +++ b/arch/m68k/platform/5206/gpio.c | |||
@@ -0,0 +1,49 @@ | |||
1 | /* | ||
2 | * Coldfire generic GPIO support | ||
3 | * | ||
4 | * (C) Copyright 2009, Steven King <sfking@fdwdc.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 as published by | ||
8 | * the Free Software Foundation; version 2 of the License. | ||
9 | * | ||
10 | * This program is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU General Public License for more details. | ||
14 | */ | ||
15 | |||
16 | #include <linux/kernel.h> | ||
17 | #include <linux/init.h> | ||
18 | |||
19 | #include <asm/coldfire.h> | ||
20 | #include <asm/mcfsim.h> | ||
21 | #include <asm/mcfgpio.h> | ||
22 | |||
23 | static struct mcf_gpio_chip mcf_gpio_chips[] = { | ||
24 | { | ||
25 | .gpio_chip = { | ||
26 | .label = "PP", | ||
27 | .request = mcf_gpio_request, | ||
28 | .free = mcf_gpio_free, | ||
29 | .direction_input = mcf_gpio_direction_input, | ||
30 | .direction_output = mcf_gpio_direction_output, | ||
31 | .get = mcf_gpio_get_value, | ||
32 | .set = mcf_gpio_set_value, | ||
33 | .ngpio = 8, | ||
34 | }, | ||
35 | .pddr = (void __iomem *) MCFSIM_PADDR, | ||
36 | .podr = (void __iomem *) MCFSIM_PADAT, | ||
37 | .ppdr = (void __iomem *) MCFSIM_PADAT, | ||
38 | }, | ||
39 | }; | ||
40 | |||
41 | static int __init mcf_gpio_init(void) | ||
42 | { | ||
43 | unsigned i = 0; | ||
44 | while (i < ARRAY_SIZE(mcf_gpio_chips)) | ||
45 | (void)gpiochip_add((struct gpio_chip *)&mcf_gpio_chips[i++]); | ||
46 | return 0; | ||
47 | } | ||
48 | |||
49 | core_initcall(mcf_gpio_init); | ||
diff --git a/arch/m68k/platform/5206e/Makefile b/arch/m68k/platform/5206e/Makefile new file mode 100644 index 000000000000..b5db05625cfa --- /dev/null +++ b/arch/m68k/platform/5206e/Makefile | |||
@@ -0,0 +1,18 @@ | |||
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 | # ccflags-y := -DTRAP_DBG_INTERRUPT | ||
12 | # asflags-y := -DTRAP_DBG_INTERRUPT | ||
13 | # | ||
14 | |||
15 | asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1 | ||
16 | |||
17 | obj-y := config.o gpio.o | ||
18 | |||
diff --git a/arch/m68k/platform/5206e/config.c b/arch/m68k/platform/5206e/config.c new file mode 100644 index 000000000000..942397984c66 --- /dev/null +++ b/arch/m68k/platform/5206e/config.c | |||
@@ -0,0 +1,127 @@ | |||
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/kernel.h> | ||
12 | #include <linux/param.h> | ||
13 | #include <linux/init.h> | ||
14 | #include <linux/io.h> | ||
15 | #include <asm/machdep.h> | ||
16 | #include <asm/coldfire.h> | ||
17 | #include <asm/mcfsim.h> | ||
18 | #include <asm/mcfuart.h> | ||
19 | #include <asm/mcfdma.h> | ||
20 | |||
21 | /***************************************************************************/ | ||
22 | |||
23 | static struct mcf_platform_uart m5206e_uart_platform[] = { | ||
24 | { | ||
25 | .mapbase = MCF_MBAR + MCFUART_BASE1, | ||
26 | .irq = 73, | ||
27 | }, | ||
28 | { | ||
29 | .mapbase = MCF_MBAR + MCFUART_BASE2, | ||
30 | .irq = 74, | ||
31 | }, | ||
32 | { }, | ||
33 | }; | ||
34 | |||
35 | static struct platform_device m5206e_uart = { | ||
36 | .name = "mcfuart", | ||
37 | .id = 0, | ||
38 | .dev.platform_data = m5206e_uart_platform, | ||
39 | }; | ||
40 | |||
41 | static struct platform_device *m5206e_devices[] __initdata = { | ||
42 | &m5206e_uart, | ||
43 | }; | ||
44 | |||
45 | /***************************************************************************/ | ||
46 | |||
47 | static void __init m5206e_uart_init_line(int line, int irq) | ||
48 | { | ||
49 | if (line == 0) { | ||
50 | writel(MCFSIM_ICR_LEVEL6 | MCFSIM_ICR_PRI1, MCF_MBAR + MCFSIM_UART1ICR); | ||
51 | writeb(irq, MCFUART_BASE1 + MCFUART_UIVR); | ||
52 | mcf_mapirq2imr(irq, MCFINTC_UART0); | ||
53 | } else if (line == 1) { | ||
54 | writel(MCFSIM_ICR_LEVEL6 | MCFSIM_ICR_PRI2, MCF_MBAR + MCFSIM_UART2ICR); | ||
55 | writeb(irq, MCFUART_BASE2 + MCFUART_UIVR); | ||
56 | mcf_mapirq2imr(irq, MCFINTC_UART1); | ||
57 | } | ||
58 | } | ||
59 | |||
60 | static void __init m5206e_uarts_init(void) | ||
61 | { | ||
62 | const int nrlines = ARRAY_SIZE(m5206e_uart_platform); | ||
63 | int line; | ||
64 | |||
65 | for (line = 0; (line < nrlines); line++) | ||
66 | m5206e_uart_init_line(line, m5206e_uart_platform[line].irq); | ||
67 | } | ||
68 | |||
69 | /***************************************************************************/ | ||
70 | |||
71 | static void __init m5206e_timers_init(void) | ||
72 | { | ||
73 | /* Timer1 is always used as system timer */ | ||
74 | writeb(MCFSIM_ICR_AUTOVEC | MCFSIM_ICR_LEVEL6 | MCFSIM_ICR_PRI3, | ||
75 | MCF_MBAR + MCFSIM_TIMER1ICR); | ||
76 | mcf_mapirq2imr(MCF_IRQ_TIMER, MCFINTC_TIMER1); | ||
77 | |||
78 | #ifdef CONFIG_HIGHPROFILE | ||
79 | /* Timer2 is to be used as a high speed profile timer */ | ||
80 | writeb(MCFSIM_ICR_AUTOVEC | MCFSIM_ICR_LEVEL7 | MCFSIM_ICR_PRI3, | ||
81 | MCF_MBAR + MCFSIM_TIMER2ICR); | ||
82 | mcf_mapirq2imr(MCF_IRQ_PROFILER, MCFINTC_TIMER2); | ||
83 | #endif | ||
84 | } | ||
85 | |||
86 | /***************************************************************************/ | ||
87 | |||
88 | void m5206e_cpu_reset(void) | ||
89 | { | ||
90 | local_irq_disable(); | ||
91 | /* Set watchdog to soft reset, and enabled */ | ||
92 | __raw_writeb(0xc0, MCF_MBAR + MCFSIM_SYPCR); | ||
93 | for (;;) | ||
94 | /* wait for watchdog to timeout */; | ||
95 | } | ||
96 | |||
97 | /***************************************************************************/ | ||
98 | |||
99 | void __init config_BSP(char *commandp, int size) | ||
100 | { | ||
101 | #if defined(CONFIG_NETtel) | ||
102 | /* Copy command line from FLASH to local buffer... */ | ||
103 | memcpy(commandp, (char *) 0xf0004000, size); | ||
104 | commandp[size-1] = 0; | ||
105 | #endif /* CONFIG_NETtel */ | ||
106 | |||
107 | mach_reset = m5206e_cpu_reset; | ||
108 | m5206e_timers_init(); | ||
109 | m5206e_uarts_init(); | ||
110 | |||
111 | /* Only support the external interrupts on their primary level */ | ||
112 | mcf_mapirq2imr(25, MCFINTC_EINT1); | ||
113 | mcf_mapirq2imr(28, MCFINTC_EINT4); | ||
114 | mcf_mapirq2imr(31, MCFINTC_EINT7); | ||
115 | } | ||
116 | |||
117 | /***************************************************************************/ | ||
118 | |||
119 | static int __init init_BSP(void) | ||
120 | { | ||
121 | platform_add_devices(m5206e_devices, ARRAY_SIZE(m5206e_devices)); | ||
122 | return 0; | ||
123 | } | ||
124 | |||
125 | arch_initcall(init_BSP); | ||
126 | |||
127 | /***************************************************************************/ | ||
diff --git a/arch/m68k/platform/5206e/gpio.c b/arch/m68k/platform/5206e/gpio.c new file mode 100644 index 000000000000..b9ab4a120f28 --- /dev/null +++ b/arch/m68k/platform/5206e/gpio.c | |||
@@ -0,0 +1,49 @@ | |||
1 | /* | ||
2 | * Coldfire generic GPIO support | ||
3 | * | ||
4 | * (C) Copyright 2009, Steven King <sfking@fdwdc.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 as published by | ||
8 | * the Free Software Foundation; version 2 of the License. | ||
9 | * | ||
10 | * This program is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU General Public License for more details. | ||
14 | */ | ||
15 | |||
16 | #include <linux/kernel.h> | ||
17 | #include <linux/init.h> | ||
18 | |||
19 | #include <asm/coldfire.h> | ||
20 | #include <asm/mcfsim.h> | ||
21 | #include <asm/mcfgpio.h> | ||
22 | |||
23 | static struct mcf_gpio_chip mcf_gpio_chips[] = { | ||
24 | { | ||
25 | .gpio_chip = { | ||
26 | .label = "PP", | ||
27 | .request = mcf_gpio_request, | ||
28 | .free = mcf_gpio_free, | ||
29 | .direction_input = mcf_gpio_direction_input, | ||
30 | .direction_output = mcf_gpio_direction_output, | ||
31 | .get = mcf_gpio_get_value, | ||
32 | .set = mcf_gpio_set_value, | ||
33 | .ngpio = 8, | ||
34 | }, | ||
35 | .pddr = (void __iomem *) MCFSIM_PADDR, | ||
36 | .podr = (void __iomem *) MCFSIM_PADAT, | ||
37 | .ppdr = (void __iomem *) MCFSIM_PADAT, | ||
38 | }, | ||
39 | }; | ||
40 | |||
41 | static int __init mcf_gpio_init(void) | ||
42 | { | ||
43 | unsigned i = 0; | ||
44 | while (i < ARRAY_SIZE(mcf_gpio_chips)) | ||
45 | (void)gpiochip_add((struct gpio_chip *)&mcf_gpio_chips[i++]); | ||
46 | return 0; | ||
47 | } | ||
48 | |||
49 | core_initcall(mcf_gpio_init); | ||
diff --git a/arch/m68k/platform/520x/Makefile b/arch/m68k/platform/520x/Makefile new file mode 100644 index 000000000000..ad3f4e5a57ce --- /dev/null +++ b/arch/m68k/platform/520x/Makefile | |||
@@ -0,0 +1,17 @@ | |||
1 | # | ||
2 | # Makefile for the M5208 specific file. | ||
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 | # ccflags-y := -DTRAP_DBG_INTERRUPT | ||
12 | # asflags-y := -DTRAP_DBG_INTERRUPT | ||
13 | # | ||
14 | |||
15 | asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1 | ||
16 | |||
17 | obj-y := config.o gpio.o | ||
diff --git a/arch/m68k/platform/520x/config.c b/arch/m68k/platform/520x/config.c new file mode 100644 index 000000000000..621238f1a219 --- /dev/null +++ b/arch/m68k/platform/520x/config.c | |||
@@ -0,0 +1,311 @@ | |||
1 | /***************************************************************************/ | ||
2 | |||
3 | /* | ||
4 | * linux/arch/m68knommu/platform/520x/config.c | ||
5 | * | ||
6 | * Copyright (C) 2005, Freescale (www.freescale.com) | ||
7 | * Copyright (C) 2005, Intec Automation (mike@steroidmicros.com) | ||
8 | * Copyright (C) 1999-2007, Greg Ungerer (gerg@snapgear.com) | ||
9 | * Copyright (C) 2001-2003, SnapGear Inc. (www.snapgear.com) | ||
10 | */ | ||
11 | |||
12 | /***************************************************************************/ | ||
13 | |||
14 | #include <linux/kernel.h> | ||
15 | #include <linux/param.h> | ||
16 | #include <linux/init.h> | ||
17 | #include <linux/io.h> | ||
18 | #include <linux/spi/spi.h> | ||
19 | #include <linux/gpio.h> | ||
20 | #include <asm/machdep.h> | ||
21 | #include <asm/coldfire.h> | ||
22 | #include <asm/mcfsim.h> | ||
23 | #include <asm/mcfuart.h> | ||
24 | #include <asm/mcfqspi.h> | ||
25 | |||
26 | /***************************************************************************/ | ||
27 | |||
28 | static struct mcf_platform_uart m520x_uart_platform[] = { | ||
29 | { | ||
30 | .mapbase = MCFUART_BASE1, | ||
31 | .irq = MCFINT_VECBASE + MCFINT_UART0, | ||
32 | }, | ||
33 | { | ||
34 | .mapbase = MCFUART_BASE2, | ||
35 | .irq = MCFINT_VECBASE + MCFINT_UART1, | ||
36 | }, | ||
37 | { | ||
38 | .mapbase = MCFUART_BASE3, | ||
39 | .irq = MCFINT_VECBASE + MCFINT_UART2, | ||
40 | }, | ||
41 | { }, | ||
42 | }; | ||
43 | |||
44 | static struct platform_device m520x_uart = { | ||
45 | .name = "mcfuart", | ||
46 | .id = 0, | ||
47 | .dev.platform_data = m520x_uart_platform, | ||
48 | }; | ||
49 | |||
50 | static struct resource m520x_fec_resources[] = { | ||
51 | { | ||
52 | .start = MCFFEC_BASE, | ||
53 | .end = MCFFEC_BASE + MCFFEC_SIZE - 1, | ||
54 | .flags = IORESOURCE_MEM, | ||
55 | }, | ||
56 | { | ||
57 | .start = 64 + 36, | ||
58 | .end = 64 + 36, | ||
59 | .flags = IORESOURCE_IRQ, | ||
60 | }, | ||
61 | { | ||
62 | .start = 64 + 40, | ||
63 | .end = 64 + 40, | ||
64 | .flags = IORESOURCE_IRQ, | ||
65 | }, | ||
66 | { | ||
67 | .start = 64 + 42, | ||
68 | .end = 64 + 42, | ||
69 | .flags = IORESOURCE_IRQ, | ||
70 | }, | ||
71 | }; | ||
72 | |||
73 | static struct platform_device m520x_fec = { | ||
74 | .name = "fec", | ||
75 | .id = 0, | ||
76 | .num_resources = ARRAY_SIZE(m520x_fec_resources), | ||
77 | .resource = m520x_fec_resources, | ||
78 | }; | ||
79 | |||
80 | #if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) | ||
81 | static struct resource m520x_qspi_resources[] = { | ||
82 | { | ||
83 | .start = MCFQSPI_IOBASE, | ||
84 | .end = MCFQSPI_IOBASE + MCFQSPI_IOSIZE - 1, | ||
85 | .flags = IORESOURCE_MEM, | ||
86 | }, | ||
87 | { | ||
88 | .start = MCFINT_VECBASE + MCFINT_QSPI, | ||
89 | .end = MCFINT_VECBASE + MCFINT_QSPI, | ||
90 | .flags = IORESOURCE_IRQ, | ||
91 | }, | ||
92 | }; | ||
93 | |||
94 | #define MCFQSPI_CS0 62 | ||
95 | #define MCFQSPI_CS1 63 | ||
96 | #define MCFQSPI_CS2 44 | ||
97 | |||
98 | static int m520x_cs_setup(struct mcfqspi_cs_control *cs_control) | ||
99 | { | ||
100 | int status; | ||
101 | |||
102 | status = gpio_request(MCFQSPI_CS0, "MCFQSPI_CS0"); | ||
103 | if (status) { | ||
104 | pr_debug("gpio_request for MCFQSPI_CS0 failed\n"); | ||
105 | goto fail0; | ||
106 | } | ||
107 | status = gpio_direction_output(MCFQSPI_CS0, 1); | ||
108 | if (status) { | ||
109 | pr_debug("gpio_direction_output for MCFQSPI_CS0 failed\n"); | ||
110 | goto fail1; | ||
111 | } | ||
112 | |||
113 | status = gpio_request(MCFQSPI_CS1, "MCFQSPI_CS1"); | ||
114 | if (status) { | ||
115 | pr_debug("gpio_request for MCFQSPI_CS1 failed\n"); | ||
116 | goto fail1; | ||
117 | } | ||
118 | status = gpio_direction_output(MCFQSPI_CS1, 1); | ||
119 | if (status) { | ||
120 | pr_debug("gpio_direction_output for MCFQSPI_CS1 failed\n"); | ||
121 | goto fail2; | ||
122 | } | ||
123 | |||
124 | status = gpio_request(MCFQSPI_CS2, "MCFQSPI_CS2"); | ||
125 | if (status) { | ||
126 | pr_debug("gpio_request for MCFQSPI_CS2 failed\n"); | ||
127 | goto fail2; | ||
128 | } | ||
129 | status = gpio_direction_output(MCFQSPI_CS2, 1); | ||
130 | if (status) { | ||
131 | pr_debug("gpio_direction_output for MCFQSPI_CS2 failed\n"); | ||
132 | goto fail3; | ||
133 | } | ||
134 | |||
135 | return 0; | ||
136 | |||
137 | fail3: | ||
138 | gpio_free(MCFQSPI_CS2); | ||
139 | fail2: | ||
140 | gpio_free(MCFQSPI_CS1); | ||
141 | fail1: | ||
142 | gpio_free(MCFQSPI_CS0); | ||
143 | fail0: | ||
144 | return status; | ||
145 | } | ||
146 | |||
147 | static void m520x_cs_teardown(struct mcfqspi_cs_control *cs_control) | ||
148 | { | ||
149 | gpio_free(MCFQSPI_CS2); | ||
150 | gpio_free(MCFQSPI_CS1); | ||
151 | gpio_free(MCFQSPI_CS0); | ||
152 | } | ||
153 | |||
154 | static void m520x_cs_select(struct mcfqspi_cs_control *cs_control, | ||
155 | u8 chip_select, bool cs_high) | ||
156 | { | ||
157 | switch (chip_select) { | ||
158 | case 0: | ||
159 | gpio_set_value(MCFQSPI_CS0, cs_high); | ||
160 | break; | ||
161 | case 1: | ||
162 | gpio_set_value(MCFQSPI_CS1, cs_high); | ||
163 | break; | ||
164 | case 2: | ||
165 | gpio_set_value(MCFQSPI_CS2, cs_high); | ||
166 | break; | ||
167 | } | ||
168 | } | ||
169 | |||
170 | static void m520x_cs_deselect(struct mcfqspi_cs_control *cs_control, | ||
171 | u8 chip_select, bool cs_high) | ||
172 | { | ||
173 | switch (chip_select) { | ||
174 | case 0: | ||
175 | gpio_set_value(MCFQSPI_CS0, !cs_high); | ||
176 | break; | ||
177 | case 1: | ||
178 | gpio_set_value(MCFQSPI_CS1, !cs_high); | ||
179 | break; | ||
180 | case 2: | ||
181 | gpio_set_value(MCFQSPI_CS2, !cs_high); | ||
182 | break; | ||
183 | } | ||
184 | } | ||
185 | |||
186 | static struct mcfqspi_cs_control m520x_cs_control = { | ||
187 | .setup = m520x_cs_setup, | ||
188 | .teardown = m520x_cs_teardown, | ||
189 | .select = m520x_cs_select, | ||
190 | .deselect = m520x_cs_deselect, | ||
191 | }; | ||
192 | |||
193 | static struct mcfqspi_platform_data m520x_qspi_data = { | ||
194 | .bus_num = 0, | ||
195 | .num_chipselect = 3, | ||
196 | .cs_control = &m520x_cs_control, | ||
197 | }; | ||
198 | |||
199 | static struct platform_device m520x_qspi = { | ||
200 | .name = "mcfqspi", | ||
201 | .id = 0, | ||
202 | .num_resources = ARRAY_SIZE(m520x_qspi_resources), | ||
203 | .resource = m520x_qspi_resources, | ||
204 | .dev.platform_data = &m520x_qspi_data, | ||
205 | }; | ||
206 | |||
207 | static void __init m520x_qspi_init(void) | ||
208 | { | ||
209 | u16 par; | ||
210 | /* setup Port QS for QSPI with gpio CS control */ | ||
211 | writeb(0x3f, MCF_GPIO_PAR_QSPI); | ||
212 | /* make U1CTS and U2RTS gpio for cs_control */ | ||
213 | par = readw(MCF_GPIO_PAR_UART); | ||
214 | par &= 0x00ff; | ||
215 | writew(par, MCF_GPIO_PAR_UART); | ||
216 | } | ||
217 | #endif /* defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) */ | ||
218 | |||
219 | |||
220 | static struct platform_device *m520x_devices[] __initdata = { | ||
221 | &m520x_uart, | ||
222 | &m520x_fec, | ||
223 | #if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) | ||
224 | &m520x_qspi, | ||
225 | #endif | ||
226 | }; | ||
227 | |||
228 | /***************************************************************************/ | ||
229 | |||
230 | static void __init m520x_uart_init_line(int line, int irq) | ||
231 | { | ||
232 | u16 par; | ||
233 | u8 par2; | ||
234 | |||
235 | switch (line) { | ||
236 | case 0: | ||
237 | par = readw(MCF_GPIO_PAR_UART); | ||
238 | par |= MCF_GPIO_PAR_UART_PAR_UTXD0 | | ||
239 | MCF_GPIO_PAR_UART_PAR_URXD0; | ||
240 | writew(par, MCF_GPIO_PAR_UART); | ||
241 | break; | ||
242 | case 1: | ||
243 | par = readw(MCF_GPIO_PAR_UART); | ||
244 | par |= MCF_GPIO_PAR_UART_PAR_UTXD1 | | ||
245 | MCF_GPIO_PAR_UART_PAR_URXD1; | ||
246 | writew(par, MCF_GPIO_PAR_UART); | ||
247 | break; | ||
248 | case 2: | ||
249 | par2 = readb(MCF_GPIO_PAR_FECI2C); | ||
250 | par2 &= ~0x0F; | ||
251 | par2 |= MCF_GPIO_PAR_FECI2C_PAR_SCL_UTXD2 | | ||
252 | MCF_GPIO_PAR_FECI2C_PAR_SDA_URXD2; | ||
253 | writeb(par2, MCF_GPIO_PAR_FECI2C); | ||
254 | break; | ||
255 | } | ||
256 | } | ||
257 | |||
258 | static void __init m520x_uarts_init(void) | ||
259 | { | ||
260 | const int nrlines = ARRAY_SIZE(m520x_uart_platform); | ||
261 | int line; | ||
262 | |||
263 | for (line = 0; (line < nrlines); line++) | ||
264 | m520x_uart_init_line(line, m520x_uart_platform[line].irq); | ||
265 | } | ||
266 | |||
267 | /***************************************************************************/ | ||
268 | |||
269 | static void __init m520x_fec_init(void) | ||
270 | { | ||
271 | u8 v; | ||
272 | |||
273 | /* Set multi-function pins to ethernet mode */ | ||
274 | v = readb(MCF_GPIO_PAR_FEC); | ||
275 | writeb(v | 0xf0, MCF_GPIO_PAR_FEC); | ||
276 | |||
277 | v = readb(MCF_GPIO_PAR_FECI2C); | ||
278 | writeb(v | 0x0f, MCF_GPIO_PAR_FECI2C); | ||
279 | } | ||
280 | |||
281 | /***************************************************************************/ | ||
282 | |||
283 | static void m520x_cpu_reset(void) | ||
284 | { | ||
285 | local_irq_disable(); | ||
286 | __raw_writeb(MCF_RCR_SWRESET, MCF_RCR); | ||
287 | } | ||
288 | |||
289 | /***************************************************************************/ | ||
290 | |||
291 | void __init config_BSP(char *commandp, int size) | ||
292 | { | ||
293 | mach_reset = m520x_cpu_reset; | ||
294 | m520x_uarts_init(); | ||
295 | m520x_fec_init(); | ||
296 | #if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) | ||
297 | m520x_qspi_init(); | ||
298 | #endif | ||
299 | } | ||
300 | |||
301 | /***************************************************************************/ | ||
302 | |||
303 | static int __init init_BSP(void) | ||
304 | { | ||
305 | platform_add_devices(m520x_devices, ARRAY_SIZE(m520x_devices)); | ||
306 | return 0; | ||
307 | } | ||
308 | |||
309 | arch_initcall(init_BSP); | ||
310 | |||
311 | /***************************************************************************/ | ||
diff --git a/arch/m68k/platform/520x/gpio.c b/arch/m68k/platform/520x/gpio.c new file mode 100644 index 000000000000..d757328563d1 --- /dev/null +++ b/arch/m68k/platform/520x/gpio.c | |||
@@ -0,0 +1,211 @@ | |||
1 | /* | ||
2 | * Coldfire generic GPIO support | ||
3 | * | ||
4 | * (C) Copyright 2009, Steven King <sfking@fdwdc.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 as published by | ||
8 | * the Free Software Foundation; version 2 of the License. | ||
9 | * | ||
10 | * This program is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU General Public License for more details. | ||
14 | */ | ||
15 | |||
16 | #include <linux/kernel.h> | ||
17 | #include <linux/init.h> | ||
18 | |||
19 | #include <asm/coldfire.h> | ||
20 | #include <asm/mcfsim.h> | ||
21 | #include <asm/mcfgpio.h> | ||
22 | |||
23 | static struct mcf_gpio_chip mcf_gpio_chips[] = { | ||
24 | { | ||
25 | .gpio_chip = { | ||
26 | .label = "PIRQ", | ||
27 | .request = mcf_gpio_request, | ||
28 | .free = mcf_gpio_free, | ||
29 | .direction_input = mcf_gpio_direction_input, | ||
30 | .direction_output = mcf_gpio_direction_output, | ||
31 | .get = mcf_gpio_get_value, | ||
32 | .set = mcf_gpio_set_value, | ||
33 | .ngpio = 8, | ||
34 | }, | ||
35 | .pddr = (void __iomem *) MCFEPORT_EPDDR, | ||
36 | .podr = (void __iomem *) MCFEPORT_EPDR, | ||
37 | .ppdr = (void __iomem *) MCFEPORT_EPPDR, | ||
38 | }, | ||
39 | { | ||
40 | .gpio_chip = { | ||
41 | .label = "BUSCTL", | ||
42 | .request = mcf_gpio_request, | ||
43 | .free = mcf_gpio_free, | ||
44 | .direction_input = mcf_gpio_direction_input, | ||
45 | .direction_output = mcf_gpio_direction_output, | ||
46 | .get = mcf_gpio_get_value, | ||
47 | .set = mcf_gpio_set_value_fast, | ||
48 | .base = 8, | ||
49 | .ngpio = 4, | ||
50 | }, | ||
51 | .pddr = (void __iomem *) MCFGPIO_PDDR_BUSCTL, | ||
52 | .podr = (void __iomem *) MCFGPIO_PODR_BUSCTL, | ||
53 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_BUSCTL, | ||
54 | .setr = (void __iomem *) MCFGPIO_PPDSDR_BUSCTL, | ||
55 | .clrr = (void __iomem *) MCFGPIO_PCLRR_BUSCTL, | ||
56 | }, | ||
57 | { | ||
58 | .gpio_chip = { | ||
59 | .label = "BE", | ||
60 | .request = mcf_gpio_request, | ||
61 | .free = mcf_gpio_free, | ||
62 | .direction_input = mcf_gpio_direction_input, | ||
63 | .direction_output = mcf_gpio_direction_output, | ||
64 | .get = mcf_gpio_get_value, | ||
65 | .set = mcf_gpio_set_value_fast, | ||
66 | .base = 16, | ||
67 | .ngpio = 4, | ||
68 | }, | ||
69 | .pddr = (void __iomem *) MCFGPIO_PDDR_BE, | ||
70 | .podr = (void __iomem *) MCFGPIO_PODR_BE, | ||
71 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_BE, | ||
72 | .setr = (void __iomem *) MCFGPIO_PPDSDR_BE, | ||
73 | .clrr = (void __iomem *) MCFGPIO_PCLRR_BE, | ||
74 | }, | ||
75 | { | ||
76 | .gpio_chip = { | ||
77 | .label = "CS", | ||
78 | .request = mcf_gpio_request, | ||
79 | .free = mcf_gpio_free, | ||
80 | .direction_input = mcf_gpio_direction_input, | ||
81 | .direction_output = mcf_gpio_direction_output, | ||
82 | .get = mcf_gpio_get_value, | ||
83 | .set = mcf_gpio_set_value_fast, | ||
84 | .base = 25, | ||
85 | .ngpio = 3, | ||
86 | }, | ||
87 | .pddr = (void __iomem *) MCFGPIO_PDDR_CS, | ||
88 | .podr = (void __iomem *) MCFGPIO_PODR_CS, | ||
89 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_CS, | ||
90 | .setr = (void __iomem *) MCFGPIO_PPDSDR_CS, | ||
91 | .clrr = (void __iomem *) MCFGPIO_PCLRR_CS, | ||
92 | }, | ||
93 | { | ||
94 | .gpio_chip = { | ||
95 | .label = "FECI2C", | ||
96 | .request = mcf_gpio_request, | ||
97 | .free = mcf_gpio_free, | ||
98 | .direction_input = mcf_gpio_direction_input, | ||
99 | .direction_output = mcf_gpio_direction_output, | ||
100 | .get = mcf_gpio_get_value, | ||
101 | .set = mcf_gpio_set_value_fast, | ||
102 | .base = 32, | ||
103 | .ngpio = 4, | ||
104 | }, | ||
105 | .pddr = (void __iomem *) MCFGPIO_PDDR_FECI2C, | ||
106 | .podr = (void __iomem *) MCFGPIO_PODR_FECI2C, | ||
107 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_FECI2C, | ||
108 | .setr = (void __iomem *) MCFGPIO_PPDSDR_FECI2C, | ||
109 | .clrr = (void __iomem *) MCFGPIO_PCLRR_FECI2C, | ||
110 | }, | ||
111 | { | ||
112 | .gpio_chip = { | ||
113 | .label = "QSPI", | ||
114 | .request = mcf_gpio_request, | ||
115 | .free = mcf_gpio_free, | ||
116 | .direction_input = mcf_gpio_direction_input, | ||
117 | .direction_output = mcf_gpio_direction_output, | ||
118 | .get = mcf_gpio_get_value, | ||
119 | .set = mcf_gpio_set_value_fast, | ||
120 | .base = 40, | ||
121 | .ngpio = 4, | ||
122 | }, | ||
123 | .pddr = (void __iomem *) MCFGPIO_PDDR_QSPI, | ||
124 | .podr = (void __iomem *) MCFGPIO_PODR_QSPI, | ||
125 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_QSPI, | ||
126 | .setr = (void __iomem *) MCFGPIO_PPDSDR_QSPI, | ||
127 | .clrr = (void __iomem *) MCFGPIO_PCLRR_QSPI, | ||
128 | }, | ||
129 | { | ||
130 | .gpio_chip = { | ||
131 | .label = "TIMER", | ||
132 | .request = mcf_gpio_request, | ||
133 | .free = mcf_gpio_free, | ||
134 | .direction_input = mcf_gpio_direction_input, | ||
135 | .direction_output = mcf_gpio_direction_output, | ||
136 | .get = mcf_gpio_get_value, | ||
137 | .set = mcf_gpio_set_value_fast, | ||
138 | .base = 48, | ||
139 | .ngpio = 4, | ||
140 | }, | ||
141 | .pddr = (void __iomem *) MCFGPIO_PDDR_TIMER, | ||
142 | .podr = (void __iomem *) MCFGPIO_PODR_TIMER, | ||
143 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_TIMER, | ||
144 | .setr = (void __iomem *) MCFGPIO_PPDSDR_TIMER, | ||
145 | .clrr = (void __iomem *) MCFGPIO_PCLRR_TIMER, | ||
146 | }, | ||
147 | { | ||
148 | .gpio_chip = { | ||
149 | .label = "UART", | ||
150 | .request = mcf_gpio_request, | ||
151 | .free = mcf_gpio_free, | ||
152 | .direction_input = mcf_gpio_direction_input, | ||
153 | .direction_output = mcf_gpio_direction_output, | ||
154 | .get = mcf_gpio_get_value, | ||
155 | .set = mcf_gpio_set_value_fast, | ||
156 | .base = 56, | ||
157 | .ngpio = 8, | ||
158 | }, | ||
159 | .pddr = (void __iomem *) MCFGPIO_PDDR_UART, | ||
160 | .podr = (void __iomem *) MCFGPIO_PODR_UART, | ||
161 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_UART, | ||
162 | .setr = (void __iomem *) MCFGPIO_PPDSDR_UART, | ||
163 | .clrr = (void __iomem *) MCFGPIO_PCLRR_UART, | ||
164 | }, | ||
165 | { | ||
166 | .gpio_chip = { | ||
167 | .label = "FECH", | ||
168 | .request = mcf_gpio_request, | ||
169 | .free = mcf_gpio_free, | ||
170 | .direction_input = mcf_gpio_direction_input, | ||
171 | .direction_output = mcf_gpio_direction_output, | ||
172 | .get = mcf_gpio_get_value, | ||
173 | .set = mcf_gpio_set_value_fast, | ||
174 | .base = 64, | ||
175 | .ngpio = 8, | ||
176 | }, | ||
177 | .pddr = (void __iomem *) MCFGPIO_PDDR_FECH, | ||
178 | .podr = (void __iomem *) MCFGPIO_PODR_FECH, | ||
179 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_FECH, | ||
180 | .setr = (void __iomem *) MCFGPIO_PPDSDR_FECH, | ||
181 | .clrr = (void __iomem *) MCFGPIO_PCLRR_FECH, | ||
182 | }, | ||
183 | { | ||
184 | .gpio_chip = { | ||
185 | .label = "FECL", | ||
186 | .request = mcf_gpio_request, | ||
187 | .free = mcf_gpio_free, | ||
188 | .direction_input = mcf_gpio_direction_input, | ||
189 | .direction_output = mcf_gpio_direction_output, | ||
190 | .get = mcf_gpio_get_value, | ||
191 | .set = mcf_gpio_set_value_fast, | ||
192 | .base = 72, | ||
193 | .ngpio = 8, | ||
194 | }, | ||
195 | .pddr = (void __iomem *) MCFGPIO_PDDR_FECL, | ||
196 | .podr = (void __iomem *) MCFGPIO_PODR_FECL, | ||
197 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_FECL, | ||
198 | .setr = (void __iomem *) MCFGPIO_PPDSDR_FECL, | ||
199 | .clrr = (void __iomem *) MCFGPIO_PCLRR_FECL, | ||
200 | }, | ||
201 | }; | ||
202 | |||
203 | static int __init mcf_gpio_init(void) | ||
204 | { | ||
205 | unsigned i = 0; | ||
206 | while (i < ARRAY_SIZE(mcf_gpio_chips)) | ||
207 | (void)gpiochip_add((struct gpio_chip *)&mcf_gpio_chips[i++]); | ||
208 | return 0; | ||
209 | } | ||
210 | |||
211 | core_initcall(mcf_gpio_init); | ||
diff --git a/arch/m68k/platform/523x/Makefile b/arch/m68k/platform/523x/Makefile new file mode 100644 index 000000000000..c04b8f71c88c --- /dev/null +++ b/arch/m68k/platform/523x/Makefile | |||
@@ -0,0 +1,17 @@ | |||
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 | # ccflags-y := -DTRAP_DBG_INTERRUPT | ||
12 | # asflags-y := -DTRAP_DBG_INTERRUPT | ||
13 | # | ||
14 | |||
15 | asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1 | ||
16 | |||
17 | obj-y := config.o gpio.o | ||
diff --git a/arch/m68k/platform/523x/config.c b/arch/m68k/platform/523x/config.c new file mode 100644 index 000000000000..418a76feb1e3 --- /dev/null +++ b/arch/m68k/platform/523x/config.c | |||
@@ -0,0 +1,293 @@ | |||
1 | /***************************************************************************/ | ||
2 | |||
3 | /* | ||
4 | * linux/arch/m68knommu/platform/523x/config.c | ||
5 | * | ||
6 | * Sub-architcture dependant initialization code for the Freescale | ||
7 | * 523x CPUs. | ||
8 | * | ||
9 | * Copyright (C) 1999-2005, Greg Ungerer (gerg@snapgear.com) | ||
10 | * Copyright (C) 2001-2003, SnapGear Inc. (www.snapgear.com) | ||
11 | */ | ||
12 | |||
13 | /***************************************************************************/ | ||
14 | |||
15 | #include <linux/kernel.h> | ||
16 | #include <linux/param.h> | ||
17 | #include <linux/init.h> | ||
18 | #include <linux/io.h> | ||
19 | #include <linux/spi/spi.h> | ||
20 | #include <linux/gpio.h> | ||
21 | #include <asm/machdep.h> | ||
22 | #include <asm/coldfire.h> | ||
23 | #include <asm/mcfsim.h> | ||
24 | #include <asm/mcfuart.h> | ||
25 | #include <asm/mcfqspi.h> | ||
26 | |||
27 | /***************************************************************************/ | ||
28 | |||
29 | static struct mcf_platform_uart m523x_uart_platform[] = { | ||
30 | { | ||
31 | .mapbase = MCFUART_BASE1, | ||
32 | .irq = MCFINT_VECBASE + MCFINT_UART0, | ||
33 | }, | ||
34 | { | ||
35 | .mapbase = MCFUART_BASE2, | ||
36 | .irq = MCFINT_VECBASE + MCFINT_UART0 + 1, | ||
37 | }, | ||
38 | { | ||
39 | .mapbase = MCFUART_BASE3, | ||
40 | .irq = MCFINT_VECBASE + MCFINT_UART0 + 2, | ||
41 | }, | ||
42 | { }, | ||
43 | }; | ||
44 | |||
45 | static struct platform_device m523x_uart = { | ||
46 | .name = "mcfuart", | ||
47 | .id = 0, | ||
48 | .dev.platform_data = m523x_uart_platform, | ||
49 | }; | ||
50 | |||
51 | static struct resource m523x_fec_resources[] = { | ||
52 | { | ||
53 | .start = MCFFEC_BASE, | ||
54 | .end = MCFFEC_BASE + MCFFEC_SIZE - 1, | ||
55 | .flags = IORESOURCE_MEM, | ||
56 | }, | ||
57 | { | ||
58 | .start = 64 + 23, | ||
59 | .end = 64 + 23, | ||
60 | .flags = IORESOURCE_IRQ, | ||
61 | }, | ||
62 | { | ||
63 | .start = 64 + 27, | ||
64 | .end = 64 + 27, | ||
65 | .flags = IORESOURCE_IRQ, | ||
66 | }, | ||
67 | { | ||
68 | .start = 64 + 29, | ||
69 | .end = 64 + 29, | ||
70 | .flags = IORESOURCE_IRQ, | ||
71 | }, | ||
72 | }; | ||
73 | |||
74 | static struct platform_device m523x_fec = { | ||
75 | .name = "fec", | ||
76 | .id = 0, | ||
77 | .num_resources = ARRAY_SIZE(m523x_fec_resources), | ||
78 | .resource = m523x_fec_resources, | ||
79 | }; | ||
80 | |||
81 | #if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) | ||
82 | static struct resource m523x_qspi_resources[] = { | ||
83 | { | ||
84 | .start = MCFQSPI_IOBASE, | ||
85 | .end = MCFQSPI_IOBASE + MCFQSPI_IOSIZE - 1, | ||
86 | .flags = IORESOURCE_MEM, | ||
87 | }, | ||
88 | { | ||
89 | .start = MCFINT_VECBASE + MCFINT_QSPI, | ||
90 | .end = MCFINT_VECBASE + MCFINT_QSPI, | ||
91 | .flags = IORESOURCE_IRQ, | ||
92 | }, | ||
93 | }; | ||
94 | |||
95 | #define MCFQSPI_CS0 91 | ||
96 | #define MCFQSPI_CS1 92 | ||
97 | #define MCFQSPI_CS2 103 | ||
98 | #define MCFQSPI_CS3 99 | ||
99 | |||
100 | static int m523x_cs_setup(struct mcfqspi_cs_control *cs_control) | ||
101 | { | ||
102 | int status; | ||
103 | |||
104 | status = gpio_request(MCFQSPI_CS0, "MCFQSPI_CS0"); | ||
105 | if (status) { | ||
106 | pr_debug("gpio_request for MCFQSPI_CS0 failed\n"); | ||
107 | goto fail0; | ||
108 | } | ||
109 | status = gpio_direction_output(MCFQSPI_CS0, 1); | ||
110 | if (status) { | ||
111 | pr_debug("gpio_direction_output for MCFQSPI_CS0 failed\n"); | ||
112 | goto fail1; | ||
113 | } | ||
114 | |||
115 | status = gpio_request(MCFQSPI_CS1, "MCFQSPI_CS1"); | ||
116 | if (status) { | ||
117 | pr_debug("gpio_request for MCFQSPI_CS1 failed\n"); | ||
118 | goto fail1; | ||
119 | } | ||
120 | status = gpio_direction_output(MCFQSPI_CS1, 1); | ||
121 | if (status) { | ||
122 | pr_debug("gpio_direction_output for MCFQSPI_CS1 failed\n"); | ||
123 | goto fail2; | ||
124 | } | ||
125 | |||
126 | status = gpio_request(MCFQSPI_CS2, "MCFQSPI_CS2"); | ||
127 | if (status) { | ||
128 | pr_debug("gpio_request for MCFQSPI_CS2 failed\n"); | ||
129 | goto fail2; | ||
130 | } | ||
131 | status = gpio_direction_output(MCFQSPI_CS2, 1); | ||
132 | if (status) { | ||
133 | pr_debug("gpio_direction_output for MCFQSPI_CS2 failed\n"); | ||
134 | goto fail3; | ||
135 | } | ||
136 | |||
137 | status = gpio_request(MCFQSPI_CS3, "MCFQSPI_CS3"); | ||
138 | if (status) { | ||
139 | pr_debug("gpio_request for MCFQSPI_CS3 failed\n"); | ||
140 | goto fail3; | ||
141 | } | ||
142 | status = gpio_direction_output(MCFQSPI_CS3, 1); | ||
143 | if (status) { | ||
144 | pr_debug("gpio_direction_output for MCFQSPI_CS3 failed\n"); | ||
145 | goto fail4; | ||
146 | } | ||
147 | |||
148 | return 0; | ||
149 | |||
150 | fail4: | ||
151 | gpio_free(MCFQSPI_CS3); | ||
152 | fail3: | ||
153 | gpio_free(MCFQSPI_CS2); | ||
154 | fail2: | ||
155 | gpio_free(MCFQSPI_CS1); | ||
156 | fail1: | ||
157 | gpio_free(MCFQSPI_CS0); | ||
158 | fail0: | ||
159 | return status; | ||
160 | } | ||
161 | |||
162 | static void m523x_cs_teardown(struct mcfqspi_cs_control *cs_control) | ||
163 | { | ||
164 | gpio_free(MCFQSPI_CS3); | ||
165 | gpio_free(MCFQSPI_CS2); | ||
166 | gpio_free(MCFQSPI_CS1); | ||
167 | gpio_free(MCFQSPI_CS0); | ||
168 | } | ||
169 | |||
170 | static void m523x_cs_select(struct mcfqspi_cs_control *cs_control, | ||
171 | u8 chip_select, bool cs_high) | ||
172 | { | ||
173 | switch (chip_select) { | ||
174 | case 0: | ||
175 | gpio_set_value(MCFQSPI_CS0, cs_high); | ||
176 | break; | ||
177 | case 1: | ||
178 | gpio_set_value(MCFQSPI_CS1, cs_high); | ||
179 | break; | ||
180 | case 2: | ||
181 | gpio_set_value(MCFQSPI_CS2, cs_high); | ||
182 | break; | ||
183 | case 3: | ||
184 | gpio_set_value(MCFQSPI_CS3, cs_high); | ||
185 | break; | ||
186 | } | ||
187 | } | ||
188 | |||
189 | static void m523x_cs_deselect(struct mcfqspi_cs_control *cs_control, | ||
190 | u8 chip_select, bool cs_high) | ||
191 | { | ||
192 | switch (chip_select) { | ||
193 | case 0: | ||
194 | gpio_set_value(MCFQSPI_CS0, !cs_high); | ||
195 | break; | ||
196 | case 1: | ||
197 | gpio_set_value(MCFQSPI_CS1, !cs_high); | ||
198 | break; | ||
199 | case 2: | ||
200 | gpio_set_value(MCFQSPI_CS2, !cs_high); | ||
201 | break; | ||
202 | case 3: | ||
203 | gpio_set_value(MCFQSPI_CS3, !cs_high); | ||
204 | break; | ||
205 | } | ||
206 | } | ||
207 | |||
208 | static struct mcfqspi_cs_control m523x_cs_control = { | ||
209 | .setup = m523x_cs_setup, | ||
210 | .teardown = m523x_cs_teardown, | ||
211 | .select = m523x_cs_select, | ||
212 | .deselect = m523x_cs_deselect, | ||
213 | }; | ||
214 | |||
215 | static struct mcfqspi_platform_data m523x_qspi_data = { | ||
216 | .bus_num = 0, | ||
217 | .num_chipselect = 4, | ||
218 | .cs_control = &m523x_cs_control, | ||
219 | }; | ||
220 | |||
221 | static struct platform_device m523x_qspi = { | ||
222 | .name = "mcfqspi", | ||
223 | .id = 0, | ||
224 | .num_resources = ARRAY_SIZE(m523x_qspi_resources), | ||
225 | .resource = m523x_qspi_resources, | ||
226 | .dev.platform_data = &m523x_qspi_data, | ||
227 | }; | ||
228 | |||
229 | static void __init m523x_qspi_init(void) | ||
230 | { | ||
231 | u16 par; | ||
232 | |||
233 | /* setup QSPS pins for QSPI with gpio CS control */ | ||
234 | writeb(0x1f, MCFGPIO_PAR_QSPI); | ||
235 | /* and CS2 & CS3 as gpio */ | ||
236 | par = readw(MCFGPIO_PAR_TIMER); | ||
237 | par &= 0x3f3f; | ||
238 | writew(par, MCFGPIO_PAR_TIMER); | ||
239 | } | ||
240 | #endif /* defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) */ | ||
241 | |||
242 | static struct platform_device *m523x_devices[] __initdata = { | ||
243 | &m523x_uart, | ||
244 | &m523x_fec, | ||
245 | #if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) | ||
246 | &m523x_qspi, | ||
247 | #endif | ||
248 | }; | ||
249 | |||
250 | /***************************************************************************/ | ||
251 | |||
252 | static void __init m523x_fec_init(void) | ||
253 | { | ||
254 | u16 par; | ||
255 | u8 v; | ||
256 | |||
257 | /* Set multi-function pins to ethernet use */ | ||
258 | par = readw(MCF_IPSBAR + 0x100082); | ||
259 | writew(par | 0xf00, MCF_IPSBAR + 0x100082); | ||
260 | v = readb(MCF_IPSBAR + 0x100078); | ||
261 | writeb(v | 0xc0, MCF_IPSBAR + 0x100078); | ||
262 | } | ||
263 | |||
264 | /***************************************************************************/ | ||
265 | |||
266 | static void m523x_cpu_reset(void) | ||
267 | { | ||
268 | local_irq_disable(); | ||
269 | __raw_writeb(MCF_RCR_SWRESET, MCF_IPSBAR + MCF_RCR); | ||
270 | } | ||
271 | |||
272 | /***************************************************************************/ | ||
273 | |||
274 | void __init config_BSP(char *commandp, int size) | ||
275 | { | ||
276 | mach_reset = m523x_cpu_reset; | ||
277 | } | ||
278 | |||
279 | /***************************************************************************/ | ||
280 | |||
281 | static int __init init_BSP(void) | ||
282 | { | ||
283 | m523x_fec_init(); | ||
284 | #if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) | ||
285 | m523x_qspi_init(); | ||
286 | #endif | ||
287 | platform_add_devices(m523x_devices, ARRAY_SIZE(m523x_devices)); | ||
288 | return 0; | ||
289 | } | ||
290 | |||
291 | arch_initcall(init_BSP); | ||
292 | |||
293 | /***************************************************************************/ | ||
diff --git a/arch/m68k/platform/523x/gpio.c b/arch/m68k/platform/523x/gpio.c new file mode 100644 index 000000000000..327ebf142c8e --- /dev/null +++ b/arch/m68k/platform/523x/gpio.c | |||
@@ -0,0 +1,284 @@ | |||
1 | /* | ||
2 | * Coldfire generic GPIO support | ||
3 | * | ||
4 | * (C) Copyright 2009, Steven King <sfking@fdwdc.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 as published by | ||
8 | * the Free Software Foundation; version 2 of the License. | ||
9 | * | ||
10 | * This program is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU General Public License for more details. | ||
14 | */ | ||
15 | |||
16 | #include <linux/kernel.h> | ||
17 | #include <linux/init.h> | ||
18 | |||
19 | #include <asm/coldfire.h> | ||
20 | #include <asm/mcfsim.h> | ||
21 | #include <asm/mcfgpio.h> | ||
22 | |||
23 | static struct mcf_gpio_chip mcf_gpio_chips[] = { | ||
24 | { | ||
25 | .gpio_chip = { | ||
26 | .label = "PIRQ", | ||
27 | .request = mcf_gpio_request, | ||
28 | .free = mcf_gpio_free, | ||
29 | .direction_input = mcf_gpio_direction_input, | ||
30 | .direction_output = mcf_gpio_direction_output, | ||
31 | .get = mcf_gpio_get_value, | ||
32 | .set = mcf_gpio_set_value, | ||
33 | .base = 1, | ||
34 | .ngpio = 7, | ||
35 | }, | ||
36 | .pddr = (void __iomem *) MCFEPORT_EPDDR, | ||
37 | .podr = (void __iomem *) MCFEPORT_EPDR, | ||
38 | .ppdr = (void __iomem *) MCFEPORT_EPPDR, | ||
39 | }, | ||
40 | { | ||
41 | .gpio_chip = { | ||
42 | .label = "ADDR", | ||
43 | .request = mcf_gpio_request, | ||
44 | .free = mcf_gpio_free, | ||
45 | .direction_input = mcf_gpio_direction_input, | ||
46 | .direction_output = mcf_gpio_direction_output, | ||
47 | .get = mcf_gpio_get_value, | ||
48 | .set = mcf_gpio_set_value_fast, | ||
49 | .base = 13, | ||
50 | .ngpio = 3, | ||
51 | }, | ||
52 | .pddr = (void __iomem *) MCFGPIO_PDDR_ADDR, | ||
53 | .podr = (void __iomem *) MCFGPIO_PODR_ADDR, | ||
54 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_ADDR, | ||
55 | .setr = (void __iomem *) MCFGPIO_PPDSDR_ADDR, | ||
56 | .clrr = (void __iomem *) MCFGPIO_PCLRR_ADDR, | ||
57 | }, | ||
58 | { | ||
59 | .gpio_chip = { | ||
60 | .label = "DATAH", | ||
61 | .request = mcf_gpio_request, | ||
62 | .free = mcf_gpio_free, | ||
63 | .direction_input = mcf_gpio_direction_input, | ||
64 | .direction_output = mcf_gpio_direction_output, | ||
65 | .get = mcf_gpio_get_value, | ||
66 | .set = mcf_gpio_set_value_fast, | ||
67 | .base = 16, | ||
68 | .ngpio = 8, | ||
69 | }, | ||
70 | .pddr = (void __iomem *) MCFGPIO_PDDR_DATAH, | ||
71 | .podr = (void __iomem *) MCFGPIO_PODR_DATAH, | ||
72 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_DATAH, | ||
73 | .setr = (void __iomem *) MCFGPIO_PPDSDR_DATAH, | ||
74 | .clrr = (void __iomem *) MCFGPIO_PCLRR_DATAH, | ||
75 | }, | ||
76 | { | ||
77 | .gpio_chip = { | ||
78 | .label = "DATAL", | ||
79 | .request = mcf_gpio_request, | ||
80 | .free = mcf_gpio_free, | ||
81 | .direction_input = mcf_gpio_direction_input, | ||
82 | .direction_output = mcf_gpio_direction_output, | ||
83 | .get = mcf_gpio_get_value, | ||
84 | .set = mcf_gpio_set_value_fast, | ||
85 | .base = 24, | ||
86 | .ngpio = 8, | ||
87 | }, | ||
88 | .pddr = (void __iomem *) MCFGPIO_PDDR_DATAL, | ||
89 | .podr = (void __iomem *) MCFGPIO_PODR_DATAL, | ||
90 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_DATAL, | ||
91 | .setr = (void __iomem *) MCFGPIO_PPDSDR_DATAL, | ||
92 | .clrr = (void __iomem *) MCFGPIO_PCLRR_DATAL, | ||
93 | }, | ||
94 | { | ||
95 | .gpio_chip = { | ||
96 | .label = "BUSCTL", | ||
97 | .request = mcf_gpio_request, | ||
98 | .free = mcf_gpio_free, | ||
99 | .direction_input = mcf_gpio_direction_input, | ||
100 | .direction_output = mcf_gpio_direction_output, | ||
101 | .get = mcf_gpio_get_value, | ||
102 | .set = mcf_gpio_set_value_fast, | ||
103 | .base = 32, | ||
104 | .ngpio = 8, | ||
105 | }, | ||
106 | .pddr = (void __iomem *) MCFGPIO_PDDR_BUSCTL, | ||
107 | .podr = (void __iomem *) MCFGPIO_PODR_BUSCTL, | ||
108 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_BUSCTL, | ||
109 | .setr = (void __iomem *) MCFGPIO_PPDSDR_BUSCTL, | ||
110 | .clrr = (void __iomem *) MCFGPIO_PCLRR_BUSCTL, | ||
111 | }, | ||
112 | { | ||
113 | .gpio_chip = { | ||
114 | .label = "BS", | ||
115 | .request = mcf_gpio_request, | ||
116 | .free = mcf_gpio_free, | ||
117 | .direction_input = mcf_gpio_direction_input, | ||
118 | .direction_output = mcf_gpio_direction_output, | ||
119 | .get = mcf_gpio_get_value, | ||
120 | .set = mcf_gpio_set_value_fast, | ||
121 | .base = 40, | ||
122 | .ngpio = 4, | ||
123 | }, | ||
124 | .pddr = (void __iomem *) MCFGPIO_PDDR_BS, | ||
125 | .podr = (void __iomem *) MCFGPIO_PODR_BS, | ||
126 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_BS, | ||
127 | .setr = (void __iomem *) MCFGPIO_PPDSDR_BS, | ||
128 | .clrr = (void __iomem *) MCFGPIO_PCLRR_BS, | ||
129 | }, | ||
130 | { | ||
131 | .gpio_chip = { | ||
132 | .label = "CS", | ||
133 | .request = mcf_gpio_request, | ||
134 | .free = mcf_gpio_free, | ||
135 | .direction_input = mcf_gpio_direction_input, | ||
136 | .direction_output = mcf_gpio_direction_output, | ||
137 | .get = mcf_gpio_get_value, | ||
138 | .set = mcf_gpio_set_value_fast, | ||
139 | .base = 49, | ||
140 | .ngpio = 7, | ||
141 | }, | ||
142 | .pddr = (void __iomem *) MCFGPIO_PDDR_CS, | ||
143 | .podr = (void __iomem *) MCFGPIO_PODR_CS, | ||
144 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_CS, | ||
145 | .setr = (void __iomem *) MCFGPIO_PPDSDR_CS, | ||
146 | .clrr = (void __iomem *) MCFGPIO_PCLRR_CS, | ||
147 | }, | ||
148 | { | ||
149 | .gpio_chip = { | ||
150 | .label = "SDRAM", | ||
151 | .request = mcf_gpio_request, | ||
152 | .free = mcf_gpio_free, | ||
153 | .direction_input = mcf_gpio_direction_input, | ||
154 | .direction_output = mcf_gpio_direction_output, | ||
155 | .get = mcf_gpio_get_value, | ||
156 | .set = mcf_gpio_set_value_fast, | ||
157 | .base = 56, | ||
158 | .ngpio = 6, | ||
159 | }, | ||
160 | .pddr = (void __iomem *) MCFGPIO_PDDR_SDRAM, | ||
161 | .podr = (void __iomem *) MCFGPIO_PODR_SDRAM, | ||
162 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_SDRAM, | ||
163 | .setr = (void __iomem *) MCFGPIO_PPDSDR_SDRAM, | ||
164 | .clrr = (void __iomem *) MCFGPIO_PCLRR_SDRAM, | ||
165 | }, | ||
166 | { | ||
167 | .gpio_chip = { | ||
168 | .label = "FECI2C", | ||
169 | .request = mcf_gpio_request, | ||
170 | .free = mcf_gpio_free, | ||
171 | .direction_input = mcf_gpio_direction_input, | ||
172 | .direction_output = mcf_gpio_direction_output, | ||
173 | .get = mcf_gpio_get_value, | ||
174 | .set = mcf_gpio_set_value_fast, | ||
175 | .base = 64, | ||
176 | .ngpio = 4, | ||
177 | }, | ||
178 | .pddr = (void __iomem *) MCFGPIO_PDDR_FECI2C, | ||
179 | .podr = (void __iomem *) MCFGPIO_PODR_FECI2C, | ||
180 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_FECI2C, | ||
181 | .setr = (void __iomem *) MCFGPIO_PPDSDR_FECI2C, | ||
182 | .clrr = (void __iomem *) MCFGPIO_PCLRR_FECI2C, | ||
183 | }, | ||
184 | { | ||
185 | .gpio_chip = { | ||
186 | .label = "UARTH", | ||
187 | .request = mcf_gpio_request, | ||
188 | .free = mcf_gpio_free, | ||
189 | .direction_input = mcf_gpio_direction_input, | ||
190 | .direction_output = mcf_gpio_direction_output, | ||
191 | .get = mcf_gpio_get_value, | ||
192 | .set = mcf_gpio_set_value_fast, | ||
193 | .base = 72, | ||
194 | .ngpio = 2, | ||
195 | }, | ||
196 | .pddr = (void __iomem *) MCFGPIO_PDDR_UARTH, | ||
197 | .podr = (void __iomem *) MCFGPIO_PODR_UARTH, | ||
198 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_UARTH, | ||
199 | .setr = (void __iomem *) MCFGPIO_PPDSDR_UARTH, | ||
200 | .clrr = (void __iomem *) MCFGPIO_PCLRR_UARTH, | ||
201 | }, | ||
202 | { | ||
203 | .gpio_chip = { | ||
204 | .label = "UARTL", | ||
205 | .request = mcf_gpio_request, | ||
206 | .free = mcf_gpio_free, | ||
207 | .direction_input = mcf_gpio_direction_input, | ||
208 | .direction_output = mcf_gpio_direction_output, | ||
209 | .get = mcf_gpio_get_value, | ||
210 | .set = mcf_gpio_set_value_fast, | ||
211 | .base = 80, | ||
212 | .ngpio = 8, | ||
213 | }, | ||
214 | .pddr = (void __iomem *) MCFGPIO_PDDR_UARTL, | ||
215 | .podr = (void __iomem *) MCFGPIO_PODR_UARTL, | ||
216 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_UARTL, | ||
217 | .setr = (void __iomem *) MCFGPIO_PPDSDR_UARTL, | ||
218 | .clrr = (void __iomem *) MCFGPIO_PCLRR_UARTL, | ||
219 | }, | ||
220 | { | ||
221 | .gpio_chip = { | ||
222 | .label = "QSPI", | ||
223 | .request = mcf_gpio_request, | ||
224 | .free = mcf_gpio_free, | ||
225 | .direction_input = mcf_gpio_direction_input, | ||
226 | .direction_output = mcf_gpio_direction_output, | ||
227 | .get = mcf_gpio_get_value, | ||
228 | .set = mcf_gpio_set_value_fast, | ||
229 | .base = 88, | ||
230 | .ngpio = 5, | ||
231 | }, | ||
232 | .pddr = (void __iomem *) MCFGPIO_PDDR_QSPI, | ||
233 | .podr = (void __iomem *) MCFGPIO_PODR_QSPI, | ||
234 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_QSPI, | ||
235 | .setr = (void __iomem *) MCFGPIO_PPDSDR_QSPI, | ||
236 | .clrr = (void __iomem *) MCFGPIO_PCLRR_QSPI, | ||
237 | }, | ||
238 | { | ||
239 | .gpio_chip = { | ||
240 | .label = "TIMER", | ||
241 | .request = mcf_gpio_request, | ||
242 | .free = mcf_gpio_free, | ||
243 | .direction_input = mcf_gpio_direction_input, | ||
244 | .direction_output = mcf_gpio_direction_output, | ||
245 | .get = mcf_gpio_get_value, | ||
246 | .set = mcf_gpio_set_value_fast, | ||
247 | .base = 96, | ||
248 | .ngpio = 8, | ||
249 | }, | ||
250 | .pddr = (void __iomem *) MCFGPIO_PDDR_TIMER, | ||
251 | .podr = (void __iomem *) MCFGPIO_PODR_TIMER, | ||
252 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_TIMER, | ||
253 | .setr = (void __iomem *) MCFGPIO_PPDSDR_TIMER, | ||
254 | .clrr = (void __iomem *) MCFGPIO_PCLRR_TIMER, | ||
255 | }, | ||
256 | { | ||
257 | .gpio_chip = { | ||
258 | .label = "ETPU", | ||
259 | .request = mcf_gpio_request, | ||
260 | .free = mcf_gpio_free, | ||
261 | .direction_input = mcf_gpio_direction_input, | ||
262 | .direction_output = mcf_gpio_direction_output, | ||
263 | .get = mcf_gpio_get_value, | ||
264 | .set = mcf_gpio_set_value_fast, | ||
265 | .base = 104, | ||
266 | .ngpio = 3, | ||
267 | }, | ||
268 | .pddr = (void __iomem *) MCFGPIO_PDDR_ETPU, | ||
269 | .podr = (void __iomem *) MCFGPIO_PODR_ETPU, | ||
270 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_ETPU, | ||
271 | .setr = (void __iomem *) MCFGPIO_PPDSDR_ETPU, | ||
272 | .clrr = (void __iomem *) MCFGPIO_PCLRR_ETPU, | ||
273 | }, | ||
274 | }; | ||
275 | |||
276 | static int __init mcf_gpio_init(void) | ||
277 | { | ||
278 | unsigned i = 0; | ||
279 | while (i < ARRAY_SIZE(mcf_gpio_chips)) | ||
280 | (void)gpiochip_add((struct gpio_chip *)&mcf_gpio_chips[i++]); | ||
281 | return 0; | ||
282 | } | ||
283 | |||
284 | core_initcall(mcf_gpio_init); | ||
diff --git a/arch/m68k/platform/5249/Makefile b/arch/m68k/platform/5249/Makefile new file mode 100644 index 000000000000..4bed30fd0073 --- /dev/null +++ b/arch/m68k/platform/5249/Makefile | |||
@@ -0,0 +1,18 @@ | |||
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 | # ccflags-y := -DTRAP_DBG_INTERRUPT | ||
12 | # asflags-y := -DTRAP_DBG_INTERRUPT | ||
13 | # | ||
14 | |||
15 | asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1 | ||
16 | |||
17 | obj-y := config.o gpio.o intc2.o | ||
18 | |||
diff --git a/arch/m68k/platform/5249/config.c b/arch/m68k/platform/5249/config.c new file mode 100644 index 000000000000..ceb31e5744a6 --- /dev/null +++ b/arch/m68k/platform/5249/config.c | |||
@@ -0,0 +1,330 @@ | |||
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/kernel.h> | ||
12 | #include <linux/param.h> | ||
13 | #include <linux/init.h> | ||
14 | #include <linux/io.h> | ||
15 | #include <linux/spi/spi.h> | ||
16 | #include <linux/gpio.h> | ||
17 | #include <asm/machdep.h> | ||
18 | #include <asm/coldfire.h> | ||
19 | #include <asm/mcfsim.h> | ||
20 | #include <asm/mcfuart.h> | ||
21 | #include <asm/mcfqspi.h> | ||
22 | |||
23 | /***************************************************************************/ | ||
24 | |||
25 | static struct mcf_platform_uart m5249_uart_platform[] = { | ||
26 | { | ||
27 | .mapbase = MCF_MBAR + MCFUART_BASE1, | ||
28 | .irq = 73, | ||
29 | }, | ||
30 | { | ||
31 | .mapbase = MCF_MBAR + MCFUART_BASE2, | ||
32 | .irq = 74, | ||
33 | }, | ||
34 | { }, | ||
35 | }; | ||
36 | |||
37 | static struct platform_device m5249_uart = { | ||
38 | .name = "mcfuart", | ||
39 | .id = 0, | ||
40 | .dev.platform_data = m5249_uart_platform, | ||
41 | }; | ||
42 | |||
43 | #ifdef CONFIG_M5249C3 | ||
44 | |||
45 | static struct resource m5249_smc91x_resources[] = { | ||
46 | { | ||
47 | .start = 0xe0000300, | ||
48 | .end = 0xe0000300 + 0x100, | ||
49 | .flags = IORESOURCE_MEM, | ||
50 | }, | ||
51 | { | ||
52 | .start = MCFINTC2_GPIOIRQ6, | ||
53 | .end = MCFINTC2_GPIOIRQ6, | ||
54 | .flags = IORESOURCE_IRQ, | ||
55 | }, | ||
56 | }; | ||
57 | |||
58 | static struct platform_device m5249_smc91x = { | ||
59 | .name = "smc91x", | ||
60 | .id = 0, | ||
61 | .num_resources = ARRAY_SIZE(m5249_smc91x_resources), | ||
62 | .resource = m5249_smc91x_resources, | ||
63 | }; | ||
64 | |||
65 | #endif /* CONFIG_M5249C3 */ | ||
66 | |||
67 | #if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) | ||
68 | static struct resource m5249_qspi_resources[] = { | ||
69 | { | ||
70 | .start = MCFQSPI_IOBASE, | ||
71 | .end = MCFQSPI_IOBASE + MCFQSPI_IOSIZE - 1, | ||
72 | .flags = IORESOURCE_MEM, | ||
73 | }, | ||
74 | { | ||
75 | .start = MCF_IRQ_QSPI, | ||
76 | .end = MCF_IRQ_QSPI, | ||
77 | .flags = IORESOURCE_IRQ, | ||
78 | }, | ||
79 | }; | ||
80 | |||
81 | #define MCFQSPI_CS0 29 | ||
82 | #define MCFQSPI_CS1 24 | ||
83 | #define MCFQSPI_CS2 21 | ||
84 | #define MCFQSPI_CS3 22 | ||
85 | |||
86 | static int m5249_cs_setup(struct mcfqspi_cs_control *cs_control) | ||
87 | { | ||
88 | int status; | ||
89 | |||
90 | status = gpio_request(MCFQSPI_CS0, "MCFQSPI_CS0"); | ||
91 | if (status) { | ||
92 | pr_debug("gpio_request for MCFQSPI_CS0 failed\n"); | ||
93 | goto fail0; | ||
94 | } | ||
95 | status = gpio_direction_output(MCFQSPI_CS0, 1); | ||
96 | if (status) { | ||
97 | pr_debug("gpio_direction_output for MCFQSPI_CS0 failed\n"); | ||
98 | goto fail1; | ||
99 | } | ||
100 | |||
101 | status = gpio_request(MCFQSPI_CS1, "MCFQSPI_CS1"); | ||
102 | if (status) { | ||
103 | pr_debug("gpio_request for MCFQSPI_CS1 failed\n"); | ||
104 | goto fail1; | ||
105 | } | ||
106 | status = gpio_direction_output(MCFQSPI_CS1, 1); | ||
107 | if (status) { | ||
108 | pr_debug("gpio_direction_output for MCFQSPI_CS1 failed\n"); | ||
109 | goto fail2; | ||
110 | } | ||
111 | |||
112 | status = gpio_request(MCFQSPI_CS2, "MCFQSPI_CS2"); | ||
113 | if (status) { | ||
114 | pr_debug("gpio_request for MCFQSPI_CS2 failed\n"); | ||
115 | goto fail2; | ||
116 | } | ||
117 | status = gpio_direction_output(MCFQSPI_CS2, 1); | ||
118 | if (status) { | ||
119 | pr_debug("gpio_direction_output for MCFQSPI_CS2 failed\n"); | ||
120 | goto fail3; | ||
121 | } | ||
122 | |||
123 | status = gpio_request(MCFQSPI_CS3, "MCFQSPI_CS3"); | ||
124 | if (status) { | ||
125 | pr_debug("gpio_request for MCFQSPI_CS3 failed\n"); | ||
126 | goto fail3; | ||
127 | } | ||
128 | status = gpio_direction_output(MCFQSPI_CS3, 1); | ||
129 | if (status) { | ||
130 | pr_debug("gpio_direction_output for MCFQSPI_CS3 failed\n"); | ||
131 | goto fail4; | ||
132 | } | ||
133 | |||
134 | return 0; | ||
135 | |||
136 | fail4: | ||
137 | gpio_free(MCFQSPI_CS3); | ||
138 | fail3: | ||
139 | gpio_free(MCFQSPI_CS2); | ||
140 | fail2: | ||
141 | gpio_free(MCFQSPI_CS1); | ||
142 | fail1: | ||
143 | gpio_free(MCFQSPI_CS0); | ||
144 | fail0: | ||
145 | return status; | ||
146 | } | ||
147 | |||
148 | static void m5249_cs_teardown(struct mcfqspi_cs_control *cs_control) | ||
149 | { | ||
150 | gpio_free(MCFQSPI_CS3); | ||
151 | gpio_free(MCFQSPI_CS2); | ||
152 | gpio_free(MCFQSPI_CS1); | ||
153 | gpio_free(MCFQSPI_CS0); | ||
154 | } | ||
155 | |||
156 | static void m5249_cs_select(struct mcfqspi_cs_control *cs_control, | ||
157 | u8 chip_select, bool cs_high) | ||
158 | { | ||
159 | switch (chip_select) { | ||
160 | case 0: | ||
161 | gpio_set_value(MCFQSPI_CS0, cs_high); | ||
162 | break; | ||
163 | case 1: | ||
164 | gpio_set_value(MCFQSPI_CS1, cs_high); | ||
165 | break; | ||
166 | case 2: | ||
167 | gpio_set_value(MCFQSPI_CS2, cs_high); | ||
168 | break; | ||
169 | case 3: | ||
170 | gpio_set_value(MCFQSPI_CS3, cs_high); | ||
171 | break; | ||
172 | } | ||
173 | } | ||
174 | |||
175 | static void m5249_cs_deselect(struct mcfqspi_cs_control *cs_control, | ||
176 | u8 chip_select, bool cs_high) | ||
177 | { | ||
178 | switch (chip_select) { | ||
179 | case 0: | ||
180 | gpio_set_value(MCFQSPI_CS0, !cs_high); | ||
181 | break; | ||
182 | case 1: | ||
183 | gpio_set_value(MCFQSPI_CS1, !cs_high); | ||
184 | break; | ||
185 | case 2: | ||
186 | gpio_set_value(MCFQSPI_CS2, !cs_high); | ||
187 | break; | ||
188 | case 3: | ||
189 | gpio_set_value(MCFQSPI_CS3, !cs_high); | ||
190 | break; | ||
191 | } | ||
192 | } | ||
193 | |||
194 | static struct mcfqspi_cs_control m5249_cs_control = { | ||
195 | .setup = m5249_cs_setup, | ||
196 | .teardown = m5249_cs_teardown, | ||
197 | .select = m5249_cs_select, | ||
198 | .deselect = m5249_cs_deselect, | ||
199 | }; | ||
200 | |||
201 | static struct mcfqspi_platform_data m5249_qspi_data = { | ||
202 | .bus_num = 0, | ||
203 | .num_chipselect = 4, | ||
204 | .cs_control = &m5249_cs_control, | ||
205 | }; | ||
206 | |||
207 | static struct platform_device m5249_qspi = { | ||
208 | .name = "mcfqspi", | ||
209 | .id = 0, | ||
210 | .num_resources = ARRAY_SIZE(m5249_qspi_resources), | ||
211 | .resource = m5249_qspi_resources, | ||
212 | .dev.platform_data = &m5249_qspi_data, | ||
213 | }; | ||
214 | |||
215 | static void __init m5249_qspi_init(void) | ||
216 | { | ||
217 | /* QSPI irq setup */ | ||
218 | writeb(MCFSIM_ICR_AUTOVEC | MCFSIM_ICR_LEVEL4 | MCFSIM_ICR_PRI0, | ||
219 | MCF_MBAR + MCFSIM_QSPIICR); | ||
220 | mcf_mapirq2imr(MCF_IRQ_QSPI, MCFINTC_QSPI); | ||
221 | } | ||
222 | #endif /* defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) */ | ||
223 | |||
224 | |||
225 | static struct platform_device *m5249_devices[] __initdata = { | ||
226 | &m5249_uart, | ||
227 | #ifdef CONFIG_M5249C3 | ||
228 | &m5249_smc91x, | ||
229 | #endif | ||
230 | #if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) | ||
231 | &m5249_qspi, | ||
232 | #endif | ||
233 | }; | ||
234 | |||
235 | /***************************************************************************/ | ||
236 | |||
237 | static void __init m5249_uart_init_line(int line, int irq) | ||
238 | { | ||
239 | if (line == 0) { | ||
240 | writeb(MCFSIM_ICR_LEVEL6 | MCFSIM_ICR_PRI1, MCF_MBAR + MCFSIM_UART1ICR); | ||
241 | writeb(irq, MCF_MBAR + MCFUART_BASE1 + MCFUART_UIVR); | ||
242 | mcf_mapirq2imr(irq, MCFINTC_UART0); | ||
243 | } else if (line == 1) { | ||
244 | writeb(MCFSIM_ICR_LEVEL6 | MCFSIM_ICR_PRI2, MCF_MBAR + MCFSIM_UART2ICR); | ||
245 | writeb(irq, MCF_MBAR + MCFUART_BASE2 + MCFUART_UIVR); | ||
246 | mcf_mapirq2imr(irq, MCFINTC_UART1); | ||
247 | } | ||
248 | } | ||
249 | |||
250 | static void __init m5249_uarts_init(void) | ||
251 | { | ||
252 | const int nrlines = ARRAY_SIZE(m5249_uart_platform); | ||
253 | int line; | ||
254 | |||
255 | for (line = 0; (line < nrlines); line++) | ||
256 | m5249_uart_init_line(line, m5249_uart_platform[line].irq); | ||
257 | } | ||
258 | |||
259 | /***************************************************************************/ | ||
260 | |||
261 | #ifdef CONFIG_M5249C3 | ||
262 | |||
263 | static void __init m5249_smc91x_init(void) | ||
264 | { | ||
265 | u32 gpio; | ||
266 | |||
267 | /* Set the GPIO line as interrupt source for smc91x device */ | ||
268 | gpio = readl(MCF_MBAR2 + MCFSIM2_GPIOINTENABLE); | ||
269 | writel(gpio | 0x40, MCF_MBAR2 + MCFSIM2_GPIOINTENABLE); | ||
270 | |||
271 | gpio = readl(MCF_MBAR2 + MCFSIM2_INTLEVEL5); | ||
272 | writel(gpio | 0x04000000, MCF_MBAR2 + MCFSIM2_INTLEVEL5); | ||
273 | } | ||
274 | |||
275 | #endif /* CONFIG_M5249C3 */ | ||
276 | |||
277 | /***************************************************************************/ | ||
278 | |||
279 | static void __init m5249_timers_init(void) | ||
280 | { | ||
281 | /* Timer1 is always used as system timer */ | ||
282 | writeb(MCFSIM_ICR_AUTOVEC | MCFSIM_ICR_LEVEL6 | MCFSIM_ICR_PRI3, | ||
283 | MCF_MBAR + MCFSIM_TIMER1ICR); | ||
284 | mcf_mapirq2imr(MCF_IRQ_TIMER, MCFINTC_TIMER1); | ||
285 | |||
286 | #ifdef CONFIG_HIGHPROFILE | ||
287 | /* Timer2 is to be used as a high speed profile timer */ | ||
288 | writeb(MCFSIM_ICR_AUTOVEC | MCFSIM_ICR_LEVEL7 | MCFSIM_ICR_PRI3, | ||
289 | MCF_MBAR + MCFSIM_TIMER2ICR); | ||
290 | mcf_mapirq2imr(MCF_IRQ_PROFILER, MCFINTC_TIMER2); | ||
291 | #endif | ||
292 | } | ||
293 | |||
294 | /***************************************************************************/ | ||
295 | |||
296 | void m5249_cpu_reset(void) | ||
297 | { | ||
298 | local_irq_disable(); | ||
299 | /* Set watchdog to soft reset, and enabled */ | ||
300 | __raw_writeb(0xc0, MCF_MBAR + MCFSIM_SYPCR); | ||
301 | for (;;) | ||
302 | /* wait for watchdog to timeout */; | ||
303 | } | ||
304 | |||
305 | /***************************************************************************/ | ||
306 | |||
307 | void __init config_BSP(char *commandp, int size) | ||
308 | { | ||
309 | mach_reset = m5249_cpu_reset; | ||
310 | m5249_timers_init(); | ||
311 | m5249_uarts_init(); | ||
312 | #ifdef CONFIG_M5249C3 | ||
313 | m5249_smc91x_init(); | ||
314 | #endif | ||
315 | #if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) | ||
316 | m5249_qspi_init(); | ||
317 | #endif | ||
318 | } | ||
319 | |||
320 | /***************************************************************************/ | ||
321 | |||
322 | static int __init init_BSP(void) | ||
323 | { | ||
324 | platform_add_devices(m5249_devices, ARRAY_SIZE(m5249_devices)); | ||
325 | return 0; | ||
326 | } | ||
327 | |||
328 | arch_initcall(init_BSP); | ||
329 | |||
330 | /***************************************************************************/ | ||
diff --git a/arch/m68k/platform/5249/gpio.c b/arch/m68k/platform/5249/gpio.c new file mode 100644 index 000000000000..2b56c6ef65bf --- /dev/null +++ b/arch/m68k/platform/5249/gpio.c | |||
@@ -0,0 +1,65 @@ | |||
1 | /* | ||
2 | * Coldfire generic GPIO support | ||
3 | * | ||
4 | * (C) Copyright 2009, Steven King <sfking@fdwdc.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 as published by | ||
8 | * the Free Software Foundation; version 2 of the License. | ||
9 | * | ||
10 | * This program is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU General Public License for more details. | ||
14 | */ | ||
15 | |||
16 | #include <linux/kernel.h> | ||
17 | #include <linux/init.h> | ||
18 | |||
19 | #include <asm/coldfire.h> | ||
20 | #include <asm/mcfsim.h> | ||
21 | #include <asm/mcfgpio.h> | ||
22 | |||
23 | static struct mcf_gpio_chip mcf_gpio_chips[] = { | ||
24 | { | ||
25 | .gpio_chip = { | ||
26 | .label = "GPIO0", | ||
27 | .request = mcf_gpio_request, | ||
28 | .free = mcf_gpio_free, | ||
29 | .direction_input = mcf_gpio_direction_input, | ||
30 | .direction_output = mcf_gpio_direction_output, | ||
31 | .get = mcf_gpio_get_value, | ||
32 | .set = mcf_gpio_set_value, | ||
33 | .ngpio = 32, | ||
34 | }, | ||
35 | .pddr = (void __iomem *) MCFSIM2_GPIOENABLE, | ||
36 | .podr = (void __iomem *) MCFSIM2_GPIOWRITE, | ||
37 | .ppdr = (void __iomem *) MCFSIM2_GPIOREAD, | ||
38 | }, | ||
39 | { | ||
40 | .gpio_chip = { | ||
41 | .label = "GPIO1", | ||
42 | .request = mcf_gpio_request, | ||
43 | .free = mcf_gpio_free, | ||
44 | .direction_input = mcf_gpio_direction_input, | ||
45 | .direction_output = mcf_gpio_direction_output, | ||
46 | .get = mcf_gpio_get_value, | ||
47 | .set = mcf_gpio_set_value, | ||
48 | .base = 32, | ||
49 | .ngpio = 32, | ||
50 | }, | ||
51 | .pddr = (void __iomem *) MCFSIM2_GPIO1ENABLE, | ||
52 | .podr = (void __iomem *) MCFSIM2_GPIO1WRITE, | ||
53 | .ppdr = (void __iomem *) MCFSIM2_GPIO1READ, | ||
54 | }, | ||
55 | }; | ||
56 | |||
57 | static int __init mcf_gpio_init(void) | ||
58 | { | ||
59 | unsigned i = 0; | ||
60 | while (i < ARRAY_SIZE(mcf_gpio_chips)) | ||
61 | (void)gpiochip_add((struct gpio_chip *)&mcf_gpio_chips[i++]); | ||
62 | return 0; | ||
63 | } | ||
64 | |||
65 | core_initcall(mcf_gpio_init); | ||
diff --git a/arch/m68k/platform/5249/intc2.c b/arch/m68k/platform/5249/intc2.c new file mode 100644 index 000000000000..8f4b63e17366 --- /dev/null +++ b/arch/m68k/platform/5249/intc2.c | |||
@@ -0,0 +1,61 @@ | |||
1 | /* | ||
2 | * intc2.c -- support for the 2nd INTC controller of the 5249 | ||
3 | * | ||
4 | * (C) Copyright 2009, Greg Ungerer <gerg@snapgear.com> | ||
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 | #include <linux/types.h> | ||
12 | #include <linux/init.h> | ||
13 | #include <linux/kernel.h> | ||
14 | #include <linux/interrupt.h> | ||
15 | #include <linux/irq.h> | ||
16 | #include <linux/io.h> | ||
17 | #include <asm/coldfire.h> | ||
18 | #include <asm/mcfsim.h> | ||
19 | |||
20 | static void intc2_irq_gpio_mask(struct irq_data *d) | ||
21 | { | ||
22 | u32 imr; | ||
23 | imr = readl(MCF_MBAR2 + MCFSIM2_GPIOINTENABLE); | ||
24 | imr &= ~(0x1 << (d->irq - MCFINTC2_GPIOIRQ0)); | ||
25 | writel(imr, MCF_MBAR2 + MCFSIM2_GPIOINTENABLE); | ||
26 | } | ||
27 | |||
28 | static void intc2_irq_gpio_unmask(struct irq_data *d) | ||
29 | { | ||
30 | u32 imr; | ||
31 | imr = readl(MCF_MBAR2 + MCFSIM2_GPIOINTENABLE); | ||
32 | imr |= (0x1 << (d->irq - MCFINTC2_GPIOIRQ0)); | ||
33 | writel(imr, MCF_MBAR2 + MCFSIM2_GPIOINTENABLE); | ||
34 | } | ||
35 | |||
36 | static void intc2_irq_gpio_ack(struct irq_data *d) | ||
37 | { | ||
38 | writel(0x1 << (d->irq - MCFINTC2_GPIOIRQ0), MCF_MBAR2 + MCFSIM2_GPIOINTCLEAR); | ||
39 | } | ||
40 | |||
41 | static struct irq_chip intc2_irq_gpio_chip = { | ||
42 | .name = "CF-INTC2", | ||
43 | .irq_mask = intc2_irq_gpio_mask, | ||
44 | .irq_unmask = intc2_irq_gpio_unmask, | ||
45 | .irq_ack = intc2_irq_gpio_ack, | ||
46 | }; | ||
47 | |||
48 | static int __init mcf_intc2_init(void) | ||
49 | { | ||
50 | int irq; | ||
51 | |||
52 | /* GPIO interrupt sources */ | ||
53 | for (irq = MCFINTC2_GPIOIRQ0; (irq <= MCFINTC2_GPIOIRQ7); irq++) { | ||
54 | set_irq_chip(irq, &intc2_irq_gpio_chip); | ||
55 | set_irq_handler(irq, handle_edge_irq); | ||
56 | } | ||
57 | |||
58 | return 0; | ||
59 | } | ||
60 | |||
61 | arch_initcall(mcf_intc2_init); | ||
diff --git a/arch/m68k/platform/5272/Makefile b/arch/m68k/platform/5272/Makefile new file mode 100644 index 000000000000..34110fc14301 --- /dev/null +++ b/arch/m68k/platform/5272/Makefile | |||
@@ -0,0 +1,18 @@ | |||
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 | # ccflags-y := -DTRAP_DBG_INTERRUPT | ||
12 | # asflags-y := -DTRAP_DBG_INTERRUPT | ||
13 | # | ||
14 | |||
15 | asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1 | ||
16 | |||
17 | obj-y := config.o gpio.o intc.o | ||
18 | |||
diff --git a/arch/m68k/platform/5272/config.c b/arch/m68k/platform/5272/config.c new file mode 100644 index 000000000000..65bb582734e1 --- /dev/null +++ b/arch/m68k/platform/5272/config.c | |||
@@ -0,0 +1,176 @@ | |||
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/kernel.h> | ||
13 | #include <linux/param.h> | ||
14 | #include <linux/init.h> | ||
15 | #include <linux/io.h> | ||
16 | #include <linux/phy.h> | ||
17 | #include <linux/phy_fixed.h> | ||
18 | #include <asm/machdep.h> | ||
19 | #include <asm/coldfire.h> | ||
20 | #include <asm/mcfsim.h> | ||
21 | #include <asm/mcfuart.h> | ||
22 | |||
23 | /***************************************************************************/ | ||
24 | |||
25 | /* | ||
26 | * Some platforms need software versions of the GPIO data registers. | ||
27 | */ | ||
28 | unsigned short ppdata; | ||
29 | unsigned char ledbank = 0xff; | ||
30 | |||
31 | /***************************************************************************/ | ||
32 | |||
33 | static struct mcf_platform_uart m5272_uart_platform[] = { | ||
34 | { | ||
35 | .mapbase = MCF_MBAR + MCFUART_BASE1, | ||
36 | .irq = MCF_IRQ_UART1, | ||
37 | }, | ||
38 | { | ||
39 | .mapbase = MCF_MBAR + MCFUART_BASE2, | ||
40 | .irq = MCF_IRQ_UART2, | ||
41 | }, | ||
42 | { }, | ||
43 | }; | ||
44 | |||
45 | static struct platform_device m5272_uart = { | ||
46 | .name = "mcfuart", | ||
47 | .id = 0, | ||
48 | .dev.platform_data = m5272_uart_platform, | ||
49 | }; | ||
50 | |||
51 | static struct resource m5272_fec_resources[] = { | ||
52 | { | ||
53 | .start = MCF_MBAR + 0x840, | ||
54 | .end = MCF_MBAR + 0x840 + 0x1cf, | ||
55 | .flags = IORESOURCE_MEM, | ||
56 | }, | ||
57 | { | ||
58 | .start = MCF_IRQ_ERX, | ||
59 | .end = MCF_IRQ_ERX, | ||
60 | .flags = IORESOURCE_IRQ, | ||
61 | }, | ||
62 | { | ||
63 | .start = MCF_IRQ_ETX, | ||
64 | .end = MCF_IRQ_ETX, | ||
65 | .flags = IORESOURCE_IRQ, | ||
66 | }, | ||
67 | { | ||
68 | .start = MCF_IRQ_ENTC, | ||
69 | .end = MCF_IRQ_ENTC, | ||
70 | .flags = IORESOURCE_IRQ, | ||
71 | }, | ||
72 | }; | ||
73 | |||
74 | static struct platform_device m5272_fec = { | ||
75 | .name = "fec", | ||
76 | .id = 0, | ||
77 | .num_resources = ARRAY_SIZE(m5272_fec_resources), | ||
78 | .resource = m5272_fec_resources, | ||
79 | }; | ||
80 | |||
81 | static struct platform_device *m5272_devices[] __initdata = { | ||
82 | &m5272_uart, | ||
83 | &m5272_fec, | ||
84 | }; | ||
85 | |||
86 | /***************************************************************************/ | ||
87 | |||
88 | static void __init m5272_uart_init_line(int line, int irq) | ||
89 | { | ||
90 | u32 v; | ||
91 | |||
92 | if ((line >= 0) && (line < 2)) { | ||
93 | /* Enable the output lines for the serial ports */ | ||
94 | v = readl(MCF_MBAR + MCFSIM_PBCNT); | ||
95 | v = (v & ~0x000000ff) | 0x00000055; | ||
96 | writel(v, MCF_MBAR + MCFSIM_PBCNT); | ||
97 | |||
98 | v = readl(MCF_MBAR + MCFSIM_PDCNT); | ||
99 | v = (v & ~0x000003fc) | 0x000002a8; | ||
100 | writel(v, MCF_MBAR + MCFSIM_PDCNT); | ||
101 | } | ||
102 | } | ||
103 | |||
104 | static void __init m5272_uarts_init(void) | ||
105 | { | ||
106 | const int nrlines = ARRAY_SIZE(m5272_uart_platform); | ||
107 | int line; | ||
108 | |||
109 | for (line = 0; (line < nrlines); line++) | ||
110 | m5272_uart_init_line(line, m5272_uart_platform[line].irq); | ||
111 | } | ||
112 | |||
113 | /***************************************************************************/ | ||
114 | |||
115 | static void m5272_cpu_reset(void) | ||
116 | { | ||
117 | local_irq_disable(); | ||
118 | /* Set watchdog to reset, and enabled */ | ||
119 | __raw_writew(0, MCF_MBAR + MCFSIM_WIRR); | ||
120 | __raw_writew(1, MCF_MBAR + MCFSIM_WRRR); | ||
121 | __raw_writew(0, MCF_MBAR + MCFSIM_WCR); | ||
122 | for (;;) | ||
123 | /* wait for watchdog to timeout */; | ||
124 | } | ||
125 | |||
126 | /***************************************************************************/ | ||
127 | |||
128 | void __init config_BSP(char *commandp, int size) | ||
129 | { | ||
130 | #if defined (CONFIG_MOD5272) | ||
131 | volatile unsigned char *pivrp; | ||
132 | |||
133 | /* Set base of device vectors to be 64 */ | ||
134 | pivrp = (volatile unsigned char *) (MCF_MBAR + MCFSIM_PIVR); | ||
135 | *pivrp = 0x40; | ||
136 | #endif | ||
137 | |||
138 | #if defined(CONFIG_NETtel) || defined(CONFIG_SCALES) | ||
139 | /* Copy command line from FLASH to local buffer... */ | ||
140 | memcpy(commandp, (char *) 0xf0004000, size); | ||
141 | commandp[size-1] = 0; | ||
142 | #elif defined(CONFIG_CANCam) | ||
143 | /* Copy command line from FLASH to local buffer... */ | ||
144 | memcpy(commandp, (char *) 0xf0010000, size); | ||
145 | commandp[size-1] = 0; | ||
146 | #endif | ||
147 | |||
148 | mach_reset = m5272_cpu_reset; | ||
149 | } | ||
150 | |||
151 | /***************************************************************************/ | ||
152 | |||
153 | /* | ||
154 | * Some 5272 based boards have the FEC ethernet diectly connected to | ||
155 | * an ethernet switch. In this case we need to use the fixed phy type, | ||
156 | * and we need to declare it early in boot. | ||
157 | */ | ||
158 | static struct fixed_phy_status nettel_fixed_phy_status __initdata = { | ||
159 | .link = 1, | ||
160 | .speed = 100, | ||
161 | .duplex = 0, | ||
162 | }; | ||
163 | |||
164 | /***************************************************************************/ | ||
165 | |||
166 | static int __init init_BSP(void) | ||
167 | { | ||
168 | m5272_uarts_init(); | ||
169 | fixed_phy_add(PHY_POLL, 0, &nettel_fixed_phy_status); | ||
170 | platform_add_devices(m5272_devices, ARRAY_SIZE(m5272_devices)); | ||
171 | return 0; | ||
172 | } | ||
173 | |||
174 | arch_initcall(init_BSP); | ||
175 | |||
176 | /***************************************************************************/ | ||
diff --git a/arch/m68k/platform/5272/gpio.c b/arch/m68k/platform/5272/gpio.c new file mode 100644 index 000000000000..57ac10a5d7f7 --- /dev/null +++ b/arch/m68k/platform/5272/gpio.c | |||
@@ -0,0 +1,81 @@ | |||
1 | /* | ||
2 | * Coldfire generic GPIO support | ||
3 | * | ||
4 | * (C) Copyright 2009, Steven King <sfking@fdwdc.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 as published by | ||
8 | * the Free Software Foundation; version 2 of the License. | ||
9 | * | ||
10 | * This program is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU General Public License for more details. | ||
14 | */ | ||
15 | |||
16 | #include <linux/kernel.h> | ||
17 | #include <linux/init.h> | ||
18 | |||
19 | #include <asm/coldfire.h> | ||
20 | #include <asm/mcfsim.h> | ||
21 | #include <asm/mcfgpio.h> | ||
22 | |||
23 | static struct mcf_gpio_chip mcf_gpio_chips[] = { | ||
24 | { | ||
25 | .gpio_chip = { | ||
26 | .label = "PA", | ||
27 | .request = mcf_gpio_request, | ||
28 | .free = mcf_gpio_free, | ||
29 | .direction_input = mcf_gpio_direction_input, | ||
30 | .direction_output = mcf_gpio_direction_output, | ||
31 | .get = mcf_gpio_get_value, | ||
32 | .set = mcf_gpio_set_value, | ||
33 | .ngpio = 16, | ||
34 | }, | ||
35 | .pddr = (void __iomem *) MCFSIM_PADDR, | ||
36 | .podr = (void __iomem *) MCFSIM_PADAT, | ||
37 | .ppdr = (void __iomem *) MCFSIM_PADAT, | ||
38 | }, | ||
39 | { | ||
40 | .gpio_chip = { | ||
41 | .label = "PB", | ||
42 | .request = mcf_gpio_request, | ||
43 | .free = mcf_gpio_free, | ||
44 | .direction_input = mcf_gpio_direction_input, | ||
45 | .direction_output = mcf_gpio_direction_output, | ||
46 | .get = mcf_gpio_get_value, | ||
47 | .set = mcf_gpio_set_value, | ||
48 | .base = 16, | ||
49 | .ngpio = 16, | ||
50 | }, | ||
51 | .pddr = (void __iomem *) MCFSIM_PBDDR, | ||
52 | .podr = (void __iomem *) MCFSIM_PBDAT, | ||
53 | .ppdr = (void __iomem *) MCFSIM_PBDAT, | ||
54 | }, | ||
55 | { | ||
56 | .gpio_chip = { | ||
57 | .label = "PC", | ||
58 | .request = mcf_gpio_request, | ||
59 | .free = mcf_gpio_free, | ||
60 | .direction_input = mcf_gpio_direction_input, | ||
61 | .direction_output = mcf_gpio_direction_output, | ||
62 | .get = mcf_gpio_get_value, | ||
63 | .set = mcf_gpio_set_value, | ||
64 | .base = 32, | ||
65 | .ngpio = 16, | ||
66 | }, | ||
67 | .pddr = (void __iomem *) MCFSIM_PCDDR, | ||
68 | .podr = (void __iomem *) MCFSIM_PCDAT, | ||
69 | .ppdr = (void __iomem *) MCFSIM_PCDAT, | ||
70 | }, | ||
71 | }; | ||
72 | |||
73 | static int __init mcf_gpio_init(void) | ||
74 | { | ||
75 | unsigned i = 0; | ||
76 | while (i < ARRAY_SIZE(mcf_gpio_chips)) | ||
77 | (void)gpiochip_add((struct gpio_chip *)&mcf_gpio_chips[i++]); | ||
78 | return 0; | ||
79 | } | ||
80 | |||
81 | core_initcall(mcf_gpio_init); | ||
diff --git a/arch/m68k/platform/5272/intc.c b/arch/m68k/platform/5272/intc.c new file mode 100644 index 000000000000..969ff0a467c6 --- /dev/null +++ b/arch/m68k/platform/5272/intc.c | |||
@@ -0,0 +1,187 @@ | |||
1 | /* | ||
2 | * intc.c -- interrupt controller or ColdFire 5272 SoC | ||
3 | * | ||
4 | * (C) Copyright 2009, Greg Ungerer <gerg@snapgear.com> | ||
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 | #include <linux/types.h> | ||
12 | #include <linux/init.h> | ||
13 | #include <linux/kernel.h> | ||
14 | #include <linux/interrupt.h> | ||
15 | #include <linux/kernel_stat.h> | ||
16 | #include <linux/irq.h> | ||
17 | #include <linux/io.h> | ||
18 | #include <asm/coldfire.h> | ||
19 | #include <asm/mcfsim.h> | ||
20 | #include <asm/traps.h> | ||
21 | |||
22 | /* | ||
23 | * The 5272 ColdFire interrupt controller is nothing like any other | ||
24 | * ColdFire interrupt controller - it truly is completely different. | ||
25 | * Given its age it is unlikely to be used on any other ColdFire CPU. | ||
26 | */ | ||
27 | |||
28 | /* | ||
29 | * The masking and priproty setting of interrupts on the 5272 is done | ||
30 | * via a set of 4 "Interrupt Controller Registers" (ICR). There is a | ||
31 | * loose mapping of vector number to register and internal bits, but | ||
32 | * a table is the easiest and quickest way to map them. | ||
33 | * | ||
34 | * Note that the external interrupts are edge triggered (unlike the | ||
35 | * internal interrupt sources which are level triggered). Which means | ||
36 | * they also need acknowledgeing via acknowledge bits. | ||
37 | */ | ||
38 | struct irqmap { | ||
39 | unsigned char icr; | ||
40 | unsigned char index; | ||
41 | unsigned char ack; | ||
42 | }; | ||
43 | |||
44 | static struct irqmap intc_irqmap[MCFINT_VECMAX - MCFINT_VECBASE] = { | ||
45 | /*MCF_IRQ_SPURIOUS*/ { .icr = 0, .index = 0, .ack = 0, }, | ||
46 | /*MCF_IRQ_EINT1*/ { .icr = MCFSIM_ICR1, .index = 28, .ack = 1, }, | ||
47 | /*MCF_IRQ_EINT2*/ { .icr = MCFSIM_ICR1, .index = 24, .ack = 1, }, | ||
48 | /*MCF_IRQ_EINT3*/ { .icr = MCFSIM_ICR1, .index = 20, .ack = 1, }, | ||
49 | /*MCF_IRQ_EINT4*/ { .icr = MCFSIM_ICR1, .index = 16, .ack = 1, }, | ||
50 | /*MCF_IRQ_TIMER1*/ { .icr = MCFSIM_ICR1, .index = 12, .ack = 0, }, | ||
51 | /*MCF_IRQ_TIMER2*/ { .icr = MCFSIM_ICR1, .index = 8, .ack = 0, }, | ||
52 | /*MCF_IRQ_TIMER3*/ { .icr = MCFSIM_ICR1, .index = 4, .ack = 0, }, | ||
53 | /*MCF_IRQ_TIMER4*/ { .icr = MCFSIM_ICR1, .index = 0, .ack = 0, }, | ||
54 | /*MCF_IRQ_UART1*/ { .icr = MCFSIM_ICR2, .index = 28, .ack = 0, }, | ||
55 | /*MCF_IRQ_UART2*/ { .icr = MCFSIM_ICR2, .index = 24, .ack = 0, }, | ||
56 | /*MCF_IRQ_PLIP*/ { .icr = MCFSIM_ICR2, .index = 20, .ack = 0, }, | ||
57 | /*MCF_IRQ_PLIA*/ { .icr = MCFSIM_ICR2, .index = 16, .ack = 0, }, | ||
58 | /*MCF_IRQ_USB0*/ { .icr = MCFSIM_ICR2, .index = 12, .ack = 0, }, | ||
59 | /*MCF_IRQ_USB1*/ { .icr = MCFSIM_ICR2, .index = 8, .ack = 0, }, | ||
60 | /*MCF_IRQ_USB2*/ { .icr = MCFSIM_ICR2, .index = 4, .ack = 0, }, | ||
61 | /*MCF_IRQ_USB3*/ { .icr = MCFSIM_ICR2, .index = 0, .ack = 0, }, | ||
62 | /*MCF_IRQ_USB4*/ { .icr = MCFSIM_ICR3, .index = 28, .ack = 0, }, | ||
63 | /*MCF_IRQ_USB5*/ { .icr = MCFSIM_ICR3, .index = 24, .ack = 0, }, | ||
64 | /*MCF_IRQ_USB6*/ { .icr = MCFSIM_ICR3, .index = 20, .ack = 0, }, | ||
65 | /*MCF_IRQ_USB7*/ { .icr = MCFSIM_ICR3, .index = 16, .ack = 0, }, | ||
66 | /*MCF_IRQ_DMA*/ { .icr = MCFSIM_ICR3, .index = 12, .ack = 0, }, | ||
67 | /*MCF_IRQ_ERX*/ { .icr = MCFSIM_ICR3, .index = 8, .ack = 0, }, | ||
68 | /*MCF_IRQ_ETX*/ { .icr = MCFSIM_ICR3, .index = 4, .ack = 0, }, | ||
69 | /*MCF_IRQ_ENTC*/ { .icr = MCFSIM_ICR3, .index = 0, .ack = 0, }, | ||
70 | /*MCF_IRQ_QSPI*/ { .icr = MCFSIM_ICR4, .index = 28, .ack = 0, }, | ||
71 | /*MCF_IRQ_EINT5*/ { .icr = MCFSIM_ICR4, .index = 24, .ack = 1, }, | ||
72 | /*MCF_IRQ_EINT6*/ { .icr = MCFSIM_ICR4, .index = 20, .ack = 1, }, | ||
73 | /*MCF_IRQ_SWTO*/ { .icr = MCFSIM_ICR4, .index = 16, .ack = 0, }, | ||
74 | }; | ||
75 | |||
76 | /* | ||
77 | * The act of masking the interrupt also has a side effect of 'ack'ing | ||
78 | * an interrupt on this irq (for the external irqs). So this mask function | ||
79 | * is also an ack_mask function. | ||
80 | */ | ||
81 | static void intc_irq_mask(struct irq_data *d) | ||
82 | { | ||
83 | unsigned int irq = d->irq; | ||
84 | |||
85 | if ((irq >= MCFINT_VECBASE) && (irq <= MCFINT_VECMAX)) { | ||
86 | u32 v; | ||
87 | irq -= MCFINT_VECBASE; | ||
88 | v = 0x8 << intc_irqmap[irq].index; | ||
89 | writel(v, MCF_MBAR + intc_irqmap[irq].icr); | ||
90 | } | ||
91 | } | ||
92 | |||
93 | static void intc_irq_unmask(struct irq_data *d) | ||
94 | { | ||
95 | unsigned int irq = d->irq; | ||
96 | |||
97 | if ((irq >= MCFINT_VECBASE) && (irq <= MCFINT_VECMAX)) { | ||
98 | u32 v; | ||
99 | irq -= MCFINT_VECBASE; | ||
100 | v = 0xd << intc_irqmap[irq].index; | ||
101 | writel(v, MCF_MBAR + intc_irqmap[irq].icr); | ||
102 | } | ||
103 | } | ||
104 | |||
105 | static void intc_irq_ack(struct irq_data *d) | ||
106 | { | ||
107 | unsigned int irq = d->irq; | ||
108 | |||
109 | /* Only external interrupts are acked */ | ||
110 | if ((irq >= MCFINT_VECBASE) && (irq <= MCFINT_VECMAX)) { | ||
111 | irq -= MCFINT_VECBASE; | ||
112 | if (intc_irqmap[irq].ack) { | ||
113 | u32 v; | ||
114 | v = readl(MCF_MBAR + intc_irqmap[irq].icr); | ||
115 | v &= (0x7 << intc_irqmap[irq].index); | ||
116 | v |= (0x8 << intc_irqmap[irq].index); | ||
117 | writel(v, MCF_MBAR + intc_irqmap[irq].icr); | ||
118 | } | ||
119 | } | ||
120 | } | ||
121 | |||
122 | static int intc_irq_set_type(struct irq_data *d, unsigned int type) | ||
123 | { | ||
124 | unsigned int irq = d->irq; | ||
125 | |||
126 | if ((irq >= MCFINT_VECBASE) && (irq <= MCFINT_VECMAX)) { | ||
127 | irq -= MCFINT_VECBASE; | ||
128 | if (intc_irqmap[irq].ack) { | ||
129 | u32 v; | ||
130 | v = readl(MCF_MBAR + MCFSIM_PITR); | ||
131 | if (type == IRQ_TYPE_EDGE_FALLING) | ||
132 | v &= ~(0x1 << (32 - irq)); | ||
133 | else | ||
134 | v |= (0x1 << (32 - irq)); | ||
135 | writel(v, MCF_MBAR + MCFSIM_PITR); | ||
136 | } | ||
137 | } | ||
138 | return 0; | ||
139 | } | ||
140 | |||
141 | /* | ||
142 | * Simple flow handler to deal with the external edge triggered interrupts. | ||
143 | * We need to be careful with the masking/acking due to the side effects | ||
144 | * of masking an interrupt. | ||
145 | */ | ||
146 | static void intc_external_irq(unsigned int irq, struct irq_desc *desc) | ||
147 | { | ||
148 | get_irq_desc_chip(desc)->irq_ack(&desc->irq_data); | ||
149 | handle_simple_irq(irq, desc); | ||
150 | } | ||
151 | |||
152 | static struct irq_chip intc_irq_chip = { | ||
153 | .name = "CF-INTC", | ||
154 | .irq_mask = intc_irq_mask, | ||
155 | .irq_unmask = intc_irq_unmask, | ||
156 | .irq_mask_ack = intc_irq_mask, | ||
157 | .irq_ack = intc_irq_ack, | ||
158 | .irq_set_type = intc_irq_set_type, | ||
159 | }; | ||
160 | |||
161 | void __init init_IRQ(void) | ||
162 | { | ||
163 | int irq, edge; | ||
164 | |||
165 | init_vectors(); | ||
166 | |||
167 | /* Mask all interrupt sources */ | ||
168 | writel(0x88888888, MCF_MBAR + MCFSIM_ICR1); | ||
169 | writel(0x88888888, MCF_MBAR + MCFSIM_ICR2); | ||
170 | writel(0x88888888, MCF_MBAR + MCFSIM_ICR3); | ||
171 | writel(0x88888888, MCF_MBAR + MCFSIM_ICR4); | ||
172 | |||
173 | for (irq = 0; (irq < NR_IRQS); irq++) { | ||
174 | set_irq_chip(irq, &intc_irq_chip); | ||
175 | edge = 0; | ||
176 | if ((irq >= MCFINT_VECBASE) && (irq <= MCFINT_VECMAX)) | ||
177 | edge = intc_irqmap[irq - MCFINT_VECBASE].ack; | ||
178 | if (edge) { | ||
179 | set_irq_type(irq, IRQ_TYPE_EDGE_RISING); | ||
180 | set_irq_handler(irq, intc_external_irq); | ||
181 | } else { | ||
182 | set_irq_type(irq, IRQ_TYPE_LEVEL_HIGH); | ||
183 | set_irq_handler(irq, handle_level_irq); | ||
184 | } | ||
185 | } | ||
186 | } | ||
187 | |||
diff --git a/arch/m68k/platform/527x/Makefile b/arch/m68k/platform/527x/Makefile new file mode 100644 index 000000000000..6ac4b57370ea --- /dev/null +++ b/arch/m68k/platform/527x/Makefile | |||
@@ -0,0 +1,18 @@ | |||
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 | # ccflags-y := -DTRAP_DBG_INTERRUPT | ||
12 | # asflags-y := -DTRAP_DBG_INTERRUPT | ||
13 | # | ||
14 | |||
15 | asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1 | ||
16 | |||
17 | obj-y := config.o gpio.o | ||
18 | |||
diff --git a/arch/m68k/platform/527x/config.c b/arch/m68k/platform/527x/config.c new file mode 100644 index 000000000000..fa359593b613 --- /dev/null +++ b/arch/m68k/platform/527x/config.c | |||
@@ -0,0 +1,384 @@ | |||
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/kernel.h> | ||
16 | #include <linux/param.h> | ||
17 | #include <linux/init.h> | ||
18 | #include <linux/io.h> | ||
19 | #include <linux/spi/spi.h> | ||
20 | #include <linux/gpio.h> | ||
21 | #include <asm/machdep.h> | ||
22 | #include <asm/coldfire.h> | ||
23 | #include <asm/mcfsim.h> | ||
24 | #include <asm/mcfuart.h> | ||
25 | #include <asm/mcfqspi.h> | ||
26 | |||
27 | /***************************************************************************/ | ||
28 | |||
29 | static struct mcf_platform_uart m527x_uart_platform[] = { | ||
30 | { | ||
31 | .mapbase = MCFUART_BASE1, | ||
32 | .irq = MCFINT_VECBASE + MCFINT_UART0, | ||
33 | }, | ||
34 | { | ||
35 | .mapbase = MCFUART_BASE2, | ||
36 | .irq = MCFINT_VECBASE + MCFINT_UART1, | ||
37 | }, | ||
38 | { | ||
39 | .mapbase = MCFUART_BASE3, | ||
40 | .irq = MCFINT_VECBASE + MCFINT_UART2, | ||
41 | }, | ||
42 | { }, | ||
43 | }; | ||
44 | |||
45 | static struct platform_device m527x_uart = { | ||
46 | .name = "mcfuart", | ||
47 | .id = 0, | ||
48 | .dev.platform_data = m527x_uart_platform, | ||
49 | }; | ||
50 | |||
51 | static struct resource m527x_fec0_resources[] = { | ||
52 | { | ||
53 | .start = MCFFEC_BASE0, | ||
54 | .end = MCFFEC_BASE0 + MCFFEC_SIZE0 - 1, | ||
55 | .flags = IORESOURCE_MEM, | ||
56 | }, | ||
57 | { | ||
58 | .start = 64 + 23, | ||
59 | .end = 64 + 23, | ||
60 | .flags = IORESOURCE_IRQ, | ||
61 | }, | ||
62 | { | ||
63 | .start = 64 + 27, | ||
64 | .end = 64 + 27, | ||
65 | .flags = IORESOURCE_IRQ, | ||
66 | }, | ||
67 | { | ||
68 | .start = 64 + 29, | ||
69 | .end = 64 + 29, | ||
70 | .flags = IORESOURCE_IRQ, | ||
71 | }, | ||
72 | }; | ||
73 | |||
74 | static struct resource m527x_fec1_resources[] = { | ||
75 | { | ||
76 | .start = MCFFEC_BASE1, | ||
77 | .end = MCFFEC_BASE1 + MCFFEC_SIZE1 - 1, | ||
78 | .flags = IORESOURCE_MEM, | ||
79 | }, | ||
80 | { | ||
81 | .start = 128 + 23, | ||
82 | .end = 128 + 23, | ||
83 | .flags = IORESOURCE_IRQ, | ||
84 | }, | ||
85 | { | ||
86 | .start = 128 + 27, | ||
87 | .end = 128 + 27, | ||
88 | .flags = IORESOURCE_IRQ, | ||
89 | }, | ||
90 | { | ||
91 | .start = 128 + 29, | ||
92 | .end = 128 + 29, | ||
93 | .flags = IORESOURCE_IRQ, | ||
94 | }, | ||
95 | }; | ||
96 | |||
97 | static struct platform_device m527x_fec[] = { | ||
98 | { | ||
99 | .name = "fec", | ||
100 | .id = 0, | ||
101 | .num_resources = ARRAY_SIZE(m527x_fec0_resources), | ||
102 | .resource = m527x_fec0_resources, | ||
103 | }, | ||
104 | { | ||
105 | .name = "fec", | ||
106 | .id = 1, | ||
107 | .num_resources = ARRAY_SIZE(m527x_fec1_resources), | ||
108 | .resource = m527x_fec1_resources, | ||
109 | }, | ||
110 | }; | ||
111 | |||
112 | #if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) | ||
113 | static struct resource m527x_qspi_resources[] = { | ||
114 | { | ||
115 | .start = MCFQSPI_IOBASE, | ||
116 | .end = MCFQSPI_IOBASE + MCFQSPI_IOSIZE - 1, | ||
117 | .flags = IORESOURCE_MEM, | ||
118 | }, | ||
119 | { | ||
120 | .start = MCFINT_VECBASE + MCFINT_QSPI, | ||
121 | .end = MCFINT_VECBASE + MCFINT_QSPI, | ||
122 | .flags = IORESOURCE_IRQ, | ||
123 | }, | ||
124 | }; | ||
125 | |||
126 | #if defined(CONFIG_M5271) | ||
127 | #define MCFQSPI_CS0 91 | ||
128 | #define MCFQSPI_CS1 92 | ||
129 | #define MCFQSPI_CS2 99 | ||
130 | #define MCFQSPI_CS3 103 | ||
131 | #elif defined(CONFIG_M5275) | ||
132 | #define MCFQSPI_CS0 59 | ||
133 | #define MCFQSPI_CS1 60 | ||
134 | #define MCFQSPI_CS2 61 | ||
135 | #define MCFQSPI_CS3 62 | ||
136 | #endif | ||
137 | |||
138 | static int m527x_cs_setup(struct mcfqspi_cs_control *cs_control) | ||
139 | { | ||
140 | int status; | ||
141 | |||
142 | status = gpio_request(MCFQSPI_CS0, "MCFQSPI_CS0"); | ||
143 | if (status) { | ||
144 | pr_debug("gpio_request for MCFQSPI_CS0 failed\n"); | ||
145 | goto fail0; | ||
146 | } | ||
147 | status = gpio_direction_output(MCFQSPI_CS0, 1); | ||
148 | if (status) { | ||
149 | pr_debug("gpio_direction_output for MCFQSPI_CS0 failed\n"); | ||
150 | goto fail1; | ||
151 | } | ||
152 | |||
153 | status = gpio_request(MCFQSPI_CS1, "MCFQSPI_CS1"); | ||
154 | if (status) { | ||
155 | pr_debug("gpio_request for MCFQSPI_CS1 failed\n"); | ||
156 | goto fail1; | ||
157 | } | ||
158 | status = gpio_direction_output(MCFQSPI_CS1, 1); | ||
159 | if (status) { | ||
160 | pr_debug("gpio_direction_output for MCFQSPI_CS1 failed\n"); | ||
161 | goto fail2; | ||
162 | } | ||
163 | |||
164 | status = gpio_request(MCFQSPI_CS2, "MCFQSPI_CS2"); | ||
165 | if (status) { | ||
166 | pr_debug("gpio_request for MCFQSPI_CS2 failed\n"); | ||
167 | goto fail2; | ||
168 | } | ||
169 | status = gpio_direction_output(MCFQSPI_CS2, 1); | ||
170 | if (status) { | ||
171 | pr_debug("gpio_direction_output for MCFQSPI_CS2 failed\n"); | ||
172 | goto fail3; | ||
173 | } | ||
174 | |||
175 | status = gpio_request(MCFQSPI_CS3, "MCFQSPI_CS3"); | ||
176 | if (status) { | ||
177 | pr_debug("gpio_request for MCFQSPI_CS3 failed\n"); | ||
178 | goto fail3; | ||
179 | } | ||
180 | status = gpio_direction_output(MCFQSPI_CS3, 1); | ||
181 | if (status) { | ||
182 | pr_debug("gpio_direction_output for MCFQSPI_CS3 failed\n"); | ||
183 | goto fail4; | ||
184 | } | ||
185 | |||
186 | return 0; | ||
187 | |||
188 | fail4: | ||
189 | gpio_free(MCFQSPI_CS3); | ||
190 | fail3: | ||
191 | gpio_free(MCFQSPI_CS2); | ||
192 | fail2: | ||
193 | gpio_free(MCFQSPI_CS1); | ||
194 | fail1: | ||
195 | gpio_free(MCFQSPI_CS0); | ||
196 | fail0: | ||
197 | return status; | ||
198 | } | ||
199 | |||
200 | static void m527x_cs_teardown(struct mcfqspi_cs_control *cs_control) | ||
201 | { | ||
202 | gpio_free(MCFQSPI_CS3); | ||
203 | gpio_free(MCFQSPI_CS2); | ||
204 | gpio_free(MCFQSPI_CS1); | ||
205 | gpio_free(MCFQSPI_CS0); | ||
206 | } | ||
207 | |||
208 | static void m527x_cs_select(struct mcfqspi_cs_control *cs_control, | ||
209 | u8 chip_select, bool cs_high) | ||
210 | { | ||
211 | switch (chip_select) { | ||
212 | case 0: | ||
213 | gpio_set_value(MCFQSPI_CS0, cs_high); | ||
214 | break; | ||
215 | case 1: | ||
216 | gpio_set_value(MCFQSPI_CS1, cs_high); | ||
217 | break; | ||
218 | case 2: | ||
219 | gpio_set_value(MCFQSPI_CS2, cs_high); | ||
220 | break; | ||
221 | case 3: | ||
222 | gpio_set_value(MCFQSPI_CS3, cs_high); | ||
223 | break; | ||
224 | } | ||
225 | } | ||
226 | |||
227 | static void m527x_cs_deselect(struct mcfqspi_cs_control *cs_control, | ||
228 | u8 chip_select, bool cs_high) | ||
229 | { | ||
230 | switch (chip_select) { | ||
231 | case 0: | ||
232 | gpio_set_value(MCFQSPI_CS0, !cs_high); | ||
233 | break; | ||
234 | case 1: | ||
235 | gpio_set_value(MCFQSPI_CS1, !cs_high); | ||
236 | break; | ||
237 | case 2: | ||
238 | gpio_set_value(MCFQSPI_CS2, !cs_high); | ||
239 | break; | ||
240 | case 3: | ||
241 | gpio_set_value(MCFQSPI_CS3, !cs_high); | ||
242 | break; | ||
243 | } | ||
244 | } | ||
245 | |||
246 | static struct mcfqspi_cs_control m527x_cs_control = { | ||
247 | .setup = m527x_cs_setup, | ||
248 | .teardown = m527x_cs_teardown, | ||
249 | .select = m527x_cs_select, | ||
250 | .deselect = m527x_cs_deselect, | ||
251 | }; | ||
252 | |||
253 | static struct mcfqspi_platform_data m527x_qspi_data = { | ||
254 | .bus_num = 0, | ||
255 | .num_chipselect = 4, | ||
256 | .cs_control = &m527x_cs_control, | ||
257 | }; | ||
258 | |||
259 | static struct platform_device m527x_qspi = { | ||
260 | .name = "mcfqspi", | ||
261 | .id = 0, | ||
262 | .num_resources = ARRAY_SIZE(m527x_qspi_resources), | ||
263 | .resource = m527x_qspi_resources, | ||
264 | .dev.platform_data = &m527x_qspi_data, | ||
265 | }; | ||
266 | |||
267 | static void __init m527x_qspi_init(void) | ||
268 | { | ||
269 | #if defined(CONFIG_M5271) | ||
270 | u16 par; | ||
271 | |||
272 | /* setup QSPS pins for QSPI with gpio CS control */ | ||
273 | writeb(0x1f, MCFGPIO_PAR_QSPI); | ||
274 | /* and CS2 & CS3 as gpio */ | ||
275 | par = readw(MCFGPIO_PAR_TIMER); | ||
276 | par &= 0x3f3f; | ||
277 | writew(par, MCFGPIO_PAR_TIMER); | ||
278 | #elif defined(CONFIG_M5275) | ||
279 | /* setup QSPS pins for QSPI with gpio CS control */ | ||
280 | writew(0x003e, MCFGPIO_PAR_QSPI); | ||
281 | #endif | ||
282 | } | ||
283 | #endif /* defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) */ | ||
284 | |||
285 | static struct platform_device *m527x_devices[] __initdata = { | ||
286 | &m527x_uart, | ||
287 | &m527x_fec[0], | ||
288 | #ifdef CONFIG_FEC2 | ||
289 | &m527x_fec[1], | ||
290 | #endif | ||
291 | #if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) | ||
292 | &m527x_qspi, | ||
293 | #endif | ||
294 | }; | ||
295 | |||
296 | /***************************************************************************/ | ||
297 | |||
298 | static void __init m527x_uart_init_line(int line, int irq) | ||
299 | { | ||
300 | u16 sepmask; | ||
301 | |||
302 | if ((line < 0) || (line > 2)) | ||
303 | return; | ||
304 | |||
305 | /* | ||
306 | * External Pin Mask Setting & Enable External Pin for Interface | ||
307 | */ | ||
308 | sepmask = readw(MCF_IPSBAR + MCF_GPIO_PAR_UART); | ||
309 | if (line == 0) | ||
310 | sepmask |= UART0_ENABLE_MASK; | ||
311 | else if (line == 1) | ||
312 | sepmask |= UART1_ENABLE_MASK; | ||
313 | else if (line == 2) | ||
314 | sepmask |= UART2_ENABLE_MASK; | ||
315 | writew(sepmask, MCF_IPSBAR + MCF_GPIO_PAR_UART); | ||
316 | } | ||
317 | |||
318 | static void __init m527x_uarts_init(void) | ||
319 | { | ||
320 | const int nrlines = ARRAY_SIZE(m527x_uart_platform); | ||
321 | int line; | ||
322 | |||
323 | for (line = 0; (line < nrlines); line++) | ||
324 | m527x_uart_init_line(line, m527x_uart_platform[line].irq); | ||
325 | } | ||
326 | |||
327 | /***************************************************************************/ | ||
328 | |||
329 | static void __init m527x_fec_init(void) | ||
330 | { | ||
331 | u16 par; | ||
332 | u8 v; | ||
333 | |||
334 | /* Set multi-function pins to ethernet mode for fec0 */ | ||
335 | #if defined(CONFIG_M5271) | ||
336 | v = readb(MCF_IPSBAR + 0x100047); | ||
337 | writeb(v | 0xf0, MCF_IPSBAR + 0x100047); | ||
338 | #else | ||
339 | par = readw(MCF_IPSBAR + 0x100082); | ||
340 | writew(par | 0xf00, MCF_IPSBAR + 0x100082); | ||
341 | v = readb(MCF_IPSBAR + 0x100078); | ||
342 | writeb(v | 0xc0, MCF_IPSBAR + 0x100078); | ||
343 | #endif | ||
344 | |||
345 | #ifdef CONFIG_FEC2 | ||
346 | /* Set multi-function pins to ethernet mode for fec1 */ | ||
347 | par = readw(MCF_IPSBAR + 0x100082); | ||
348 | writew(par | 0xa0, MCF_IPSBAR + 0x100082); | ||
349 | v = readb(MCF_IPSBAR + 0x100079); | ||
350 | writeb(v | 0xc0, MCF_IPSBAR + 0x100079); | ||
351 | #endif | ||
352 | } | ||
353 | |||
354 | /***************************************************************************/ | ||
355 | |||
356 | static void m527x_cpu_reset(void) | ||
357 | { | ||
358 | local_irq_disable(); | ||
359 | __raw_writeb(MCF_RCR_SWRESET, MCF_IPSBAR + MCF_RCR); | ||
360 | } | ||
361 | |||
362 | /***************************************************************************/ | ||
363 | |||
364 | void __init config_BSP(char *commandp, int size) | ||
365 | { | ||
366 | mach_reset = m527x_cpu_reset; | ||
367 | m527x_uarts_init(); | ||
368 | m527x_fec_init(); | ||
369 | #if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) | ||
370 | m527x_qspi_init(); | ||
371 | #endif | ||
372 | } | ||
373 | |||
374 | /***************************************************************************/ | ||
375 | |||
376 | static int __init init_BSP(void) | ||
377 | { | ||
378 | platform_add_devices(m527x_devices, ARRAY_SIZE(m527x_devices)); | ||
379 | return 0; | ||
380 | } | ||
381 | |||
382 | arch_initcall(init_BSP); | ||
383 | |||
384 | /***************************************************************************/ | ||
diff --git a/arch/m68k/platform/527x/gpio.c b/arch/m68k/platform/527x/gpio.c new file mode 100644 index 000000000000..205da0aa0f2d --- /dev/null +++ b/arch/m68k/platform/527x/gpio.c | |||
@@ -0,0 +1,609 @@ | |||
1 | /* | ||
2 | * Coldfire generic GPIO support | ||
3 | * | ||
4 | * (C) Copyright 2009, Steven King <sfking@fdwdc.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 as published by | ||
8 | * the Free Software Foundation; version 2 of the License. | ||
9 | * | ||
10 | * This program is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU General Public License for more details. | ||
14 | */ | ||
15 | |||
16 | #include <linux/kernel.h> | ||
17 | #include <linux/init.h> | ||
18 | |||
19 | #include <asm/coldfire.h> | ||
20 | #include <asm/mcfsim.h> | ||
21 | #include <asm/mcfgpio.h> | ||
22 | |||
23 | static struct mcf_gpio_chip mcf_gpio_chips[] = { | ||
24 | #if defined(CONFIG_M5271) | ||
25 | { | ||
26 | .gpio_chip = { | ||
27 | .label = "PIRQ", | ||
28 | .request = mcf_gpio_request, | ||
29 | .free = mcf_gpio_free, | ||
30 | .direction_input = mcf_gpio_direction_input, | ||
31 | .direction_output = mcf_gpio_direction_output, | ||
32 | .get = mcf_gpio_get_value, | ||
33 | .set = mcf_gpio_set_value, | ||
34 | .base = 1, | ||
35 | .ngpio = 7, | ||
36 | }, | ||
37 | .pddr = (void __iomem *) MCFEPORT_EPDDR, | ||
38 | .podr = (void __iomem *) MCFEPORT_EPDR, | ||
39 | .ppdr = (void __iomem *) MCFEPORT_EPPDR, | ||
40 | }, | ||
41 | { | ||
42 | .gpio_chip = { | ||
43 | .label = "ADDR", | ||
44 | .request = mcf_gpio_request, | ||
45 | .free = mcf_gpio_free, | ||
46 | .direction_input = mcf_gpio_direction_input, | ||
47 | .direction_output = mcf_gpio_direction_output, | ||
48 | .get = mcf_gpio_get_value, | ||
49 | .set = mcf_gpio_set_value_fast, | ||
50 | .base = 13, | ||
51 | .ngpio = 3, | ||
52 | }, | ||
53 | .pddr = (void __iomem *) MCFGPIO_PDDR_ADDR, | ||
54 | .podr = (void __iomem *) MCFGPIO_PODR_ADDR, | ||
55 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_ADDR, | ||
56 | .setr = (void __iomem *) MCFGPIO_PPDSDR_ADDR, | ||
57 | .clrr = (void __iomem *) MCFGPIO_PCLRR_ADDR, | ||
58 | }, | ||
59 | { | ||
60 | .gpio_chip = { | ||
61 | .label = "DATAH", | ||
62 | .request = mcf_gpio_request, | ||
63 | .free = mcf_gpio_free, | ||
64 | .direction_input = mcf_gpio_direction_input, | ||
65 | .direction_output = mcf_gpio_direction_output, | ||
66 | .get = mcf_gpio_get_value, | ||
67 | .set = mcf_gpio_set_value_fast, | ||
68 | .base = 16, | ||
69 | .ngpio = 8, | ||
70 | }, | ||
71 | .pddr = (void __iomem *) MCFGPIO_PDDR_DATAH, | ||
72 | .podr = (void __iomem *) MCFGPIO_PODR_DATAH, | ||
73 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_DATAH, | ||
74 | .setr = (void __iomem *) MCFGPIO_PPDSDR_DATAH, | ||
75 | .clrr = (void __iomem *) MCFGPIO_PCLRR_DATAH, | ||
76 | }, | ||
77 | { | ||
78 | .gpio_chip = { | ||
79 | .label = "DATAL", | ||
80 | .request = mcf_gpio_request, | ||
81 | .free = mcf_gpio_free, | ||
82 | .direction_input = mcf_gpio_direction_input, | ||
83 | .direction_output = mcf_gpio_direction_output, | ||
84 | .get = mcf_gpio_get_value, | ||
85 | .set = mcf_gpio_set_value_fast, | ||
86 | .base = 24, | ||
87 | .ngpio = 8, | ||
88 | }, | ||
89 | .pddr = (void __iomem *) MCFGPIO_PDDR_DATAL, | ||
90 | .podr = (void __iomem *) MCFGPIO_PODR_DATAL, | ||
91 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_DATAL, | ||
92 | .setr = (void __iomem *) MCFGPIO_PPDSDR_DATAL, | ||
93 | .clrr = (void __iomem *) MCFGPIO_PCLRR_DATAL, | ||
94 | }, | ||
95 | { | ||
96 | .gpio_chip = { | ||
97 | .label = "BUSCTL", | ||
98 | .request = mcf_gpio_request, | ||
99 | .free = mcf_gpio_free, | ||
100 | .direction_input = mcf_gpio_direction_input, | ||
101 | .direction_output = mcf_gpio_direction_output, | ||
102 | .get = mcf_gpio_get_value, | ||
103 | .set = mcf_gpio_set_value_fast, | ||
104 | .base = 32, | ||
105 | .ngpio = 8, | ||
106 | }, | ||
107 | .pddr = (void __iomem *) MCFGPIO_PDDR_BUSCTL, | ||
108 | .podr = (void __iomem *) MCFGPIO_PODR_BUSCTL, | ||
109 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_BUSCTL, | ||
110 | .setr = (void __iomem *) MCFGPIO_PPDSDR_BUSCTL, | ||
111 | .clrr = (void __iomem *) MCFGPIO_PCLRR_BUSCTL, | ||
112 | }, | ||
113 | { | ||
114 | .gpio_chip = { | ||
115 | .label = "BS", | ||
116 | .request = mcf_gpio_request, | ||
117 | .free = mcf_gpio_free, | ||
118 | .direction_input = mcf_gpio_direction_input, | ||
119 | .direction_output = mcf_gpio_direction_output, | ||
120 | .get = mcf_gpio_get_value, | ||
121 | .set = mcf_gpio_set_value_fast, | ||
122 | .base = 40, | ||
123 | .ngpio = 4, | ||
124 | }, | ||
125 | .pddr = (void __iomem *) MCFGPIO_PDDR_BS, | ||
126 | .podr = (void __iomem *) MCFGPIO_PODR_BS, | ||
127 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_BS, | ||
128 | .setr = (void __iomem *) MCFGPIO_PPDSDR_BS, | ||
129 | .clrr = (void __iomem *) MCFGPIO_PCLRR_BS, | ||
130 | }, | ||
131 | { | ||
132 | .gpio_chip = { | ||
133 | .label = "CS", | ||
134 | .request = mcf_gpio_request, | ||
135 | .free = mcf_gpio_free, | ||
136 | .direction_input = mcf_gpio_direction_input, | ||
137 | .direction_output = mcf_gpio_direction_output, | ||
138 | .get = mcf_gpio_get_value, | ||
139 | .set = mcf_gpio_set_value_fast, | ||
140 | .base = 49, | ||
141 | .ngpio = 7, | ||
142 | }, | ||
143 | .pddr = (void __iomem *) MCFGPIO_PDDR_CS, | ||
144 | .podr = (void __iomem *) MCFGPIO_PODR_CS, | ||
145 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_CS, | ||
146 | .setr = (void __iomem *) MCFGPIO_PPDSDR_CS, | ||
147 | .clrr = (void __iomem *) MCFGPIO_PCLRR_CS, | ||
148 | }, | ||
149 | { | ||
150 | .gpio_chip = { | ||
151 | .label = "SDRAM", | ||
152 | .request = mcf_gpio_request, | ||
153 | .free = mcf_gpio_free, | ||
154 | .direction_input = mcf_gpio_direction_input, | ||
155 | .direction_output = mcf_gpio_direction_output, | ||
156 | .get = mcf_gpio_get_value, | ||
157 | .set = mcf_gpio_set_value_fast, | ||
158 | .base = 56, | ||
159 | .ngpio = 6, | ||
160 | }, | ||
161 | .pddr = (void __iomem *) MCFGPIO_PDDR_SDRAM, | ||
162 | .podr = (void __iomem *) MCFGPIO_PODR_SDRAM, | ||
163 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_SDRAM, | ||
164 | .setr = (void __iomem *) MCFGPIO_PPDSDR_SDRAM, | ||
165 | .clrr = (void __iomem *) MCFGPIO_PCLRR_SDRAM, | ||
166 | }, | ||
167 | { | ||
168 | .gpio_chip = { | ||
169 | .label = "FECI2C", | ||
170 | .request = mcf_gpio_request, | ||
171 | .free = mcf_gpio_free, | ||
172 | .direction_input = mcf_gpio_direction_input, | ||
173 | .direction_output = mcf_gpio_direction_output, | ||
174 | .get = mcf_gpio_get_value, | ||
175 | .set = mcf_gpio_set_value_fast, | ||
176 | .base = 64, | ||
177 | .ngpio = 4, | ||
178 | }, | ||
179 | .pddr = (void __iomem *) MCFGPIO_PDDR_FECI2C, | ||
180 | .podr = (void __iomem *) MCFGPIO_PODR_FECI2C, | ||
181 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_FECI2C, | ||
182 | .setr = (void __iomem *) MCFGPIO_PPDSDR_FECI2C, | ||
183 | .clrr = (void __iomem *) MCFGPIO_PCLRR_FECI2C, | ||
184 | }, | ||
185 | { | ||
186 | .gpio_chip = { | ||
187 | .label = "UARTH", | ||
188 | .request = mcf_gpio_request, | ||
189 | .free = mcf_gpio_free, | ||
190 | .direction_input = mcf_gpio_direction_input, | ||
191 | .direction_output = mcf_gpio_direction_output, | ||
192 | .get = mcf_gpio_get_value, | ||
193 | .set = mcf_gpio_set_value_fast, | ||
194 | .base = 72, | ||
195 | .ngpio = 2, | ||
196 | }, | ||
197 | .pddr = (void __iomem *) MCFGPIO_PDDR_UARTH, | ||
198 | .podr = (void __iomem *) MCFGPIO_PODR_UARTH, | ||
199 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_UARTH, | ||
200 | .setr = (void __iomem *) MCFGPIO_PPDSDR_UARTH, | ||
201 | .clrr = (void __iomem *) MCFGPIO_PCLRR_UARTH, | ||
202 | }, | ||
203 | { | ||
204 | .gpio_chip = { | ||
205 | .label = "UARTL", | ||
206 | .request = mcf_gpio_request, | ||
207 | .free = mcf_gpio_free, | ||
208 | .direction_input = mcf_gpio_direction_input, | ||
209 | .direction_output = mcf_gpio_direction_output, | ||
210 | .get = mcf_gpio_get_value, | ||
211 | .set = mcf_gpio_set_value_fast, | ||
212 | .base = 80, | ||
213 | .ngpio = 8, | ||
214 | }, | ||
215 | .pddr = (void __iomem *) MCFGPIO_PDDR_UARTL, | ||
216 | .podr = (void __iomem *) MCFGPIO_PODR_UARTL, | ||
217 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_UARTL, | ||
218 | .setr = (void __iomem *) MCFGPIO_PPDSDR_UARTL, | ||
219 | .clrr = (void __iomem *) MCFGPIO_PCLRR_UARTL, | ||
220 | }, | ||
221 | { | ||
222 | .gpio_chip = { | ||
223 | .label = "QSPI", | ||
224 | .request = mcf_gpio_request, | ||
225 | .free = mcf_gpio_free, | ||
226 | .direction_input = mcf_gpio_direction_input, | ||
227 | .direction_output = mcf_gpio_direction_output, | ||
228 | .get = mcf_gpio_get_value, | ||
229 | .set = mcf_gpio_set_value_fast, | ||
230 | .base = 88, | ||
231 | .ngpio = 5, | ||
232 | }, | ||
233 | .pddr = (void __iomem *) MCFGPIO_PDDR_QSPI, | ||
234 | .podr = (void __iomem *) MCFGPIO_PODR_QSPI, | ||
235 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_QSPI, | ||
236 | .setr = (void __iomem *) MCFGPIO_PPDSDR_QSPI, | ||
237 | .clrr = (void __iomem *) MCFGPIO_PCLRR_QSPI, | ||
238 | }, | ||
239 | { | ||
240 | .gpio_chip = { | ||
241 | .label = "TIMER", | ||
242 | .request = mcf_gpio_request, | ||
243 | .free = mcf_gpio_free, | ||
244 | .direction_input = mcf_gpio_direction_input, | ||
245 | .direction_output = mcf_gpio_direction_output, | ||
246 | .get = mcf_gpio_get_value, | ||
247 | .set = mcf_gpio_set_value_fast, | ||
248 | .base = 96, | ||
249 | .ngpio = 8, | ||
250 | }, | ||
251 | .pddr = (void __iomem *) MCFGPIO_PDDR_TIMER, | ||
252 | .podr = (void __iomem *) MCFGPIO_PODR_TIMER, | ||
253 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_TIMER, | ||
254 | .setr = (void __iomem *) MCFGPIO_PPDSDR_TIMER, | ||
255 | .clrr = (void __iomem *) MCFGPIO_PCLRR_TIMER, | ||
256 | }, | ||
257 | #elif defined(CONFIG_M5275) | ||
258 | { | ||
259 | .gpio_chip = { | ||
260 | .label = "PIRQ", | ||
261 | .request = mcf_gpio_request, | ||
262 | .free = mcf_gpio_free, | ||
263 | .direction_input = mcf_gpio_direction_input, | ||
264 | .direction_output = mcf_gpio_direction_output, | ||
265 | .get = mcf_gpio_get_value, | ||
266 | .set = mcf_gpio_set_value, | ||
267 | .base = 1, | ||
268 | .ngpio = 7, | ||
269 | }, | ||
270 | .pddr = (void __iomem *) MCFEPORT_EPDDR, | ||
271 | .podr = (void __iomem *) MCFEPORT_EPDR, | ||
272 | .ppdr = (void __iomem *) MCFEPORT_EPPDR, | ||
273 | }, | ||
274 | { | ||
275 | .gpio_chip = { | ||
276 | .label = "BUSCTL", | ||
277 | .request = mcf_gpio_request, | ||
278 | .free = mcf_gpio_free, | ||
279 | .direction_input = mcf_gpio_direction_input, | ||
280 | .direction_output = mcf_gpio_direction_output, | ||
281 | .get = mcf_gpio_get_value, | ||
282 | .set = mcf_gpio_set_value_fast, | ||
283 | .base = 8, | ||
284 | .ngpio = 8, | ||
285 | }, | ||
286 | .pddr = (void __iomem *) MCFGPIO_PDDR_BUSCTL, | ||
287 | .podr = (void __iomem *) MCFGPIO_PODR_BUSCTL, | ||
288 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_BUSCTL, | ||
289 | .setr = (void __iomem *) MCFGPIO_PPDSDR_BUSCTL, | ||
290 | .clrr = (void __iomem *) MCFGPIO_PCLRR_BUSCTL, | ||
291 | }, | ||
292 | { | ||
293 | .gpio_chip = { | ||
294 | .label = "ADDR", | ||
295 | .request = mcf_gpio_request, | ||
296 | .free = mcf_gpio_free, | ||
297 | .direction_input = mcf_gpio_direction_input, | ||
298 | .direction_output = mcf_gpio_direction_output, | ||
299 | .get = mcf_gpio_get_value, | ||
300 | .set = mcf_gpio_set_value_fast, | ||
301 | .base = 21, | ||
302 | .ngpio = 3, | ||
303 | }, | ||
304 | .pddr = (void __iomem *) MCFGPIO_PDDR_ADDR, | ||
305 | .podr = (void __iomem *) MCFGPIO_PODR_ADDR, | ||
306 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_ADDR, | ||
307 | .setr = (void __iomem *) MCFGPIO_PPDSDR_ADDR, | ||
308 | .clrr = (void __iomem *) MCFGPIO_PCLRR_ADDR, | ||
309 | }, | ||
310 | { | ||
311 | .gpio_chip = { | ||
312 | .label = "CS", | ||
313 | .request = mcf_gpio_request, | ||
314 | .free = mcf_gpio_free, | ||
315 | .direction_input = mcf_gpio_direction_input, | ||
316 | .direction_output = mcf_gpio_direction_output, | ||
317 | .get = mcf_gpio_get_value, | ||
318 | .set = mcf_gpio_set_value_fast, | ||
319 | .base = 25, | ||
320 | .ngpio = 7, | ||
321 | }, | ||
322 | .pddr = (void __iomem *) MCFGPIO_PDDR_CS, | ||
323 | .podr = (void __iomem *) MCFGPIO_PODR_CS, | ||
324 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_CS, | ||
325 | .setr = (void __iomem *) MCFGPIO_PPDSDR_CS, | ||
326 | .clrr = (void __iomem *) MCFGPIO_PCLRR_CS, | ||
327 | }, | ||
328 | { | ||
329 | .gpio_chip = { | ||
330 | .label = "FEC0H", | ||
331 | .request = mcf_gpio_request, | ||
332 | .free = mcf_gpio_free, | ||
333 | .direction_input = mcf_gpio_direction_input, | ||
334 | .direction_output = mcf_gpio_direction_output, | ||
335 | .get = mcf_gpio_get_value, | ||
336 | .set = mcf_gpio_set_value_fast, | ||
337 | .base = 32, | ||
338 | .ngpio = 8, | ||
339 | }, | ||
340 | .pddr = (void __iomem *) MCFGPIO_PDDR_FEC0H, | ||
341 | .podr = (void __iomem *) MCFGPIO_PODR_FEC0H, | ||
342 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_FEC0H, | ||
343 | .setr = (void __iomem *) MCFGPIO_PPDSDR_FEC0H, | ||
344 | .clrr = (void __iomem *) MCFGPIO_PCLRR_FEC0H, | ||
345 | }, | ||
346 | { | ||
347 | .gpio_chip = { | ||
348 | .label = "FEC0L", | ||
349 | .request = mcf_gpio_request, | ||
350 | .free = mcf_gpio_free, | ||
351 | .direction_input = mcf_gpio_direction_input, | ||
352 | .direction_output = mcf_gpio_direction_output, | ||
353 | .get = mcf_gpio_get_value, | ||
354 | .set = mcf_gpio_set_value_fast, | ||
355 | .base = 40, | ||
356 | .ngpio = 8, | ||
357 | }, | ||
358 | .pddr = (void __iomem *) MCFGPIO_PDDR_FEC0L, | ||
359 | .podr = (void __iomem *) MCFGPIO_PODR_FEC0L, | ||
360 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_FEC0L, | ||
361 | .setr = (void __iomem *) MCFGPIO_PPDSDR_FEC0L, | ||
362 | .clrr = (void __iomem *) MCFGPIO_PCLRR_FEC0L, | ||
363 | }, | ||
364 | { | ||
365 | .gpio_chip = { | ||
366 | .label = "FECI2C", | ||
367 | .request = mcf_gpio_request, | ||
368 | .free = mcf_gpio_free, | ||
369 | .direction_input = mcf_gpio_direction_input, | ||
370 | .direction_output = mcf_gpio_direction_output, | ||
371 | .get = mcf_gpio_get_value, | ||
372 | .set = mcf_gpio_set_value_fast, | ||
373 | .base = 48, | ||
374 | .ngpio = 6, | ||
375 | }, | ||
376 | .pddr = (void __iomem *) MCFGPIO_PDDR_FECI2C, | ||
377 | .podr = (void __iomem *) MCFGPIO_PODR_FECI2C, | ||
378 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_FECI2C, | ||
379 | .setr = (void __iomem *) MCFGPIO_PPDSDR_FECI2C, | ||
380 | .clrr = (void __iomem *) MCFGPIO_PCLRR_FECI2C, | ||
381 | }, | ||
382 | { | ||
383 | .gpio_chip = { | ||
384 | .label = "QSPI", | ||
385 | .request = mcf_gpio_request, | ||
386 | .free = mcf_gpio_free, | ||
387 | .direction_input = mcf_gpio_direction_input, | ||
388 | .direction_output = mcf_gpio_direction_output, | ||
389 | .get = mcf_gpio_get_value, | ||
390 | .set = mcf_gpio_set_value_fast, | ||
391 | .base = 56, | ||
392 | .ngpio = 7, | ||
393 | }, | ||
394 | .pddr = (void __iomem *) MCFGPIO_PDDR_QSPI, | ||
395 | .podr = (void __iomem *) MCFGPIO_PODR_QSPI, | ||
396 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_QSPI, | ||
397 | .setr = (void __iomem *) MCFGPIO_PPDSDR_QSPI, | ||
398 | .clrr = (void __iomem *) MCFGPIO_PCLRR_QSPI, | ||
399 | }, | ||
400 | { | ||
401 | .gpio_chip = { | ||
402 | .label = "SDRAM", | ||
403 | .request = mcf_gpio_request, | ||
404 | .free = mcf_gpio_free, | ||
405 | .direction_input = mcf_gpio_direction_input, | ||
406 | .direction_output = mcf_gpio_direction_output, | ||
407 | .get = mcf_gpio_get_value, | ||
408 | .set = mcf_gpio_set_value_fast, | ||
409 | .base = 64, | ||
410 | .ngpio = 8, | ||
411 | }, | ||
412 | .pddr = (void __iomem *) MCFGPIO_PDDR_SDRAM, | ||
413 | .podr = (void __iomem *) MCFGPIO_PODR_SDRAM, | ||
414 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_SDRAM, | ||
415 | .setr = (void __iomem *) MCFGPIO_PPDSDR_SDRAM, | ||
416 | .clrr = (void __iomem *) MCFGPIO_PCLRR_SDRAM, | ||
417 | }, | ||
418 | { | ||
419 | .gpio_chip = { | ||
420 | .label = "TIMERH", | ||
421 | .request = mcf_gpio_request, | ||
422 | .free = mcf_gpio_free, | ||
423 | .direction_input = mcf_gpio_direction_input, | ||
424 | .direction_output = mcf_gpio_direction_output, | ||
425 | .get = mcf_gpio_get_value, | ||
426 | .set = mcf_gpio_set_value_fast, | ||
427 | .base = 72, | ||
428 | .ngpio = 4, | ||
429 | }, | ||
430 | .pddr = (void __iomem *) MCFGPIO_PDDR_TIMERH, | ||
431 | .podr = (void __iomem *) MCFGPIO_PODR_TIMERH, | ||
432 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_TIMERH, | ||
433 | .setr = (void __iomem *) MCFGPIO_PPDSDR_TIMERH, | ||
434 | .clrr = (void __iomem *) MCFGPIO_PCLRR_TIMERH, | ||
435 | }, | ||
436 | { | ||
437 | .gpio_chip = { | ||
438 | .label = "TIMERL", | ||
439 | .request = mcf_gpio_request, | ||
440 | .free = mcf_gpio_free, | ||
441 | .direction_input = mcf_gpio_direction_input, | ||
442 | .direction_output = mcf_gpio_direction_output, | ||
443 | .get = mcf_gpio_get_value, | ||
444 | .set = mcf_gpio_set_value_fast, | ||
445 | .base = 80, | ||
446 | .ngpio = 4, | ||
447 | }, | ||
448 | .pddr = (void __iomem *) MCFGPIO_PDDR_TIMERL, | ||
449 | .podr = (void __iomem *) MCFGPIO_PODR_TIMERL, | ||
450 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_TIMERL, | ||
451 | .setr = (void __iomem *) MCFGPIO_PPDSDR_TIMERL, | ||
452 | .clrr = (void __iomem *) MCFGPIO_PCLRR_TIMERL, | ||
453 | }, | ||
454 | { | ||
455 | .gpio_chip = { | ||
456 | .label = "UARTL", | ||
457 | .request = mcf_gpio_request, | ||
458 | .free = mcf_gpio_free, | ||
459 | .direction_input = mcf_gpio_direction_input, | ||
460 | .direction_output = mcf_gpio_direction_output, | ||
461 | .get = mcf_gpio_get_value, | ||
462 | .set = mcf_gpio_set_value_fast, | ||
463 | .base = 88, | ||
464 | .ngpio = 8, | ||
465 | }, | ||
466 | .pddr = (void __iomem *) MCFGPIO_PDDR_UARTL, | ||
467 | .podr = (void __iomem *) MCFGPIO_PODR_UARTL, | ||
468 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_UARTL, | ||
469 | .setr = (void __iomem *) MCFGPIO_PPDSDR_UARTL, | ||
470 | .clrr = (void __iomem *) MCFGPIO_PCLRR_UARTL, | ||
471 | }, | ||
472 | { | ||
473 | .gpio_chip = { | ||
474 | .label = "FEC1H", | ||
475 | .request = mcf_gpio_request, | ||
476 | .free = mcf_gpio_free, | ||
477 | .direction_input = mcf_gpio_direction_input, | ||
478 | .direction_output = mcf_gpio_direction_output, | ||
479 | .get = mcf_gpio_get_value, | ||
480 | .set = mcf_gpio_set_value_fast, | ||
481 | .base = 96, | ||
482 | .ngpio = 8, | ||
483 | }, | ||
484 | .pddr = (void __iomem *) MCFGPIO_PDDR_FEC1H, | ||
485 | .podr = (void __iomem *) MCFGPIO_PODR_FEC1H, | ||
486 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_FEC1H, | ||
487 | .setr = (void __iomem *) MCFGPIO_PPDSDR_FEC1H, | ||
488 | .clrr = (void __iomem *) MCFGPIO_PCLRR_FEC1H, | ||
489 | }, | ||
490 | { | ||
491 | .gpio_chip = { | ||
492 | .label = "FEC1L", | ||
493 | .request = mcf_gpio_request, | ||
494 | .free = mcf_gpio_free, | ||
495 | .direction_input = mcf_gpio_direction_input, | ||
496 | .direction_output = mcf_gpio_direction_output, | ||
497 | .get = mcf_gpio_get_value, | ||
498 | .set = mcf_gpio_set_value_fast, | ||
499 | .base = 104, | ||
500 | .ngpio = 8, | ||
501 | }, | ||
502 | .pddr = (void __iomem *) MCFGPIO_PDDR_FEC1L, | ||
503 | .podr = (void __iomem *) MCFGPIO_PODR_FEC1L, | ||
504 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_FEC1L, | ||
505 | .setr = (void __iomem *) MCFGPIO_PPDSDR_FEC1L, | ||
506 | .clrr = (void __iomem *) MCFGPIO_PCLRR_FEC1L, | ||
507 | }, | ||
508 | { | ||
509 | .gpio_chip = { | ||
510 | .label = "BS", | ||
511 | .request = mcf_gpio_request, | ||
512 | .free = mcf_gpio_free, | ||
513 | .direction_input = mcf_gpio_direction_input, | ||
514 | .direction_output = mcf_gpio_direction_output, | ||
515 | .get = mcf_gpio_get_value, | ||
516 | .set = mcf_gpio_set_value_fast, | ||
517 | .base = 114, | ||
518 | .ngpio = 2, | ||
519 | }, | ||
520 | .pddr = (void __iomem *) MCFGPIO_PDDR_BS, | ||
521 | .podr = (void __iomem *) MCFGPIO_PODR_BS, | ||
522 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_BS, | ||
523 | .setr = (void __iomem *) MCFGPIO_PPDSDR_BS, | ||
524 | .clrr = (void __iomem *) MCFGPIO_PCLRR_BS, | ||
525 | }, | ||
526 | { | ||
527 | .gpio_chip = { | ||
528 | .label = "IRQ", | ||
529 | .request = mcf_gpio_request, | ||
530 | .free = mcf_gpio_free, | ||
531 | .direction_input = mcf_gpio_direction_input, | ||
532 | .direction_output = mcf_gpio_direction_output, | ||
533 | .get = mcf_gpio_get_value, | ||
534 | .set = mcf_gpio_set_value_fast, | ||
535 | .base = 121, | ||
536 | .ngpio = 7, | ||
537 | }, | ||
538 | .pddr = (void __iomem *) MCFGPIO_PDDR_IRQ, | ||
539 | .podr = (void __iomem *) MCFGPIO_PODR_IRQ, | ||
540 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_IRQ, | ||
541 | .setr = (void __iomem *) MCFGPIO_PPDSDR_IRQ, | ||
542 | .clrr = (void __iomem *) MCFGPIO_PCLRR_IRQ, | ||
543 | }, | ||
544 | { | ||
545 | .gpio_chip = { | ||
546 | .label = "USBH", | ||
547 | .request = mcf_gpio_request, | ||
548 | .free = mcf_gpio_free, | ||
549 | .direction_input = mcf_gpio_direction_input, | ||
550 | .direction_output = mcf_gpio_direction_output, | ||
551 | .get = mcf_gpio_get_value, | ||
552 | .set = mcf_gpio_set_value_fast, | ||
553 | .base = 128, | ||
554 | .ngpio = 1, | ||
555 | }, | ||
556 | .pddr = (void __iomem *) MCFGPIO_PDDR_USBH, | ||
557 | .podr = (void __iomem *) MCFGPIO_PODR_USBH, | ||
558 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_USBH, | ||
559 | .setr = (void __iomem *) MCFGPIO_PPDSDR_USBH, | ||
560 | .clrr = (void __iomem *) MCFGPIO_PCLRR_USBH, | ||
561 | }, | ||
562 | { | ||
563 | .gpio_chip = { | ||
564 | .label = "USBL", | ||
565 | .request = mcf_gpio_request, | ||
566 | .free = mcf_gpio_free, | ||
567 | .direction_input = mcf_gpio_direction_input, | ||
568 | .direction_output = mcf_gpio_direction_output, | ||
569 | .get = mcf_gpio_get_value, | ||
570 | .set = mcf_gpio_set_value_fast, | ||
571 | .base = 136, | ||
572 | .ngpio = 8, | ||
573 | }, | ||
574 | .pddr = (void __iomem *) MCFGPIO_PDDR_USBL, | ||
575 | .podr = (void __iomem *) MCFGPIO_PODR_USBL, | ||
576 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_USBL, | ||
577 | .setr = (void __iomem *) MCFGPIO_PPDSDR_USBL, | ||
578 | .clrr = (void __iomem *) MCFGPIO_PCLRR_USBL, | ||
579 | }, | ||
580 | { | ||
581 | .gpio_chip = { | ||
582 | .label = "UARTH", | ||
583 | .request = mcf_gpio_request, | ||
584 | .free = mcf_gpio_free, | ||
585 | .direction_input = mcf_gpio_direction_input, | ||
586 | .direction_output = mcf_gpio_direction_output, | ||
587 | .get = mcf_gpio_get_value, | ||
588 | .set = mcf_gpio_set_value_fast, | ||
589 | .base = 144, | ||
590 | .ngpio = 4, | ||
591 | }, | ||
592 | .pddr = (void __iomem *) MCFGPIO_PDDR_UARTH, | ||
593 | .podr = (void __iomem *) MCFGPIO_PODR_UARTH, | ||
594 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_UARTH, | ||
595 | .setr = (void __iomem *) MCFGPIO_PPDSDR_UARTH, | ||
596 | .clrr = (void __iomem *) MCFGPIO_PCLRR_UARTH, | ||
597 | }, | ||
598 | #endif | ||
599 | }; | ||
600 | |||
601 | static int __init mcf_gpio_init(void) | ||
602 | { | ||
603 | unsigned i = 0; | ||
604 | while (i < ARRAY_SIZE(mcf_gpio_chips)) | ||
605 | (void)gpiochip_add((struct gpio_chip *)&mcf_gpio_chips[i++]); | ||
606 | return 0; | ||
607 | } | ||
608 | |||
609 | core_initcall(mcf_gpio_init); | ||
diff --git a/arch/m68k/platform/528x/Makefile b/arch/m68k/platform/528x/Makefile new file mode 100644 index 000000000000..6ac4b57370ea --- /dev/null +++ b/arch/m68k/platform/528x/Makefile | |||
@@ -0,0 +1,18 @@ | |||
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 | # ccflags-y := -DTRAP_DBG_INTERRUPT | ||
12 | # asflags-y := -DTRAP_DBG_INTERRUPT | ||
13 | # | ||
14 | |||
15 | asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1 | ||
16 | |||
17 | obj-y := config.o gpio.o | ||
18 | |||
diff --git a/arch/m68k/platform/528x/config.c b/arch/m68k/platform/528x/config.c new file mode 100644 index 000000000000..ac39fc661219 --- /dev/null +++ b/arch/m68k/platform/528x/config.c | |||
@@ -0,0 +1,320 @@ | |||
1 | /***************************************************************************/ | ||
2 | |||
3 | /* | ||
4 | * linux/arch/m68knommu/platform/528x/config.c | ||
5 | * | ||
6 | * Sub-architcture dependant initialization code for the Freescale | ||
7 | * 5280, 5281 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/kernel.h> | ||
16 | #include <linux/param.h> | ||
17 | #include <linux/init.h> | ||
18 | #include <linux/platform_device.h> | ||
19 | #include <linux/io.h> | ||
20 | #include <linux/spi/spi.h> | ||
21 | #include <linux/gpio.h> | ||
22 | #include <asm/machdep.h> | ||
23 | #include <asm/coldfire.h> | ||
24 | #include <asm/mcfsim.h> | ||
25 | #include <asm/mcfuart.h> | ||
26 | #include <asm/mcfqspi.h> | ||
27 | |||
28 | /***************************************************************************/ | ||
29 | |||
30 | static struct mcf_platform_uart m528x_uart_platform[] = { | ||
31 | { | ||
32 | .mapbase = MCFUART_BASE1, | ||
33 | .irq = MCFINT_VECBASE + MCFINT_UART0, | ||
34 | }, | ||
35 | { | ||
36 | .mapbase = MCFUART_BASE2, | ||
37 | .irq = MCFINT_VECBASE + MCFINT_UART0 + 1, | ||
38 | }, | ||
39 | { | ||
40 | .mapbase = MCFUART_BASE3, | ||
41 | .irq = MCFINT_VECBASE + MCFINT_UART0 + 2, | ||
42 | }, | ||
43 | { }, | ||
44 | }; | ||
45 | |||
46 | static struct platform_device m528x_uart = { | ||
47 | .name = "mcfuart", | ||
48 | .id = 0, | ||
49 | .dev.platform_data = m528x_uart_platform, | ||
50 | }; | ||
51 | |||
52 | static struct resource m528x_fec_resources[] = { | ||
53 | { | ||
54 | .start = MCFFEC_BASE, | ||
55 | .end = MCFFEC_BASE + MCFFEC_SIZE - 1, | ||
56 | .flags = IORESOURCE_MEM, | ||
57 | }, | ||
58 | { | ||
59 | .start = 64 + 23, | ||
60 | .end = 64 + 23, | ||
61 | .flags = IORESOURCE_IRQ, | ||
62 | }, | ||
63 | { | ||
64 | .start = 64 + 27, | ||
65 | .end = 64 + 27, | ||
66 | .flags = IORESOURCE_IRQ, | ||
67 | }, | ||
68 | { | ||
69 | .start = 64 + 29, | ||
70 | .end = 64 + 29, | ||
71 | .flags = IORESOURCE_IRQ, | ||
72 | }, | ||
73 | }; | ||
74 | |||
75 | static struct platform_device m528x_fec = { | ||
76 | .name = "fec", | ||
77 | .id = 0, | ||
78 | .num_resources = ARRAY_SIZE(m528x_fec_resources), | ||
79 | .resource = m528x_fec_resources, | ||
80 | }; | ||
81 | |||
82 | #if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) | ||
83 | static struct resource m528x_qspi_resources[] = { | ||
84 | { | ||
85 | .start = MCFQSPI_IOBASE, | ||
86 | .end = MCFQSPI_IOBASE + MCFQSPI_IOSIZE - 1, | ||
87 | .flags = IORESOURCE_MEM, | ||
88 | }, | ||
89 | { | ||
90 | .start = MCFINT_VECBASE + MCFINT_QSPI, | ||
91 | .end = MCFINT_VECBASE + MCFINT_QSPI, | ||
92 | .flags = IORESOURCE_IRQ, | ||
93 | }, | ||
94 | }; | ||
95 | |||
96 | #define MCFQSPI_CS0 147 | ||
97 | #define MCFQSPI_CS1 148 | ||
98 | #define MCFQSPI_CS2 149 | ||
99 | #define MCFQSPI_CS3 150 | ||
100 | |||
101 | static int m528x_cs_setup(struct mcfqspi_cs_control *cs_control) | ||
102 | { | ||
103 | int status; | ||
104 | |||
105 | status = gpio_request(MCFQSPI_CS0, "MCFQSPI_CS0"); | ||
106 | if (status) { | ||
107 | pr_debug("gpio_request for MCFQSPI_CS0 failed\n"); | ||
108 | goto fail0; | ||
109 | } | ||
110 | status = gpio_direction_output(MCFQSPI_CS0, 1); | ||
111 | if (status) { | ||
112 | pr_debug("gpio_direction_output for MCFQSPI_CS0 failed\n"); | ||
113 | goto fail1; | ||
114 | } | ||
115 | |||
116 | status = gpio_request(MCFQSPI_CS1, "MCFQSPI_CS1"); | ||
117 | if (status) { | ||
118 | pr_debug("gpio_request for MCFQSPI_CS1 failed\n"); | ||
119 | goto fail1; | ||
120 | } | ||
121 | status = gpio_direction_output(MCFQSPI_CS1, 1); | ||
122 | if (status) { | ||
123 | pr_debug("gpio_direction_output for MCFQSPI_CS1 failed\n"); | ||
124 | goto fail2; | ||
125 | } | ||
126 | |||
127 | status = gpio_request(MCFQSPI_CS2, "MCFQSPI_CS2"); | ||
128 | if (status) { | ||
129 | pr_debug("gpio_request for MCFQSPI_CS2 failed\n"); | ||
130 | goto fail2; | ||
131 | } | ||
132 | status = gpio_direction_output(MCFQSPI_CS2, 1); | ||
133 | if (status) { | ||
134 | pr_debug("gpio_direction_output for MCFQSPI_CS2 failed\n"); | ||
135 | goto fail3; | ||
136 | } | ||
137 | |||
138 | status = gpio_request(MCFQSPI_CS3, "MCFQSPI_CS3"); | ||
139 | if (status) { | ||
140 | pr_debug("gpio_request for MCFQSPI_CS3 failed\n"); | ||
141 | goto fail3; | ||
142 | } | ||
143 | status = gpio_direction_output(MCFQSPI_CS3, 1); | ||
144 | if (status) { | ||
145 | pr_debug("gpio_direction_output for MCFQSPI_CS3 failed\n"); | ||
146 | goto fail4; | ||
147 | } | ||
148 | |||
149 | return 0; | ||
150 | |||
151 | fail4: | ||
152 | gpio_free(MCFQSPI_CS3); | ||
153 | fail3: | ||
154 | gpio_free(MCFQSPI_CS2); | ||
155 | fail2: | ||
156 | gpio_free(MCFQSPI_CS1); | ||
157 | fail1: | ||
158 | gpio_free(MCFQSPI_CS0); | ||
159 | fail0: | ||
160 | return status; | ||
161 | } | ||
162 | |||
163 | static void m528x_cs_teardown(struct mcfqspi_cs_control *cs_control) | ||
164 | { | ||
165 | gpio_free(MCFQSPI_CS3); | ||
166 | gpio_free(MCFQSPI_CS2); | ||
167 | gpio_free(MCFQSPI_CS1); | ||
168 | gpio_free(MCFQSPI_CS0); | ||
169 | } | ||
170 | |||
171 | static void m528x_cs_select(struct mcfqspi_cs_control *cs_control, | ||
172 | u8 chip_select, bool cs_high) | ||
173 | { | ||
174 | gpio_set_value(MCFQSPI_CS0 + chip_select, cs_high); | ||
175 | } | ||
176 | |||
177 | static void m528x_cs_deselect(struct mcfqspi_cs_control *cs_control, | ||
178 | u8 chip_select, bool cs_high) | ||
179 | { | ||
180 | gpio_set_value(MCFQSPI_CS0 + chip_select, !cs_high); | ||
181 | } | ||
182 | |||
183 | static struct mcfqspi_cs_control m528x_cs_control = { | ||
184 | .setup = m528x_cs_setup, | ||
185 | .teardown = m528x_cs_teardown, | ||
186 | .select = m528x_cs_select, | ||
187 | .deselect = m528x_cs_deselect, | ||
188 | }; | ||
189 | |||
190 | static struct mcfqspi_platform_data m528x_qspi_data = { | ||
191 | .bus_num = 0, | ||
192 | .num_chipselect = 4, | ||
193 | .cs_control = &m528x_cs_control, | ||
194 | }; | ||
195 | |||
196 | static struct platform_device m528x_qspi = { | ||
197 | .name = "mcfqspi", | ||
198 | .id = 0, | ||
199 | .num_resources = ARRAY_SIZE(m528x_qspi_resources), | ||
200 | .resource = m528x_qspi_resources, | ||
201 | .dev.platform_data = &m528x_qspi_data, | ||
202 | }; | ||
203 | |||
204 | static void __init m528x_qspi_init(void) | ||
205 | { | ||
206 | /* setup Port QS for QSPI with gpio CS control */ | ||
207 | __raw_writeb(0x07, MCFGPIO_PQSPAR); | ||
208 | } | ||
209 | #endif /* defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) */ | ||
210 | |||
211 | static struct platform_device *m528x_devices[] __initdata = { | ||
212 | &m528x_uart, | ||
213 | &m528x_fec, | ||
214 | #if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) | ||
215 | &m528x_qspi, | ||
216 | #endif | ||
217 | }; | ||
218 | |||
219 | /***************************************************************************/ | ||
220 | |||
221 | static void __init m528x_uart_init_line(int line, int irq) | ||
222 | { | ||
223 | u8 port; | ||
224 | |||
225 | if ((line < 0) || (line > 2)) | ||
226 | return; | ||
227 | |||
228 | /* make sure PUAPAR is set for UART0 and UART1 */ | ||
229 | if (line < 2) { | ||
230 | port = readb(MCF5282_GPIO_PUAPAR); | ||
231 | port |= (0x03 << (line * 2)); | ||
232 | writeb(port, MCF5282_GPIO_PUAPAR); | ||
233 | } | ||
234 | } | ||
235 | |||
236 | static void __init m528x_uarts_init(void) | ||
237 | { | ||
238 | const int nrlines = ARRAY_SIZE(m528x_uart_platform); | ||
239 | int line; | ||
240 | |||
241 | for (line = 0; (line < nrlines); line++) | ||
242 | m528x_uart_init_line(line, m528x_uart_platform[line].irq); | ||
243 | } | ||
244 | |||
245 | /***************************************************************************/ | ||
246 | |||
247 | static void __init m528x_fec_init(void) | ||
248 | { | ||
249 | u16 v16; | ||
250 | |||
251 | /* Set multi-function pins to ethernet mode for fec0 */ | ||
252 | v16 = readw(MCF_IPSBAR + 0x100056); | ||
253 | writew(v16 | 0xf00, MCF_IPSBAR + 0x100056); | ||
254 | writeb(0xc0, MCF_IPSBAR + 0x100058); | ||
255 | } | ||
256 | |||
257 | /***************************************************************************/ | ||
258 | |||
259 | static void m528x_cpu_reset(void) | ||
260 | { | ||
261 | local_irq_disable(); | ||
262 | __raw_writeb(MCF_RCR_SWRESET, MCF_IPSBAR + MCF_RCR); | ||
263 | } | ||
264 | |||
265 | /***************************************************************************/ | ||
266 | |||
267 | #ifdef CONFIG_WILDFIRE | ||
268 | void wildfire_halt(void) | ||
269 | { | ||
270 | writeb(0, 0x30000007); | ||
271 | writeb(0x2, 0x30000007); | ||
272 | } | ||
273 | #endif | ||
274 | |||
275 | #ifdef CONFIG_WILDFIREMOD | ||
276 | void wildfiremod_halt(void) | ||
277 | { | ||
278 | printk(KERN_INFO "WildFireMod hibernating...\n"); | ||
279 | |||
280 | /* Set portE.5 to Digital IO */ | ||
281 | MCF5282_GPIO_PEPAR &= ~(1 << (5 * 2)); | ||
282 | |||
283 | /* Make portE.5 an output */ | ||
284 | MCF5282_GPIO_DDRE |= (1 << 5); | ||
285 | |||
286 | /* Now toggle portE.5 from low to high */ | ||
287 | MCF5282_GPIO_PORTE &= ~(1 << 5); | ||
288 | MCF5282_GPIO_PORTE |= (1 << 5); | ||
289 | |||
290 | printk(KERN_EMERG "Failed to hibernate. Halting!\n"); | ||
291 | } | ||
292 | #endif | ||
293 | |||
294 | void __init config_BSP(char *commandp, int size) | ||
295 | { | ||
296 | #ifdef CONFIG_WILDFIRE | ||
297 | mach_halt = wildfire_halt; | ||
298 | #endif | ||
299 | #ifdef CONFIG_WILDFIREMOD | ||
300 | mach_halt = wildfiremod_halt; | ||
301 | #endif | ||
302 | } | ||
303 | |||
304 | /***************************************************************************/ | ||
305 | |||
306 | static int __init init_BSP(void) | ||
307 | { | ||
308 | mach_reset = m528x_cpu_reset; | ||
309 | m528x_uarts_init(); | ||
310 | m528x_fec_init(); | ||
311 | #if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) | ||
312 | m528x_qspi_init(); | ||
313 | #endif | ||
314 | platform_add_devices(m528x_devices, ARRAY_SIZE(m528x_devices)); | ||
315 | return 0; | ||
316 | } | ||
317 | |||
318 | arch_initcall(init_BSP); | ||
319 | |||
320 | /***************************************************************************/ | ||
diff --git a/arch/m68k/platform/528x/gpio.c b/arch/m68k/platform/528x/gpio.c new file mode 100644 index 000000000000..526db665d87e --- /dev/null +++ b/arch/m68k/platform/528x/gpio.c | |||
@@ -0,0 +1,438 @@ | |||
1 | /* | ||
2 | * Coldfire generic GPIO support | ||
3 | * | ||
4 | * (C) Copyright 2009, Steven King <sfking@fdwdc.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 as published by | ||
8 | * the Free Software Foundation; version 2 of the License. | ||
9 | * | ||
10 | * This program is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU General Public License for more details. | ||
14 | */ | ||
15 | |||
16 | #include <linux/kernel.h> | ||
17 | #include <linux/init.h> | ||
18 | |||
19 | #include <asm/coldfire.h> | ||
20 | #include <asm/mcfsim.h> | ||
21 | #include <asm/mcfgpio.h> | ||
22 | |||
23 | static struct mcf_gpio_chip mcf_gpio_chips[] = { | ||
24 | { | ||
25 | .gpio_chip = { | ||
26 | .label = "NQ", | ||
27 | .request = mcf_gpio_request, | ||
28 | .free = mcf_gpio_free, | ||
29 | .direction_input = mcf_gpio_direction_input, | ||
30 | .direction_output = mcf_gpio_direction_output, | ||
31 | .get = mcf_gpio_get_value, | ||
32 | .set = mcf_gpio_set_value, | ||
33 | .base = 1, | ||
34 | .ngpio = 7, | ||
35 | }, | ||
36 | .pddr = (void __iomem *)MCFEPORT_EPDDR, | ||
37 | .podr = (void __iomem *)MCFEPORT_EPDR, | ||
38 | .ppdr = (void __iomem *)MCFEPORT_EPPDR, | ||
39 | }, | ||
40 | { | ||
41 | .gpio_chip = { | ||
42 | .label = "TA", | ||
43 | .request = mcf_gpio_request, | ||
44 | .free = mcf_gpio_free, | ||
45 | .direction_input = mcf_gpio_direction_input, | ||
46 | .direction_output = mcf_gpio_direction_output, | ||
47 | .get = mcf_gpio_get_value, | ||
48 | .set = mcf_gpio_set_value_fast, | ||
49 | .base = 8, | ||
50 | .ngpio = 4, | ||
51 | }, | ||
52 | .pddr = (void __iomem *)MCFGPTA_GPTDDR, | ||
53 | .podr = (void __iomem *)MCFGPTA_GPTPORT, | ||
54 | .ppdr = (void __iomem *)MCFGPTB_GPTPORT, | ||
55 | }, | ||
56 | { | ||
57 | .gpio_chip = { | ||
58 | .label = "TB", | ||
59 | .request = mcf_gpio_request, | ||
60 | .free = mcf_gpio_free, | ||
61 | .direction_input = mcf_gpio_direction_input, | ||
62 | .direction_output = mcf_gpio_direction_output, | ||
63 | .get = mcf_gpio_get_value, | ||
64 | .set = mcf_gpio_set_value_fast, | ||
65 | .base = 16, | ||
66 | .ngpio = 4, | ||
67 | }, | ||
68 | .pddr = (void __iomem *)MCFGPTB_GPTDDR, | ||
69 | .podr = (void __iomem *)MCFGPTB_GPTPORT, | ||
70 | .ppdr = (void __iomem *)MCFGPTB_GPTPORT, | ||
71 | }, | ||
72 | { | ||
73 | .gpio_chip = { | ||
74 | .label = "QA", | ||
75 | .request = mcf_gpio_request, | ||
76 | .free = mcf_gpio_free, | ||
77 | .direction_input = mcf_gpio_direction_input, | ||
78 | .direction_output = mcf_gpio_direction_output, | ||
79 | .get = mcf_gpio_get_value, | ||
80 | .set = mcf_gpio_set_value_fast, | ||
81 | .base = 24, | ||
82 | .ngpio = 4, | ||
83 | }, | ||
84 | .pddr = (void __iomem *)MCFQADC_DDRQA, | ||
85 | .podr = (void __iomem *)MCFQADC_PORTQA, | ||
86 | .ppdr = (void __iomem *)MCFQADC_PORTQA, | ||
87 | }, | ||
88 | { | ||
89 | .gpio_chip = { | ||
90 | .label = "QB", | ||
91 | .request = mcf_gpio_request, | ||
92 | .free = mcf_gpio_free, | ||
93 | .direction_input = mcf_gpio_direction_input, | ||
94 | .direction_output = mcf_gpio_direction_output, | ||
95 | .get = mcf_gpio_get_value, | ||
96 | .set = mcf_gpio_set_value_fast, | ||
97 | .base = 32, | ||
98 | .ngpio = 4, | ||
99 | }, | ||
100 | .pddr = (void __iomem *)MCFQADC_DDRQB, | ||
101 | .podr = (void __iomem *)MCFQADC_PORTQB, | ||
102 | .ppdr = (void __iomem *)MCFQADC_PORTQB, | ||
103 | }, | ||
104 | { | ||
105 | .gpio_chip = { | ||
106 | .label = "A", | ||
107 | .request = mcf_gpio_request, | ||
108 | .free = mcf_gpio_free, | ||
109 | .direction_input = mcf_gpio_direction_input, | ||
110 | .direction_output = mcf_gpio_direction_output, | ||
111 | .get = mcf_gpio_get_value, | ||
112 | .set = mcf_gpio_set_value_fast, | ||
113 | .base = 40, | ||
114 | .ngpio = 8, | ||
115 | }, | ||
116 | .pddr = (void __iomem *)MCFGPIO_DDRA, | ||
117 | .podr = (void __iomem *)MCFGPIO_PORTA, | ||
118 | .ppdr = (void __iomem *)MCFGPIO_PORTAP, | ||
119 | .setr = (void __iomem *)MCFGPIO_SETA, | ||
120 | .clrr = (void __iomem *)MCFGPIO_CLRA, | ||
121 | }, | ||
122 | { | ||
123 | .gpio_chip = { | ||
124 | .label = "B", | ||
125 | .request = mcf_gpio_request, | ||
126 | .free = mcf_gpio_free, | ||
127 | .direction_input = mcf_gpio_direction_input, | ||
128 | .direction_output = mcf_gpio_direction_output, | ||
129 | .get = mcf_gpio_get_value, | ||
130 | .set = mcf_gpio_set_value_fast, | ||
131 | .base = 48, | ||
132 | .ngpio = 8, | ||
133 | }, | ||
134 | .pddr = (void __iomem *)MCFGPIO_DDRB, | ||
135 | .podr = (void __iomem *)MCFGPIO_PORTB, | ||
136 | .ppdr = (void __iomem *)MCFGPIO_PORTBP, | ||
137 | .setr = (void __iomem *)MCFGPIO_SETB, | ||
138 | .clrr = (void __iomem *)MCFGPIO_CLRB, | ||
139 | }, | ||
140 | { | ||
141 | .gpio_chip = { | ||
142 | .label = "C", | ||
143 | .request = mcf_gpio_request, | ||
144 | .free = mcf_gpio_free, | ||
145 | .direction_input = mcf_gpio_direction_input, | ||
146 | .direction_output = mcf_gpio_direction_output, | ||
147 | .get = mcf_gpio_get_value, | ||
148 | .set = mcf_gpio_set_value_fast, | ||
149 | .base = 56, | ||
150 | .ngpio = 8, | ||
151 | }, | ||
152 | .pddr = (void __iomem *)MCFGPIO_DDRC, | ||
153 | .podr = (void __iomem *)MCFGPIO_PORTC, | ||
154 | .ppdr = (void __iomem *)MCFGPIO_PORTCP, | ||
155 | .setr = (void __iomem *)MCFGPIO_SETC, | ||
156 | .clrr = (void __iomem *)MCFGPIO_CLRC, | ||
157 | }, | ||
158 | { | ||
159 | .gpio_chip = { | ||
160 | .label = "D", | ||
161 | .request = mcf_gpio_request, | ||
162 | .free = mcf_gpio_free, | ||
163 | .direction_input = mcf_gpio_direction_input, | ||
164 | .direction_output = mcf_gpio_direction_output, | ||
165 | .get = mcf_gpio_get_value, | ||
166 | .set = mcf_gpio_set_value_fast, | ||
167 | .base = 64, | ||
168 | .ngpio = 8, | ||
169 | }, | ||
170 | .pddr = (void __iomem *)MCFGPIO_DDRD, | ||
171 | .podr = (void __iomem *)MCFGPIO_PORTD, | ||
172 | .ppdr = (void __iomem *)MCFGPIO_PORTDP, | ||
173 | .setr = (void __iomem *)MCFGPIO_SETD, | ||
174 | .clrr = (void __iomem *)MCFGPIO_CLRD, | ||
175 | }, | ||
176 | { | ||
177 | .gpio_chip = { | ||
178 | .label = "E", | ||
179 | .request = mcf_gpio_request, | ||
180 | .free = mcf_gpio_free, | ||
181 | .direction_input = mcf_gpio_direction_input, | ||
182 | .direction_output = mcf_gpio_direction_output, | ||
183 | .get = mcf_gpio_get_value, | ||
184 | .set = mcf_gpio_set_value_fast, | ||
185 | .base = 72, | ||
186 | .ngpio = 8, | ||
187 | }, | ||
188 | .pddr = (void __iomem *)MCFGPIO_DDRE, | ||
189 | .podr = (void __iomem *)MCFGPIO_PORTE, | ||
190 | .ppdr = (void __iomem *)MCFGPIO_PORTEP, | ||
191 | .setr = (void __iomem *)MCFGPIO_SETE, | ||
192 | .clrr = (void __iomem *)MCFGPIO_CLRE, | ||
193 | }, | ||
194 | { | ||
195 | .gpio_chip = { | ||
196 | .label = "F", | ||
197 | .request = mcf_gpio_request, | ||
198 | .free = mcf_gpio_free, | ||
199 | .direction_input = mcf_gpio_direction_input, | ||
200 | .direction_output = mcf_gpio_direction_output, | ||
201 | .get = mcf_gpio_get_value, | ||
202 | .set = mcf_gpio_set_value_fast, | ||
203 | .base = 80, | ||
204 | .ngpio = 8, | ||
205 | }, | ||
206 | .pddr = (void __iomem *)MCFGPIO_DDRF, | ||
207 | .podr = (void __iomem *)MCFGPIO_PORTF, | ||
208 | .ppdr = (void __iomem *)MCFGPIO_PORTFP, | ||
209 | .setr = (void __iomem *)MCFGPIO_SETF, | ||
210 | .clrr = (void __iomem *)MCFGPIO_CLRF, | ||
211 | }, | ||
212 | { | ||
213 | .gpio_chip = { | ||
214 | .label = "G", | ||
215 | .request = mcf_gpio_request, | ||
216 | .free = mcf_gpio_free, | ||
217 | .direction_input = mcf_gpio_direction_input, | ||
218 | .direction_output = mcf_gpio_direction_output, | ||
219 | .get = mcf_gpio_get_value, | ||
220 | .set = mcf_gpio_set_value_fast, | ||
221 | .base = 88, | ||
222 | .ngpio = 8, | ||
223 | }, | ||
224 | .pddr = (void __iomem *)MCFGPIO_DDRG, | ||
225 | .podr = (void __iomem *)MCFGPIO_PORTG, | ||
226 | .ppdr = (void __iomem *)MCFGPIO_PORTGP, | ||
227 | .setr = (void __iomem *)MCFGPIO_SETG, | ||
228 | .clrr = (void __iomem *)MCFGPIO_CLRG, | ||
229 | }, | ||
230 | { | ||
231 | .gpio_chip = { | ||
232 | .label = "H", | ||
233 | .request = mcf_gpio_request, | ||
234 | .free = mcf_gpio_free, | ||
235 | .direction_input = mcf_gpio_direction_input, | ||
236 | .direction_output = mcf_gpio_direction_output, | ||
237 | .get = mcf_gpio_get_value, | ||
238 | .set = mcf_gpio_set_value_fast, | ||
239 | .base = 96, | ||
240 | .ngpio = 8, | ||
241 | }, | ||
242 | .pddr = (void __iomem *)MCFGPIO_DDRH, | ||
243 | .podr = (void __iomem *)MCFGPIO_PORTH, | ||
244 | .ppdr = (void __iomem *)MCFGPIO_PORTHP, | ||
245 | .setr = (void __iomem *)MCFGPIO_SETH, | ||
246 | .clrr = (void __iomem *)MCFGPIO_CLRH, | ||
247 | }, | ||
248 | { | ||
249 | .gpio_chip = { | ||
250 | .label = "J", | ||
251 | .request = mcf_gpio_request, | ||
252 | .free = mcf_gpio_free, | ||
253 | .direction_input = mcf_gpio_direction_input, | ||
254 | .direction_output = mcf_gpio_direction_output, | ||
255 | .get = mcf_gpio_get_value, | ||
256 | .set = mcf_gpio_set_value_fast, | ||
257 | .base = 104, | ||
258 | .ngpio = 8, | ||
259 | }, | ||
260 | .pddr = (void __iomem *)MCFGPIO_DDRJ, | ||
261 | .podr = (void __iomem *)MCFGPIO_PORTJ, | ||
262 | .ppdr = (void __iomem *)MCFGPIO_PORTJP, | ||
263 | .setr = (void __iomem *)MCFGPIO_SETJ, | ||
264 | .clrr = (void __iomem *)MCFGPIO_CLRJ, | ||
265 | }, | ||
266 | { | ||
267 | .gpio_chip = { | ||
268 | .label = "DD", | ||
269 | .request = mcf_gpio_request, | ||
270 | .free = mcf_gpio_free, | ||
271 | .direction_input = mcf_gpio_direction_input, | ||
272 | .direction_output = mcf_gpio_direction_output, | ||
273 | .get = mcf_gpio_get_value, | ||
274 | .set = mcf_gpio_set_value_fast, | ||
275 | .base = 112, | ||
276 | .ngpio = 8, | ||
277 | }, | ||
278 | .pddr = (void __iomem *)MCFGPIO_DDRDD, | ||
279 | .podr = (void __iomem *)MCFGPIO_PORTDD, | ||
280 | .ppdr = (void __iomem *)MCFGPIO_PORTDDP, | ||
281 | .setr = (void __iomem *)MCFGPIO_SETDD, | ||
282 | .clrr = (void __iomem *)MCFGPIO_CLRDD, | ||
283 | }, | ||
284 | { | ||
285 | .gpio_chip = { | ||
286 | .label = "EH", | ||
287 | .request = mcf_gpio_request, | ||
288 | .free = mcf_gpio_free, | ||
289 | .direction_input = mcf_gpio_direction_input, | ||
290 | .direction_output = mcf_gpio_direction_output, | ||
291 | .get = mcf_gpio_get_value, | ||
292 | .set = mcf_gpio_set_value_fast, | ||
293 | .base = 120, | ||
294 | .ngpio = 8, | ||
295 | }, | ||
296 | .pddr = (void __iomem *)MCFGPIO_DDREH, | ||
297 | .podr = (void __iomem *)MCFGPIO_PORTEH, | ||
298 | .ppdr = (void __iomem *)MCFGPIO_PORTEHP, | ||
299 | .setr = (void __iomem *)MCFGPIO_SETEH, | ||
300 | .clrr = (void __iomem *)MCFGPIO_CLREH, | ||
301 | }, | ||
302 | { | ||
303 | .gpio_chip = { | ||
304 | .label = "EL", | ||
305 | .request = mcf_gpio_request, | ||
306 | .free = mcf_gpio_free, | ||
307 | .direction_input = mcf_gpio_direction_input, | ||
308 | .direction_output = mcf_gpio_direction_output, | ||
309 | .get = mcf_gpio_get_value, | ||
310 | .set = mcf_gpio_set_value_fast, | ||
311 | .base = 128, | ||
312 | .ngpio = 8, | ||
313 | }, | ||
314 | .pddr = (void __iomem *)MCFGPIO_DDREL, | ||
315 | .podr = (void __iomem *)MCFGPIO_PORTEL, | ||
316 | .ppdr = (void __iomem *)MCFGPIO_PORTELP, | ||
317 | .setr = (void __iomem *)MCFGPIO_SETEL, | ||
318 | .clrr = (void __iomem *)MCFGPIO_CLREL, | ||
319 | }, | ||
320 | { | ||
321 | .gpio_chip = { | ||
322 | .label = "AS", | ||
323 | .request = mcf_gpio_request, | ||
324 | .free = mcf_gpio_free, | ||
325 | .direction_input = mcf_gpio_direction_input, | ||
326 | .direction_output = mcf_gpio_direction_output, | ||
327 | .get = mcf_gpio_get_value, | ||
328 | .set = mcf_gpio_set_value_fast, | ||
329 | .base = 136, | ||
330 | .ngpio = 6, | ||
331 | }, | ||
332 | .pddr = (void __iomem *)MCFGPIO_DDRAS, | ||
333 | .podr = (void __iomem *)MCFGPIO_PORTAS, | ||
334 | .ppdr = (void __iomem *)MCFGPIO_PORTASP, | ||
335 | .setr = (void __iomem *)MCFGPIO_SETAS, | ||
336 | .clrr = (void __iomem *)MCFGPIO_CLRAS, | ||
337 | }, | ||
338 | { | ||
339 | .gpio_chip = { | ||
340 | .label = "QS", | ||
341 | .request = mcf_gpio_request, | ||
342 | .free = mcf_gpio_free, | ||
343 | .direction_input = mcf_gpio_direction_input, | ||
344 | .direction_output = mcf_gpio_direction_output, | ||
345 | .get = mcf_gpio_get_value, | ||
346 | .set = mcf_gpio_set_value_fast, | ||
347 | .base = 144, | ||
348 | .ngpio = 7, | ||
349 | }, | ||
350 | .pddr = (void __iomem *)MCFGPIO_DDRQS, | ||
351 | .podr = (void __iomem *)MCFGPIO_PORTQS, | ||
352 | .ppdr = (void __iomem *)MCFGPIO_PORTQSP, | ||
353 | .setr = (void __iomem *)MCFGPIO_SETQS, | ||
354 | .clrr = (void __iomem *)MCFGPIO_CLRQS, | ||
355 | }, | ||
356 | { | ||
357 | .gpio_chip = { | ||
358 | .label = "SD", | ||
359 | .request = mcf_gpio_request, | ||
360 | .free = mcf_gpio_free, | ||
361 | .direction_input = mcf_gpio_direction_input, | ||
362 | .direction_output = mcf_gpio_direction_output, | ||
363 | .get = mcf_gpio_get_value, | ||
364 | .set = mcf_gpio_set_value_fast, | ||
365 | .base = 152, | ||
366 | .ngpio = 6, | ||
367 | }, | ||
368 | .pddr = (void __iomem *)MCFGPIO_DDRSD, | ||
369 | .podr = (void __iomem *)MCFGPIO_PORTSD, | ||
370 | .ppdr = (void __iomem *)MCFGPIO_PORTSDP, | ||
371 | .setr = (void __iomem *)MCFGPIO_SETSD, | ||
372 | .clrr = (void __iomem *)MCFGPIO_CLRSD, | ||
373 | }, | ||
374 | { | ||
375 | .gpio_chip = { | ||
376 | .label = "TC", | ||
377 | .request = mcf_gpio_request, | ||
378 | .free = mcf_gpio_free, | ||
379 | .direction_input = mcf_gpio_direction_input, | ||
380 | .direction_output = mcf_gpio_direction_output, | ||
381 | .get = mcf_gpio_get_value, | ||
382 | .set = mcf_gpio_set_value_fast, | ||
383 | .base = 160, | ||
384 | .ngpio = 4, | ||
385 | }, | ||
386 | .pddr = (void __iomem *)MCFGPIO_DDRTC, | ||
387 | .podr = (void __iomem *)MCFGPIO_PORTTC, | ||
388 | .ppdr = (void __iomem *)MCFGPIO_PORTTCP, | ||
389 | .setr = (void __iomem *)MCFGPIO_SETTC, | ||
390 | .clrr = (void __iomem *)MCFGPIO_CLRTC, | ||
391 | }, | ||
392 | { | ||
393 | .gpio_chip = { | ||
394 | .label = "TD", | ||
395 | .request = mcf_gpio_request, | ||
396 | .free = mcf_gpio_free, | ||
397 | .direction_input = mcf_gpio_direction_input, | ||
398 | .direction_output = mcf_gpio_direction_output, | ||
399 | .get = mcf_gpio_get_value, | ||
400 | .set = mcf_gpio_set_value_fast, | ||
401 | .base = 168, | ||
402 | .ngpio = 4, | ||
403 | }, | ||
404 | .pddr = (void __iomem *)MCFGPIO_DDRTD, | ||
405 | .podr = (void __iomem *)MCFGPIO_PORTTD, | ||
406 | .ppdr = (void __iomem *)MCFGPIO_PORTTDP, | ||
407 | .setr = (void __iomem *)MCFGPIO_SETTD, | ||
408 | .clrr = (void __iomem *)MCFGPIO_CLRTD, | ||
409 | }, | ||
410 | { | ||
411 | .gpio_chip = { | ||
412 | .label = "UA", | ||
413 | .request = mcf_gpio_request, | ||
414 | .free = mcf_gpio_free, | ||
415 | .direction_input = mcf_gpio_direction_input, | ||
416 | .direction_output = mcf_gpio_direction_output, | ||
417 | .get = mcf_gpio_get_value, | ||
418 | .set = mcf_gpio_set_value_fast, | ||
419 | .base = 176, | ||
420 | .ngpio = 4, | ||
421 | }, | ||
422 | .pddr = (void __iomem *)MCFGPIO_DDRUA, | ||
423 | .podr = (void __iomem *)MCFGPIO_PORTUA, | ||
424 | .ppdr = (void __iomem *)MCFGPIO_PORTUAP, | ||
425 | .setr = (void __iomem *)MCFGPIO_SETUA, | ||
426 | .clrr = (void __iomem *)MCFGPIO_CLRUA, | ||
427 | }, | ||
428 | }; | ||
429 | |||
430 | static int __init mcf_gpio_init(void) | ||
431 | { | ||
432 | unsigned i = 0; | ||
433 | while (i < ARRAY_SIZE(mcf_gpio_chips)) | ||
434 | (void)gpiochip_add((struct gpio_chip *)&mcf_gpio_chips[i++]); | ||
435 | return 0; | ||
436 | } | ||
437 | |||
438 | core_initcall(mcf_gpio_init); | ||
diff --git a/arch/m68k/platform/5307/Makefile b/arch/m68k/platform/5307/Makefile new file mode 100644 index 000000000000..d4293b791f2e --- /dev/null +++ b/arch/m68k/platform/5307/Makefile | |||
@@ -0,0 +1,20 @@ | |||
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 | # ccflags-y := -DTRAP_DBG_INTERRUPT | ||
12 | # asflags-y := -DTRAP_DBG_INTERRUPT | ||
13 | # | ||
14 | |||
15 | asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1 | ||
16 | |||
17 | obj-y += config.o gpio.o | ||
18 | obj-$(CONFIG_NETtel) += nettel.o | ||
19 | obj-$(CONFIG_CLEOPATRA) += nettel.o | ||
20 | |||
diff --git a/arch/m68k/platform/5307/config.c b/arch/m68k/platform/5307/config.c new file mode 100644 index 000000000000..00900ac06a9c --- /dev/null +++ b/arch/m68k/platform/5307/config.c | |||
@@ -0,0 +1,147 @@ | |||
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/kernel.h> | ||
13 | #include <linux/param.h> | ||
14 | #include <linux/init.h> | ||
15 | #include <linux/io.h> | ||
16 | #include <asm/machdep.h> | ||
17 | #include <asm/coldfire.h> | ||
18 | #include <asm/mcfsim.h> | ||
19 | #include <asm/mcfuart.h> | ||
20 | #include <asm/mcfwdebug.h> | ||
21 | |||
22 | /***************************************************************************/ | ||
23 | |||
24 | /* | ||
25 | * Some platforms need software versions of the GPIO data registers. | ||
26 | */ | ||
27 | unsigned short ppdata; | ||
28 | unsigned char ledbank = 0xff; | ||
29 | |||
30 | /***************************************************************************/ | ||
31 | |||
32 | static struct mcf_platform_uart m5307_uart_platform[] = { | ||
33 | { | ||
34 | .mapbase = MCF_MBAR + MCFUART_BASE1, | ||
35 | .irq = 73, | ||
36 | }, | ||
37 | { | ||
38 | .mapbase = MCF_MBAR + MCFUART_BASE2, | ||
39 | .irq = 74, | ||
40 | }, | ||
41 | { }, | ||
42 | }; | ||
43 | |||
44 | static struct platform_device m5307_uart = { | ||
45 | .name = "mcfuart", | ||
46 | .id = 0, | ||
47 | .dev.platform_data = m5307_uart_platform, | ||
48 | }; | ||
49 | |||
50 | static struct platform_device *m5307_devices[] __initdata = { | ||
51 | &m5307_uart, | ||
52 | }; | ||
53 | |||
54 | /***************************************************************************/ | ||
55 | |||
56 | static void __init m5307_uart_init_line(int line, int irq) | ||
57 | { | ||
58 | if (line == 0) { | ||
59 | writeb(MCFSIM_ICR_LEVEL6 | MCFSIM_ICR_PRI1, MCF_MBAR + MCFSIM_UART1ICR); | ||
60 | writeb(irq, MCF_MBAR + MCFUART_BASE1 + MCFUART_UIVR); | ||
61 | mcf_mapirq2imr(irq, MCFINTC_UART0); | ||
62 | } else if (line == 1) { | ||
63 | writeb(MCFSIM_ICR_LEVEL6 | MCFSIM_ICR_PRI2, MCF_MBAR + MCFSIM_UART2ICR); | ||
64 | writeb(irq, MCF_MBAR + MCFUART_BASE2 + MCFUART_UIVR); | ||
65 | mcf_mapirq2imr(irq, MCFINTC_UART1); | ||
66 | } | ||
67 | } | ||
68 | |||
69 | static void __init m5307_uarts_init(void) | ||
70 | { | ||
71 | const int nrlines = ARRAY_SIZE(m5307_uart_platform); | ||
72 | int line; | ||
73 | |||
74 | for (line = 0; (line < nrlines); line++) | ||
75 | m5307_uart_init_line(line, m5307_uart_platform[line].irq); | ||
76 | } | ||
77 | |||
78 | /***************************************************************************/ | ||
79 | |||
80 | static void __init m5307_timers_init(void) | ||
81 | { | ||
82 | /* Timer1 is always used as system timer */ | ||
83 | writeb(MCFSIM_ICR_AUTOVEC | MCFSIM_ICR_LEVEL6 | MCFSIM_ICR_PRI3, | ||
84 | MCF_MBAR + MCFSIM_TIMER1ICR); | ||
85 | mcf_mapirq2imr(MCF_IRQ_TIMER, MCFINTC_TIMER1); | ||
86 | |||
87 | #ifdef CONFIG_HIGHPROFILE | ||
88 | /* Timer2 is to be used as a high speed profile timer */ | ||
89 | writeb(MCFSIM_ICR_AUTOVEC | MCFSIM_ICR_LEVEL7 | MCFSIM_ICR_PRI3, | ||
90 | MCF_MBAR + MCFSIM_TIMER2ICR); | ||
91 | mcf_mapirq2imr(MCF_IRQ_PROFILER, MCFINTC_TIMER2); | ||
92 | #endif | ||
93 | } | ||
94 | |||
95 | /***************************************************************************/ | ||
96 | |||
97 | void m5307_cpu_reset(void) | ||
98 | { | ||
99 | local_irq_disable(); | ||
100 | /* Set watchdog to soft reset, and enabled */ | ||
101 | __raw_writeb(0xc0, MCF_MBAR + MCFSIM_SYPCR); | ||
102 | for (;;) | ||
103 | /* wait for watchdog to timeout */; | ||
104 | } | ||
105 | |||
106 | /***************************************************************************/ | ||
107 | |||
108 | void __init config_BSP(char *commandp, int size) | ||
109 | { | ||
110 | #if defined(CONFIG_NETtel) || \ | ||
111 | defined(CONFIG_SECUREEDGEMP3) || defined(CONFIG_CLEOPATRA) | ||
112 | /* Copy command line from FLASH to local buffer... */ | ||
113 | memcpy(commandp, (char *) 0xf0004000, size); | ||
114 | commandp[size-1] = 0; | ||
115 | #endif | ||
116 | |||
117 | mach_reset = m5307_cpu_reset; | ||
118 | m5307_timers_init(); | ||
119 | m5307_uarts_init(); | ||
120 | |||
121 | /* Only support the external interrupts on their primary level */ | ||
122 | mcf_mapirq2imr(25, MCFINTC_EINT1); | ||
123 | mcf_mapirq2imr(27, MCFINTC_EINT3); | ||
124 | mcf_mapirq2imr(29, MCFINTC_EINT5); | ||
125 | mcf_mapirq2imr(31, MCFINTC_EINT7); | ||
126 | |||
127 | #ifdef CONFIG_BDM_DISABLE | ||
128 | /* | ||
129 | * Disable the BDM clocking. This also turns off most of the rest of | ||
130 | * the BDM device. This is good for EMC reasons. This option is not | ||
131 | * incompatible with the memory protection option. | ||
132 | */ | ||
133 | wdebug(MCFDEBUG_CSR, MCFDEBUG_CSR_PSTCLK); | ||
134 | #endif | ||
135 | } | ||
136 | |||
137 | /***************************************************************************/ | ||
138 | |||
139 | static int __init init_BSP(void) | ||
140 | { | ||
141 | platform_add_devices(m5307_devices, ARRAY_SIZE(m5307_devices)); | ||
142 | return 0; | ||
143 | } | ||
144 | |||
145 | arch_initcall(init_BSP); | ||
146 | |||
147 | /***************************************************************************/ | ||
diff --git a/arch/m68k/platform/5307/gpio.c b/arch/m68k/platform/5307/gpio.c new file mode 100644 index 000000000000..5850612b4a38 --- /dev/null +++ b/arch/m68k/platform/5307/gpio.c | |||
@@ -0,0 +1,49 @@ | |||
1 | /* | ||
2 | * Coldfire generic GPIO support | ||
3 | * | ||
4 | * (C) Copyright 2009, Steven King <sfking@fdwdc.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 as published by | ||
8 | * the Free Software Foundation; version 2 of the License. | ||
9 | * | ||
10 | * This program is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU General Public License for more details. | ||
14 | */ | ||
15 | |||
16 | #include <linux/kernel.h> | ||
17 | #include <linux/init.h> | ||
18 | |||
19 | #include <asm/coldfire.h> | ||
20 | #include <asm/mcfsim.h> | ||
21 | #include <asm/mcfgpio.h> | ||
22 | |||
23 | static struct mcf_gpio_chip mcf_gpio_chips[] = { | ||
24 | { | ||
25 | .gpio_chip = { | ||
26 | .label = "PP", | ||
27 | .request = mcf_gpio_request, | ||
28 | .free = mcf_gpio_free, | ||
29 | .direction_input = mcf_gpio_direction_input, | ||
30 | .direction_output = mcf_gpio_direction_output, | ||
31 | .get = mcf_gpio_get_value, | ||
32 | .set = mcf_gpio_set_value, | ||
33 | .ngpio = 16, | ||
34 | }, | ||
35 | .pddr = (void __iomem *) MCFSIM_PADDR, | ||
36 | .podr = (void __iomem *) MCFSIM_PADAT, | ||
37 | .ppdr = (void __iomem *) MCFSIM_PADAT, | ||
38 | }, | ||
39 | }; | ||
40 | |||
41 | static int __init mcf_gpio_init(void) | ||
42 | { | ||
43 | unsigned i = 0; | ||
44 | while (i < ARRAY_SIZE(mcf_gpio_chips)) | ||
45 | (void)gpiochip_add((struct gpio_chip *)&mcf_gpio_chips[i++]); | ||
46 | return 0; | ||
47 | } | ||
48 | |||
49 | core_initcall(mcf_gpio_init); | ||
diff --git a/arch/m68k/platform/5307/nettel.c b/arch/m68k/platform/5307/nettel.c new file mode 100644 index 000000000000..e925ea4602f8 --- /dev/null +++ b/arch/m68k/platform/5307/nettel.c | |||
@@ -0,0 +1,153 @@ | |||
1 | /***************************************************************************/ | ||
2 | |||
3 | /* | ||
4 | * nettel.c -- startup code support for the NETtel boards | ||
5 | * | ||
6 | * Copyright (C) 2009, Greg Ungerer (gerg@snapgear.com) | ||
7 | */ | ||
8 | |||
9 | /***************************************************************************/ | ||
10 | |||
11 | #include <linux/kernel.h> | ||
12 | #include <linux/param.h> | ||
13 | #include <linux/init.h> | ||
14 | #include <linux/io.h> | ||
15 | #include <linux/platform_device.h> | ||
16 | #include <asm/coldfire.h> | ||
17 | #include <asm/mcfsim.h> | ||
18 | #include <asm/nettel.h> | ||
19 | |||
20 | /***************************************************************************/ | ||
21 | |||
22 | /* | ||
23 | * Define the IO and interrupt resources of the 2 SMC9196 interfaces. | ||
24 | */ | ||
25 | #define NETTEL_SMC0_ADDR 0x30600300 | ||
26 | #define NETTEL_SMC0_IRQ 29 | ||
27 | |||
28 | #define NETTEL_SMC1_ADDR 0x30600000 | ||
29 | #define NETTEL_SMC1_IRQ 27 | ||
30 | |||
31 | /* | ||
32 | * We need some access into the SMC9196 registers. Define those registers | ||
33 | * we will need here (including the smc91x.h doesn't seem to give us these | ||
34 | * in a simple form). | ||
35 | */ | ||
36 | #define SMC91xx_BANKSELECT 14 | ||
37 | #define SMC91xx_BASEADDR 2 | ||
38 | #define SMC91xx_BASEMAC 4 | ||
39 | |||
40 | /***************************************************************************/ | ||
41 | |||
42 | static struct resource nettel_smc91x_0_resources[] = { | ||
43 | { | ||
44 | .start = NETTEL_SMC0_ADDR, | ||
45 | .end = NETTEL_SMC0_ADDR + 0x20, | ||
46 | .flags = IORESOURCE_MEM, | ||
47 | }, | ||
48 | { | ||
49 | .start = NETTEL_SMC0_IRQ, | ||
50 | .end = NETTEL_SMC0_IRQ, | ||
51 | .flags = IORESOURCE_IRQ, | ||
52 | }, | ||
53 | }; | ||
54 | |||
55 | static struct resource nettel_smc91x_1_resources[] = { | ||
56 | { | ||
57 | .start = NETTEL_SMC1_ADDR, | ||
58 | .end = NETTEL_SMC1_ADDR + 0x20, | ||
59 | .flags = IORESOURCE_MEM, | ||
60 | }, | ||
61 | { | ||
62 | .start = NETTEL_SMC1_IRQ, | ||
63 | .end = NETTEL_SMC1_IRQ, | ||
64 | .flags = IORESOURCE_IRQ, | ||
65 | }, | ||
66 | }; | ||
67 | |||
68 | static struct platform_device nettel_smc91x[] = { | ||
69 | { | ||
70 | .name = "smc91x", | ||
71 | .id = 0, | ||
72 | .num_resources = ARRAY_SIZE(nettel_smc91x_0_resources), | ||
73 | .resource = nettel_smc91x_0_resources, | ||
74 | }, | ||
75 | { | ||
76 | .name = "smc91x", | ||
77 | .id = 1, | ||
78 | .num_resources = ARRAY_SIZE(nettel_smc91x_1_resources), | ||
79 | .resource = nettel_smc91x_1_resources, | ||
80 | }, | ||
81 | }; | ||
82 | |||
83 | static struct platform_device *nettel_devices[] __initdata = { | ||
84 | &nettel_smc91x[0], | ||
85 | &nettel_smc91x[1], | ||
86 | }; | ||
87 | |||
88 | /***************************************************************************/ | ||
89 | |||
90 | static u8 nettel_macdefault[] __initdata = { | ||
91 | 0x00, 0xd0, 0xcf, 0x00, 0x00, 0x01, | ||
92 | }; | ||
93 | |||
94 | /* | ||
95 | * Set flash contained MAC address into SMC9196 core. Make sure the flash | ||
96 | * MAC address is sane, and not an empty flash. If no good use the Moreton | ||
97 | * Bay default MAC address instead. | ||
98 | */ | ||
99 | |||
100 | static void __init nettel_smc91x_setmac(unsigned int ioaddr, unsigned int flashaddr) | ||
101 | { | ||
102 | u16 *macp; | ||
103 | |||
104 | macp = (u16 *) flashaddr; | ||
105 | if ((macp[0] == 0xffff) && (macp[1] == 0xffff) && (macp[2] == 0xffff)) | ||
106 | macp = (u16 *) &nettel_macdefault[0]; | ||
107 | |||
108 | writew(1, NETTEL_SMC0_ADDR + SMC91xx_BANKSELECT); | ||
109 | writew(macp[0], ioaddr + SMC91xx_BASEMAC); | ||
110 | writew(macp[1], ioaddr + SMC91xx_BASEMAC + 2); | ||
111 | writew(macp[2], ioaddr + SMC91xx_BASEMAC + 4); | ||
112 | } | ||
113 | |||
114 | /***************************************************************************/ | ||
115 | |||
116 | /* | ||
117 | * Re-map the address space of at least one of the SMC ethernet | ||
118 | * parts. Both parts power up decoding the same address, so we | ||
119 | * need to move one of them first, before doing anything else. | ||
120 | */ | ||
121 | |||
122 | static void __init nettel_smc91x_init(void) | ||
123 | { | ||
124 | writew(0x00ec, MCF_MBAR + MCFSIM_PADDR); | ||
125 | mcf_setppdata(0, 0x0080); | ||
126 | writew(1, NETTEL_SMC0_ADDR + SMC91xx_BANKSELECT); | ||
127 | writew(0x0067, NETTEL_SMC0_ADDR + SMC91xx_BASEADDR); | ||
128 | mcf_setppdata(0x0080, 0); | ||
129 | |||
130 | /* Set correct chip select timing for SMC9196 accesses */ | ||
131 | writew(0x1180, MCF_MBAR + MCFSIM_CSCR3); | ||
132 | |||
133 | /* Set the SMC interrupts to be auto-vectored */ | ||
134 | mcf_autovector(NETTEL_SMC0_IRQ); | ||
135 | mcf_autovector(NETTEL_SMC1_IRQ); | ||
136 | |||
137 | /* Set MAC addresses from flash for both interfaces */ | ||
138 | nettel_smc91x_setmac(NETTEL_SMC0_ADDR, 0xf0006000); | ||
139 | nettel_smc91x_setmac(NETTEL_SMC1_ADDR, 0xf0006006); | ||
140 | } | ||
141 | |||
142 | /***************************************************************************/ | ||
143 | |||
144 | static int __init init_nettel(void) | ||
145 | { | ||
146 | nettel_smc91x_init(); | ||
147 | platform_add_devices(nettel_devices, ARRAY_SIZE(nettel_devices)); | ||
148 | return 0; | ||
149 | } | ||
150 | |||
151 | arch_initcall(init_nettel); | ||
152 | |||
153 | /***************************************************************************/ | ||
diff --git a/arch/m68k/platform/532x/Makefile b/arch/m68k/platform/532x/Makefile new file mode 100644 index 000000000000..ce01669399c6 --- /dev/null +++ b/arch/m68k/platform/532x/Makefile | |||
@@ -0,0 +1,18 @@ | |||
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 | # ccflags-y := -DTRAP_DBG_INTERRUPT | ||
12 | # asflags-y := -DTRAP_DBG_INTERRUPT | ||
13 | # | ||
14 | |||
15 | asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1 | ||
16 | |||
17 | #obj-y := config.o usb-mcf532x.o spi-mcf532x.o | ||
18 | obj-y := config.o gpio.o | ||
diff --git a/arch/m68k/platform/532x/config.c b/arch/m68k/platform/532x/config.c new file mode 100644 index 000000000000..ca51323f957b --- /dev/null +++ b/arch/m68k/platform/532x/config.c | |||
@@ -0,0 +1,648 @@ | |||
1 | /***************************************************************************/ | ||
2 | |||
3 | /* | ||
4 | * linux/arch/m68knommu/platform/532x/config.c | ||
5 | * | ||
6 | * Copyright (C) 1999-2002, Greg Ungerer (gerg@snapgear.com) | ||
7 | * Copyright (C) 2000, Lineo (www.lineo.com) | ||
8 | * Yaroslav Vinogradov yaroslav.vinogradov@freescale.com | ||
9 | * Copyright Freescale Semiconductor, Inc 2006 | ||
10 | * Copyright (c) 2006, emlix, Sebastian Hess <sh@emlix.com> | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or modify | ||
13 | * it under the terms of the GNU General Public License as published by | ||
14 | * the Free Software Foundation; either version 2 of the License, or | ||
15 | * (at your option) any later version. | ||
16 | */ | ||
17 | |||
18 | /***************************************************************************/ | ||
19 | |||
20 | #include <linux/kernel.h> | ||
21 | #include <linux/param.h> | ||
22 | #include <linux/init.h> | ||
23 | #include <linux/io.h> | ||
24 | #include <linux/spi/spi.h> | ||
25 | #include <linux/gpio.h> | ||
26 | #include <asm/machdep.h> | ||
27 | #include <asm/coldfire.h> | ||
28 | #include <asm/mcfsim.h> | ||
29 | #include <asm/mcfuart.h> | ||
30 | #include <asm/mcfdma.h> | ||
31 | #include <asm/mcfwdebug.h> | ||
32 | #include <asm/mcfqspi.h> | ||
33 | |||
34 | /***************************************************************************/ | ||
35 | |||
36 | static struct mcf_platform_uart m532x_uart_platform[] = { | ||
37 | { | ||
38 | .mapbase = MCFUART_BASE1, | ||
39 | .irq = MCFINT_VECBASE + MCFINT_UART0, | ||
40 | }, | ||
41 | { | ||
42 | .mapbase = MCFUART_BASE2, | ||
43 | .irq = MCFINT_VECBASE + MCFINT_UART1, | ||
44 | }, | ||
45 | { | ||
46 | .mapbase = MCFUART_BASE3, | ||
47 | .irq = MCFINT_VECBASE + MCFINT_UART2, | ||
48 | }, | ||
49 | { }, | ||
50 | }; | ||
51 | |||
52 | static struct platform_device m532x_uart = { | ||
53 | .name = "mcfuart", | ||
54 | .id = 0, | ||
55 | .dev.platform_data = m532x_uart_platform, | ||
56 | }; | ||
57 | |||
58 | static struct resource m532x_fec_resources[] = { | ||
59 | { | ||
60 | .start = 0xfc030000, | ||
61 | .end = 0xfc0307ff, | ||
62 | .flags = IORESOURCE_MEM, | ||
63 | }, | ||
64 | { | ||
65 | .start = 64 + 36, | ||
66 | .end = 64 + 36, | ||
67 | .flags = IORESOURCE_IRQ, | ||
68 | }, | ||
69 | { | ||
70 | .start = 64 + 40, | ||
71 | .end = 64 + 40, | ||
72 | .flags = IORESOURCE_IRQ, | ||
73 | }, | ||
74 | { | ||
75 | .start = 64 + 42, | ||
76 | .end = 64 + 42, | ||
77 | .flags = IORESOURCE_IRQ, | ||
78 | }, | ||
79 | }; | ||
80 | |||
81 | static struct platform_device m532x_fec = { | ||
82 | .name = "fec", | ||
83 | .id = 0, | ||
84 | .num_resources = ARRAY_SIZE(m532x_fec_resources), | ||
85 | .resource = m532x_fec_resources, | ||
86 | }; | ||
87 | |||
88 | #if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) | ||
89 | static struct resource m532x_qspi_resources[] = { | ||
90 | { | ||
91 | .start = MCFQSPI_IOBASE, | ||
92 | .end = MCFQSPI_IOBASE + MCFQSPI_IOSIZE - 1, | ||
93 | .flags = IORESOURCE_MEM, | ||
94 | }, | ||
95 | { | ||
96 | .start = MCFINT_VECBASE + MCFINT_QSPI, | ||
97 | .end = MCFINT_VECBASE + MCFINT_QSPI, | ||
98 | .flags = IORESOURCE_IRQ, | ||
99 | }, | ||
100 | }; | ||
101 | |||
102 | #define MCFQSPI_CS0 84 | ||
103 | #define MCFQSPI_CS1 85 | ||
104 | #define MCFQSPI_CS2 86 | ||
105 | |||
106 | static int m532x_cs_setup(struct mcfqspi_cs_control *cs_control) | ||
107 | { | ||
108 | int status; | ||
109 | |||
110 | status = gpio_request(MCFQSPI_CS0, "MCFQSPI_CS0"); | ||
111 | if (status) { | ||
112 | pr_debug("gpio_request for MCFQSPI_CS0 failed\n"); | ||
113 | goto fail0; | ||
114 | } | ||
115 | status = gpio_direction_output(MCFQSPI_CS0, 1); | ||
116 | if (status) { | ||
117 | pr_debug("gpio_direction_output for MCFQSPI_CS0 failed\n"); | ||
118 | goto fail1; | ||
119 | } | ||
120 | |||
121 | status = gpio_request(MCFQSPI_CS1, "MCFQSPI_CS1"); | ||
122 | if (status) { | ||
123 | pr_debug("gpio_request for MCFQSPI_CS1 failed\n"); | ||
124 | goto fail1; | ||
125 | } | ||
126 | status = gpio_direction_output(MCFQSPI_CS1, 1); | ||
127 | if (status) { | ||
128 | pr_debug("gpio_direction_output for MCFQSPI_CS1 failed\n"); | ||
129 | goto fail2; | ||
130 | } | ||
131 | |||
132 | status = gpio_request(MCFQSPI_CS2, "MCFQSPI_CS2"); | ||
133 | if (status) { | ||
134 | pr_debug("gpio_request for MCFQSPI_CS2 failed\n"); | ||
135 | goto fail2; | ||
136 | } | ||
137 | status = gpio_direction_output(MCFQSPI_CS2, 1); | ||
138 | if (status) { | ||
139 | pr_debug("gpio_direction_output for MCFQSPI_CS2 failed\n"); | ||
140 | goto fail3; | ||
141 | } | ||
142 | |||
143 | return 0; | ||
144 | |||
145 | fail3: | ||
146 | gpio_free(MCFQSPI_CS2); | ||
147 | fail2: | ||
148 | gpio_free(MCFQSPI_CS1); | ||
149 | fail1: | ||
150 | gpio_free(MCFQSPI_CS0); | ||
151 | fail0: | ||
152 | return status; | ||
153 | } | ||
154 | |||
155 | static void m532x_cs_teardown(struct mcfqspi_cs_control *cs_control) | ||
156 | { | ||
157 | gpio_free(MCFQSPI_CS2); | ||
158 | gpio_free(MCFQSPI_CS1); | ||
159 | gpio_free(MCFQSPI_CS0); | ||
160 | } | ||
161 | |||
162 | static void m532x_cs_select(struct mcfqspi_cs_control *cs_control, | ||
163 | u8 chip_select, bool cs_high) | ||
164 | { | ||
165 | gpio_set_value(MCFQSPI_CS0 + chip_select, cs_high); | ||
166 | } | ||
167 | |||
168 | static void m532x_cs_deselect(struct mcfqspi_cs_control *cs_control, | ||
169 | u8 chip_select, bool cs_high) | ||
170 | { | ||
171 | gpio_set_value(MCFQSPI_CS0 + chip_select, !cs_high); | ||
172 | } | ||
173 | |||
174 | static struct mcfqspi_cs_control m532x_cs_control = { | ||
175 | .setup = m532x_cs_setup, | ||
176 | .teardown = m532x_cs_teardown, | ||
177 | .select = m532x_cs_select, | ||
178 | .deselect = m532x_cs_deselect, | ||
179 | }; | ||
180 | |||
181 | static struct mcfqspi_platform_data m532x_qspi_data = { | ||
182 | .bus_num = 0, | ||
183 | .num_chipselect = 3, | ||
184 | .cs_control = &m532x_cs_control, | ||
185 | }; | ||
186 | |||
187 | static struct platform_device m532x_qspi = { | ||
188 | .name = "mcfqspi", | ||
189 | .id = 0, | ||
190 | .num_resources = ARRAY_SIZE(m532x_qspi_resources), | ||
191 | .resource = m532x_qspi_resources, | ||
192 | .dev.platform_data = &m532x_qspi_data, | ||
193 | }; | ||
194 | |||
195 | static void __init m532x_qspi_init(void) | ||
196 | { | ||
197 | /* setup QSPS pins for QSPI with gpio CS control */ | ||
198 | writew(0x01f0, MCF_GPIO_PAR_QSPI); | ||
199 | } | ||
200 | #endif /* defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) */ | ||
201 | |||
202 | |||
203 | static struct platform_device *m532x_devices[] __initdata = { | ||
204 | &m532x_uart, | ||
205 | &m532x_fec, | ||
206 | #if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) | ||
207 | &m532x_qspi, | ||
208 | #endif | ||
209 | }; | ||
210 | |||
211 | /***************************************************************************/ | ||
212 | |||
213 | static void __init m532x_uart_init_line(int line, int irq) | ||
214 | { | ||
215 | if (line == 0) { | ||
216 | /* GPIO initialization */ | ||
217 | MCF_GPIO_PAR_UART |= 0x000F; | ||
218 | } else if (line == 1) { | ||
219 | /* GPIO initialization */ | ||
220 | MCF_GPIO_PAR_UART |= 0x0FF0; | ||
221 | } | ||
222 | } | ||
223 | |||
224 | static void __init m532x_uarts_init(void) | ||
225 | { | ||
226 | const int nrlines = ARRAY_SIZE(m532x_uart_platform); | ||
227 | int line; | ||
228 | |||
229 | for (line = 0; (line < nrlines); line++) | ||
230 | m532x_uart_init_line(line, m532x_uart_platform[line].irq); | ||
231 | } | ||
232 | /***************************************************************************/ | ||
233 | |||
234 | static void __init m532x_fec_init(void) | ||
235 | { | ||
236 | /* Set multi-function pins to ethernet mode for fec0 */ | ||
237 | MCF_GPIO_PAR_FECI2C |= (MCF_GPIO_PAR_FECI2C_PAR_MDC_EMDC | | ||
238 | MCF_GPIO_PAR_FECI2C_PAR_MDIO_EMDIO); | ||
239 | MCF_GPIO_PAR_FEC = (MCF_GPIO_PAR_FEC_PAR_FEC_7W_FEC | | ||
240 | MCF_GPIO_PAR_FEC_PAR_FEC_MII_FEC); | ||
241 | } | ||
242 | |||
243 | /***************************************************************************/ | ||
244 | |||
245 | static void m532x_cpu_reset(void) | ||
246 | { | ||
247 | local_irq_disable(); | ||
248 | __raw_writeb(MCF_RCR_SWRESET, MCF_RCR); | ||
249 | } | ||
250 | |||
251 | /***************************************************************************/ | ||
252 | |||
253 | void __init config_BSP(char *commandp, int size) | ||
254 | { | ||
255 | #if !defined(CONFIG_BOOTPARAM) | ||
256 | /* Copy command line from FLASH to local buffer... */ | ||
257 | memcpy(commandp, (char *) 0x4000, 4); | ||
258 | if(strncmp(commandp, "kcl ", 4) == 0){ | ||
259 | memcpy(commandp, (char *) 0x4004, size); | ||
260 | commandp[size-1] = 0; | ||
261 | } else { | ||
262 | memset(commandp, 0, size); | ||
263 | } | ||
264 | #endif | ||
265 | |||
266 | #ifdef CONFIG_BDM_DISABLE | ||
267 | /* | ||
268 | * Disable the BDM clocking. This also turns off most of the rest of | ||
269 | * the BDM device. This is good for EMC reasons. This option is not | ||
270 | * incompatible with the memory protection option. | ||
271 | */ | ||
272 | wdebug(MCFDEBUG_CSR, MCFDEBUG_CSR_PSTCLK); | ||
273 | #endif | ||
274 | } | ||
275 | |||
276 | /***************************************************************************/ | ||
277 | |||
278 | static int __init init_BSP(void) | ||
279 | { | ||
280 | m532x_uarts_init(); | ||
281 | m532x_fec_init(); | ||
282 | #if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) | ||
283 | m532x_qspi_init(); | ||
284 | #endif | ||
285 | platform_add_devices(m532x_devices, ARRAY_SIZE(m532x_devices)); | ||
286 | return 0; | ||
287 | } | ||
288 | |||
289 | arch_initcall(init_BSP); | ||
290 | |||
291 | /***************************************************************************/ | ||
292 | /* Board initialization */ | ||
293 | /***************************************************************************/ | ||
294 | /* | ||
295 | * PLL min/max specifications | ||
296 | */ | ||
297 | #define MAX_FVCO 500000 /* KHz */ | ||
298 | #define MAX_FSYS 80000 /* KHz */ | ||
299 | #define MIN_FSYS 58333 /* KHz */ | ||
300 | #define FREF 16000 /* KHz */ | ||
301 | |||
302 | |||
303 | #define MAX_MFD 135 /* Multiplier */ | ||
304 | #define MIN_MFD 88 /* Multiplier */ | ||
305 | #define BUSDIV 6 /* Divider */ | ||
306 | |||
307 | /* | ||
308 | * Low Power Divider specifications | ||
309 | */ | ||
310 | #define MIN_LPD (1 << 0) /* Divider (not encoded) */ | ||
311 | #define MAX_LPD (1 << 15) /* Divider (not encoded) */ | ||
312 | #define DEFAULT_LPD (1 << 1) /* Divider (not encoded) */ | ||
313 | |||
314 | #define SYS_CLK_KHZ 80000 | ||
315 | #define SYSTEM_PERIOD 12.5 | ||
316 | /* | ||
317 | * SDRAM Timing Parameters | ||
318 | */ | ||
319 | #define SDRAM_BL 8 /* # of beats in a burst */ | ||
320 | #define SDRAM_TWR 2 /* in clocks */ | ||
321 | #define SDRAM_CASL 2.5 /* CASL in clocks */ | ||
322 | #define SDRAM_TRCD 2 /* in clocks */ | ||
323 | #define SDRAM_TRP 2 /* in clocks */ | ||
324 | #define SDRAM_TRFC 7 /* in clocks */ | ||
325 | #define SDRAM_TREFI 7800 /* in ns */ | ||
326 | |||
327 | #define EXT_SRAM_ADDRESS (0xC0000000) | ||
328 | #define FLASH_ADDRESS (0x00000000) | ||
329 | #define SDRAM_ADDRESS (0x40000000) | ||
330 | |||
331 | #define NAND_FLASH_ADDRESS (0xD0000000) | ||
332 | |||
333 | int sys_clk_khz = 0; | ||
334 | int sys_clk_mhz = 0; | ||
335 | |||
336 | void wtm_init(void); | ||
337 | void scm_init(void); | ||
338 | void gpio_init(void); | ||
339 | void fbcs_init(void); | ||
340 | void sdramc_init(void); | ||
341 | int clock_pll (int fsys, int flags); | ||
342 | int clock_limp (int); | ||
343 | int clock_exit_limp (void); | ||
344 | int get_sys_clock (void); | ||
345 | |||
346 | asmlinkage void __init sysinit(void) | ||
347 | { | ||
348 | sys_clk_khz = clock_pll(0, 0); | ||
349 | sys_clk_mhz = sys_clk_khz/1000; | ||
350 | |||
351 | wtm_init(); | ||
352 | scm_init(); | ||
353 | gpio_init(); | ||
354 | fbcs_init(); | ||
355 | sdramc_init(); | ||
356 | } | ||
357 | |||
358 | void wtm_init(void) | ||
359 | { | ||
360 | /* Disable watchdog timer */ | ||
361 | MCF_WTM_WCR = 0; | ||
362 | } | ||
363 | |||
364 | #define MCF_SCM_BCR_GBW (0x00000100) | ||
365 | #define MCF_SCM_BCR_GBR (0x00000200) | ||
366 | |||
367 | void scm_init(void) | ||
368 | { | ||
369 | /* All masters are trusted */ | ||
370 | MCF_SCM_MPR = 0x77777777; | ||
371 | |||
372 | /* Allow supervisor/user, read/write, and trusted/untrusted | ||
373 | access to all slaves */ | ||
374 | MCF_SCM_PACRA = 0; | ||
375 | MCF_SCM_PACRB = 0; | ||
376 | MCF_SCM_PACRC = 0; | ||
377 | MCF_SCM_PACRD = 0; | ||
378 | MCF_SCM_PACRE = 0; | ||
379 | MCF_SCM_PACRF = 0; | ||
380 | |||
381 | /* Enable bursts */ | ||
382 | MCF_SCM_BCR = (MCF_SCM_BCR_GBR | MCF_SCM_BCR_GBW); | ||
383 | } | ||
384 | |||
385 | |||
386 | void fbcs_init(void) | ||
387 | { | ||
388 | MCF_GPIO_PAR_CS = 0x0000003E; | ||
389 | |||
390 | /* Latch chip select */ | ||
391 | MCF_FBCS1_CSAR = 0x10080000; | ||
392 | |||
393 | MCF_FBCS1_CSCR = 0x002A3780; | ||
394 | MCF_FBCS1_CSMR = (MCF_FBCS_CSMR_BAM_2M | MCF_FBCS_CSMR_V); | ||
395 | |||
396 | /* Initialize latch to drive signals to inactive states */ | ||
397 | *((u16 *)(0x10080000)) = 0xFFFF; | ||
398 | |||
399 | /* External SRAM */ | ||
400 | MCF_FBCS1_CSAR = EXT_SRAM_ADDRESS; | ||
401 | MCF_FBCS1_CSCR = (MCF_FBCS_CSCR_PS_16 | ||
402 | | MCF_FBCS_CSCR_AA | ||
403 | | MCF_FBCS_CSCR_SBM | ||
404 | | MCF_FBCS_CSCR_WS(1)); | ||
405 | MCF_FBCS1_CSMR = (MCF_FBCS_CSMR_BAM_512K | ||
406 | | MCF_FBCS_CSMR_V); | ||
407 | |||
408 | /* Boot Flash connected to FBCS0 */ | ||
409 | MCF_FBCS0_CSAR = FLASH_ADDRESS; | ||
410 | MCF_FBCS0_CSCR = (MCF_FBCS_CSCR_PS_16 | ||
411 | | MCF_FBCS_CSCR_BEM | ||
412 | | MCF_FBCS_CSCR_AA | ||
413 | | MCF_FBCS_CSCR_SBM | ||
414 | | MCF_FBCS_CSCR_WS(7)); | ||
415 | MCF_FBCS0_CSMR = (MCF_FBCS_CSMR_BAM_32M | ||
416 | | MCF_FBCS_CSMR_V); | ||
417 | } | ||
418 | |||
419 | void sdramc_init(void) | ||
420 | { | ||
421 | /* | ||
422 | * Check to see if the SDRAM has already been initialized | ||
423 | * by a run control tool | ||
424 | */ | ||
425 | if (!(MCF_SDRAMC_SDCR & MCF_SDRAMC_SDCR_REF)) { | ||
426 | /* SDRAM chip select initialization */ | ||
427 | |||
428 | /* Initialize SDRAM chip select */ | ||
429 | MCF_SDRAMC_SDCS0 = (0 | ||
430 | | MCF_SDRAMC_SDCS_BA(SDRAM_ADDRESS) | ||
431 | | MCF_SDRAMC_SDCS_CSSZ(MCF_SDRAMC_SDCS_CSSZ_32MBYTE)); | ||
432 | |||
433 | /* | ||
434 | * Basic configuration and initialization | ||
435 | */ | ||
436 | MCF_SDRAMC_SDCFG1 = (0 | ||
437 | | MCF_SDRAMC_SDCFG1_SRD2RW((int)((SDRAM_CASL + 2) + 0.5 )) | ||
438 | | MCF_SDRAMC_SDCFG1_SWT2RD(SDRAM_TWR + 1) | ||
439 | | MCF_SDRAMC_SDCFG1_RDLAT((int)((SDRAM_CASL*2) + 2)) | ||
440 | | MCF_SDRAMC_SDCFG1_ACT2RW((int)((SDRAM_TRCD ) + 0.5)) | ||
441 | | MCF_SDRAMC_SDCFG1_PRE2ACT((int)((SDRAM_TRP ) + 0.5)) | ||
442 | | MCF_SDRAMC_SDCFG1_REF2ACT((int)(((SDRAM_TRFC) ) + 0.5)) | ||
443 | | MCF_SDRAMC_SDCFG1_WTLAT(3)); | ||
444 | MCF_SDRAMC_SDCFG2 = (0 | ||
445 | | MCF_SDRAMC_SDCFG2_BRD2PRE(SDRAM_BL/2 + 1) | ||
446 | | MCF_SDRAMC_SDCFG2_BWT2RW(SDRAM_BL/2 + SDRAM_TWR) | ||
447 | | MCF_SDRAMC_SDCFG2_BRD2WT((int)((SDRAM_CASL+SDRAM_BL/2-1.0)+0.5)) | ||
448 | | MCF_SDRAMC_SDCFG2_BL(SDRAM_BL-1)); | ||
449 | |||
450 | |||
451 | /* | ||
452 | * Precharge and enable write to SDMR | ||
453 | */ | ||
454 | MCF_SDRAMC_SDCR = (0 | ||
455 | | MCF_SDRAMC_SDCR_MODE_EN | ||
456 | | MCF_SDRAMC_SDCR_CKE | ||
457 | | MCF_SDRAMC_SDCR_DDR | ||
458 | | MCF_SDRAMC_SDCR_MUX(1) | ||
459 | | MCF_SDRAMC_SDCR_RCNT((int)(((SDRAM_TREFI/(SYSTEM_PERIOD*64)) - 1) + 0.5)) | ||
460 | | MCF_SDRAMC_SDCR_PS_16 | ||
461 | | MCF_SDRAMC_SDCR_IPALL); | ||
462 | |||
463 | /* | ||
464 | * Write extended mode register | ||
465 | */ | ||
466 | MCF_SDRAMC_SDMR = (0 | ||
467 | | MCF_SDRAMC_SDMR_BNKAD_LEMR | ||
468 | | MCF_SDRAMC_SDMR_AD(0x0) | ||
469 | | MCF_SDRAMC_SDMR_CMD); | ||
470 | |||
471 | /* | ||
472 | * Write mode register and reset DLL | ||
473 | */ | ||
474 | MCF_SDRAMC_SDMR = (0 | ||
475 | | MCF_SDRAMC_SDMR_BNKAD_LMR | ||
476 | | MCF_SDRAMC_SDMR_AD(0x163) | ||
477 | | MCF_SDRAMC_SDMR_CMD); | ||
478 | |||
479 | /* | ||
480 | * Execute a PALL command | ||
481 | */ | ||
482 | MCF_SDRAMC_SDCR |= MCF_SDRAMC_SDCR_IPALL; | ||
483 | |||
484 | /* | ||
485 | * Perform two REF cycles | ||
486 | */ | ||
487 | MCF_SDRAMC_SDCR |= MCF_SDRAMC_SDCR_IREF; | ||
488 | MCF_SDRAMC_SDCR |= MCF_SDRAMC_SDCR_IREF; | ||
489 | |||
490 | /* | ||
491 | * Write mode register and clear reset DLL | ||
492 | */ | ||
493 | MCF_SDRAMC_SDMR = (0 | ||
494 | | MCF_SDRAMC_SDMR_BNKAD_LMR | ||
495 | | MCF_SDRAMC_SDMR_AD(0x063) | ||
496 | | MCF_SDRAMC_SDMR_CMD); | ||
497 | |||
498 | /* | ||
499 | * Enable auto refresh and lock SDMR | ||
500 | */ | ||
501 | MCF_SDRAMC_SDCR &= ~MCF_SDRAMC_SDCR_MODE_EN; | ||
502 | MCF_SDRAMC_SDCR |= (0 | ||
503 | | MCF_SDRAMC_SDCR_REF | ||
504 | | MCF_SDRAMC_SDCR_DQS_OE(0xC)); | ||
505 | } | ||
506 | } | ||
507 | |||
508 | void gpio_init(void) | ||
509 | { | ||
510 | /* Enable UART0 pins */ | ||
511 | MCF_GPIO_PAR_UART = ( 0 | ||
512 | | MCF_GPIO_PAR_UART_PAR_URXD0 | ||
513 | | MCF_GPIO_PAR_UART_PAR_UTXD0); | ||
514 | |||
515 | /* Initialize TIN3 as a GPIO output to enable the write | ||
516 | half of the latch */ | ||
517 | MCF_GPIO_PAR_TIMER = 0x00; | ||
518 | __raw_writeb(0x08, MCFGPIO_PDDR_TIMER); | ||
519 | __raw_writeb(0x00, MCFGPIO_PCLRR_TIMER); | ||
520 | |||
521 | } | ||
522 | |||
523 | int clock_pll(int fsys, int flags) | ||
524 | { | ||
525 | int fref, temp, fout, mfd; | ||
526 | u32 i; | ||
527 | |||
528 | fref = FREF; | ||
529 | |||
530 | if (fsys == 0) { | ||
531 | /* Return current PLL output */ | ||
532 | mfd = MCF_PLL_PFDR; | ||
533 | |||
534 | return (fref * mfd / (BUSDIV * 4)); | ||
535 | } | ||
536 | |||
537 | /* Check bounds of requested system clock */ | ||
538 | if (fsys > MAX_FSYS) | ||
539 | fsys = MAX_FSYS; | ||
540 | if (fsys < MIN_FSYS) | ||
541 | fsys = MIN_FSYS; | ||
542 | |||
543 | /* Multiplying by 100 when calculating the temp value, | ||
544 | and then dividing by 100 to calculate the mfd allows | ||
545 | for exact values without needing to include floating | ||
546 | point libraries. */ | ||
547 | temp = 100 * fsys / fref; | ||
548 | mfd = 4 * BUSDIV * temp / 100; | ||
549 | |||
550 | /* Determine the output frequency for selected values */ | ||
551 | fout = (fref * mfd / (BUSDIV * 4)); | ||
552 | |||
553 | /* | ||
554 | * Check to see if the SDRAM has already been initialized. | ||
555 | * If it has then the SDRAM needs to be put into self refresh | ||
556 | * mode before reprogramming the PLL. | ||
557 | */ | ||
558 | if (MCF_SDRAMC_SDCR & MCF_SDRAMC_SDCR_REF) | ||
559 | /* Put SDRAM into self refresh mode */ | ||
560 | MCF_SDRAMC_SDCR &= ~MCF_SDRAMC_SDCR_CKE; | ||
561 | |||
562 | /* | ||
563 | * Initialize the PLL to generate the new system clock frequency. | ||
564 | * The device must be put into LIMP mode to reprogram the PLL. | ||
565 | */ | ||
566 | |||
567 | /* Enter LIMP mode */ | ||
568 | clock_limp(DEFAULT_LPD); | ||
569 | |||
570 | /* Reprogram PLL for desired fsys */ | ||
571 | MCF_PLL_PODR = (0 | ||
572 | | MCF_PLL_PODR_CPUDIV(BUSDIV/3) | ||
573 | | MCF_PLL_PODR_BUSDIV(BUSDIV)); | ||
574 | |||
575 | MCF_PLL_PFDR = mfd; | ||
576 | |||
577 | /* Exit LIMP mode */ | ||
578 | clock_exit_limp(); | ||
579 | |||
580 | /* | ||
581 | * Return the SDRAM to normal operation if it is in use. | ||
582 | */ | ||
583 | if (MCF_SDRAMC_SDCR & MCF_SDRAMC_SDCR_REF) | ||
584 | /* Exit self refresh mode */ | ||
585 | MCF_SDRAMC_SDCR |= MCF_SDRAMC_SDCR_CKE; | ||
586 | |||
587 | /* Errata - workaround for SDRAM opeartion after exiting LIMP mode */ | ||
588 | MCF_SDRAMC_LIMP_FIX = MCF_SDRAMC_REFRESH; | ||
589 | |||
590 | /* wait for DQS logic to relock */ | ||
591 | for (i = 0; i < 0x200; i++) | ||
592 | ; | ||
593 | |||
594 | return fout; | ||
595 | } | ||
596 | |||
597 | int clock_limp(int div) | ||
598 | { | ||
599 | u32 temp; | ||
600 | |||
601 | /* Check bounds of divider */ | ||
602 | if (div < MIN_LPD) | ||
603 | div = MIN_LPD; | ||
604 | if (div > MAX_LPD) | ||
605 | div = MAX_LPD; | ||
606 | |||
607 | /* Save of the current value of the SSIDIV so we don't | ||
608 | overwrite the value*/ | ||
609 | temp = (MCF_CCM_CDR & MCF_CCM_CDR_SSIDIV(0xF)); | ||
610 | |||
611 | /* Apply the divider to the system clock */ | ||
612 | MCF_CCM_CDR = ( 0 | ||
613 | | MCF_CCM_CDR_LPDIV(div) | ||
614 | | MCF_CCM_CDR_SSIDIV(temp)); | ||
615 | |||
616 | MCF_CCM_MISCCR |= MCF_CCM_MISCCR_LIMP; | ||
617 | |||
618 | return (FREF/(3*(1 << div))); | ||
619 | } | ||
620 | |||
621 | int clock_exit_limp(void) | ||
622 | { | ||
623 | int fout; | ||
624 | |||
625 | /* Exit LIMP mode */ | ||
626 | MCF_CCM_MISCCR = (MCF_CCM_MISCCR & ~ MCF_CCM_MISCCR_LIMP); | ||
627 | |||
628 | /* Wait for PLL to lock */ | ||
629 | while (!(MCF_CCM_MISCCR & MCF_CCM_MISCCR_PLL_LOCK)) | ||
630 | ; | ||
631 | |||
632 | fout = get_sys_clock(); | ||
633 | |||
634 | return fout; | ||
635 | } | ||
636 | |||
637 | int get_sys_clock(void) | ||
638 | { | ||
639 | int divider; | ||
640 | |||
641 | /* Test to see if device is in LIMP mode */ | ||
642 | if (MCF_CCM_MISCCR & MCF_CCM_MISCCR_LIMP) { | ||
643 | divider = MCF_CCM_CDR & MCF_CCM_CDR_LPDIV(0xF); | ||
644 | return (FREF/(2 << divider)); | ||
645 | } | ||
646 | else | ||
647 | return ((FREF * MCF_PLL_PFDR) / (BUSDIV * 4)); | ||
648 | } | ||
diff --git a/arch/m68k/platform/532x/gpio.c b/arch/m68k/platform/532x/gpio.c new file mode 100644 index 000000000000..212a85deac90 --- /dev/null +++ b/arch/m68k/platform/532x/gpio.c | |||
@@ -0,0 +1,337 @@ | |||
1 | /* | ||
2 | * Coldfire generic GPIO support | ||
3 | * | ||
4 | * (C) Copyright 2009, Steven King <sfking@fdwdc.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 as published by | ||
8 | * the Free Software Foundation; version 2 of the License. | ||
9 | * | ||
10 | * This program is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU General Public License for more details. | ||
14 | */ | ||
15 | |||
16 | #include <linux/kernel.h> | ||
17 | #include <linux/init.h> | ||
18 | |||
19 | #include <asm/coldfire.h> | ||
20 | #include <asm/mcfsim.h> | ||
21 | #include <asm/mcfgpio.h> | ||
22 | |||
23 | static struct mcf_gpio_chip mcf_gpio_chips[] = { | ||
24 | { | ||
25 | .gpio_chip = { | ||
26 | .label = "PIRQ", | ||
27 | .request = mcf_gpio_request, | ||
28 | .free = mcf_gpio_free, | ||
29 | .direction_input = mcf_gpio_direction_input, | ||
30 | .direction_output = mcf_gpio_direction_output, | ||
31 | .get = mcf_gpio_get_value, | ||
32 | .set = mcf_gpio_set_value, | ||
33 | .ngpio = 8, | ||
34 | }, | ||
35 | .pddr = (void __iomem *) MCFEPORT_EPDDR, | ||
36 | .podr = (void __iomem *) MCFEPORT_EPDR, | ||
37 | .ppdr = (void __iomem *) MCFEPORT_EPPDR, | ||
38 | }, | ||
39 | { | ||
40 | .gpio_chip = { | ||
41 | .label = "FECH", | ||
42 | .request = mcf_gpio_request, | ||
43 | .free = mcf_gpio_free, | ||
44 | .direction_input = mcf_gpio_direction_input, | ||
45 | .direction_output = mcf_gpio_direction_output, | ||
46 | .get = mcf_gpio_get_value, | ||
47 | .set = mcf_gpio_set_value_fast, | ||
48 | .base = 8, | ||
49 | .ngpio = 8, | ||
50 | }, | ||
51 | .pddr = (void __iomem *) MCFGPIO_PDDR_FECH, | ||
52 | .podr = (void __iomem *) MCFGPIO_PODR_FECH, | ||
53 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_FECH, | ||
54 | .setr = (void __iomem *) MCFGPIO_PPDSDR_FECH, | ||
55 | .clrr = (void __iomem *) MCFGPIO_PCLRR_FECH, | ||
56 | }, | ||
57 | { | ||
58 | .gpio_chip = { | ||
59 | .label = "FECL", | ||
60 | .request = mcf_gpio_request, | ||
61 | .free = mcf_gpio_free, | ||
62 | .direction_input = mcf_gpio_direction_input, | ||
63 | .direction_output = mcf_gpio_direction_output, | ||
64 | .get = mcf_gpio_get_value, | ||
65 | .set = mcf_gpio_set_value_fast, | ||
66 | .base = 16, | ||
67 | .ngpio = 8, | ||
68 | }, | ||
69 | .pddr = (void __iomem *) MCFGPIO_PDDR_FECL, | ||
70 | .podr = (void __iomem *) MCFGPIO_PODR_FECL, | ||
71 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_FECL, | ||
72 | .setr = (void __iomem *) MCFGPIO_PPDSDR_FECL, | ||
73 | .clrr = (void __iomem *) MCFGPIO_PCLRR_FECL, | ||
74 | }, | ||
75 | { | ||
76 | .gpio_chip = { | ||
77 | .label = "SSI", | ||
78 | .request = mcf_gpio_request, | ||
79 | .free = mcf_gpio_free, | ||
80 | .direction_input = mcf_gpio_direction_input, | ||
81 | .direction_output = mcf_gpio_direction_output, | ||
82 | .get = mcf_gpio_get_value, | ||
83 | .set = mcf_gpio_set_value_fast, | ||
84 | .base = 24, | ||
85 | .ngpio = 5, | ||
86 | }, | ||
87 | .pddr = (void __iomem *) MCFGPIO_PDDR_SSI, | ||
88 | .podr = (void __iomem *) MCFGPIO_PODR_SSI, | ||
89 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_SSI, | ||
90 | .setr = (void __iomem *) MCFGPIO_PPDSDR_SSI, | ||
91 | .clrr = (void __iomem *) MCFGPIO_PCLRR_SSI, | ||
92 | }, | ||
93 | { | ||
94 | .gpio_chip = { | ||
95 | .label = "BUSCTL", | ||
96 | .request = mcf_gpio_request, | ||
97 | .free = mcf_gpio_free, | ||
98 | .direction_input = mcf_gpio_direction_input, | ||
99 | .direction_output = mcf_gpio_direction_output, | ||
100 | .get = mcf_gpio_get_value, | ||
101 | .set = mcf_gpio_set_value_fast, | ||
102 | .base = 32, | ||
103 | .ngpio = 4, | ||
104 | }, | ||
105 | .pddr = (void __iomem *) MCFGPIO_PDDR_BUSCTL, | ||
106 | .podr = (void __iomem *) MCFGPIO_PODR_BUSCTL, | ||
107 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_BUSCTL, | ||
108 | .setr = (void __iomem *) MCFGPIO_PPDSDR_BUSCTL, | ||
109 | .clrr = (void __iomem *) MCFGPIO_PCLRR_BUSCTL, | ||
110 | }, | ||
111 | { | ||
112 | .gpio_chip = { | ||
113 | .label = "BE", | ||
114 | .request = mcf_gpio_request, | ||
115 | .free = mcf_gpio_free, | ||
116 | .direction_input = mcf_gpio_direction_input, | ||
117 | .direction_output = mcf_gpio_direction_output, | ||
118 | .get = mcf_gpio_get_value, | ||
119 | .set = mcf_gpio_set_value_fast, | ||
120 | .base = 40, | ||
121 | .ngpio = 4, | ||
122 | }, | ||
123 | .pddr = (void __iomem *) MCFGPIO_PDDR_BE, | ||
124 | .podr = (void __iomem *) MCFGPIO_PODR_BE, | ||
125 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_BE, | ||
126 | .setr = (void __iomem *) MCFGPIO_PPDSDR_BE, | ||
127 | .clrr = (void __iomem *) MCFGPIO_PCLRR_BE, | ||
128 | }, | ||
129 | { | ||
130 | .gpio_chip = { | ||
131 | .label = "CS", | ||
132 | .request = mcf_gpio_request, | ||
133 | .free = mcf_gpio_free, | ||
134 | .direction_input = mcf_gpio_direction_input, | ||
135 | .direction_output = mcf_gpio_direction_output, | ||
136 | .get = mcf_gpio_get_value, | ||
137 | .set = mcf_gpio_set_value_fast, | ||
138 | .base = 49, | ||
139 | .ngpio = 5, | ||
140 | }, | ||
141 | .pddr = (void __iomem *) MCFGPIO_PDDR_CS, | ||
142 | .podr = (void __iomem *) MCFGPIO_PODR_CS, | ||
143 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_CS, | ||
144 | .setr = (void __iomem *) MCFGPIO_PPDSDR_CS, | ||
145 | .clrr = (void __iomem *) MCFGPIO_PCLRR_CS, | ||
146 | }, | ||
147 | { | ||
148 | .gpio_chip = { | ||
149 | .label = "PWM", | ||
150 | .request = mcf_gpio_request, | ||
151 | .free = mcf_gpio_free, | ||
152 | .direction_input = mcf_gpio_direction_input, | ||
153 | .direction_output = mcf_gpio_direction_output, | ||
154 | .get = mcf_gpio_get_value, | ||
155 | .set = mcf_gpio_set_value_fast, | ||
156 | .base = 58, | ||
157 | .ngpio = 4, | ||
158 | }, | ||
159 | .pddr = (void __iomem *) MCFGPIO_PDDR_PWM, | ||
160 | .podr = (void __iomem *) MCFGPIO_PODR_PWM, | ||
161 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_PWM, | ||
162 | .setr = (void __iomem *) MCFGPIO_PPDSDR_PWM, | ||
163 | .clrr = (void __iomem *) MCFGPIO_PCLRR_PWM, | ||
164 | }, | ||
165 | { | ||
166 | .gpio_chip = { | ||
167 | .label = "FECI2C", | ||
168 | .request = mcf_gpio_request, | ||
169 | .free = mcf_gpio_free, | ||
170 | .direction_input = mcf_gpio_direction_input, | ||
171 | .direction_output = mcf_gpio_direction_output, | ||
172 | .get = mcf_gpio_get_value, | ||
173 | .set = mcf_gpio_set_value_fast, | ||
174 | .base = 64, | ||
175 | .ngpio = 4, | ||
176 | }, | ||
177 | .pddr = (void __iomem *) MCFGPIO_PDDR_FECI2C, | ||
178 | .podr = (void __iomem *) MCFGPIO_PODR_FECI2C, | ||
179 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_FECI2C, | ||
180 | .setr = (void __iomem *) MCFGPIO_PPDSDR_FECI2C, | ||
181 | .clrr = (void __iomem *) MCFGPIO_PCLRR_FECI2C, | ||
182 | }, | ||
183 | { | ||
184 | .gpio_chip = { | ||
185 | .label = "UART", | ||
186 | .request = mcf_gpio_request, | ||
187 | .free = mcf_gpio_free, | ||
188 | .direction_input = mcf_gpio_direction_input, | ||
189 | .direction_output = mcf_gpio_direction_output, | ||
190 | .get = mcf_gpio_get_value, | ||
191 | .set = mcf_gpio_set_value_fast, | ||
192 | .base = 72, | ||
193 | .ngpio = 8, | ||
194 | }, | ||
195 | .pddr = (void __iomem *) MCFGPIO_PDDR_UART, | ||
196 | .podr = (void __iomem *) MCFGPIO_PODR_UART, | ||
197 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_UART, | ||
198 | .setr = (void __iomem *) MCFGPIO_PPDSDR_UART, | ||
199 | .clrr = (void __iomem *) MCFGPIO_PCLRR_UART, | ||
200 | }, | ||
201 | { | ||
202 | .gpio_chip = { | ||
203 | .label = "QSPI", | ||
204 | .request = mcf_gpio_request, | ||
205 | .free = mcf_gpio_free, | ||
206 | .direction_input = mcf_gpio_direction_input, | ||
207 | .direction_output = mcf_gpio_direction_output, | ||
208 | .get = mcf_gpio_get_value, | ||
209 | .set = mcf_gpio_set_value_fast, | ||
210 | .base = 80, | ||
211 | .ngpio = 6, | ||
212 | }, | ||
213 | .pddr = (void __iomem *) MCFGPIO_PDDR_QSPI, | ||
214 | .podr = (void __iomem *) MCFGPIO_PODR_QSPI, | ||
215 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_QSPI, | ||
216 | .setr = (void __iomem *) MCFGPIO_PPDSDR_QSPI, | ||
217 | .clrr = (void __iomem *) MCFGPIO_PCLRR_QSPI, | ||
218 | }, | ||
219 | { | ||
220 | .gpio_chip = { | ||
221 | .label = "TIMER", | ||
222 | .request = mcf_gpio_request, | ||
223 | .free = mcf_gpio_free, | ||
224 | .direction_input = mcf_gpio_direction_input, | ||
225 | .direction_output = mcf_gpio_direction_output, | ||
226 | .get = mcf_gpio_get_value, | ||
227 | .set = mcf_gpio_set_value_fast, | ||
228 | .base = 88, | ||
229 | .ngpio = 4, | ||
230 | }, | ||
231 | .pddr = (void __iomem *) MCFGPIO_PDDR_TIMER, | ||
232 | .podr = (void __iomem *) MCFGPIO_PODR_TIMER, | ||
233 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_TIMER, | ||
234 | .setr = (void __iomem *) MCFGPIO_PPDSDR_TIMER, | ||
235 | .clrr = (void __iomem *) MCFGPIO_PCLRR_TIMER, | ||
236 | }, | ||
237 | { | ||
238 | .gpio_chip = { | ||
239 | .label = "LCDDATAH", | ||
240 | .request = mcf_gpio_request, | ||
241 | .free = mcf_gpio_free, | ||
242 | .direction_input = mcf_gpio_direction_input, | ||
243 | .direction_output = mcf_gpio_direction_output, | ||
244 | .get = mcf_gpio_get_value, | ||
245 | .set = mcf_gpio_set_value_fast, | ||
246 | .base = 96, | ||
247 | .ngpio = 2, | ||
248 | }, | ||
249 | .pddr = (void __iomem *) MCFGPIO_PDDR_LCDDATAH, | ||
250 | .podr = (void __iomem *) MCFGPIO_PODR_LCDDATAH, | ||
251 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_LCDDATAH, | ||
252 | .setr = (void __iomem *) MCFGPIO_PPDSDR_LCDDATAH, | ||
253 | .clrr = (void __iomem *) MCFGPIO_PCLRR_LCDDATAH, | ||
254 | }, | ||
255 | { | ||
256 | .gpio_chip = { | ||
257 | .label = "LCDDATAM", | ||
258 | .request = mcf_gpio_request, | ||
259 | .free = mcf_gpio_free, | ||
260 | .direction_input = mcf_gpio_direction_input, | ||
261 | .direction_output = mcf_gpio_direction_output, | ||
262 | .get = mcf_gpio_get_value, | ||
263 | .set = mcf_gpio_set_value_fast, | ||
264 | .base = 104, | ||
265 | .ngpio = 8, | ||
266 | }, | ||
267 | .pddr = (void __iomem *) MCFGPIO_PDDR_LCDDATAM, | ||
268 | .podr = (void __iomem *) MCFGPIO_PODR_LCDDATAM, | ||
269 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_LCDDATAM, | ||
270 | .setr = (void __iomem *) MCFGPIO_PPDSDR_LCDDATAM, | ||
271 | .clrr = (void __iomem *) MCFGPIO_PCLRR_LCDDATAM, | ||
272 | }, | ||
273 | { | ||
274 | .gpio_chip = { | ||
275 | .label = "LCDDATAL", | ||
276 | .request = mcf_gpio_request, | ||
277 | .free = mcf_gpio_free, | ||
278 | .direction_input = mcf_gpio_direction_input, | ||
279 | .direction_output = mcf_gpio_direction_output, | ||
280 | .get = mcf_gpio_get_value, | ||
281 | .set = mcf_gpio_set_value_fast, | ||
282 | .base = 112, | ||
283 | .ngpio = 8, | ||
284 | }, | ||
285 | .pddr = (void __iomem *) MCFGPIO_PDDR_LCDDATAL, | ||
286 | .podr = (void __iomem *) MCFGPIO_PODR_LCDDATAL, | ||
287 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_LCDDATAL, | ||
288 | .setr = (void __iomem *) MCFGPIO_PPDSDR_LCDDATAL, | ||
289 | .clrr = (void __iomem *) MCFGPIO_PCLRR_LCDDATAL, | ||
290 | }, | ||
291 | { | ||
292 | .gpio_chip = { | ||
293 | .label = "LCDCTLH", | ||
294 | .request = mcf_gpio_request, | ||
295 | .free = mcf_gpio_free, | ||
296 | .direction_input = mcf_gpio_direction_input, | ||
297 | .direction_output = mcf_gpio_direction_output, | ||
298 | .get = mcf_gpio_get_value, | ||
299 | .set = mcf_gpio_set_value_fast, | ||
300 | .base = 120, | ||
301 | .ngpio = 1, | ||
302 | }, | ||
303 | .pddr = (void __iomem *) MCFGPIO_PDDR_LCDCTLH, | ||
304 | .podr = (void __iomem *) MCFGPIO_PODR_LCDCTLH, | ||
305 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_LCDCTLH, | ||
306 | .setr = (void __iomem *) MCFGPIO_PPDSDR_LCDCTLH, | ||
307 | .clrr = (void __iomem *) MCFGPIO_PCLRR_LCDCTLH, | ||
308 | }, | ||
309 | { | ||
310 | .gpio_chip = { | ||
311 | .label = "LCDCTLL", | ||
312 | .request = mcf_gpio_request, | ||
313 | .free = mcf_gpio_free, | ||
314 | .direction_input = mcf_gpio_direction_input, | ||
315 | .direction_output = mcf_gpio_direction_output, | ||
316 | .get = mcf_gpio_get_value, | ||
317 | .set = mcf_gpio_set_value_fast, | ||
318 | .base = 128, | ||
319 | .ngpio = 8, | ||
320 | }, | ||
321 | .pddr = (void __iomem *) MCFGPIO_PDDR_LCDCTLL, | ||
322 | .podr = (void __iomem *) MCFGPIO_PODR_LCDCTLL, | ||
323 | .ppdr = (void __iomem *) MCFGPIO_PPDSDR_LCDCTLL, | ||
324 | .setr = (void __iomem *) MCFGPIO_PPDSDR_LCDCTLL, | ||
325 | .clrr = (void __iomem *) MCFGPIO_PCLRR_LCDCTLL, | ||
326 | }, | ||
327 | }; | ||
328 | |||
329 | static int __init mcf_gpio_init(void) | ||
330 | { | ||
331 | unsigned i = 0; | ||
332 | while (i < ARRAY_SIZE(mcf_gpio_chips)) | ||
333 | (void)gpiochip_add((struct gpio_chip *)&mcf_gpio_chips[i++]); | ||
334 | return 0; | ||
335 | } | ||
336 | |||
337 | core_initcall(mcf_gpio_init); | ||
diff --git a/arch/m68k/platform/5407/Makefile b/arch/m68k/platform/5407/Makefile new file mode 100644 index 000000000000..e83fe148eddc --- /dev/null +++ b/arch/m68k/platform/5407/Makefile | |||
@@ -0,0 +1,18 @@ | |||
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 | # ccflags-y := -DTRAP_DBG_INTERRUPT | ||
12 | # asflags-y := -DTRAP_DBG_INTERRUPT | ||
13 | # | ||
14 | |||
15 | asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1 | ||
16 | |||
17 | obj-y := config.o gpio.o | ||
18 | |||
diff --git a/arch/m68k/platform/5407/config.c b/arch/m68k/platform/5407/config.c new file mode 100644 index 000000000000..70ea789a400c --- /dev/null +++ b/arch/m68k/platform/5407/config.c | |||
@@ -0,0 +1,122 @@ | |||
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/kernel.h> | ||
13 | #include <linux/param.h> | ||
14 | #include <linux/init.h> | ||
15 | #include <linux/io.h> | ||
16 | #include <asm/machdep.h> | ||
17 | #include <asm/coldfire.h> | ||
18 | #include <asm/mcfsim.h> | ||
19 | #include <asm/mcfuart.h> | ||
20 | |||
21 | /***************************************************************************/ | ||
22 | |||
23 | static struct mcf_platform_uart m5407_uart_platform[] = { | ||
24 | { | ||
25 | .mapbase = MCF_MBAR + MCFUART_BASE1, | ||
26 | .irq = 73, | ||
27 | }, | ||
28 | { | ||
29 | .mapbase = MCF_MBAR + MCFUART_BASE2, | ||
30 | .irq = 74, | ||
31 | }, | ||
32 | { }, | ||
33 | }; | ||
34 | |||
35 | static struct platform_device m5407_uart = { | ||
36 | .name = "mcfuart", | ||
37 | .id = 0, | ||
38 | .dev.platform_data = m5407_uart_platform, | ||
39 | }; | ||
40 | |||
41 | static struct platform_device *m5407_devices[] __initdata = { | ||
42 | &m5407_uart, | ||
43 | }; | ||
44 | |||
45 | /***************************************************************************/ | ||
46 | |||
47 | static void __init m5407_uart_init_line(int line, int irq) | ||
48 | { | ||
49 | if (line == 0) { | ||
50 | writeb(MCFSIM_ICR_LEVEL6 | MCFSIM_ICR_PRI1, MCF_MBAR + MCFSIM_UART1ICR); | ||
51 | writeb(irq, MCF_MBAR + MCFUART_BASE1 + MCFUART_UIVR); | ||
52 | mcf_mapirq2imr(irq, MCFINTC_UART0); | ||
53 | } else if (line == 1) { | ||
54 | writeb(MCFSIM_ICR_LEVEL6 | MCFSIM_ICR_PRI2, MCF_MBAR + MCFSIM_UART2ICR); | ||
55 | writeb(irq, MCF_MBAR + MCFUART_BASE2 + MCFUART_UIVR); | ||
56 | mcf_mapirq2imr(irq, MCFINTC_UART1); | ||
57 | } | ||
58 | } | ||
59 | |||
60 | static void __init m5407_uarts_init(void) | ||
61 | { | ||
62 | const int nrlines = ARRAY_SIZE(m5407_uart_platform); | ||
63 | int line; | ||
64 | |||
65 | for (line = 0; (line < nrlines); line++) | ||
66 | m5407_uart_init_line(line, m5407_uart_platform[line].irq); | ||
67 | } | ||
68 | |||
69 | /***************************************************************************/ | ||
70 | |||
71 | static void __init m5407_timers_init(void) | ||
72 | { | ||
73 | /* Timer1 is always used as system timer */ | ||
74 | writeb(MCFSIM_ICR_AUTOVEC | MCFSIM_ICR_LEVEL6 | MCFSIM_ICR_PRI3, | ||
75 | MCF_MBAR + MCFSIM_TIMER1ICR); | ||
76 | mcf_mapirq2imr(MCF_IRQ_TIMER, MCFINTC_TIMER1); | ||
77 | |||
78 | #ifdef CONFIG_HIGHPROFILE | ||
79 | /* Timer2 is to be used as a high speed profile timer */ | ||
80 | writeb(MCFSIM_ICR_AUTOVEC | MCFSIM_ICR_LEVEL7 | MCFSIM_ICR_PRI3, | ||
81 | MCF_MBAR + MCFSIM_TIMER2ICR); | ||
82 | mcf_mapirq2imr(MCF_IRQ_PROFILER, MCFINTC_TIMER2); | ||
83 | #endif | ||
84 | } | ||
85 | |||
86 | /***************************************************************************/ | ||
87 | |||
88 | void m5407_cpu_reset(void) | ||
89 | { | ||
90 | local_irq_disable(); | ||
91 | /* set watchdog to soft reset, and enabled */ | ||
92 | __raw_writeb(0xc0, MCF_MBAR + MCFSIM_SYPCR); | ||
93 | for (;;) | ||
94 | /* wait for watchdog to timeout */; | ||
95 | } | ||
96 | |||
97 | /***************************************************************************/ | ||
98 | |||
99 | void __init config_BSP(char *commandp, int size) | ||
100 | { | ||
101 | mach_reset = m5407_cpu_reset; | ||
102 | m5407_timers_init(); | ||
103 | m5407_uarts_init(); | ||
104 | |||
105 | /* Only support the external interrupts on their primary level */ | ||
106 | mcf_mapirq2imr(25, MCFINTC_EINT1); | ||
107 | mcf_mapirq2imr(27, MCFINTC_EINT3); | ||
108 | mcf_mapirq2imr(29, MCFINTC_EINT5); | ||
109 | mcf_mapirq2imr(31, MCFINTC_EINT7); | ||
110 | } | ||
111 | |||
112 | /***************************************************************************/ | ||
113 | |||
114 | static int __init init_BSP(void) | ||
115 | { | ||
116 | platform_add_devices(m5407_devices, ARRAY_SIZE(m5407_devices)); | ||
117 | return 0; | ||
118 | } | ||
119 | |||
120 | arch_initcall(init_BSP); | ||
121 | |||
122 | /***************************************************************************/ | ||
diff --git a/arch/m68k/platform/5407/gpio.c b/arch/m68k/platform/5407/gpio.c new file mode 100644 index 000000000000..5850612b4a38 --- /dev/null +++ b/arch/m68k/platform/5407/gpio.c | |||
@@ -0,0 +1,49 @@ | |||
1 | /* | ||
2 | * Coldfire generic GPIO support | ||
3 | * | ||
4 | * (C) Copyright 2009, Steven King <sfking@fdwdc.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 as published by | ||
8 | * the Free Software Foundation; version 2 of the License. | ||
9 | * | ||
10 | * This program is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU General Public License for more details. | ||
14 | */ | ||
15 | |||
16 | #include <linux/kernel.h> | ||
17 | #include <linux/init.h> | ||
18 | |||
19 | #include <asm/coldfire.h> | ||
20 | #include <asm/mcfsim.h> | ||
21 | #include <asm/mcfgpio.h> | ||
22 | |||
23 | static struct mcf_gpio_chip mcf_gpio_chips[] = { | ||
24 | { | ||
25 | .gpio_chip = { | ||
26 | .label = "PP", | ||
27 | .request = mcf_gpio_request, | ||
28 | .free = mcf_gpio_free, | ||
29 | .direction_input = mcf_gpio_direction_input, | ||
30 | .direction_output = mcf_gpio_direction_output, | ||
31 | .get = mcf_gpio_get_value, | ||
32 | .set = mcf_gpio_set_value, | ||
33 | .ngpio = 16, | ||
34 | }, | ||
35 | .pddr = (void __iomem *) MCFSIM_PADDR, | ||
36 | .podr = (void __iomem *) MCFSIM_PADAT, | ||
37 | .ppdr = (void __iomem *) MCFSIM_PADAT, | ||
38 | }, | ||
39 | }; | ||
40 | |||
41 | static int __init mcf_gpio_init(void) | ||
42 | { | ||
43 | unsigned i = 0; | ||
44 | while (i < ARRAY_SIZE(mcf_gpio_chips)) | ||
45 | (void)gpiochip_add((struct gpio_chip *)&mcf_gpio_chips[i++]); | ||
46 | return 0; | ||
47 | } | ||
48 | |||
49 | core_initcall(mcf_gpio_init); | ||
diff --git a/arch/m68k/platform/54xx/Makefile b/arch/m68k/platform/54xx/Makefile new file mode 100644 index 000000000000..6cfd090ec3cd --- /dev/null +++ b/arch/m68k/platform/54xx/Makefile | |||
@@ -0,0 +1,19 @@ | |||
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 | asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1 | ||
16 | |||
17 | obj-y := config.o | ||
18 | obj-$(CONFIG_FIREBEE) += firebee.o | ||
19 | |||
diff --git a/arch/m68k/platform/54xx/config.c b/arch/m68k/platform/54xx/config.c new file mode 100644 index 000000000000..78130984db95 --- /dev/null +++ b/arch/m68k/platform/54xx/config.c | |||
@@ -0,0 +1,115 @@ | |||
1 | /***************************************************************************/ | ||
2 | |||
3 | /* | ||
4 | * linux/arch/m68knommu/platform/54xx/config.c | ||
5 | * | ||
6 | * Copyright (C) 2010, Philippe De Muyter <phdm@macqel.be> | ||
7 | */ | ||
8 | |||
9 | /***************************************************************************/ | ||
10 | |||
11 | #include <linux/kernel.h> | ||
12 | #include <linux/param.h> | ||
13 | #include <linux/init.h> | ||
14 | #include <linux/interrupt.h> | ||
15 | #include <linux/io.h> | ||
16 | #include <asm/machdep.h> | ||
17 | #include <asm/coldfire.h> | ||
18 | #include <asm/m54xxsim.h> | ||
19 | #include <asm/mcfuart.h> | ||
20 | #include <asm/m54xxgpt.h> | ||
21 | |||
22 | /***************************************************************************/ | ||
23 | |||
24 | static struct mcf_platform_uart m54xx_uart_platform[] = { | ||
25 | { | ||
26 | .mapbase = MCF_MBAR + MCFUART_BASE1, | ||
27 | .irq = 64 + 35, | ||
28 | }, | ||
29 | { | ||
30 | .mapbase = MCF_MBAR + MCFUART_BASE2, | ||
31 | .irq = 64 + 34, | ||
32 | }, | ||
33 | { | ||
34 | .mapbase = MCF_MBAR + MCFUART_BASE3, | ||
35 | .irq = 64 + 33, | ||
36 | }, | ||
37 | { | ||
38 | .mapbase = MCF_MBAR + MCFUART_BASE4, | ||
39 | .irq = 64 + 32, | ||
40 | }, | ||
41 | }; | ||
42 | |||
43 | static struct platform_device m54xx_uart = { | ||
44 | .name = "mcfuart", | ||
45 | .id = 0, | ||
46 | .dev.platform_data = m54xx_uart_platform, | ||
47 | }; | ||
48 | |||
49 | static struct platform_device *m54xx_devices[] __initdata = { | ||
50 | &m54xx_uart, | ||
51 | }; | ||
52 | |||
53 | |||
54 | /***************************************************************************/ | ||
55 | |||
56 | static void __init m54xx_uart_init_line(int line, int irq) | ||
57 | { | ||
58 | int rts_cts; | ||
59 | |||
60 | /* enable io pins */ | ||
61 | switch (line) { | ||
62 | case 0: | ||
63 | rts_cts = 0; break; | ||
64 | case 1: | ||
65 | rts_cts = MCF_PAR_PSC_RTS_RTS; break; | ||
66 | case 2: | ||
67 | rts_cts = MCF_PAR_PSC_RTS_RTS | MCF_PAR_PSC_CTS_CTS; break; | ||
68 | case 3: | ||
69 | rts_cts = 0; break; | ||
70 | } | ||
71 | __raw_writeb(MCF_PAR_PSC_TXD | rts_cts | MCF_PAR_PSC_RXD, | ||
72 | MCF_MBAR + MCF_PAR_PSC(line)); | ||
73 | } | ||
74 | |||
75 | static void __init m54xx_uarts_init(void) | ||
76 | { | ||
77 | const int nrlines = ARRAY_SIZE(m54xx_uart_platform); | ||
78 | int line; | ||
79 | |||
80 | for (line = 0; (line < nrlines); line++) | ||
81 | m54xx_uart_init_line(line, m54xx_uart_platform[line].irq); | ||
82 | } | ||
83 | |||
84 | /***************************************************************************/ | ||
85 | |||
86 | static void mcf54xx_reset(void) | ||
87 | { | ||
88 | /* disable interrupts and enable the watchdog */ | ||
89 | asm("movew #0x2700, %sr\n"); | ||
90 | __raw_writel(0, MCF_MBAR + MCF_GPT_GMS0); | ||
91 | __raw_writel(MCF_GPT_GCIR_CNT(1), MCF_MBAR + MCF_GPT_GCIR0); | ||
92 | __raw_writel(MCF_GPT_GMS_WDEN | MCF_GPT_GMS_CE | MCF_GPT_GMS_TMS(4), | ||
93 | MCF_MBAR + MCF_GPT_GMS0); | ||
94 | } | ||
95 | |||
96 | /***************************************************************************/ | ||
97 | |||
98 | void __init config_BSP(char *commandp, int size) | ||
99 | { | ||
100 | mach_reset = mcf54xx_reset; | ||
101 | m54xx_uarts_init(); | ||
102 | } | ||
103 | |||
104 | /***************************************************************************/ | ||
105 | |||
106 | static int __init init_BSP(void) | ||
107 | { | ||
108 | |||
109 | platform_add_devices(m54xx_devices, ARRAY_SIZE(m54xx_devices)); | ||
110 | return 0; | ||
111 | } | ||
112 | |||
113 | arch_initcall(init_BSP); | ||
114 | |||
115 | /***************************************************************************/ | ||
diff --git a/arch/m68k/platform/54xx/firebee.c b/arch/m68k/platform/54xx/firebee.c new file mode 100644 index 000000000000..46d50534f981 --- /dev/null +++ b/arch/m68k/platform/54xx/firebee.c | |||
@@ -0,0 +1,86 @@ | |||
1 | /***************************************************************************/ | ||
2 | |||
3 | /* | ||
4 | * firebee.c -- extra startup code support for the FireBee boards | ||
5 | * | ||
6 | * Copyright (C) 2011, Greg Ungerer (gerg@snapgear.com) | ||
7 | */ | ||
8 | |||
9 | /***************************************************************************/ | ||
10 | |||
11 | #include <linux/kernel.h> | ||
12 | #include <linux/init.h> | ||
13 | #include <linux/io.h> | ||
14 | #include <linux/platform_device.h> | ||
15 | #include <linux/mtd/mtd.h> | ||
16 | #include <linux/mtd/partitions.h> | ||
17 | #include <linux/mtd/physmap.h> | ||
18 | #include <asm/coldfire.h> | ||
19 | #include <asm/mcfsim.h> | ||
20 | |||
21 | /***************************************************************************/ | ||
22 | |||
23 | /* | ||
24 | * 8MB of NOR flash fitted to the FireBee board. | ||
25 | */ | ||
26 | #define FLASH_PHYS_ADDR 0xe0000000 /* Physical address of flash */ | ||
27 | #define FLASH_PHYS_SIZE 0x00800000 /* Size of flash */ | ||
28 | |||
29 | #define PART_BOOT_START 0x00000000 /* Start at bottom of flash */ | ||
30 | #define PART_BOOT_SIZE 0x00040000 /* 256k in size */ | ||
31 | #define PART_IMAGE_START 0x00040000 /* Start after boot loader */ | ||
32 | #define PART_IMAGE_SIZE 0x006c0000 /* Most of flash */ | ||
33 | #define PART_FPGA_START 0x00700000 /* Start at offset 7MB */ | ||
34 | #define PART_FPGA_SIZE 0x00100000 /* 1MB in size */ | ||
35 | |||
36 | static struct mtd_partition firebee_flash_parts[] = { | ||
37 | { | ||
38 | .name = "dBUG", | ||
39 | .offset = PART_BOOT_START, | ||
40 | .size = PART_BOOT_SIZE, | ||
41 | }, | ||
42 | { | ||
43 | .name = "FPGA", | ||
44 | .offset = PART_FPGA_START, | ||
45 | .size = PART_FPGA_SIZE, | ||
46 | }, | ||
47 | { | ||
48 | .name = "image", | ||
49 | .offset = PART_IMAGE_START, | ||
50 | .size = PART_IMAGE_SIZE, | ||
51 | }, | ||
52 | }; | ||
53 | |||
54 | static struct physmap_flash_data firebee_flash_data = { | ||
55 | .width = 2, | ||
56 | .nr_parts = ARRAY_SIZE(firebee_flash_parts), | ||
57 | .parts = firebee_flash_parts, | ||
58 | }; | ||
59 | |||
60 | static struct resource firebee_flash_resource = { | ||
61 | .start = FLASH_PHYS_ADDR, | ||
62 | .end = FLASH_PHYS_ADDR + FLASH_PHYS_SIZE, | ||
63 | .flags = IORESOURCE_MEM, | ||
64 | }; | ||
65 | |||
66 | static struct platform_device firebee_flash = { | ||
67 | .name = "physmap-flash", | ||
68 | .id = 0, | ||
69 | .dev = { | ||
70 | .platform_data = &firebee_flash_data, | ||
71 | }, | ||
72 | .num_resources = 1, | ||
73 | .resource = &firebee_flash_resource, | ||
74 | }; | ||
75 | |||
76 | /***************************************************************************/ | ||
77 | |||
78 | static int __init init_firebee(void) | ||
79 | { | ||
80 | platform_device_register(&firebee_flash); | ||
81 | return 0; | ||
82 | } | ||
83 | |||
84 | arch_initcall(init_firebee); | ||
85 | |||
86 | /***************************************************************************/ | ||
diff --git a/arch/m68k/platform/68328/Makefile b/arch/m68k/platform/68328/Makefile new file mode 100644 index 000000000000..5e5435552d56 --- /dev/null +++ b/arch/m68k/platform/68328/Makefile | |||
@@ -0,0 +1,22 @@ | |||
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 | obj-$(CONFIG_ROM) += romvec.o | ||
12 | |||
13 | extra-y := head.o | ||
14 | extra-$(CONFIG_M68328) += bootlogo.rh head.o | ||
15 | |||
16 | $(obj)/bootlogo.rh: $(src)/bootlogo.h | ||
17 | perl $(src)/bootlogo.pl < $(src)/bootlogo.h > $(obj)/bootlogo.rh | ||
18 | |||
19 | $(obj)/head.o: $(obj)/$(head-y) | ||
20 | ln -sf $(head-y) $(obj)/head.o | ||
21 | |||
22 | clean-files := $(obj)/bootlogo.rh $(obj)/head.o $(head-y) | ||
diff --git a/arch/m68k/platform/68328/bootlogo.h b/arch/m68k/platform/68328/bootlogo.h new file mode 100644 index 000000000000..67bc2c17386e --- /dev/null +++ b/arch/m68k/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/m68k/platform/68328/bootlogo.pl b/arch/m68k/platform/68328/bootlogo.pl new file mode 100644 index 000000000000..b04ae3f50da5 --- /dev/null +++ b/arch/m68k/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/m68k/platform/68328/config.c b/arch/m68k/platform/68328/config.c new file mode 100644 index 000000000000..a7bd21deb00f --- /dev/null +++ b/arch/m68k/platform/68328/config.c | |||
@@ -0,0 +1,52 @@ | |||
1 | /***************************************************************************/ | ||
2 | |||
3 | /* | ||
4 | * linux/arch/m68knommu/platform/68328/config.c | ||
5 | * | ||
6 | * Copyright (C) 1993 Hamish Macdonald | ||
7 | * Copyright (C) 1999 D. Jeff Dionne | ||
8 | * | ||
9 | * This file is subject to the terms and conditions of the GNU General Public | ||
10 | * License. See the file COPYING in the main directory of this archive | ||
11 | * for more details. | ||
12 | * | ||
13 | * VZ Support/Fixes Evan Stawnyczy <e@lineo.ca> | ||
14 | */ | ||
15 | |||
16 | /***************************************************************************/ | ||
17 | |||
18 | #include <linux/types.h> | ||
19 | #include <linux/kernel.h> | ||
20 | #include <asm/system.h> | ||
21 | #include <asm/machdep.h> | ||
22 | #include <asm/MC68328.h> | ||
23 | |||
24 | /***************************************************************************/ | ||
25 | |||
26 | void m68328_timer_gettod(int *year, int *mon, int *day, int *hour, int *min, int *sec); | ||
27 | |||
28 | /***************************************************************************/ | ||
29 | |||
30 | void m68328_reset (void) | ||
31 | { | ||
32 | local_irq_disable(); | ||
33 | asm volatile ("moveal #0x10c00000, %a0;\n\t" | ||
34 | "moveb #0, 0xFFFFF300;\n\t" | ||
35 | "moveal 0(%a0), %sp;\n\t" | ||
36 | "moveal 4(%a0), %a0;\n\t" | ||
37 | "jmp (%a0);"); | ||
38 | } | ||
39 | |||
40 | /***************************************************************************/ | ||
41 | |||
42 | void config_BSP(char *command, int len) | ||
43 | { | ||
44 | printk(KERN_INFO "\n68328 support D. Jeff Dionne <jeff@uclinux.org>\n"); | ||
45 | printk(KERN_INFO "68328 support Kenneth Albanowski <kjahds@kjshds.com>\n"); | ||
46 | printk(KERN_INFO "68328/Pilot support Bernhard Kuhn <kuhn@lpr.e-technik.tu-muenchen.de>\n"); | ||
47 | |||
48 | mach_gettod = m68328_timer_gettod; | ||
49 | mach_reset = m68328_reset; | ||
50 | } | ||
51 | |||
52 | /***************************************************************************/ | ||
diff --git a/arch/m68k/platform/68328/entry.S b/arch/m68k/platform/68328/entry.S new file mode 100644 index 000000000000..676960cf022a --- /dev/null +++ b/arch/m68k/platform/68328/entry.S | |||
@@ -0,0 +1,263 @@ | |||
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/sys.h> | ||
14 | #include <linux/linkage.h> | ||
15 | #include <asm/thread_info.h> | ||
16 | #include <asm/unistd.h> | ||
17 | #include <asm/errno.h> | ||
18 | #include <asm/setup.h> | ||
19 | #include <asm/segment.h> | ||
20 | #include <asm/traps.h> | ||
21 | #include <asm/asm-offsets.h> | ||
22 | #include <asm/entry.h> | ||
23 | |||
24 | .text | ||
25 | |||
26 | .globl system_call | ||
27 | .globl resume | ||
28 | .globl ret_from_exception | ||
29 | .globl ret_from_signal | ||
30 | .globl sys_call_table | ||
31 | .globl ret_from_interrupt | ||
32 | .globl bad_interrupt | ||
33 | .globl inthandler1 | ||
34 | .globl inthandler2 | ||
35 | .globl inthandler3 | ||
36 | .globl inthandler4 | ||
37 | .globl inthandler5 | ||
38 | .globl inthandler6 | ||
39 | .globl inthandler7 | ||
40 | |||
41 | badsys: | ||
42 | movel #-ENOSYS,%sp@(PT_OFF_D0) | ||
43 | jra ret_from_exception | ||
44 | |||
45 | do_trace: | ||
46 | movel #-ENOSYS,%sp@(PT_OFF_D0) /* needed for strace*/ | ||
47 | subql #4,%sp | ||
48 | SAVE_SWITCH_STACK | ||
49 | jbsr syscall_trace_enter | ||
50 | RESTORE_SWITCH_STACK | ||
51 | addql #4,%sp | ||
52 | movel %sp@(PT_OFF_ORIG_D0),%d1 | ||
53 | movel #-ENOSYS,%d0 | ||
54 | cmpl #NR_syscalls,%d1 | ||
55 | jcc 1f | ||
56 | lsl #2,%d1 | ||
57 | lea sys_call_table, %a0 | ||
58 | jbsr %a0@(%d1) | ||
59 | |||
60 | 1: movel %d0,%sp@(PT_OFF_D0) /* save the return value */ | ||
61 | subql #4,%sp /* dummy return address */ | ||
62 | SAVE_SWITCH_STACK | ||
63 | jbsr syscall_trace_leave | ||
64 | |||
65 | ret_from_signal: | ||
66 | RESTORE_SWITCH_STACK | ||
67 | addql #4,%sp | ||
68 | jra ret_from_exception | ||
69 | |||
70 | ENTRY(system_call) | ||
71 | SAVE_ALL | ||
72 | |||
73 | /* save top of frame*/ | ||
74 | pea %sp@ | ||
75 | jbsr set_esp0 | ||
76 | addql #4,%sp | ||
77 | |||
78 | movel %sp@(PT_OFF_ORIG_D0),%d0 | ||
79 | |||
80 | movel %sp,%d1 /* get thread_info pointer */ | ||
81 | andl #-THREAD_SIZE,%d1 | ||
82 | movel %d1,%a2 | ||
83 | btst #(TIF_SYSCALL_TRACE%8),%a2@(TI_FLAGS+(31-TIF_SYSCALL_TRACE)/8) | ||
84 | jne do_trace | ||
85 | cmpl #NR_syscalls,%d0 | ||
86 | jcc badsys | ||
87 | lsl #2,%d0 | ||
88 | lea sys_call_table,%a0 | ||
89 | movel %a0@(%d0), %a0 | ||
90 | jbsr %a0@ | ||
91 | movel %d0,%sp@(PT_OFF_D0) /* save the return value*/ | ||
92 | |||
93 | ret_from_exception: | ||
94 | btst #5,%sp@(PT_OFF_SR) /* check if returning to kernel*/ | ||
95 | jeq Luser_return /* if so, skip resched, signals*/ | ||
96 | |||
97 | Lkernel_return: | ||
98 | RESTORE_ALL | ||
99 | |||
100 | Luser_return: | ||
101 | /* only allow interrupts when we are really the last one on the*/ | ||
102 | /* kernel stack, otherwise stack overflow can occur during*/ | ||
103 | /* heavy interrupt load*/ | ||
104 | andw #ALLOWINT,%sr | ||
105 | |||
106 | movel %sp,%d1 /* get thread_info pointer */ | ||
107 | andl #-THREAD_SIZE,%d1 | ||
108 | movel %d1,%a2 | ||
109 | 1: | ||
110 | move %a2@(TI_FLAGS),%d1 /* thread_info->flags */ | ||
111 | jne Lwork_to_do | ||
112 | RESTORE_ALL | ||
113 | |||
114 | Lwork_to_do: | ||
115 | movel %a2@(TI_FLAGS),%d1 /* thread_info->flags */ | ||
116 | btst #TIF_NEED_RESCHED,%d1 | ||
117 | jne reschedule | ||
118 | |||
119 | Lsignal_return: | ||
120 | subql #4,%sp /* dummy return address*/ | ||
121 | SAVE_SWITCH_STACK | ||
122 | pea %sp@(SWITCH_STACK_SIZE) | ||
123 | bsrw do_signal | ||
124 | addql #4,%sp | ||
125 | RESTORE_SWITCH_STACK | ||
126 | addql #4,%sp | ||
127 | jra 1b | ||
128 | |||
129 | /* | ||
130 | * This is the main interrupt handler, responsible for calling process_int() | ||
131 | */ | ||
132 | inthandler1: | ||
133 | SAVE_ALL | ||
134 | movew %sp@(PT_OFF_FORMATVEC), %d0 | ||
135 | and #0x3ff, %d0 | ||
136 | |||
137 | movel %sp,%sp@- | ||
138 | movel #65,%sp@- /* put vector # on stack*/ | ||
139 | jbsr process_int /* process the IRQ*/ | ||
140 | 3: addql #8,%sp /* pop parameters off stack*/ | ||
141 | bra ret_from_interrupt | ||
142 | |||
143 | inthandler2: | ||
144 | SAVE_ALL | ||
145 | movew %sp@(PT_OFF_FORMATVEC), %d0 | ||
146 | and #0x3ff, %d0 | ||
147 | |||
148 | movel %sp,%sp@- | ||
149 | movel #66,%sp@- /* put vector # on stack*/ | ||
150 | jbsr process_int /* process the IRQ*/ | ||
151 | 3: addql #8,%sp /* pop parameters off stack*/ | ||
152 | bra ret_from_interrupt | ||
153 | |||
154 | inthandler3: | ||
155 | SAVE_ALL | ||
156 | movew %sp@(PT_OFF_FORMATVEC), %d0 | ||
157 | and #0x3ff, %d0 | ||
158 | |||
159 | movel %sp,%sp@- | ||
160 | movel #67,%sp@- /* put vector # on stack*/ | ||
161 | jbsr process_int /* process the IRQ*/ | ||
162 | 3: addql #8,%sp /* pop parameters off stack*/ | ||
163 | bra ret_from_interrupt | ||
164 | |||
165 | inthandler4: | ||
166 | SAVE_ALL | ||
167 | movew %sp@(PT_OFF_FORMATVEC), %d0 | ||
168 | and #0x3ff, %d0 | ||
169 | |||
170 | movel %sp,%sp@- | ||
171 | movel #68,%sp@- /* put vector # on stack*/ | ||
172 | jbsr process_int /* process the IRQ*/ | ||
173 | 3: addql #8,%sp /* pop parameters off stack*/ | ||
174 | bra ret_from_interrupt | ||
175 | |||
176 | inthandler5: | ||
177 | SAVE_ALL | ||
178 | movew %sp@(PT_OFF_FORMATVEC), %d0 | ||
179 | and #0x3ff, %d0 | ||
180 | |||
181 | movel %sp,%sp@- | ||
182 | movel #69,%sp@- /* put vector # on stack*/ | ||
183 | jbsr process_int /* process the IRQ*/ | ||
184 | 3: addql #8,%sp /* pop parameters off stack*/ | ||
185 | bra ret_from_interrupt | ||
186 | |||
187 | inthandler6: | ||
188 | SAVE_ALL | ||
189 | movew %sp@(PT_OFF_FORMATVEC), %d0 | ||
190 | and #0x3ff, %d0 | ||
191 | |||
192 | movel %sp,%sp@- | ||
193 | movel #70,%sp@- /* put vector # on stack*/ | ||
194 | jbsr process_int /* process the IRQ*/ | ||
195 | 3: addql #8,%sp /* pop parameters off stack*/ | ||
196 | bra ret_from_interrupt | ||
197 | |||
198 | inthandler7: | ||
199 | SAVE_ALL | ||
200 | movew %sp@(PT_OFF_FORMATVEC), %d0 | ||
201 | and #0x3ff, %d0 | ||
202 | |||
203 | movel %sp,%sp@- | ||
204 | movel #71,%sp@- /* put vector # on stack*/ | ||
205 | jbsr process_int /* process the IRQ*/ | ||
206 | 3: addql #8,%sp /* pop parameters off stack*/ | ||
207 | bra ret_from_interrupt | ||
208 | |||
209 | inthandler: | ||
210 | SAVE_ALL | ||
211 | movew %sp@(PT_OFF_FORMATVEC), %d0 | ||
212 | and #0x3ff, %d0 | ||
213 | |||
214 | movel %sp,%sp@- | ||
215 | movel %d0,%sp@- /* put vector # on stack*/ | ||
216 | jbsr process_int /* process the IRQ*/ | ||
217 | 3: addql #8,%sp /* pop parameters off stack*/ | ||
218 | bra ret_from_interrupt | ||
219 | |||
220 | ret_from_interrupt: | ||
221 | jeq 1f | ||
222 | 2: | ||
223 | RESTORE_ALL | ||
224 | 1: | ||
225 | moveb %sp@(PT_OFF_SR), %d0 | ||
226 | and #7, %d0 | ||
227 | jhi 2b | ||
228 | |||
229 | /* check if we need to do software interrupts */ | ||
230 | jeq ret_from_exception | ||
231 | |||
232 | pea ret_from_exception | ||
233 | jra do_softirq | ||
234 | |||
235 | |||
236 | /* | ||
237 | * Handler for uninitialized and spurious interrupts. | ||
238 | */ | ||
239 | ENTRY(bad_interrupt) | ||
240 | addql #1,num_spurious | ||
241 | rte | ||
242 | |||
243 | /* | ||
244 | * Beware - when entering resume, prev (the current task) is | ||
245 | * in a0, next (the new task) is in a1,so don't change these | ||
246 | * registers until their contents are no longer needed. | ||
247 | */ | ||
248 | ENTRY(resume) | ||
249 | movel %a0,%d1 /* save prev thread in d1 */ | ||
250 | movew %sr,%a0@(TASK_THREAD+THREAD_SR) /* save sr */ | ||
251 | movel %usp,%a2 /* save usp */ | ||
252 | movel %a2,%a0@(TASK_THREAD+THREAD_USP) | ||
253 | |||
254 | SAVE_SWITCH_STACK | ||
255 | movel %sp,%a0@(TASK_THREAD+THREAD_KSP) /* save kernel stack */ | ||
256 | movel %a1@(TASK_THREAD+THREAD_KSP),%sp /* restore new thread stack */ | ||
257 | RESTORE_SWITCH_STACK | ||
258 | |||
259 | movel %a1@(TASK_THREAD+THREAD_USP),%a0 /* restore user stack */ | ||
260 | movel %a0,%usp | ||
261 | movew %a1@(TASK_THREAD+THREAD_SR),%sr /* restore thread status reg */ | ||
262 | rts | ||
263 | |||
diff --git a/arch/m68k/platform/68328/head-de2.S b/arch/m68k/platform/68328/head-de2.S new file mode 100644 index 000000000000..f632fdcb93e9 --- /dev/null +++ b/arch/m68k/platform/68328/head-de2.S | |||
@@ -0,0 +1,128 @@ | |||
1 | |||
2 | #define MEM_END 0x00800000 /* Memory size 8Mb */ | ||
3 | |||
4 | #undef CRT_DEBUG | ||
5 | |||
6 | .macro PUTC CHAR | ||
7 | #ifdef CRT_DEBUG | ||
8 | moveq #\CHAR, %d7 | ||
9 | jsr putc | ||
10 | #endif | ||
11 | .endm | ||
12 | |||
13 | .global _start | ||
14 | .global _rambase | ||
15 | .global _ramvec | ||
16 | .global _ramstart | ||
17 | .global _ramend | ||
18 | |||
19 | .data | ||
20 | |||
21 | /* | ||
22 | * Set up the usable of RAM stuff | ||
23 | */ | ||
24 | _rambase: | ||
25 | .long 0 | ||
26 | _ramvec: | ||
27 | .long 0 | ||
28 | _ramstart: | ||
29 | .long 0 | ||
30 | _ramend: | ||
31 | .long 0 | ||
32 | |||
33 | .text | ||
34 | |||
35 | _start: | ||
36 | |||
37 | /* | ||
38 | * Setup initial stack | ||
39 | */ | ||
40 | /* disable all interrupts */ | ||
41 | movew #0x2700, %sr | ||
42 | movel #-1, 0xfffff304 | ||
43 | movel #MEM_END-4, %sp | ||
44 | |||
45 | PUTC '\r' | ||
46 | PUTC '\n' | ||
47 | PUTC 'A' | ||
48 | PUTC 'B' | ||
49 | |||
50 | /* | ||
51 | * Determine end of RAM | ||
52 | */ | ||
53 | |||
54 | movel #MEM_END, %a0 | ||
55 | movel %a0, _ramend | ||
56 | |||
57 | PUTC 'C' | ||
58 | |||
59 | /* | ||
60 | * Move ROM filesystem above bss :-) | ||
61 | */ | ||
62 | |||
63 | moveal #_sbss, %a0 /* romfs at the start of bss */ | ||
64 | moveal #_ebss, %a1 /* Set up destination */ | ||
65 | movel %a0, %a2 /* Copy of bss start */ | ||
66 | |||
67 | movel 8(%a0), %d1 /* Get size of ROMFS */ | ||
68 | addql #8, %d1 /* Allow for rounding */ | ||
69 | andl #0xfffffffc, %d1 /* Whole words */ | ||
70 | |||
71 | addl %d1, %a0 /* Copy from end */ | ||
72 | addl %d1, %a1 /* Copy from end */ | ||
73 | movel %a1, _ramstart /* Set start of ram */ | ||
74 | |||
75 | 1: | ||
76 | movel -(%a0), %d0 /* Copy dword */ | ||
77 | movel %d0, -(%a1) | ||
78 | cmpl %a0, %a2 /* Check if at end */ | ||
79 | bne 1b | ||
80 | |||
81 | PUTC 'D' | ||
82 | |||
83 | /* | ||
84 | * Initialize BSS segment to 0 | ||
85 | */ | ||
86 | |||
87 | lea _sbss, %a0 | ||
88 | lea _ebss, %a1 | ||
89 | |||
90 | /* Copy 0 to %a0 until %a0 == %a1 */ | ||
91 | 2: cmpal %a0, %a1 | ||
92 | beq 1f | ||
93 | clrl (%a0)+ | ||
94 | bra 2b | ||
95 | 1: | ||
96 | |||
97 | PUTC 'E' | ||
98 | |||
99 | /* | ||
100 | * Load the current task pointer and stack | ||
101 | */ | ||
102 | |||
103 | lea init_thread_union, %a0 | ||
104 | lea 0x2000(%a0), %sp | ||
105 | |||
106 | PUTC 'F' | ||
107 | PUTC '\r' | ||
108 | PUTC '\n' | ||
109 | |||
110 | /* | ||
111 | * Go | ||
112 | */ | ||
113 | |||
114 | jmp start_kernel | ||
115 | |||
116 | /* | ||
117 | * Local functions | ||
118 | */ | ||
119 | |||
120 | #ifdef CRT_DEBUG | ||
121 | putc: | ||
122 | moveb %d7, 0xfffff907 | ||
123 | 1: | ||
124 | movew 0xfffff906, %d7 | ||
125 | andw #0x2000, %d7 | ||
126 | beq 1b | ||
127 | rts | ||
128 | #endif | ||
diff --git a/arch/m68k/platform/68328/head-pilot.S b/arch/m68k/platform/68328/head-pilot.S new file mode 100644 index 000000000000..aecff532b343 --- /dev/null +++ b/arch/m68k/platform/68328/head-pilot.S | |||
@@ -0,0 +1,222 @@ | |||
1 | /* | ||
2 | * linux/arch/m68knommu/platform/68328/head-pilot.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 | |||
19 | .global _stext | ||
20 | .global _start | ||
21 | |||
22 | .global _rambase | ||
23 | .global _ramvec | ||
24 | .global _ramstart | ||
25 | .global _ramend | ||
26 | |||
27 | .global penguin_bits | ||
28 | |||
29 | #ifdef CONFIG_PILOT | ||
30 | |||
31 | #define IMR 0xFFFFF304 | ||
32 | |||
33 | .data | ||
34 | .align 16 | ||
35 | |||
36 | penguin_bits: | ||
37 | #include "bootlogo.rh" | ||
38 | |||
39 | #endif | ||
40 | |||
41 | /*****************************************************************************/ | ||
42 | |||
43 | .data | ||
44 | |||
45 | /* | ||
46 | * Set up the usable of RAM stuff. Size of RAM is determined then | ||
47 | * an initial stack set up at the end. | ||
48 | */ | ||
49 | .align 4 | ||
50 | _ramvec: | ||
51 | .long 0 | ||
52 | _rambase: | ||
53 | .long 0 | ||
54 | _ramstart: | ||
55 | .long 0 | ||
56 | _ramend: | ||
57 | .long 0 | ||
58 | |||
59 | .text | ||
60 | |||
61 | _start: | ||
62 | _stext: | ||
63 | |||
64 | |||
65 | #ifdef CONFIG_M68328 | ||
66 | |||
67 | #ifdef CONFIG_PILOT | ||
68 | .byte 0x4e, 0xfa, 0x00, 0x0a /* Jmp +X bytes */ | ||
69 | .byte 'b', 'o', 'o', 't' | ||
70 | .word 10000 | ||
71 | |||
72 | nop | ||
73 | #endif | ||
74 | |||
75 | moveq #0, %d0 | ||
76 | movew %d0, 0xfffff618 /* Watchdog off */ | ||
77 | movel #0x00011f07, 0xfffff114 /* CS A1 Mask */ | ||
78 | |||
79 | movew #0x0800, 0xfffff906 /* Ignore CTS */ | ||
80 | movew #0x010b, 0xfffff902 /* BAUD to 9600 */ | ||
81 | |||
82 | movew #0x2410, 0xfffff200 /* PLLCR */ | ||
83 | movew #0x123, 0xfffff202 /* PLLFSR */ | ||
84 | |||
85 | #ifdef CONFIG_PILOT | ||
86 | moveb #0, 0xfffffA27 /* LCKCON */ | ||
87 | movel #_start, 0xfffffA00 /* LSSA */ | ||
88 | moveb #0xa, 0xfffffA05 /* LVPW */ | ||
89 | movew #0x9f, 0xFFFFFa08 /* LXMAX */ | ||
90 | movew #0x9f, 0xFFFFFa0a /* LYMAX */ | ||
91 | moveb #9, 0xfffffa29 /* LBAR */ | ||
92 | moveb #0, 0xfffffa25 /* LPXCD */ | ||
93 | moveb #0x04, 0xFFFFFa20 /* LPICF */ | ||
94 | moveb #0x58, 0xfffffA27 /* LCKCON */ | ||
95 | moveb #0x85, 0xfffff429 /* PFDATA */ | ||
96 | moveb #0xd8, 0xfffffA27 /* LCKCON */ | ||
97 | moveb #0xc5, 0xfffff429 /* PFDATA */ | ||
98 | moveb #0xd5, 0xfffff429 /* PFDATA */ | ||
99 | |||
100 | moveal #0x00100000, %a3 | ||
101 | moveal #0x100ffc00, %a4 | ||
102 | #endif /* CONFIG_PILOT */ | ||
103 | |||
104 | #endif /* CONFIG_M68328 */ | ||
105 | |||
106 | movew #0x2700, %sr | ||
107 | lea %a4@(-4), %sp | ||
108 | |||
109 | DBG_PUTC('\r') | ||
110 | DBG_PUTC('\n') | ||
111 | DBG_PUTC('A') | ||
112 | |||
113 | moveq #0,%d0 | ||
114 | movew #16384, %d0 /* PLL settle wait loop */ | ||
115 | L0: | ||
116 | subw #1, %d0 | ||
117 | bne L0 | ||
118 | |||
119 | DBG_PUTC('B') | ||
120 | |||
121 | /* Copy command line from beginning of RAM (+16) to end of bss */ | ||
122 | movel #CONFIG_VECTORBASE, %d7 | ||
123 | addl #16, %d7 | ||
124 | moveal %d7, %a0 | ||
125 | moveal #_ebss, %a1 | ||
126 | lea %a1@(512), %a2 | ||
127 | |||
128 | DBG_PUTC('C') | ||
129 | |||
130 | /* Copy %a0 to %a1 until %a1 == %a2 */ | ||
131 | L2: | ||
132 | movel %a0@+, %d0 | ||
133 | movel %d0, %a1@+ | ||
134 | cmpal %a1, %a2 | ||
135 | bhi L2 | ||
136 | |||
137 | /* Copy data+init segment from ROM to RAM */ | ||
138 | moveal #_etext, %a0 | ||
139 | moveal #_sdata, %a1 | ||
140 | moveal #__init_end, %a2 | ||
141 | |||
142 | DBG_PUTC('D') | ||
143 | |||
144 | /* Copy %a0 to %a1 until %a1 == %a2 */ | ||
145 | LD1: | ||
146 | movel %a0@+, %d0 | ||
147 | movel %d0, %a1@+ | ||
148 | cmpal %a1, %a2 | ||
149 | bhi LD1 | ||
150 | |||
151 | DBG_PUTC('E') | ||
152 | |||
153 | moveal #_sbss, %a0 | ||
154 | moveal #_ebss, %a1 | ||
155 | |||
156 | /* Copy 0 to %a0 until %a0 == %a1 */ | ||
157 | L1: | ||
158 | movel #0, %a0@+ | ||
159 | cmpal %a0, %a1 | ||
160 | bhi L1 | ||
161 | |||
162 | DBG_PUTC('F') | ||
163 | |||
164 | /* Copy command line from end of bss to command line */ | ||
165 | moveal #_ebss, %a0 | ||
166 | moveal #command_line, %a1 | ||
167 | lea %a1@(512), %a2 | ||
168 | |||
169 | DBG_PUTC('G') | ||
170 | |||
171 | /* Copy %a0 to %a1 until %a1 == %a2 */ | ||
172 | L3: | ||
173 | movel %a0@+, %d0 | ||
174 | movel %d0, %a1@+ | ||
175 | cmpal %a1, %a2 | ||
176 | bhi L3 | ||
177 | |||
178 | movel #_sdata, %d0 | ||
179 | movel %d0, _rambase | ||
180 | movel #_ebss, %d0 | ||
181 | movel %d0, _ramstart | ||
182 | |||
183 | movel %a4, %d0 | ||
184 | subl #4096, %d0 /* Reserve 4K of stack */ | ||
185 | moveq #79, %d7 | ||
186 | movel %d0, _ramend | ||
187 | |||
188 | movel %a3, %d0 | ||
189 | movel %d0, rom_length | ||
190 | |||
191 | pea 0 | ||
192 | pea env | ||
193 | pea %sp@(4) | ||
194 | pea 0 | ||
195 | |||
196 | DBG_PUTC('H') | ||
197 | |||
198 | #ifdef CONFIG_PILOT | ||
199 | movel #penguin_bits, 0xFFFFFA00 | ||
200 | moveb #10, 0xFFFFFA05 | ||
201 | movew #160, 0xFFFFFA08 | ||
202 | movew #160, 0xFFFFFA0A | ||
203 | #endif /* CONFIG_PILOT */ | ||
204 | |||
205 | DBG_PUTC('I') | ||
206 | |||
207 | lea init_thread_union, %a0 | ||
208 | lea 0x2000(%a0), %sp | ||
209 | |||
210 | DBG_PUTC('J') | ||
211 | DBG_PUTC('\r') | ||
212 | DBG_PUTC('\n') | ||
213 | |||
214 | jsr start_kernel | ||
215 | _exit: | ||
216 | |||
217 | jmp _exit | ||
218 | |||
219 | |||
220 | .data | ||
221 | env: | ||
222 | .long 0 | ||
diff --git a/arch/m68k/platform/68328/head-ram.S b/arch/m68k/platform/68328/head-ram.S new file mode 100644 index 000000000000..7f1aeeacb219 --- /dev/null +++ b/arch/m68k/platform/68328/head-ram.S | |||
@@ -0,0 +1,141 @@ | |||
1 | |||
2 | .global __main | ||
3 | .global __rom_start | ||
4 | |||
5 | .global _rambase | ||
6 | .global _ramstart | ||
7 | |||
8 | .global splash_bits | ||
9 | .global _start | ||
10 | .global _stext | ||
11 | .global _edata | ||
12 | |||
13 | #define DEBUG | ||
14 | #define ROM_OFFSET 0x10C00000 | ||
15 | #define STACK_GAURD 0x10 | ||
16 | |||
17 | .text | ||
18 | |||
19 | _start: | ||
20 | _stext: | ||
21 | movew #0x2700, %sr /* Exceptions off! */ | ||
22 | |||
23 | #if 0 | ||
24 | /* Init chip registers. uCsimm specific */ | ||
25 | moveb #0x00, 0xfffffb0b /* Watchdog off */ | ||
26 | moveb #0x10, 0xfffff000 /* SCR */ | ||
27 | |||
28 | movew #0x2400, 0xfffff200 /* PLLCR */ | ||
29 | movew #0x0123, 0xfffff202 /* PLLFSR */ | ||
30 | |||
31 | moveb #0x00, 0xfffff40b /* enable chip select */ | ||
32 | moveb #0x00, 0xfffff423 /* enable /DWE */ | ||
33 | moveb #0x08, 0xfffffd0d /* disable hardmap */ | ||
34 | moveb #0x07, 0xfffffd0e /* level 7 interrupt clear */ | ||
35 | |||
36 | movew #0x8600, 0xfffff100 /* FLASH at 0x10c00000 */ | ||
37 | movew #0x018b, 0xfffff110 /* 2Meg, enable, 0ws */ | ||
38 | |||
39 | movew #0x8f00, 0xfffffc00 /* DRAM configuration */ | ||
40 | movew #0x9667, 0xfffffc02 /* DRAM control */ | ||
41 | movew #0x0000, 0xfffff106 /* DRAM at 0x00000000 */ | ||
42 | movew #0x068f, 0xfffff116 /* 8Meg, enable, 0ws */ | ||
43 | |||
44 | moveb #0x40, 0xfffff300 /* IVR */ | ||
45 | movel #0x007FFFFF, %d0 /* IMR */ | ||
46 | movel %d0, 0xfffff304 | ||
47 | |||
48 | moveb 0xfffff42b, %d0 | ||
49 | andb #0xe0, %d0 | ||
50 | moveb %d0, 0xfffff42b | ||
51 | |||
52 | moveb #0x08, 0xfffff907 /* Ignore CTS */ | ||
53 | movew #0x010b, 0xfffff902 /* BAUD to 9600 */ | ||
54 | movew #0xe100, 0xfffff900 /* enable */ | ||
55 | #endif | ||
56 | |||
57 | movew #16384, %d0 /* PLL settle wait loop */ | ||
58 | L0: | ||
59 | subw #1, %d0 | ||
60 | bne L0 | ||
61 | #ifdef DEBUG | ||
62 | moveq #70, %d7 /* 'F' */ | ||
63 | moveb %d7,0xfffff907 /* No absolute addresses */ | ||
64 | pclp1: | ||
65 | movew 0xfffff906, %d7 | ||
66 | andw #0x2000, %d7 | ||
67 | beq pclp1 | ||
68 | #endif /* DEBUG */ | ||
69 | |||
70 | #ifdef DEBUG | ||
71 | moveq #82, %d7 /* 'R' */ | ||
72 | moveb %d7,0xfffff907 /* No absolute addresses */ | ||
73 | pclp3: | ||
74 | movew 0xfffff906, %d7 | ||
75 | andw #0x2000, %d7 | ||
76 | beq pclp3 | ||
77 | #endif /* DEBUG */ | ||
78 | moveal #0x007ffff0, %ssp | ||
79 | moveal #_sbss, %a0 | ||
80 | moveal #_ebss, %a1 | ||
81 | |||
82 | /* Copy 0 to %a0 until %a0 >= %a1 */ | ||
83 | L1: | ||
84 | movel #0, %a0@+ | ||
85 | cmpal %a0, %a1 | ||
86 | bhi L1 | ||
87 | |||
88 | #ifdef DEBUG | ||
89 | moveq #67, %d7 /* 'C' */ | ||
90 | jsr putc | ||
91 | #endif /* DEBUG */ | ||
92 | |||
93 | pea 0 | ||
94 | pea env | ||
95 | pea %sp@(4) | ||
96 | pea 0 | ||
97 | |||
98 | #ifdef DEBUG | ||
99 | moveq #70, %d7 /* 'F' */ | ||
100 | jsr putc | ||
101 | #endif /* DEBUG */ | ||
102 | |||
103 | lp: | ||
104 | jsr start_kernel | ||
105 | jmp lp | ||
106 | _exit: | ||
107 | |||
108 | jmp _exit | ||
109 | |||
110 | __main: | ||
111 | /* nothing */ | ||
112 | rts | ||
113 | |||
114 | #ifdef DEBUG | ||
115 | putc: | ||
116 | moveb %d7,0xfffff907 | ||
117 | pclp: | ||
118 | movew 0xfffff906, %d7 | ||
119 | andw #0x2000, %d7 | ||
120 | beq pclp | ||
121 | rts | ||
122 | #endif /* DEBUG */ | ||
123 | |||
124 | .data | ||
125 | |||
126 | /* | ||
127 | * Set up the usable of RAM stuff. Size of RAM is determined then | ||
128 | * an initial stack set up at the end. | ||
129 | */ | ||
130 | .align 4 | ||
131 | _ramvec: | ||
132 | .long 0 | ||
133 | _rambase: | ||
134 | .long 0 | ||
135 | _ramstart: | ||
136 | .long 0 | ||
137 | _ramend: | ||
138 | .long 0 | ||
139 | |||
140 | env: | ||
141 | .long 0 | ||
diff --git a/arch/m68k/platform/68328/head-rom.S b/arch/m68k/platform/68328/head-rom.S new file mode 100644 index 000000000000..6ec77d3ea0b3 --- /dev/null +++ b/arch/m68k/platform/68328/head-rom.S | |||
@@ -0,0 +1,110 @@ | |||
1 | |||
2 | .global _start | ||
3 | .global _stext | ||
4 | |||
5 | .global _rambase | ||
6 | .global _ramvec | ||
7 | .global _ramstart | ||
8 | .global _ramend | ||
9 | |||
10 | #ifdef CONFIG_INIT_LCD | ||
11 | .global splash_bits | ||
12 | #endif | ||
13 | |||
14 | .data | ||
15 | |||
16 | /* | ||
17 | * Set up the usable of RAM stuff. Size of RAM is determined then | ||
18 | * an initial stack set up at the end. | ||
19 | */ | ||
20 | .align 4 | ||
21 | _ramvec: | ||
22 | .long 0 | ||
23 | _rambase: | ||
24 | .long 0 | ||
25 | _ramstart: | ||
26 | .long 0 | ||
27 | _ramend: | ||
28 | .long 0 | ||
29 | |||
30 | #define RAMEND (CONFIG_RAMBASE + CONFIG_RAMSIZE) | ||
31 | |||
32 | #ifdef CONFIG_INIT_LCD | ||
33 | splash_bits: | ||
34 | #include "bootlogo.rh" | ||
35 | #endif | ||
36 | |||
37 | .text | ||
38 | _start: | ||
39 | _stext: movew #0x2700,%sr | ||
40 | #ifdef CONFIG_INIT_LCD | ||
41 | movel #splash_bits, 0xfffffA00 /* LSSA */ | ||
42 | moveb #0x28, 0xfffffA05 /* LVPW */ | ||
43 | movew #0x280, 0xFFFFFa08 /* LXMAX */ | ||
44 | movew #0x1df, 0xFFFFFa0a /* LYMAX */ | ||
45 | moveb #0, 0xfffffa29 /* LBAR */ | ||
46 | moveb #0, 0xfffffa25 /* LPXCD */ | ||
47 | moveb #0x08, 0xFFFFFa20 /* LPICF */ | ||
48 | moveb #0x01, 0xFFFFFA21 /* -ve pol */ | ||
49 | moveb #0x81, 0xfffffA27 /* LCKCON */ | ||
50 | movew #0xff00, 0xfffff412 /* LCD pins */ | ||
51 | #endif | ||
52 | moveal #RAMEND-CONFIG_MEMORY_RESERVE*0x100000 - 0x10, %sp | ||
53 | movew #32767, %d0 /* PLL settle wait loop */ | ||
54 | 1: subq #1, %d0 | ||
55 | bne 1b | ||
56 | |||
57 | /* Copy data segment from ROM to RAM */ | ||
58 | moveal #_etext, %a0 | ||
59 | moveal #_sdata, %a1 | ||
60 | moveal #_edata, %a2 | ||
61 | |||
62 | /* Copy %a0 to %a1 until %a1 == %a2 */ | ||
63 | 1: movel %a0@+, %a1@+ | ||
64 | cmpal %a1, %a2 | ||
65 | bhi 1b | ||
66 | |||
67 | moveal #_sbss, %a0 | ||
68 | moveal #_ebss, %a1 | ||
69 | /* Copy 0 to %a0 until %a0 == %a1 */ | ||
70 | |||
71 | 1: | ||
72 | clrl %a0@+ | ||
73 | cmpal %a0, %a1 | ||
74 | bhi 1b | ||
75 | |||
76 | movel #_sdata, %d0 | ||
77 | movel %d0, _rambase | ||
78 | movel #_ebss, %d0 | ||
79 | movel %d0, _ramstart | ||
80 | movel #RAMEND-CONFIG_MEMORY_RESERVE*0x100000, %d0 | ||
81 | movel %d0, _ramend | ||
82 | movel #CONFIG_VECTORBASE, %d0 | ||
83 | movel %d0, _ramvec | ||
84 | |||
85 | /* | ||
86 | * load the current task pointer and stack | ||
87 | */ | ||
88 | lea init_thread_union, %a0 | ||
89 | lea 0x2000(%a0), %sp | ||
90 | |||
91 | 1: jsr start_kernel | ||
92 | bra 1b | ||
93 | _exit: | ||
94 | |||
95 | jmp _exit | ||
96 | |||
97 | |||
98 | putc: | ||
99 | moveb %d7,0xfffff907 | ||
100 | 1: | ||
101 | movew 0xfffff906, %d7 | ||
102 | andw #0x2000, %d7 | ||
103 | beq 1b | ||
104 | rts | ||
105 | |||
106 | .data | ||
107 | env: | ||
108 | .long 0 | ||
109 | .text | ||
110 | |||
diff --git a/arch/m68k/platform/68328/ints.c b/arch/m68k/platform/68328/ints.c new file mode 100644 index 000000000000..e5631831a200 --- /dev/null +++ b/arch/m68k/platform/68328/ints.c | |||
@@ -0,0 +1,186 @@ | |||
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/types.h> | ||
13 | #include <linux/kernel.h> | ||
14 | #include <linux/init.h> | ||
15 | #include <linux/interrupt.h> | ||
16 | #include <linux/irq.h> | ||
17 | #include <asm/traps.h> | ||
18 | #include <asm/io.h> | ||
19 | #include <asm/machdep.h> | ||
20 | |||
21 | #if defined(CONFIG_M68328) | ||
22 | #include <asm/MC68328.h> | ||
23 | #elif defined(CONFIG_M68EZ328) | ||
24 | #include <asm/MC68EZ328.h> | ||
25 | #elif defined(CONFIG_M68VZ328) | ||
26 | #include <asm/MC68VZ328.h> | ||
27 | #endif | ||
28 | |||
29 | /* assembler routines */ | ||
30 | asmlinkage void system_call(void); | ||
31 | asmlinkage void buserr(void); | ||
32 | asmlinkage void trap(void); | ||
33 | asmlinkage void trap3(void); | ||
34 | asmlinkage void trap4(void); | ||
35 | asmlinkage void trap5(void); | ||
36 | asmlinkage void trap6(void); | ||
37 | asmlinkage void trap7(void); | ||
38 | asmlinkage void trap8(void); | ||
39 | asmlinkage void trap9(void); | ||
40 | asmlinkage void trap10(void); | ||
41 | asmlinkage void trap11(void); | ||
42 | asmlinkage void trap12(void); | ||
43 | asmlinkage void trap13(void); | ||
44 | asmlinkage void trap14(void); | ||
45 | asmlinkage void trap15(void); | ||
46 | asmlinkage void trap33(void); | ||
47 | asmlinkage void trap34(void); | ||
48 | asmlinkage void trap35(void); | ||
49 | asmlinkage void trap36(void); | ||
50 | asmlinkage void trap37(void); | ||
51 | asmlinkage void trap38(void); | ||
52 | asmlinkage void trap39(void); | ||
53 | asmlinkage void trap40(void); | ||
54 | asmlinkage void trap41(void); | ||
55 | asmlinkage void trap42(void); | ||
56 | asmlinkage void trap43(void); | ||
57 | asmlinkage void trap44(void); | ||
58 | asmlinkage void trap45(void); | ||
59 | asmlinkage void trap46(void); | ||
60 | asmlinkage void trap47(void); | ||
61 | asmlinkage irqreturn_t bad_interrupt(int, void *); | ||
62 | asmlinkage irqreturn_t inthandler(void); | ||
63 | asmlinkage irqreturn_t inthandler1(void); | ||
64 | asmlinkage irqreturn_t inthandler2(void); | ||
65 | asmlinkage irqreturn_t inthandler3(void); | ||
66 | asmlinkage irqreturn_t inthandler4(void); | ||
67 | asmlinkage irqreturn_t inthandler5(void); | ||
68 | asmlinkage irqreturn_t inthandler6(void); | ||
69 | asmlinkage irqreturn_t inthandler7(void); | ||
70 | |||
71 | extern e_vector *_ramvec; | ||
72 | |||
73 | /* The number of spurious interrupts */ | ||
74 | volatile unsigned int num_spurious; | ||
75 | |||
76 | /* The 68k family did not have a good way to determine the source | ||
77 | * of interrupts until later in the family. The EC000 core does | ||
78 | * not provide the vector number on the stack, we vector everything | ||
79 | * into one vector and look in the blasted mask register... | ||
80 | * This code is designed to be fast, almost constant time, not clean! | ||
81 | */ | ||
82 | void process_int(int vec, struct pt_regs *fp) | ||
83 | { | ||
84 | int irq; | ||
85 | int mask; | ||
86 | |||
87 | unsigned long pend = ISR; | ||
88 | |||
89 | while (pend) { | ||
90 | if (pend & 0x0000ffff) { | ||
91 | if (pend & 0x000000ff) { | ||
92 | if (pend & 0x0000000f) { | ||
93 | mask = 0x00000001; | ||
94 | irq = 0; | ||
95 | } else { | ||
96 | mask = 0x00000010; | ||
97 | irq = 4; | ||
98 | } | ||
99 | } else { | ||
100 | if (pend & 0x00000f00) { | ||
101 | mask = 0x00000100; | ||
102 | irq = 8; | ||
103 | } else { | ||
104 | mask = 0x00001000; | ||
105 | irq = 12; | ||
106 | } | ||
107 | } | ||
108 | } else { | ||
109 | if (pend & 0x00ff0000) { | ||
110 | if (pend & 0x000f0000) { | ||
111 | mask = 0x00010000; | ||
112 | irq = 16; | ||
113 | } else { | ||
114 | mask = 0x00100000; | ||
115 | irq = 20; | ||
116 | } | ||
117 | } else { | ||
118 | if (pend & 0x0f000000) { | ||
119 | mask = 0x01000000; | ||
120 | irq = 24; | ||
121 | } else { | ||
122 | mask = 0x10000000; | ||
123 | irq = 28; | ||
124 | } | ||
125 | } | ||
126 | } | ||
127 | |||
128 | while (! (mask & pend)) { | ||
129 | mask <<=1; | ||
130 | irq++; | ||
131 | } | ||
132 | |||
133 | do_IRQ(irq, fp); | ||
134 | pend &= ~mask; | ||
135 | } | ||
136 | } | ||
137 | |||
138 | static void intc_irq_unmask(struct irq_data *d) | ||
139 | { | ||
140 | IMR &= ~(1 << d->irq); | ||
141 | } | ||
142 | |||
143 | static void intc_irq_mask(struct irq_data *d) | ||
144 | { | ||
145 | IMR |= (1 << d->irq); | ||
146 | } | ||
147 | |||
148 | static struct irq_chip intc_irq_chip = { | ||
149 | .name = "M68K-INTC", | ||
150 | .irq_mask = intc_irq_mask, | ||
151 | .irq_unmask = intc_irq_unmask, | ||
152 | }; | ||
153 | |||
154 | /* | ||
155 | * This function should be called during kernel startup to initialize | ||
156 | * the machine vector table. | ||
157 | */ | ||
158 | void __init init_IRQ(void) | ||
159 | { | ||
160 | int i; | ||
161 | |||
162 | /* set up the vectors */ | ||
163 | for (i = 72; i < 256; ++i) | ||
164 | _ramvec[i] = (e_vector) bad_interrupt; | ||
165 | |||
166 | _ramvec[32] = system_call; | ||
167 | |||
168 | _ramvec[65] = (e_vector) inthandler1; | ||
169 | _ramvec[66] = (e_vector) inthandler2; | ||
170 | _ramvec[67] = (e_vector) inthandler3; | ||
171 | _ramvec[68] = (e_vector) inthandler4; | ||
172 | _ramvec[69] = (e_vector) inthandler5; | ||
173 | _ramvec[70] = (e_vector) inthandler6; | ||
174 | _ramvec[71] = (e_vector) inthandler7; | ||
175 | |||
176 | IVR = 0x40; /* Set DragonBall IVR (interrupt base) to 64 */ | ||
177 | |||
178 | /* turn off all interrupts */ | ||
179 | IMR = ~0; | ||
180 | |||
181 | for (i = 0; (i < NR_IRQS); i++) { | ||
182 | set_irq_chip(i, &intc_irq_chip); | ||
183 | set_irq_handler(i, handle_level_irq); | ||
184 | } | ||
185 | } | ||
186 | |||
diff --git a/arch/m68k/platform/68328/romvec.S b/arch/m68k/platform/68328/romvec.S new file mode 100644 index 000000000000..31084466eae8 --- /dev/null +++ b/arch/m68k/platform/68328/romvec.S | |||
@@ -0,0 +1,35 @@ | |||
1 | /* | ||
2 | * linux/arch/m68knommu/platform/68328/romvec.S | ||
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 | * Copyright 2006 Greg Ungerer <gerg@snapgear.com> | ||
11 | */ | ||
12 | |||
13 | .global _start | ||
14 | .global _buserr | ||
15 | .global trap | ||
16 | .global system_call | ||
17 | |||
18 | .section .romvec | ||
19 | |||
20 | e_vectors: | ||
21 | .long CONFIG_RAMBASE+CONFIG_RAMSIZE-4, _start, buserr, trap | ||
22 | .long trap, trap, trap, trap | ||
23 | .long trap, trap, trap, trap | ||
24 | .long trap, trap, trap, trap | ||
25 | .long trap, trap, trap, trap | ||
26 | .long trap, trap, trap, trap | ||
27 | .long trap, trap, trap, trap | ||
28 | .long trap, trap, trap, trap | ||
29 | /* TRAP #0-15 */ | ||
30 | .long system_call, trap, trap, trap | ||
31 | .long trap, trap, trap, trap | ||
32 | .long trap, trap, trap, trap | ||
33 | .long trap, trap, trap, trap | ||
34 | .long 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 | ||
35 | |||
diff --git a/arch/m68k/platform/68328/timers.c b/arch/m68k/platform/68328/timers.c new file mode 100644 index 000000000000..309f725995bf --- /dev/null +++ b/arch/m68k/platform/68328/timers.c | |||
@@ -0,0 +1,134 @@ | |||
1 | /***************************************************************************/ | ||
2 | |||
3 | /* | ||
4 | * linux/arch/m68knommu/platform/68328/timers.c | ||
5 | * | ||
6 | * Copyright (C) 1993 Hamish Macdonald | ||
7 | * Copyright (C) 1999 D. Jeff Dionne | ||
8 | * Copyright (C) 2001 Georges Menie, Ken Desmet | ||
9 | * | ||
10 | * This file is subject to the terms and conditions of the GNU General Public | ||
11 | * License. See the file COPYING in the main directory of this archive | ||
12 | * for more details. | ||
13 | */ | ||
14 | |||
15 | /***************************************************************************/ | ||
16 | |||
17 | #include <linux/types.h> | ||
18 | #include <linux/kernel.h> | ||
19 | #include <linux/mm.h> | ||
20 | #include <linux/interrupt.h> | ||
21 | #include <linux/irq.h> | ||
22 | #include <linux/clocksource.h> | ||
23 | #include <asm/setup.h> | ||
24 | #include <asm/system.h> | ||
25 | #include <asm/pgtable.h> | ||
26 | #include <asm/machdep.h> | ||
27 | #include <asm/MC68VZ328.h> | ||
28 | |||
29 | /***************************************************************************/ | ||
30 | |||
31 | #if defined(CONFIG_DRAGEN2) | ||
32 | /* with a 33.16 MHz clock, this will give usec resolution to the time functions */ | ||
33 | #define CLOCK_SOURCE TCTL_CLKSOURCE_SYSCLK | ||
34 | #define CLOCK_PRE 7 | ||
35 | #define TICKS_PER_JIFFY 41450 | ||
36 | |||
37 | #elif defined(CONFIG_XCOPILOT_BUGS) | ||
38 | /* | ||
39 | * The only thing I know is that CLK32 is not available on Xcopilot | ||
40 | * I have little idea about what frequency SYSCLK has on Xcopilot. | ||
41 | * The values for prescaler and compare registers were simply | ||
42 | * taken from the original source | ||
43 | */ | ||
44 | #define CLOCK_SOURCE TCTL_CLKSOURCE_SYSCLK | ||
45 | #define CLOCK_PRE 2 | ||
46 | #define TICKS_PER_JIFFY 0xd7e4 | ||
47 | |||
48 | #else | ||
49 | /* default to using the 32Khz clock */ | ||
50 | #define CLOCK_SOURCE TCTL_CLKSOURCE_32KHZ | ||
51 | #define CLOCK_PRE 31 | ||
52 | #define TICKS_PER_JIFFY 10 | ||
53 | #endif | ||
54 | |||
55 | static u32 m68328_tick_cnt; | ||
56 | |||
57 | /***************************************************************************/ | ||
58 | |||
59 | static irqreturn_t hw_tick(int irq, void *dummy) | ||
60 | { | ||
61 | /* Reset Timer1 */ | ||
62 | TSTAT &= 0; | ||
63 | |||
64 | m68328_tick_cnt += TICKS_PER_JIFFY; | ||
65 | return arch_timer_interrupt(irq, dummy); | ||
66 | } | ||
67 | |||
68 | /***************************************************************************/ | ||
69 | |||
70 | static struct irqaction m68328_timer_irq = { | ||
71 | .name = "timer", | ||
72 | .flags = IRQF_DISABLED | IRQF_TIMER, | ||
73 | .handler = hw_tick, | ||
74 | }; | ||
75 | |||
76 | /***************************************************************************/ | ||
77 | |||
78 | static cycle_t m68328_read_clk(struct clocksource *cs) | ||
79 | { | ||
80 | unsigned long flags; | ||
81 | u32 cycles; | ||
82 | |||
83 | local_irq_save(flags); | ||
84 | cycles = m68328_tick_cnt + TCN; | ||
85 | local_irq_restore(flags); | ||
86 | |||
87 | return cycles; | ||
88 | } | ||
89 | |||
90 | /***************************************************************************/ | ||
91 | |||
92 | static struct clocksource m68328_clk = { | ||
93 | .name = "timer", | ||
94 | .rating = 250, | ||
95 | .read = m68328_read_clk, | ||
96 | .shift = 20, | ||
97 | .mask = CLOCKSOURCE_MASK(32), | ||
98 | .flags = CLOCK_SOURCE_IS_CONTINUOUS, | ||
99 | }; | ||
100 | |||
101 | /***************************************************************************/ | ||
102 | |||
103 | void hw_timer_init(void) | ||
104 | { | ||
105 | /* disable timer 1 */ | ||
106 | TCTL = 0; | ||
107 | |||
108 | /* set ISR */ | ||
109 | setup_irq(TMR_IRQ_NUM, &m68328_timer_irq); | ||
110 | |||
111 | /* Restart mode, Enable int, Set clock source */ | ||
112 | TCTL = TCTL_OM | TCTL_IRQEN | CLOCK_SOURCE; | ||
113 | TPRER = CLOCK_PRE; | ||
114 | TCMP = TICKS_PER_JIFFY; | ||
115 | |||
116 | /* Enable timer 1 */ | ||
117 | TCTL |= TCTL_TEN; | ||
118 | m68328_clk.mult = clocksource_hz2mult(TICKS_PER_JIFFY*HZ, m68328_clk.shift); | ||
119 | clocksource_register(&m68328_clk); | ||
120 | } | ||
121 | |||
122 | /***************************************************************************/ | ||
123 | |||
124 | void m68328_timer_gettod(int *year, int *mon, int *day, int *hour, int *min, int *sec) | ||
125 | { | ||
126 | long now = RTCTIME; | ||
127 | |||
128 | *year = *mon = *day = 1; | ||
129 | *hour = (now >> 24) % 24; | ||
130 | *min = (now >> 16) % 60; | ||
131 | *sec = now % 60; | ||
132 | } | ||
133 | |||
134 | /***************************************************************************/ | ||
diff --git a/arch/m68k/platform/68360/Makefile b/arch/m68k/platform/68360/Makefile new file mode 100644 index 000000000000..cf5af73a5789 --- /dev/null +++ b/arch/m68k/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/m68k/platform/68360/commproc.c b/arch/m68k/platform/68360/commproc.c new file mode 100644 index 000000000000..8e4e10cc0080 --- /dev/null +++ b/arch/m68k/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, 0, "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/m68k/platform/68360/config.c b/arch/m68k/platform/68360/config.c new file mode 100644 index 000000000000..9dd5bca38749 --- /dev/null +++ b/arch/m68k/platform/68360/config.c | |||
@@ -0,0 +1,186 @@ | |||
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/types.h> | ||
15 | #include <linux/kernel.h> | ||
16 | #include <linux/mm.h> | ||
17 | #include <linux/interrupt.h> | ||
18 | #include <linux/irq.h> | ||
19 | |||
20 | #include <asm/setup.h> | ||
21 | #include <asm/system.h> | ||
22 | #include <asm/pgtable.h> | ||
23 | #include <asm/machdep.h> | ||
24 | #include <asm/m68360.h> | ||
25 | |||
26 | #ifdef CONFIG_UCQUICC | ||
27 | #include <asm/bootstd.h> | ||
28 | #endif | ||
29 | |||
30 | extern void m360_cpm_reset(void); | ||
31 | |||
32 | // Mask to select if the PLL prescaler is enabled. | ||
33 | #define MCU_PREEN ((unsigned short)(0x0001 << 13)) | ||
34 | |||
35 | #if defined(CONFIG_UCQUICC) | ||
36 | #define OSCILLATOR (unsigned long int)33000000 | ||
37 | #endif | ||
38 | |||
39 | unsigned long int system_clock; | ||
40 | |||
41 | extern QUICC *pquicc; | ||
42 | |||
43 | /* TODO DON"T Hard Code this */ | ||
44 | /* calculate properly using the right PLL and prescaller */ | ||
45 | // unsigned int system_clock = 33000000l; | ||
46 | extern unsigned long int system_clock; //In kernel setup.c | ||
47 | |||
48 | |||
49 | static irqreturn_t hw_tick(int irq, void *dummy) | ||
50 | { | ||
51 | /* Reset Timer1 */ | ||
52 | /* TSTAT &= 0; */ | ||
53 | |||
54 | pquicc->timer_ter1 = 0x0002; /* clear timer event */ | ||
55 | |||
56 | return arch_timer_interrupt(irq, dummy); | ||
57 | } | ||
58 | |||
59 | static struct irqaction m68360_timer_irq = { | ||
60 | .name = "timer", | ||
61 | .flags = IRQF_DISABLED | IRQF_TIMER, | ||
62 | .handler = hw_tick, | ||
63 | }; | ||
64 | |||
65 | void hw_timer_init(void) | ||
66 | { | ||
67 | unsigned char prescaler; | ||
68 | unsigned short tgcr_save; | ||
69 | |||
70 | #if 0 | ||
71 | /* Restart mode, Enable int, 32KHz, Enable timer */ | ||
72 | TCTL = TCTL_OM | TCTL_IRQEN | TCTL_CLKSOURCE_32KHZ | TCTL_TEN; | ||
73 | /* Set prescaler (Divide 32KHz by 32)*/ | ||
74 | TPRER = 31; | ||
75 | /* Set compare register 32Khz / 32 / 10 = 100 */ | ||
76 | TCMP = 10; | ||
77 | |||
78 | request_irq(IRQ_MACHSPEC | 1, timer_routine, 0, "timer", NULL); | ||
79 | #endif | ||
80 | |||
81 | /* General purpose quicc timers: MC68360UM p7-20 */ | ||
82 | |||
83 | /* Set up timer 1 (in [1..4]) to do 100Hz */ | ||
84 | tgcr_save = pquicc->timer_tgcr & 0xfff0; | ||
85 | pquicc->timer_tgcr = tgcr_save; /* stop and reset timer 1 */ | ||
86 | /* pquicc->timer_tgcr |= 0x4444; */ /* halt timers when FREEZE (ie bdm freeze) */ | ||
87 | |||
88 | prescaler = 8; | ||
89 | pquicc->timer_tmr1 = 0x001a | /* or=1, frr=1, iclk=01b */ | ||
90 | (unsigned short)((prescaler - 1) << 8); | ||
91 | |||
92 | pquicc->timer_tcn1 = 0x0000; /* initial count */ | ||
93 | /* calculate interval for 100Hz based on the _system_clock: */ | ||
94 | pquicc->timer_trr1 = (system_clock/ prescaler) / HZ; /* reference count */ | ||
95 | |||
96 | pquicc->timer_ter1 = 0x0003; /* clear timer events */ | ||
97 | |||
98 | /* enable timer 1 interrupt in CIMR */ | ||
99 | setup_irq(CPMVEC_TIMER1, &m68360_timer_irq); | ||
100 | |||
101 | /* Start timer 1: */ | ||
102 | tgcr_save = (pquicc->timer_tgcr & 0xfff0) | 0x0001; | ||
103 | pquicc->timer_tgcr = tgcr_save; | ||
104 | } | ||
105 | |||
106 | void BSP_gettod (int *yearp, int *monp, int *dayp, | ||
107 | int *hourp, int *minp, int *secp) | ||
108 | { | ||
109 | } | ||
110 | |||
111 | int BSP_set_clock_mmss(unsigned long nowtime) | ||
112 | { | ||
113 | #if 0 | ||
114 | short real_seconds = nowtime % 60, real_minutes = (nowtime / 60) % 60; | ||
115 | |||
116 | tod->second1 = real_seconds / 10; | ||
117 | tod->second2 = real_seconds % 10; | ||
118 | tod->minute1 = real_minutes / 10; | ||
119 | tod->minute2 = real_minutes % 10; | ||
120 | #endif | ||
121 | return 0; | ||
122 | } | ||
123 | |||
124 | void BSP_reset (void) | ||
125 | { | ||
126 | local_irq_disable(); | ||
127 | asm volatile ( | ||
128 | "moveal #_start, %a0;\n" | ||
129 | "moveb #0, 0xFFFFF300;\n" | ||
130 | "moveal 0(%a0), %sp;\n" | ||
131 | "moveal 4(%a0), %a0;\n" | ||
132 | "jmp (%a0);\n" | ||
133 | ); | ||
134 | } | ||
135 | |||
136 | unsigned char *scc1_hwaddr; | ||
137 | static int errno; | ||
138 | |||
139 | #if defined (CONFIG_UCQUICC) | ||
140 | _bsc0(char *, getserialnum) | ||
141 | _bsc1(unsigned char *, gethwaddr, int, a) | ||
142 | _bsc1(char *, getbenv, char *, a) | ||
143 | #endif | ||
144 | |||
145 | |||
146 | void config_BSP(char *command, int len) | ||
147 | { | ||
148 | unsigned char *p; | ||
149 | |||
150 | m360_cpm_reset(); | ||
151 | |||
152 | /* Calculate the real system clock value. */ | ||
153 | { | ||
154 | unsigned int local_pllcr = (unsigned int)(pquicc->sim_pllcr); | ||
155 | if( local_pllcr & MCU_PREEN ) // If the prescaler is dividing by 128 | ||
156 | { | ||
157 | int mf = (int)(pquicc->sim_pllcr & 0x0fff); | ||
158 | system_clock = (OSCILLATOR / 128) * (mf + 1); | ||
159 | } | ||
160 | else | ||
161 | { | ||
162 | int mf = (int)(pquicc->sim_pllcr & 0x0fff); | ||
163 | system_clock = (OSCILLATOR) * (mf + 1); | ||
164 | } | ||
165 | } | ||
166 | |||
167 | printk(KERN_INFO "\n68360 QUICC support (C) 2000 Lineo Inc.\n"); | ||
168 | |||
169 | #if defined(CONFIG_UCQUICC) && 0 | ||
170 | printk(KERN_INFO "uCquicc serial string [%s]\n",getserialnum()); | ||
171 | p = scc1_hwaddr = gethwaddr(0); | ||
172 | printk(KERN_INFO "uCquicc hwaddr %.2x:%.2x:%.2x:%.2x:%.2x:%.2x\n", | ||
173 | p[0], p[1], p[2], p[3], p[4], p[5]); | ||
174 | |||
175 | p = getbenv("APPEND"); | ||
176 | if (p) | ||
177 | strcpy(p,command); | ||
178 | else | ||
179 | command[0] = 0; | ||
180 | #else | ||
181 | scc1_hwaddr = "\00\01\02\03\04\05"; | ||
182 | #endif | ||
183 | |||
184 | mach_gettod = BSP_gettod; | ||
185 | mach_reset = BSP_reset; | ||
186 | } | ||
diff --git a/arch/m68k/platform/68360/entry.S b/arch/m68k/platform/68360/entry.S new file mode 100644 index 000000000000..46c1b18c9dcb --- /dev/null +++ b/arch/m68k/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/sys.h> | ||
16 | #include <linux/linkage.h> | ||
17 | #include <asm/thread_info.h> | ||
18 | #include <asm/unistd.h> | ||
19 | #include <asm/errno.h> | ||
20 | #include <asm/setup.h> | ||
21 | #include <asm/segment.h> | ||
22 | #include <asm/traps.h> | ||
23 | #include <asm/asm-offsets.h> | ||
24 | #include <asm/entry.h> | ||
25 | |||
26 | .text | ||
27 | |||
28 | .globl system_call | ||
29 | .globl resume | ||
30 | .globl ret_from_exception | ||
31 | .globl ret_from_signal | ||
32 | .globl sys_call_table | ||
33 | .globl ret_from_interrupt | ||
34 | .globl bad_interrupt | ||
35 | .globl inthandler | ||
36 | |||
37 | badsys: | ||
38 | movel #-ENOSYS,%sp@(PT_OFF_D0) | ||
39 | jra ret_from_exception | ||
40 | |||
41 | do_trace: | ||
42 | movel #-ENOSYS,%sp@(PT_OFF_D0) /* needed for strace*/ | ||
43 | subql #4,%sp | ||
44 | SAVE_SWITCH_STACK | ||
45 | jbsr syscall_trace_enter | ||
46 | RESTORE_SWITCH_STACK | ||
47 | addql #4,%sp | ||
48 | movel %sp@(PT_OFF_ORIG_D0),%d1 | ||
49 | movel #-ENOSYS,%d0 | ||
50 | cmpl #NR_syscalls,%d1 | ||
51 | jcc 1f | ||
52 | lsl #2,%d1 | ||
53 | lea sys_call_table, %a0 | ||
54 | jbsr %a0@(%d1) | ||
55 | |||
56 | 1: movel %d0,%sp@(PT_OFF_D0) /* save the return value */ | ||
57 | subql #4,%sp /* dummy return address */ | ||
58 | SAVE_SWITCH_STACK | ||
59 | jbsr syscall_trace_leave | ||
60 | |||
61 | ret_from_signal: | ||
62 | RESTORE_SWITCH_STACK | ||
63 | addql #4,%sp | ||
64 | jra ret_from_exception | ||
65 | |||
66 | ENTRY(system_call) | ||
67 | SAVE_ALL | ||
68 | |||
69 | /* save top of frame*/ | ||
70 | pea %sp@ | ||
71 | jbsr set_esp0 | ||
72 | addql #4,%sp | ||
73 | |||
74 | movel %sp@(PT_OFF_ORIG_D0),%d0 | ||
75 | |||
76 | movel %sp,%d1 /* get thread_info pointer */ | ||
77 | andl #-THREAD_SIZE,%d1 | ||
78 | movel %d1,%a2 | ||
79 | btst #(TIF_SYSCALL_TRACE%8),%a2@(TI_FLAGS+(31-TIF_SYSCALL_TRACE)/8) | ||
80 | jne do_trace | ||
81 | cmpl #NR_syscalls,%d0 | ||
82 | jcc badsys | ||
83 | lsl #2,%d0 | ||
84 | lea sys_call_table,%a0 | ||
85 | movel %a0@(%d0), %a0 | ||
86 | jbsr %a0@ | ||
87 | movel %d0,%sp@(PT_OFF_D0) /* save the return value*/ | ||
88 | |||
89 | ret_from_exception: | ||
90 | btst #5,%sp@(PT_OFF_SR) /* check if returning to kernel*/ | ||
91 | jeq Luser_return /* if so, skip resched, signals*/ | ||
92 | |||
93 | Lkernel_return: | ||
94 | RESTORE_ALL | ||
95 | |||
96 | Luser_return: | ||
97 | /* only allow interrupts when we are really the last one on the*/ | ||
98 | /* kernel stack, otherwise stack overflow can occur during*/ | ||
99 | /* heavy interrupt load*/ | ||
100 | andw #ALLOWINT,%sr | ||
101 | |||
102 | movel %sp,%d1 /* get thread_info pointer */ | ||
103 | andl #-THREAD_SIZE,%d1 | ||
104 | movel %d1,%a2 | ||
105 | 1: | ||
106 | move %a2@(TI_FLAGS),%d1 /* thread_info->flags */ | ||
107 | jne Lwork_to_do | ||
108 | RESTORE_ALL | ||
109 | |||
110 | Lwork_to_do: | ||
111 | movel %a2@(TI_FLAGS),%d1 /* thread_info->flags */ | ||
112 | btst #TIF_NEED_RESCHED,%d1 | ||
113 | jne reschedule | ||
114 | |||
115 | Lsignal_return: | ||
116 | subql #4,%sp /* dummy return address*/ | ||
117 | SAVE_SWITCH_STACK | ||
118 | pea %sp@(SWITCH_STACK_SIZE) | ||
119 | bsrw do_signal | ||
120 | addql #4,%sp | ||
121 | RESTORE_SWITCH_STACK | ||
122 | addql #4,%sp | ||
123 | jra 1b | ||
124 | |||
125 | /* | ||
126 | * This is the main interrupt handler, responsible for calling do_IRQ() | ||
127 | */ | ||
128 | inthandler: | ||
129 | SAVE_ALL | ||
130 | movew %sp@(PT_OFF_FORMATVEC), %d0 | ||
131 | and.l #0x3ff, %d0 | ||
132 | lsr.l #0x02, %d0 | ||
133 | |||
134 | movel %sp,%sp@- | ||
135 | movel %d0,%sp@- /* put vector # on stack*/ | ||
136 | jbsr do_IRQ /* process the IRQ*/ | ||
137 | 3: addql #8,%sp /* pop parameters off stack*/ | ||
138 | bra ret_from_interrupt | ||
139 | |||
140 | ret_from_interrupt: | ||
141 | jeq 1f | ||
142 | 2: | ||
143 | RESTORE_ALL | ||
144 | 1: | ||
145 | moveb %sp@(PT_OFF_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/m68k/platform/68360/head-ram.S b/arch/m68k/platform/68360/head-ram.S new file mode 100644 index 000000000000..8eb94fb6b971 --- /dev/null +++ b/arch/m68k/platform/68360/head-ram.S | |||
@@ -0,0 +1,403 @@ | |||
1 | /* arch/m68knommu/platform/68360/head-ram.S | ||
2 | * | ||
3 | * Startup code for Motorola 68360 | ||
4 | * | ||
5 | * Copyright 2001 (C) SED Systems, a Division of Calian Ltd. | ||
6 | * Based on: arch/m68knommu/platform/68328/pilot/crt0_rom.S | ||
7 | * Based on: arch/m68knommu/platform/68360/uCquicc/crt0_rom.S, 2.0.38.1.pre7 | ||
8 | * uClinux Kernel | ||
9 | * Copyright (C) Michael Leslie <mleslie@lineo.com> | ||
10 | * Based on: arch/m68knommu/platform/68EZ328/ucsimm/crt0_rom.S | ||
11 | * Copyright (C) 1998 D. Jeff Dionne <jeff@uclinux.org>, | ||
12 | * | ||
13 | */ | ||
14 | #define ASSEMBLY | ||
15 | |||
16 | .global _stext | ||
17 | .global _start | ||
18 | |||
19 | .global _rambase | ||
20 | .global _ramvec | ||
21 | .global _ramstart | ||
22 | .global _ramend | ||
23 | |||
24 | .global _quicc_base | ||
25 | .global _periph_base | ||
26 | |||
27 | #define RAMEND (CONFIG_RAMBASE + CONFIG_RAMSIZE) | ||
28 | #define ROMEND (CONFIG_ROMBASE + CONFIG_ROMSIZE) | ||
29 | |||
30 | #define REGB 0x1000 | ||
31 | #define PEPAR (_dprbase + REGB + 0x0016) | ||
32 | #define GMR (_dprbase + REGB + 0x0040) | ||
33 | #define OR0 (_dprbase + REGB + 0x0054) | ||
34 | #define BR0 (_dprbase + REGB + 0x0050) | ||
35 | #define OR1 (_dprbase + REGB + 0x0064) | ||
36 | #define BR1 (_dprbase + REGB + 0x0060) | ||
37 | #define OR4 (_dprbase + REGB + 0x0094) | ||
38 | #define BR4 (_dprbase + REGB + 0x0090) | ||
39 | #define OR6 (_dprbase + REGB + 0x00b4) | ||
40 | #define BR6 (_dprbase + REGB + 0x00b0) | ||
41 | #define OR7 (_dprbase + REGB + 0x00c4) | ||
42 | #define BR7 (_dprbase + REGB + 0x00c0) | ||
43 | |||
44 | #define MCR (_dprbase + REGB + 0x0000) | ||
45 | #define AVR (_dprbase + REGB + 0x0008) | ||
46 | |||
47 | #define SYPCR (_dprbase + REGB + 0x0022) | ||
48 | |||
49 | #define PLLCR (_dprbase + REGB + 0x0010) | ||
50 | #define CLKOCR (_dprbase + REGB + 0x000C) | ||
51 | #define CDVCR (_dprbase + REGB + 0x0014) | ||
52 | |||
53 | #define BKAR (_dprbase + REGB + 0x0030) | ||
54 | #define BKCR (_dprbase + REGB + 0x0034) | ||
55 | #define SWIV (_dprbase + REGB + 0x0023) | ||
56 | #define PICR (_dprbase + REGB + 0x0026) | ||
57 | #define PITR (_dprbase + REGB + 0x002A) | ||
58 | |||
59 | /* Define for all memory configuration */ | ||
60 | #define MCU_SIM_GMR 0x00000000 | ||
61 | #define SIM_OR_MASK 0x0fffffff | ||
62 | |||
63 | /* Defines for chip select zero - the flash */ | ||
64 | #define SIM_OR0_MASK 0x20000002 | ||
65 | #define SIM_BR0_MASK 0x00000001 | ||
66 | |||
67 | |||
68 | /* Defines for chip select one - the RAM */ | ||
69 | #define SIM_OR1_MASK 0x10000000 | ||
70 | #define SIM_BR1_MASK 0x00000001 | ||
71 | |||
72 | #define MCU_SIM_MBAR_ADRS 0x0003ff00 | ||
73 | #define MCU_SIM_MBAR_BA_MASK 0xfffff000 | ||
74 | #define MCU_SIM_MBAR_AS_MASK 0x00000001 | ||
75 | |||
76 | #define MCU_SIM_PEPAR 0x00B4 | ||
77 | |||
78 | #define MCU_DISABLE_INTRPTS 0x2700 | ||
79 | #define MCU_SIM_AVR 0x00 | ||
80 | |||
81 | #define MCU_SIM_MCR 0x00005cff | ||
82 | |||
83 | #define MCU_SIM_CLKOCR 0x00 | ||
84 | #define MCU_SIM_PLLCR 0x8000 | ||
85 | #define MCU_SIM_CDVCR 0x0000 | ||
86 | |||
87 | #define MCU_SIM_SYPCR 0x0000 | ||
88 | #define MCU_SIM_SWIV 0x00 | ||
89 | #define MCU_SIM_PICR 0x0000 | ||
90 | #define MCU_SIM_PITR 0x0000 | ||
91 | |||
92 | |||
93 | #include <asm/m68360_regs.h> | ||
94 | |||
95 | |||
96 | /* | ||
97 | * By the time this RAM specific code begins to execute, DPRAM | ||
98 | * and DRAM should already be mapped and accessible. | ||
99 | */ | ||
100 | |||
101 | .text | ||
102 | _start: | ||
103 | _stext: | ||
104 | nop | ||
105 | ori.w #MCU_DISABLE_INTRPTS, %sr /* disable interrupts: */ | ||
106 | /* We should not need to setup the boot stack the reset should do it. */ | ||
107 | movea.l #RAMEND, %sp /*set up stack at the end of DRAM:*/ | ||
108 | |||
109 | set_mbar_register: | ||
110 | moveq.l #0x07, %d1 /* Setup MBAR */ | ||
111 | movec %d1, %dfc | ||
112 | |||
113 | lea.l MCU_SIM_MBAR_ADRS, %a0 | ||
114 | move.l #_dprbase, %d0 | ||
115 | andi.l #MCU_SIM_MBAR_BA_MASK, %d0 | ||
116 | ori.l #MCU_SIM_MBAR_AS_MASK, %d0 | ||
117 | moves.l %d0, %a0@ | ||
118 | |||
119 | moveq.l #0x05, %d1 | ||
120 | movec.l %d1, %dfc | ||
121 | |||
122 | /* Now we can begin to access registers in DPRAM */ | ||
123 | |||
124 | set_sim_mcr: | ||
125 | /* Set Module Configuration Register */ | ||
126 | move.l #MCU_SIM_MCR, MCR | ||
127 | |||
128 | /* to do: Determine cause of reset */ | ||
129 | |||
130 | /* | ||
131 | * configure system clock MC68360 p. 6-40 | ||
132 | * (value +1)*osc/128 = system clock | ||
133 | */ | ||
134 | set_sim_clock: | ||
135 | move.w #MCU_SIM_PLLCR, PLLCR | ||
136 | move.b #MCU_SIM_CLKOCR, CLKOCR | ||
137 | move.w #MCU_SIM_CDVCR, CDVCR | ||
138 | |||
139 | /* Wait for the PLL to settle */ | ||
140 | move.w #16384, %d0 | ||
141 | pll_settle_wait: | ||
142 | subi.w #1, %d0 | ||
143 | bne pll_settle_wait | ||
144 | |||
145 | /* Setup the system protection register, and watchdog timer register */ | ||
146 | move.b #MCU_SIM_SWIV, SWIV | ||
147 | move.w #MCU_SIM_PICR, PICR | ||
148 | move.w #MCU_SIM_PITR, PITR | ||
149 | move.w #MCU_SIM_SYPCR, SYPCR | ||
150 | |||
151 | /* Clear DPRAM - system + parameter */ | ||
152 | movea.l #_dprbase, %a0 | ||
153 | movea.l #_dprbase+0x2000, %a1 | ||
154 | |||
155 | /* Copy 0 to %a0 until %a0 == %a1 */ | ||
156 | clear_dpram: | ||
157 | movel #0, %a0@+ | ||
158 | cmpal %a0, %a1 | ||
159 | bhi clear_dpram | ||
160 | |||
161 | configure_memory_controller: | ||
162 | /* Set up Global Memory Register (GMR) */ | ||
163 | move.l #MCU_SIM_GMR, %d0 | ||
164 | move.l %d0, GMR | ||
165 | |||
166 | configure_chip_select_0: | ||
167 | move.l #RAMEND, %d0 | ||
168 | subi.l #__ramstart, %d0 | ||
169 | subq.l #0x01, %d0 | ||
170 | eori.l #SIM_OR_MASK, %d0 | ||
171 | ori.l #SIM_OR0_MASK, %d0 | ||
172 | move.l %d0, OR0 | ||
173 | |||
174 | move.l #__ramstart, %d0 | ||
175 | ori.l #SIM_BR0_MASK, %d0 | ||
176 | move.l %d0, BR0 | ||
177 | |||
178 | configure_chip_select_1: | ||
179 | move.l #ROMEND, %d0 | ||
180 | subi.l #__rom_start, %d0 | ||
181 | subq.l #0x01, %d0 | ||
182 | eori.l #SIM_OR_MASK, %d0 | ||
183 | ori.l #SIM_OR1_MASK, %d0 | ||
184 | move.l %d0, OR1 | ||
185 | |||
186 | move.l #__rom_start, %d0 | ||
187 | ori.l #SIM_BR1_MASK, %d0 | ||
188 | move.l %d0, BR1 | ||
189 | |||
190 | move.w #MCU_SIM_PEPAR, PEPAR | ||
191 | |||
192 | /* point to vector table: */ | ||
193 | move.l #_romvec, %a0 | ||
194 | move.l #_ramvec, %a1 | ||
195 | copy_vectors: | ||
196 | move.l %a0@, %d0 | ||
197 | move.l %d0, %a1@ | ||
198 | move.l %a0@, %a1@ | ||
199 | addq.l #0x04, %a0 | ||
200 | addq.l #0x04, %a1 | ||
201 | cmp.l #_start, %a0 | ||
202 | blt copy_vectors | ||
203 | |||
204 | move.l #_ramvec, %a1 | ||
205 | movec %a1, %vbr | ||
206 | |||
207 | |||
208 | /* Copy data segment from ROM to RAM */ | ||
209 | moveal #_stext, %a0 | ||
210 | moveal #_sdata, %a1 | ||
211 | moveal #_edata, %a2 | ||
212 | |||
213 | /* Copy %a0 to %a1 until %a1 == %a2 */ | ||
214 | LD1: | ||
215 | move.l %a0@, %d0 | ||
216 | addq.l #0x04, %a0 | ||
217 | move.l %d0, %a1@ | ||
218 | addq.l #0x04, %a1 | ||
219 | cmp.l #_edata, %a1 | ||
220 | blt LD1 | ||
221 | |||
222 | moveal #_sbss, %a0 | ||
223 | moveal #_ebss, %a1 | ||
224 | |||
225 | /* Copy 0 to %a0 until %a0 == %a1 */ | ||
226 | L1: | ||
227 | movel #0, %a0@+ | ||
228 | cmpal %a0, %a1 | ||
229 | bhi L1 | ||
230 | |||
231 | load_quicc: | ||
232 | move.l #_dprbase, _quicc_base | ||
233 | |||
234 | store_ram_size: | ||
235 | /* Set ram size information */ | ||
236 | move.l #_sdata, _rambase | ||
237 | move.l #_ebss, _ramstart | ||
238 | move.l #RAMEND, %d0 | ||
239 | sub.l #0x1000, %d0 /* Reserve 4K for stack space.*/ | ||
240 | move.l %d0, _ramend /* Different from RAMEND.*/ | ||
241 | |||
242 | pea 0 | ||
243 | pea env | ||
244 | pea %sp@(4) | ||
245 | pea 0 | ||
246 | |||
247 | lea init_thread_union, %a2 | ||
248 | lea 0x2000(%a2), %sp | ||
249 | |||
250 | lp: | ||
251 | jsr start_kernel | ||
252 | |||
253 | _exit: | ||
254 | jmp _exit | ||
255 | |||
256 | |||
257 | .data | ||
258 | .align 4 | ||
259 | env: | ||
260 | .long 0 | ||
261 | _quicc_base: | ||
262 | .long 0 | ||
263 | _periph_base: | ||
264 | .long 0 | ||
265 | _ramvec: | ||
266 | .long 0 | ||
267 | _rambase: | ||
268 | .long 0 | ||
269 | _ramstart: | ||
270 | .long 0 | ||
271 | _ramend: | ||
272 | .long 0 | ||
273 | _dprbase: | ||
274 | .long 0xffffe000 | ||
275 | |||
276 | .text | ||
277 | |||
278 | /* | ||
279 | * These are the exception vectors at boot up, they are copied into RAM | ||
280 | * and then overwritten as needed. | ||
281 | */ | ||
282 | |||
283 | .section ".data..initvect","awx" | ||
284 | .long RAMEND /* Reset: Initial Stack Pointer - 0. */ | ||
285 | .long _start /* Reset: Initial Program Counter - 1. */ | ||
286 | .long buserr /* Bus Error - 2. */ | ||
287 | .long trap /* Address Error - 3. */ | ||
288 | .long trap /* Illegal Instruction - 4. */ | ||
289 | .long trap /* Divide by zero - 5. */ | ||
290 | .long trap /* CHK, CHK2 Instructions - 6. */ | ||
291 | .long trap /* TRAPcc, TRAPV Instructions - 7. */ | ||
292 | .long trap /* Privilege Violation - 8. */ | ||
293 | .long trap /* Trace - 9. */ | ||
294 | .long trap /* Line 1010 Emulator - 10. */ | ||
295 | .long trap /* Line 1111 Emualtor - 11. */ | ||
296 | .long trap /* Harware Breakpoint - 12. */ | ||
297 | .long trap /* (Reserved for Coprocessor Protocol Violation)- 13. */ | ||
298 | .long trap /* Format Error - 14. */ | ||
299 | .long trap /* Uninitialized Interrupt - 15. */ | ||
300 | .long trap /* (Unassigned, Reserver) - 16. */ | ||
301 | .long trap /* (Unassigned, Reserver) - 17. */ | ||
302 | .long trap /* (Unassigned, Reserver) - 18. */ | ||
303 | .long trap /* (Unassigned, Reserver) - 19. */ | ||
304 | .long trap /* (Unassigned, Reserver) - 20. */ | ||
305 | .long trap /* (Unassigned, Reserver) - 21. */ | ||
306 | .long trap /* (Unassigned, Reserver) - 22. */ | ||
307 | .long trap /* (Unassigned, Reserver) - 23. */ | ||
308 | .long trap /* Spurious Interrupt - 24. */ | ||
309 | .long trap /* Level 1 Interrupt Autovector - 25. */ | ||
310 | .long trap /* Level 2 Interrupt Autovector - 26. */ | ||
311 | .long trap /* Level 3 Interrupt Autovector - 27. */ | ||
312 | .long trap /* Level 4 Interrupt Autovector - 28. */ | ||
313 | .long trap /* Level 5 Interrupt Autovector - 29. */ | ||
314 | .long trap /* Level 6 Interrupt Autovector - 30. */ | ||
315 | .long trap /* Level 7 Interrupt Autovector - 31. */ | ||
316 | .long system_call /* Trap Instruction Vectors 0 - 32. */ | ||
317 | .long trap /* Trap Instruction Vectors 1 - 33. */ | ||
318 | .long trap /* Trap Instruction Vectors 2 - 34. */ | ||
319 | .long trap /* Trap Instruction Vectors 3 - 35. */ | ||
320 | .long trap /* Trap Instruction Vectors 4 - 36. */ | ||
321 | .long trap /* Trap Instruction Vectors 5 - 37. */ | ||
322 | .long trap /* Trap Instruction Vectors 6 - 38. */ | ||
323 | .long trap /* Trap Instruction Vectors 7 - 39. */ | ||
324 | .long trap /* Trap Instruction Vectors 8 - 40. */ | ||
325 | .long trap /* Trap Instruction Vectors 9 - 41. */ | ||
326 | .long trap /* Trap Instruction Vectors 10 - 42. */ | ||
327 | .long trap /* Trap Instruction Vectors 11 - 43. */ | ||
328 | .long trap /* Trap Instruction Vectors 12 - 44. */ | ||
329 | .long trap /* Trap Instruction Vectors 13 - 45. */ | ||
330 | .long trap /* Trap Instruction Vectors 14 - 46. */ | ||
331 | .long trap /* Trap Instruction Vectors 15 - 47. */ | ||
332 | .long 0 /* (Reserved for Coprocessor) - 48. */ | ||
333 | .long 0 /* (Reserved for Coprocessor) - 49. */ | ||
334 | .long 0 /* (Reserved for Coprocessor) - 50. */ | ||
335 | .long 0 /* (Reserved for Coprocessor) - 51. */ | ||
336 | .long 0 /* (Reserved for Coprocessor) - 52. */ | ||
337 | .long 0 /* (Reserved for Coprocessor) - 53. */ | ||
338 | .long 0 /* (Reserved for Coprocessor) - 54. */ | ||
339 | .long 0 /* (Reserved for Coprocessor) - 55. */ | ||
340 | .long 0 /* (Reserved for Coprocessor) - 56. */ | ||
341 | .long 0 /* (Reserved for Coprocessor) - 57. */ | ||
342 | .long 0 /* (Reserved for Coprocessor) - 58. */ | ||
343 | .long 0 /* (Unassigned, Reserved) - 59. */ | ||
344 | .long 0 /* (Unassigned, Reserved) - 60. */ | ||
345 | .long 0 /* (Unassigned, Reserved) - 61. */ | ||
346 | .long 0 /* (Unassigned, Reserved) - 62. */ | ||
347 | .long 0 /* (Unassigned, Reserved) - 63. */ | ||
348 | /* The assignment of these vectors to the CPM is */ | ||
349 | /* dependent on the configuration of the CPM vba */ | ||
350 | /* fields. */ | ||
351 | .long 0 /* (User-Defined Vectors 1) CPM Error - 64. */ | ||
352 | .long 0 /* (User-Defined Vectors 2) CPM Parallel IO PC11- 65. */ | ||
353 | .long 0 /* (User-Defined Vectors 3) CPM Parallel IO PC10- 66. */ | ||
354 | .long 0 /* (User-Defined Vectors 4) CPM SMC2 / PIP - 67. */ | ||
355 | .long 0 /* (User-Defined Vectors 5) CPM SMC1 - 68. */ | ||
356 | .long 0 /* (User-Defined Vectors 6) CPM SPI - 69. */ | ||
357 | .long 0 /* (User-Defined Vectors 7) CPM Parallel IO PC9 - 70. */ | ||
358 | .long 0 /* (User-Defined Vectors 8) CPM Timer 4 - 71. */ | ||
359 | .long 0 /* (User-Defined Vectors 9) CPM Reserved - 72. */ | ||
360 | .long 0 /* (User-Defined Vectors 10) CPM Parallel IO PC8- 73. */ | ||
361 | .long 0 /* (User-Defined Vectors 11) CPM Parallel IO PC7- 74. */ | ||
362 | .long 0 /* (User-Defined Vectors 12) CPM Parallel IO PC6- 75. */ | ||
363 | .long 0 /* (User-Defined Vectors 13) CPM Timer 3 - 76. */ | ||
364 | .long 0 /* (User-Defined Vectors 14) CPM Reserved - 77. */ | ||
365 | .long 0 /* (User-Defined Vectors 15) CPM Parallel IO PC5- 78. */ | ||
366 | .long 0 /* (User-Defined Vectors 16) CPM Parallel IO PC4- 79. */ | ||
367 | .long 0 /* (User-Defined Vectors 17) CPM Reserved - 80. */ | ||
368 | .long 0 /* (User-Defined Vectors 18) CPM RISC Timer Tbl - 81. */ | ||
369 | .long 0 /* (User-Defined Vectors 19) CPM Timer 2 - 82. */ | ||
370 | .long 0 /* (User-Defined Vectors 21) CPM Reserved - 83. */ | ||
371 | .long 0 /* (User-Defined Vectors 22) CPM IDMA2 - 84. */ | ||
372 | .long 0 /* (User-Defined Vectors 23) CPM IDMA1 - 85. */ | ||
373 | .long 0 /* (User-Defined Vectors 24) CPM SDMA Bus Err - 86. */ | ||
374 | .long 0 /* (User-Defined Vectors 25) CPM Parallel IO PC3- 87. */ | ||
375 | .long 0 /* (User-Defined Vectors 26) CPM Parallel IO PC2- 88. */ | ||
376 | .long 0 /* (User-Defined Vectors 27) CPM Timer 1 - 89. */ | ||
377 | .long 0 /* (User-Defined Vectors 28) CPM Parallel IO PC1- 90. */ | ||
378 | .long 0 /* (User-Defined Vectors 29) CPM SCC 4 - 91. */ | ||
379 | .long 0 /* (User-Defined Vectors 30) CPM SCC 3 - 92. */ | ||
380 | .long 0 /* (User-Defined Vectors 31) CPM SCC 2 - 93. */ | ||
381 | .long 0 /* (User-Defined Vectors 32) CPM SCC 1 - 94. */ | ||
382 | .long 0 /* (User-Defined Vectors 33) CPM Parallel IO PC0- 95. */ | ||
383 | /* I don't think anything uses the vectors after here. */ | ||
384 | .long 0 /* (User-Defined Vectors 34) - 96. */ | ||
385 | .long 0,0,0,0,0 /* (User-Defined Vectors 35 - 39). */ | ||
386 | .long 0,0,0,0,0,0,0,0,0,0 /* (User-Defined Vectors 40 - 49). */ | ||
387 | .long 0,0,0,0,0,0,0,0,0,0 /* (User-Defined Vectors 50 - 59). */ | ||
388 | .long 0,0,0,0,0,0,0,0,0,0 /* (User-Defined Vectors 60 - 69). */ | ||
389 | .long 0,0,0,0,0,0,0,0,0,0 /* (User-Defined Vectors 70 - 79). */ | ||
390 | .long 0,0,0,0,0,0,0,0,0,0 /* (User-Defined Vectors 80 - 89). */ | ||
391 | .long 0,0,0,0,0,0,0,0,0,0 /* (User-Defined Vectors 90 - 99). */ | ||
392 | .long 0,0,0,0,0,0,0,0,0,0 /* (User-Defined Vectors 100 - 109). */ | ||
393 | .long 0,0,0,0,0,0,0,0,0,0 /* (User-Defined Vectors 110 - 119). */ | ||
394 | .long 0,0,0,0,0,0,0,0,0,0 /* (User-Defined Vectors 120 - 129). */ | ||
395 | .long 0,0,0,0,0,0,0,0,0,0 /* (User-Defined Vectors 130 - 139). */ | ||
396 | .long 0,0,0,0,0,0,0,0,0,0 /* (User-Defined Vectors 140 - 149). */ | ||
397 | .long 0,0,0,0,0,0,0,0,0,0 /* (User-Defined Vectors 150 - 159). */ | ||
398 | .long 0,0,0,0,0,0,0,0,0,0 /* (User-Defined Vectors 160 - 169). */ | ||
399 | .long 0,0,0,0,0,0,0,0,0,0 /* (User-Defined Vectors 170 - 179). */ | ||
400 | .long 0,0,0,0,0,0,0,0,0,0 /* (User-Defined Vectors 180 - 189). */ | ||
401 | .long 0,0,0 /* (User-Defined Vectors 190 - 192). */ | ||
402 | .text | ||
403 | ignore: rte | ||
diff --git a/arch/m68k/platform/68360/head-rom.S b/arch/m68k/platform/68360/head-rom.S new file mode 100644 index 000000000000..97510e55b802 --- /dev/null +++ b/arch/m68k/platform/68360/head-rom.S | |||
@@ -0,0 +1,414 @@ | |||
1 | /* arch/m68knommu/platform/68360/head-rom.S | ||
2 | * | ||
3 | * Startup code for Motorola 68360 | ||
4 | * | ||
5 | * Copyright (C) SED Systems, a Division of Calian Ltd. | ||
6 | * Based on: arch/m68knommu/platform/68328/pilot/crt0_rom.S | ||
7 | * Based on: arch/m68knommu/platform/68360/uCquicc/crt0_rom.S, 2.0.38.1.pre7 | ||
8 | * uClinux Kernel | ||
9 | * Copyright (C) Michael Leslie <mleslie@lineo.com> | ||
10 | * Based on: arch/m68knommu/platform/68EZ328/ucsimm/crt0_rom.S | ||
11 | * Copyright (C) 1998 D. Jeff Dionne <jeff@uclinux.org>, | ||
12 | * | ||
13 | */ | ||
14 | |||
15 | .global _stext | ||
16 | .global _sbss | ||
17 | .global _start | ||
18 | |||
19 | .global _rambase | ||
20 | .global _ramvec | ||
21 | .global _ramstart | ||
22 | .global _ramend | ||
23 | |||
24 | .global _quicc_base | ||
25 | .global _periph_base | ||
26 | |||
27 | #define RAMEND (CONFIG_RAMBASE + CONFIG_RAMSIZE) | ||
28 | |||
29 | #define REGB 0x1000 | ||
30 | #define PEPAR (_dprbase + REGB + 0x0016) | ||
31 | #define GMR (_dprbase + REGB + 0x0040) | ||
32 | #define OR0 (_dprbase + REGB + 0x0054) | ||
33 | #define BR0 (_dprbase + REGB + 0x0050) | ||
34 | |||
35 | #define OR1 (_dprbase + REGB + 0x0064) | ||
36 | #define BR1 (_dprbase + REGB + 0x0060) | ||
37 | |||
38 | #define OR2 (_dprbase + REGB + 0x0074) | ||
39 | #define BR2 (_dprbase + REGB + 0x0070) | ||
40 | |||
41 | #define OR3 (_dprbase + REGB + 0x0084) | ||
42 | #define BR3 (_dprbase + REGB + 0x0080) | ||
43 | |||
44 | #define OR4 (_dprbase + REGB + 0x0094) | ||
45 | #define BR4 (_dprbase + REGB + 0x0090) | ||
46 | |||
47 | #define OR5 (_dprbase + REGB + 0x00A4) | ||
48 | #define BR5 (_dprbase + REGB + 0x00A0) | ||
49 | |||
50 | #define OR6 (_dprbase + REGB + 0x00b4) | ||
51 | #define BR6 (_dprbase + REGB + 0x00b0) | ||
52 | |||
53 | #define OR7 (_dprbase + REGB + 0x00c4) | ||
54 | #define BR7 (_dprbase + REGB + 0x00c0) | ||
55 | |||
56 | #define MCR (_dprbase + REGB + 0x0000) | ||
57 | #define AVR (_dprbase + REGB + 0x0008) | ||
58 | |||
59 | #define SYPCR (_dprbase + REGB + 0x0022) | ||
60 | |||
61 | #define PLLCR (_dprbase + REGB + 0x0010) | ||
62 | #define CLKOCR (_dprbase + REGB + 0x000C) | ||
63 | #define CDVCR (_dprbase + REGB + 0x0014) | ||
64 | |||
65 | #define BKAR (_dprbase + REGB + 0x0030) | ||
66 | #define BKCR (_dprbase + REGB + 0x0034) | ||
67 | #define SWIV (_dprbase + REGB + 0x0023) | ||
68 | #define PICR (_dprbase + REGB + 0x0026) | ||
69 | #define PITR (_dprbase + REGB + 0x002A) | ||
70 | |||
71 | /* Define for all memory configuration */ | ||
72 | #define MCU_SIM_GMR 0x00000000 | ||
73 | #define SIM_OR_MASK 0x0fffffff | ||
74 | |||
75 | /* Defines for chip select zero - the flash */ | ||
76 | #define SIM_OR0_MASK 0x20000000 | ||
77 | #define SIM_BR0_MASK 0x00000001 | ||
78 | |||
79 | /* Defines for chip select one - the RAM */ | ||
80 | #define SIM_OR1_MASK 0x10000000 | ||
81 | #define SIM_BR1_MASK 0x00000001 | ||
82 | |||
83 | #define MCU_SIM_MBAR_ADRS 0x0003ff00 | ||
84 | #define MCU_SIM_MBAR_BA_MASK 0xfffff000 | ||
85 | #define MCU_SIM_MBAR_AS_MASK 0x00000001 | ||
86 | |||
87 | #define MCU_SIM_PEPAR 0x00B4 | ||
88 | |||
89 | #define MCU_DISABLE_INTRPTS 0x2700 | ||
90 | #define MCU_SIM_AVR 0x00 | ||
91 | |||
92 | #define MCU_SIM_MCR 0x00005cff | ||
93 | |||
94 | #define MCU_SIM_CLKOCR 0x00 | ||
95 | #define MCU_SIM_PLLCR 0x8000 | ||
96 | #define MCU_SIM_CDVCR 0x0000 | ||
97 | |||
98 | #define MCU_SIM_SYPCR 0x0000 | ||
99 | #define MCU_SIM_SWIV 0x00 | ||
100 | #define MCU_SIM_PICR 0x0000 | ||
101 | #define MCU_SIM_PITR 0x0000 | ||
102 | |||
103 | |||
104 | #include <asm/m68360_regs.h> | ||
105 | |||
106 | |||
107 | /* | ||
108 | * By the time this RAM specific code begins to execute, DPRAM | ||
109 | * and DRAM should already be mapped and accessible. | ||
110 | */ | ||
111 | |||
112 | .text | ||
113 | _start: | ||
114 | _stext: | ||
115 | nop | ||
116 | ori.w #MCU_DISABLE_INTRPTS, %sr /* disable interrupts: */ | ||
117 | /* We should not need to setup the boot stack the reset should do it. */ | ||
118 | movea.l #RAMEND, %sp /* set up stack at the end of DRAM:*/ | ||
119 | |||
120 | |||
121 | set_mbar_register: | ||
122 | moveq.l #0x07, %d1 /* Setup MBAR */ | ||
123 | movec %d1, %dfc | ||
124 | |||
125 | lea.l MCU_SIM_MBAR_ADRS, %a0 | ||
126 | move.l #_dprbase, %d0 | ||
127 | andi.l #MCU_SIM_MBAR_BA_MASK, %d0 | ||
128 | ori.l #MCU_SIM_MBAR_AS_MASK, %d0 | ||
129 | moves.l %d0, %a0@ | ||
130 | |||
131 | moveq.l #0x05, %d1 | ||
132 | movec.l %d1, %dfc | ||
133 | |||
134 | /* Now we can begin to access registers in DPRAM */ | ||
135 | |||
136 | set_sim_mcr: | ||
137 | /* Set Module Configuration Register */ | ||
138 | move.l #MCU_SIM_MCR, MCR | ||
139 | |||
140 | /* to do: Determine cause of reset */ | ||
141 | |||
142 | /* | ||
143 | * configure system clock MC68360 p. 6-40 | ||
144 | * (value +1)*osc/128 = system clock | ||
145 | * or | ||
146 | * (value + 1)*osc = system clock | ||
147 | * You do not need to divide the oscillator by 128 unless you want to. | ||
148 | */ | ||
149 | set_sim_clock: | ||
150 | move.w #MCU_SIM_PLLCR, PLLCR | ||
151 | move.b #MCU_SIM_CLKOCR, CLKOCR | ||
152 | move.w #MCU_SIM_CDVCR, CDVCR | ||
153 | |||
154 | /* Wait for the PLL to settle */ | ||
155 | move.w #16384, %d0 | ||
156 | pll_settle_wait: | ||
157 | subi.w #1, %d0 | ||
158 | bne pll_settle_wait | ||
159 | |||
160 | /* Setup the system protection register, and watchdog timer register */ | ||
161 | move.b #MCU_SIM_SWIV, SWIV | ||
162 | move.w #MCU_SIM_PICR, PICR | ||
163 | move.w #MCU_SIM_PITR, PITR | ||
164 | move.w #MCU_SIM_SYPCR, SYPCR | ||
165 | |||
166 | /* Clear DPRAM - system + parameter */ | ||
167 | movea.l #_dprbase, %a0 | ||
168 | movea.l #_dprbase+0x2000, %a1 | ||
169 | |||
170 | /* Copy 0 to %a0 until %a0 == %a1 */ | ||
171 | clear_dpram: | ||
172 | movel #0, %a0@+ | ||
173 | cmpal %a0, %a1 | ||
174 | bhi clear_dpram | ||
175 | |||
176 | configure_memory_controller: | ||
177 | /* Set up Global Memory Register (GMR) */ | ||
178 | move.l #MCU_SIM_GMR, %d0 | ||
179 | move.l %d0, GMR | ||
180 | |||
181 | configure_chip_select_0: | ||
182 | move.l #0x00400000, %d0 | ||
183 | subq.l #0x01, %d0 | ||
184 | eori.l #SIM_OR_MASK, %d0 | ||
185 | ori.l #SIM_OR0_MASK, %d0 | ||
186 | move.l %d0, OR0 | ||
187 | |||
188 | move.l #__rom_start, %d0 | ||
189 | ori.l #SIM_BR0_MASK, %d0 | ||
190 | move.l %d0, BR0 | ||
191 | |||
192 | move.l #0x0, BR1 | ||
193 | move.l #0x0, BR2 | ||
194 | move.l #0x0, BR3 | ||
195 | move.l #0x0, BR4 | ||
196 | move.l #0x0, BR5 | ||
197 | move.l #0x0, BR6 | ||
198 | move.l #0x0, BR7 | ||
199 | |||
200 | move.w #MCU_SIM_PEPAR, PEPAR | ||
201 | |||
202 | /* point to vector table: */ | ||
203 | move.l #_romvec, %a0 | ||
204 | move.l #_ramvec, %a1 | ||
205 | copy_vectors: | ||
206 | move.l %a0@, %d0 | ||
207 | move.l %d0, %a1@ | ||
208 | move.l %a0@, %a1@ | ||
209 | addq.l #0x04, %a0 | ||
210 | addq.l #0x04, %a1 | ||
211 | cmp.l #_start, %a0 | ||
212 | blt copy_vectors | ||
213 | |||
214 | move.l #_ramvec, %a1 | ||
215 | movec %a1, %vbr | ||
216 | |||
217 | |||
218 | /* Copy data segment from ROM to RAM */ | ||
219 | moveal #_etext, %a0 | ||
220 | moveal #_sdata, %a1 | ||
221 | moveal #_edata, %a2 | ||
222 | |||
223 | /* Copy %a0 to %a1 until %a1 == %a2 */ | ||
224 | LD1: | ||
225 | move.l %a0@, %d0 | ||
226 | addq.l #0x04, %a0 | ||
227 | move.l %d0, %a1@ | ||
228 | addq.l #0x04, %a1 | ||
229 | cmp.l #_edata, %a1 | ||
230 | blt LD1 | ||
231 | |||
232 | moveal #_sbss, %a0 | ||
233 | moveal #_ebss, %a1 | ||
234 | |||
235 | /* Copy 0 to %a0 until %a0 == %a1 */ | ||
236 | L1: | ||
237 | movel #0, %a0@+ | ||
238 | cmpal %a0, %a1 | ||
239 | bhi L1 | ||
240 | |||
241 | load_quicc: | ||
242 | move.l #_dprbase, _quicc_base | ||
243 | |||
244 | store_ram_size: | ||
245 | /* Set ram size information */ | ||
246 | move.l #_sdata, _rambase | ||
247 | move.l #_ebss, _ramstart | ||
248 | move.l #RAMEND, %d0 | ||
249 | sub.l #0x1000, %d0 /* Reserve 4K for stack space.*/ | ||
250 | move.l %d0, _ramend /* Different from RAMEND.*/ | ||
251 | |||
252 | pea 0 | ||
253 | pea env | ||
254 | pea %sp@(4) | ||
255 | pea 0 | ||
256 | |||
257 | lea init_thread_union, %a2 | ||
258 | lea 0x2000(%a2), %sp | ||
259 | |||
260 | lp: | ||
261 | jsr start_kernel | ||
262 | |||
263 | _exit: | ||
264 | jmp _exit | ||
265 | |||
266 | |||
267 | .data | ||
268 | .align 4 | ||
269 | env: | ||
270 | .long 0 | ||
271 | _quicc_base: | ||
272 | .long 0 | ||
273 | _periph_base: | ||
274 | .long 0 | ||
275 | _ramvec: | ||
276 | .long 0 | ||
277 | _rambase: | ||
278 | .long 0 | ||
279 | _ramstart: | ||
280 | .long 0 | ||
281 | _ramend: | ||
282 | .long 0 | ||
283 | _dprbase: | ||
284 | .long 0xffffe000 | ||
285 | |||
286 | |||
287 | .text | ||
288 | |||
289 | /* | ||
290 | * These are the exception vectors at boot up, they are copied into RAM | ||
291 | * and then overwritten as needed. | ||
292 | */ | ||
293 | |||
294 | .section ".data..initvect","awx" | ||
295 | .long RAMEND /* Reset: Initial Stack Pointer - 0. */ | ||
296 | .long _start /* Reset: Initial Program Counter - 1. */ | ||
297 | .long buserr /* Bus Error - 2. */ | ||
298 | .long trap /* Address Error - 3. */ | ||
299 | .long trap /* Illegal Instruction - 4. */ | ||
300 | .long trap /* Divide by zero - 5. */ | ||
301 | .long trap /* CHK, CHK2 Instructions - 6. */ | ||
302 | .long trap /* TRAPcc, TRAPV Instructions - 7. */ | ||
303 | .long trap /* Privilege Violation - 8. */ | ||
304 | .long trap /* Trace - 9. */ | ||
305 | .long trap /* Line 1010 Emulator - 10. */ | ||
306 | .long trap /* Line 1111 Emualtor - 11. */ | ||
307 | .long trap /* Harware Breakpoint - 12. */ | ||
308 | .long trap /* (Reserved for Coprocessor Protocol Violation)- 13. */ | ||
309 | .long trap /* Format Error - 14. */ | ||
310 | .long trap /* Uninitialized Interrupt - 15. */ | ||
311 | .long trap /* (Unassigned, Reserver) - 16. */ | ||
312 | .long trap /* (Unassigned, Reserver) - 17. */ | ||
313 | .long trap /* (Unassigned, Reserver) - 18. */ | ||
314 | .long trap /* (Unassigned, Reserver) - 19. */ | ||
315 | .long trap /* (Unassigned, Reserver) - 20. */ | ||
316 | .long trap /* (Unassigned, Reserver) - 21. */ | ||
317 | .long trap /* (Unassigned, Reserver) - 22. */ | ||
318 | .long trap /* (Unassigned, Reserver) - 23. */ | ||
319 | .long trap /* Spurious Interrupt - 24. */ | ||
320 | .long trap /* Level 1 Interrupt Autovector - 25. */ | ||
321 | .long trap /* Level 2 Interrupt Autovector - 26. */ | ||
322 | .long trap /* Level 3 Interrupt Autovector - 27. */ | ||
323 | .long trap /* Level 4 Interrupt Autovector - 28. */ | ||
324 | .long trap /* Level 5 Interrupt Autovector - 29. */ | ||
325 | .long trap /* Level 6 Interrupt Autovector - 30. */ | ||
326 | .long trap /* Level 7 Interrupt Autovector - 31. */ | ||
327 | .long system_call /* Trap Instruction Vectors 0 - 32. */ | ||
328 | .long trap /* Trap Instruction Vectors 1 - 33. */ | ||
329 | .long trap /* Trap Instruction Vectors 2 - 34. */ | ||
330 | .long trap /* Trap Instruction Vectors 3 - 35. */ | ||
331 | .long trap /* Trap Instruction Vectors 4 - 36. */ | ||
332 | .long trap /* Trap Instruction Vectors 5 - 37. */ | ||
333 | .long trap /* Trap Instruction Vectors 6 - 38. */ | ||
334 | .long trap /* Trap Instruction Vectors 7 - 39. */ | ||
335 | .long trap /* Trap Instruction Vectors 8 - 40. */ | ||
336 | .long trap /* Trap Instruction Vectors 9 - 41. */ | ||
337 | .long trap /* Trap Instruction Vectors 10 - 42. */ | ||
338 | .long trap /* Trap Instruction Vectors 11 - 43. */ | ||
339 | .long trap /* Trap Instruction Vectors 12 - 44. */ | ||
340 | .long trap /* Trap Instruction Vectors 13 - 45. */ | ||
341 | .long trap /* Trap Instruction Vectors 14 - 46. */ | ||
342 | .long trap /* Trap Instruction Vectors 15 - 47. */ | ||
343 | .long 0 /* (Reserved for Coprocessor) - 48. */ | ||
344 | .long 0 /* (Reserved for Coprocessor) - 49. */ | ||
345 | .long 0 /* (Reserved for Coprocessor) - 50. */ | ||
346 | .long 0 /* (Reserved for Coprocessor) - 51. */ | ||
347 | .long 0 /* (Reserved for Coprocessor) - 52. */ | ||
348 | .long 0 /* (Reserved for Coprocessor) - 53. */ | ||
349 | .long 0 /* (Reserved for Coprocessor) - 54. */ | ||
350 | .long 0 /* (Reserved for Coprocessor) - 55. */ | ||
351 | .long 0 /* (Reserved for Coprocessor) - 56. */ | ||
352 | .long 0 /* (Reserved for Coprocessor) - 57. */ | ||
353 | .long 0 /* (Reserved for Coprocessor) - 58. */ | ||
354 | .long 0 /* (Unassigned, Reserved) - 59. */ | ||
355 | .long 0 /* (Unassigned, Reserved) - 60. */ | ||
356 | .long 0 /* (Unassigned, Reserved) - 61. */ | ||
357 | .long 0 /* (Unassigned, Reserved) - 62. */ | ||
358 | .long 0 /* (Unassigned, Reserved) - 63. */ | ||
359 | /* The assignment of these vectors to the CPM is */ | ||
360 | /* dependent on the configuration of the CPM vba */ | ||
361 | /* fields. */ | ||
362 | .long 0 /* (User-Defined Vectors 1) CPM Error - 64. */ | ||
363 | .long 0 /* (User-Defined Vectors 2) CPM Parallel IO PC11- 65. */ | ||
364 | .long 0 /* (User-Defined Vectors 3) CPM Parallel IO PC10- 66. */ | ||
365 | .long 0 /* (User-Defined Vectors 4) CPM SMC2 / PIP - 67. */ | ||
366 | .long 0 /* (User-Defined Vectors 5) CPM SMC1 - 68. */ | ||
367 | .long 0 /* (User-Defined Vectors 6) CPM SPI - 69. */ | ||
368 | .long 0 /* (User-Defined Vectors 7) CPM Parallel IO PC9 - 70. */ | ||
369 | .long 0 /* (User-Defined Vectors 8) CPM Timer 4 - 71. */ | ||
370 | .long 0 /* (User-Defined Vectors 9) CPM Reserved - 72. */ | ||
371 | .long 0 /* (User-Defined Vectors 10) CPM Parallel IO PC8- 73. */ | ||
372 | .long 0 /* (User-Defined Vectors 11) CPM Parallel IO PC7- 74. */ | ||
373 | .long 0 /* (User-Defined Vectors 12) CPM Parallel IO PC6- 75. */ | ||
374 | .long 0 /* (User-Defined Vectors 13) CPM Timer 3 - 76. */ | ||
375 | .long 0 /* (User-Defined Vectors 14) CPM Reserved - 77. */ | ||
376 | .long 0 /* (User-Defined Vectors 15) CPM Parallel IO PC5- 78. */ | ||
377 | .long 0 /* (User-Defined Vectors 16) CPM Parallel IO PC4- 79. */ | ||
378 | .long 0 /* (User-Defined Vectors 17) CPM Reserved - 80. */ | ||
379 | .long 0 /* (User-Defined Vectors 18) CPM RISC Timer Tbl - 81. */ | ||
380 | .long 0 /* (User-Defined Vectors 19) CPM Timer 2 - 82. */ | ||
381 | .long 0 /* (User-Defined Vectors 21) CPM Reserved - 83. */ | ||
382 | .long 0 /* (User-Defined Vectors 22) CPM IDMA2 - 84. */ | ||
383 | .long 0 /* (User-Defined Vectors 23) CPM IDMA1 - 85. */ | ||
384 | .long 0 /* (User-Defined Vectors 24) CPM SDMA Bus Err - 86. */ | ||
385 | .long 0 /* (User-Defined Vectors 25) CPM Parallel IO PC3- 87. */ | ||
386 | .long 0 /* (User-Defined Vectors 26) CPM Parallel IO PC2- 88. */ | ||
387 | .long 0 /* (User-Defined Vectors 27) CPM Timer 1 - 89. */ | ||
388 | .long 0 /* (User-Defined Vectors 28) CPM Parallel IO PC1- 90. */ | ||
389 | .long 0 /* (User-Defined Vectors 29) CPM SCC 4 - 91. */ | ||
390 | .long 0 /* (User-Defined Vectors 30) CPM SCC 3 - 92. */ | ||
391 | .long 0 /* (User-Defined Vectors 31) CPM SCC 2 - 93. */ | ||
392 | .long 0 /* (User-Defined Vectors 32) CPM SCC 1 - 94. */ | ||
393 | .long 0 /* (User-Defined Vectors 33) CPM Parallel IO PC0- 95. */ | ||
394 | /* I don't think anything uses the vectors after here. */ | ||
395 | .long 0 /* (User-Defined Vectors 34) - 96. */ | ||
396 | .long 0,0,0,0,0 /* (User-Defined Vectors 35 - 39). */ | ||
397 | .long 0,0,0,0,0,0,0,0,0,0 /* (User-Defined Vectors 40 - 49). */ | ||
398 | .long 0,0,0,0,0,0,0,0,0,0 /* (User-Defined Vectors 50 - 59). */ | ||
399 | .long 0,0,0,0,0,0,0,0,0,0 /* (User-Defined Vectors 60 - 69). */ | ||
400 | .long 0,0,0,0,0,0,0,0,0,0 /* (User-Defined Vectors 70 - 79). */ | ||
401 | .long 0,0,0,0,0,0,0,0,0,0 /* (User-Defined Vectors 80 - 89). */ | ||
402 | .long 0,0,0,0,0,0,0,0,0,0 /* (User-Defined Vectors 90 - 99). */ | ||
403 | .long 0,0,0,0,0,0,0,0,0,0 /* (User-Defined Vectors 100 - 109). */ | ||
404 | .long 0,0,0,0,0,0,0,0,0,0 /* (User-Defined Vectors 110 - 119). */ | ||
405 | .long 0,0,0,0,0,0,0,0,0,0 /* (User-Defined Vectors 120 - 129). */ | ||
406 | .long 0,0,0,0,0,0,0,0,0,0 /* (User-Defined Vectors 130 - 139). */ | ||
407 | .long 0,0,0,0,0,0,0,0,0,0 /* (User-Defined Vectors 140 - 149). */ | ||
408 | .long 0,0,0,0,0,0,0,0,0,0 /* (User-Defined Vectors 150 - 159). */ | ||
409 | .long 0,0,0,0,0,0,0,0,0,0 /* (User-Defined Vectors 160 - 169). */ | ||
410 | .long 0,0,0,0,0,0,0,0,0,0 /* (User-Defined Vectors 170 - 179). */ | ||
411 | .long 0,0,0,0,0,0,0,0,0,0 /* (User-Defined Vectors 180 - 189). */ | ||
412 | .long 0,0,0 /* (User-Defined Vectors 190 - 192). */ | ||
413 | .text | ||
414 | ignore: rte | ||
diff --git a/arch/m68k/platform/68360/ints.c b/arch/m68k/platform/68360/ints.c new file mode 100644 index 000000000000..8de3feb568c6 --- /dev/null +++ b/arch/m68k/platform/68360/ints.c | |||
@@ -0,0 +1,139 @@ | |||
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/types.h> | ||
14 | #include <linux/kernel.h> | ||
15 | #include <linux/init.h> | ||
16 | #include <linux/interrupt.h> | ||
17 | #include <linux/irq.h> | ||
18 | #include <asm/traps.h> | ||
19 | #include <asm/machdep.h> | ||
20 | #include <asm/m68360.h> | ||
21 | |||
22 | /* from quicc/commproc.c: */ | ||
23 | extern QUICC *pquicc; | ||
24 | extern void cpm_interrupt_init(void); | ||
25 | |||
26 | #define INTERNAL_IRQS (96) | ||
27 | |||
28 | /* assembler routines */ | ||
29 | asmlinkage void system_call(void); | ||
30 | asmlinkage void buserr(void); | ||
31 | asmlinkage void trap(void); | ||
32 | asmlinkage void bad_interrupt(void); | ||
33 | asmlinkage void inthandler(void); | ||
34 | |||
35 | extern void *_ramvec[]; | ||
36 | |||
37 | /* The number of spurious interrupts */ | ||
38 | volatile unsigned int num_spurious; | ||
39 | |||
40 | static void intc_irq_unmask(struct irq_data *d) | ||
41 | { | ||
42 | pquicc->intr_cimr |= (1 << d->irq); | ||
43 | } | ||
44 | |||
45 | static void intc_irq_mask(struct irq_data *d) | ||
46 | { | ||
47 | pquicc->intr_cimr &= ~(1 << d->irq); | ||
48 | } | ||
49 | |||
50 | static void intc_irq_ack(struct irq_data *d) | ||
51 | { | ||
52 | pquicc->intr_cisr = (1 << d->irq); | ||
53 | } | ||
54 | |||
55 | static struct irq_chip intc_irq_chip = { | ||
56 | .name = "M68K-INTC", | ||
57 | .irq_mask = intc_irq_mask, | ||
58 | .irq_unmask = intc_irq_unmask, | ||
59 | .irq_ack = intc_irq_ack, | ||
60 | }; | ||
61 | |||
62 | /* | ||
63 | * This function should be called during kernel startup to initialize | ||
64 | * the vector table. | ||
65 | */ | ||
66 | void init_IRQ(void) | ||
67 | { | ||
68 | int i; | ||
69 | int vba = (CPM_VECTOR_BASE<<4); | ||
70 | |||
71 | /* set up the vectors */ | ||
72 | _ramvec[2] = buserr; | ||
73 | _ramvec[3] = trap; | ||
74 | _ramvec[4] = trap; | ||
75 | _ramvec[5] = trap; | ||
76 | _ramvec[6] = trap; | ||
77 | _ramvec[7] = trap; | ||
78 | _ramvec[8] = trap; | ||
79 | _ramvec[9] = trap; | ||
80 | _ramvec[10] = trap; | ||
81 | _ramvec[11] = trap; | ||
82 | _ramvec[12] = trap; | ||
83 | _ramvec[13] = trap; | ||
84 | _ramvec[14] = trap; | ||
85 | _ramvec[15] = trap; | ||
86 | |||
87 | _ramvec[32] = system_call; | ||
88 | _ramvec[33] = trap; | ||
89 | |||
90 | cpm_interrupt_init(); | ||
91 | |||
92 | /* set up CICR for vector base address and irq level */ | ||
93 | /* irl = 4, hp = 1f - see MC68360UM p 7-377 */ | ||
94 | pquicc->intr_cicr = 0x00e49f00 | vba; | ||
95 | |||
96 | /* CPM interrupt vectors: (p 7-376) */ | ||
97 | _ramvec[vba+CPMVEC_ERROR] = bad_interrupt; /* Error */ | ||
98 | _ramvec[vba+CPMVEC_PIO_PC11] = inthandler; /* pio - pc11 */ | ||
99 | _ramvec[vba+CPMVEC_PIO_PC10] = inthandler; /* pio - pc10 */ | ||
100 | _ramvec[vba+CPMVEC_SMC2] = inthandler; /* smc2/pip */ | ||
101 | _ramvec[vba+CPMVEC_SMC1] = inthandler; /* smc1 */ | ||
102 | _ramvec[vba+CPMVEC_SPI] = inthandler; /* spi */ | ||
103 | _ramvec[vba+CPMVEC_PIO_PC9] = inthandler; /* pio - pc9 */ | ||
104 | _ramvec[vba+CPMVEC_TIMER4] = inthandler; /* timer 4 */ | ||
105 | _ramvec[vba+CPMVEC_RESERVED1] = inthandler; /* reserved */ | ||
106 | _ramvec[vba+CPMVEC_PIO_PC8] = inthandler; /* pio - pc8 */ | ||
107 | _ramvec[vba+CPMVEC_PIO_PC7] = inthandler; /* pio - pc7 */ | ||
108 | _ramvec[vba+CPMVEC_PIO_PC6] = inthandler; /* pio - pc6 */ | ||
109 | _ramvec[vba+CPMVEC_TIMER3] = inthandler; /* timer 3 */ | ||
110 | _ramvec[vba+CPMVEC_PIO_PC5] = inthandler; /* pio - pc5 */ | ||
111 | _ramvec[vba+CPMVEC_PIO_PC4] = inthandler; /* pio - pc4 */ | ||
112 | _ramvec[vba+CPMVEC_RESERVED2] = inthandler; /* reserved */ | ||
113 | _ramvec[vba+CPMVEC_RISCTIMER] = inthandler; /* timer table */ | ||
114 | _ramvec[vba+CPMVEC_TIMER2] = inthandler; /* timer 2 */ | ||
115 | _ramvec[vba+CPMVEC_RESERVED3] = inthandler; /* reserved */ | ||
116 | _ramvec[vba+CPMVEC_IDMA2] = inthandler; /* idma 2 */ | ||
117 | _ramvec[vba+CPMVEC_IDMA1] = inthandler; /* idma 1 */ | ||
118 | _ramvec[vba+CPMVEC_SDMA_CB_ERR] = inthandler; /* sdma channel bus error */ | ||
119 | _ramvec[vba+CPMVEC_PIO_PC3] = inthandler; /* pio - pc3 */ | ||
120 | _ramvec[vba+CPMVEC_PIO_PC2] = inthandler; /* pio - pc2 */ | ||
121 | /* _ramvec[vba+CPMVEC_TIMER1] = cpm_isr_timer1; */ /* timer 1 */ | ||
122 | _ramvec[vba+CPMVEC_TIMER1] = inthandler; /* timer 1 */ | ||
123 | _ramvec[vba+CPMVEC_PIO_PC1] = inthandler; /* pio - pc1 */ | ||
124 | _ramvec[vba+CPMVEC_SCC4] = inthandler; /* scc 4 */ | ||
125 | _ramvec[vba+CPMVEC_SCC3] = inthandler; /* scc 3 */ | ||
126 | _ramvec[vba+CPMVEC_SCC2] = inthandler; /* scc 2 */ | ||
127 | _ramvec[vba+CPMVEC_SCC1] = inthandler; /* scc 1 */ | ||
128 | _ramvec[vba+CPMVEC_PIO_PC0] = inthandler; /* pio - pc0 */ | ||
129 | |||
130 | |||
131 | /* turn off all CPM interrupts */ | ||
132 | pquicc->intr_cimr = 0x00000000; | ||
133 | |||
134 | for (i = 0; (i < NR_IRQS); i++) { | ||
135 | set_irq_chip(i, &intc_irq_chip); | ||
136 | set_irq_handler(i, handle_level_irq); | ||
137 | } | ||
138 | } | ||
139 | |||
diff --git a/arch/m68k/platform/68EZ328/Makefile b/arch/m68k/platform/68EZ328/Makefile new file mode 100644 index 000000000000..ee97735a242c --- /dev/null +++ b/arch/m68k/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/m68k/platform/68EZ328/bootlogo.h b/arch/m68k/platform/68EZ328/bootlogo.h new file mode 100644 index 000000000000..e842bdae5839 --- /dev/null +++ b/arch/m68k/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/m68k/platform/68EZ328/config.c b/arch/m68k/platform/68EZ328/config.c new file mode 100644 index 000000000000..1be1a16f6896 --- /dev/null +++ b/arch/m68k/platform/68EZ328/config.c | |||
@@ -0,0 +1,76 @@ | |||
1 | /***************************************************************************/ | ||
2 | |||
3 | /* | ||
4 | * linux/arch/m68knommu/platform/68EZ328/config.c | ||
5 | * | ||
6 | * Copyright (C) 1993 Hamish Macdonald | ||
7 | * Copyright (C) 1999 D. Jeff Dionne | ||
8 | * | ||
9 | * This file is subject to the terms and conditions of the GNU General Public | ||
10 | * License. See the file COPYING in the main directory of this archive | ||
11 | * for more details. | ||
12 | */ | ||
13 | |||
14 | /***************************************************************************/ | ||
15 | |||
16 | #include <linux/types.h> | ||
17 | #include <linux/kernel.h> | ||
18 | #include <asm/system.h> | ||
19 | #include <asm/pgtable.h> | ||
20 | #include <asm/machdep.h> | ||
21 | #include <asm/MC68EZ328.h> | ||
22 | #ifdef CONFIG_UCSIMM | ||
23 | #include <asm/bootstd.h> | ||
24 | #endif | ||
25 | |||
26 | /***************************************************************************/ | ||
27 | |||
28 | void m68328_timer_gettod(int *year, int *mon, int *day, int *hour, int *min, int *sec); | ||
29 | |||
30 | /***************************************************************************/ | ||
31 | |||
32 | void m68ez328_reset(void) | ||
33 | { | ||
34 | local_irq_disable(); | ||
35 | asm volatile ( | ||
36 | "moveal #0x10c00000, %a0;\n" | ||
37 | "moveb #0, 0xFFFFF300;\n" | ||
38 | "moveal 0(%a0), %sp;\n" | ||
39 | "moveal 4(%a0), %a0;\n" | ||
40 | "jmp (%a0);\n" | ||
41 | ); | ||
42 | } | ||
43 | |||
44 | /***************************************************************************/ | ||
45 | |||
46 | unsigned char *cs8900a_hwaddr; | ||
47 | static int errno; | ||
48 | |||
49 | #ifdef CONFIG_UCSIMM | ||
50 | _bsc0(char *, getserialnum) | ||
51 | _bsc1(unsigned char *, gethwaddr, int, a) | ||
52 | _bsc1(char *, getbenv, char *, a) | ||
53 | #endif | ||
54 | |||
55 | void config_BSP(char *command, int len) | ||
56 | { | ||
57 | unsigned char *p; | ||
58 | |||
59 | printk(KERN_INFO "\n68EZ328 DragonBallEZ support (C) 1999 Rt-Control, Inc\n"); | ||
60 | |||
61 | #ifdef CONFIG_UCSIMM | ||
62 | printk(KERN_INFO "uCsimm serial string [%s]\n",getserialnum()); | ||
63 | p = cs8900a_hwaddr = gethwaddr(0); | ||
64 | printk(KERN_INFO "uCsimm hwaddr %.2x:%.2x:%.2x:%.2x:%.2x:%.2x\n", | ||
65 | p[0], p[1], p[2], p[3], p[4], p[5]); | ||
66 | |||
67 | p = getbenv("APPEND"); | ||
68 | if (p) strcpy(p,command); | ||
69 | else command[0] = 0; | ||
70 | #endif | ||
71 | |||
72 | mach_gettod = m68328_timer_gettod; | ||
73 | mach_reset = m68ez328_reset; | ||
74 | } | ||
75 | |||
76 | /***************************************************************************/ | ||
diff --git a/arch/m68k/platform/68VZ328/Makefile b/arch/m68k/platform/68VZ328/Makefile new file mode 100644 index 000000000000..447ffa0fd7c7 --- /dev/null +++ b/arch/m68k/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/m68k/platform/68VZ328/config.c b/arch/m68k/platform/68VZ328/config.c new file mode 100644 index 000000000000..eabaabe8af36 --- /dev/null +++ b/arch/m68k/platform/68VZ328/config.c | |||
@@ -0,0 +1,188 @@ | |||
1 | /***************************************************************************/ | ||
2 | |||
3 | /* | ||
4 | * linux/arch/m68knommu/platform/68VZ328/config.c | ||
5 | * | ||
6 | * Copyright (C) 1993 Hamish Macdonald | ||
7 | * Copyright (C) 1999 D. Jeff Dionne | ||
8 | * Copyright (C) 2001 Georges Menie, Ken Desmet | ||
9 | * | ||
10 | * This file is subject to the terms and conditions of the GNU General Public | ||
11 | * License. See the file COPYING in the main directory of this archive | ||
12 | * for more details. | ||
13 | */ | ||
14 | |||
15 | /***************************************************************************/ | ||
16 | |||
17 | #include <linux/types.h> | ||
18 | #include <linux/kernel.h> | ||
19 | #include <linux/kd.h> | ||
20 | #include <linux/netdevice.h> | ||
21 | #include <linux/interrupt.h> | ||
22 | #include <linux/irq.h> | ||
23 | |||
24 | #include <asm/system.h> | ||
25 | #include <asm/pgtable.h> | ||
26 | #include <asm/machdep.h> | ||
27 | #include <asm/MC68VZ328.h> | ||
28 | #include <asm/bootstd.h> | ||
29 | |||
30 | #ifdef CONFIG_INIT_LCD | ||
31 | #include "bootlogo.h" | ||
32 | #endif | ||
33 | |||
34 | /***************************************************************************/ | ||
35 | |||
36 | void m68328_timer_gettod(int *year, int *mon, int *day, int *hour, int *min, int *sec); | ||
37 | |||
38 | /***************************************************************************/ | ||
39 | /* Init Drangon Engine hardware */ | ||
40 | /***************************************************************************/ | ||
41 | #if defined(CONFIG_DRAGEN2) | ||
42 | |||
43 | static void m68vz328_reset(void) | ||
44 | { | ||
45 | local_irq_disable(); | ||
46 | |||
47 | #ifdef CONFIG_INIT_LCD | ||
48 | PBDATA |= 0x20; /* disable CCFL light */ | ||
49 | PKDATA |= 0x4; /* disable LCD controller */ | ||
50 | LCKCON = 0; | ||
51 | #endif | ||
52 | |||
53 | __asm__ __volatile__( | ||
54 | "reset\n\t" | ||
55 | "moveal #0x04000000, %a0\n\t" | ||
56 | "moveal 0(%a0), %sp\n\t" | ||
57 | "moveal 4(%a0), %a0\n\t" | ||
58 | "jmp (%a0)" | ||
59 | ); | ||
60 | } | ||
61 | |||
62 | static void init_hardware(char *command, int size) | ||
63 | { | ||
64 | #ifdef CONFIG_DIRECT_IO_ACCESS | ||
65 | SCR = 0x10; /* allow user access to internal registers */ | ||
66 | #endif | ||
67 | |||
68 | /* CSGB Init */ | ||
69 | CSGBB = 0x4000; | ||
70 | CSB = 0x1a1; | ||
71 | |||
72 | /* CS8900 init */ | ||
73 | /* PK3: hardware sleep function pin, active low */ | ||
74 | PKSEL |= PK(3); /* select pin as I/O */ | ||
75 | PKDIR |= PK(3); /* select pin as output */ | ||
76 | PKDATA |= PK(3); /* set pin high */ | ||
77 | |||
78 | /* PF5: hardware reset function pin, active high */ | ||
79 | PFSEL |= PF(5); /* select pin as I/O */ | ||
80 | PFDIR |= PF(5); /* select pin as output */ | ||
81 | PFDATA &= ~PF(5); /* set pin low */ | ||
82 | |||
83 | /* cs8900 hardware reset */ | ||
84 | PFDATA |= PF(5); | ||
85 | { int i; for (i = 0; i < 32000; ++i); } | ||
86 | PFDATA &= ~PF(5); | ||
87 | |||
88 | /* INT1 enable (cs8900 IRQ) */ | ||
89 | PDPOL &= ~PD(1); /* active high signal */ | ||
90 | PDIQEG &= ~PD(1); | ||
91 | PDIRQEN |= PD(1); /* IRQ enabled */ | ||
92 | |||
93 | #ifdef CONFIG_INIT_LCD | ||
94 | /* initialize LCD controller */ | ||
95 | LSSA = (long) screen_bits; | ||
96 | LVPW = 0x14; | ||
97 | LXMAX = 0x140; | ||
98 | LYMAX = 0xef; | ||
99 | LRRA = 0; | ||
100 | LPXCD = 3; | ||
101 | LPICF = 0x08; | ||
102 | LPOLCF = 0; | ||
103 | LCKCON = 0x80; | ||
104 | PCPDEN = 0xff; | ||
105 | PCSEL = 0; | ||
106 | |||
107 | /* Enable LCD controller */ | ||
108 | PKDIR |= 0x4; | ||
109 | PKSEL |= 0x4; | ||
110 | PKDATA &= ~0x4; | ||
111 | |||
112 | /* Enable CCFL backlighting circuit */ | ||
113 | PBDIR |= 0x20; | ||
114 | PBSEL |= 0x20; | ||
115 | PBDATA &= ~0x20; | ||
116 | |||
117 | /* contrast control register */ | ||
118 | PFDIR |= 0x1; | ||
119 | PFSEL &= ~0x1; | ||
120 | PWMR = 0x037F; | ||
121 | #endif | ||
122 | } | ||
123 | |||
124 | /***************************************************************************/ | ||
125 | /* Init RT-Control uCdimm hardware */ | ||
126 | /***************************************************************************/ | ||
127 | #elif defined(CONFIG_UCDIMM) | ||
128 | |||
129 | static void m68vz328_reset(void) | ||
130 | { | ||
131 | local_irq_disable(); | ||
132 | asm volatile ( | ||
133 | "moveal #0x10c00000, %a0;\n\t" | ||
134 | "moveb #0, 0xFFFFF300;\n\t" | ||
135 | "moveal 0(%a0), %sp;\n\t" | ||
136 | "moveal 4(%a0), %a0;\n\t" | ||
137 | "jmp (%a0);\n" | ||
138 | ); | ||
139 | } | ||
140 | |||
141 | unsigned char *cs8900a_hwaddr; | ||
142 | static int errno; | ||
143 | |||
144 | _bsc0(char *, getserialnum) | ||
145 | _bsc1(unsigned char *, gethwaddr, int, a) | ||
146 | _bsc1(char *, getbenv, char *, a) | ||
147 | |||
148 | static void init_hardware(char *command, int size) | ||
149 | { | ||
150 | char *p; | ||
151 | |||
152 | printk(KERN_INFO "uCdimm serial string [%s]\n", getserialnum()); | ||
153 | p = cs8900a_hwaddr = gethwaddr(0); | ||
154 | printk(KERN_INFO "uCdimm hwaddr %.2x:%.2x:%.2x:%.2x:%.2x:%.2x\n", | ||
155 | p[0], p[1], p[2], p[3], p[4], p[5]); | ||
156 | p = getbenv("APPEND"); | ||
157 | if (p) | ||
158 | strcpy(p, command); | ||
159 | else | ||
160 | command[0] = 0; | ||
161 | } | ||
162 | |||
163 | /***************************************************************************/ | ||
164 | #else | ||
165 | |||
166 | static void m68vz328_reset(void) | ||
167 | { | ||
168 | } | ||
169 | |||
170 | static void init_hardware(char *command, int size) | ||
171 | { | ||
172 | } | ||
173 | |||
174 | /***************************************************************************/ | ||
175 | #endif | ||
176 | /***************************************************************************/ | ||
177 | |||
178 | void config_BSP(char *command, int size) | ||
179 | { | ||
180 | printk(KERN_INFO "68VZ328 DragonBallVZ support (c) 2001 Lineo, Inc.\n"); | ||
181 | |||
182 | init_hardware(command, size); | ||
183 | |||
184 | mach_gettod = m68328_timer_gettod; | ||
185 | mach_reset = m68vz328_reset; | ||
186 | } | ||
187 | |||
188 | /***************************************************************************/ | ||
diff --git a/arch/m68k/platform/Makefile b/arch/m68k/platform/Makefile new file mode 100644 index 000000000000..fc932bf65d34 --- /dev/null +++ b/arch/m68k/platform/Makefile | |||
@@ -0,0 +1,3 @@ | |||
1 | # | ||
2 | # Makefile for the arch/m68knommu/platform. | ||
3 | # | ||
diff --git a/arch/m68k/platform/coldfire/Makefile b/arch/m68k/platform/coldfire/Makefile new file mode 100644 index 000000000000..a8967baabd72 --- /dev/null +++ b/arch/m68k/platform/coldfire/Makefile | |||
@@ -0,0 +1,32 @@ | |||
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 | # ccflags-y := -DTRAP_DBG_INTERRUPT | ||
12 | # asflags-y := -DTRAP_DBG_INTERRUPT | ||
13 | # | ||
14 | |||
15 | asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1 | ||
16 | |||
17 | obj-$(CONFIG_COLDFIRE) += cache.o clk.o dma.o entry.o vectors.o | ||
18 | obj-$(CONFIG_M5206) += timers.o intc.o | ||
19 | obj-$(CONFIG_M5206e) += timers.o intc.o | ||
20 | obj-$(CONFIG_M520x) += pit.o intc-simr.o | ||
21 | obj-$(CONFIG_M523x) += pit.o dma_timer.o intc-2.o | ||
22 | obj-$(CONFIG_M5249) += timers.o intc.o | ||
23 | obj-$(CONFIG_M527x) += pit.o intc-2.o | ||
24 | obj-$(CONFIG_M5272) += timers.o | ||
25 | obj-$(CONFIG_M528x) += pit.o intc-2.o | ||
26 | obj-$(CONFIG_M5307) += timers.o intc.o | ||
27 | obj-$(CONFIG_M532x) += timers.o intc-simr.o | ||
28 | obj-$(CONFIG_M5407) += timers.o intc.o | ||
29 | obj-$(CONFIG_M54xx) += sltimers.o intc-2.o | ||
30 | |||
31 | obj-y += pinmux.o gpio.o | ||
32 | extra-y := head.o | ||
diff --git a/arch/m68k/platform/coldfire/cache.c b/arch/m68k/platform/coldfire/cache.c new file mode 100644 index 000000000000..235d3c4f4f0f --- /dev/null +++ b/arch/m68k/platform/coldfire/cache.c | |||
@@ -0,0 +1,48 @@ | |||
1 | /***************************************************************************/ | ||
2 | |||
3 | /* | ||
4 | * cache.c -- general ColdFire Cache maintainence code | ||
5 | * | ||
6 | * Copyright (C) 2010, Greg Ungerer (gerg@snapgear.com) | ||
7 | */ | ||
8 | |||
9 | /***************************************************************************/ | ||
10 | |||
11 | #include <linux/kernel.h> | ||
12 | #include <asm/coldfire.h> | ||
13 | #include <asm/mcfsim.h> | ||
14 | |||
15 | /***************************************************************************/ | ||
16 | #ifdef CACHE_PUSH | ||
17 | /***************************************************************************/ | ||
18 | |||
19 | /* | ||
20 | * Use cpushl to push all dirty cache lines back to memory. | ||
21 | * Older versions of GAS don't seem to know how to generate the | ||
22 | * ColdFire cpushl instruction... Oh well, bit stuff it for now. | ||
23 | */ | ||
24 | |||
25 | void mcf_cache_push(void) | ||
26 | { | ||
27 | __asm__ __volatile__ ( | ||
28 | "clrl %%d0\n\t" | ||
29 | "1:\n\t" | ||
30 | "movel %%d0,%%a0\n\t" | ||
31 | "2:\n\t" | ||
32 | ".word 0xf468\n\t" | ||
33 | "addl %0,%%a0\n\t" | ||
34 | "cmpl %1,%%a0\n\t" | ||
35 | "blt 2b\n\t" | ||
36 | "addql #1,%%d0\n\t" | ||
37 | "cmpil %2,%%d0\n\t" | ||
38 | "bne 1b\n\t" | ||
39 | : /* No output */ | ||
40 | : "i" (CACHE_LINE_SIZE), | ||
41 | "i" (DCACHE_SIZE / CACHE_WAYS), | ||
42 | "i" (CACHE_WAYS) | ||
43 | : "d0", "a0" ); | ||
44 | } | ||
45 | |||
46 | /***************************************************************************/ | ||
47 | #endif /* CACHE_PUSH */ | ||
48 | /***************************************************************************/ | ||
diff --git a/arch/m68k/platform/coldfire/clk.c b/arch/m68k/platform/coldfire/clk.c new file mode 100644 index 000000000000..9f1260c5e2ad --- /dev/null +++ b/arch/m68k/platform/coldfire/clk.c | |||
@@ -0,0 +1,45 @@ | |||
1 | /***************************************************************************/ | ||
2 | |||
3 | /* | ||
4 | * clk.c -- general ColdFire CPU kernel clk handling | ||
5 | * | ||
6 | * Copyright (C) 2009, Greg Ungerer (gerg@snapgear.com) | ||
7 | */ | ||
8 | |||
9 | /***************************************************************************/ | ||
10 | |||
11 | #include <linux/kernel.h> | ||
12 | #include <linux/module.h> | ||
13 | #include <linux/clk.h> | ||
14 | #include <asm/coldfire.h> | ||
15 | |||
16 | /***************************************************************************/ | ||
17 | |||
18 | struct clk *clk_get(struct device *dev, const char *id) | ||
19 | { | ||
20 | return NULL; | ||
21 | } | ||
22 | EXPORT_SYMBOL(clk_get); | ||
23 | |||
24 | int clk_enable(struct clk *clk) | ||
25 | { | ||
26 | return 0; | ||
27 | } | ||
28 | EXPORT_SYMBOL(clk_enable); | ||
29 | |||
30 | void clk_disable(struct clk *clk) | ||
31 | { | ||
32 | } | ||
33 | EXPORT_SYMBOL(clk_disable); | ||
34 | |||
35 | void clk_put(struct clk *clk) | ||
36 | { | ||
37 | } | ||
38 | EXPORT_SYMBOL(clk_put); | ||
39 | |||
40 | unsigned long clk_get_rate(struct clk *clk) | ||
41 | { | ||
42 | return MCF_CLK; | ||
43 | } | ||
44 | EXPORT_SYMBOL(clk_get_rate); | ||
45 | /***************************************************************************/ | ||
diff --git a/arch/m68k/platform/coldfire/dma.c b/arch/m68k/platform/coldfire/dma.c new file mode 100644 index 000000000000..e88b95e2cc62 --- /dev/null +++ b/arch/m68k/platform/coldfire/dma.c | |||
@@ -0,0 +1,39 @@ | |||
1 | /***************************************************************************/ | ||
2 | |||
3 | /* | ||
4 | * dma.c -- Freescale ColdFire DMA support | ||
5 | * | ||
6 | * Copyright (C) 2007, Greg Ungerer (gerg@snapgear.com) | ||
7 | */ | ||
8 | |||
9 | /***************************************************************************/ | ||
10 | |||
11 | #include <linux/kernel.h> | ||
12 | #include <asm/dma.h> | ||
13 | #include <asm/coldfire.h> | ||
14 | #include <asm/mcfsim.h> | ||
15 | #include <asm/mcfdma.h> | ||
16 | |||
17 | /***************************************************************************/ | ||
18 | |||
19 | /* | ||
20 | * DMA channel base address table. | ||
21 | */ | ||
22 | unsigned int dma_base_addr[MAX_M68K_DMA_CHANNELS] = { | ||
23 | #ifdef MCFDMA_BASE0 | ||
24 | MCFDMA_BASE0, | ||
25 | #endif | ||
26 | #ifdef MCFDMA_BASE1 | ||
27 | MCFDMA_BASE1, | ||
28 | #endif | ||
29 | #ifdef MCFDMA_BASE2 | ||
30 | MCFDMA_BASE2, | ||
31 | #endif | ||
32 | #ifdef MCFDMA_BASE3 | ||
33 | MCFDMA_BASE3, | ||
34 | #endif | ||
35 | }; | ||
36 | |||
37 | unsigned int dma_device_address[MAX_M68K_DMA_CHANNELS]; | ||
38 | |||
39 | /***************************************************************************/ | ||
diff --git a/arch/m68k/platform/coldfire/dma_timer.c b/arch/m68k/platform/coldfire/dma_timer.c new file mode 100644 index 000000000000..a5f562823d7a --- /dev/null +++ b/arch/m68k/platform/coldfire/dma_timer.c | |||
@@ -0,0 +1,84 @@ | |||
1 | /* | ||
2 | * dma_timer.c -- Freescale ColdFire DMA Timer. | ||
3 | * | ||
4 | * Copyright (C) 2007, Benedikt Spranger <b.spranger@linutronix.de> | ||
5 | * Copyright (C) 2008. Sebastian Siewior, Linutronix | ||
6 | * | ||
7 | */ | ||
8 | |||
9 | #include <linux/clocksource.h> | ||
10 | #include <linux/io.h> | ||
11 | |||
12 | #include <asm/machdep.h> | ||
13 | #include <asm/coldfire.h> | ||
14 | #include <asm/mcfpit.h> | ||
15 | #include <asm/mcfsim.h> | ||
16 | |||
17 | #define DMA_TIMER_0 (0x00) | ||
18 | #define DMA_TIMER_1 (0x40) | ||
19 | #define DMA_TIMER_2 (0x80) | ||
20 | #define DMA_TIMER_3 (0xc0) | ||
21 | |||
22 | #define DTMR0 (MCF_IPSBAR + DMA_TIMER_0 + 0x400) | ||
23 | #define DTXMR0 (MCF_IPSBAR + DMA_TIMER_0 + 0x402) | ||
24 | #define DTER0 (MCF_IPSBAR + DMA_TIMER_0 + 0x403) | ||
25 | #define DTRR0 (MCF_IPSBAR + DMA_TIMER_0 + 0x404) | ||
26 | #define DTCR0 (MCF_IPSBAR + DMA_TIMER_0 + 0x408) | ||
27 | #define DTCN0 (MCF_IPSBAR + DMA_TIMER_0 + 0x40c) | ||
28 | |||
29 | #define DMA_FREQ ((MCF_CLK / 2) / 16) | ||
30 | |||
31 | /* DTMR */ | ||
32 | #define DMA_DTMR_RESTART (1 << 3) | ||
33 | #define DMA_DTMR_CLK_DIV_1 (1 << 1) | ||
34 | #define DMA_DTMR_CLK_DIV_16 (2 << 1) | ||
35 | #define DMA_DTMR_ENABLE (1 << 0) | ||
36 | |||
37 | static cycle_t cf_dt_get_cycles(struct clocksource *cs) | ||
38 | { | ||
39 | return __raw_readl(DTCN0); | ||
40 | } | ||
41 | |||
42 | static struct clocksource clocksource_cf_dt = { | ||
43 | .name = "coldfire_dma_timer", | ||
44 | .rating = 200, | ||
45 | .read = cf_dt_get_cycles, | ||
46 | .mask = CLOCKSOURCE_MASK(32), | ||
47 | .shift = 20, | ||
48 | .flags = CLOCK_SOURCE_IS_CONTINUOUS, | ||
49 | }; | ||
50 | |||
51 | static int __init init_cf_dt_clocksource(void) | ||
52 | { | ||
53 | /* | ||
54 | * We setup DMA timer 0 in free run mode. This incrementing counter is | ||
55 | * used as a highly precious clock source. With MCF_CLOCK = 150 MHz we | ||
56 | * get a ~213 ns resolution and the 32bit register will overflow almost | ||
57 | * every 15 minutes. | ||
58 | */ | ||
59 | __raw_writeb(0x00, DTXMR0); | ||
60 | __raw_writeb(0x00, DTER0); | ||
61 | __raw_writel(0x00000000, DTRR0); | ||
62 | __raw_writew(DMA_DTMR_CLK_DIV_16 | DMA_DTMR_ENABLE, DTMR0); | ||
63 | clocksource_cf_dt.mult = clocksource_hz2mult(DMA_FREQ, | ||
64 | clocksource_cf_dt.shift); | ||
65 | return clocksource_register(&clocksource_cf_dt); | ||
66 | } | ||
67 | |||
68 | arch_initcall(init_cf_dt_clocksource); | ||
69 | |||
70 | #define CYC2NS_SCALE_FACTOR 10 /* 2^10, carefully chosen */ | ||
71 | #define CYC2NS_SCALE ((1000000 << CYC2NS_SCALE_FACTOR) / (DMA_FREQ / 1000)) | ||
72 | |||
73 | static unsigned long long cycles2ns(unsigned long cycl) | ||
74 | { | ||
75 | return (unsigned long long) ((unsigned long long)cycl * | ||
76 | CYC2NS_SCALE) >> CYC2NS_SCALE_FACTOR; | ||
77 | } | ||
78 | |||
79 | unsigned long long sched_clock(void) | ||
80 | { | ||
81 | unsigned long cycl = __raw_readl(DTCN0); | ||
82 | |||
83 | return cycles2ns(cycl); | ||
84 | } | ||
diff --git a/arch/m68k/platform/coldfire/entry.S b/arch/m68k/platform/coldfire/entry.S new file mode 100644 index 000000000000..5837cf080b6d --- /dev/null +++ b/arch/m68k/platform/coldfire/entry.S | |||
@@ -0,0 +1,203 @@ | |||
1 | /* | ||
2 | * linux/arch/m68knommu/platform/5307/entry.S | ||
3 | * | ||
4 | * Copyright (C) 1999-2007, 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-2006 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/sys.h> | ||
30 | #include <linux/linkage.h> | ||
31 | #include <asm/unistd.h> | ||
32 | #include <asm/thread_info.h> | ||
33 | #include <asm/errno.h> | ||
34 | #include <asm/setup.h> | ||
35 | #include <asm/segment.h> | ||
36 | #include <asm/asm-offsets.h> | ||
37 | #include <asm/entry.h> | ||
38 | |||
39 | #ifdef CONFIG_COLDFIRE_SW_A7 | ||
40 | /* | ||
41 | * Define software copies of the supervisor and user stack pointers. | ||
42 | */ | ||
43 | .bss | ||
44 | sw_ksp: | ||
45 | .long 0 | ||
46 | sw_usp: | ||
47 | .long 0 | ||
48 | #endif /* CONFIG_COLDFIRE_SW_A7 */ | ||
49 | |||
50 | .text | ||
51 | |||
52 | .globl system_call | ||
53 | .globl resume | ||
54 | .globl ret_from_exception | ||
55 | .globl ret_from_signal | ||
56 | .globl sys_call_table | ||
57 | .globl inthandler | ||
58 | .globl fasthandler | ||
59 | |||
60 | enosys: | ||
61 | mov.l #sys_ni_syscall,%d3 | ||
62 | bra 1f | ||
63 | |||
64 | ENTRY(system_call) | ||
65 | SAVE_ALL | ||
66 | move #0x2000,%sr /* enable intrs again */ | ||
67 | |||
68 | cmpl #NR_syscalls,%d0 | ||
69 | jcc enosys | ||
70 | lea sys_call_table,%a0 | ||
71 | lsll #2,%d0 /* movel %a0@(%d0:l:4),%d3 */ | ||
72 | movel %a0@(%d0),%d3 | ||
73 | jeq enosys | ||
74 | |||
75 | 1: | ||
76 | movel %sp,%d2 /* get thread_info pointer */ | ||
77 | andl #-THREAD_SIZE,%d2 /* at start of kernel stack */ | ||
78 | movel %d2,%a0 | ||
79 | movel %a0@,%a1 /* save top of frame */ | ||
80 | movel %sp,%a1@(TASK_THREAD+THREAD_ESP0) | ||
81 | btst #(TIF_SYSCALL_TRACE%8),%a0@(TI_FLAGS+(31-TIF_SYSCALL_TRACE)/8) | ||
82 | bnes 1f | ||
83 | |||
84 | movel %d3,%a0 | ||
85 | jbsr %a0@ | ||
86 | movel %d0,%sp@(PT_OFF_D0) /* save the return value */ | ||
87 | jra ret_from_exception | ||
88 | 1: | ||
89 | movel #-ENOSYS,%d2 /* strace needs -ENOSYS in PT_OFF_D0 */ | ||
90 | movel %d2,PT_OFF_D0(%sp) /* on syscall entry */ | ||
91 | subql #4,%sp | ||
92 | SAVE_SWITCH_STACK | ||
93 | jbsr syscall_trace_enter | ||
94 | RESTORE_SWITCH_STACK | ||
95 | addql #4,%sp | ||
96 | movel %d3,%a0 | ||
97 | jbsr %a0@ | ||
98 | movel %d0,%sp@(PT_OFF_D0) /* save the return value */ | ||
99 | subql #4,%sp /* dummy return address */ | ||
100 | SAVE_SWITCH_STACK | ||
101 | jbsr syscall_trace_leave | ||
102 | |||
103 | ret_from_signal: | ||
104 | RESTORE_SWITCH_STACK | ||
105 | addql #4,%sp | ||
106 | |||
107 | ret_from_exception: | ||
108 | move #0x2700,%sr /* disable intrs */ | ||
109 | btst #5,%sp@(PT_OFF_SR) /* check if returning to kernel */ | ||
110 | jeq Luser_return /* if so, skip resched, signals */ | ||
111 | |||
112 | #ifdef CONFIG_PREEMPT | ||
113 | movel %sp,%d1 /* get thread_info pointer */ | ||
114 | andl #-THREAD_SIZE,%d1 /* at base of kernel stack */ | ||
115 | movel %d1,%a0 | ||
116 | movel %a0@(TI_FLAGS),%d1 /* get thread_info->flags */ | ||
117 | andl #(1<<TIF_NEED_RESCHED),%d1 | ||
118 | jeq Lkernel_return | ||
119 | |||
120 | movel %a0@(TI_PREEMPTCOUNT),%d1 | ||
121 | cmpl #0,%d1 | ||
122 | jne Lkernel_return | ||
123 | |||
124 | pea Lkernel_return | ||
125 | jmp preempt_schedule_irq /* preempt the kernel */ | ||
126 | #endif | ||
127 | |||
128 | Lkernel_return: | ||
129 | moveml %sp@,%d1-%d5/%a0-%a2 | ||
130 | lea %sp@(32),%sp /* space for 8 regs */ | ||
131 | movel %sp@+,%d0 | ||
132 | addql #4,%sp /* orig d0 */ | ||
133 | addl %sp@+,%sp /* stk adj */ | ||
134 | rte | ||
135 | |||
136 | Luser_return: | ||
137 | movel %sp,%d1 /* get thread_info pointer */ | ||
138 | andl #-THREAD_SIZE,%d1 /* at base of kernel stack */ | ||
139 | movel %d1,%a0 | ||
140 | movel %a0@(TI_FLAGS),%d1 /* get thread_info->flags */ | ||
141 | jne Lwork_to_do /* still work to do */ | ||
142 | |||
143 | Lreturn: | ||
144 | RESTORE_USER | ||
145 | |||
146 | Lwork_to_do: | ||
147 | movel %a0@(TI_FLAGS),%d1 /* get thread_info->flags */ | ||
148 | move #0x2000,%sr /* enable intrs again */ | ||
149 | btst #TIF_NEED_RESCHED,%d1 | ||
150 | jne reschedule | ||
151 | |||
152 | /* GERG: do we need something here for TRACEing?? */ | ||
153 | |||
154 | Lsignal_return: | ||
155 | subql #4,%sp /* dummy return address */ | ||
156 | SAVE_SWITCH_STACK | ||
157 | pea %sp@(SWITCH_STACK_SIZE) | ||
158 | jsr do_signal | ||
159 | addql #4,%sp | ||
160 | RESTORE_SWITCH_STACK | ||
161 | addql #4,%sp | ||
162 | jmp Luser_return | ||
163 | |||
164 | /* | ||
165 | * This is the generic interrupt handler (for all hardware interrupt | ||
166 | * sources). Calls upto high level code to do all the work. | ||
167 | */ | ||
168 | ENTRY(inthandler) | ||
169 | SAVE_ALL | ||
170 | moveq #-1,%d0 | ||
171 | movel %d0,%sp@(PT_OFF_ORIG_D0) | ||
172 | |||
173 | movew %sp@(PT_OFF_FORMATVEC),%d0 /* put exception # in d0 */ | ||
174 | andl #0x03fc,%d0 /* mask out vector only */ | ||
175 | |||
176 | movel %sp,%sp@- /* push regs arg */ | ||
177 | lsrl #2,%d0 /* calculate real vector # */ | ||
178 | movel %d0,%sp@- /* push vector number */ | ||
179 | jbsr do_IRQ /* call high level irq handler */ | ||
180 | lea %sp@(8),%sp /* pop args off stack */ | ||
181 | |||
182 | bra ret_from_exception | ||
183 | |||
184 | /* | ||
185 | * Beware - when entering resume, prev (the current task) is | ||
186 | * in a0, next (the new task) is in a1,so don't change these | ||
187 | * registers until their contents are no longer needed. | ||
188 | * This is always called in supervisor mode, so don't bother to save | ||
189 | * and restore sr; user's process sr is actually in the stack. | ||
190 | */ | ||
191 | ENTRY(resume) | ||
192 | movel %a0, %d1 /* get prev thread in d1 */ | ||
193 | RDUSP | ||
194 | movel %a2,%a0@(TASK_THREAD+THREAD_USP) | ||
195 | |||
196 | SAVE_SWITCH_STACK | ||
197 | movel %sp,%a0@(TASK_THREAD+THREAD_KSP) /* save kernel stack pointer */ | ||
198 | movel %a1@(TASK_THREAD+THREAD_KSP),%sp /* restore new thread stack */ | ||
199 | RESTORE_SWITCH_STACK | ||
200 | |||
201 | movel %a1@(TASK_THREAD+THREAD_USP),%a0 /* restore thread user stack */ | ||
202 | WRUSP | ||
203 | rts | ||
diff --git a/arch/m68k/platform/coldfire/gpio.c b/arch/m68k/platform/coldfire/gpio.c new file mode 100644 index 000000000000..ff0045793450 --- /dev/null +++ b/arch/m68k/platform/coldfire/gpio.c | |||
@@ -0,0 +1,127 @@ | |||
1 | /* | ||
2 | * Coldfire generic GPIO support. | ||
3 | * | ||
4 | * (C) Copyright 2009, Steven King <sfking@fdwdc.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 as published by | ||
8 | * the Free Software Foundation; version 2 of the License. | ||
9 | * | ||
10 | * This program is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU General Public License for more details. | ||
14 | */ | ||
15 | |||
16 | #include <linux/kernel.h> | ||
17 | #include <linux/init.h> | ||
18 | #include <linux/sysdev.h> | ||
19 | |||
20 | #include <asm/gpio.h> | ||
21 | #include <asm/pinmux.h> | ||
22 | #include <asm/mcfgpio.h> | ||
23 | |||
24 | #define MCF_CHIP(chip) container_of(chip, struct mcf_gpio_chip, gpio_chip) | ||
25 | |||
26 | int mcf_gpio_direction_input(struct gpio_chip *chip, unsigned offset) | ||
27 | { | ||
28 | unsigned long flags; | ||
29 | MCFGPIO_PORTTYPE dir; | ||
30 | struct mcf_gpio_chip *mcf_chip = MCF_CHIP(chip); | ||
31 | |||
32 | local_irq_save(flags); | ||
33 | dir = mcfgpio_read(mcf_chip->pddr); | ||
34 | dir &= ~mcfgpio_bit(chip->base + offset); | ||
35 | mcfgpio_write(dir, mcf_chip->pddr); | ||
36 | local_irq_restore(flags); | ||
37 | |||
38 | return 0; | ||
39 | } | ||
40 | |||
41 | int mcf_gpio_get_value(struct gpio_chip *chip, unsigned offset) | ||
42 | { | ||
43 | struct mcf_gpio_chip *mcf_chip = MCF_CHIP(chip); | ||
44 | |||
45 | return mcfgpio_read(mcf_chip->ppdr) & mcfgpio_bit(chip->base + offset); | ||
46 | } | ||
47 | |||
48 | int mcf_gpio_direction_output(struct gpio_chip *chip, unsigned offset, | ||
49 | int value) | ||
50 | { | ||
51 | unsigned long flags; | ||
52 | MCFGPIO_PORTTYPE data; | ||
53 | struct mcf_gpio_chip *mcf_chip = MCF_CHIP(chip); | ||
54 | |||
55 | local_irq_save(flags); | ||
56 | /* write the value to the output latch */ | ||
57 | data = mcfgpio_read(mcf_chip->podr); | ||
58 | if (value) | ||
59 | data |= mcfgpio_bit(chip->base + offset); | ||
60 | else | ||
61 | data &= ~mcfgpio_bit(chip->base + offset); | ||
62 | mcfgpio_write(data, mcf_chip->podr); | ||
63 | |||
64 | /* now set the direction to output */ | ||
65 | data = mcfgpio_read(mcf_chip->pddr); | ||
66 | data |= mcfgpio_bit(chip->base + offset); | ||
67 | mcfgpio_write(data, mcf_chip->pddr); | ||
68 | local_irq_restore(flags); | ||
69 | |||
70 | return 0; | ||
71 | } | ||
72 | |||
73 | void mcf_gpio_set_value(struct gpio_chip *chip, unsigned offset, int value) | ||
74 | { | ||
75 | struct mcf_gpio_chip *mcf_chip = MCF_CHIP(chip); | ||
76 | |||
77 | unsigned long flags; | ||
78 | MCFGPIO_PORTTYPE data; | ||
79 | |||
80 | local_irq_save(flags); | ||
81 | data = mcfgpio_read(mcf_chip->podr); | ||
82 | if (value) | ||
83 | data |= mcfgpio_bit(chip->base + offset); | ||
84 | else | ||
85 | data &= ~mcfgpio_bit(chip->base + offset); | ||
86 | mcfgpio_write(data, mcf_chip->podr); | ||
87 | local_irq_restore(flags); | ||
88 | } | ||
89 | |||
90 | void mcf_gpio_set_value_fast(struct gpio_chip *chip, unsigned offset, int value) | ||
91 | { | ||
92 | struct mcf_gpio_chip *mcf_chip = MCF_CHIP(chip); | ||
93 | |||
94 | if (value) | ||
95 | mcfgpio_write(mcfgpio_bit(chip->base + offset), mcf_chip->setr); | ||
96 | else | ||
97 | mcfgpio_write(~mcfgpio_bit(chip->base + offset), mcf_chip->clrr); | ||
98 | } | ||
99 | |||
100 | int mcf_gpio_request(struct gpio_chip *chip, unsigned offset) | ||
101 | { | ||
102 | struct mcf_gpio_chip *mcf_chip = MCF_CHIP(chip); | ||
103 | |||
104 | return mcf_chip->gpio_to_pinmux ? | ||
105 | mcf_pinmux_request(mcf_chip->gpio_to_pinmux[offset], 0) : 0; | ||
106 | } | ||
107 | |||
108 | void mcf_gpio_free(struct gpio_chip *chip, unsigned offset) | ||
109 | { | ||
110 | struct mcf_gpio_chip *mcf_chip = MCF_CHIP(chip); | ||
111 | |||
112 | mcf_gpio_direction_input(chip, offset); | ||
113 | |||
114 | if (mcf_chip->gpio_to_pinmux) | ||
115 | mcf_pinmux_release(mcf_chip->gpio_to_pinmux[offset], 0); | ||
116 | } | ||
117 | |||
118 | struct sysdev_class mcf_gpio_sysclass = { | ||
119 | .name = "gpio", | ||
120 | }; | ||
121 | |||
122 | static int __init mcf_gpio_sysinit(void) | ||
123 | { | ||
124 | return sysdev_class_register(&mcf_gpio_sysclass); | ||
125 | } | ||
126 | |||
127 | core_initcall(mcf_gpio_sysinit); | ||
diff --git a/arch/m68k/platform/coldfire/head.S b/arch/m68k/platform/coldfire/head.S new file mode 100644 index 000000000000..129bff4956b5 --- /dev/null +++ b/arch/m68k/platform/coldfire/head.S | |||
@@ -0,0 +1,250 @@ | |||
1 | /*****************************************************************************/ | ||
2 | |||
3 | /* | ||
4 | * head.S -- common startup code for ColdFire CPUs. | ||
5 | * | ||
6 | * (C) Copyright 1999-2010, Greg Ungerer <gerg@snapgear.com>. | ||
7 | */ | ||
8 | |||
9 | /*****************************************************************************/ | ||
10 | |||
11 | #include <linux/sys.h> | ||
12 | #include <linux/linkage.h> | ||
13 | #include <linux/init.h> | ||
14 | #include <asm/asm-offsets.h> | ||
15 | #include <asm/coldfire.h> | ||
16 | #include <asm/mcfsim.h> | ||
17 | #include <asm/thread_info.h> | ||
18 | |||
19 | /*****************************************************************************/ | ||
20 | |||
21 | /* | ||
22 | * If we don't have a fixed memory size, then lets build in code | ||
23 | * to auto detect the DRAM size. Obviously this is the prefered | ||
24 | * method, and should work for most boards. It won't work for those | ||
25 | * that do not have their RAM starting at address 0, and it only | ||
26 | * works on SDRAM (not boards fitted with SRAM). | ||
27 | */ | ||
28 | #if CONFIG_RAMSIZE != 0 | ||
29 | .macro GET_MEM_SIZE | ||
30 | movel #CONFIG_RAMSIZE,%d0 /* hard coded memory size */ | ||
31 | .endm | ||
32 | |||
33 | #elif defined(CONFIG_M5206) || defined(CONFIG_M5206e) || \ | ||
34 | defined(CONFIG_M5249) || defined(CONFIG_M527x) || \ | ||
35 | defined(CONFIG_M528x) || defined(CONFIG_M5307) || \ | ||
36 | defined(CONFIG_M5407) | ||
37 | /* | ||
38 | * Not all these devices have exactly the same DRAM controller, | ||
39 | * but the DCMR register is virtually identical - give or take | ||
40 | * a couple of bits. The only exception is the 5272 devices, their | ||
41 | * DRAM controller is quite different. | ||
42 | */ | ||
43 | .macro GET_MEM_SIZE | ||
44 | movel MCFSIM_DMR0,%d0 /* get mask for 1st bank */ | ||
45 | btst #0,%d0 /* check if region enabled */ | ||
46 | beq 1f | ||
47 | andl #0xfffc0000,%d0 | ||
48 | beq 1f | ||
49 | addl #0x00040000,%d0 /* convert mask to size */ | ||
50 | 1: | ||
51 | movel MCFSIM_DMR1,%d1 /* get mask for 2nd bank */ | ||
52 | btst #0,%d1 /* check if region enabled */ | ||
53 | beq 2f | ||
54 | andl #0xfffc0000,%d1 | ||
55 | beq 2f | ||
56 | addl #0x00040000,%d1 | ||
57 | addl %d1,%d0 /* total mem size in d0 */ | ||
58 | 2: | ||
59 | .endm | ||
60 | |||
61 | #elif defined(CONFIG_M5272) | ||
62 | .macro GET_MEM_SIZE | ||
63 | movel MCF_MBAR+MCFSIM_CSOR7,%d0 /* get SDRAM address mask */ | ||
64 | andil #0xfffff000,%d0 /* mask out chip select options */ | ||
65 | negl %d0 /* negate bits */ | ||
66 | .endm | ||
67 | |||
68 | #elif defined(CONFIG_M520x) | ||
69 | .macro GET_MEM_SIZE | ||
70 | clrl %d0 | ||
71 | movel MCFSIM_SDCS0, %d2 /* Get SDRAM chip select 0 config */ | ||
72 | andl #0x1f, %d2 /* Get only the chip select size */ | ||
73 | beq 3f /* Check if it is enabled */ | ||
74 | addql #1, %d2 /* Form exponent */ | ||
75 | moveql #1, %d0 | ||
76 | lsll %d2, %d0 /* 2 ^ exponent */ | ||
77 | 3: | ||
78 | movel MCFSIM_SDCS1, %d2 /* Get SDRAM chip select 1 config */ | ||
79 | andl #0x1f, %d2 /* Get only the chip select size */ | ||
80 | beq 4f /* Check if it is enabled */ | ||
81 | addql #1, %d2 /* Form exponent */ | ||
82 | moveql #1, %d1 | ||
83 | lsll %d2, %d1 /* 2 ^ exponent */ | ||
84 | addl %d1, %d0 /* Total size of SDRAM in d0 */ | ||
85 | 4: | ||
86 | .endm | ||
87 | |||
88 | #else | ||
89 | #error "ERROR: I don't know how to probe your boards memory size?" | ||
90 | #endif | ||
91 | |||
92 | /*****************************************************************************/ | ||
93 | |||
94 | /* | ||
95 | * Boards and platforms can do specific early hardware setup if | ||
96 | * they need to. Most don't need this, define away if not required. | ||
97 | */ | ||
98 | #ifndef PLATFORM_SETUP | ||
99 | #define PLATFORM_SETUP | ||
100 | #endif | ||
101 | |||
102 | /*****************************************************************************/ | ||
103 | |||
104 | .global _start | ||
105 | .global _rambase | ||
106 | .global _ramvec | ||
107 | .global _ramstart | ||
108 | .global _ramend | ||
109 | #if defined(CONFIG_UBOOT) | ||
110 | .global _init_sp | ||
111 | #endif | ||
112 | |||
113 | /*****************************************************************************/ | ||
114 | |||
115 | .data | ||
116 | |||
117 | /* | ||
118 | * During startup we store away the RAM setup. These are not in the | ||
119 | * bss, since their values are determined and written before the bss | ||
120 | * has been cleared. | ||
121 | */ | ||
122 | _rambase: | ||
123 | .long 0 | ||
124 | _ramvec: | ||
125 | .long 0 | ||
126 | _ramstart: | ||
127 | .long 0 | ||
128 | _ramend: | ||
129 | .long 0 | ||
130 | #if defined(CONFIG_UBOOT) | ||
131 | _init_sp: | ||
132 | .long 0 | ||
133 | #endif | ||
134 | |||
135 | /*****************************************************************************/ | ||
136 | |||
137 | __HEAD | ||
138 | |||
139 | /* | ||
140 | * This is the codes first entry point. This is where it all | ||
141 | * begins... | ||
142 | */ | ||
143 | |||
144 | _start: | ||
145 | nop /* filler */ | ||
146 | movew #0x2700, %sr /* no interrupts */ | ||
147 | #if defined(CONFIG_UBOOT) | ||
148 | movel %sp,_init_sp /* save initial stack pointer */ | ||
149 | #endif | ||
150 | |||
151 | /* | ||
152 | * Do any platform or board specific setup now. Most boards | ||
153 | * don't need anything. Those exceptions are define this in | ||
154 | * their board specific includes. | ||
155 | */ | ||
156 | PLATFORM_SETUP | ||
157 | |||
158 | /* | ||
159 | * Create basic memory configuration. Set VBR accordingly, | ||
160 | * and size memory. | ||
161 | */ | ||
162 | movel #CONFIG_VECTORBASE,%a7 | ||
163 | movec %a7,%VBR /* set vectors addr */ | ||
164 | movel %a7,_ramvec | ||
165 | |||
166 | movel #CONFIG_RAMBASE,%a7 /* mark the base of RAM */ | ||
167 | movel %a7,_rambase | ||
168 | |||
169 | GET_MEM_SIZE /* macro code determines size */ | ||
170 | addl %a7,%d0 | ||
171 | movel %d0,_ramend /* set end ram addr */ | ||
172 | |||
173 | /* | ||
174 | * Now that we know what the memory is, lets enable cache | ||
175 | * and get things moving. This is Coldfire CPU specific. Not | ||
176 | * all version cores have identical cache register setup. But | ||
177 | * it is very similar. Define the exact settings in the headers | ||
178 | * then the code here is the same for all. | ||
179 | */ | ||
180 | movel #CACHE_INIT,%d0 /* invalidate whole cache */ | ||
181 | movec %d0,%CACR | ||
182 | nop | ||
183 | movel #ACR0_MODE,%d0 /* set RAM region for caching */ | ||
184 | movec %d0,%ACR0 | ||
185 | movel #ACR1_MODE,%d0 /* anything else to cache? */ | ||
186 | movec %d0,%ACR1 | ||
187 | #ifdef ACR2_MODE | ||
188 | movel #ACR2_MODE,%d0 | ||
189 | movec %d0,%ACR2 | ||
190 | movel #ACR3_MODE,%d0 | ||
191 | movec %d0,%ACR3 | ||
192 | #endif | ||
193 | movel #CACHE_MODE,%d0 /* enable cache */ | ||
194 | movec %d0,%CACR | ||
195 | nop | ||
196 | |||
197 | #ifdef CONFIG_ROMFS_FS | ||
198 | /* | ||
199 | * Move ROM filesystem above bss :-) | ||
200 | */ | ||
201 | lea _sbss,%a0 /* get start of bss */ | ||
202 | lea _ebss,%a1 /* set up destination */ | ||
203 | movel %a0,%a2 /* copy of bss start */ | ||
204 | |||
205 | movel 8(%a0),%d0 /* get size of ROMFS */ | ||
206 | addql #8,%d0 /* allow for rounding */ | ||
207 | andl #0xfffffffc, %d0 /* whole words */ | ||
208 | |||
209 | addl %d0,%a0 /* copy from end */ | ||
210 | addl %d0,%a1 /* copy from end */ | ||
211 | movel %a1,_ramstart /* set start of ram */ | ||
212 | |||
213 | _copy_romfs: | ||
214 | movel -(%a0),%d0 /* copy dword */ | ||
215 | movel %d0,-(%a1) | ||
216 | cmpl %a0,%a2 /* check if at end */ | ||
217 | bne _copy_romfs | ||
218 | |||
219 | #else /* CONFIG_ROMFS_FS */ | ||
220 | lea _ebss,%a1 | ||
221 | movel %a1,_ramstart | ||
222 | #endif /* CONFIG_ROMFS_FS */ | ||
223 | |||
224 | |||
225 | /* | ||
226 | * Zero out the bss region. | ||
227 | */ | ||
228 | lea _sbss,%a0 /* get start of bss */ | ||
229 | lea _ebss,%a1 /* get end of bss */ | ||
230 | clrl %d0 /* set value */ | ||
231 | _clear_bss: | ||
232 | movel %d0,(%a0)+ /* clear each word */ | ||
233 | cmpl %a0,%a1 /* check if at end */ | ||
234 | bne _clear_bss | ||
235 | |||
236 | /* | ||
237 | * Load the current task pointer and stack. | ||
238 | */ | ||
239 | lea init_thread_union,%a0 | ||
240 | lea THREAD_SIZE(%a0),%sp | ||
241 | |||
242 | /* | ||
243 | * Assember start up done, start code proper. | ||
244 | */ | ||
245 | jsr start_kernel /* start Linux kernel */ | ||
246 | |||
247 | _exit: | ||
248 | jmp _exit /* should never get here */ | ||
249 | |||
250 | /*****************************************************************************/ | ||
diff --git a/arch/m68k/platform/coldfire/intc-2.c b/arch/m68k/platform/coldfire/intc-2.c new file mode 100644 index 000000000000..2cbfbf035db9 --- /dev/null +++ b/arch/m68k/platform/coldfire/intc-2.c | |||
@@ -0,0 +1,214 @@ | |||
1 | /* | ||
2 | * intc-2.c | ||
3 | * | ||
4 | * General interrupt controller code for the many ColdFire cores that use | ||
5 | * interrupt controllers with 63 interrupt sources, organized as 56 fully- | ||
6 | * programmable + 7 fixed-level interrupt sources. This includes the 523x | ||
7 | * family, the 5270, 5271, 5274, 5275, and the 528x family which have two such | ||
8 | * controllers, and the 547x and 548x families which have only one of them. | ||
9 | * | ||
10 | * The external 7 fixed interrupts are part the the Edge Port unit of these | ||
11 | * ColdFire parts. They can be configured as level or edge triggered. | ||
12 | * | ||
13 | * (C) Copyright 2009-2011, Greg Ungerer <gerg@snapgear.com> | ||
14 | * | ||
15 | * This file is subject to the terms and conditions of the GNU General Public | ||
16 | * License. See the file COPYING in the main directory of this archive | ||
17 | * for more details. | ||
18 | */ | ||
19 | |||
20 | #include <linux/types.h> | ||
21 | #include <linux/init.h> | ||
22 | #include <linux/kernel.h> | ||
23 | #include <linux/interrupt.h> | ||
24 | #include <linux/irq.h> | ||
25 | #include <linux/io.h> | ||
26 | #include <asm/coldfire.h> | ||
27 | #include <asm/mcfsim.h> | ||
28 | #include <asm/traps.h> | ||
29 | |||
30 | /* | ||
31 | * Bit definitions for the ICR family of registers. | ||
32 | */ | ||
33 | #define MCFSIM_ICR_LEVEL(l) ((l)<<3) /* Level l intr */ | ||
34 | #define MCFSIM_ICR_PRI(p) (p) /* Priority p intr */ | ||
35 | |||
36 | /* | ||
37 | * The EDGE Port interrupts are the fixed 7 external interrupts. | ||
38 | * They need some special treatment, for example they need to be acked. | ||
39 | */ | ||
40 | #define EINT0 64 /* Is not actually used, but spot reserved for it */ | ||
41 | #define EINT1 65 /* EDGE Port interrupt 1 */ | ||
42 | #define EINT7 71 /* EDGE Port interrupt 7 */ | ||
43 | |||
44 | #ifdef MCFICM_INTC1 | ||
45 | #define NR_VECS 128 | ||
46 | #else | ||
47 | #define NR_VECS 64 | ||
48 | #endif | ||
49 | |||
50 | static void intc_irq_mask(struct irq_data *d) | ||
51 | { | ||
52 | unsigned int irq = d->irq - MCFINT_VECBASE; | ||
53 | unsigned long imraddr; | ||
54 | u32 val, imrbit; | ||
55 | |||
56 | #ifdef MCFICM_INTC1 | ||
57 | imraddr = (irq & 0x40) ? MCFICM_INTC1 : MCFICM_INTC0; | ||
58 | #else | ||
59 | imraddr = MCFICM_INTC0; | ||
60 | #endif | ||
61 | imraddr += (irq & 0x20) ? MCFINTC_IMRH : MCFINTC_IMRL; | ||
62 | imrbit = 0x1 << (irq & 0x1f); | ||
63 | |||
64 | val = __raw_readl(imraddr); | ||
65 | __raw_writel(val | imrbit, imraddr); | ||
66 | } | ||
67 | |||
68 | static void intc_irq_unmask(struct irq_data *d) | ||
69 | { | ||
70 | unsigned int irq = d->irq - MCFINT_VECBASE; | ||
71 | unsigned long imraddr; | ||
72 | u32 val, imrbit; | ||
73 | |||
74 | #ifdef MCFICM_INTC1 | ||
75 | imraddr = (irq & 0x40) ? MCFICM_INTC1 : MCFICM_INTC0; | ||
76 | #else | ||
77 | imraddr = MCFICM_INTC0; | ||
78 | #endif | ||
79 | imraddr += ((irq & 0x20) ? MCFINTC_IMRH : MCFINTC_IMRL); | ||
80 | imrbit = 0x1 << (irq & 0x1f); | ||
81 | |||
82 | /* Don't set the "maskall" bit! */ | ||
83 | if ((irq & 0x20) == 0) | ||
84 | imrbit |= 0x1; | ||
85 | |||
86 | val = __raw_readl(imraddr); | ||
87 | __raw_writel(val & ~imrbit, imraddr); | ||
88 | } | ||
89 | |||
90 | /* | ||
91 | * Only the external (or EDGE Port) interrupts need to be acknowledged | ||
92 | * here, as part of the IRQ handler. They only really need to be ack'ed | ||
93 | * if they are in edge triggered mode, but there is no harm in doing it | ||
94 | * for all types. | ||
95 | */ | ||
96 | static void intc_irq_ack(struct irq_data *d) | ||
97 | { | ||
98 | unsigned int irq = d->irq; | ||
99 | |||
100 | __raw_writeb(0x1 << (irq - EINT0), MCFEPORT_EPFR); | ||
101 | } | ||
102 | |||
103 | /* | ||
104 | * Each vector needs a unique priority and level associated with it. | ||
105 | * We don't really care so much what they are, we don't rely on the | ||
106 | * traditional priority interrupt scheme of the m68k/ColdFire. This | ||
107 | * only needs to be set once for an interrupt, and we will never change | ||
108 | * these values once we have set them. | ||
109 | */ | ||
110 | static u8 intc_intpri = MCFSIM_ICR_LEVEL(6) | MCFSIM_ICR_PRI(6); | ||
111 | |||
112 | static unsigned int intc_irq_startup(struct irq_data *d) | ||
113 | { | ||
114 | unsigned int irq = d->irq - MCFINT_VECBASE; | ||
115 | unsigned long icraddr; | ||
116 | |||
117 | #ifdef MCFICM_INTC1 | ||
118 | icraddr = (irq & 0x40) ? MCFICM_INTC1 : MCFICM_INTC0; | ||
119 | #else | ||
120 | icraddr = MCFICM_INTC0; | ||
121 | #endif | ||
122 | icraddr += MCFINTC_ICR0 + (irq & 0x3f); | ||
123 | if (__raw_readb(icraddr) == 0) | ||
124 | __raw_writeb(intc_intpri--, icraddr); | ||
125 | |||
126 | irq = d->irq; | ||
127 | if ((irq >= EINT1) && (irq <= EINT7)) { | ||
128 | u8 v; | ||
129 | |||
130 | irq -= EINT0; | ||
131 | |||
132 | /* Set EPORT line as input */ | ||
133 | v = __raw_readb(MCFEPORT_EPDDR); | ||
134 | __raw_writeb(v & ~(0x1 << irq), MCFEPORT_EPDDR); | ||
135 | |||
136 | /* Set EPORT line as interrupt source */ | ||
137 | v = __raw_readb(MCFEPORT_EPIER); | ||
138 | __raw_writeb(v | (0x1 << irq), MCFEPORT_EPIER); | ||
139 | } | ||
140 | |||
141 | intc_irq_unmask(d); | ||
142 | return 0; | ||
143 | } | ||
144 | |||
145 | static int intc_irq_set_type(struct irq_data *d, unsigned int type) | ||
146 | { | ||
147 | unsigned int irq = d->irq; | ||
148 | u16 pa, tb; | ||
149 | |||
150 | switch (type) { | ||
151 | case IRQ_TYPE_EDGE_RISING: | ||
152 | tb = 0x1; | ||
153 | break; | ||
154 | case IRQ_TYPE_EDGE_FALLING: | ||
155 | tb = 0x2; | ||
156 | break; | ||
157 | case IRQ_TYPE_EDGE_BOTH: | ||
158 | tb = 0x3; | ||
159 | break; | ||
160 | default: | ||
161 | /* Level triggered */ | ||
162 | tb = 0; | ||
163 | break; | ||
164 | } | ||
165 | |||
166 | if (tb) | ||
167 | set_irq_handler(irq, handle_edge_irq); | ||
168 | |||
169 | irq -= EINT0; | ||
170 | pa = __raw_readw(MCFEPORT_EPPAR); | ||
171 | pa = (pa & ~(0x3 << (irq * 2))) | (tb << (irq * 2)); | ||
172 | __raw_writew(pa, MCFEPORT_EPPAR); | ||
173 | |||
174 | return 0; | ||
175 | } | ||
176 | |||
177 | static struct irq_chip intc_irq_chip = { | ||
178 | .name = "CF-INTC", | ||
179 | .irq_startup = intc_irq_startup, | ||
180 | .irq_mask = intc_irq_mask, | ||
181 | .irq_unmask = intc_irq_unmask, | ||
182 | }; | ||
183 | |||
184 | static struct irq_chip intc_irq_chip_edge_port = { | ||
185 | .name = "CF-INTC-EP", | ||
186 | .irq_startup = intc_irq_startup, | ||
187 | .irq_mask = intc_irq_mask, | ||
188 | .irq_unmask = intc_irq_unmask, | ||
189 | .irq_ack = intc_irq_ack, | ||
190 | .irq_set_type = intc_irq_set_type, | ||
191 | }; | ||
192 | |||
193 | void __init init_IRQ(void) | ||
194 | { | ||
195 | int irq; | ||
196 | |||
197 | init_vectors(); | ||
198 | |||
199 | /* Mask all interrupt sources */ | ||
200 | __raw_writel(0x1, MCFICM_INTC0 + MCFINTC_IMRL); | ||
201 | #ifdef MCFICM_INTC1 | ||
202 | __raw_writel(0x1, MCFICM_INTC1 + MCFINTC_IMRL); | ||
203 | #endif | ||
204 | |||
205 | for (irq = MCFINT_VECBASE; (irq < MCFINT_VECBASE + NR_VECS); irq++) { | ||
206 | if ((irq >= EINT1) && (irq <=EINT7)) | ||
207 | set_irq_chip(irq, &intc_irq_chip_edge_port); | ||
208 | else | ||
209 | set_irq_chip(irq, &intc_irq_chip); | ||
210 | set_irq_type(irq, IRQ_TYPE_LEVEL_HIGH); | ||
211 | set_irq_handler(irq, handle_level_irq); | ||
212 | } | ||
213 | } | ||
214 | |||
diff --git a/arch/m68k/platform/coldfire/intc-simr.c b/arch/m68k/platform/coldfire/intc-simr.c new file mode 100644 index 000000000000..e642b24ab729 --- /dev/null +++ b/arch/m68k/platform/coldfire/intc-simr.c | |||
@@ -0,0 +1,191 @@ | |||
1 | /* | ||
2 | * intc-simr.c | ||
3 | * | ||
4 | * Interrupt controller code for the ColdFire 5208, 5207 & 532x parts. | ||
5 | * | ||
6 | * (C) Copyright 2009-2011, Greg Ungerer <gerg@snapgear.com> | ||
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/types.h> | ||
14 | #include <linux/init.h> | ||
15 | #include <linux/kernel.h> | ||
16 | #include <linux/interrupt.h> | ||
17 | #include <linux/irq.h> | ||
18 | #include <linux/io.h> | ||
19 | #include <asm/coldfire.h> | ||
20 | #include <asm/mcfsim.h> | ||
21 | #include <asm/traps.h> | ||
22 | |||
23 | /* | ||
24 | * The EDGE Port interrupts are the fixed 7 external interrupts. | ||
25 | * They need some special treatment, for example they need to be acked. | ||
26 | */ | ||
27 | #ifdef CONFIG_M520x | ||
28 | /* | ||
29 | * The 520x parts only support a limited range of these external | ||
30 | * interrupts, only 1, 4 and 7 (as interrupts 65, 66 and 67). | ||
31 | */ | ||
32 | #define EINT0 64 /* Is not actually used, but spot reserved for it */ | ||
33 | #define EINT1 65 /* EDGE Port interrupt 1 */ | ||
34 | #define EINT4 66 /* EDGE Port interrupt 4 */ | ||
35 | #define EINT7 67 /* EDGE Port interrupt 7 */ | ||
36 | |||
37 | static unsigned int irqebitmap[] = { 0, 1, 4, 7 }; | ||
38 | static unsigned int inline irq2ebit(unsigned int irq) | ||
39 | { | ||
40 | return irqebitmap[irq - EINT0]; | ||
41 | } | ||
42 | |||
43 | #else | ||
44 | |||
45 | /* | ||
46 | * Most of the ColdFire parts with the EDGE Port module just have | ||
47 | * a strait direct mapping of the 7 external interrupts. Although | ||
48 | * there is a bit reserved for 0, it is not used. | ||
49 | */ | ||
50 | #define EINT0 64 /* Is not actually used, but spot reserved for it */ | ||
51 | #define EINT1 65 /* EDGE Port interrupt 1 */ | ||
52 | #define EINT7 71 /* EDGE Port interrupt 7 */ | ||
53 | |||
54 | static unsigned int inline irq2ebit(unsigned int irq) | ||
55 | { | ||
56 | return irq - EINT0; | ||
57 | } | ||
58 | |||
59 | #endif | ||
60 | |||
61 | /* | ||
62 | * There maybe one or two interrupt control units, each has 64 | ||
63 | * interrupts. If there is no second unit then MCFINTC1_* defines | ||
64 | * will be 0 (and code for them optimized away). | ||
65 | */ | ||
66 | |||
67 | static void intc_irq_mask(struct irq_data *d) | ||
68 | { | ||
69 | unsigned int irq = d->irq - MCFINT_VECBASE; | ||
70 | |||
71 | if (MCFINTC1_SIMR && (irq > 64)) | ||
72 | __raw_writeb(irq - 64, MCFINTC1_SIMR); | ||
73 | else | ||
74 | __raw_writeb(irq, MCFINTC0_SIMR); | ||
75 | } | ||
76 | |||
77 | static void intc_irq_unmask(struct irq_data *d) | ||
78 | { | ||
79 | unsigned int irq = d->irq - MCFINT_VECBASE; | ||
80 | |||
81 | if (MCFINTC1_CIMR && (irq > 64)) | ||
82 | __raw_writeb(irq - 64, MCFINTC1_CIMR); | ||
83 | else | ||
84 | __raw_writeb(irq, MCFINTC0_CIMR); | ||
85 | } | ||
86 | |||
87 | static void intc_irq_ack(struct irq_data *d) | ||
88 | { | ||
89 | unsigned int ebit = irq2ebit(d->irq); | ||
90 | |||
91 | __raw_writeb(0x1 << ebit, MCFEPORT_EPFR); | ||
92 | } | ||
93 | |||
94 | static unsigned int intc_irq_startup(struct irq_data *d) | ||
95 | { | ||
96 | unsigned int irq = d->irq; | ||
97 | |||
98 | if ((irq >= EINT1) && (irq <= EINT7)) { | ||
99 | unsigned int ebit = irq2ebit(irq); | ||
100 | u8 v; | ||
101 | |||
102 | /* Set EPORT line as input */ | ||
103 | v = __raw_readb(MCFEPORT_EPDDR); | ||
104 | __raw_writeb(v & ~(0x1 << ebit), MCFEPORT_EPDDR); | ||
105 | |||
106 | /* Set EPORT line as interrupt source */ | ||
107 | v = __raw_readb(MCFEPORT_EPIER); | ||
108 | __raw_writeb(v | (0x1 << ebit), MCFEPORT_EPIER); | ||
109 | } | ||
110 | |||
111 | irq -= MCFINT_VECBASE; | ||
112 | if (MCFINTC1_ICR0 && (irq > 64)) | ||
113 | __raw_writeb(5, MCFINTC1_ICR0 + irq - 64); | ||
114 | else | ||
115 | __raw_writeb(5, MCFINTC0_ICR0 + irq); | ||
116 | |||
117 | |||
118 | intc_irq_unmask(d); | ||
119 | return 0; | ||
120 | } | ||
121 | |||
122 | static int intc_irq_set_type(struct irq_data *d, unsigned int type) | ||
123 | { | ||
124 | unsigned int ebit, irq = d->irq; | ||
125 | u16 pa, tb; | ||
126 | |||
127 | switch (type) { | ||
128 | case IRQ_TYPE_EDGE_RISING: | ||
129 | tb = 0x1; | ||
130 | break; | ||
131 | case IRQ_TYPE_EDGE_FALLING: | ||
132 | tb = 0x2; | ||
133 | break; | ||
134 | case IRQ_TYPE_EDGE_BOTH: | ||
135 | tb = 0x3; | ||
136 | break; | ||
137 | default: | ||
138 | /* Level triggered */ | ||
139 | tb = 0; | ||
140 | break; | ||
141 | } | ||
142 | |||
143 | if (tb) | ||
144 | set_irq_handler(irq, handle_edge_irq); | ||
145 | |||
146 | ebit = irq2ebit(irq) * 2; | ||
147 | pa = __raw_readw(MCFEPORT_EPPAR); | ||
148 | pa = (pa & ~(0x3 << ebit)) | (tb << ebit); | ||
149 | __raw_writew(pa, MCFEPORT_EPPAR); | ||
150 | |||
151 | return 0; | ||
152 | } | ||
153 | |||
154 | static struct irq_chip intc_irq_chip = { | ||
155 | .name = "CF-INTC", | ||
156 | .irq_startup = intc_irq_startup, | ||
157 | .irq_mask = intc_irq_mask, | ||
158 | .irq_unmask = intc_irq_unmask, | ||
159 | }; | ||
160 | |||
161 | static struct irq_chip intc_irq_chip_edge_port = { | ||
162 | .name = "CF-INTC-EP", | ||
163 | .irq_startup = intc_irq_startup, | ||
164 | .irq_mask = intc_irq_mask, | ||
165 | .irq_unmask = intc_irq_unmask, | ||
166 | .irq_ack = intc_irq_ack, | ||
167 | .irq_set_type = intc_irq_set_type, | ||
168 | }; | ||
169 | |||
170 | void __init init_IRQ(void) | ||
171 | { | ||
172 | int irq, eirq; | ||
173 | |||
174 | init_vectors(); | ||
175 | |||
176 | /* Mask all interrupt sources */ | ||
177 | __raw_writeb(0xff, MCFINTC0_SIMR); | ||
178 | if (MCFINTC1_SIMR) | ||
179 | __raw_writeb(0xff, MCFINTC1_SIMR); | ||
180 | |||
181 | eirq = MCFINT_VECBASE + 64 + (MCFINTC1_ICR0 ? 64 : 0); | ||
182 | for (irq = MCFINT_VECBASE; (irq < eirq); irq++) { | ||
183 | if ((irq >= EINT1) && (irq <= EINT7)) | ||
184 | set_irq_chip(irq, &intc_irq_chip_edge_port); | ||
185 | else | ||
186 | set_irq_chip(irq, &intc_irq_chip); | ||
187 | set_irq_type(irq, IRQ_TYPE_LEVEL_HIGH); | ||
188 | set_irq_handler(irq, handle_level_irq); | ||
189 | } | ||
190 | } | ||
191 | |||
diff --git a/arch/m68k/platform/coldfire/intc.c b/arch/m68k/platform/coldfire/intc.c new file mode 100644 index 000000000000..d648081a63f6 --- /dev/null +++ b/arch/m68k/platform/coldfire/intc.c | |||
@@ -0,0 +1,151 @@ | |||
1 | /* | ||
2 | * intc.c -- support for the old ColdFire interrupt controller | ||
3 | * | ||
4 | * (C) Copyright 2009, Greg Ungerer <gerg@snapgear.com> | ||
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 | #include <linux/types.h> | ||
12 | #include <linux/init.h> | ||
13 | #include <linux/kernel.h> | ||
14 | #include <linux/interrupt.h> | ||
15 | #include <linux/irq.h> | ||
16 | #include <linux/io.h> | ||
17 | #include <asm/traps.h> | ||
18 | #include <asm/coldfire.h> | ||
19 | #include <asm/mcfsim.h> | ||
20 | |||
21 | /* | ||
22 | * The mapping of irq number to a mask register bit is not one-to-one. | ||
23 | * The irq numbers are either based on "level" of interrupt or fixed | ||
24 | * for an autovector-able interrupt. So we keep a local data structure | ||
25 | * that maps from irq to mask register. Not all interrupts will have | ||
26 | * an IMR bit. | ||
27 | */ | ||
28 | unsigned char mcf_irq2imr[NR_IRQS]; | ||
29 | |||
30 | /* | ||
31 | * Define the miniumun and maximum external interrupt numbers. | ||
32 | * This is also used as the "level" interrupt numbers. | ||
33 | */ | ||
34 | #define EIRQ1 25 | ||
35 | #define EIRQ7 31 | ||
36 | |||
37 | /* | ||
38 | * In the early version 2 core ColdFire parts the IMR register was 16 bits | ||
39 | * in size. Version 3 (and later version 2) core parts have a 32 bit | ||
40 | * sized IMR register. Provide some size independant methods to access the | ||
41 | * IMR register. | ||
42 | */ | ||
43 | #ifdef MCFSIM_IMR_IS_16BITS | ||
44 | |||
45 | void mcf_setimr(int index) | ||
46 | { | ||
47 | u16 imr; | ||
48 | imr = __raw_readw(MCF_MBAR + MCFSIM_IMR); | ||
49 | __raw_writew(imr | (0x1 << index), MCF_MBAR + MCFSIM_IMR); | ||
50 | } | ||
51 | |||
52 | void mcf_clrimr(int index) | ||
53 | { | ||
54 | u16 imr; | ||
55 | imr = __raw_readw(MCF_MBAR + MCFSIM_IMR); | ||
56 | __raw_writew(imr & ~(0x1 << index), MCF_MBAR + MCFSIM_IMR); | ||
57 | } | ||
58 | |||
59 | void mcf_maskimr(unsigned int mask) | ||
60 | { | ||
61 | u16 imr; | ||
62 | imr = __raw_readw(MCF_MBAR + MCFSIM_IMR); | ||
63 | imr |= mask; | ||
64 | __raw_writew(imr, MCF_MBAR + MCFSIM_IMR); | ||
65 | } | ||
66 | |||
67 | #else | ||
68 | |||
69 | void mcf_setimr(int index) | ||
70 | { | ||
71 | u32 imr; | ||
72 | imr = __raw_readl(MCF_MBAR + MCFSIM_IMR); | ||
73 | __raw_writel(imr | (0x1 << index), MCF_MBAR + MCFSIM_IMR); | ||
74 | } | ||
75 | |||
76 | void mcf_clrimr(int index) | ||
77 | { | ||
78 | u32 imr; | ||
79 | imr = __raw_readl(MCF_MBAR + MCFSIM_IMR); | ||
80 | __raw_writel(imr & ~(0x1 << index), MCF_MBAR + MCFSIM_IMR); | ||
81 | } | ||
82 | |||
83 | void mcf_maskimr(unsigned int mask) | ||
84 | { | ||
85 | u32 imr; | ||
86 | imr = __raw_readl(MCF_MBAR + MCFSIM_IMR); | ||
87 | imr |= mask; | ||
88 | __raw_writel(imr, MCF_MBAR + MCFSIM_IMR); | ||
89 | } | ||
90 | |||
91 | #endif | ||
92 | |||
93 | /* | ||
94 | * Interrupts can be "vectored" on the ColdFire cores that support this old | ||
95 | * interrupt controller. That is, the device raising the interrupt can also | ||
96 | * supply the vector number to interrupt through. The AVR register of the | ||
97 | * interrupt controller enables or disables this for each external interrupt, | ||
98 | * so provide generic support for this. Setting this up is out-of-band for | ||
99 | * the interrupt system API's, and needs to be done by the driver that | ||
100 | * supports this device. Very few devices actually use this. | ||
101 | */ | ||
102 | void mcf_autovector(int irq) | ||
103 | { | ||
104 | #ifdef MCFSIM_AVR | ||
105 | if ((irq >= EIRQ1) && (irq <= EIRQ7)) { | ||
106 | u8 avec; | ||
107 | avec = __raw_readb(MCF_MBAR + MCFSIM_AVR); | ||
108 | avec |= (0x1 << (irq - EIRQ1 + 1)); | ||
109 | __raw_writeb(avec, MCF_MBAR + MCFSIM_AVR); | ||
110 | } | ||
111 | #endif | ||
112 | } | ||
113 | |||
114 | static void intc_irq_mask(struct irq_data *d) | ||
115 | { | ||
116 | if (mcf_irq2imr[d->irq]) | ||
117 | mcf_setimr(mcf_irq2imr[d->irq]); | ||
118 | } | ||
119 | |||
120 | static void intc_irq_unmask(struct irq_data *d) | ||
121 | { | ||
122 | if (mcf_irq2imr[d->irq]) | ||
123 | mcf_clrimr(mcf_irq2imr[d->irq]); | ||
124 | } | ||
125 | |||
126 | static int intc_irq_set_type(struct irq_data *d, unsigned int type) | ||
127 | { | ||
128 | return 0; | ||
129 | } | ||
130 | |||
131 | static struct irq_chip intc_irq_chip = { | ||
132 | .name = "CF-INTC", | ||
133 | .irq_mask = intc_irq_mask, | ||
134 | .irq_unmask = intc_irq_unmask, | ||
135 | .irq_set_type = intc_irq_set_type, | ||
136 | }; | ||
137 | |||
138 | void __init init_IRQ(void) | ||
139 | { | ||
140 | int irq; | ||
141 | |||
142 | init_vectors(); | ||
143 | mcf_maskimr(0xffffffff); | ||
144 | |||
145 | for (irq = 0; (irq < NR_IRQS); irq++) { | ||
146 | set_irq_chip(irq, &intc_irq_chip); | ||
147 | set_irq_type(irq, IRQ_TYPE_LEVEL_HIGH); | ||
148 | set_irq_handler(irq, handle_level_irq); | ||
149 | } | ||
150 | } | ||
151 | |||
diff --git a/arch/m68k/platform/coldfire/pinmux.c b/arch/m68k/platform/coldfire/pinmux.c new file mode 100644 index 000000000000..8c62b825939f --- /dev/null +++ b/arch/m68k/platform/coldfire/pinmux.c | |||
@@ -0,0 +1,28 @@ | |||
1 | /* | ||
2 | * Coldfire generic GPIO pinmux support. | ||
3 | * | ||
4 | * (C) Copyright 2009, Steven King <sfking@fdwdc.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 as published by | ||
8 | * the Free Software Foundation; version 2 of the License. | ||
9 | * | ||
10 | * This program is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU General Public License for more details. | ||
14 | * | ||
15 | */ | ||
16 | |||
17 | #include <linux/kernel.h> | ||
18 | |||
19 | #include <asm/pinmux.h> | ||
20 | |||
21 | int mcf_pinmux_request(unsigned pinmux, unsigned func) | ||
22 | { | ||
23 | return 0; | ||
24 | } | ||
25 | |||
26 | void mcf_pinmux_release(unsigned pinmux, unsigned func) | ||
27 | { | ||
28 | } | ||
diff --git a/arch/m68k/platform/coldfire/pit.c b/arch/m68k/platform/coldfire/pit.c new file mode 100644 index 000000000000..c2b980926bec --- /dev/null +++ b/arch/m68k/platform/coldfire/pit.c | |||
@@ -0,0 +1,169 @@ | |||
1 | /***************************************************************************/ | ||
2 | |||
3 | /* | ||
4 | * pit.c -- Freescale ColdFire PIT timer. Currently this type of | ||
5 | * hardware timer only exists in the Freescale ColdFire | ||
6 | * 5270/5271, 5282 and 5208 CPUs. No doubt newer ColdFire | ||
7 | * family members will probably use it too. | ||
8 | * | ||
9 | * Copyright (C) 1999-2008, Greg Ungerer (gerg@snapgear.com) | ||
10 | * Copyright (C) 2001-2004, SnapGear Inc. (www.snapgear.com) | ||
11 | */ | ||
12 | |||
13 | /***************************************************************************/ | ||
14 | |||
15 | #include <linux/kernel.h> | ||
16 | #include <linux/sched.h> | ||
17 | #include <linux/param.h> | ||
18 | #include <linux/init.h> | ||
19 | #include <linux/interrupt.h> | ||
20 | #include <linux/irq.h> | ||
21 | #include <linux/clockchips.h> | ||
22 | #include <asm/machdep.h> | ||
23 | #include <asm/io.h> | ||
24 | #include <asm/coldfire.h> | ||
25 | #include <asm/mcfpit.h> | ||
26 | #include <asm/mcfsim.h> | ||
27 | |||
28 | /***************************************************************************/ | ||
29 | |||
30 | /* | ||
31 | * By default use timer1 as the system clock timer. | ||
32 | */ | ||
33 | #define FREQ ((MCF_CLK / 2) / 64) | ||
34 | #define TA(a) (MCFPIT_BASE1 + (a)) | ||
35 | #define PIT_CYCLES_PER_JIFFY (FREQ / HZ) | ||
36 | |||
37 | static u32 pit_cnt; | ||
38 | |||
39 | /* | ||
40 | * Initialize the PIT timer. | ||
41 | * | ||
42 | * This is also called after resume to bring the PIT into operation again. | ||
43 | */ | ||
44 | |||
45 | static void init_cf_pit_timer(enum clock_event_mode mode, | ||
46 | struct clock_event_device *evt) | ||
47 | { | ||
48 | switch (mode) { | ||
49 | case CLOCK_EVT_MODE_PERIODIC: | ||
50 | |||
51 | __raw_writew(MCFPIT_PCSR_DISABLE, TA(MCFPIT_PCSR)); | ||
52 | __raw_writew(PIT_CYCLES_PER_JIFFY, TA(MCFPIT_PMR)); | ||
53 | __raw_writew(MCFPIT_PCSR_EN | MCFPIT_PCSR_PIE | \ | ||
54 | MCFPIT_PCSR_OVW | MCFPIT_PCSR_RLD | \ | ||
55 | MCFPIT_PCSR_CLK64, TA(MCFPIT_PCSR)); | ||
56 | break; | ||
57 | |||
58 | case CLOCK_EVT_MODE_SHUTDOWN: | ||
59 | case CLOCK_EVT_MODE_UNUSED: | ||
60 | |||
61 | __raw_writew(MCFPIT_PCSR_DISABLE, TA(MCFPIT_PCSR)); | ||
62 | break; | ||
63 | |||
64 | case CLOCK_EVT_MODE_ONESHOT: | ||
65 | |||
66 | __raw_writew(MCFPIT_PCSR_DISABLE, TA(MCFPIT_PCSR)); | ||
67 | __raw_writew(MCFPIT_PCSR_EN | MCFPIT_PCSR_PIE | \ | ||
68 | MCFPIT_PCSR_OVW | MCFPIT_PCSR_CLK64, \ | ||
69 | TA(MCFPIT_PCSR)); | ||
70 | break; | ||
71 | |||
72 | case CLOCK_EVT_MODE_RESUME: | ||
73 | /* Nothing to do here */ | ||
74 | break; | ||
75 | } | ||
76 | } | ||
77 | |||
78 | /* | ||
79 | * Program the next event in oneshot mode | ||
80 | * | ||
81 | * Delta is given in PIT ticks | ||
82 | */ | ||
83 | static int cf_pit_next_event(unsigned long delta, | ||
84 | struct clock_event_device *evt) | ||
85 | { | ||
86 | __raw_writew(delta, TA(MCFPIT_PMR)); | ||
87 | return 0; | ||
88 | } | ||
89 | |||
90 | struct clock_event_device cf_pit_clockevent = { | ||
91 | .name = "pit", | ||
92 | .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT, | ||
93 | .set_mode = init_cf_pit_timer, | ||
94 | .set_next_event = cf_pit_next_event, | ||
95 | .shift = 32, | ||
96 | .irq = MCFINT_VECBASE + MCFINT_PIT1, | ||
97 | }; | ||
98 | |||
99 | |||
100 | |||
101 | /***************************************************************************/ | ||
102 | |||
103 | static irqreturn_t pit_tick(int irq, void *dummy) | ||
104 | { | ||
105 | struct clock_event_device *evt = &cf_pit_clockevent; | ||
106 | u16 pcsr; | ||
107 | |||
108 | /* Reset the ColdFire timer */ | ||
109 | pcsr = __raw_readw(TA(MCFPIT_PCSR)); | ||
110 | __raw_writew(pcsr | MCFPIT_PCSR_PIF, TA(MCFPIT_PCSR)); | ||
111 | |||
112 | pit_cnt += PIT_CYCLES_PER_JIFFY; | ||
113 | evt->event_handler(evt); | ||
114 | return IRQ_HANDLED; | ||
115 | } | ||
116 | |||
117 | /***************************************************************************/ | ||
118 | |||
119 | static struct irqaction pit_irq = { | ||
120 | .name = "timer", | ||
121 | .flags = IRQF_DISABLED | IRQF_TIMER, | ||
122 | .handler = pit_tick, | ||
123 | }; | ||
124 | |||
125 | /***************************************************************************/ | ||
126 | |||
127 | static cycle_t pit_read_clk(struct clocksource *cs) | ||
128 | { | ||
129 | unsigned long flags; | ||
130 | u32 cycles; | ||
131 | u16 pcntr; | ||
132 | |||
133 | local_irq_save(flags); | ||
134 | pcntr = __raw_readw(TA(MCFPIT_PCNTR)); | ||
135 | cycles = pit_cnt; | ||
136 | local_irq_restore(flags); | ||
137 | |||
138 | return cycles + PIT_CYCLES_PER_JIFFY - pcntr; | ||
139 | } | ||
140 | |||
141 | /***************************************************************************/ | ||
142 | |||
143 | static struct clocksource pit_clk = { | ||
144 | .name = "pit", | ||
145 | .rating = 100, | ||
146 | .read = pit_read_clk, | ||
147 | .shift = 20, | ||
148 | .mask = CLOCKSOURCE_MASK(32), | ||
149 | }; | ||
150 | |||
151 | /***************************************************************************/ | ||
152 | |||
153 | void hw_timer_init(void) | ||
154 | { | ||
155 | cf_pit_clockevent.cpumask = cpumask_of(smp_processor_id()); | ||
156 | cf_pit_clockevent.mult = div_sc(FREQ, NSEC_PER_SEC, 32); | ||
157 | cf_pit_clockevent.max_delta_ns = | ||
158 | clockevent_delta2ns(0xFFFF, &cf_pit_clockevent); | ||
159 | cf_pit_clockevent.min_delta_ns = | ||
160 | clockevent_delta2ns(0x3f, &cf_pit_clockevent); | ||
161 | clockevents_register_device(&cf_pit_clockevent); | ||
162 | |||
163 | setup_irq(MCFINT_VECBASE + MCFINT_PIT1, &pit_irq); | ||
164 | |||
165 | pit_clk.mult = clocksource_hz2mult(FREQ, pit_clk.shift); | ||
166 | clocksource_register(&pit_clk); | ||
167 | } | ||
168 | |||
169 | /***************************************************************************/ | ||
diff --git a/arch/m68k/platform/coldfire/sltimers.c b/arch/m68k/platform/coldfire/sltimers.c new file mode 100644 index 000000000000..0a1b937c3e18 --- /dev/null +++ b/arch/m68k/platform/coldfire/sltimers.c | |||
@@ -0,0 +1,145 @@ | |||
1 | /***************************************************************************/ | ||
2 | |||
3 | /* | ||
4 | * sltimers.c -- generic ColdFire slice timer support. | ||
5 | * | ||
6 | * Copyright (C) 2009-2010, Philippe De Muyter <phdm@macqel.be> | ||
7 | * based on | ||
8 | * timers.c -- generic ColdFire hardware timer support. | ||
9 | * Copyright (C) 1999-2008, Greg Ungerer <gerg@snapgear.com> | ||
10 | */ | ||
11 | |||
12 | /***************************************************************************/ | ||
13 | |||
14 | #include <linux/kernel.h> | ||
15 | #include <linux/init.h> | ||
16 | #include <linux/sched.h> | ||
17 | #include <linux/interrupt.h> | ||
18 | #include <linux/irq.h> | ||
19 | #include <linux/profile.h> | ||
20 | #include <linux/clocksource.h> | ||
21 | #include <asm/io.h> | ||
22 | #include <asm/traps.h> | ||
23 | #include <asm/machdep.h> | ||
24 | #include <asm/coldfire.h> | ||
25 | #include <asm/mcfslt.h> | ||
26 | #include <asm/mcfsim.h> | ||
27 | |||
28 | /***************************************************************************/ | ||
29 | |||
30 | #ifdef CONFIG_HIGHPROFILE | ||
31 | |||
32 | /* | ||
33 | * By default use Slice Timer 1 as the profiler clock timer. | ||
34 | */ | ||
35 | #define PA(a) (MCF_MBAR + MCFSLT_TIMER1 + (a)) | ||
36 | |||
37 | /* | ||
38 | * Choose a reasonably fast profile timer. Make it an odd value to | ||
39 | * try and get good coverage of kernel operations. | ||
40 | */ | ||
41 | #define PROFILEHZ 1013 | ||
42 | |||
43 | irqreturn_t mcfslt_profile_tick(int irq, void *dummy) | ||
44 | { | ||
45 | /* Reset Slice Timer 1 */ | ||
46 | __raw_writel(MCFSLT_SSR_BE | MCFSLT_SSR_TE, PA(MCFSLT_SSR)); | ||
47 | if (current->pid) | ||
48 | profile_tick(CPU_PROFILING); | ||
49 | return IRQ_HANDLED; | ||
50 | } | ||
51 | |||
52 | static struct irqaction mcfslt_profile_irq = { | ||
53 | .name = "profile timer", | ||
54 | .flags = IRQF_DISABLED | IRQF_TIMER, | ||
55 | .handler = mcfslt_profile_tick, | ||
56 | }; | ||
57 | |||
58 | void mcfslt_profile_init(void) | ||
59 | { | ||
60 | printk(KERN_INFO "PROFILE: lodging TIMER 1 @ %dHz as profile timer\n", | ||
61 | PROFILEHZ); | ||
62 | |||
63 | setup_irq(MCF_IRQ_PROFILER, &mcfslt_profile_irq); | ||
64 | |||
65 | /* Set up TIMER 2 as high speed profile clock */ | ||
66 | __raw_writel(MCF_BUSCLK / PROFILEHZ - 1, PA(MCFSLT_STCNT)); | ||
67 | __raw_writel(MCFSLT_SCR_RUN | MCFSLT_SCR_IEN | MCFSLT_SCR_TEN, | ||
68 | PA(MCFSLT_SCR)); | ||
69 | |||
70 | } | ||
71 | |||
72 | #endif /* CONFIG_HIGHPROFILE */ | ||
73 | |||
74 | /***************************************************************************/ | ||
75 | |||
76 | /* | ||
77 | * By default use Slice Timer 0 as the system clock timer. | ||
78 | */ | ||
79 | #define TA(a) (MCF_MBAR + MCFSLT_TIMER0 + (a)) | ||
80 | |||
81 | static u32 mcfslt_cycles_per_jiffy; | ||
82 | static u32 mcfslt_cnt; | ||
83 | |||
84 | static irqreturn_t mcfslt_tick(int irq, void *dummy) | ||
85 | { | ||
86 | /* Reset Slice Timer 0 */ | ||
87 | __raw_writel(MCFSLT_SSR_BE | MCFSLT_SSR_TE, TA(MCFSLT_SSR)); | ||
88 | mcfslt_cnt += mcfslt_cycles_per_jiffy; | ||
89 | return arch_timer_interrupt(irq, dummy); | ||
90 | } | ||
91 | |||
92 | static struct irqaction mcfslt_timer_irq = { | ||
93 | .name = "timer", | ||
94 | .flags = IRQF_DISABLED | IRQF_TIMER, | ||
95 | .handler = mcfslt_tick, | ||
96 | }; | ||
97 | |||
98 | static cycle_t mcfslt_read_clk(struct clocksource *cs) | ||
99 | { | ||
100 | unsigned long flags; | ||
101 | u32 cycles; | ||
102 | u16 scnt; | ||
103 | |||
104 | local_irq_save(flags); | ||
105 | scnt = __raw_readl(TA(MCFSLT_SCNT)); | ||
106 | cycles = mcfslt_cnt; | ||
107 | local_irq_restore(flags); | ||
108 | |||
109 | /* substract because slice timers count down */ | ||
110 | return cycles - scnt; | ||
111 | } | ||
112 | |||
113 | static struct clocksource mcfslt_clk = { | ||
114 | .name = "slt", | ||
115 | .rating = 250, | ||
116 | .read = mcfslt_read_clk, | ||
117 | .shift = 20, | ||
118 | .mask = CLOCKSOURCE_MASK(32), | ||
119 | .flags = CLOCK_SOURCE_IS_CONTINUOUS, | ||
120 | }; | ||
121 | |||
122 | void hw_timer_init(void) | ||
123 | { | ||
124 | mcfslt_cycles_per_jiffy = MCF_BUSCLK / HZ; | ||
125 | /* | ||
126 | * The coldfire slice timer (SLT) runs from STCNT to 0 included, | ||
127 | * then STCNT again and so on. It counts thus actually | ||
128 | * STCNT + 1 steps for 1 tick, not STCNT. So if you want | ||
129 | * n cycles, initialize STCNT with n - 1. | ||
130 | */ | ||
131 | __raw_writel(mcfslt_cycles_per_jiffy - 1, TA(MCFSLT_STCNT)); | ||
132 | __raw_writel(MCFSLT_SCR_RUN | MCFSLT_SCR_IEN | MCFSLT_SCR_TEN, | ||
133 | TA(MCFSLT_SCR)); | ||
134 | /* initialize mcfslt_cnt knowing that slice timers count down */ | ||
135 | mcfslt_cnt = mcfslt_cycles_per_jiffy; | ||
136 | |||
137 | setup_irq(MCF_IRQ_TIMER, &mcfslt_timer_irq); | ||
138 | |||
139 | mcfslt_clk.mult = clocksource_hz2mult(MCF_BUSCLK, mcfslt_clk.shift); | ||
140 | clocksource_register(&mcfslt_clk); | ||
141 | |||
142 | #ifdef CONFIG_HIGHPROFILE | ||
143 | mcfslt_profile_init(); | ||
144 | #endif | ||
145 | } | ||
diff --git a/arch/m68k/platform/coldfire/timers.c b/arch/m68k/platform/coldfire/timers.c new file mode 100644 index 000000000000..60242f65fea9 --- /dev/null +++ b/arch/m68k/platform/coldfire/timers.c | |||
@@ -0,0 +1,174 @@ | |||
1 | /***************************************************************************/ | ||
2 | |||
3 | /* | ||
4 | * timers.c -- generic ColdFire hardware timer support. | ||
5 | * | ||
6 | * Copyright (C) 1999-2008, Greg Ungerer <gerg@snapgear.com> | ||
7 | */ | ||
8 | |||
9 | /***************************************************************************/ | ||
10 | |||
11 | #include <linux/kernel.h> | ||
12 | #include <linux/init.h> | ||
13 | #include <linux/sched.h> | ||
14 | #include <linux/interrupt.h> | ||
15 | #include <linux/irq.h> | ||
16 | #include <linux/profile.h> | ||
17 | #include <linux/clocksource.h> | ||
18 | #include <asm/io.h> | ||
19 | #include <asm/traps.h> | ||
20 | #include <asm/machdep.h> | ||
21 | #include <asm/coldfire.h> | ||
22 | #include <asm/mcftimer.h> | ||
23 | #include <asm/mcfsim.h> | ||
24 | |||
25 | /***************************************************************************/ | ||
26 | |||
27 | /* | ||
28 | * By default use timer1 as the system clock timer. | ||
29 | */ | ||
30 | #define FREQ (MCF_BUSCLK / 16) | ||
31 | #define TA(a) (MCFTIMER_BASE1 + (a)) | ||
32 | |||
33 | /* | ||
34 | * These provide the underlying interrupt vector support. | ||
35 | * Unfortunately it is a little different on each ColdFire. | ||
36 | */ | ||
37 | void coldfire_profile_init(void); | ||
38 | |||
39 | #if defined(CONFIG_M532x) | ||
40 | #define __raw_readtrr __raw_readl | ||
41 | #define __raw_writetrr __raw_writel | ||
42 | #else | ||
43 | #define __raw_readtrr __raw_readw | ||
44 | #define __raw_writetrr __raw_writew | ||
45 | #endif | ||
46 | |||
47 | static u32 mcftmr_cycles_per_jiffy; | ||
48 | static u32 mcftmr_cnt; | ||
49 | |||
50 | /***************************************************************************/ | ||
51 | |||
52 | static irqreturn_t mcftmr_tick(int irq, void *dummy) | ||
53 | { | ||
54 | /* Reset the ColdFire timer */ | ||
55 | __raw_writeb(MCFTIMER_TER_CAP | MCFTIMER_TER_REF, TA(MCFTIMER_TER)); | ||
56 | |||
57 | mcftmr_cnt += mcftmr_cycles_per_jiffy; | ||
58 | return arch_timer_interrupt(irq, dummy); | ||
59 | } | ||
60 | |||
61 | /***************************************************************************/ | ||
62 | |||
63 | static struct irqaction mcftmr_timer_irq = { | ||
64 | .name = "timer", | ||
65 | .flags = IRQF_DISABLED | IRQF_TIMER, | ||
66 | .handler = mcftmr_tick, | ||
67 | }; | ||
68 | |||
69 | /***************************************************************************/ | ||
70 | |||
71 | static cycle_t mcftmr_read_clk(struct clocksource *cs) | ||
72 | { | ||
73 | unsigned long flags; | ||
74 | u32 cycles; | ||
75 | u16 tcn; | ||
76 | |||
77 | local_irq_save(flags); | ||
78 | tcn = __raw_readw(TA(MCFTIMER_TCN)); | ||
79 | cycles = mcftmr_cnt; | ||
80 | local_irq_restore(flags); | ||
81 | |||
82 | return cycles + tcn; | ||
83 | } | ||
84 | |||
85 | /***************************************************************************/ | ||
86 | |||
87 | static struct clocksource mcftmr_clk = { | ||
88 | .name = "tmr", | ||
89 | .rating = 250, | ||
90 | .read = mcftmr_read_clk, | ||
91 | .shift = 20, | ||
92 | .mask = CLOCKSOURCE_MASK(32), | ||
93 | .flags = CLOCK_SOURCE_IS_CONTINUOUS, | ||
94 | }; | ||
95 | |||
96 | /***************************************************************************/ | ||
97 | |||
98 | void hw_timer_init(void) | ||
99 | { | ||
100 | __raw_writew(MCFTIMER_TMR_DISABLE, TA(MCFTIMER_TMR)); | ||
101 | mcftmr_cycles_per_jiffy = FREQ / HZ; | ||
102 | /* | ||
103 | * The coldfire timer runs from 0 to TRR included, then 0 | ||
104 | * again and so on. It counts thus actually TRR + 1 steps | ||
105 | * for 1 tick, not TRR. So if you want n cycles, | ||
106 | * initialize TRR with n - 1. | ||
107 | */ | ||
108 | __raw_writetrr(mcftmr_cycles_per_jiffy - 1, TA(MCFTIMER_TRR)); | ||
109 | __raw_writew(MCFTIMER_TMR_ENORI | MCFTIMER_TMR_CLK16 | | ||
110 | MCFTIMER_TMR_RESTART | MCFTIMER_TMR_ENABLE, TA(MCFTIMER_TMR)); | ||
111 | |||
112 | mcftmr_clk.mult = clocksource_hz2mult(FREQ, mcftmr_clk.shift); | ||
113 | clocksource_register(&mcftmr_clk); | ||
114 | |||
115 | setup_irq(MCF_IRQ_TIMER, &mcftmr_timer_irq); | ||
116 | |||
117 | #ifdef CONFIG_HIGHPROFILE | ||
118 | coldfire_profile_init(); | ||
119 | #endif | ||
120 | } | ||
121 | |||
122 | /***************************************************************************/ | ||
123 | #ifdef CONFIG_HIGHPROFILE | ||
124 | /***************************************************************************/ | ||
125 | |||
126 | /* | ||
127 | * By default use timer2 as the profiler clock timer. | ||
128 | */ | ||
129 | #define PA(a) (MCFTIMER_BASE2 + (a)) | ||
130 | |||
131 | /* | ||
132 | * Choose a reasonably fast profile timer. Make it an odd value to | ||
133 | * try and get good coverage of kernel operations. | ||
134 | */ | ||
135 | #define PROFILEHZ 1013 | ||
136 | |||
137 | /* | ||
138 | * Use the other timer to provide high accuracy profiling info. | ||
139 | */ | ||
140 | irqreturn_t coldfire_profile_tick(int irq, void *dummy) | ||
141 | { | ||
142 | /* Reset ColdFire timer2 */ | ||
143 | __raw_writeb(MCFTIMER_TER_CAP | MCFTIMER_TER_REF, PA(MCFTIMER_TER)); | ||
144 | if (current->pid) | ||
145 | profile_tick(CPU_PROFILING); | ||
146 | return IRQ_HANDLED; | ||
147 | } | ||
148 | |||
149 | /***************************************************************************/ | ||
150 | |||
151 | static struct irqaction coldfire_profile_irq = { | ||
152 | .name = "profile timer", | ||
153 | .flags = IRQF_DISABLED | IRQF_TIMER, | ||
154 | .handler = coldfire_profile_tick, | ||
155 | }; | ||
156 | |||
157 | void coldfire_profile_init(void) | ||
158 | { | ||
159 | printk(KERN_INFO "PROFILE: lodging TIMER2 @ %dHz as profile timer\n", | ||
160 | PROFILEHZ); | ||
161 | |||
162 | /* Set up TIMER 2 as high speed profile clock */ | ||
163 | __raw_writew(MCFTIMER_TMR_DISABLE, PA(MCFTIMER_TMR)); | ||
164 | |||
165 | __raw_writetrr(((MCF_BUSCLK / 16) / PROFILEHZ), PA(MCFTIMER_TRR)); | ||
166 | __raw_writew(MCFTIMER_TMR_ENORI | MCFTIMER_TMR_CLK16 | | ||
167 | MCFTIMER_TMR_RESTART | MCFTIMER_TMR_ENABLE, PA(MCFTIMER_TMR)); | ||
168 | |||
169 | setup_irq(MCF_IRQ_PROFILER, &coldfire_profile_irq); | ||
170 | } | ||
171 | |||
172 | /***************************************************************************/ | ||
173 | #endif /* CONFIG_HIGHPROFILE */ | ||
174 | /***************************************************************************/ | ||
diff --git a/arch/m68k/platform/coldfire/vectors.c b/arch/m68k/platform/coldfire/vectors.c new file mode 100644 index 000000000000..a21d3f870b7a --- /dev/null +++ b/arch/m68k/platform/coldfire/vectors.c | |||
@@ -0,0 +1,80 @@ | |||
1 | /***************************************************************************/ | ||
2 | |||
3 | /* | ||
4 | * linux/arch/m68knommu/platform/coldfire/vectors.c | ||
5 | * | ||
6 | * Copyright (C) 1999-2007, Greg Ungerer <gerg@snapgear.com> | ||
7 | */ | ||
8 | |||
9 | /***************************************************************************/ | ||
10 | |||
11 | #include <linux/kernel.h> | ||
12 | #include <linux/init.h> | ||
13 | #include <linux/irq.h> | ||
14 | #include <asm/traps.h> | ||
15 | #include <asm/machdep.h> | ||
16 | #include <asm/coldfire.h> | ||
17 | #include <asm/mcfsim.h> | ||
18 | #include <asm/mcfwdebug.h> | ||
19 | |||
20 | /***************************************************************************/ | ||
21 | |||
22 | #ifdef TRAP_DBG_INTERRUPT | ||
23 | |||
24 | asmlinkage void dbginterrupt_c(struct frame *fp) | ||
25 | { | ||
26 | extern void dump(struct pt_regs *fp); | ||
27 | printk(KERN_DEBUG "%s(%d): BUS ERROR TRAP\n", __FILE__, __LINE__); | ||
28 | dump((struct pt_regs *) fp); | ||
29 | asm("halt"); | ||
30 | } | ||
31 | |||
32 | #endif | ||
33 | |||
34 | /***************************************************************************/ | ||
35 | |||
36 | extern e_vector *_ramvec; | ||
37 | |||
38 | void set_evector(int vecnum, void (*handler)(void)) | ||
39 | { | ||
40 | if (vecnum >= 0 && vecnum <= 255) | ||
41 | _ramvec[vecnum] = handler; | ||
42 | } | ||
43 | |||
44 | /***************************************************************************/ | ||
45 | |||
46 | /* Assembler routines */ | ||
47 | asmlinkage void buserr(void); | ||
48 | asmlinkage void trap(void); | ||
49 | asmlinkage void system_call(void); | ||
50 | asmlinkage void inthandler(void); | ||
51 | |||
52 | void __init init_vectors(void) | ||
53 | { | ||
54 | int i; | ||
55 | |||
56 | /* | ||
57 | * There is a common trap handler and common interrupt | ||
58 | * handler that handle almost every vector. We treat | ||
59 | * the system call and bus error special, they get their | ||
60 | * own first level handlers. | ||
61 | */ | ||
62 | for (i = 3; (i <= 23); i++) | ||
63 | _ramvec[i] = trap; | ||
64 | for (i = 33; (i <= 63); i++) | ||
65 | _ramvec[i] = trap; | ||
66 | for (i = 24; (i <= 31); i++) | ||
67 | _ramvec[i] = inthandler; | ||
68 | for (i = 64; (i < 255); i++) | ||
69 | _ramvec[i] = inthandler; | ||
70 | _ramvec[255] = 0; | ||
71 | |||
72 | _ramvec[2] = buserr; | ||
73 | _ramvec[32] = system_call; | ||
74 | |||
75 | #ifdef TRAP_DBG_INTERRUPT | ||
76 | _ramvec[12] = dbginterrupt; | ||
77 | #endif | ||
78 | } | ||
79 | |||
80 | /***************************************************************************/ | ||