1 diff -Naur linux-2.6.0-test8/arch/m68knommu/Kconfig linux-2.6.0-test8-uc0/arch/m68knommu/Kconfig
2 --- linux-2.6.0-test8/arch/m68knommu/Kconfig 2003-10-20 09:10:57.875635776 +1000
3 +++ linux-2.6.0-test8-uc0/arch/m68knommu/Kconfig 2003-10-20 09:11:53.701149008 +1000
6 Enable debuging symbols on kernel build.
9 + bool "Compile the kernel with frame pointers"
11 + If you say Y here the resulting kernel image will be slightly larger
12 + and slower, but it will give very useful debugging information.
13 + If you don't debug the kernel, you can say N, but we may not be able
14 + to solve problems without frame pointers.
17 bool "Magic SysRq key"
19 diff -Naur linux-2.6.0-test8/arch/m68knommu/kernel/comempci.c linux-2.6.0-test8-uc0/arch/m68knommu/kernel/comempci.c
20 --- linux-2.6.0-test8/arch/m68knommu/kernel/comempci.c 2003-10-20 09:10:57.723658880 +1000
21 +++ linux-2.6.0-test8-uc0/arch/m68knommu/kernel/comempci.c 2003-10-20 09:11:54.088090184 +1000
26 - printk("pci_resetbus()\n");
27 + printk(KERN_DEBUG "pci_resetbus()\n");
30 *((volatile unsigned short *) (MCF_MBAR+MCFSIM_PADDR)) |= eLIA_PCIRESET;
35 - printk("pcibios_assign_resource_slot(slot=%x)\n", slot);
36 + printk(KERN_INFO "pcibios_assign_resource_slot(slot=%x)\n", slot);
39 rp = (volatile unsigned long *) COMEM_BASE;
41 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGRD | idsel;
44 - printk("-----------------------------------"
45 + printk(KERN_DEBUG "-----------------------------------"
46 "-------------------------------------\n");
47 - printk("BAR[%d]: read=%08x ", bar, val);
48 + printk(KERN_DEBUG "BAR[%d]: read=%08x ", bar, val);
51 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGWR | idsel;
53 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGRD | idsel;
56 - printk("write=%08x ", val);
57 + printk(KERN_DEBUG "write=%08x ", val);
62 + printk(KERN_DEBUG "\n");
70 - printk("size=%08x(%d)\n", (0x1 << i), i);
71 + printk(KERN_DEBUG "size=%08x(%d)\n", (0x1 << i), i);
79 - printk("BAR[%d]: IO size=%08x iobase=%08x\n",
80 + printk(KERN_DEBUG "BAR[%d]: IO size=%08x iobase=%08x\n",
85 val = 0 | PCI_BASE_ADDRESS_SPACE_IO;
87 - printk("BAR[%d]: too big for IO??\n", bar);
88 + printk(KERN_DEBUG "BAR[%d]: too big for IO??\n", bar);
91 /* Check for un-alignment */
96 - printk("BAR[%d]: MEMORY size=%08x membase=%08x\n",
97 + printk(KERN_DEBUG "BAR[%d]: MEMORY size=%08x membase=%08x\n",
100 /* Check for un-alignment */
101 @@ -196,12 +196,12 @@
102 rp[LREG(COMEM_DAHBASE)] = COMEM_DA_CFGWR | idsel;
103 rp[LREG(addr)] = val;
105 - printk("BAR[%d]: assigned bar=%08x\n", bar, val);
106 + printk(KERN_DEBUG "BAR[%d]: assigned bar=%08x\n", bar, val);
111 - printk("-----------------------------------"
112 + printk(KERN_DEBUG "-----------------------------------"
113 "-------------------------------------\n");
117 addr = (PCI_INTERRUPT_LINE & 0xfc)+(~PCI_INTERRUPT_LINE & 0x03);
120 - printk("IRQ LINE=25\n");
121 + printk(KERN_DEBUG "IRQ LINE=25\n");
129 - printk("pcibios_enbale_slot(slot=%x)\n", slot);
130 + printk(KERN_DEBUG "pcibios_enbale_slot(slot=%x)\n", slot);
133 rp = (volatile unsigned long *) COMEM_BASE;
135 rp[LREG(COMEM_PCIBUS)] = 0; /* Clear bus */
136 id = rp[LREG(COMEM_PCIBUS)];
137 if ((id != 0) && ((id & 0xffff0000) != (sel & 0xffff0000))) {
138 - printk("PCI: slot=%d id=%08x\n", slot, (int) id);
139 + printk(KERN_INFO "PCI: slot=%d id=%08x\n", slot, (int) id);
140 pci_slotmask |= 0x1 << slot;
141 pcibios_assign_resource_slot(slot);
142 pcibios_enable_slot(slot);
147 - printk("pcibios_init()\n");
148 + printk(KERN_DEBUG "pcibios_init()\n");
154 rp = (volatile unsigned long *) COMEM_BASE;
155 if ((rp[LREG(COMEM_LBUSCFG)] & 0xff) != 0x50) {
156 - printk("PCI: no PCI bus present\n");
157 + printk(KERN_INFO "PCI: no PCI bus present\n");
161 @@ -317,11 +317,11 @@
162 rp[LREG(COMEM_PCIBUS)] = 0; /* Clear bus */
163 id = rp[LREG(COMEM_PCIBUS)];
164 if ((id == 0) || ((id & 0xffff0000) == (sel & 0xffff0000))) {
165 - printk("PCI: no PCI bus bridge present\n");
166 + printk(KERN_INFO "PCI: no PCI bus bridge present\n");
170 - printk("PCI: bridge device at slot=%d id=%08x\n", slot, (int) id);
171 + printk(KERN_INFO "PCI: bridge device at slot=%d id=%08x\n", slot, (int) id);
172 pci_slotmask |= 0x1 << slot;
173 pci_shmemaddr = pci_membase;
174 pcibios_assign_resource_slot(slot);
177 /* Get PCI irq for local vectoring */
178 if (request_irq(COMEM_IRQ, pci_interrupt, 0, "PCI bridge", NULL)) {
179 - printk("PCI: failed to acquire interrupt %d\n", COMEM_IRQ);
180 + printk(KERN_WARNING "PCI: failed to acquire interrupt %d\n", COMEM_IRQ);
182 mcf_autovector(COMEM_IRQ);
186 void pcibios_update_resource(struct pci_dev *dev, struct resource *root, struct resource *r, int resource)
188 - printk("%s(%d): no support for changing PCI resources...\n",
189 + printk(KERN_WARNING "%s(%d): no support for changing PCI resources...\n",
194 volatile unsigned char *bp;
197 - printk("pci_outb(val=%02x,addr=%x)\n", val, addr);
198 + printk(KERN_DEBUG "pci_outb(val=%02x,addr=%x)\n", val, addr);
201 rp = (volatile unsigned long *) COMEM_BASE;
203 volatile unsigned short *sp;
206 - printk("pci_outw(val=%04x,addr=%x)", val, addr);
207 + printk(KERN_DEBUG "pci_outw(val=%04x,addr=%x)", val, addr);
210 rp = (volatile unsigned long *) COMEM_BASE;
212 volatile unsigned int *lp;
215 - printk("pci_outl(val=%08x,addr=%x)\n", val, addr);
216 + printk(KERN_DEBUG "pci_outl(val=%08x,addr=%x)\n", val, addr);
219 rp = (volatile unsigned long *) COMEM_BASE;
224 - printk("pci_inb(addr=%x)", addr);
225 + printk(KERN_DEBUG "pci_inb(addr=%x)", addr);
228 rp = (volatile unsigned long *) COMEM_BASE;
233 - printk("pci_inw(addr=%x)", addr);
234 + printk(KERN_DEBUG "pci_inw(addr=%x)", addr);
237 rp = (volatile unsigned long *) COMEM_BASE;
240 val = ((val & 0xff) << 8) | ((val >> 8) & 0xff);
242 - printk("=%04x\n", val);
243 + printk(KERN_DEBUG "=%04x\n", val);
251 - printk("pci_inl(addr=%x)", addr);
252 + printk(KERN_DEBUG "pci_inl(addr=%x)", addr);
255 rp = (volatile unsigned long *) COMEM_BASE;
257 ((val & 0x00ff0000) >> 8) | (val >> 24);
260 - printk("=%08x\n", val);
261 + printk(KERN_DEBUG "=%08x\n", val);
266 unsigned int a = (unsigned int) addr;
269 - printk("pci_outsb(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len);
270 + printk(KERN_DEBUG "pci_outsb(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len);
273 rp = (volatile unsigned long *) COMEM_BASE;
275 unsigned int a = (unsigned int) addr;
278 - printk("pci_outsw(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len);
279 + printk(KERN_DEBUG "pci_outsw(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len);
282 rp = (volatile unsigned long *) COMEM_BASE;
284 unsigned int a = (unsigned int) addr;
287 - printk("pci_outsl(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len);
288 + printk(KERN_DEBUG "pci_outsl(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len);
291 rp = (volatile unsigned long *) COMEM_BASE;
293 unsigned int a = (unsigned int) addr;
296 - printk("pci_insb(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len);
297 + printk(KERN_DEBUG "pci_insb(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len);
300 rp = (volatile unsigned long *) COMEM_BASE;
302 unsigned int a = (unsigned int) addr;
305 - printk("pci_insw(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len);
306 + printk(KERN_DEBUG "pci_insw(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len);
309 rp = (volatile unsigned long *) COMEM_BASE;
311 unsigned int a = (unsigned int) addr;
314 - printk("pci_insl(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len);
315 + printk(KERN_DEBUG "pci_insl(addr=%x,buf=%x,len=%d)\n", (int)addr, (int)buf, len);
318 rp = (volatile unsigned long *) COMEM_BASE;
323 - printk("pci_request_irq(irq=%d,handler=%x,flags=%x,device=%s,"
324 + printk(KERN_DEBUG "pci_request_irq(irq=%d,handler=%x,flags=%x,device=%s,"
325 "dev_id=%x)\n", irq, (int) handler, (int) flags, device,
332 - printk("pci_free_irq(irq=%d,dev_id=%x)\n", irq, (int) dev_id);
333 + printk(KERN_DEBUG "pci_free_irq(irq=%d,dev_id=%x)\n", irq, (int) dev_id);
336 if (dev_id == (void *) NULL)
341 - printk("pci_interrupt(irq=%d,id=%x,fp=%x)\n", irq, (int) id, (int) fp);
342 + printk(KERN_DEBUG "pci_interrupt(irq=%d,id=%x,fp=%x)\n", irq, (int) id, (int) fp);
345 for (i = 0; (i < COMEM_MAXPCI); i++) {
350 - printk("pci_bmalloc(size=%d)\n", size);
351 + printk(KERN_DEBUG "pci_bmalloc(size=%d)\n", size);
359 - printk("pci_bmfree(mp=%x,size=%d)\n", (int) mp, size);
360 + printk(KERN_DEBUG "pci_bmfree(mp=%x,size=%d)\n", (int) mp, size);
363 nrslots = size / PCI_MEMSLOTSIZE;
364 @@ -859,12 +859,12 @@
368 - printk("pci_virt_to_bus(address=%x)", (int) address);
369 + printk(KERN_DEBUG "pci_virt_to_bus(address=%x)", (int) address);
372 l = ((unsigned long) address) - COMEM_BASE;
374 - printk("=%x\n", (int) (l+pci_shmemaddr));
375 + printk(KERN_DEBUG "=%x\n", (int) (l+pci_shmemaddr));
377 return(l + pci_shmemaddr);
379 @@ -876,12 +876,12 @@
383 - printk("pci_bus_to_virt(address=%x)", (int) address);
384 + printk(KERN_DEBUG "pci_bus_to_virt(address=%x)", (int) address);
387 l = address - pci_shmemaddr;
389 - printk("=%x\n", (int) (address + COMEM_BASE));
390 + printk(KERN_DEBUG "=%x\n", (int) (address + COMEM_BASE));
392 return((void *) (address + COMEM_BASE));
398 - printk("pci_bmcpyto(dst=%x,src=%x,len=%d)\n", (int)dst, (int)src, len);
399 + printk(KERN_DEBUG "pci_bmcpyto(dst=%x,src=%x,len=%d)\n", (int)dst, (int)src, len);
402 dp = (unsigned long *) dst;
403 @@ -903,13 +903,13 @@
408 + printk(KERN_INFO "DATA:");
409 scp = (unsigned char *) sp;
410 for (i = 0; (i < len); i++) {
411 - if ((i % 16) == 0) printk("\n%04x: ", i);
412 - printk("%02x ", *scp++);
413 + if ((i % 16) == 0) printk(KERN_INFO "\n%04x: ", i);
414 + printk(KERN_INFO "%02x ", *scp++);
417 + printk(KERN_INFO "\n");
420 for (j = 0; (i >= 0); i--, j++) {
425 - printk("pci_bmcpyfrom(dst=%x,src=%x,len=%d)\n",(int)dst,(int)src,len);
426 + printk(KERN_DEBUG "pci_bmcpyfrom(dst=%x,src=%x,len=%d)\n",(int)dst,(int)src,len);
429 dp = (unsigned long *) dst;
430 @@ -958,13 +958,13 @@
435 + printk(KERN_INFO "DATA:");
436 dcp = (unsigned char *) dst;
437 for (i = 0; (i < len); i++) {
438 - if ((i % 16) == 0) printk("\n%04x: ", i);
439 - printk("%02x ", *dcp++);
440 + if ((i % 16) == 0) printk(KERN_INFO "\n%04x: ", i);
441 + printk(KERN_INFO "%02x ", *dcp++);
444 + printk(KERN_INFO "\n");
448 diff -Naur linux-2.6.0-test8/arch/m68knommu/kernel/Makefile linux-2.6.0-test8-uc0/arch/m68knommu/kernel/Makefile
449 --- linux-2.6.0-test8/arch/m68knommu/kernel/Makefile 2003-10-20 09:10:57.721659184 +1000
450 +++ linux-2.6.0-test8-uc0/arch/m68knommu/kernel/Makefile 2003-10-20 09:11:54.086090488 +1000
453 extra-y := vmlinux.lds.s
455 -obj-y += entry.o init_task.o m68k_ksyms.o process.o ptrace.o \
456 - semaphore.o setup.o signal.o syscalltable.o sys_m68k.o time.o \
458 +obj-y += entry.o init_task.o m68k_ksyms.o process.o ptrace.o semaphore.o \
459 + setup.o signal.o syscalltable.o sys_m68k.o time.o traps.o
461 +obj-$(CONFIG_MODULES) += module.o
462 obj-$(CONFIG_COMEMPCI) += comempci.o
463 diff -Naur linux-2.6.0-test8/arch/m68knommu/kernel/module.c linux-2.6.0-test8-uc0/arch/m68knommu/kernel/module.c
464 --- linux-2.6.0-test8/arch/m68knommu/kernel/module.c 1970-01-01 10:00:00.000000000 +1000
465 +++ linux-2.6.0-test8-uc0/arch/m68knommu/kernel/module.c 2003-10-20 09:11:54.095089120 +1000
467 +#include <linux/moduleloader.h>
468 +#include <linux/elf.h>
469 +#include <linux/vmalloc.h>
470 +#include <linux/fs.h>
471 +#include <linux/string.h>
472 +#include <linux/kernel.h>
475 +#define DEBUGP printk
477 +#define DEBUGP(fmt...)
480 +void *module_alloc(unsigned long size)
484 + return vmalloc(size);
488 +/* Free memory returned from module_alloc */
489 +void module_free(struct module *mod, void *module_region)
491 + vfree(module_region);
492 + /* FIXME: If module_region == mod->init_region, trim exception
496 +/* We don't need anything special. */
497 +int module_frob_arch_sections(Elf_Ehdr *hdr,
500 + struct module *mod)
505 +int apply_relocate(Elf32_Shdr *sechdrs,
506 + const char *strtab,
507 + unsigned int symindex,
508 + unsigned int relsec,
512 + Elf32_Rel *rel = (void *)sechdrs[relsec].sh_addr;
514 + uint32_t *location;
516 + DEBUGP("Applying relocate section %u to %u\n", relsec,
517 + sechdrs[relsec].sh_info);
518 + for (i = 0; i < sechdrs[relsec].sh_size / sizeof(*rel); i++) {
519 + /* This is where to make the change */
520 + location = (void *)sechdrs[sechdrs[relsec].sh_info].sh_addr
522 + /* This is the symbol it is referring to. Note that all
523 + undefined symbols have been resolved. */
524 + sym = (Elf32_Sym *)sechdrs[symindex].sh_addr
525 + + ELF32_R_SYM(rel[i].r_info);
527 + switch (ELF32_R_TYPE(rel[i].r_info)) {
529 + /* We add the value into the location given */
530 + *location += sym->st_value;
533 + /* Add the value, subtract its postition */
534 + *location += sym->st_value - (uint32_t)location;
537 + printk(KERN_ERR "module %s: Unknown relocation: %u\n",
538 + me->name, ELF32_R_TYPE(rel[i].r_info));
545 +int apply_relocate_add(Elf32_Shdr *sechdrs,
546 + const char *strtab,
547 + unsigned int symindex,
548 + unsigned int relsec,
551 + printk(KERN_ERR "module %s: ADD RELOCATION unsupported\n",
556 +int module_finalize(const Elf_Ehdr *hdr,
557 + const Elf_Shdr *sechdrs,
563 +void module_arch_cleanup(struct module *mod)
566 diff -Naur linux-2.6.0-test8/arch/m68knommu/kernel/process.c linux-2.6.0-test8-uc0/arch/m68knommu/kernel/process.c
567 --- linux-2.6.0-test8/arch/m68knommu/kernel/process.c 2003-10-20 09:10:57.720659336 +1000
568 +++ linux-2.6.0-test8-uc0/arch/m68knommu/kernel/process.c 2003-10-20 09:11:54.102088056 +1000
571 void show_regs(struct pt_regs * regs)
574 - printk("Format %02x Vector: %04x PC: %08lx Status: %04x %s\n",
575 + printk(KERN_NOTICE "\n");
576 + printk(KERN_NOTICE "Format %02x Vector: %04x PC: %08lx Status: %04x %s\n",
577 regs->format, regs->vector, regs->pc, regs->sr, print_tainted());
578 - printk("ORIG_D0: %08lx D0: %08lx A2: %08lx A1: %08lx\n",
579 + printk(KERN_NOTICE "ORIG_D0: %08lx D0: %08lx A2: %08lx A1: %08lx\n",
580 regs->orig_d0, regs->d0, regs->a2, regs->a1);
581 - printk("A0: %08lx D5: %08lx D4: %08lx\n",
582 + printk(KERN_NOTICE "A0: %08lx D5: %08lx D4: %08lx\n",
583 regs->a0, regs->d5, regs->d4);
584 - printk("D3: %08lx D2: %08lx D1: %08lx\n",
585 + printk(KERN_NOTICE "D3: %08lx D2: %08lx D1: %08lx\n",
586 regs->d3, regs->d2, regs->d1);
587 if (!(regs->sr & PS_S))
588 - printk("USP: %08lx\n", rdusp());
589 + printk(KERN_NOTICE "USP: %08lx\n", rdusp());
593 @@ -328,58 +328,58 @@
597 - printk("\nCURRENT PROCESS:\n\n");
598 - printk("COMM=%s PID=%d\n", current->comm, current->pid);
599 + printk(KERN_EMERG "\nCURRENT PROCESS:\n\n");
600 + printk(KERN_EMERG "COMM=%s PID=%d\n", current->comm, current->pid);
603 - printk("TEXT=%08x-%08x DATA=%08x-%08x BSS=%08x-%08x\n",
604 + printk(KERN_EMERG "TEXT=%08x-%08x DATA=%08x-%08x BSS=%08x-%08x\n",
605 (int) current->mm->start_code,
606 (int) current->mm->end_code,
607 (int) current->mm->start_data,
608 (int) current->mm->end_data,
609 (int) current->mm->end_data,
610 (int) current->mm->brk);
611 - printk("USER-STACK=%08x KERNEL-STACK=%08x\n\n",
612 + printk(KERN_EMERG "USER-STACK=%08x KERNEL-STACK=%08x\n\n",
613 (int) current->mm->start_stack,
614 (int)(((unsigned long) current) + KTHREAD_SIZE));
617 - printk("PC: %08lx\n", fp->pc);
618 - printk("SR: %08lx SP: %08lx\n", (long) fp->sr, (long) fp);
619 - printk("d0: %08lx d1: %08lx d2: %08lx d3: %08lx\n",
620 + printk(KERN_EMERG "PC: %08lx\n", fp->pc);
621 + printk(KERN_EMERG "SR: %08lx SP: %08lx\n", (long) fp->sr, (long) fp);
622 + printk(KERN_EMERG "d0: %08lx d1: %08lx d2: %08lx d3: %08lx\n",
623 fp->d0, fp->d1, fp->d2, fp->d3);
624 - printk("d4: %08lx d5: %08lx a0: %08lx a1: %08lx\n",
625 + printk(KERN_EMERG "d4: %08lx d5: %08lx a0: %08lx a1: %08lx\n",
626 fp->d4, fp->d5, fp->a0, fp->a1);
627 - printk("\nUSP: %08x TRAPFRAME: %08x\n", (unsigned int) rdusp(),
628 + printk(KERN_EMERG "\nUSP: %08x TRAPFRAME: %08x\n", (unsigned int) rdusp(),
632 + printk(KERN_EMERG "\nCODE:");
633 tp = ((unsigned char *) fp->pc) - 0x20;
634 for (sp = (unsigned long *) tp, i = 0; (i < 0x40); i += 4) {
636 - printk("\n%08x: ", (int) (tp + i));
637 - printk("%08x ", (int) *sp++);
638 + printk(KERN_EMERG "\n%08x: ", (int) (tp + i));
639 + printk(KERN_EMERG "%08x ", (int) *sp++);
642 + printk(KERN_EMERG "\n");
644 - printk("\nKERNEL STACK:");
645 + printk(KERN_EMERG "\nKERNEL STACK:");
646 tp = ((unsigned char *) fp) - 0x40;
647 for (sp = (unsigned long *) tp, i = 0; (i < 0xc0); i += 4) {
649 - printk("\n%08x: ", (int) (tp + i));
650 - printk("%08x ", (int) *sp++);
651 + printk(KERN_EMERG "\n%08x: ", (int) (tp + i));
652 + printk(KERN_EMERG "%08x ", (int) *sp++);
656 + printk(KERN_EMERG "\n");
657 + printk(KERN_EMERG "\n");
659 - printk("\nUSER STACK:");
660 + printk(KERN_EMERG "\nUSER STACK:");
661 tp = (unsigned char *) (rdusp() - 0x10);
662 for (sp = (unsigned long *) tp, i = 0; (i < 0x80); i += 4) {
664 - printk("\n%08x: ", (int) (tp + i));
665 - printk("%08x ", (int) *sp++);
666 + printk(KERN_EMERG "\n%08x: ", (int) (tp + i));
667 + printk(KERN_EMERG "%08x ", (int) *sp++);
670 + printk(KERN_EMERG "\n\n");
674 diff -Naur linux-2.6.0-test8/arch/m68knommu/kernel/setup.c linux-2.6.0-test8-uc0/arch/m68knommu/kernel/setup.c
675 --- linux-2.6.0-test8/arch/m68knommu/kernel/setup.c 2003-10-20 09:10:57.813645200 +1000
676 +++ linux-2.6.0-test8-uc0/arch/m68knommu/kernel/setup.c 2003-10-20 09:11:54.104087752 +1000
681 -void (*mach_sched_init) (void (*handler)(int, void *, struct pt_regs *)) = NULL;
682 +void (*mach_sched_init) (irqreturn_t (*handler)(int, void *, struct pt_regs *)) = NULL;
683 void (*mach_tick)( void ) = NULL;
684 /* machine dependent keyboard functions */
685 int (*mach_keyb_init) (void) = NULL;
687 void (*mach_kbd_leds) (unsigned int) = NULL;
688 /* machine dependent irq functions */
689 void (*mach_init_IRQ) (void) = NULL;
690 -void (*(*mach_default_handler)[]) (int, void *, struct pt_regs *) = NULL;
691 -int (*mach_request_irq) (unsigned int, void (*)(int, void *, struct pt_regs *),
692 - unsigned long, const char *, void *);
693 -void (*mach_free_irq) (unsigned int irq, void *dev_id) = NULL;
694 +irqreturn_t (*(*mach_default_handler)[]) (int, void *, struct pt_regs *) = NULL;
695 void (*mach_enable_irq) (unsigned int) = NULL;
696 void (*mach_disable_irq) (unsigned int) = NULL;
697 int (*mach_get_irq_list) (struct seq_file *, void *) = NULL;
698 @@ -163,57 +160,57 @@
700 config_BSP(&command_line[0], sizeof(command_line));
702 - printk("\x0F\r\n\nuClinux/" CPU "\n");
703 + printk(KERN_INFO "\x0F\r\n\nuClinux/" CPU "\n");
706 - printk("uCdimm by Lineo, Inc. <www.lineo.com>\n");
707 + printk(KERN_INFO "uCdimm by Lineo, Inc. <www.lineo.com>\n");
709 #ifdef CONFIG_M68VZ328
710 - printk("M68VZ328 support by Evan Stawnyczy <e@lineo.ca>\n");
711 + printk(KERN_INFO "M68VZ328 support by Evan Stawnyczy <e@lineo.ca>\n");
713 #ifdef CONFIG_COLDFIRE
714 - printk("COLDFIRE port done by Greg Ungerer, gerg@snapgear.com\n");
715 + printk(KERN_INFO "COLDFIRE port done by Greg Ungerer, gerg@snapgear.com\n");
717 - printk("Modified for M5307 by Dave Miller, dmiller@intellistor.com\n");
718 + printk(KERN_INFO "Modified for M5307 by Dave Miller, dmiller@intellistor.com\n");
721 - printk("Modified for M5206eLITE by Rob Scott, rscott@mtrob.fdns.net\n");
722 + printk(KERN_INFO "Modified for M5206eLITE by Rob Scott, rscott@mtrob.fdns.net\n");
725 - printk("Modified for Omnia ToolVox by James D. Schettine, james@telos-systems.com\n");
726 + printk(KERN_INFO "Modified for Omnia ToolVox by James D. Schettine, james@telos-systems.com\n");
729 - printk("Flat model support (C) 1998,1999 Kenneth Albanowski, D. Jeff Dionne\n");
730 + printk(KERN_INFO "Flat model support (C) 1998,1999 Kenneth Albanowski, D. Jeff Dionne\n");
732 #if defined( CONFIG_PILOT ) && defined( CONFIG_M68328 )
733 - printk("TRG SuperPilot FLASH card support <info@trgnet.com>\n");
734 + printk(KERN_INFO "TRG SuperPilot FLASH card support <info@trgnet.com>\n");
737 #if defined( CONFIG_PILOT ) && defined( CONFIG_M68EZ328 )
738 - printk("PalmV support by Lineo Inc. <jeff@uclinux.com>\n");
739 + printk(KERN_INFO "PalmV support by Lineo Inc. <jeff@uclinux.com>\n");
742 #ifdef CONFIG_M68EZ328ADS
743 - printk("M68EZ328ADS board support (C) 1999 Vladimir Gurevich <vgurevic@cisco.com>\n");
744 + printk(KERN_INFO "M68EZ328ADS board support (C) 1999 Vladimir Gurevich <vgurevic@cisco.com>\n");
747 #ifdef CONFIG_ALMA_ANS
748 - printk("Alma Electronics board support (C) 1999 Vladimir Gurevich <vgurevic@cisco.com>\n");
749 + printk(KERN_INFO "Alma Electronics board support (C) 1999 Vladimir Gurevich <vgurevic@cisco.com>\n");
751 #if defined (CONFIG_M68360)
752 - printk("QUICC port done by SED Systems <hamilton@sedsystems.ca>,\n");
753 - printk("based on 2.0.38 port by Lineo Inc. <mleslie@lineo.com>.\n");
754 + printk(KERN_INFO "QUICC port done by SED Systems <hamilton@sedsystems.ca>,\n");
755 + printk(KERN_INFO "based on 2.0.38 port by Lineo Inc. <mleslie@lineo.com>.\n");
757 #ifdef CONFIG_DRAGEN2
758 - printk("DragonEngine II board support by Georges Menie\n");
759 + printk(KERN_INFO "DragonEngine II board support by Georges Menie\n");
763 - printk("KERNEL -> TEXT=0x%06x-0x%06x DATA=0x%06x-0x%06x "
764 + printk(KERN_DEBUG "KERNEL -> TEXT=0x%06x-0x%06x DATA=0x%06x-0x%06x "
765 "BSS=0x%06x-0x%06x\n", (int) &_stext, (int) &_etext,
766 (int) &_sdata, (int) &_edata,
767 (int) &_sbss, (int) &_ebss);
768 - printk("KERNEL -> ROMFS=0x%06x-0x%06x MEM=0x%06x-0x%06x "
769 + printk(KERN_DEBUG "KERNEL -> ROMFS=0x%06x-0x%06x MEM=0x%06x-0x%06x "
770 "STACK=0x%06x-0x%06x\n",
772 (int) romarray, ((int) romarray) + romarray[2],
776 if (strlen(*cmdline_p))
777 - printk("Command line: '%s'\n", *cmdline_p);
778 + printk(KERN_DEBUG "Command line: '%s'\n", *cmdline_p);
781 #ifdef CONFIG_CONSOLE
782 diff -Naur linux-2.6.0-test8/arch/m68knommu/kernel/signal.c linux-2.6.0-test8-uc0/arch/m68knommu/kernel/signal.c
783 --- linux-2.6.0-test8/arch/m68knommu/kernel/signal.c 2003-10-20 09:10:57.800647176 +1000
784 +++ linux-2.6.0-test8-uc0/arch/m68knommu/kernel/signal.c 2003-10-20 09:11:54.110086840 +1000
786 struct pt_regs *tregs =
787 (struct pt_regs *)((ulong)regs + regs->stkadj);
789 - printk("Performing stackadjust=%04x\n", regs->stkadj);
790 + printk(KERN_DEBUG "Performing stackadjust=%04x\n", regs->stkadj);
792 /* This must be copied with decreasing addresses to
795 struct pt_regs *tregs =
796 (struct pt_regs *)((ulong)regs + regs->stkadj);
798 - printk("Performing stackadjust=%04x\n", regs->stkadj);
799 + printk(KERN_DEBUG "Performing stackadjust=%04x\n", regs->stkadj);
801 /* This must be copied with decreasing addresses to
803 diff -Naur linux-2.6.0-test8/arch/m68knommu/kernel/time.c linux-2.6.0-test8-uc0/arch/m68knommu/kernel/time.c
804 --- linux-2.6.0-test8/arch/m68knommu/kernel/time.c 2003-10-20 09:10:57.814645048 +1000
805 +++ linux-2.6.0-test8-uc0/arch/m68knommu/kernel/time.c 2003-10-20 09:11:54.133083344 +1000
811 + * Scheduler clock - returns current time in nanosec units.
813 +unsigned long long sched_clock(void)
815 + return (unsigned long long)jiffies * (1000000000 / HZ);
818 EXPORT_SYMBOL(do_settimeofday);
819 diff -Naur linux-2.6.0-test8/arch/m68knommu/kernel/traps.c linux-2.6.0-test8-uc0/arch/m68knommu/kernel/traps.c
820 --- linux-2.6.0-test8/arch/m68knommu/kernel/traps.c 2003-10-20 09:10:57.722659032 +1000
821 +++ linux-2.6.0-test8-uc0/arch/m68knommu/kernel/traps.c 2003-10-20 09:11:54.134083192 +1000
826 - printk("%s: %08x\n",str,nr);
827 - printk("PC: [<%08lx>]\nSR: %04x SP: %p a2: %08lx\n",
828 + printk(KERN_EMERG "%s: %08x\n",str,nr);
829 + printk(KERN_EMERG "PC: [<%08lx>]\nSR: %04x SP: %p a2: %08lx\n",
830 fp->pc, fp->sr, fp, fp->a2);
831 - printk("d0: %08lx d1: %08lx d2: %08lx d3: %08lx\n",
832 + printk(KERN_EMERG "d0: %08lx d1: %08lx d2: %08lx d3: %08lx\n",
833 fp->d0, fp->d1, fp->d2, fp->d3);
834 - printk("d4: %08lx d5: %08lx a0: %08lx a1: %08lx\n",
835 + printk(KERN_EMERG "d4: %08lx d5: %08lx a0: %08lx a1: %08lx\n",
836 fp->d4, fp->d5, fp->a0, fp->a1);
838 - printk("Process %s (pid: %d, stackpage=%08lx)\n",
839 + printk(KERN_EMERG "Process %s (pid: %d, stackpage=%08lx)\n",
840 current->comm, current->pid, PAGE_SIZE+(unsigned long)current);
841 show_stack(NULL, (unsigned long *)fp);
844 current->thread.esp0 = (unsigned long) fp;
847 - printk ("*** Bus Error *** Format is %x\n", fp->ptregs.format);
848 + printk (KERN_DEBUG "*** Bus Error *** Format is %x\n", fp->ptregs.format);
851 die_if_kernel("bad frame format",&fp->ptregs,0);
853 - printk("Unknown SIGSEGV - 4\n");
854 + printk(KERN_DEBUG "Unknown SIGSEGV - 4\n");
856 force_sig(SIGSEGV, current);
858 @@ -119,16 +119,16 @@
859 addr = (unsigned long) esp;
860 endstack = (unsigned long *) PAGE_ALIGN(addr);
862 - printk("Stack from %08lx:", (unsigned long)stack);
863 + printk(KERN_EMERG "Stack from %08lx:", (unsigned long)stack);
864 for (i = 0; i < kstack_depth_to_print; i++) {
865 if (stack + 1 > endstack)
869 - printk(" %08lx", *stack++);
870 + printk(KERN_EMERG "\n ");
871 + printk(KERN_EMERG " %08lx", *stack++);
874 - printk("\nCall Trace:");
875 + printk(KERN_EMERG "\nCall Trace:");
877 while (stack + 1 <= endstack) {
879 @@ -143,26 +143,26 @@
880 if (((addr >= (unsigned long) &_start) &&
881 (addr <= (unsigned long) &_etext))) {
884 - printk(" [<%08lx>]", addr);
885 + printk(KERN_EMERG "\n ");
886 + printk(KERN_EMERG " [<%08lx>]", addr);
891 + printk(KERN_EMERG "\n");
894 void bad_super_trap(struct frame *fp)
897 if (fp->ptregs.vector < 4*sizeof(vec_names)/sizeof(vec_names[0]))
898 - printk ("*** %s *** FORMAT=%X\n",
899 + printk (KERN_WARNING "*** %s *** FORMAT=%X\n",
900 vec_names[(fp->ptregs.vector) >> 2],
903 - printk ("*** Exception %d *** FORMAT=%X\n",
904 + printk (KERN_WARNING "*** Exception %d *** FORMAT=%X\n",
905 (fp->ptregs.vector) >> 2,
907 - printk ("Current process id is %d\n", current->pid);
908 + printk (KERN_WARNING "Current process id is %d\n", current->pid);
909 die_if_kernel("BAD KERNEL TRAP", &fp->ptregs, 0);
914 void show_trace_task(struct task_struct *tsk)
916 - printk("STACK ksp=0x%lx, usp=0x%lx\n", tsk->thread.ksp, tsk->thread.usp);
917 + printk(KERN_WARNING "STACK ksp=0x%lx, usp=0x%lx\n", tsk->thread.ksp, tsk->thread.usp);
920 #ifdef CONFIG_M68KFPU_EMU
921 diff -Naur linux-2.6.0-test8/arch/m68knommu/lib/checksum.c linux-2.6.0-test8-uc0/arch/m68knommu/lib/checksum.c
922 --- linux-2.6.0-test8/arch/m68knommu/lib/checksum.c 2003-10-20 09:10:57.817644592 +1000
923 +++ linux-2.6.0-test8-uc0/arch/m68knommu/lib/checksum.c 2003-10-20 09:11:53.749141712 +1000
925 of the assembly has to go. */
927 #include <net/checksum.h>
928 -#include <net/module.h>
930 static inline unsigned short from32to16(unsigned long x)
932 diff -Naur linux-2.6.0-test8/arch/m68knommu/lib/cmpdi2.c linux-2.6.0-test8-uc0/arch/m68knommu/lib/cmpdi2.c
933 --- linux-2.6.0-test8/arch/m68knommu/lib/cmpdi2.c 1970-01-01 10:00:00.000000000 +1000
934 +++ linux-2.6.0-test8-uc0/arch/m68knommu/lib/cmpdi2.c 2003-10-20 09:11:53.758140344 +1000
936 +/* cmpdi2.c extracted from gcc-2.95.3/libgcc2.c which is: */
937 +/* Copyright (C) 1989, 92-98, 1999 Free Software Foundation, Inc.
939 +This file is part of GNU CC.
941 +GNU CC is free software; you can redistribute it and/or modify
942 +it under the terms of the GNU General Public License as published by
943 +the Free Software Foundation; either version 2, or (at your option)
946 +GNU CC is distributed in the hope that it will be useful,
947 +but WITHOUT ANY WARRANTY; without even the implied warranty of
948 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
949 +GNU General Public License for more details.
951 +You should have received a copy of the GNU General Public License
952 +along with GNU CC; see the file COPYING. If not, write to
953 +the Free Software Foundation, 59 Temple Place - Suite 330,
954 +Boston, MA 02111-1307, USA. */
956 +typedef int SItype __attribute__ ((mode (SI)));
957 +typedef unsigned int USItype __attribute__ ((mode (SI)));
958 +typedef int DItype __attribute__ ((mode (DI)));
959 +typedef unsigned int UDItype __attribute__ ((mode (DI)));
961 +typedef int word_type __attribute__ ((mode (__word__)));
963 +struct DIstruct {SItype high, low;};
972 +__cmpdi2 (DItype a, DItype b)
976 + au.ll = a, bu.ll = b;
978 + if (au.s.high < bu.s.high)
980 + else if (au.s.high > bu.s.high)
982 + if ((USItype) au.s.low < (USItype) bu.s.low)
984 + else if ((USItype) au.s.low > (USItype) bu.s.low)
991 +__ucmpdi2 (DItype a, DItype b)
995 + au.ll = a, bu.ll = b;
997 + if ((USItype) au.s.high < (USItype) bu.s.high)
999 + else if ((USItype) au.s.high > (USItype) bu.s.high)
1001 + if ((USItype) au.s.low < (USItype) bu.s.low)
1003 + else if ((USItype) au.s.low > (USItype) bu.s.low)
1007 diff -Naur linux-2.6.0-test8/arch/m68knommu/lib/divdi3.c linux-2.6.0-test8-uc0/arch/m68knommu/lib/divdi3.c
1008 --- linux-2.6.0-test8/arch/m68knommu/lib/divdi3.c 1970-01-01 10:00:00.000000000 +1000
1009 +++ linux-2.6.0-test8-uc0/arch/m68knommu/lib/divdi3.c 2003-10-20 09:11:53.773138064 +1000
1011 +/* divdi3.c extracted from gcc-2.95.3/libgcc2.c which is: */
1012 +/* Copyright (C) 1989, 92-98, 1999 Free Software Foundation, Inc.
1014 +This file is part of GNU CC.
1016 +GNU CC is free software; you can redistribute it and/or modify
1017 +it under the terms of the GNU General Public License as published by
1018 +the Free Software Foundation; either version 2, or (at your option)
1021 +GNU CC is distributed in the hope that it will be useful,
1022 +but WITHOUT ANY WARRANTY; without even the implied warranty of
1023 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1024 +GNU General Public License for more details.
1026 +You should have received a copy of the GNU General Public License
1027 +along with GNU CC; see the file COPYING. If not, write to
1028 +the Free Software Foundation, 59 Temple Place - Suite 330,
1029 +Boston, MA 02111-1307, USA. */
1031 +typedef int SItype __attribute__ ((mode (SI)));
1032 +typedef int DItype __attribute__ ((mode (DI)));
1033 +typedef unsigned int UDItype __attribute__ ((mode (DI)));
1035 +typedef int word_type __attribute__ ((mode (__word__)));
1037 +struct DIstruct {SItype high, low;};
1041 + struct DIstruct s;
1045 +UDItype __udivmoddi4 (UDItype n, UDItype d, UDItype *rp);
1046 +DItype __negdi2 (DItype u);
1049 +__divdi3 (DItype u, DItype v)
1058 + if (uu.s.high < 0)
1060 + uu.ll = __negdi2 (uu.ll);
1061 + if (vv.s.high < 0)
1063 + vv.ll = __negdi2 (vv.ll);
1065 + w = __udivmoddi4 (uu.ll, vv.ll, (UDItype *) 0);
1073 +__udivdi3 (UDItype n, UDItype d)
1075 + return __udivmoddi4 (n, d, (UDItype *) 0);
1077 diff -Naur linux-2.6.0-test8/arch/m68knommu/lib/divsi3.S linux-2.6.0-test8-uc0/arch/m68knommu/lib/divsi3.S
1078 --- linux-2.6.0-test8/arch/m68knommu/lib/divsi3.S 2003-10-20 09:10:57.818644440 +1000
1079 +++ linux-2.6.0-test8-uc0/arch/m68knommu/lib/divsi3.S 2003-10-20 09:11:53.781136848 +1000
1081 movel sp@(12), d1 /* d1 = divisor */
1084 -#ifndef __mcf5200__
1085 +#if !(defined(__mcf5200__) || defined(__mcoldfire__))
1086 negb d2 /* change sign because divisor <0 */
1088 negl d2 /* change sign because divisor <0 */
1090 L1: movel sp@(8), d0 /* d0 = dividend */
1093 -#ifndef __mcf5200__
1094 +#if !(defined(__mcf5200__) || defined(__mcoldfire__))
1098 diff -Naur linux-2.6.0-test8/arch/m68knommu/lib/gcc_bcmp.c linux-2.6.0-test8-uc0/arch/m68knommu/lib/gcc_bcmp.c
1099 --- linux-2.6.0-test8/arch/m68knommu/lib/gcc_bcmp.c 1970-01-01 10:00:00.000000000 +1000
1100 +++ linux-2.6.0-test8-uc0/arch/m68knommu/lib/gcc_bcmp.c 2003-10-20 09:11:53.781136848 +1000
1102 +/* gcc_bmp.c extracted from gcc-2.95.3/libgcc2.c which is: */
1103 +/* Copyright (C) 1989, 92-98, 1999 Free Software Foundation, Inc.
1105 +This file is part of GNU CC.
1107 +GNU CC is free software; you can redistribute it and/or modify
1108 +it under the terms of the GNU General Public License as published by
1109 +the Free Software Foundation; either version 2, or (at your option)
1112 +GNU CC is distributed in the hope that it will be useful,
1113 +but WITHOUT ANY WARRANTY; without even the implied warranty of
1114 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1115 +GNU General Public License for more details.
1117 +You should have received a copy of the GNU General Public License
1118 +along with GNU CC; see the file COPYING. If not, write to
1119 +the Free Software Foundation, 59 Temple Place - Suite 330,
1120 +Boston, MA 02111-1307, USA. */
1122 +#include <linux/types.h>
1124 +/* Like bcmp except the sign is meaningful.
1125 + Result is negative if S1 is less than S2,
1126 + positive if S1 is greater, 0 if S1 and S2 are equal. */
1129 +__gcc_bcmp (unsigned char *s1, unsigned char *s2, size_t size)
1133 + unsigned char c1 = *s1++, c2 = *s2++;
1140 diff -Naur linux-2.6.0-test8/arch/m68knommu/lib/Makefile linux-2.6.0-test8-uc0/arch/m68knommu/lib/Makefile
1141 --- linux-2.6.0-test8/arch/m68knommu/lib/Makefile 2003-10-20 09:10:57.816644744 +1000
1142 +++ linux-2.6.0-test8-uc0/arch/m68knommu/lib/Makefile 2003-10-20 09:11:53.730144600 +1000
1145 lib-y := ashldi3.o ashrdi3.o lshrdi3.o \
1146 muldi3.o mulsi3.o divsi3.o udivsi3.o modsi3.o umodsi3.o \
1147 - checksum.o semaphore.o memcpy.o memset.o
1148 + checksum.o semaphore.o memcpy.o memset.o \
1149 + cmpdi2.o divdi3.o negdi2.o moddi3.o udivmoddi4.o gcc_bcmp.o
1150 diff -Naur linux-2.6.0-test8/arch/m68knommu/lib/moddi3.c linux-2.6.0-test8-uc0/arch/m68knommu/lib/moddi3.c
1151 --- linux-2.6.0-test8/arch/m68knommu/lib/moddi3.c 1970-01-01 10:00:00.000000000 +1000
1152 +++ linux-2.6.0-test8-uc0/arch/m68knommu/lib/moddi3.c 2003-10-20 09:11:53.782136696 +1000
1154 +/* moddi3.c extracted from gcc-2.95.3/libgcc2.c which is: */
1155 +/* Copyright (C) 1989, 92-98, 1999 Free Software Foundation, Inc.
1157 +This file is part of GNU CC.
1159 +GNU CC is free software; you can redistribute it and/or modify
1160 +it under the terms of the GNU General Public License as published by
1161 +the Free Software Foundation; either version 2, or (at your option)
1164 +GNU CC is distributed in the hope that it will be useful,
1165 +but WITHOUT ANY WARRANTY; without even the implied warranty of
1166 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1167 +GNU General Public License for more details.
1169 +You should have received a copy of the GNU General Public License
1170 +along with GNU CC; see the file COPYING. If not, write to
1171 +the Free Software Foundation, 59 Temple Place - Suite 330,
1172 +Boston, MA 02111-1307, USA. */
1174 +typedef int SItype __attribute__ ((mode (SI)));
1175 +typedef int DItype __attribute__ ((mode (DI)));
1176 +typedef unsigned int UDItype __attribute__ ((mode (DI)));
1178 +typedef int word_type __attribute__ ((mode (__word__)));
1180 +struct DIstruct {SItype high, low;};
1184 + struct DIstruct s;
1188 +UDItype __udivmoddi4 (UDItype n, UDItype d, UDItype *rp);
1189 +DItype __negdi2 (DItype u);
1192 +__moddi3 (DItype u, DItype v)
1201 + if (uu.s.high < 0)
1203 + uu.ll = __negdi2 (uu.ll);
1204 + if (vv.s.high < 0)
1205 + vv.ll = __negdi2 (vv.ll);
1207 + (void) __udivmoddi4 (uu.ll, vv.ll, &w);
1215 +__umoddi3 (UDItype u, UDItype v)
1219 + (void) __udivmoddi4 (u, v, &w);
1223 diff -Naur linux-2.6.0-test8/arch/m68knommu/lib/modsi3.S linux-2.6.0-test8-uc0/arch/m68knommu/lib/modsi3.S
1224 --- linux-2.6.0-test8/arch/m68knommu/lib/modsi3.S 2003-10-20 09:10:57.815644896 +1000
1225 +++ linux-2.6.0-test8-uc0/arch/m68knommu/lib/modsi3.S 2003-10-20 09:11:53.782136696 +1000
1229 movel sp@(8), d1 /* d1 = divisor */
1230 -#ifndef __mcf5200__
1231 +#if !(defined(__mcf5200__) || defined(__mcoldfire__))
1234 jbsr SYM (__mulsi3) /* d0 = (a/b)*b */
1235 diff -Naur linux-2.6.0-test8/arch/m68knommu/lib/mulsi3.S linux-2.6.0-test8-uc0/arch/m68knommu/lib/mulsi3.S
1236 --- linux-2.6.0-test8/arch/m68knommu/lib/mulsi3.S 2003-10-20 09:10:57.865637296 +1000
1237 +++ linux-2.6.0-test8-uc0/arch/m68knommu/lib/mulsi3.S 2003-10-20 09:11:53.783136544 +1000
1239 muluw sp@(10), d0 /* x0*y1 */
1240 movew sp@(6), d1 /* x1 -> d1 */
1241 muluw sp@(8), d1 /* x1*y0 */
1242 -#ifndef __mcf5200__
1243 +#if !(defined(__mcf5200__) || defined(__mcoldfire__))
1247 diff -Naur linux-2.6.0-test8/arch/m68knommu/lib/negdi2.c linux-2.6.0-test8-uc0/arch/m68knommu/lib/negdi2.c
1248 --- linux-2.6.0-test8/arch/m68knommu/lib/negdi2.c 1970-01-01 10:00:00.000000000 +1000
1249 +++ linux-2.6.0-test8-uc0/arch/m68knommu/lib/negdi2.c 2003-10-20 09:11:53.783136544 +1000
1251 +/* negdi2.c extracted from gcc-2.95.3/libgcc2.c which is: */
1252 +/* Copyright (C) 1989, 92-98, 1999 Free Software Foundation, Inc.
1254 +This file is part of GNU CC.
1256 +GNU CC is free software; you can redistribute it and/or modify
1257 +it under the terms of the GNU General Public License as published by
1258 +the Free Software Foundation; either version 2, or (at your option)
1261 +GNU CC is distributed in the hope that it will be useful,
1262 +but WITHOUT ANY WARRANTY; without even the implied warranty of
1263 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1264 +GNU General Public License for more details.
1266 +You should have received a copy of the GNU General Public License
1267 +along with GNU CC; see the file COPYING. If not, write to
1268 +the Free Software Foundation, 59 Temple Place - Suite 330,
1269 +Boston, MA 02111-1307, USA. */
1271 +typedef int SItype __attribute__ ((mode (SI)));
1272 +typedef unsigned int USItype __attribute__ ((mode (SI)));
1273 +typedef int DItype __attribute__ ((mode (DI)));
1275 +typedef int word_type __attribute__ ((mode (__word__)));
1277 +struct DIstruct {SItype high, low;};
1281 + struct DIstruct s;
1286 +__negdi2 (DItype u)
1293 + w.s.low = -uu.s.low;
1294 + w.s.high = -uu.s.high - ((USItype) w.s.low > 0);
1298 diff -Naur linux-2.6.0-test8/arch/m68knommu/lib/udivmoddi4.c linux-2.6.0-test8-uc0/arch/m68knommu/lib/udivmoddi4.c
1299 --- linux-2.6.0-test8/arch/m68knommu/lib/udivmoddi4.c 1970-01-01 10:00:00.000000000 +1000
1300 +++ linux-2.6.0-test8-uc0/arch/m68knommu/lib/udivmoddi4.c 2003-10-20 09:11:53.784136392 +1000
1302 +/* udivmoddi4.c extracted from gcc-2.95.3/libgcc2.c
1303 + * and gcc-2.95.3/longlong.h which are: */
1304 +/* Copyright (C) 1989, 92-98, 1999 Free Software Foundation, Inc.
1306 +This file is part of GNU CC.
1308 +GNU CC is free software; you can redistribute it and/or modify
1309 +it under the terms of the GNU General Public License as published by
1310 +the Free Software Foundation; either version 2, or (at your option)
1313 +GNU CC is distributed in the hope that it will be useful,
1314 +but WITHOUT ANY WARRANTY; without even the implied warranty of
1315 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1316 +GNU General Public License for more details.
1318 +You should have received a copy of the GNU General Public License
1319 +along with GNU CC; see the file COPYING. If not, write to
1320 +the Free Software Foundation, 59 Temple Place - Suite 330,
1321 +Boston, MA 02111-1307, USA. */
1323 +#define BITS_PER_UNIT 8
1325 +typedef unsigned int UQItype __attribute__ ((mode (QI)));
1326 +typedef int SItype __attribute__ ((mode (SI)));
1327 +typedef unsigned int USItype __attribute__ ((mode (SI)));
1328 +typedef int DItype __attribute__ ((mode (DI)));
1329 +typedef unsigned int UDItype __attribute__ ((mode (DI)));
1331 +#define SI_TYPE_SIZE (sizeof (SItype) * BITS_PER_UNIT)
1333 +struct DIstruct {SItype high, low;};
1337 + struct DIstruct s;
1341 +#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
1342 + __asm__ ("sub%.l %5,%1
1344 + : "=d" ((USItype) (sh)), \
1345 + "=&d" ((USItype) (sl)) \
1346 + : "0" ((USItype) (ah)), \
1347 + "d" ((USItype) (bh)), \
1348 + "1" ((USItype) (al)), \
1349 + "g" ((USItype) (bl)))
1351 +#if !defined(__mcf5200__)
1352 +/* %/ inserts REGISTER_PREFIX, %# inserts IMMEDIATE_PREFIX. */
1353 +#define umul_ppmm(xh, xl, a, b) \
1354 + __asm__ ("| Inlined umul_ppmm
1372 + add%.l %#65536,%/d1
1379 + move%.l %/d0,%0" \
1380 + : "=g" ((USItype) (xh)), \
1381 + "=g" ((USItype) (xl)) \
1382 + : "g" ((USItype) (a)), \
1383 + "g" ((USItype) (b)) \
1384 + : "d0", "d1", "d2", "d3", "d4")
1385 +#define UMUL_TIME 100
1386 +#define UDIV_TIME 400
1387 +#endif /* not mcf5200 */
1389 +#if !defined (udiv_qrnnd)
1390 +#define UDIV_NEEDS_NORMALIZATION 1
1391 +#define udiv_qrnnd __udiv_qrnnd_c
1394 +#define __BITS4 (SI_TYPE_SIZE / 4)
1395 +#define __ll_B (1L << (SI_TYPE_SIZE / 2))
1396 +#define __ll_lowpart(t) ((USItype) (t) % __ll_B)
1397 +#define __ll_highpart(t) ((USItype) (t) / __ll_B)
1399 +#if !defined (count_leading_zeros)
1400 +extern const UQItype __clz_tab[];
1401 +#define count_leading_zeros(count, x) \
1403 + USItype __xr = (x); \
1406 + if (SI_TYPE_SIZE <= 32) \
1408 + __a = __xr < ((USItype)1<<2*__BITS4) \
1409 + ? (__xr < ((USItype)1<<__BITS4) ? 0 : __BITS4) \
1410 + : (__xr < ((USItype)1<<3*__BITS4) ? 2*__BITS4 : 3*__BITS4); \
1414 + for (__a = SI_TYPE_SIZE - 8; __a > 0; __a -= 8) \
1415 + if (((__xr >> __a) & 0xff) != 0) \
1419 + (count) = SI_TYPE_SIZE - (__clz_tab[__xr >> __a] + __a); \
1423 +#define __udiv_qrnnd_c(q, r, n1, n0, d) \
1425 + USItype __d1, __d0, __q1, __q0; \
1426 + USItype __r1, __r0, __m; \
1427 + __d1 = __ll_highpart (d); \
1428 + __d0 = __ll_lowpart (d); \
1430 + __r1 = (n1) % __d1; \
1431 + __q1 = (n1) / __d1; \
1432 + __m = (USItype) __q1 * __d0; \
1433 + __r1 = __r1 * __ll_B | __ll_highpart (n0); \
1436 + __q1--, __r1 += (d); \
1437 + if (__r1 >= (d)) /* i.e. we didn't get carry when adding to __r1 */\
1439 + __q1--, __r1 += (d); \
1443 + __r0 = __r1 % __d1; \
1444 + __q0 = __r1 / __d1; \
1445 + __m = (USItype) __q0 * __d0; \
1446 + __r0 = __r0 * __ll_B | __ll_lowpart (n0); \
1449 + __q0--, __r0 += (d); \
1450 + if (__r0 >= (d)) \
1452 + __q0--, __r0 += (d); \
1456 + (q) = (USItype) __q1 * __ll_B | __q0; \
1460 +#if !defined (umul_ppmm)
1461 +#define umul_ppmm(w1, w0, u, v) \
1463 + USItype __x0, __x1, __x2, __x3; \
1464 + USItype __ul, __vl, __uh, __vh; \
1466 + __ul = __ll_lowpart (u); \
1467 + __uh = __ll_highpart (u); \
1468 + __vl = __ll_lowpart (v); \
1469 + __vh = __ll_highpart (v); \
1471 + __x0 = (USItype) __ul * __vl; \
1472 + __x1 = (USItype) __ul * __vh; \
1473 + __x2 = (USItype) __uh * __vl; \
1474 + __x3 = (USItype) __uh * __vh; \
1476 + __x1 += __ll_highpart (__x0);/* this can't give carry */ \
1477 + __x1 += __x2; /* but this indeed can */ \
1478 + if (__x1 < __x2) /* did we get it? */ \
1479 + __x3 += __ll_B; /* yes, add it in the proper pos. */ \
1481 + (w1) = __x3 + __ll_highpart (__x1); \
1482 + (w0) = __ll_lowpart (__x1) * __ll_B + __ll_lowpart (__x0); \
1487 +static const UQItype __clz_tab[] =
1489 + 0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
1490 + 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
1491 + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
1492 + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
1493 + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
1494 + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
1495 + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
1496 + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
1500 +__udivmoddi4 (UDItype n, UDItype d, UDItype *rp)
1505 + USItype d0, d1, n0, n1, n2;
1517 +#if !UDIV_NEEDS_NORMALIZATION
1522 + /* 0q = nn / 0D */
1524 + udiv_qrnnd (q0, n0, n1, n0, d0);
1527 + /* Remainder in n0. */
1531 + /* qq = NN / 0d */
1534 + d0 = 1 / d0; /* Divide intentionally by zero. */
1536 + udiv_qrnnd (q1, n1, 0, n1, d0);
1537 + udiv_qrnnd (q0, n0, n1, n0, d0);
1539 + /* Remainder in n0. */
1550 +#else /* UDIV_NEEDS_NORMALIZATION */
1556 + /* 0q = nn / 0D */
1558 + count_leading_zeros (bm, d0);
1562 + /* Normalize, i.e. make the most significant bit of the
1563 + denominator set. */
1566 + n1 = (n1 << bm) | (n0 >> (SI_TYPE_SIZE - bm));
1570 + udiv_qrnnd (q0, n0, n1, n0, d0);
1573 + /* Remainder in n0 >> bm. */
1577 + /* qq = NN / 0d */
1580 + d0 = 1 / d0; /* Divide intentionally by zero. */
1582 + count_leading_zeros (bm, d0);
1586 + /* From (n1 >= d0) /\ (the most significant bit of d0 is set),
1587 + conclude (the most significant bit of n1 is set) /\ (the
1588 + leading quotient digit q1 = 1).
1590 + This special case is necessary, not an optimization.
1591 + (Shifts counts of SI_TYPE_SIZE are undefined.) */
1600 + b = SI_TYPE_SIZE - bm;
1604 + n1 = (n1 << bm) | (n0 >> b);
1607 + udiv_qrnnd (q1, n1, n2, n1, d0);
1612 + udiv_qrnnd (q0, n0, n1, n0, d0);
1614 + /* Remainder in n0 >> bm. */
1619 + rr.s.low = n0 >> bm;
1624 +#endif /* UDIV_NEEDS_NORMALIZATION */
1630 + /* 00 = nn / DD */
1635 + /* Remainder in n1n0. */
1645 + /* 0q = NN / dd */
1647 + count_leading_zeros (bm, d1);
1650 + /* From (n1 >= d1) /\ (the most significant bit of d1 is set),
1651 + conclude (the most significant bit of n1 is set) /\ (the
1652 + quotient digit q0 = 0 or 1).
1654 + This special case is necessary, not an optimization. */
1656 + /* The condition on the next line takes advantage of that
1657 + n1 >= d1 (true due to program flow). */
1658 + if (n1 > d1 || n0 >= d0)
1661 + sub_ddmmss (n1, n0, n1, n0, d1, d0);
1680 + b = SI_TYPE_SIZE - bm;
1682 + d1 = (d1 << bm) | (d0 >> b);
1685 + n1 = (n1 << bm) | (n0 >> b);
1688 + udiv_qrnnd (q0, n1, n2, n1, d1);
1689 + umul_ppmm (m1, m0, q0, d0);
1691 + if (m1 > n1 || (m1 == n1 && m0 > n0))
1694 + sub_ddmmss (m1, m0, m1, m0, d1, d0);
1699 + /* Remainder in (n1n0 - m1m0) >> bm. */
1702 + sub_ddmmss (n1, n0, n1, n0, m1, m0);
1703 + rr.s.low = (n1 << b) | (n0 >> bm);
1704 + rr.s.high = n1 >> bm;
1715 diff -Naur linux-2.6.0-test8/arch/m68knommu/lib/udivsi3.S linux-2.6.0-test8-uc0/arch/m68knommu/lib/udivsi3.S
1716 --- linux-2.6.0-test8/arch/m68knommu/lib/udivsi3.S 2003-10-20 09:10:57.864637448 +1000
1717 +++ linux-2.6.0-test8-uc0/arch/m68knommu/lib/udivsi3.S 2003-10-20 09:11:53.784136392 +1000
1720 .globl SYM (__udivsi3)
1722 -#ifndef __mcf5200__
1723 +#if !(defined(__mcf5200__) || defined(__mcoldfire__))
1725 movel sp@(12), d1 /* d1 = divisor */
1726 movel sp@(8), d0 /* d0 = dividend */
1731 -#else /* __mcf5200__ */
1732 +#else /* __mcf5200__ || __mcoldfire__ */
1734 /* Coldfire implementation of non-restoring division algorithm from
1735 Hennessy & Patterson, Appendix A. */
1737 moveml sp@,d2-d4 | restore data registers
1738 unlk a6 | and return
1740 -#endif /* __mcf5200__ */
1741 +#endif /* __mcf5200__ || __mcoldfire__ */
1743 diff -Naur linux-2.6.0-test8/arch/m68knommu/lib/umodsi3.S linux-2.6.0-test8-uc0/arch/m68knommu/lib/umodsi3.S
1744 --- linux-2.6.0-test8/arch/m68knommu/lib/umodsi3.S 2003-10-20 09:10:57.831642464 +1000
1745 +++ linux-2.6.0-test8-uc0/arch/m68knommu/lib/umodsi3.S 2003-10-20 09:11:53.784136392 +1000
1747 jbsr SYM (__udivsi3)
1749 movel sp@(8), d1 /* d1 = divisor */
1750 -#ifndef __mcf5200__
1751 +#if !(defined(__mcf5200__) || defined(__mcoldfire__))
1754 jbsr SYM (__mulsi3) /* d0 = (a/b)*b */
1755 diff -Naur linux-2.6.0-test8/arch/m68knommu/Makefile linux-2.6.0-test8-uc0/arch/m68knommu/Makefile
1756 --- linux-2.6.0-test8/arch/m68knommu/Makefile 2003-10-20 09:10:57.875635776 +1000
1757 +++ linux-2.6.0-test8-uc0/arch/m68knommu/Makefile 2003-10-20 09:11:53.690150680 +1000
1760 CFLAGS += $(cflags-y)
1761 CFLAGS += -fno-builtin
1764 CFLAGS += -D__linux__
1765 CFLAGS += -DUTS_SYSNAME=\"uClinux\"
1767 diff -Naur linux-2.6.0-test8/arch/m68knommu/mm/fault.c linux-2.6.0-test8-uc0/arch/m68knommu/mm/fault.c
1768 --- linux-2.6.0-test8/arch/m68knommu/mm/fault.c 2003-10-20 09:10:57.866637144 +1000
1769 +++ linux-2.6.0-test8-uc0/arch/m68knommu/mm/fault.c 2003-10-20 09:11:55.292907024 +1000
1771 unsigned long error_code)
1774 - printk ("regs->sr=%#x, regs->pc=%#lx, address=%#lx, %ld\n",
1775 + printk (KERN_DEBUG "regs->sr=%#x, regs->pc=%#lx, address=%#lx, %ld\n",
1776 regs->sr, regs->pc, address, error_code);
1780 printk(KERN_ALERT "Unable to handle kernel NULL pointer dereference");
1782 printk(KERN_ALERT "Unable to handle kernel access");
1783 - printk(" at virtual address %08lx\n",address);
1784 + printk(KERN_ALERT " at virtual address %08lx\n",address);
1785 die_if_kernel("Oops", regs, error_code);
1788 diff -Naur linux-2.6.0-test8/arch/m68knommu/mm/init.c linux-2.6.0-test8-uc0/arch/m68knommu/mm/init.c
1789 --- linux-2.6.0-test8/arch/m68knommu/mm/init.c 2003-10-20 09:10:57.874635928 +1000
1790 +++ linux-2.6.0-test8-uc0/arch/m68knommu/mm/init.c 2003-10-20 09:11:55.292907024 +1000
1792 int free = 0, total = 0, reserved = 0, shared = 0;
1795 - printk("\nMem-info:\n");
1796 + printk(KERN_INFO "\nMem-info:\n");
1802 shared += page_count(mem_map+i) - 1;
1804 - printk("%d pages of RAM\n",total);
1805 - printk("%d free pages\n",free);
1806 - printk("%d reserved pages\n",reserved);
1807 - printk("%d pages shared\n",shared);
1808 - printk("%d pages swap cached\n",cached);
1809 + printk(KERN_INFO "%d pages of RAM\n",total);
1810 + printk(KERN_INFO "%d free pages\n",free);
1811 + printk(KERN_INFO "%d reserved pages\n",reserved);
1812 + printk(KERN_INFO "%d pages shared\n",shared);
1813 + printk(KERN_INFO "%d pages swap cached\n",cached);
1816 extern unsigned long memory_start;
1818 unsigned long end_mem = memory_end & PAGE_MASK;
1821 - printk ("start_mem is %#lx\nvirtual_end is %#lx\n",
1822 + printk (KERN_DEBUG "start_mem is %#lx\nvirtual_end is %#lx\n",
1823 start_mem, end_mem);
1830 - printk ("before free_area_init\n");
1831 + printk (KERN_DEBUG "before free_area_init\n");
1833 - printk ("free_area_init -> start_mem is %#lx\nvirtual_end is %#lx\n",
1834 + printk (KERN_DEBUG "free_area_init -> start_mem is %#lx\nvirtual_end is %#lx\n",
1835 start_mem, end_mem);
1839 unsigned long end_mem = memory_end; /* DAVIDM - this must not include kernel stack at top */
1842 - printk("Mem_init: start=%lx, end=%lx\n", start_mem, end_mem);
1843 + printk(KERN_DEBUG "Mem_init: start=%lx, end=%lx\n", start_mem, end_mem);
1846 end_mem &= PAGE_MASK;
1848 initk = (&__init_begin - &__init_end) >> 10;
1850 tmp = nr_free_pages() << PAGE_SHIFT;
1851 - printk("Memory available: %luk/%luk RAM, %luk/%luk ROM (%dk kernel code, %dk data)\n",
1852 + printk(KERN_INFO "Memory available: %luk/%luk RAM, %luk/%luk ROM (%dk kernel code, %dk data)\n",
1855 (rom_length > 0) ? ((rom_length >> 10) - codek) : 0,
1860 - printk ("Freeing initrd memory: %dk freed\n", pages);
1861 + printk (KERN_NOTICE "Freeing initrd memory: %dk freed\n", pages);
1869 - printk("Freeing unused kernel memory: %ldk freed (0x%x - 0x%x)\n",
1870 + printk(KERN_NOTICE "Freeing unused kernel memory: %ldk freed (0x%x - 0x%x)\n",
1871 (addr - PAGE_ALIGN((long) &__init_begin)) >> 10,
1872 (int)(PAGE_ALIGN((unsigned long)(&__init_begin))),
1873 (int)(addr - PAGE_SIZE));
1874 diff -Naur linux-2.6.0-test8/arch/m68knommu/platform/5206/config.c linux-2.6.0-test8-uc0/arch/m68knommu/platform/5206/config.c
1875 --- linux-2.6.0-test8/arch/m68knommu/platform/5206/config.c 2003-10-20 09:10:57.718659640 +1000
1876 +++ linux-2.6.0-test8-uc0/arch/m68knommu/platform/5206/config.c 2003-10-20 09:11:55.607859144 +1000
1878 MCF_MBAR + MCFDMA_BASE1,
1881 +unsigned int dma_device_address[MAX_M68K_DMA_CHANNELS];
1883 /***************************************************************************/
1885 void mcf_autovector(unsigned int vec)
1886 diff -Naur linux-2.6.0-test8/arch/m68knommu/platform/5206e/config.c linux-2.6.0-test8-uc0/arch/m68knommu/platform/5206e/config.c
1887 --- linux-2.6.0-test8/arch/m68knommu/platform/5206e/config.c 2003-10-20 09:10:57.716659944 +1000
1888 +++ linux-2.6.0-test8-uc0/arch/m68knommu/platform/5206e/config.c 2003-10-20 09:11:55.632855344 +1000
1890 MCF_MBAR + MCFDMA_BASE1,
1893 +unsigned int dma_device_address[MAX_M68K_DMA_CHANNELS];
1895 /***************************************************************************/
1897 void mcf_autovector(unsigned int vec)
1898 diff -Naur linux-2.6.0-test8/arch/m68knommu/platform/5249/config.c linux-2.6.0-test8-uc0/arch/m68knommu/platform/5249/config.c
1899 --- linux-2.6.0-test8/arch/m68knommu/platform/5249/config.c 2003-10-20 09:10:57.717659792 +1000
1900 +++ linux-2.6.0-test8-uc0/arch/m68knommu/platform/5249/config.c 2003-10-20 09:11:55.616857776 +1000
1902 MCF_MBAR + MCFDMA_BASE3,
1905 +unsigned int dma_device_address[MAX_M68K_DMA_CHANNELS];
1907 /***************************************************************************/
1909 void mcf_autovector(unsigned int vec)
1910 diff -Naur linux-2.6.0-test8/arch/m68knommu/platform/5272/config.c linux-2.6.0-test8-uc0/arch/m68knommu/platform/5272/config.c
1911 --- linux-2.6.0-test8/arch/m68knommu/platform/5272/config.c 2003-10-20 09:10:57.715660096 +1000
1912 +++ linux-2.6.0-test8-uc0/arch/m68knommu/platform/5272/config.c 2003-10-20 09:11:55.691846376 +1000
1914 MCF_MBAR + MCFDMA_BASE0,
1917 +unsigned int dma_device_address[MAX_M68K_DMA_CHANNELS];
1919 /***************************************************************************/
1921 void mcf_disableall(void)
1922 diff -Naur linux-2.6.0-test8/arch/m68knommu/platform/5282/config.c linux-2.6.0-test8-uc0/arch/m68knommu/platform/5282/config.c
1923 --- linux-2.6.0-test8/arch/m68knommu/platform/5282/config.c 2003-10-20 09:10:57.664667848 +1000
1924 +++ linux-2.6.0-test8-uc0/arch/m68knommu/platform/5282/config.c 2003-10-20 09:11:55.787831784 +1000
1926 #include <linux/sched.h>
1927 #include <linux/param.h>
1928 #include <linux/init.h>
1929 +#include <linux/interrupt.h>
1930 #include <asm/dma.h>
1931 #include <asm/traps.h>
1932 #include <asm/machdep.h>
1934 /***************************************************************************/
1936 void coldfire_pit_tick(void);
1937 -void coldfire_pit_init(void (*handler)(int, void *, struct pt_regs *));
1938 +void coldfire_pit_init(irqreturn_t (*handler)(int, void *, struct pt_regs *));
1939 unsigned long coldfire_pit_offset(void);
1940 void coldfire_trap_init(void);
1941 void coldfire_reset(void);
1943 MCF_MBAR + MCFDMA_BASE0,
1946 +unsigned int dma_device_address[MAX_M68K_DMA_CHANNELS];
1948 /***************************************************************************/
1950 void mcf_disableall(void)
1951 diff -Naur linux-2.6.0-test8/arch/m68knommu/platform/5307/config.c linux-2.6.0-test8-uc0/arch/m68knommu/platform/5307/config.c
1952 --- linux-2.6.0-test8/arch/m68knommu/platform/5307/config.c 2003-10-20 09:10:57.694663288 +1000
1953 +++ linux-2.6.0-test8-uc0/arch/m68knommu/platform/5307/config.c 2003-10-20 09:11:55.814827680 +1000
1955 #include <linux/sched.h>
1956 #include <linux/param.h>
1957 #include <linux/init.h>
1958 +#include <linux/interrupt.h>
1959 #include <asm/irq.h>
1960 #include <asm/dma.h>
1961 #include <asm/traps.h>
1963 /***************************************************************************/
1965 void coldfire_tick(void);
1966 -void coldfire_timer_init(void (*handler)(int, void *, struct pt_regs *));
1967 +void coldfire_timer_init(irqreturn_t (*handler)(int, void *, struct pt_regs *));
1968 unsigned long coldfire_timer_offset(void);
1969 void coldfire_trap_init(void);
1970 void coldfire_reset(void);
1972 MCF_MBAR + MCFDMA_BASE3,
1975 +unsigned int dma_device_address[MAX_M68K_DMA_CHANNELS];
1977 /***************************************************************************/
1979 void mcf_autovector(unsigned int vec)
1980 diff -Naur linux-2.6.0-test8/arch/m68knommu/platform/5307/entry.S linux-2.6.0-test8-uc0/arch/m68knommu/platform/5307/entry.S
1981 --- linux-2.6.0-test8/arch/m68knommu/platform/5307/entry.S 2003-10-20 09:10:57.714660248 +1000
1982 +++ linux-2.6.0-test8-uc0/arch/m68knommu/platform/5307/entry.S 2003-10-20 09:11:55.814827680 +1000
1984 movew %sp@(LFORMATVEC),%d0 /* put exception # in d0 */
1985 andl #0x03fc,%d0 /* mask out vector only */
1987 - leal kstat__per_cpu+STAT_IRQ,%a0
1988 + leal per_cpu__kstat+STAT_IRQ,%a0
1991 lsrl #2,%d0 /* calculate real vector # */
1993 movew %sp@(LFORMATVEC),%d0
1994 andl #0x03fc,%d0 /* mask out vector only */
1996 - leal kstat__per_cpu+STAT_IRQ,%a0
1997 + leal per_cpu__kstat+STAT_IRQ,%a0
2000 movel %sp,%sp@- /* push regs arg onto stack */
2001 diff -Naur linux-2.6.0-test8/arch/m68knommu/platform/5307/ints.c linux-2.6.0-test8-uc0/arch/m68knommu/platform/5307/ints.c
2002 --- linux-2.6.0-test8/arch/m68knommu/platform/5307/ints.c 2003-10-20 09:10:57.694663288 +1000
2003 +++ linux-2.6.0-test8-uc0/arch/m68knommu/platform/5307/ints.c 2003-10-20 09:11:55.819826920 +1000
2005 static irqreturn_t default_irq_handler(int irq, void *ptr, struct pt_regs *regs)
2008 - printk("%s(%d): default irq handler vec=%d [0x%x]\n",
2009 + printk(KERN_INFO "%s(%d): default irq handler vec=%d [0x%x]\n",
2010 __FILE__, __LINE__, irq, irq);
2012 return(IRQ_HANDLED);
2017 - printk("new_irq_node: out of nodes\n");
2018 + printk(KERN_INFO "new_irq_node: out of nodes\n");
2022 @@ -106,19 +106,19 @@
2025 if (irq < 0 || irq >= NR_IRQS) {
2026 - printk("%s: Incorrect IRQ %d from %s\n", __FUNCTION__,
2027 + printk(KERN_WARNING "%s: Incorrect IRQ %d from %s\n", __FUNCTION__,
2032 if (!(irq_list[irq].flags & IRQ_FLG_STD)) {
2033 if (irq_list[irq].flags & IRQ_FLG_LOCK) {
2034 - printk("%s: IRQ %d from %s is not replaceable\n",
2035 + printk(KERN_WARNING "%s: IRQ %d from %s is not replaceable\n",
2036 __FUNCTION__, irq, irq_list[irq].devname);
2039 if (flags & IRQ_FLG_REPLACE) {
2040 - printk("%s: %s can't replace IRQ %d from %s\n",
2041 + printk(KERN_WARNING "%s: %s can't replace IRQ %d from %s\n",
2042 __FUNCTION__, devname, irq, irq_list[irq].devname);
2045 @@ -142,12 +142,12 @@
2046 void free_irq(unsigned int irq, void *dev_id)
2048 if (irq >= NR_IRQS) {
2049 - printk("%s: Incorrect IRQ %d\n", __FUNCTION__, irq);
2050 + printk(KERN_WARNING "%s: Incorrect IRQ %d\n", __FUNCTION__, irq);
2054 if (irq_list[irq].dev_id != dev_id)
2055 - printk("%s: Removing probably wrong IRQ %d from %s\n",
2056 + printk(KERN_WARNING "%s: Removing probably wrong IRQ %d from %s\n",
2057 __FUNCTION__, irq, irq_list[irq].devname);
2059 if (irq_list[irq].flags & IRQ_FLG_FAST) {
2061 unsigned long flags, const char *devname, void *dev_id)
2064 - printk("%s: Incorrect IRQ %d from %s\n",
2065 + printk(KERN_WARNING "%s: Incorrect IRQ %d from %s\n",
2066 __FUNCTION__, irq, devname);
2069 @@ -181,12 +181,12 @@
2071 if (!(irq_list[irq].flags & IRQ_FLG_STD)) {
2072 if (irq_list[irq].flags & IRQ_FLG_LOCK) {
2073 - printk("%s: IRQ %d from %s is not replaceable\n",
2074 + printk(KERN_WARNING "%s: IRQ %d from %s is not replaceable\n",
2075 __FUNCTION__, irq, irq_list[irq].devname);
2078 if (!(flags & IRQ_FLG_REPLACE)) {
2079 - printk("%s: %s can't replace IRQ %d from %s\n",
2080 + printk(KERN_WARNING "%s: %s can't replace IRQ %d from %s\n",
2081 __FUNCTION__, devname, irq, irq_list[irq].devname);
2084 @@ -203,12 +203,12 @@
2085 void sys_free_irq(unsigned int irq, void *dev_id)
2088 - printk("%s: Incorrect IRQ %d\n", __FUNCTION__, irq);
2089 + printk(KERN_WARNING "%s: Incorrect IRQ %d\n", __FUNCTION__, irq);
2093 if (irq_list[irq].dev_id != dev_id)
2094 - printk("%s: Removing probably wrong IRQ %d from %s\n",
2095 + printk(KERN_WARNING "%s: Removing probably wrong IRQ %d from %s\n",
2096 __FUNCTION__, irq, irq_list[irq].devname);
2098 irq_list[irq].handler = (*mach_default_handler)[irq];
2099 diff -Naur linux-2.6.0-test8/arch/m68knommu/platform/5307/timers.c linux-2.6.0-test8-uc0/arch/m68knommu/platform/5307/timers.c
2100 --- linux-2.6.0-test8/arch/m68knommu/platform/5307/timers.c 2003-10-20 09:10:57.714660248 +1000
2101 +++ linux-2.6.0-test8-uc0/arch/m68knommu/platform/5307/timers.c 2003-10-20 09:11:55.839823880 +1000
2104 void coldfire_profile_init(void)
2106 - printk("PROFILE: lodging TIMER2 @ %dHz as profile timer\n", PROFILEHZ);
2107 + printk(KERN_INFO "PROFILE: lodging TIMER2 @ %dHz as profile timer\n", PROFILEHZ);
2109 /* Set up TIMER 2 as high speed profile clock */
2110 mcf_proftp = (volatile struct mcftimer *) (MCF_MBAR + MCFTIMER_BASE2);
2111 diff -Naur linux-2.6.0-test8/arch/m68knommu/platform/5307/vectors.c linux-2.6.0-test8-uc0/arch/m68knommu/platform/5307/vectors.c
2112 --- linux-2.6.0-test8/arch/m68knommu/platform/5307/vectors.c 2003-10-20 09:10:57.713660400 +1000
2113 +++ linux-2.6.0-test8-uc0/arch/m68knommu/platform/5307/vectors.c 2003-10-20 09:11:55.840823728 +1000
2115 asmlinkage void dbginterrupt_c(struct frame *fp)
2117 extern void dump(struct pt_regs *fp);
2118 - printk("%s(%d): BUS ERROR TRAP\n", __FILE__, __LINE__);
2119 + printk(KERN_DEBUG "%s(%d): BUS ERROR TRAP\n", __FILE__, __LINE__);
2120 dump((struct pt_regs *) fp);
2123 diff -Naur linux-2.6.0-test8/arch/m68knommu/platform/5407/CLEOPATRA/crt0_ram.S linux-2.6.0-test8-uc0/arch/m68knommu/platform/5407/CLEOPATRA/crt0_ram.S
2124 --- linux-2.6.0-test8/arch/m68knommu/platform/5407/CLEOPATRA/crt0_ram.S 2003-10-20 09:10:57.661668304 +1000
2125 +++ linux-2.6.0-test8-uc0/arch/m68knommu/platform/5407/CLEOPATRA/crt0_ram.S 2003-10-20 09:11:56.081787096 +1000
2130 +#ifdef CONFIG_ROMFS_FS
2132 * Move ROM filesystem above bss :-)
2134 @@ -145,6 +146,12 @@
2135 cmp.l %a0, %a2 /* Check if at end */
2138 +#else /* CONFIG_ROMFS_FS */
2140 + move.l %a1, _ramstart
2141 +#endif /* CONFIG_ROMFS_FS */
2145 * Zero out the bss region.
2147 diff -Naur linux-2.6.0-test8/arch/m68knommu/platform/5407/config.c linux-2.6.0-test8-uc0/arch/m68knommu/platform/5407/config.c
2148 --- linux-2.6.0-test8/arch/m68knommu/platform/5407/config.c 2003-10-20 09:10:57.623674080 +1000
2149 +++ linux-2.6.0-test8-uc0/arch/m68knommu/platform/5407/config.c 2003-10-20 09:11:56.107783144 +1000
2151 #include <linux/sched.h>
2152 #include <linux/param.h>
2153 #include <linux/init.h>
2154 +#include <linux/interrupt.h>
2155 #include <asm/irq.h>
2156 #include <asm/dma.h>
2157 #include <asm/traps.h>
2159 /***************************************************************************/
2161 void coldfire_tick(void);
2162 -void coldfire_timer_init(void (*handler)(int, void *, struct pt_regs *));
2163 +void coldfire_timer_init(irqreturn_t (*handler)(int, void *, struct pt_regs *));
2164 unsigned long coldfire_timer_offset(void);
2165 void coldfire_trap_init(void);
2166 void coldfire_reset(void);
2168 MCF_MBAR + MCFDMA_BASE3,
2171 +unsigned int dma_device_address[MAX_M68K_DMA_CHANNELS];
2173 /***************************************************************************/
2175 void mcf_autovector(unsigned int vec)
2176 @@ -100,7 +103,13 @@
2177 void config_BSP(char *commandp, int size)
2179 mcf_setimr(MCFSIM_IMR_MASKALL);
2181 +#if defined(CONFIG_BOOTPARAM)
2182 + strncpy(commandp, CONFIG_BOOTPARAM_STRING, size);
2183 + commandp[size-1] = 0;
2185 memset(commandp, 0, size);
2188 #if defined(CONFIG_CLEOPATRA)
2189 /* Different timer setup - to prevent device clash */
2190 diff -Naur linux-2.6.0-test8/arch/m68knommu/platform/5407/MOTOROLA/crt0_ram.S linux-2.6.0-test8-uc0/arch/m68knommu/platform/5407/MOTOROLA/crt0_ram.S
2191 --- linux-2.6.0-test8/arch/m68knommu/platform/5407/MOTOROLA/crt0_ram.S 2003-10-20 09:10:57.652669672 +1000
2192 +++ linux-2.6.0-test8-uc0/arch/m68knommu/platform/5407/MOTOROLA/crt0_ram.S 2003-10-20 09:11:56.107783144 +1000
2197 - move.l #0xa4098400, %d0 /* Write buffer, dflt precise */
2198 + move.l #0xb6088400, %d0 /* Enable caches */
2203 +#ifdef CONFIG_ROMFS_FS
2205 * Move ROM filesystem above bss :-)
2207 @@ -124,6 +126,12 @@
2208 cmp.l %a0, %a2 /* Check if at end */
2211 +#else /* CONFIG_ROMFS_FS */
2213 + move.l %a1, _ramstart
2214 +#endif /* CONFIG_ROMFS_FS */
2218 * Zero out the bss region.
2220 diff -Naur linux-2.6.0-test8/arch/m68knommu/platform/68328/config.c linux-2.6.0-test8-uc0/arch/m68knommu/platform/68328/config.c
2221 --- linux-2.6.0-test8/arch/m68knommu/platform/68328/config.c 2003-10-20 09:10:57.693663440 +1000
2222 +++ linux-2.6.0-test8-uc0/arch/m68knommu/platform/68328/config.c 2003-10-20 09:11:56.164774480 +1000
2224 #include <linux/mm.h>
2225 #include <linux/tty.h>
2226 #include <linux/console.h>
2227 +#include <linux/interrupt.h>
2228 #include <asm/current.h>
2230 #include <asm/setup.h>
2232 #include <asm/MC68328.h>
2235 -void BSP_sched_init(void (*timer_routine)(int, void *, struct pt_regs *))
2236 +void BSP_sched_init(irqreturn_t (*timer_routine)(int, void *, struct pt_regs *))
2239 #ifdef CONFIG_XCOPILOT_BUGS
2242 void config_BSP(char *command, int len)
2244 - printk("\n68328 support D. Jeff Dionne <jeff@uclinux.org>\n");
2245 - printk("68328 support Kenneth Albanowski <kjahds@kjshds.com>\n");
2246 - printk("68328/Pilot support Bernhard Kuhn <kuhn@lpr.e-technik.tu-muenchen.de>\n");
2247 + printk(KERN_INFO "\n68328 support D. Jeff Dionne <jeff@uclinux.org>\n");
2248 + printk(KERN_INFO "68328 support Kenneth Albanowski <kjahds@kjshds.com>\n");
2249 + printk(KERN_INFO "68328/Pilot support Bernhard Kuhn <kuhn@lpr.e-technik.tu-muenchen.de>\n");
2251 mach_sched_init = BSP_sched_init;
2252 mach_tick = BSP_tick;
2255 mach_set_clock_mmss = NULL;
2256 mach_reset = BSP_reset;
2259 diff -Naur linux-2.6.0-test8/arch/m68knommu/platform/68328/ints.c linux-2.6.0-test8-uc0/arch/m68knommu/platform/68328/ints.c
2260 --- linux-2.6.0-test8/arch/m68knommu/platform/68328/ints.c 2003-10-20 09:10:57.690663896 +1000
2261 +++ linux-2.6.0-test8-uc0/arch/m68knommu/platform/68328/ints.c 2003-10-20 09:11:56.184771440 +1000
2263 asmlinkage void trap45(void);
2264 asmlinkage void trap46(void);
2265 asmlinkage void trap47(void);
2266 -asmlinkage void bad_interrupt(int, void *, struct pt_regs *);
2267 -asmlinkage void inthandler(void);
2268 -asmlinkage void inthandler1(void);
2269 -asmlinkage void inthandler2(void);
2270 -asmlinkage void inthandler3(void);
2271 -asmlinkage void inthandler4(void);
2272 -asmlinkage void inthandler5(void);
2273 -asmlinkage void inthandler6(void);
2274 -asmlinkage void inthandler7(void);
2275 +asmlinkage irqreturn_t bad_interrupt(int, void *, struct pt_regs *);
2276 +asmlinkage irqreturn_t inthandler(void);
2277 +asmlinkage irqreturn_t inthandler1(void);
2278 +asmlinkage irqreturn_t inthandler2(void);
2279 +asmlinkage irqreturn_t inthandler3(void);
2280 +asmlinkage irqreturn_t inthandler4(void);
2281 +asmlinkage irqreturn_t inthandler5(void);
2282 +asmlinkage irqreturn_t inthandler6(void);
2283 +asmlinkage irqreturn_t inthandler7(void);
2285 extern e_vector *_ramvec;
2287 @@ -116,17 +116,17 @@
2289 /* set up the vectors */
2290 for (i = 72; i < 256; ++i)
2291 - _ramvec[i] = (e_vector)bad_interrupt;
2292 + _ramvec[i] = (e_vector) bad_interrupt;
2294 _ramvec[32] = system_call;
2296 - _ramvec[65] = inthandler1;
2297 - _ramvec[66] = inthandler2;
2298 - _ramvec[67] = inthandler3;
2299 - _ramvec[68] = inthandler4;
2300 - _ramvec[69] = inthandler5;
2301 - _ramvec[70] = inthandler6;
2302 - _ramvec[71] = inthandler7;
2303 + _ramvec[65] = (e_vector) inthandler1;
2304 + _ramvec[66] = (e_vector) inthandler2;
2305 + _ramvec[67] = (e_vector) inthandler3;
2306 + _ramvec[68] = (e_vector) inthandler4;
2307 + _ramvec[69] = (e_vector) inthandler5;
2308 + _ramvec[70] = (e_vector) inthandler6;
2309 + _ramvec[71] = (e_vector) inthandler7;
2311 IVR = 0x40; /* Set DragonBall IVR (interrupt base) to 64 */
2313 @@ -142,22 +142,26 @@
2317 -int request_irq(unsigned int irq, void (*handler)(int, void *, struct pt_regs *),
2318 - unsigned long flags, const char *devname, void *dev_id)
2321 + irqreturn_t (*handler)(int, void *, struct pt_regs *),
2322 + unsigned long flags,
2323 + const char *devname,
2326 if (irq >= NR_IRQS) {
2327 - printk ("%s: Unknown IRQ %d from %s\n", __FUNCTION__, irq, devname);
2328 + printk (KERN_ERR "%s: Unknown IRQ %d from %s\n", __FUNCTION__, irq, devname);
2332 if (!(int_irq_list[irq].flags & IRQ_FLG_STD)) {
2333 if (int_irq_list[irq].flags & IRQ_FLG_LOCK) {
2334 - printk("%s: IRQ %d from %s is not replaceable\n",
2335 + printk(KERN_ERR "%s: IRQ %d from %s is not replaceable\n",
2336 __FUNCTION__, irq, int_irq_list[irq].devname);
2339 if (flags & IRQ_FLG_REPLACE) {
2340 - printk("%s: %s can't replace IRQ %d from %s\n",
2341 + printk(KERN_ERR "%s: %s can't replace IRQ %d from %s\n",
2342 __FUNCTION__, devname, irq, int_irq_list[irq].devname);
2345 @@ -178,12 +182,12 @@
2346 void free_irq(unsigned int irq, void *dev_id)
2348 if (irq >= NR_IRQS) {
2349 - printk ("%s: Unknown IRQ %d\n", __FUNCTION__, irq);
2350 + printk (KERN_ERR "%s: Unknown IRQ %d\n", __FUNCTION__, irq);
2354 if (int_irq_list[irq].dev_id != dev_id)
2355 - printk("%s: removing probably wrong IRQ %d from %s\n",
2356 + printk(KERN_INFO "%s: removing probably wrong IRQ %d from %s\n",
2357 __FUNCTION__, irq, int_irq_list[irq].devname);
2359 int_irq_list[irq].handler = bad_interrupt;
2361 if (int_irq_list[irq].handler) {
2362 int_irq_list[irq].handler(irq, int_irq_list[irq].dev_id, fp);
2364 - printk("unregistered interrupt %d!\nTurning it off in the IMR...\n", irq);
2365 + printk(KERN_ERR "unregistered interrupt %d!\nTurning it off in the IMR...\n", irq);
2369 diff -Naur linux-2.6.0-test8/arch/m68knommu/platform/68360/commproc.c linux-2.6.0-test8-uc0/arch/m68knommu/platform/68360/commproc.c
2370 --- linux-2.6.0-test8/arch/m68knommu/platform/68360/commproc.c 2003-10-20 09:10:57.562683352 +1000
2371 +++ linux-2.6.0-test8-uc0/arch/m68knommu/platform/68360/commproc.c 2003-10-20 09:11:56.192770224 +1000
2373 request_irq(vec, handler, IRQ_FLG_LOCK, "timer", dev_id);
2375 /* if (cpm_vecs[vec].handler != 0) */
2376 -/* printk("CPM interrupt %x replacing %x\n", */
2377 +/* printk(KERN_INFO "CPM interrupt %x replacing %x\n", */
2378 /* (uint)handler, (uint)cpm_vecs[vec].handler); */
2379 /* cpm_vecs[vec].handler = handler; */
2380 /* cpm_vecs[vec].dev_id = dev_id; */
2381 diff -Naur linux-2.6.0-test8/arch/m68knommu/platform/68360/config.c linux-2.6.0-test8-uc0/arch/m68knommu/platform/68360/config.c
2382 --- linux-2.6.0-test8/arch/m68knommu/platform/68360/config.c 2003-10-20 09:10:57.562683352 +1000
2383 +++ linux-2.6.0-test8-uc0/arch/m68knommu/platform/68360/config.c 2003-10-20 09:11:56.199769160 +1000
2384 @@ -181,12 +181,12 @@
2388 - printk("\n68360 QUICC support (C) 2000 Lineo Inc.\n");
2389 + printk(KERN_INFO "\n68360 QUICC support (C) 2000 Lineo Inc.\n");
2391 #if defined(CONFIG_UCQUICC) && 0
2392 - printk("uCquicc serial string [%s]\n",getserialnum());
2393 + printk(KERN_INFO "uCquicc serial string [%s]\n",getserialnum());
2394 p = scc1_hwaddr = gethwaddr(0);
2395 - printk("uCquicc hwaddr %.2x:%.2x:%.2x:%.2x:%.2x:%.2x\n",
2396 + printk(KERN_INFO "uCquicc hwaddr %.2x:%.2x:%.2x:%.2x:%.2x:%.2x\n",
2397 p[0], p[1], p[2], p[3], p[4], p[5]);
2399 p = getbenv("APPEND");
2400 diff -Naur linux-2.6.0-test8/arch/m68knommu/platform/68360/ints.c linux-2.6.0-test8-uc0/arch/m68knommu/platform/68360/ints.c
2401 --- linux-2.6.0-test8/arch/m68knommu/platform/68360/ints.c 2003-10-20 09:10:57.561683504 +1000
2402 +++ linux-2.6.0-test8-uc0/arch/m68knommu/platform/68360/ints.c 2003-10-20 09:11:56.200769008 +1000
2404 asmlinkage void system_call(void);
2405 asmlinkage void buserr(void);
2406 asmlinkage void trap(void);
2407 -asmlinkage void bad_interrupt(void);
2408 -asmlinkage void inthandler(void);
2409 +asmlinkage irqreturn_t bad_interrupt(void);
2410 +asmlinkage irqreturn_t inthandler(void);
2412 extern void *_ramvec[];
2418 - printk("%s: Warning: dev_id of %s is zero\n",
2419 + printk(KERN_INFO "%s: Warning: dev_id of %s is zero\n",
2420 __FUNCTION__, node->devname);
2422 local_irq_save(flags);
2423 @@ -176,30 +176,34 @@
2426 local_irq_restore(flags);
2427 - printk ("%s: tried to remove invalid irq\n", __FUNCTION__);
2428 + printk (KERN_INFO "%s: tried to remove invalid irq\n", __FUNCTION__);
2432 -int request_irq(unsigned int irq, void (*handler)(int, void *, struct pt_regs *),
2433 - unsigned long flags, const char *devname, void *dev_id)
2436 + irqreturn_t (*handler)(int, void *, struct pt_regs *),
2437 + unsigned long flags,
2438 + const char *devname,
2441 int mask = (1<<irq);
2443 irq += (CPM_VECTOR_BASE<<4);
2445 if (irq >= INTERNAL_IRQS) {
2446 - printk ("%s: Unknown IRQ %d from %s\n", __FUNCTION__, irq, devname);
2447 + printk (KERN_ERR "%s: Unknown IRQ %d from %s\n", __FUNCTION__, irq, devname);
2451 if (!(int_irq_list[irq].flags & IRQ_FLG_STD)) {
2452 if (int_irq_list[irq].flags & IRQ_FLG_LOCK) {
2453 - printk("%s: IRQ %d from %s is not replaceable\n",
2454 + printk(KERN_ERR "%s: IRQ %d from %s is not replaceable\n",
2455 __FUNCTION__, irq, int_irq_list[irq].devname);
2458 if (flags & IRQ_FLG_REPLACE) {
2459 - printk("%s: %s can't replace IRQ %d from %s\n",
2460 + printk(KERN_ERR "%s: %s can't replace IRQ %d from %s\n",
2461 __FUNCTION__, devname, irq, int_irq_list[irq].devname);
2464 @@ -222,12 +226,12 @@
2465 void free_irq(unsigned int irq, void *dev_id)
2467 if (irq >= INTERNAL_IRQS) {
2468 - printk ("%s: Unknown IRQ %d\n", __FUNCTION__, irq);
2469 + printk (KERN_ERR "%s: Unknown IRQ %d\n", __FUNCTION__, irq);
2473 if (int_irq_list[irq].dev_id != dev_id)
2474 - printk("%s: removing probably wrong IRQ %d from %s\n",
2475 + printk(KERN_INFO "%s: removing probably wrong IRQ %d from %s\n",
2476 __FUNCTION__, irq, int_irq_list[irq].devname);
2477 int_irq_list[irq].handler = NULL;
2478 int_irq_list[irq].flags = IRQ_FLG_STD;
2480 void M68360_enable_irq(unsigned int irq)
2482 if (irq >= INTERNAL_IRQS) {
2483 - printk("%s: Unknown IRQ %d\n", __FUNCTION__, irq);
2484 + printk(KERN_ERR "%s: Unknown IRQ %d\n", __FUNCTION__, irq);
2489 void M68360_disable_irq(unsigned int irq)
2491 if (irq >= INTERNAL_IRQS) {
2492 - printk("%s: Unknown IRQ %d\n", __FUNCTION__, irq);
2493 + printk(KERN_ERR "%s: Unknown IRQ %d\n", __FUNCTION__, irq);
2497 @@ -322,9 +326,10 @@
2498 kstat_cpu(0).irqs[irq]++;
2499 pquicc->intr_cisr = (1 << vec); /* indicate that irq has been serviced */
2501 - printk("unregistered interrupt %d!\nTurning it off in the CIMR...\n", irq);
2502 + printk(KERN_ERR "unregistered interrupt %d!\nTurning it off in the CIMR...\n", irq);
2503 /* *(volatile unsigned long *)0xfffff304 |= mask; */
2504 pquicc->intr_cimr &= ~(1 << vec);
2507 + return(IRQ_HANDLED);
2509 diff -Naur linux-2.6.0-test8/arch/m68knommu/platform/68EZ328/config.c linux-2.6.0-test8-uc0/arch/m68knommu/platform/68EZ328/config.c
2510 --- linux-2.6.0-test8/arch/m68knommu/platform/68EZ328/config.c 2003-10-20 09:10:57.676666024 +1000
2511 +++ linux-2.6.0-test8-uc0/arch/m68knommu/platform/68EZ328/config.c 2003-10-20 09:11:56.234763840 +1000
2512 @@ -106,12 +106,12 @@
2516 - printk("\n68EZ328 DragonBallEZ support (C) 1999 Rt-Control, Inc\n");
2517 + printk(KERN_INFO "\n68EZ328 DragonBallEZ support (C) 1999 Rt-Control, Inc\n");
2519 #ifdef CONFIG_UCSIMM
2520 - printk("uCsimm serial string [%s]\n",getserialnum());
2521 + printk(KERN_INFO "uCsimm serial string [%s]\n",getserialnum());
2522 p = cs8900a_hwaddr = gethwaddr(0);
2523 - printk("uCsimm hwaddr %.2x:%.2x:%.2x:%.2x:%.2x:%.2x\n",
2524 + printk(KERN_INFO "uCsimm hwaddr %.2x:%.2x:%.2x:%.2x:%.2x:%.2x\n",
2525 p[0], p[1], p[2], p[3], p[4], p[5]);
2527 p = getbenv("APPEND");
2528 diff -Naur linux-2.6.0-test8/arch/m68knommu/platform/68VZ328/de2/config.c linux-2.6.0-test8-uc0/arch/m68knommu/platform/68VZ328/de2/config.c
2529 --- linux-2.6.0-test8/arch/m68knommu/platform/68VZ328/de2/config.c 2003-10-20 09:10:57.663668000 +1000
2530 +++ linux-2.6.0-test8-uc0/arch/m68knommu/platform/68VZ328/de2/config.c 2003-10-20 09:11:56.248761712 +1000
2533 void config_BSP(char *command, int size)
2535 - printk("68VZ328 DragonBallVZ support (c) 2001 Lineo, Inc.\n");
2536 + printk(KERN_INFO "68VZ328 DragonBallVZ support (c) 2001 Lineo, Inc.\n");
2538 #if defined(CONFIG_BOOTPARAM)
2539 strncpy(command, CONFIG_BOOTPARAM_STRING, size);
2540 diff -Naur linux-2.6.0-test8/arch/m68knommu/platform/68VZ328/de2/crt0_ram.S linux-2.6.0-test8-uc0/arch/m68knommu/platform/68VZ328/de2/crt0_ram.S
2541 --- linux-2.6.0-test8/arch/m68knommu/platform/68VZ328/de2/crt0_ram.S 2003-10-20 09:10:57.663668000 +1000
2542 +++ linux-2.6.0-test8-uc0/arch/m68knommu/platform/68VZ328/de2/crt0_ram.S 2003-10-20 09:11:56.248761712 +1000
2544 #define MEM_END 0x00800000 /* Memory size 8Mb */
2576 moveb %d7, 0xfffff907
2583 diff -Naur linux-2.6.0-test8/arch/m68knommu/platform/68VZ328/de2/Makefile linux-2.6.0-test8-uc0/arch/m68knommu/platform/68VZ328/de2/Makefile
2584 --- linux-2.6.0-test8/arch/m68knommu/platform/68VZ328/de2/Makefile 2003-10-20 09:10:57.664667848 +1000
2585 +++ linux-2.6.0-test8-uc0/arch/m68knommu/platform/68VZ328/de2/Makefile 2003-10-20 09:11:56.248761712 +1000
2587 # Makefile for arch/m68knommu/platform/68VZ328/de2.
2591 +obj-$(CONFIG_DRAGEN2) := config.o
2593 -EXTRA_TARGETS := bootlogo.rh crt0_$(MODEL).o
2594 +extra-$(CONFIG_DRAGEN2) := crt0_ram.o
2596 -$(obj)/bootlogo.rh: $(src)/../../68EZ328/bootlogo.h
2597 - perl $(src)/../../68328/bootlogo.pl < $(src)/../../68EZ328/bootlogo.h \
2598 - > $(obj)/bootlogo.rh
2599 +$(obj)/config.o: $(obj)/screen.h
2601 +$(obj)/screen.h: $(src)/screen.xbm $(src)/xbm2lcd.pl
2602 + perl $(src)/xbm2lcd.pl < $(src)/screen.xbm > $(obj)/screen.h
2604 +clean-files := screen.h
2605 diff -Naur linux-2.6.0-test8/arch/m68knommu/platform/68VZ328/de2/screen.xbm linux-2.6.0-test8-uc0/arch/m68knommu/platform/68VZ328/de2/screen.xbm
2606 --- linux-2.6.0-test8/arch/m68knommu/platform/68VZ328/de2/screen.xbm 1970-01-01 10:00:00.000000000 +1000
2607 +++ linux-2.6.0-test8-uc0/arch/m68knommu/platform/68VZ328/de2/screen.xbm 2003-10-20 09:11:56.250761408 +1000
2609 +/* Created with The GIMP */
2610 +#define screen_width 320
2611 +#define screen_height 240
2612 +static unsigned char screen_bits[] = {
2613 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2614 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2615 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2616 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2617 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2618 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2619 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2620 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2621 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2622 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2623 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2624 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2625 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2626 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2627 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2628 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2629 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2630 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2631 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2632 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2633 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2634 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2635 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2636 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2637 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2638 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2639 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2640 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2641 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2642 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2643 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2644 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2645 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2646 + 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2647 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2648 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2649 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff,
2650 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2651 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2652 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f,
2653 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2654 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2655 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2656 + 0xff, 0xff, 0xff, 0x63, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2657 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2658 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2659 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x34, 0xff, 0xff, 0xff, 0xff,
2660 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2661 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2662 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x95,
2663 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2664 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2665 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2666 + 0xff, 0xff, 0x4f, 0x55, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2667 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2668 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2669 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6b, 0xa5, 0xff, 0xff, 0xff, 0xff,
2670 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2671 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2672 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x29, 0x55,
2673 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff,
2674 + 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0xff,
2675 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2676 + 0xff, 0x3f, 0x56, 0xa9, 0xff, 0xff, 0xff, 0x3f, 0xe0, 0xf1, 0xf8, 0xff,
2677 + 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3,
2678 + 0x7f, 0xe0, 0xff, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2679 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0x25, 0x55, 0xff, 0xff, 0xff, 0x0f,
2680 + 0xc0, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff,
2681 + 0xff, 0xff, 0xff, 0xe3, 0x3f, 0xc0, 0xff, 0x01, 0xfe, 0xff, 0xff, 0xff,
2682 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x73, 0x52, 0x95,
2683 + 0xff, 0xff, 0xff, 0x87, 0xcf, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2684 + 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0x3f, 0x8f, 0xff, 0x79,
2685 + 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2686 + 0xff, 0x14, 0x55, 0x55, 0xff, 0x3f, 0x8e, 0xc7, 0xff, 0xf1, 0x78, 0x86,
2687 + 0x8f, 0xe3, 0x78, 0xfe, 0xf1, 0xfc, 0xf0, 0x31, 0x33, 0xfc, 0xe1, 0xe3,
2688 + 0xff, 0x8f, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2689 + 0xff, 0xff, 0xff, 0xff, 0xbf, 0x6a, 0xaa, 0x4a, 0xff, 0x3f, 0x8e, 0xe3,
2690 + 0xff, 0xf1, 0x78, 0x00, 0x8f, 0xe3, 0x38, 0xfe, 0x71, 0x3c, 0xe0, 0x11,
2691 + 0x03, 0x78, 0xc0, 0xe3, 0xff, 0x8f, 0xff, 0x08, 0xff, 0xff, 0xff, 0xff,
2692 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0x2b, 0x55, 0xa9,
2693 + 0xff, 0x3f, 0x8e, 0xe3, 0xff, 0xf1, 0x78, 0x18, 0x8f, 0xe3, 0x31, 0xff,
2694 + 0x31, 0x3e, 0xc6, 0x01, 0xc3, 0x78, 0x8c, 0xe3, 0xff, 0xc7, 0xff, 0x00,
2695 + 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2696 + 0x57, 0x95, 0x2a, 0x55, 0xff, 0x3f, 0x8e, 0xe3, 0xff, 0xf1, 0x78, 0x1c,
2697 + 0x8f, 0xe3, 0x91, 0xff, 0x11, 0x1f, 0xc7, 0xe1, 0xe3, 0x38, 0x8e, 0xe3,
2698 + 0xff, 0xe1, 0xff, 0x30, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2699 + 0xff, 0xff, 0xff, 0xff, 0x69, 0x55, 0xa5, 0x12, 0xff, 0x3f, 0x8e, 0xe3,
2700 + 0xff, 0xf1, 0x78, 0x1c, 0x8f, 0xe3, 0xc3, 0xff, 0x81, 0x1f, 0xc0, 0xf1,
2701 + 0xe3, 0x38, 0x80, 0xe3, 0xff, 0xf0, 0xff, 0x78, 0xfc, 0xff, 0xff, 0xff,
2702 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x5a, 0xa6, 0x2a, 0x49,
2703 + 0xff, 0x3f, 0x8e, 0xc3, 0xff, 0xf1, 0x78, 0x1c, 0x8f, 0xe3, 0x83, 0xff,
2704 + 0x01, 0x1f, 0xc0, 0xf1, 0xe3, 0x38, 0x80, 0xe3, 0x7f, 0xfc, 0xff, 0x78,
2705 + 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f,
2706 + 0x4d, 0x51, 0x92, 0x54, 0xff, 0x3f, 0x8e, 0xc7, 0xff, 0xf1, 0x78, 0x1c,
2707 + 0x8f, 0xe3, 0x11, 0xff, 0x11, 0x1e, 0xff, 0xf1, 0xe3, 0x38, 0xfe, 0xe3,
2708 + 0x3f, 0xfe, 0xff, 0x78, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2709 + 0xff, 0xff, 0xff, 0xd7, 0xaa, 0xac, 0x54, 0x25, 0xff, 0x3f, 0x86, 0x07,
2710 + 0xcf, 0xf1, 0x78, 0x1c, 0x8f, 0xe1, 0x19, 0xff, 0x31, 0x1c, 0xce, 0xf1,
2711 + 0xe3, 0x38, 0x9c, 0xe3, 0x3f, 0x80, 0xe3, 0x71, 0xfc, 0xff, 0xff, 0xff,
2712 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xab, 0x52, 0x22, 0x25, 0xa9,
2713 + 0xff, 0x3f, 0x80, 0x0f, 0xc0, 0xf1, 0x78, 0x1c, 0x0f, 0xe0, 0x38, 0xfe,
2714 + 0x71, 0x38, 0xc0, 0xf1, 0xe3, 0x78, 0x80, 0xe3, 0x3f, 0x80, 0xe3, 0x01,
2715 + 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6a,
2716 + 0x29, 0x95, 0x94, 0x4a, 0xff, 0x7f, 0x98, 0x3f, 0xf0, 0xf1, 0x78, 0x1c,
2717 + 0x1f, 0xe6, 0x3c, 0xfe, 0xf1, 0xf8, 0xe0, 0xf1, 0xe3, 0xf8, 0xc1, 0xe3,
2718 + 0x3f, 0x80, 0xe3, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2719 + 0xff, 0xff, 0x3f, 0x55, 0x55, 0xa9, 0xa2, 0x28, 0xff, 0xff, 0xff, 0xff,
2720 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2721 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2722 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x57, 0x95, 0x54, 0x54, 0x54, 0xca,
2723 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2724 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2725 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xab, 0xa5,
2726 + 0x12, 0x43, 0x15, 0x25, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2727 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2728 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2729 + 0xff, 0xff, 0x51, 0x49, 0xaa, 0x34, 0xca, 0xaa, 0xff, 0xff, 0xff, 0xff,
2730 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2731 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2732 + 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x2e, 0xa9, 0x92, 0x84, 0x29, 0x92,
2733 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2734 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2735 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xa2, 0x4a,
2736 + 0x28, 0xb3, 0xa4, 0x4a, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff,
2737 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf,
2738 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2739 + 0xff, 0x87, 0xaa, 0x52, 0x4a, 0x89, 0x96, 0xaa, 0xff, 0xff, 0xff, 0xff,
2740 + 0x7f, 0x9e, 0xff, 0xff, 0x1f, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2741 + 0xc0, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0x3c, 0xff, 0xff, 0xff, 0xff,
2742 + 0xff, 0xff, 0xff, 0xff, 0xff, 0x57, 0x29, 0x09, 0xa5, 0x52, 0x51, 0x69,
2743 + 0xff, 0xff, 0xff, 0xff, 0x7f, 0x9e, 0xff, 0xff, 0x9f, 0xe7, 0xff, 0xff,
2744 + 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3c,
2745 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x50, 0xa4, 0x64,
2746 + 0x35, 0x28, 0x29, 0x2d, 0xff, 0xff, 0xf0, 0x84, 0x3f, 0x98, 0xf0, 0xe1,
2747 + 0x9f, 0xcf, 0xc9, 0xc1, 0x07, 0x1e, 0x9e, 0xf0, 0xfc, 0x84, 0x0f, 0xcc,
2748 + 0x84, 0x0f, 0xff, 0x3c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2749 + 0x3f, 0x94, 0x2a, 0x15, 0x89, 0xae, 0x94, 0xa2, 0xff, 0x7f, 0xe6, 0x18,
2750 + 0x7f, 0x1e, 0xe3, 0xcc, 0x9f, 0xcf, 0xc9, 0x9f, 0x73, 0xce, 0x1c, 0xe3,
2751 + 0xfc, 0x18, 0xe7, 0xcc, 0x18, 0x67, 0xfe, 0x3c, 0xff, 0xff, 0xff, 0xff,
2752 + 0xff, 0xff, 0xff, 0xff, 0x8f, 0x4b, 0x85, 0xa4, 0x55, 0x22, 0x65, 0xbd,
2753 + 0xff, 0x3f, 0xcf, 0x3c, 0x7f, 0x9e, 0x67, 0xce, 0x9f, 0xcf, 0xf1, 0x9f,
2754 + 0x79, 0xe6, 0x99, 0xe7, 0xe0, 0x3c, 0xf3, 0xcc, 0x3c, 0x73, 0xfe, 0x3c,
2755 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa7, 0x10, 0x29, 0xa9,
2756 + 0x2a, 0x95, 0x94, 0x02, 0xff, 0x3f, 0xcf, 0x3c, 0x7f, 0x9e, 0x67, 0xc0,
2757 + 0x9f, 0xcf, 0xf9, 0x81, 0x79, 0xe6, 0x99, 0xe7, 0xfc, 0x3c, 0xf3, 0xcc,
2758 + 0x3c, 0x03, 0xfe, 0x3c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2759 + 0x51, 0xd6, 0x24, 0x51, 0x89, 0xa4, 0xaa, 0xba, 0xff, 0x3f, 0xcf, 0x3c,
2760 + 0x7f, 0x9e, 0x67, 0xfe, 0x9f, 0xcf, 0xf9, 0x9c, 0x79, 0xe6, 0x99, 0xe7,
2761 + 0xfc, 0x3c, 0xf3, 0xcc, 0x3c, 0xf3, 0xff, 0x3c, 0xff, 0xff, 0xff, 0xff,
2762 + 0xff, 0xff, 0xff, 0x7f, 0x24, 0x29, 0x4a, 0x26, 0x1b, 0x55, 0x55, 0x55,
2763 + 0xff, 0x3f, 0xcf, 0x3c, 0x7f, 0x9e, 0x67, 0xfe, 0x9f, 0xcf, 0xf9, 0x9c,
2764 + 0x33, 0xe6, 0x99, 0xe7, 0xfc, 0x3c, 0x67, 0xcc, 0x3c, 0xf3, 0xff, 0x3c,
2765 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x93, 0x84, 0x52, 0x59,
2766 + 0x51, 0xa5, 0x54, 0x95, 0xff, 0x7f, 0xe6, 0x3c, 0x7f, 0x9e, 0xe7, 0xdc,
2767 + 0x9f, 0xe7, 0xf9, 0x8c, 0x47, 0xce, 0x9c, 0xe7, 0xfc, 0x3c, 0x8f, 0xcc,
2768 + 0x3c, 0xe7, 0xfe, 0x3c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf,
2769 + 0x48, 0x52, 0x49, 0x95, 0x55, 0x55, 0x55, 0x8a, 0xff, 0xff, 0xf0, 0x3c,
2770 + 0xff, 0x98, 0xe7, 0xe1, 0x1f, 0xf0, 0xf9, 0x11, 0x7f, 0x1e, 0x9e, 0xe7,
2771 + 0xc0, 0x3c, 0xff, 0xcc, 0x3c, 0x0f, 0xff, 0x3c, 0xff, 0xff, 0xff, 0xff,
2772 + 0xff, 0xff, 0xff, 0xa1, 0x2a, 0x49, 0xa4, 0xaa, 0xac, 0x54, 0x49, 0xe5,
2773 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2774 + 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0x73, 0xfe, 0xff, 0xff, 0xff, 0xff,
2775 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x95, 0xa4, 0xaa, 0xa8, 0x8a,
2776 + 0x26, 0xa5, 0x6a, 0x2d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2777 + 0xff, 0xff, 0xff, 0xff, 0x83, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xff,
2778 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x54,
2779 + 0x22, 0x40, 0x4a, 0x4a, 0x69, 0xa8, 0x2c, 0x55, 0xff, 0xff, 0xff, 0xff,
2780 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2781 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2782 + 0xff, 0xff, 0x5f, 0x0a, 0x92, 0xae, 0xa9, 0x62, 0xa5, 0x4b, 0xa2, 0x92,
2783 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2784 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2785 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x47, 0xa1, 0x51, 0x89, 0x4c, 0xb5,
2786 + 0x26, 0x24, 0x55, 0xaa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2787 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2788 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x25, 0x4a,
2789 + 0x0a, 0x56, 0x55, 0x48, 0x55, 0x55, 0x29, 0x55, 0xff, 0xff, 0xff, 0xff,
2790 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2791 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2792 + 0xff, 0xff, 0xa8, 0x52, 0xc8, 0x40, 0x65, 0xa5, 0x52, 0x95, 0xaa, 0x92,
2793 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2794 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2795 + 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x12, 0x29, 0x93, 0xad, 0x28, 0x2a,
2796 + 0x4b, 0xa9, 0x26, 0x29, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2797 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2798 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, 0x4a, 0x09,
2799 + 0x29, 0x28, 0x44, 0x21, 0xa9, 0x55, 0x52, 0x95, 0xff, 0xff, 0xff, 0xff,
2800 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2801 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2802 + 0xff, 0x17, 0x91, 0xa4, 0x94, 0x45, 0xb9, 0x9c, 0x54, 0x93, 0xaa, 0x52,
2803 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2804 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2805 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xc1, 0x24, 0x95, 0xc2, 0xb0, 0x5a, 0x45,
2806 + 0x96, 0xaa, 0x92, 0x94, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2807 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2808 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2a, 0x88, 0x40,
2809 + 0x54, 0xcb, 0x49, 0xa6, 0x51, 0x25, 0xa9, 0x52, 0xff, 0xff, 0xff, 0xff,
2810 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2811 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2812 + 0x3f, 0x88, 0x4a, 0x55, 0x57, 0x08, 0xd5, 0x90, 0x5c, 0xa9, 0x6a, 0x9a,
2813 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2814 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2815 + 0xff, 0xff, 0xff, 0xff, 0x5f, 0x25, 0x94, 0x4a, 0x82, 0xf2, 0x9a, 0x53,
2816 + 0x25, 0x54, 0xad, 0x26, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2817 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2818 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x27, 0x28, 0x45, 0x50,
2819 + 0xaa, 0x14, 0xd0, 0x51, 0xa2, 0x55, 0x0a, 0x89, 0xff, 0xff, 0xff, 0xff,
2820 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2821 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2822 + 0x13, 0x85, 0x10, 0x55, 0x79, 0xc2, 0xef, 0x25, 0x55, 0xa5, 0x6a, 0x52,
2823 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2824 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2825 + 0xff, 0xff, 0xff, 0x7f, 0x90, 0xa2, 0xaa, 0xaa, 0x06, 0x69, 0xc8, 0x54,
2826 + 0x2d, 0x6a, 0xaa, 0xab, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2827 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2828 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x4b, 0x54, 0x48, 0xa5,
2829 + 0xb0, 0x94, 0x8a, 0x24, 0x86, 0x1b, 0x05, 0x52, 0xff, 0xff, 0xff, 0xff,
2830 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2831 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f,
2832 + 0x49, 0x25, 0xaa, 0xa4, 0x8a, 0x56, 0xe5, 0x54, 0xd3, 0x49, 0xe9, 0x4a,
2833 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2834 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2835 + 0xff, 0xff, 0xff, 0x57, 0x24, 0x14, 0x95, 0x52, 0x54, 0x49, 0x6b, 0x25,
2836 + 0x2d, 0x24, 0x15, 0x92, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2837 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2838 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x93, 0xa4, 0xca, 0x54, 0x2d,
2839 + 0x15, 0xa9, 0x26, 0x91, 0xc5, 0x56, 0xd5, 0xab, 0xff, 0xff, 0xff, 0xff,
2840 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2841 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa0,
2842 + 0x12, 0x20, 0x2a, 0x92, 0xa8, 0x4a, 0xb9, 0x56, 0x7a, 0x50, 0x6a, 0x4a,
2843 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2844 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2845 + 0xff, 0xff, 0x3f, 0x15, 0x0a, 0x29, 0xb1, 0xd5, 0x66, 0x54, 0x8f, 0x30,
2846 + 0x05, 0x57, 0xab, 0xaa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2847 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2848 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xa8, 0xd4, 0x4a, 0x45, 0x53,
2849 + 0x52, 0xd3, 0xb2, 0xaa, 0xd5, 0xa2, 0x4a, 0x55, 0xff, 0xff, 0xff, 0xff,
2850 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2851 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x85,
2852 + 0x0a, 0x48, 0x2a, 0xa8, 0x32, 0xaa, 0xa9, 0x4a, 0x54, 0x54, 0xaa, 0x2a,
2853 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2854 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2855 + 0xff, 0xff, 0xab, 0x62, 0x50, 0x22, 0x52, 0x55, 0xd9, 0x15, 0x55, 0x29,
2856 + 0x45, 0xf4, 0xb5, 0xca, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2857 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2858 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x2a, 0x25, 0x92, 0x49, 0x13,
2859 + 0x09, 0xaa, 0x25, 0xba, 0x52, 0x07, 0x48, 0x31, 0xff, 0xff, 0xff, 0xff,
2860 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2861 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x59, 0xaa,
2862 + 0x89, 0x20, 0x34, 0xa5, 0xd4, 0xd5, 0xaa, 0x85, 0x3c, 0x52, 0x57, 0x95,
2863 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2864 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2865 + 0xff, 0x1f, 0x0a, 0x01, 0xa8, 0x92, 0xaa, 0x94, 0x4a, 0x70, 0xb4, 0x54,
2866 + 0x95, 0x55, 0xa9, 0x54, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2867 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2868 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0x42, 0xa4, 0x0a, 0x51, 0x09, 0xa5,
2869 + 0x5d, 0x9b, 0x12, 0x25, 0xfb, 0x44, 0x55, 0xab, 0xff, 0xff, 0xff, 0xff,
2870 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2871 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa3, 0x28, 0x01,
2872 + 0x50, 0x4d, 0x56, 0x91, 0x64, 0x95, 0x52, 0xb5, 0x49, 0xb7, 0x4a, 0xaa,
2873 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2874 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2875 + 0xff, 0x15, 0x03, 0xda, 0x0e, 0x62, 0x89, 0xba, 0x09, 0x47, 0xa9, 0x08,
2876 + 0x52, 0x49, 0xaa, 0x52, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2877 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2878 + 0xff, 0xff, 0xff, 0xff, 0x3f, 0x40, 0x51, 0x0b, 0xc1, 0x15, 0xee, 0x90,
2879 + 0xfe, 0x52, 0x15, 0xc5, 0x14, 0x55, 0xd5, 0x8a, 0xff, 0xff, 0xff, 0xff,
2880 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2881 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, 0x63, 0x00, 0x90,
2882 + 0x2a, 0xa1, 0x15, 0xd6, 0x08, 0x4f, 0xd8, 0xa8, 0xea, 0xaa, 0x2a, 0x00,
2883 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2884 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2885 + 0xcf, 0x10, 0x00, 0x49, 0x12, 0x2d, 0x63, 0x17, 0xab, 0xa0, 0x12, 0x95,
2886 + 0x12, 0xaa, 0x48, 0x64, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2887 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2888 + 0xff, 0xff, 0xff, 0xff, 0xe7, 0x82, 0x40, 0xa4, 0x86, 0xc8, 0x98, 0x54,
2889 + 0xb5, 0xab, 0xe5, 0x6a, 0xd5, 0xa5, 0x16, 0x18, 0xff, 0xff, 0xff, 0xff,
2890 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2891 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb1, 0x68, 0x90, 0x82,
2892 + 0xd4, 0x25, 0x4a, 0x39, 0x79, 0x10, 0x12, 0x0a, 0x55, 0xb5, 0x06, 0x88,
2893 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2894 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf,
2895 + 0x6c, 0x42, 0x20, 0x29, 0x28, 0x50, 0x29, 0x4b, 0x15, 0xb5, 0xd6, 0xaa,
2896 + 0x72, 0x2a, 0xad, 0xd7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2897 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2898 + 0xff, 0xff, 0xff, 0xbf, 0x24, 0x2c, 0x00, 0x50, 0x23, 0x55, 0xfa, 0xff,
2899 + 0x5d, 0x89, 0x52, 0x52, 0x59, 0xb5, 0xff, 0xcd, 0xff, 0xff, 0xff, 0xff,
2900 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2901 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x4f, 0x8b, 0x41, 0x24, 0x5a,
2902 + 0xac, 0x82, 0xfe, 0xff, 0xaf, 0xd5, 0xaa, 0x5a, 0x5d, 0xef, 0x6f, 0x57,
2903 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2904 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3,
2905 + 0xe4, 0x34, 0x27, 0x8a, 0x12, 0xa8, 0xff, 0xff, 0xff, 0x56, 0xaa, 0x95,
2906 + 0xc4, 0x78, 0x7b, 0x53, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2907 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2908 + 0xff, 0xff, 0xff, 0x35, 0x7d, 0x00, 0x11, 0x42, 0xaa, 0xe5, 0xff, 0xff,
2909 + 0xff, 0x24, 0x51, 0xd4, 0xb2, 0xda, 0x1f, 0xa8, 0xff, 0xff, 0xff, 0xff,
2910 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2911 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x08, 0x1f, 0x42, 0x59, 0x28,
2912 + 0xba, 0xf4, 0xff, 0xff, 0xff, 0x5b, 0x2d, 0x53, 0x95, 0xfe, 0x11, 0xa9,
2913 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2914 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xeb,
2915 + 0x7f, 0xeb, 0xa6, 0x92, 0x14, 0xf9, 0xff, 0xff, 0xff, 0xcf, 0xaa, 0xaa,
2916 + 0xaa, 0xbf, 0x1f, 0x55, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2917 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2918 + 0xff, 0xff, 0x17, 0xf8, 0x17, 0x72, 0x02, 0x88, 0xd2, 0xfc, 0xff, 0xff,
2919 + 0xff, 0xef, 0xaa, 0x4a, 0xe9, 0xd5, 0xdf, 0xa5, 0xff, 0xff, 0xff, 0xff,
2920 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2921 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6f, 0xd1, 0x1e, 0x11, 0xb1, 0xa5,
2922 + 0x2a, 0xfe, 0xff, 0xff, 0xff, 0xbf, 0xd4, 0x52, 0xb5, 0xef, 0x25, 0xd4,
2923 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2924 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x51, 0xff,
2925 + 0x07, 0x94, 0x08, 0xa4, 0x54, 0xff, 0xff, 0xff, 0xcf, 0x7f, 0xb5, 0x54,
2926 + 0xfd, 0x70, 0x55, 0x57, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2927 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2928 + 0xff, 0xff, 0x26, 0xff, 0x17, 0x2d, 0xb6, 0x12, 0x0a, 0xff, 0xff, 0xff,
2929 + 0x8f, 0x7f, 0x8d, 0xaa, 0x8a, 0x56, 0x55, 0x49, 0xff, 0xff, 0xff, 0xff,
2930 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2931 + 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xe2, 0x77, 0x2b, 0x37, 0x91, 0x08,
2932 + 0xd5, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xd5, 0xaa, 0xaa, 0x52, 0x4a, 0x55,
2933 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2934 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0xfd, 0xff,
2935 + 0x81, 0xc1, 0x59, 0xd0, 0xe1, 0xff, 0xff, 0xff, 0x07, 0xff, 0x2a, 0x95,
2936 + 0x54, 0x55, 0x65, 0xa5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2937 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2938 + 0xff, 0xaf, 0xfd, 0xbd, 0x49, 0x8c, 0x58, 0x8a, 0xd5, 0xff, 0xff, 0xff,
2939 + 0xe7, 0xff, 0x49, 0x51, 0x45, 0x55, 0x4d, 0xb5, 0xff, 0xff, 0xff, 0xff,
2940 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2941 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xab, 0xbe, 0x3f, 0xc4, 0xd5, 0x02, 0x79,
2942 + 0xea, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb7, 0x4a, 0xba, 0x52, 0xf9, 0x4a,
2943 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2944 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0xff, 0x97,
2945 + 0x64, 0x52, 0xda, 0x1c, 0xc9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0xa8,
2946 + 0x8a, 0x54, 0x15, 0xaa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2947 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2948 + 0xff, 0xd5, 0xdf, 0x4f, 0x91, 0x22, 0x2d, 0xc2, 0xe5, 0xff, 0xff, 0xff,
2949 + 0xff, 0xff, 0x93, 0x56, 0x6a, 0x55, 0xd5, 0xaa, 0xff, 0xff, 0xff, 0xff,
2950 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2951 + 0xff, 0xff, 0xff, 0xff, 0x7f, 0xf5, 0xef, 0x25, 0x5c, 0x43, 0x16, 0xaf,
2952 + 0xf4, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0x92, 0x2a, 0x2b, 0x55, 0x2a,
2953 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2954 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0xdb, 0xfb, 0x43,
2955 + 0x65, 0x21, 0x91, 0x13, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xff, 0x47, 0x49,
2956 + 0x51, 0x52, 0x55, 0xd5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2957 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2958 + 0xb7, 0xf0, 0x7f, 0x00, 0x7b, 0xea, 0x3c, 0xd1, 0xea, 0xff, 0xff, 0xff,
2959 + 0xff, 0xff, 0x27, 0x6a, 0x2d, 0x55, 0x55, 0xab, 0xff, 0xff, 0xff, 0xff,
2960 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2961 + 0xff, 0xff, 0xff, 0xff, 0x5b, 0xfc, 0x7d, 0xac, 0xc6, 0x11, 0xe5, 0x46,
2962 + 0xe9, 0xff, 0xff, 0xff, 0xff, 0xff, 0x57, 0x95, 0xd2, 0x4a, 0xb2, 0x55,
2963 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2964 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2d, 0xfe, 0x0f, 0x82,
2965 + 0xfc, 0x90, 0x54, 0x32, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0x57, 0xd5,
2966 + 0x5a, 0xaa, 0x55, 0xd5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2967 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2968 + 0x17, 0xdf, 0x1e, 0xc2, 0xa9, 0x23, 0xca, 0x46, 0xe5, 0xff, 0xff, 0x3f,
2969 + 0xf8, 0xff, 0x97, 0x2a, 0x55, 0xad, 0x94, 0x5a, 0xff, 0xff, 0xff, 0xff,
2970 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2971 + 0xff, 0xff, 0xff, 0x7f, 0xc5, 0xff, 0x07, 0xd5, 0x6c, 0xab, 0x12, 0x9a,
2972 + 0xe4, 0x0f, 0xff, 0x1f, 0xe0, 0xff, 0x57, 0xa9, 0x55, 0xa5, 0xda, 0xaa,
2973 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2974 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa1, 0xef, 0xd1, 0xac,
2975 + 0xc6, 0xa5, 0xea, 0x5c, 0xf3, 0x07, 0xfe, 0x0f, 0xc0, 0xff, 0x4f, 0x55,
2976 + 0xaa, 0x5a, 0x55, 0x6d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2977 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf,
2978 + 0xf0, 0xfb, 0xa8, 0xa5, 0xf2, 0x18, 0x56, 0x41, 0xf7, 0x03, 0xfc, 0x07,
2979 + 0x80, 0xff, 0xaf, 0xaa, 0xaa, 0x4a, 0xad, 0x56, 0xff, 0xff, 0xff, 0xff,
2980 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2981 + 0xff, 0xff, 0xff, 0x3f, 0xd0, 0xbf, 0x41, 0x52, 0x0e, 0xc6, 0xaa, 0x68,
2982 + 0xfa, 0x03, 0xfc, 0x07, 0x80, 0xff, 0x9f, 0x52, 0xd5, 0x6a, 0xab, 0xd5,
2983 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2984 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x17, 0xfd, 0x1d, 0x28, 0x2a,
2985 + 0x51, 0x75, 0x55, 0x4d, 0xe4, 0x03, 0xf8, 0x03, 0x03, 0xff, 0xaf, 0xaa,
2986 + 0x6a, 0xad, 0xaa, 0x4a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2987 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3b,
2988 + 0xfc, 0x9f, 0x00, 0x58, 0x92, 0x22, 0x6a, 0xd3, 0xed, 0xf3, 0xf8, 0xc3,
2989 + 0x0f, 0xff, 0xaf, 0xaa, 0xae, 0xaa, 0xaa, 0xda, 0xff, 0xff, 0xff, 0xff,
2990 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2991 + 0xff, 0xff, 0xff, 0x0a, 0xfe, 0x06, 0x7a, 0x4e, 0x52, 0x94, 0x36, 0x4c,
2992 + 0xf6, 0xb9, 0xf9, 0xc3, 0x1b, 0xff, 0x9f, 0xaa, 0x52, 0xaa, 0xaa, 0x6a,
2993 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2994 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x06, 0xb6, 0x03, 0x52, 0x93,
2995 + 0x95, 0x52, 0x46, 0x55, 0xf6, 0xb9, 0xf9, 0xe3, 0x17, 0xfe, 0x4f, 0xd5,
2996 + 0xaa, 0xd5, 0xaa, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2997 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0xa1,
2998 + 0xff, 0xa2, 0x2a, 0x31, 0x18, 0xba, 0x92, 0x55, 0xcb, 0x79, 0xf9, 0xe3,
2999 + 0x17, 0xfe, 0x6f, 0x29, 0xad, 0x54, 0xad, 0xb6, 0xff, 0xff, 0xff, 0xff,
3000 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3001 + 0xff, 0xff, 0x4f, 0x80, 0x3f, 0x49, 0xa8, 0xef, 0x75, 0x47, 0x2b, 0x53,
3002 + 0xef, 0x79, 0xf9, 0xe3, 0x1f, 0xfe, 0x9f, 0xa4, 0xaa, 0x6a, 0x55, 0x55,
3003 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3004 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1b, 0xe0, 0x8d, 0x20, 0x6e, 0x84,
3005 + 0x53, 0xa8, 0x29, 0xb1, 0xeb, 0xf9, 0xf1, 0xe3, 0x1f, 0xfe, 0x5f, 0xb5,
3006 + 0xaa, 0xaa, 0x56, 0x55, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3007 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xe0,
3008 + 0x4f, 0x39, 0x42, 0x38, 0x15, 0x55, 0x92, 0x6d, 0xcc, 0xfb, 0x01, 0xe0,
3009 + 0x1f, 0xfe, 0xaf, 0xaa, 0xaa, 0xaa, 0xaa, 0x4a, 0xff, 0xff, 0xff, 0xff,
3010 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3011 + 0xff, 0xff, 0x45, 0x78, 0xd3, 0x9c, 0x2a, 0x1a, 0x76, 0x11, 0x13, 0xcc,
3012 + 0xed, 0xf3, 0x06, 0xc3, 0x1f, 0xfe, 0xaf, 0xaa, 0xaa, 0xaa, 0xaa, 0x69,
3013 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3014 + 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x23, 0xfc, 0xd3, 0x24, 0x8d, 0x60,
3015 + 0x8a, 0x54, 0xd5, 0x78, 0xd2, 0x67, 0x03, 0x80, 0x0f, 0xff, 0x5f, 0x55,
3016 + 0x55, 0x55, 0xb5, 0xb6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3017 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0x01, 0x6e,
3018 + 0x70, 0x10, 0x58, 0x15, 0xa8, 0x4e, 0xcd, 0xa4, 0xca, 0x37, 0x00, 0x00,
3019 + 0xfe, 0xff, 0xaf, 0x54, 0xaa, 0xda, 0x56, 0xd5, 0xff, 0xff, 0xff, 0xff,
3020 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3021 + 0xff, 0xff, 0x10, 0xbf, 0x35, 0xc9, 0xb1, 0xf7, 0x3a, 0xa9, 0xd1, 0xa8,
3022 + 0xd3, 0x1f, 0x00, 0x00, 0xf8, 0xff, 0x5f, 0x8d, 0xd5, 0x56, 0x55, 0x55,
3023 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3024 + 0xff, 0xff, 0xff, 0xff, 0xff, 0x37, 0xc0, 0x16, 0x94, 0x55, 0x92, 0x2a,
3025 + 0x12, 0x5d, 0x9d, 0x4a, 0xd0, 0x07, 0x00, 0x00, 0x80, 0xff, 0x5f, 0xab,
3026 + 0x54, 0xd5, 0x56, 0x75, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3027 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x0c, 0x8f,
3028 + 0x20, 0x4b, 0xb7, 0xd4, 0xe2, 0x92, 0x28, 0xa9, 0xf7, 0x03, 0x00, 0x00,
3029 + 0x00, 0xff, 0xbf, 0xa4, 0xae, 0x2a, 0xa9, 0xaa, 0xff, 0xff, 0xff, 0xff,
3030 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3031 + 0xff, 0x15, 0xc2, 0xa3, 0x9c, 0x4f, 0x91, 0x72, 0x11, 0x57, 0xab, 0x95,
3032 + 0xd3, 0x01, 0x00, 0x00, 0x00, 0xfe, 0xbf, 0x5a, 0x51, 0xab, 0xb5, 0xaa,
3033 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3034 + 0xff, 0xff, 0xff, 0xff, 0xbf, 0x0f, 0xc0, 0x04, 0x51, 0x46, 0xa5, 0x19,
3035 + 0x57, 0x65, 0x32, 0xc9, 0xcd, 0x01, 0x00, 0x00, 0x00, 0xfe, 0x5f, 0x55,
3036 + 0xae, 0xaa, 0xaa, 0xda, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3037 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x60, 0x24,
3038 + 0x48, 0x93, 0xa5, 0x28, 0x4a, 0x29, 0x15, 0x45, 0xda, 0x01, 0x00, 0x00,
3039 + 0x30, 0xfe, 0x5f, 0xd5, 0xb2, 0xaa, 0xaa, 0x6a, 0xff, 0xff, 0xff, 0xff,
3040 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3041 + 0xff, 0x01, 0xd0, 0xa5, 0xaa, 0x24, 0xfd, 0xfb, 0xa8, 0xaa, 0xea, 0x67,
3042 + 0xe8, 0x07, 0x00, 0x00, 0x18, 0xff, 0xbf, 0x55, 0x2d, 0x54, 0x55, 0xad,
3043 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3044 + 0xff, 0xff, 0xff, 0xff, 0x5f, 0x00, 0xb0, 0x52, 0x41, 0x95, 0xaa, 0x91,
3045 + 0x5a, 0x8c, 0xd2, 0x74, 0xcb, 0x0f, 0x00, 0x00, 0x0f, 0xff, 0xbf, 0x5a,
3046 + 0xa5, 0xab, 0x55, 0x65, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3047 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x7c, 0x73,
3048 + 0xa6, 0x4e, 0x79, 0x8b, 0xb2, 0x52, 0x15, 0x65, 0xee, 0x1f, 0x00, 0xe0,
3049 + 0x81, 0x9f, 0xff, 0xaa, 0x59, 0xb4, 0xaa, 0xaa, 0xff, 0xff, 0xff, 0xff,
3050 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3051 + 0x07, 0x81, 0xbf, 0x55, 0x19, 0x52, 0x25, 0x5f, 0xa0, 0x2a, 0xaf, 0x4e,
3052 + 0xd8, 0x3f, 0x00, 0x3c, 0x80, 0x1f, 0x7f, 0xaa, 0xaa, 0x9b, 0xaa, 0x6a,
3053 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3054 + 0xff, 0xff, 0xff, 0xff, 0x97, 0x41, 0xf7, 0x15, 0x46, 0xad, 0xae, 0x14,
3055 + 0x56, 0xa5, 0x54, 0x4d, 0xe5, 0xff, 0xc0, 0x07, 0x98, 0x3f, 0x7c, 0x55,
3056 + 0xb5, 0x54, 0x55, 0xab, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3057 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9b, 0x78, 0xbd, 0xda,
3058 + 0x41, 0x14, 0xa2, 0xf2, 0xdb, 0x54, 0x16, 0x5c, 0xb4, 0xff, 0xff, 0x01,
3059 + 0x1e, 0x3f, 0xf8, 0xbd, 0xaa, 0x56, 0x55, 0x2d, 0xff, 0xff, 0xff, 0xff,
3060 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3061 + 0x4f, 0xbd, 0x17, 0x20, 0xce, 0xca, 0x9d, 0x8a, 0x44, 0x32, 0xe9, 0xb6,
3062 + 0xc9, 0x3f, 0x3f, 0x80, 0x0f, 0x7f, 0xf8, 0xa5, 0x55, 0xb9, 0xaa, 0xd5,
3063 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3064 + 0xff, 0xff, 0xff, 0x7f, 0x43, 0xaf, 0xb3, 0x54, 0x21, 0x6c, 0x84, 0x4a,
3065 + 0x76, 0xad, 0xaa, 0x9c, 0xe9, 0x7b, 0x00, 0xe0, 0x01, 0xff, 0xf9, 0xab,
3066 + 0x6a, 0x8b, 0x6a, 0x55, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3067 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbb, 0xd9, 0x32, 0xe7,
3068 + 0x8e, 0x8a, 0xd2, 0x9d, 0xa6, 0x22, 0xd5, 0x54, 0xd2, 0xf3, 0x00, 0xf8,
3069 + 0x00, 0xfe, 0xff, 0xb5, 0x5a, 0x75, 0x55, 0xad, 0xff, 0xff, 0xff, 0xff,
3070 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f,
3071 + 0xbe, 0x7c, 0xb5, 0x32, 0x2c, 0x5c, 0xd4, 0xa4, 0x34, 0xad, 0xe9, 0x1e,
3072 + 0xe9, 0xf3, 0x03, 0x3f, 0x00, 0xfe, 0xff, 0xab, 0xaa, 0x55, 0x5d, 0x55,
3073 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3074 + 0xff, 0xff, 0xff, 0x7f, 0x25, 0x9c, 0x6a, 0x67, 0xd1, 0x43, 0x6a, 0xb6,
3075 + 0x2a, 0x25, 0x56, 0xf2, 0xeb, 0xe1, 0xff, 0x1f, 0x00, 0xfc, 0xff, 0x57,
3076 + 0xab, 0x56, 0xab, 0xab, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3077 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xf7, 0x0f, 0x29, 0xba,
3078 + 0x12, 0xbb, 0x79, 0x2b, 0xb5, 0xaa, 0x33, 0x47, 0xfa, 0xc1, 0xff, 0x0f,
3079 + 0x00, 0xf8, 0xff, 0xd7, 0xda, 0xaa, 0x6a, 0xb5, 0xff, 0xff, 0xff, 0xff,
3080 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6f,
3081 + 0xff, 0x3b, 0x1b, 0xd9, 0x4e, 0x20, 0xd9, 0x1a, 0xa5, 0xaa, 0x34, 0xa5,
3082 + 0xfa, 0xc1, 0xff, 0x03, 0x00, 0xf8, 0xff, 0x5f, 0x6b, 0xb5, 0x5d, 0x55,
3083 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3084 + 0xff, 0xff, 0xff, 0xbf, 0xad, 0x05, 0x99, 0xa9, 0x2a, 0xbb, 0x0a, 0xc8,
3085 + 0x6a, 0x55, 0x17, 0x17, 0xfa, 0x80, 0xff, 0x01, 0x00, 0xf0, 0xff, 0xbf,
3086 + 0xaa, 0xad, 0xaa, 0xd6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3087 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x77, 0x4e, 0x3e, 0x6d, 0x4a,
3088 + 0xa6, 0x15, 0xf5, 0x29, 0x29, 0xa5, 0x74, 0xa7, 0xfe, 0x00, 0xff, 0x00,
3089 + 0x00, 0xf0, 0xff, 0x5f, 0xb5, 0x56, 0x6b, 0x55, 0xff, 0xff, 0xff, 0xff,
3090 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xce,
3091 + 0x27, 0x2d, 0x2c, 0x5d, 0x21, 0x8d, 0x2d, 0x45, 0xab, 0x54, 0x97, 0x6b,
3092 + 0x7d, 0x00, 0x1e, 0x00, 0x00, 0xe0, 0xff, 0x7f, 0xab, 0x5a, 0xad, 0xb5,
3093 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3094 + 0xff, 0xff, 0xff, 0xfb, 0xb5, 0xe6, 0x46, 0x8f, 0x56, 0x59, 0xe3, 0x56,
3095 + 0x55, 0xa9, 0x2a, 0x53, 0x7e, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x7f,
3096 + 0x6a, 0xd7, 0x6a, 0xad, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3097 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xfe, 0x38, 0x2b, 0xd1, 0x4d,
3098 + 0x52, 0x55, 0x54, 0x56, 0x69, 0xad, 0xca, 0x89, 0x3f, 0x00, 0x00, 0x00,
3099 + 0x00, 0xc0, 0xff, 0x7f, 0x5b, 0x59, 0xab, 0x56, 0xff, 0xff, 0xff, 0xff,
3100 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f,
3101 + 0xa6, 0x12, 0x2f, 0xf2, 0x09, 0xc0, 0x40, 0xa9, 0x2e, 0x54, 0x8d, 0xea,
3102 + 0x3f, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x7f, 0x6d, 0xd7, 0x5a, 0xa9,
3103 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3104 + 0xff, 0xff, 0xef, 0xbf, 0xd6, 0x2a, 0x43, 0x6c, 0x29, 0x52, 0x3d, 0x88,
3105 + 0x92, 0x56, 0xd5, 0xa6, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff,
3106 + 0xaa, 0xd5, 0xaa, 0xad, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3107 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbd, 0x37, 0x06, 0xe9, 0x25,
3108 + 0x00, 0xa0, 0x14, 0xa0, 0x5a, 0xa9, 0xca, 0xd4, 0x1f, 0x00, 0x00, 0x00,
3109 + 0x00, 0x80, 0xff, 0xff, 0x55, 0x35, 0xab, 0xaa, 0xff, 0xff, 0xff, 0xff,
3110 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xdf,
3111 + 0x59, 0xc3, 0x2e, 0x36, 0x1e, 0x91, 0x51, 0x50, 0x15, 0x55, 0xc5, 0xea,
3112 + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x2f, 0xd5, 0x56, 0xd5,
3113 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3114 + 0xff, 0xff, 0xff, 0xab, 0x21, 0x40, 0x51, 0xa2, 0x8a, 0x80, 0xdd, 0xa5,
3115 + 0xae, 0xac, 0xc6, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff,
3116 + 0xd7, 0xad, 0xaa, 0xaa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3117 + 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0xe4, 0xba, 0x42, 0x65, 0xb5,
3118 + 0x8e, 0xc8, 0xed, 0x70, 0x4b, 0xb5, 0xc6, 0xfa, 0x0f, 0x00, 0x00, 0x00,
3119 + 0x00, 0x80, 0xbf, 0xff, 0xbf, 0x56, 0xd5, 0xb6, 0xff, 0xff, 0xff, 0xff,
3120 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2f, 0x53,
3121 + 0x05, 0x48, 0xa9, 0xb0, 0x56, 0x67, 0x6f, 0xaa, 0xa9, 0x45, 0xed, 0xfc,
3122 + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xbf, 0xaa, 0xb5, 0xaa,
3123 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3124 + 0xff, 0xdf, 0xbb, 0x9a, 0x3c, 0x04, 0xf4, 0x99, 0x6b, 0xf0, 0x7f, 0xa9,
3125 + 0xac, 0x54, 0x65, 0xfe, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xfe,
3126 + 0x5f, 0xab, 0xaa, 0xb5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3127 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x4f, 0xda, 0x3f, 0xb0, 0x79, 0x48,
3128 + 0x17, 0xb8, 0xbf, 0xaa, 0x66, 0xab, 0xe6, 0xfe, 0x1f, 0x00, 0x00, 0x00,
3129 + 0x00, 0x00, 0xfe, 0xfd, 0xbf, 0x55, 0x55, 0xab, 0xff, 0xff, 0xff, 0xff,
3130 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x6f, 0x5f,
3131 + 0xee, 0x1a, 0x1d, 0xc4, 0xfc, 0xff, 0xab, 0x29, 0xad, 0xa9, 0xf2, 0xff,
3132 + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfb, 0x7f, 0x55, 0x55, 0x55,
3133 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3134 + 0xff, 0xfe, 0x8b, 0x6e, 0x77, 0x20, 0x1e, 0xc6, 0xf6, 0xd9, 0xaa, 0xa6,
3135 + 0xad, 0x6a, 0xa7, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xf3,
3136 + 0xff, 0xea, 0xbd, 0xaa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3137 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0x2b, 0x97, 0x2b, 0x5e, 0x6f, 0xe0,
3138 + 0x3e, 0x5d, 0x45, 0x4a, 0x56, 0x6d, 0xc5, 0xef, 0x07, 0x00, 0x00, 0x00,
3139 + 0x00, 0x00, 0xf8, 0xf7, 0xff, 0x8a, 0xa8, 0xad, 0xff, 0xff, 0xff, 0xff,
3140 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0x6d, 0xeb,
3141 + 0x23, 0x50, 0x42, 0xf3, 0xd7, 0x96, 0x56, 0xa9, 0xb4, 0x52, 0xaa, 0xf7,
3142 + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xe7, 0xff, 0x6a, 0x57, 0x55,
3143 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3144 + 0xbf, 0x67, 0x9b, 0xe5, 0x91, 0xad, 0x87, 0x78, 0xa1, 0xa2, 0x72, 0x25,
3145 + 0xad, 0x2a, 0xcb, 0xf7, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xef,
3146 + 0xff, 0x2b, 0xa9, 0xea, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3147 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0x77, 0x7b, 0x4d, 0xe1, 0x49, 0xfb,
3148 + 0xaf, 0xde, 0xa4, 0x0a, 0x55, 0x95, 0xb5, 0xfb, 0x03, 0x00, 0x00, 0x00,
3149 + 0x00, 0x00, 0xf0, 0xcf, 0xff, 0xd5, 0xaa, 0x5a, 0xff, 0xff, 0xff, 0xff,
3150 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbb, 0xe8, 0xb9,
3151 + 0x4c, 0x6d, 0xe4, 0xbd, 0xd2, 0xe2, 0x96, 0xa3, 0x5a, 0xd5, 0xd4, 0xff,
3152 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xdf, 0xff, 0xd7, 0xaa, 0xad,
3153 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3154 + 0x5f, 0x4b, 0xe7, 0x8d, 0x8f, 0x79, 0xf2, 0xaf, 0x2a, 0x29, 0xaa, 0x13,
3155 + 0x4f, 0xa5, 0xea, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x9f,
3156 + 0xff, 0x2b, 0xad, 0xaa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3157 + 0xff, 0xff, 0xff, 0xff, 0xf7, 0xfd, 0x72, 0xe4, 0x05, 0x7c, 0xf6, 0x55,
3158 + 0x55, 0xad, 0xb3, 0x48, 0x61, 0x6d, 0xf5, 0xff, 0x00, 0x00, 0x00, 0x00,
3159 + 0x00, 0x00, 0xe0, 0x9f, 0xff, 0xb7, 0xaa, 0x6a, 0xff, 0xff, 0xff, 0xff,
3160 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x97, 0xff, 0x74,
3161 + 0xca, 0x6e, 0x76, 0xad, 0xaa, 0xaa, 0x6a, 0xb2, 0x5c, 0x59, 0xe9, 0xff,
3162 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0xff, 0x57, 0xab, 0xad,
3163 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf,
3164 + 0xd9, 0xd5, 0x7e, 0x0c, 0x6e, 0xff, 0x07, 0xb0, 0xaa, 0x54, 0x29, 0x53,
3165 + 0xa5, 0x4a, 0xea, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f,
3166 + 0xff, 0x5f, 0xa9, 0xb6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3167 + 0xff, 0xff, 0xff, 0xff, 0xff, 0x6e, 0x3b, 0x90, 0xb5, 0xeb, 0x67, 0x54,
3168 + 0x5d, 0x55, 0x6d, 0xd5, 0x5a, 0xa9, 0xfa, 0x7f, 0x00, 0x00, 0x00, 0x00,
3169 + 0x00, 0x00, 0xc0, 0x3f, 0xff, 0x57, 0xdb, 0xaa, 0xff, 0xff, 0xff, 0xff,
3170 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0x6f, 0xe7, 0xdf, 0xc9,
3171 + 0xd9, 0x79, 0x7b, 0x56, 0x4a, 0x95, 0xaa, 0x14, 0x2a, 0x55, 0xf5, 0x3f,
3172 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x7f, 0xfe, 0xdf, 0xaa, 0xd6,
3173 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf,
3174 + 0xb7, 0x9d, 0xfb, 0xc4, 0xdc, 0x7f, 0x7f, 0xaa, 0xaa, 0x6a, 0x25, 0x6d,
3175 + 0xab, 0x4a, 0xfa, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7f,
3176 + 0xfe, 0xbf, 0xda, 0x5a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3177 + 0xff, 0xff, 0xff, 0xf7, 0xdd, 0xef, 0xff, 0x74, 0xde, 0xfb, 0x5f, 0xaa,
3178 + 0xaa, 0x56, 0x99, 0xaa, 0xaa, 0xaa, 0xfa, 0x3f, 0x00, 0x00, 0x00, 0x00,
3179 + 0x00, 0x00, 0x80, 0x7f, 0xfe, 0x5f, 0x55, 0x6b, 0xff, 0xff, 0xff, 0xff,
3180 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0xcf, 0xea, 0x6e, 0x66,
3181 + 0xff, 0xbb, 0x3f, 0x54, 0xad, 0xaa, 0x1a, 0x4d, 0xa5, 0x54, 0xfd, 0x1f,
3182 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7f, 0xfe, 0xbf, 0x6d, 0xad,
3183 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed,
3184 + 0xe7, 0xbf, 0x3f, 0xdb, 0xf7, 0xea, 0x0b, 0xa9, 0xaa, 0xaa, 0x5d, 0x75,
3185 + 0xad, 0x52, 0xfd, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff,
3186 + 0xfe, 0xdf, 0x56, 0xab, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3187 + 0xff, 0xff, 0xbf, 0x7f, 0x5f, 0xed, 0x1f, 0x8a, 0x3e, 0xbf, 0xce, 0xab,
3188 + 0x56, 0xb5, 0x4c, 0x95, 0x4a, 0x95, 0xfc, 0x1f, 0x00, 0x00, 0x00, 0x00,
3189 + 0x00, 0x00, 0x80, 0xff, 0xfc, 0x7f, 0xb5, 0xb5, 0xff, 0xff, 0xff, 0xff,
3190 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb7, 0xe5, 0xe6, 0x0b, 0xf3,
3191 + 0xbf, 0xbe, 0x7f, 0xa9, 0xaa, 0xaa, 0x4e, 0x6b, 0x53, 0x52, 0xdf, 0x1f,
3192 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xfc, 0xbf, 0xd6, 0x56,
3193 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef,
3194 + 0x5d, 0xf3, 0x07, 0xfa, 0x5b, 0x47, 0x57, 0xad, 0x5a, 0x75, 0x4a, 0x55,
3195 + 0x49, 0xa9, 0xde, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff,
3196 + 0xfc, 0x7f, 0x6b, 0xb5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3197 + 0xff, 0xff, 0xef, 0x7a, 0x4b, 0x7b, 0x01, 0xfd, 0x4d, 0xf2, 0x53, 0x55,
3198 + 0x57, 0x57, 0x61, 0x5b, 0xad, 0xac, 0xdf, 0x0f, 0x00, 0x00, 0x00, 0x00,
3199 + 0x00, 0x00, 0x00, 0xff, 0xfc, 0xbf, 0xb5, 0x96, 0xff, 0xff, 0xff, 0xff,
3200 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfd, 0x01, 0xdb,
3201 + 0xae, 0xe5, 0x4a, 0x55, 0x55, 0xb5, 0xaf, 0xa5, 0xaa, 0x22, 0xdf, 0x0f,
3202 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xfc, 0xff, 0x5a, 0xfb,
3203 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7d, 0x6f,
3204 + 0xf5, 0xbd, 0x40, 0xfc, 0x65, 0x35, 0x35, 0xcd, 0xaa, 0xd5, 0xa5, 0xba,
3205 + 0x4a, 0xaa, 0xdf, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
3206 + 0xfc, 0x7f, 0x4d, 0x55, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3207 + 0xff, 0xff, 0xef, 0xbf, 0x57, 0xf6, 0x41, 0x57, 0x91, 0xca, 0x4a, 0xb5,
3208 + 0x56, 0x55, 0xaa, 0xcd, 0x5a, 0xd5, 0xdf, 0x0f, 0x00, 0x00, 0x00, 0x00,
3209 + 0x00, 0x00, 0x00, 0xff, 0xfc, 0xff, 0x5a, 0xb7, 0xff, 0xff, 0xff, 0xff,
3210 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xcf, 0x3e, 0x7f, 0x00, 0x60,
3211 + 0x57, 0x6b, 0x75, 0x55, 0xb5, 0xcb, 0xba, 0xd5, 0x2a, 0xc9, 0xdf, 0x0f,
3212 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xfe, 0x7f, 0xeb, 0xd5,
3213 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe6,
3214 + 0x9f, 0x7f, 0x00, 0x68, 0x55, 0x54, 0x95, 0x5a, 0x55, 0xaa, 0x4a, 0x75,
3215 + 0x53, 0xd5, 0xdf, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
3216 + 0xfe, 0xff, 0xad, 0x6a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3217 + 0xff, 0x7f, 0xef, 0x73, 0xc7, 0xb7, 0xd0, 0x5c, 0xdd, 0xa5, 0xaa, 0x6d,
3218 + 0xaa, 0x6a, 0xea, 0x56, 0x55, 0xf5, 0xdf, 0x0f, 0x00, 0x00, 0x00, 0x00,
3219 + 0x00, 0x00, 0x00, 0x7f, 0xfe, 0x7f, 0xb5, 0xbe, 0xff, 0xff, 0xff, 0xff,
3220 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xfd, 0xed, 0xc7, 0x7d, 0x83, 0x8b,
3221 + 0x2e, 0xd5, 0xaa, 0x2a, 0xb5, 0x5a, 0x5d, 0xdb, 0x56, 0xf5, 0x9f, 0x0f,
3222 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0x7f, 0xdb, 0xa5,
3223 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7c, 0xff,
3224 + 0xe3, 0x7f, 0x47, 0xd9, 0xa6, 0x6a, 0xab, 0xd6, 0xaa, 0x2a, 0x55, 0x55,
3225 + 0xaa, 0xe4, 0xbf, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f,
3226 + 0xff, 0x7f, 0xad, 0xb6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3227 + 0xff, 0x37, 0xec, 0xff, 0xf2, 0xbf, 0x83, 0x96, 0x53, 0xa9, 0xaa, 0x55,
3228 + 0xad, 0x56, 0xad, 0xd5, 0x55, 0xeb, 0x3f, 0x0f, 0x00, 0x00, 0x00, 0x00,
3229 + 0x00, 0x00, 0x00, 0x0e, 0xfc, 0x7f, 0x6b, 0xad, 0xff, 0xff, 0xff, 0xff,
3230 + 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x3e, 0x6d, 0xfb, 0xce, 0xe1, 0x52,
3231 + 0x59, 0xad, 0xaa, 0x9a, 0xaa, 0x5a, 0x6b, 0x5d, 0xaa, 0xea, 0x3f, 0x0f,
3232 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf1, 0x7f, 0x5d, 0xeb,
3233 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5b, 0x3f, 0xfb,
3234 + 0xff, 0xf3, 0x51, 0xcd, 0x56, 0x55, 0xd5, 0x6a, 0xb5, 0x56, 0xb5, 0x56,
3235 + 0xab, 0xea, 0x7f, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe,
3236 + 0xe7, 0xff, 0xd6, 0x5a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3237 + 0xff, 0x4f, 0xcf, 0xcf, 0xdd, 0xe7, 0x58, 0x62, 0x52, 0xd5, 0xb6, 0x96,
3238 + 0xaa, 0x55, 0xad, 0x69, 0x55, 0xfb, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00,
3239 + 0x00, 0x00, 0x00, 0xff, 0xff, 0x7f, 0x6b, 0x6b, 0xff, 0xff, 0xff, 0xff,
3240 + 0xff, 0xff, 0xff, 0xff, 0x7f, 0x8b, 0xef, 0xc7, 0x7f, 0x21, 0xc4, 0x96,
3241 + 0xad, 0xaa, 0xaa, 0x6a, 0xad, 0xaa, 0x56, 0xaf, 0x31, 0xf5, 0xff, 0x00,
3242 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x7f, 0xb5, 0xb5,
3243 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xfb, 0xf3,
3244 + 0xdd, 0x61, 0xee, 0xd4, 0x56, 0x6d, 0xd5, 0x2a, 0xb5, 0xd6, 0xda, 0xaa,
3245 + 0x9c, 0x75, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff,
3246 + 0xff, 0xff, 0xae, 0xae, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3247 + 0xff, 0xe3, 0xab, 0x7b, 0x7f, 0x20, 0xfa, 0x41, 0xd5, 0x52, 0x55, 0xd5,
3248 + 0x56, 0x55, 0x6b, 0x55, 0x6b, 0x15, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00,
3249 + 0x00, 0x00, 0x80, 0xff, 0xff, 0xbf, 0xf5, 0xb5, 0xff, 0xff, 0xff, 0xff,
3250 + 0xff, 0xff, 0xff, 0xff, 0xbf, 0xe1, 0xf6, 0xff, 0x4f, 0x20, 0xac, 0xb4,
3251 + 0xaa, 0xb6, 0x6d, 0x55, 0x55, 0xab, 0xad, 0xad, 0x34, 0x15, 0xc0, 0x07,
3252 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xbf, 0x56, 0xd5,
3253 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x63, 0xfb, 0xda,
3254 + 0x37, 0x40, 0x2a, 0xab, 0xb5, 0x5a, 0xb5, 0x55, 0xb5, 0x6a, 0x55, 0x55,
3255 + 0xab, 0x15, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9c, 0xff,
3256 + 0xff, 0x4f, 0xdb, 0x6e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3257 + 0xef, 0xf3, 0xfc, 0xff, 0x11, 0x52, 0x55, 0x69, 0xad, 0xaa, 0x96, 0xaa,
3258 + 0xd6, 0xaa, 0x76, 0x5d, 0x55, 0x0d, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00,
3259 + 0x00, 0x00, 0x0c, 0xff, 0xff, 0x87, 0x55, 0xab, 0xff, 0xff, 0xff, 0xff,
3260 + 0xff, 0xff, 0xff, 0xff, 0x7f, 0xf3, 0x7e, 0xff, 0x19, 0xd2, 0xd1, 0xb5,
3261 + 0x55, 0x55, 0xab, 0xaa, 0xaa, 0xb5, 0x55, 0x53, 0xb5, 0x0a, 0x00, 0x7e,
3262 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0xff, 0xff, 0x87, 0xfa, 0xed,
3263 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x38, 0xff, 0xef,
3264 + 0x9e, 0xad, 0xd4, 0x54, 0xd5, 0x76, 0x6d, 0x55, 0x75, 0xd5, 0x56, 0x6d,
3265 + 0x95, 0x0d, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xfe,
3266 + 0xff, 0x83, 0x2f, 0x35, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3267 + 0x5f, 0xdc, 0xbf, 0xff, 0x01, 0x42, 0xae, 0x5b, 0x6d, 0x55, 0xab, 0x52,
3268 + 0x55, 0xb5, 0xda, 0x96, 0xca, 0x0e, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00,
3269 + 0x00, 0x00, 0x06, 0xfe, 0xff, 0x81, 0xd5, 0xda, 0xff, 0xff, 0xff, 0xff,
3270 + 0xff, 0xff, 0xff, 0xff, 0x3d, 0xfe, 0xfb, 0x7b, 0x4d, 0x03, 0xb5, 0xd2,
3271 + 0x55, 0xab, 0x55, 0x55, 0xad, 0xda, 0x56, 0xb3, 0x5a, 0x0d, 0x00, 0xf8,
3272 + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xfc, 0xff, 0x80, 0x6d, 0xd7,
3273 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xe8, 0xdf, 0xef,
3274 + 0xa7, 0x9d, 0xd4, 0x6d, 0xaa, 0xda, 0xaa, 0xaa, 0xd5, 0x56, 0xab, 0xdc,
3275 + 0xd6, 0x0e, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xf8,
3276 + 0x7f, 0x80, 0xb6, 0x6d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3277 + 0x8e, 0xfd, 0xfe, 0xff, 0xd1, 0xdd, 0x75, 0x55, 0xd9, 0x6a, 0x6d, 0x55,
3278 + 0x6d, 0x75, 0xb5, 0xa5, 0xab, 0x07, 0x00, 0xe0, 0x1f, 0x00, 0x00, 0x00,
3279 + 0x00, 0x00, 0x06, 0xf0, 0x1f, 0x80, 0xdb, 0xb5, 0xff, 0xff, 0xff, 0xff,
3280 + 0xff, 0xff, 0xff, 0xff, 0x4f, 0xf6, 0xff, 0x7d, 0x28, 0xb7, 0x2a, 0xb5,
3281 + 0x6a, 0xad, 0xaa, 0x5a, 0xb5, 0x56, 0xab, 0xba, 0xea, 0x07, 0x00, 0xe0,
3282 + 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xe0, 0x07, 0x80, 0xb5, 0xae,
3283 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0x23, 0x7e, 0xef, 0x5f,
3284 + 0x38, 0x57, 0x5a, 0x93, 0x56, 0xad, 0xad, 0xaa, 0x5d, 0xab, 0xba, 0xca,
3285 + 0xff, 0x03, 0x00, 0xc0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00,
3286 + 0x00, 0x80, 0xdf, 0xea, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
3287 + 0xb2, 0xff, 0xff, 0xfe, 0xe8, 0xb5, 0xca, 0xea, 0xda, 0xb6, 0x6a, 0xad,
3288 + 0x56, 0x75, 0x4b, 0xf5, 0x78, 0x00, 0x00, 0x80, 0xff, 0x01, 0x00, 0x00,
3289 + 0x00, 0x00, 0x06, 0x00, 0x00, 0x80, 0x6b, 0x5f, 0xff, 0xff, 0xff, 0xff,
3290 + 0xff, 0xff, 0xff, 0xdf, 0xff, 0x53, 0xf7, 0x6f, 0x6a, 0xad, 0xaa, 0xaa,
3291 + 0x6a, 0xd5, 0x56, 0xab, 0xda, 0xae, 0x6a, 0x3d, 0x00, 0x00, 0x00, 0x80,
3292 + 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x80, 0xb7, 0x6a,
3293 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8b, 0x7f, 0x3f,
3294 + 0xd3, 0x5a, 0x67, 0x5b, 0x55, 0x55, 0x55, 0x55, 0x57, 0x55, 0x5d, 0x35,
3295 + 0x00, 0x00, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00,
3296 + 0x00, 0x80, 0xdf, 0xb6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7,
3297 + 0x6d, 0xc3, 0xff, 0xd3, 0x51, 0xad, 0xba, 0xaa, 0xb6, 0xb6, 0xb6, 0xd5,
3298 + 0xb5, 0xd5, 0x66, 0x35, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x0f, 0x00, 0x00,
3299 + 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd7, 0xd6, 0xff, 0xff, 0xff, 0xff,
3300 + 0xff, 0xff, 0xff, 0xbf, 0xff, 0xe1, 0xb7, 0xc0, 0xaa, 0xb6, 0x4b, 0xd5,
3301 + 0xda, 0x5a, 0xab, 0xb6, 0xd6, 0xb6, 0xba, 0x3a, 0x00, 0x00, 0x00, 0x00,
3302 + 0xfe, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x7f, 0x75,
3303 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x97, 0xf0, 0xfe, 0x71,
3304 + 0x5c, 0xab, 0x59, 0x5b, 0x55, 0xad, 0xb5, 0xaa, 0x75, 0xb5, 0x56, 0x7b,
3305 + 0x00, 0x00, 0x00, 0x00, 0xfc, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00,
3306 + 0x00, 0x00, 0x7e, 0xb7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf,
3307 + 0x8e, 0xfa, 0xff, 0x32, 0xd6, 0xda, 0x6a, 0x55, 0x5d, 0xd5, 0x5a, 0x5b,
3308 + 0x5b, 0xab, 0x59, 0x7d, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00,
3309 + 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xfe, 0xad, 0xff, 0xff, 0xff, 0xff,
3310 + 0xff, 0xff, 0xff, 0xfa, 0x0f, 0xbd, 0x37, 0x9d, 0xd6, 0xd6, 0x5a, 0xad,
3311 + 0xd5, 0xb6, 0xee, 0xea, 0x6d, 0x55, 0xad, 0x75, 0x00, 0x00, 0x00, 0x00,
3312 + 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xf8, 0xb5,
3313 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcd, 0x4b, 0xff, 0x1e, 0x95,
3314 + 0x2d, 0xab, 0x66, 0x55, 0xad, 0xaa, 0x55, 0xad, 0xb6, 0xba, 0xd5, 0xea,
3315 + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x1f, 0x00, 0x00, 0x00, 0x40, 0x0e, 0x00,
3316 + 0x00, 0x00, 0x80, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xee,
3317 + 0xe7, 0xdf, 0x07, 0x77, 0x75, 0x75, 0x2f, 0xd5, 0xd6, 0x5a, 0xb5, 0xb6,
3318 + 0x55, 0xd5, 0x56, 0xfb, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00,
3319 + 0x00, 0x60, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x6e, 0xff, 0xff, 0xff, 0xff,
3320 + 0xff, 0xff, 0x77, 0xf8, 0xe3, 0x7f, 0x83, 0x4d, 0xaf, 0x55, 0xa5, 0x55,
3321 + 0x55, 0xad, 0x5b, 0xdb, 0x7e, 0x5b, 0x6b, 0xed, 0x00, 0x00, 0x00, 0x00,
3322 + 0xe0, 0x07, 0x00, 0x00, 0x00, 0xf0, 0x0e, 0x00, 0x00, 0x00, 0x00, 0xbc,
3323 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xfe, 0xf0, 0xf6, 0x81, 0xd4,
3324 + 0xe9, 0xb6, 0xaa, 0xd5, 0xb6, 0xb6, 0x6a, 0x55, 0x8b, 0xaa, 0xba, 0xe5,
3325 + 0x01, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x0e, 0x00,
3326 + 0x00, 0x00, 0x00, 0xd8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xdf,
3327 + 0xfd, 0xff, 0x6d, 0xb8, 0xae, 0x6a, 0xd5, 0x56, 0xab, 0xd5, 0xad, 0xed,
3328 + 0x76, 0x75, 0xab, 0xec, 0x01, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
3329 + 0x00, 0xfc, 0x0e, 0x00, 0x00, 0x00, 0x00, 0xb8, 0xff, 0xff, 0xff, 0xff,
3330 + 0xff, 0xff, 0x8b, 0xff, 0xff, 0x3f, 0x61, 0xad, 0x6a, 0x5d, 0x6d, 0xd5,
3331 + 0xda, 0x6e, 0x6d, 0xb5, 0xae, 0x5e, 0xad, 0xe6, 0x01, 0x00, 0x00, 0x00,
3332 + 0x80, 0x01, 0x00, 0x00, 0x00, 0xfe, 0x0e, 0x00, 0x00, 0x00, 0x00, 0xdc,
3333 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xed, 0xdd, 0x76, 0x59, 0x55,
3334 + 0xad, 0xd5, 0x96, 0x5e, 0x55, 0xb5, 0xaa, 0xae, 0xa7, 0xaa, 0x65, 0xf3,
3335 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x80, 0x7f, 0x0f, 0x00,
3336 + 0x00, 0x00, 0x00, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfb, 0xff,
3337 + 0xff, 0xbf, 0x3c, 0xf5, 0x6b, 0x6d, 0x4b, 0x53, 0xdb, 0xd5, 0x6e, 0xb3,
3338 + 0xb5, 0x76, 0x6d, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x00,
3339 + 0xc0, 0x7f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xdf, 0xff, 0xff, 0xff, 0xff,
3340 + 0xff, 0xff, 0xfb, 0xef, 0xfe, 0xff, 0x1e, 0x2d, 0xbd, 0x56, 0xab, 0xad,
3341 + 0xad, 0x6e, 0xb5, 0xdd, 0x5d, 0x5b, 0x55, 0xf7, 0x00, 0x00, 0x00, 0x00,
3342 + 0x00, 0xe6, 0x01, 0x00, 0xf0, 0x7f, 0x0f, 0x00, 0x00, 0x00, 0xc0, 0x6f,
3343 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xfd, 0xfd, 0x77, 0x57, 0xa9, 0xb6,
3344 + 0x4d, 0x6b, 0xad, 0xaa, 0xda, 0xaa, 0x55, 0xd5, 0xa6, 0xd1, 0xdd, 0x72,
3345 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xce, 0x07, 0x00, 0xff, 0x7f, 0x0f, 0x00,
3346 + 0x00, 0x00, 0xf0, 0x6b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff,
3347 + 0xfe, 0x7f, 0xed, 0xd5, 0xd6, 0x9a, 0x6a, 0xb5, 0x5d, 0xdb, 0xde, 0xb6,
3348 + 0xda, 0x5e, 0xab, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0xff, 0xff,
3349 + 0xff, 0x7f, 0x07, 0x00, 0x00, 0x00, 0xfc, 0xb6, 0xff, 0xff, 0xff, 0xff,
3350 + 0xff, 0x77, 0xff, 0x6f, 0xbf, 0x3f, 0x35, 0x57, 0xab, 0x6d, 0xad, 0x5a,
3351 + 0x6d, 0x6b, 0x6b, 0xdb, 0xab, 0x54, 0xd5, 0x3a, 0x00, 0x00, 0x00, 0x00,
3352 + 0x00, 0x9c, 0xff, 0xff, 0xff, 0x3f, 0x07, 0x00, 0x00, 0x80, 0x7f, 0xdb,
3353 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xbf, 0xfb, 0x9b, 0xd4, 0xba,
3354 + 0x6d, 0x52, 0x57, 0xad, 0xb5, 0x6a, 0xad, 0xb6, 0x5a, 0xb7, 0xb5, 0x3a,
3355 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x9c, 0xff, 0xff, 0xff, 0x3f, 0x07, 0x00,
3356 + 0x00, 0xf0, 0xd7, 0xb6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xdd,
3357 + 0xff, 0xcf, 0xdc, 0xda, 0xea, 0x5b, 0xab, 0xaa, 0xde, 0x5d, 0xeb, 0xda,
3358 + 0xea, 0x5a, 0xad, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0xff, 0xff,
3359 + 0xff, 0x9f, 0x07, 0x00, 0x00, 0xfc, 0x5b, 0xdb, 0xff, 0xff, 0xff, 0xff,
3360 + 0xff, 0xf7, 0xfe, 0xb7, 0x7f, 0x77, 0xb7, 0xae, 0x56, 0x6d, 0x55, 0x6d,
3361 + 0xab, 0xaa, 0x5d, 0xaf, 0xad, 0xd6, 0xaa, 0xf6, 0x00, 0x00, 0x00, 0x00,
3362 + 0x00, 0xbc, 0xff, 0xff, 0xff, 0x9f, 0x07, 0x00, 0x00, 0xbf, 0xed, 0xb6,
3363 + 0xff, 0xff, 0xff, 0xff, 0xbf, 0x7f, 0xef, 0xff, 0xbb, 0x7f, 0xdb, 0x56,
3364 + 0x7b, 0x55, 0x55, 0xab, 0xd5, 0xb6, 0xd6, 0xea, 0x6a, 0xab, 0xb6, 0xea,
3365 + 0x07, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xff, 0xff, 0x9f, 0x0f, 0x00,
3366 + 0x80, 0xbf, 0x6d, 0xdb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x7f, 0xfd,
3367 + 0xff, 0xdc, 0x6e, 0x77, 0xd5, 0x56, 0x6b, 0x6d, 0x6d, 0xdb, 0x6b, 0xb7,
3368 + 0xb6, 0x5a, 0x55, 0xeb, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xff,
3369 + 0xff, 0xbf, 0x0f, 0x00, 0xc0, 0xd7, 0xb6, 0x6d, 0xff, 0xff, 0xff, 0xff,
3370 + 0xef, 0xbd, 0x9f, 0xdd, 0x5d, 0xef, 0xb6, 0xdb, 0x56, 0xaa, 0x5a, 0xb5,
3371 + 0xb6, 0x55, 0xbd, 0xb5, 0xaa, 0xad, 0x6d, 0xad, 0xfe, 0x0f, 0x00, 0x00,
3372 + 0x00, 0xde, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0xf0, 0xdf, 0xb6, 0x6d,
3373 + 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xab, 0xfe, 0x7f, 0x56, 0xab, 0xae,
3374 + 0xfa, 0x56, 0xab, 0x56, 0xd5, 0xda, 0xd5, 0xde, 0xdd, 0x56, 0x55, 0x6b,
3375 + 0xd5, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00,
3376 + 0xf8, 0x6b, 0xdb, 0xb6, 0xff, 0xff, 0xff, 0xff, 0xbb, 0xdf, 0x3f, 0x3f,
3377 + 0xbd, 0xb7, 0xb5, 0xab, 0x57, 0x55, 0xd5, 0xea, 0xb6, 0x6a, 0x6d, 0x6b,
3378 + 0xd5, 0xaa, 0xb6, 0xb5, 0x5a, 0xfd, 0x1f, 0x00, 0x00, 0xff, 0x57, 0xf5,
3379 + 0xb6, 0xdd, 0x1f, 0x00, 0xfc, 0xb5, 0xd5, 0xaa, 0xff, 0xff, 0xff, 0xff,
3380 + 0xde, 0xbf, 0x9e, 0x3f, 0xef, 0x7d, 0xed, 0xd6, 0x5a, 0xb5, 0xaa, 0xae,
3381 + 0x6d, 0xb5, 0xb6, 0x5d, 0x6d, 0x55, 0xab, 0xaa, 0xd6, 0x96, 0xff, 0x01,
3382 + 0x80, 0x7f, 0x55, 0x2b, 0x5b, 0xf5, 0x3f, 0x00, 0xff, 0xda, 0x76, 0xef,
3383 + 0xff, 0xff, 0xff, 0xff, 0xee, 0xcb, 0xe7, 0xd7, 0xaf, 0xaa, 0xb6, 0x55,
3384 + 0x6d, 0x55, 0xad, 0x6a, 0xb5, 0xdd, 0xb6, 0xd6, 0xb6, 0xb6, 0xac, 0xad,
3385 + 0x55, 0x1b, 0xfa, 0x0f, 0xe0, 0x5f, 0x53, 0x6d, 0xe9, 0x76, 0xff, 0xe0,
3386 + 0xdf, 0x56, 0x5b, 0x6b, 0xff, 0xff, 0xff, 0x7f, 0xef, 0xdf, 0xe7, 0xff,
3387 + 0xef, 0xdf, 0x6d, 0xef, 0x55, 0xad, 0x6a, 0xb7, 0x56, 0x55, 0x6d, 0xbb,
3388 + 0x59, 0xab, 0xa5, 0xb6, 0x6a, 0x6d, 0xd5, 0xff, 0xf8, 0xdb, 0xb2, 0x55,
3389 + 0x57, 0xcd, 0xff, 0xff, 0xbf, 0xed, 0xb5, 0xb5, 0xff, 0xff, 0xff, 0xbf,
3390 + 0x7b, 0x6f, 0xf5, 0x7e, 0x75, 0x69, 0xed, 0xb5, 0xb6, 0xd6, 0xaa, 0xd5,
3391 + 0x5b, 0xd5, 0xb6, 0xad, 0x6e, 0xd5, 0xbe, 0xaa, 0xad, 0x35, 0x55, 0xff,
3392 + 0xff, 0x6d, 0x59, 0xb5, 0x75, 0xb7, 0xfe, 0xff, 0xd7, 0xb6, 0xb6, 0xbd,
3393 + 0xff, 0xff, 0xff, 0x7f, 0xff, 0xfb, 0xf5, 0xdb, 0xab, 0x56, 0x5b, 0x6b,
3394 + 0xad, 0x52, 0xed, 0x5a, 0xb5, 0x6d, 0xdb, 0xd6, 0xaa, 0x2a, 0x57, 0xdb,
3395 + 0xb6, 0x5a, 0xd5, 0xfd, 0xff, 0xaa, 0x52, 0x5b, 0xad, 0xda, 0xfe, 0xff,
3396 + 0x7b, 0xdb, 0xea, 0xd6, 0xff, 0xff, 0xff, 0xaf, 0xdd, 0xbf, 0x72, 0x7f,
3397 + 0xdb, 0xfe, 0xed, 0xba, 0x55, 0x55, 0xb5, 0xae, 0xd6, 0xaa, 0x6d, 0xbb,
3398 + 0xae, 0x6d, 0x6d, 0x55, 0xad, 0x75, 0x5b, 0xed, 0xbf, 0xea, 0xa9, 0x69,
3399 + 0xb7, 0x6b, 0xf5, 0xff, 0x55, 0xdb, 0x7e, 0xdb, 0xff, 0xff, 0xff, 0x3b,
3400 + 0xfe, 0xf6, 0xf1, 0xd7, 0xbe, 0x55, 0xbb, 0xae, 0x6a, 0xd7, 0xaa, 0x6a,
3401 + 0x5b, 0x75, 0xab, 0x55, 0x7b, 0x55, 0x55, 0xb7, 0x55, 0xb3, 0xaa, 0xd6,
3402 + 0x5a, 0x55, 0xa5, 0xb6, 0xd5, 0x5a, 0xb5, 0xdb, 0xba, 0x6d, 0xab, 0xb6,
3403 + 0xff, 0xff, 0xff, 0x8f, 0xef, 0xff, 0xb8, 0xfa, 0xdf, 0xd5, 0xde, 0xb5,
3404 + 0xad, 0xda, 0xaa, 0xab, 0x6a, 0x5b, 0x5d, 0xbd, 0x8a, 0xb6, 0xdd, 0xda,
3405 + 0x76, 0xdb, 0xaa, 0xaa, 0xaa, 0x76, 0x55, 0x55, 0x75, 0x55, 0xd5, 0x6a,
3406 + 0xd7, 0xb6, 0x6d, 0xdb, 0xff, 0xff, 0xff, 0xdb, 0x7f, 0xbe, 0xf1, 0x6f,
3407 + 0xab, 0x7d, 0xab, 0x6e, 0xd7, 0x6d, 0x6b, 0xb5, 0xad, 0xaa, 0xab, 0x57,
3408 + 0xb7, 0xaa, 0x6a, 0xab, 0xaa, 0xa2, 0xda, 0xd6, 0x56, 0x55, 0xa5, 0x6d,
3409 + 0x5b, 0xfb, 0x6d, 0xbb, 0x5a, 0xdb, 0xb6, 0xb6, 0xff, 0xff, 0x7f, 0xcf,
3410 + 0x36, 0xf7, 0xb8, 0x77, 0xff, 0xd6, 0xbb, 0xb5, 0x69, 0x35, 0xb5, 0x5d,
3411 + 0x6d, 0xbb, 0xda, 0xad, 0x55, 0x6b, 0xab, 0xda, 0xb5, 0xbd, 0xaa, 0x5a,
3412 + 0xb5, 0xea, 0xaa, 0x55, 0xad, 0x2a, 0x6a, 0xad, 0xd5, 0x6d, 0xb3, 0xdb };
3413 diff -Naur linux-2.6.0-test8/arch/m68knommu/platform/68VZ328/de2/xbm2lcd.pl linux-2.6.0-test8-uc0/arch/m68knommu/platform/68VZ328/de2/xbm2lcd.pl
3414 --- linux-2.6.0-test8/arch/m68knommu/platform/68VZ328/de2/xbm2lcd.pl 1970-01-01 10:00:00.000000000 +1000
3415 +++ linux-2.6.0-test8-uc0/arch/m68knommu/platform/68VZ328/de2/xbm2lcd.pl 2003-10-20 09:11:56.250761408 +1000
3420 +s/(0x[0-9a-f]{2})/sprintf("0x%.2x",ord(pack("b8",unpack("B8",chr(~hex($1)&0377)))))/gei;
3423 diff -Naur linux-2.6.0-test8/arch/m68knommu/platform/68VZ328/de2/zimage/crt0.S linux-2.6.0-test8-uc0/arch/m68knommu/platform/68VZ328/de2/zimage/crt0.S
3424 --- linux-2.6.0-test8/arch/m68knommu/platform/68VZ328/de2/zimage/crt0.S 1970-01-01 10:00:00.000000000 +1000
3425 +++ linux-2.6.0-test8-uc0/arch/m68knommu/platform/68VZ328/de2/zimage/crt0.S 2003-10-20 09:11:56.247761864 +1000
3428 + * linux/arch/m68knommu/platform/MC68VZ328/de2/zimage/crt0.S
3430 + * Copyright (C) 2002 Georges Menie
3432 + * This file is subject to the terms and conditions of the GNU General Public
3433 + * License. See the file COPYING in the main directory of this archive
3434 + * for more details.
3437 + .title "de2/zimage/crt0.S"
3439 + .extern unzip_image
3441 + .extern __text_end
3442 + .extern __data_start
3443 + .extern __data_end
3444 + .extern __bss_start
3446 + .extern start_image
3452 + /* initialize the stack */
3453 + move.l #__stack,%sp
3455 + /* disable interrupts */
3456 + move.l #-1,0xfffff304
3457 + move.b #0,0xfffff300
3459 + /* initialize the data section */
3460 + lea.l __text_end,%a0
3461 + lea.l __data_start,%a1
3462 + lea.l __data_end,%a2
3465 + move.l (%a0)+,(%a1)+
3468 + /* initialize the bss section */
3469 + lea.l __bss_start,%a0
3470 + lea.l __bss_end,%a1
3478 + * Unzip the kernel image
3485 + movea.l #start_image,%a0
3489 + * Infinite loop for exit
3496 + * Define putc to send a char to the UART1
3500 +1: move.w 0xfffff906,%d0
3503 + move.b 7(%sp),0xfffff907
3505 diff -Naur linux-2.6.0-test8/arch/m68knommu/platform/68VZ328/de2/zimage/image.ld linux-2.6.0-test8-uc0/arch/m68knommu/platform/68VZ328/de2/zimage/image.ld
3506 --- linux-2.6.0-test8/arch/m68knommu/platform/68VZ328/de2/zimage/image.ld 1970-01-01 10:00:00.000000000 +1000
3507 +++ linux-2.6.0-test8-uc0/arch/m68knommu/platform/68VZ328/de2/zimage/image.ld 2003-10-20 09:11:56.247761864 +1000
3517 + To test the decompression use:
3519 + rom (rwx) : ORIGIN = 0x400000, LENGTH = 2M
3521 + download and run the compressed zImage.bin at 0x400000.
3522 + Depending on the build model (RAM,HIMEM,ROM) and
3523 + the size of the kernel (either compressed or uncompressed)
3524 + you might need to change this address.
3526 + To generate a flashable compressed image, use:
3528 + rom (rwx) : ORIGIN = <addr_in_flash>, LENGTH = <available space>
3530 + store and run the compressed image at <addr_in_flash>
3536 + ram (rwx) : ORIGIN = 0x1000, LENGTH = 64k-4k
3537 + rom (rwx) : ORIGIN = 0x400000, LENGTH = 2M
3540 +PROVIDE (__stack = 4k - 4);
3553 + *(.gcc_except_table)
3564 + input_data_end = .;
3570 + .data : AT(__text_end)
3597 + .stab 0 (NOLOAD) :
3602 + .stabstr 0 (NOLOAD) :
3607 diff -Naur linux-2.6.0-test8/arch/m68knommu/platform/68VZ328/de2/zimage/main.c linux-2.6.0-test8-uc0/arch/m68knommu/platform/68VZ328/de2/zimage/main.c
3608 --- linux-2.6.0-test8/arch/m68knommu/platform/68VZ328/de2/zimage/main.c 1970-01-01 10:00:00.000000000 +1000
3609 +++ linux-2.6.0-test8-uc0/arch/m68knommu/platform/68VZ328/de2/zimage/main.c 2003-10-20 09:11:56.247761864 +1000
3613 + * linux/arch/m68knommu/platform/MC68VZ328/de2/zimage/main.c
3615 + * Copyright (C) 2002 Georges Menie
3617 + * This file is subject to the terms and conditions of the GNU General Public
3618 + * License. See the file COPYING in the main directory of this archive
3619 + * for more details.
3622 +extern unsigned char input_data[];
3623 +extern unsigned char input_data_end[];
3624 +extern unsigned char output_data[];
3626 +void outstring (char *s)
3628 + extern void putc (int);
3634 +void unzip_image (void)
3636 + void memgunzip (unsigned char *dst, const unsigned char *src,
3639 + outstring ("Uncompressing Linux");
3640 + memgunzip (output_data, input_data, input_data_end - input_data);
3641 + outstring ("\r\nOk, booting the kernel.\r\n");
3643 diff -Naur linux-2.6.0-test8/arch/m68knommu/platform/68VZ328/de2/zimage/Makefile linux-2.6.0-test8-uc0/arch/m68knommu/platform/68VZ328/de2/zimage/Makefile
3644 --- linux-2.6.0-test8/arch/m68knommu/platform/68VZ328/de2/zimage/Makefile 1970-01-01 10:00:00.000000000 +1000
3645 +++ linux-2.6.0-test8-uc0/arch/m68knommu/platform/68VZ328/de2/zimage/Makefile 2003-10-20 09:11:56.247761864 +1000
3648 +# Runtime parameters
3649 +UNZIP_ADDRESS := $(shell [ -f $(ROOTDIR)/$(LINUXDIR)/System.map ] && grep ' _stext$$' $(ROOTDIR)/$(LINUXDIR)/System.map | cut -d' ' -f1)
3650 +START_ADDRESS := $(shell [ -f $(ROOTDIR)/$(LINUXDIR)/System.map ] && grep ' _start$$' $(ROOTDIR)/$(LINUXDIR)/System.map | cut -d' ' -f1)
3652 +# Compiler and associated tools filenames.
3653 +CC = $(CROSS_COMPILE)gcc
3654 +LD = $(CROSS_COMPILE)ld
3655 +OBJCOPY = $(CROSS_COMPILE)objcopy
3658 +AFLAGS = -m68000 -Wall -I$(ROOTDIR)/$(LINUXDIR)/include
3659 +CFLAGS = -m68000 -Wall -O2 --omit-frame-pointer -I$(ROOTDIR)/$(LINUXDIR)/include
3660 +LFLAGS = -m68000 -nostdlib -Wl,-Map=$(basename $@).map
3670 +all: $(IMAGEDIR)/zImage.bin
3673 + $(CC) $(AFLAGS) -o $@ -c $+
3675 +image.o: $(IMAGEDIR)/image.bin
3676 + tmpimage=_tmp_$$$$image; \
3677 + cat $+ | gzip -f -9 > $$tmpimage; \
3678 + $(LD) -r -o $@ -b binary $$tmpimage; \
3681 +$(IMAGEDIR)/zImage.bin: crt0.o image.o ${OBJECTS}
3682 + tmpprog=_tmp_$$$$prog; \
3683 + tmplnk=_tmp_$$$$lnk; \
3684 + cp image.ld $$tmplnk; \
3685 + echo "PROVIDE (output_data = 0x$(UNZIP_ADDRESS));" >> $$tmplnk; \
3686 + echo "PROVIDE (start_image = 0x$(START_ADDRESS));" >> $$tmplnk; \
3687 + $(CC) $(LFLAGS) -T $$tmplnk -o $$tmpprog ${OBJECTS}; \
3688 + $(OBJCOPY) -O binary -j .text -j .data $$tmpprog $@; \
3689 + rm -f $$tmpprog $$tmplnk
3693 diff -Naur linux-2.6.0-test8/arch/m68knommu/platform/68VZ328/de2/zimage/misc.c linux-2.6.0-test8-uc0/arch/m68knommu/platform/68VZ328/de2/zimage/misc.c
3694 --- linux-2.6.0-test8/arch/m68knommu/platform/68VZ328/de2/zimage/misc.c 1970-01-01 10:00:00.000000000 +1000
3695 +++ linux-2.6.0-test8-uc0/arch/m68knommu/platform/68VZ328/de2/zimage/misc.c 2003-10-20 09:11:56.248761712 +1000
3699 + * linux/arch/m68knommu/platform/MC68VZ328/de2/zimage/misc.c
3701 + * Copyright (C) 2002 Georges Menie
3703 + * This file is subject to the terms and conditions of the GNU General Public
3704 + * License. See the file COPYING in the main directory of this archive
3705 + * for more details.
3707 + * gunzip wrapper based on :
3709 + * arch/sh/boot/compressed/misc.c
3711 + * This is a collection of several routines from gzip-1.0.3
3712 + * adapted for Linux.
3714 + * malloc by Hannu Savolainen 1993 and Matthias Urlichs 1994
3716 + * Adapted for SH by Stuart Menefy, Aug 1999
3718 + * Modified to use standard LinuxSH BIOS by Greg Banks 7Jul2000
3722 + * gzip declarations
3727 +#define OF(args) args
3728 +#define STATIC static
3730 +#define memzero(s, n) memset ((s), 0, (n))
3732 +void outstring (const char *);
3735 +typedef unsigned char uch;
3736 +typedef unsigned short ush;
3737 +typedef unsigned long ulg;
3739 +#define WSIZE 0x8000 /* Window size must be at least 32k, */
3740 + /* and a power of two */
3742 +static uch window[WSIZE]; /* Sliding window buffer */
3744 +static ulg inptr = 0; /* index of next byte to be processed in inbuf */
3745 +static ulg outcnt = 0; /* bytes in output buffer */
3746 +static ulg bytes_out = 0;
3748 +/* Diagnostic functions */
3749 +#define Assert(cond,msg)
3753 +#define Tracec(c,x)
3754 +#define Tracecv(c,x)
3756 +static void flush_window (void);
3757 +static void *malloc (int size);
3758 +static void free (void *where);
3759 +static void error (char *m);
3760 +static void gzip_mark (void **);
3761 +static void gzip_release (void **);
3763 +static const unsigned char *data_in;
3764 +static unsigned char *data_out;
3765 +static unsigned int data_in_len;
3767 +#define get_byte() ((inptr < data_in_len)?data_in[inptr++]:(error("ran out of input data\n"),0))
3768 +#define put_byte(c) *data_out++ = c
3770 +#include "../../../../../../lib/inflate.c"
3772 +#define HEAPSIZE (24*1024)
3773 +static unsigned char heap[HEAPSIZE];
3774 +static unsigned char *free_mem_ptr = heap;
3776 +static void *malloc (int size)
3781 + error ("Malloc error\n");
3782 + if (free_mem_ptr == 0)
3783 + error ("Memory error\n");
3785 + free_mem_ptr = (unsigned char *) (((unsigned long) free_mem_ptr + 3) & ~3); /* Align */
3788 + free_mem_ptr += size;
3790 + if (free_mem_ptr >= &heap[HEAPSIZE])
3791 + error ("\nOut of memory\n");
3796 +static void free (void *where)
3800 +static void gzip_mark (void **ptr)
3802 + *ptr = free_mem_ptr;
3805 +static void gzip_release (void **ptr)
3807 + free_mem_ptr = *ptr;
3810 +/* ===========================================================================
3811 + * Write the output window window[0..outcnt-1] and update crc and bytes_out.
3812 + * (Used for the decompressed data only.)
3814 +static void flush_window (void)
3816 + ulg c = crc; /* temporary variable */
3821 + for (n = 0; n < outcnt; n++) {
3824 + c = crc_32_tab[((int) c ^ ch) & 0xff] ^ (c >> 8);
3827 + bytes_out += outcnt;
3832 +static void error (char *x)
3834 + outstring ("\r\n\r\n");
3836 + outstring ("\r\n\r\n -- System halted\r\n");
3840 +void memgunzip (unsigned char *dst, const unsigned char *src, unsigned int sz)
3848 diff -Naur linux-2.6.0-test8/arch/m68knommu/platform/68VZ328/ucdimm/config.c linux-2.6.0-test8-uc0/arch/m68knommu/platform/68VZ328/ucdimm/config.c
3849 --- linux-2.6.0-test8/arch/m68knommu/platform/68VZ328/ucdimm/config.c 2003-10-20 09:10:57.662668152 +1000
3850 +++ linux-2.6.0-test8-uc0/arch/m68knommu/platform/68VZ328/ucdimm/config.c 2003-10-20 09:11:56.251761256 +1000
3855 - printk("\n68VZ328 DragonBallVZ support (c) 2001 Lineo, Inc.\n");
3856 + printk(KERN_INFO "\n68VZ328 DragonBallVZ support (c) 2001 Lineo, Inc.\n");
3858 - printk("uCdimm serial string [%s]\n",getserialnum());
3859 + printk(KERN_INFO "uCdimm serial string [%s]\n",getserialnum());
3860 p = cs8900a_hwaddr = gethwaddr(0);
3861 - printk("uCdimm hwaddr %.2x:%.2x:%.2x:%.2x:%.2x:%.2x\n",
3862 + printk(KERN_INFO "uCdimm hwaddr %.2x:%.2x:%.2x:%.2x:%.2x:%.2x\n",
3863 p[0], p[1], p[2], p[3], p[4], p[5]);
3864 p = getbenv("APPEND");
3865 if (p) strcpy(p,command);
3866 diff -Naur linux-2.6.0-test8/drivers/mtd/maps/se4000.c linux-2.6.0-test8-uc0/drivers/mtd/maps/se4000.c
3867 --- linux-2.6.0-test8/drivers/mtd/maps/se4000.c 1970-01-01 10:00:00.000000000 +1000
3868 +++ linux-2.6.0-test8-uc0/drivers/mtd/maps/se4000.c 2003-10-20 09:12:24.267502216 +1000
3870 +/****************************************************************************/
3873 + * se4000.c -- MTD map driver for SnapGear SE4000 platform
3875 + * (C) Copyright 2003, Greg Ungerer <gerg@snapgear.com>
3878 +/****************************************************************************/
3880 +#include <linux/module.h>
3881 +#include <linux/types.h>
3882 +#include <linux/kernel.h>
3883 +#include <linux/string.h>
3884 +#include <linux/notifier.h>
3885 +#include <linux/init.h>
3886 +#include <linux/reboot.h>
3887 +#include <linux/mtd/mtd.h>
3888 +#include <linux/mtd/map.h>
3889 +#include <linux/mtd/partitions.h>
3890 +#include <linux/mtd/cfi.h>
3891 +#include <linux/ioport.h>
3892 +#include <asm/io.h>
3894 +/****************************************************************************/
3896 +static struct map_info se4000_map = {
3897 + .name = "SnapGear SE4000 Flash",
3899 + .phys = 0x50000000,
3900 + .size = 0x01000000,
3903 +static struct mtd_partition *parsed_parts;
3905 +/****************************************************************************/
3907 +#ifdef CONFIG_MTD_CFI_INTELEXT
3909 + * Set the Intel flash back to read mode as MTD may leave it in command mode.
3912 +static int se4000_reboot_notifier(
3913 + struct notifier_block *nb,
3914 + unsigned long val,
3917 + struct cfi_private *cfi = se4000_map.fldrv_priv;
3920 + for (i = 0; cfi && i < cfi->numchips; i++)
3921 + cfi_send_gen_cmd(0xff, 0x55, cfi->chips[i].start, &se4000_map,
3922 + cfi, cfi->device_type, NULL);
3927 +static struct notifier_block se4000_notifier_block = {
3928 + se4000_reboot_notifier, NULL, 0
3934 +/****************************************************************************/
3936 +static struct mtd_info *se4000_mtd;
3937 +static const char *probes[] = { "RedBoot", NULL };
3939 +/****************************************************************************/
3941 +static void se4000_exit(void)
3944 + del_mtd_partitions(se4000_mtd);
3945 + map_destroy(se4000_mtd);
3947 + if (se4000_map.virt)
3948 + iounmap((void *)se4000_map.virt);
3951 + kfree(parsed_parts);
3953 + /* Disable flash write */
3954 + *IXP425_EXP_CS0 &= ~IXP425_FLASH_WRITABLE;
3957 +/****************************************************************************/
3959 +static int __init se4000_init(void)
3963 + /* Enable flash write */
3964 + *IXP425_EXP_CS0 |= IXP425_FLASH_WRITABLE;
3966 + se4000_map.virt = (unsigned long) ioremap(se4000_map.phys, se4000_map.size);
3967 + if (!se4000_map.virt) {
3968 + printk(KERN_ERR "SE4000: ioremap(%x) failed\n", (int)se4000_map.phys);
3973 + /* Probe for the CFI complaint chip */
3974 + se4000_mtd = do_map_probe("cfi_probe", &se4000_map);
3975 + if (!se4000_mtd) {
3979 + se4000_mtd->owner = THIS_MODULE;
3981 + /* Try to parse RedBoot partitions */
3982 + npart = parse_mtd_partitions(se4000_mtd, probes, &parsed_parts, 0);
3984 + /* found "npart" RedBoot partitions */
3985 + res = add_mtd_partitions(se4000_mtd, parsed_parts, npart);
3993 +#ifdef CONFIG_MTD_CFI_INTELEXT
3994 + register_reboot_notifier(&se4000_notifier_block);
4003 +/****************************************************************************/
4005 +module_init(se4000_init);
4006 +module_exit(se4000_exit);
4008 +MODULE_DESCRIPTION("MTD map driver for SnapGear SE4000");
4010 +/****************************************************************************/
4011 diff -Naur linux-2.6.0-test8/drivers/mtd/maps/uclinux.c linux-2.6.0-test8-uc0/drivers/mtd/maps/uclinux.c
4012 --- linux-2.6.0-test8/drivers/mtd/maps/uclinux.c 2003-10-20 09:10:46.000000000 +1000
4013 +++ linux-2.6.0-test8-uc0/drivers/mtd/maps/uclinux.c 2003-10-20 09:12:24.281500088 +1000
4016 * (C) Copyright 2002, Greg Ungerer (gerg@snapgear.com)
4022 /****************************************************************************/
4024 #include <linux/kernel.h>
4025 #include <linux/fs.h>
4026 #include <linux/major.h>
4027 +#include <linux/root_dev.h>
4028 #include <linux/mtd/mtd.h>
4029 #include <linux/mtd/map.h>
4030 #include <linux/mtd/partitions.h>
4032 struct mtd_info *mtd;
4033 struct map_info *mapp;
4035 + unsigned long addr = (unsigned long) &_ebss;
4037 +#ifdef CONFIG_PILOT
4038 + extern char _etext, _sdata, __init_end;
4039 + addr = (unsigned long) (&_etext + (&__init_end - &_sdata));
4042 mapp = &uclinux_ram_map;
4043 - mapp->phys = (unsigned long) &_ebss;
4044 - mapp->size = PAGE_ALIGN(*((unsigned long *)((&_ebss) + 8)));
4045 + mapp->phys = addr;
4046 + mapp->size = PAGE_ALIGN(*((unsigned long *)(addr + 8)));
4049 printk("uclinux[mtd]: RAM probe address=0x%x size=0x%x\n",
4051 printk("uclinux[mtd]: set %s to be root filesystem\n",
4052 uclinux_romfs[0].name);
4053 ROOT_DEV = MKDEV(MTD_BLOCK_MAJOR, 0);
4054 - put_mtd_device(mtd);
4058 diff -Naur linux-2.6.0-test8/drivers/net/fec.c linux-2.6.0-test8-uc0/drivers/net/fec.c
4059 --- linux-2.6.0-test8/drivers/net/fec.c 2003-10-20 09:10:28.000000000 +1000
4060 +++ linux-2.6.0-test8-uc0/drivers/net/fec.c 2003-10-20 09:12:25.475318600 +1000
4062 * Much better multiple PHY support by Magnus Damm.
4063 * Copyright (c) 2000 Ericsson Radio Systems AB.
4065 - * Support for FEC controller of ColdFire/5272.
4066 + * Support for FEC controller of ColdFire/5272/5282.
4067 * Copyrught (c) 2001-2002 Greg Ungerer (gerg@snapgear.com)
4072 #include <asm/pgtable.h>
4074 -#ifdef CONFIG_M5272
4075 +#if defined(CONFIG_M5272) || defined(CONFIG_M5282)
4076 #include <asm/coldfire.h>
4077 #include <asm/mcfsim.h>
4081 * Define the fixed address of the FEC hardware.
4083 -#ifdef CONFIG_M5272
4084 +#if defined(CONFIG_M5272)
4085 static volatile fec_t *fec_hwp = (volatile fec_t *) (MCF_MBAR + 0x840);
4086 static ushort my_enet_addr[] = { 0x00d0, 0xcf00, 0x0072 };
4087 +#elif defined(CONFIG_M5282)
4088 +static volatile fec_t *fec_hwp = (volatile fec_t *) (MCF_MBAR + 0x1000);
4089 +static ushort my_enet_addr[] = { 0x00d0, 0xcf00, 0x0082 };
4091 static volatile fec_t *fec_hwp = &(((immap_t *)IMAP_ADDR)->im_cpm.cp_fec)
4092 static ushort my_enet_addr[3];
4093 -#endif /* CONFIG_M5272 */
4097 * Some hardware gets it MAC address out of local flash memory.
4098 @@ -299,6 +302,24 @@
4099 bdp->cbd_bufaddr = __pa(skb->data);
4100 bdp->cbd_datlen = skb->len;
4102 +#ifdef CONFIG_M5282
4104 + * The FEC on the 5282 must have its buffers alligned on
4105 + * 4 byte boundaries. Bugger. Copy the skbuf contents in
4106 + * place so they start on a 4 byte boundary.
4108 + if (bdp->cbd_bufaddr & 0x2) {
4110 + unsigned char *src = (unsigned char *) bdp->cbd_bufaddr;
4111 + unsigned char *dst = (unsigned char *) bdp->cbd_bufaddr;
4112 + src += bdp->cbd_datlen;
4113 + dst += bdp->cbd_datlen + 2;
4114 + for (i = bdp->cbd_datlen-1; (i >= 0); i--)
4116 + bdp->cbd_bufaddr = (int) dst;
4120 /* Save skb pointer.
4122 fep->tx_skbuff[fep->skb_cur] = skb;
4123 @@ -407,10 +428,13 @@
4125 while ((int_events = fecp->fec_ievent) != 0) {
4126 fecp->fec_ievent = int_events;
4128 +#ifndef CONFIG_M5282
4129 if ((int_events & (FEC_ENET_HBERR | FEC_ENET_BABR |
4130 FEC_ENET_BABT | FEC_ENET_EBERR)) != 0) {
4131 printk("FEC ERROR %x\n", int_events);
4135 /* Handle receive event in its own function.
4137 @@ -1040,14 +1064,15 @@
4139 /* ------------------------------------------------------------------------- */
4142 #ifdef CONFIG_RPXCLASSIC
4144 mii_link_interrupt(void *dev_id);
4147 mii_link_interrupt(int irq, void * dev_id, struct pt_regs * regs);
4150 -#ifdef CONFIG_M5272
4151 +#if defined(CONFIG_M5272)
4154 * Code specific to Coldfire 5272 setup.
4155 @@ -1151,6 +1176,143 @@
4157 /* ------------------------------------------------------------------------- */
4159 +#elif defined(CONFIG_M5282)
4162 + * Code specific to Coldfire 5282 setup.
4164 +static void __inline__ fec_request_intrs(struct net_device *dev, volatile fec_t *fecp)
4166 + /* Setup interrupt handlers. */
4167 + if (request_irq(64+23, fec_enet_interrupt, 0, "fec(TXF)", dev) != 0)
4168 + printk("FEC: Could not allocate FEC(TXF) IRQ(64+23)!\n");
4169 + if (request_irq(64+24, fec_enet_interrupt, 0, "fec(TXB)", dev) != 0)
4170 + printk("FEC: Could not allocate FEC(TXB) IRQ(64+24)!\n");
4171 + if (request_irq(64+25, fec_enet_interrupt, 0, "fec(TXFIFO)", dev) != 0)
4172 + printk("FEC: Could not allocate FEC(TXFIFO) IRQ(64+25)!\n");
4173 + if (request_irq(64+26, fec_enet_interrupt, 0, "fec(TXCR)", dev) != 0)
4174 + printk("FEC: Could not allocate FEC(TXCR) IRQ(64+26)!\n");
4176 + if (request_irq(64+27, fec_enet_interrupt, 0, "fec(RXF)", dev) != 0)
4177 + printk("FEC: Could not allocate FEC(RXF) IRQ(64+27)!\n");
4178 + if (request_irq(64+28, fec_enet_interrupt, 0, "fec(RXB)", dev) != 0)
4179 + printk("FEC: Could not allocate FEC(RXB) IRQ(64+28)!\n");
4181 + if (request_irq(64+29, fec_enet_interrupt, 0, "fec(MII)", dev) != 0)
4182 + printk("FEC: Could not allocate FEC(MII) IRQ(64+29)!\n");
4183 + if (request_irq(64+30, fec_enet_interrupt, 0, "fec(LC)", dev) != 0)
4184 + printk("FEC: Could not allocate FEC(LC) IRQ(64+30)!\n");
4185 + if (request_irq(64+31, fec_enet_interrupt, 0, "fec(HBERR)", dev) != 0)
4186 + printk("FEC: Could not allocate FEC(HBERR) IRQ(64+31)!\n");
4187 + if (request_irq(64+32, fec_enet_interrupt, 0, "fec(GRA)", dev) != 0)
4188 + printk("FEC: Could not allocate FEC(GRA) IRQ(64+32)!\n");
4189 + if (request_irq(64+33, fec_enet_interrupt, 0, "fec(EBERR)", dev) != 0)
4190 + printk("FEC: Could not allocate FEC(EBERR) IRQ(64+33)!\n");
4191 + if (request_irq(64+34, fec_enet_interrupt, 0, "fec(BABT)", dev) != 0)
4192 + printk("FEC: Could not allocate FEC(BABT) IRQ(64+34)!\n");
4193 + if (request_irq(64+35, fec_enet_interrupt, 0, "fec(BABR)", dev) != 0)
4194 + printk("FEC: Could not allocate FEC(BABR) IRQ(64+35)!\n");
4196 + /* Unmask interrupts at ColdFire 5282 interrupt controller */
4198 + volatile unsigned char *icrp;
4199 + volatile unsigned long *imrp;
4202 + icrp = (volatile unsigned char *) (MCF_IPSBAR + MCFICM_INTC0 +
4204 + for (i = 23; (i < 36); i++)
4207 + imrp = (volatile unsigned long *) (MCF_IPSBAR + MCFICM_INTC0 +
4209 + *imrp &= ~0x0000000f;
4210 + imrp = (volatile unsigned long *) (MCF_IPSBAR + MCFICM_INTC0 +
4212 + *imrp &= ~0xff800001;
4215 + /* Set up gpio outputs for MII lines */
4217 + volatile unsigned short *gpio_paspar;
4219 + gpio_paspar = (volatile unsigned short *) (MCF_IPSBAR +
4221 + *gpio_paspar = 0x0f00;
4225 +static void __inline__ fec_set_mii(struct net_device *dev, struct fec_enet_private *fep)
4227 + volatile fec_t *fecp;
4230 + fecp->fec_r_cntrl = 0x04;
4231 + fecp->fec_x_cntrl = 0x00;
4233 + /* Set MII speed to 2.5 MHz
4235 + fecp->fec_mii_speed = fep->phy_speed = 0x0e;
4237 + fec_restart(dev, 0);
4240 +static void __inline__ fec_get_mac(struct net_device *dev, struct fec_enet_private *fep)
4242 + volatile fec_t *fecp;
4243 + unsigned char *eap, *iap, tmpaddr[6];
4247 + eap = (unsigned char *) my_enet_addr;
4249 + if (fec_flashmac) {
4251 + * Get MAC address from FLASH.
4252 + * If it is all 1's or 0's, use the default.
4254 + iap = fec_flashmac;
4255 + if ((iap[0] == 0) && (iap[1] == 0) && (iap[2] == 0) &&
4256 + (iap[3] == 0) && (iap[4] == 0) && (iap[5] == 0))
4258 + if ((iap[0] == 0xff) && (iap[1] == 0xff) && (iap[2] == 0xff) &&
4259 + (iap[3] == 0xff) && (iap[4] == 0xff) && (iap[5] == 0xff))
4262 + *((unsigned long *) &tmpaddr[0]) = fecp->fec_addr_low;
4263 + *((unsigned short *) &tmpaddr[4]) = (fecp->fec_addr_high >> 16);
4264 + iap = &tmpaddr[0];
4267 + for (i=0; i<6; i++)
4268 + dev->dev_addr[i] = *eap++ = *iap++;
4271 +static void __inline__ fec_enable_phy_intr(void)
4275 +static void __inline__ fec_disable_phy_intr(void)
4279 +static void __inline__ fec_phy_ack_intr(void)
4283 +static void __inline__ fec_localhw_setup(void)
4288 + * Do not need to make region uncached on 5272.
4290 +static void __inline__ fec_uncache(unsigned long addr)
4294 +/* ------------------------------------------------------------------------- */
4299 @@ -1458,14 +1620,15 @@
4301 /* This interrupt occurs when the PHY detects a link change.
4304 #ifdef CONFIG_RPXCLASSIC
4306 mii_link_interrupt(void *dev_id)
4309 mii_link_interrupt(int irq, void * dev_id, struct pt_regs * regs)
4312 - struct net_device *dev = dev_id;
4313 + struct net_device *dev = dev_id;
4314 struct fec_enet_private *fep = dev->priv;
4317 @@ -1477,6 +1640,7 @@
4318 mii_do_cmd(dev, fep->phy->ack_int);
4319 mii_do_cmd(dev, phy_cmd_relink); /* restart and display status */
4321 + return IRQ_HANDLED;
4325 diff -Naur linux-2.6.0-test8/drivers/net/Kconfig linux-2.6.0-test8-uc0/drivers/net/Kconfig
4326 --- linux-2.6.0-test8/drivers/net/Kconfig 2003-10-20 09:10:30.000000000 +1000
4327 +++ linux-2.6.0-test8-uc0/drivers/net/Kconfig 2003-10-20 09:12:24.802420896 +1000
4330 config NET_VENDOR_SMC
4331 bool "Western Digital/SMC cards"
4332 - depends on NET_ETHERNET && (ISA || MCA || EISA || MAC)
4333 + depends on NET_ETHERNET && (ISA || MCA || EISA || MAC || EMBEDDED)
4335 If you have a network (Ethernet) card belonging to this class, say Y
4336 and read the Ethernet-HOWTO, available from
4340 tristate "SMC 9194 support"
4341 - depends on NET_VENDOR_SMC && (ISA || MAC && BROKEN)
4342 + depends on NET_VENDOR_SMC && (ISA || MAC && BROKEN || EMBEDDED)
4345 This is support for the SMC9xxx based Ethernet cards. Choose this
4346 diff -Naur linux-2.6.0-test8/drivers/net/smc9194.c linux-2.6.0-test8-uc0/drivers/net/smc9194.c
4347 --- linux-2.6.0-test8/drivers/net/smc9194.c 2003-10-20 09:10:30.000000000 +1000
4348 +++ linux-2.6.0-test8-uc0/drivers/net/smc9194.c 2003-10-20 09:12:25.833264184 +1000
4351 #include <linux/module.h>
4352 #include <linux/kernel.h>
4353 +#include <linux/sched.h>
4354 #include <linux/types.h>
4355 #include <linux/fcntl.h>
4356 #include <linux/interrupt.h>
4357 +#include <linux/ptrace.h>
4358 #include <linux/ioport.h>
4359 #include <linux/in.h>
4360 #include <linux/slab.h>
4362 #include <linux/netdevice.h>
4363 #include <linux/etherdevice.h>
4364 #include <linux/skbuff.h>
4365 +#include <linux/delay.h>
4367 #include <asm/bitops.h>
4370 #include "smc9194.h"
4372 +#ifdef CONFIG_M68EZ328
4373 +#include <asm/MC68EZ328.h>
4374 +#include <asm/irq.h>
4375 +#include <asm/mcfsmc.h>
4376 +unsigned char smc_defethaddr[] = { 0x00, 0x10, 0x8b, 0xf1, 0xda, 0x01 };
4377 +#define NO_AUTOPROBE
4380 +#ifdef CONFIG_COLDFIRE
4381 +#include <asm/coldfire.h>
4382 +#include <asm/mcfsim.h>
4383 +#include <asm/mcfsmc.h>
4385 +unsigned char smc_defethaddr[] = { 0x00, 0xd0, 0xcf, 0x00, 0x00, 0x01 };
4387 +#define NO_AUTOPROBE
4390 +#ifdef CONFIG_SH_KEYWEST
4391 +#include <asm/keywest.h>
4392 +#define NO_AUTOPROBE
4396 +#ifdef CONFIG_LEDMAN
4397 +#include <linux/ledman.h>
4400 +#if defined(CONFIG_CPU_H8300H) || defined(CONFIG_CPU_H8S)
4401 +#include <asm/h8300_smsc.h>
4402 +#define NO_AUTOPROBE
4405 /*------------------------------------------------------------------------
4407 . Configuration options, for the experienced user to change.
4408 @@ -88,22 +124,59 @@
4409 . Do you want to use 32 bit xfers? This should work on all chips, as
4410 . the chipset is designed to accommodate them.
4413 +#if (defined(__sh__) && !defined(CONFIG_SH_KEYWEST)) || \
4414 + defined(__H8300H__) || defined(__H8300S__)
4417 #define USE_32_BIT 1
4421 + .A typedef so we can change what IO looks like easily
4423 +typedef unsigned int smcio_t;
4426 .the SMC9194 can be at any of the following port addresses. To change,
4427 .for a slightly different card, you can add it to the array. Keep in
4428 .mind that the array must end in zero.
4431 +#if defined(CONFIG_COLDFIRE) || defined(CONFIG_M68EZ328) || \
4432 + defined(CONFIG_SH_KEYWEST)
4434 +#ifdef CONFIG_NETtel
4435 +static smcio_t smc_portlist[] = { 0x30600300, 0x30600000, 0 };
4436 +static unsigned int smc_irqlist[] = { 29, 27, 0 };
4437 +#elif defined(CONFIG_SH_KEYWEST)
4438 +static smcio_t smc_portlist[] = { KEYWEST_ETHR, 0 };
4439 +static unsigned int smc_irqlist[] = { IRQ4_IRQ, 0 };
4440 +#elif defined(CONFIG_M68EZ328)
4441 +/* make sure that you program Port D selects to allow the interrupts! */
4442 +static smcio_t smc_portlist[] = { 0x2000300, 0x2000320, 0 };
4443 +static unsigned int smc_irqlist[] = { IRQ1_IRQ_NUM, IRQ2_IRQ_NUM, 0 };
4444 +#elif defined(CONFIG_CLEOPATRA)
4445 +static unsigned int smc_portlist[] = { 0x30600300, 0 };
4446 +static unsigned int smc_irqlist[] = { 29, 0 };
4448 +static smcio_t smc_portlist[] = { 0x30600300, 0 };
4449 +static unsigned int smc_irqlist[] = { 27, 0 };
4452 +#elif defined(CONFIG_BOARD_EDOSK2674)
4453 +static smcio_t smc_portlist[] = { SMSC_BASE, 0 };
4454 +static unsigned int smc_irqlist[] = { SMSC_IRQ, 0 };
4457 static unsigned int smc_portlist[] __initdata = {
4458 0x200, 0x220, 0x240, 0x260, 0x280, 0x2A0, 0x2C0, 0x2E0,
4459 0x300, 0x320, 0x340, 0x360, 0x380, 0x3A0, 0x3C0, 0x3E0, 0
4464 +static unsigned int smc_found[] = { 0, 0, 0 };
4467 . Wait time for memory to be free. This probably shouldn't be
4468 . tuned that much, as waiting for this means nothing else happens
4470 . Test if a given location contains a chip, trying to cause as
4471 . little damage as possible if it's not a SMC chip.
4473 -static int smc_probe(struct net_device *dev, int ioaddr);
4474 +static int smc_probe(struct net_device *dev, smcio_t ioaddr);
4477 . A rather simple routine to print out a packet for debugging purposes.
4478 @@ -278,20 +351,31 @@
4479 static int smc_wait_to_send_packet( struct sk_buff * skb, struct net_device *dev );
4481 /* this does a soft reset on the device */
4482 -static void smc_reset( int ioaddr );
4483 +static void smc_reset( smcio_t ioaddr );
4485 /* Enable Interrupts, Receive, and Transmit */
4486 -static void smc_enable( int ioaddr );
4487 +static void smc_enable( smcio_t ioaddr );
4489 /* this puts the device in an inactive state */
4490 -static void smc_shutdown( int ioaddr );
4491 +static void smc_shutdown( smcio_t ioaddr );
4493 +#ifndef NO_AUTOPROBE
4494 /* This routine will find the IRQ of the driver if one is not
4495 . specified in the input to the device. */
4496 -static int smc_findirq( int ioaddr );
4497 +static int smc_findirq( smcio_t ioaddr );
4501 +static void clkmdio(smcio_t ioaddr, unsigned int MGMTData);
4502 +static unsigned PHYAccess(smcio_t ioaddr, unsigned char PHYAdd,
4503 + unsigned char RegAdd, unsigned char OPCode, unsigned wData);
4504 +static unsigned char DetectPHY(smcio_t ioaddr, unsigned long *OUI,
4505 + unsigned char *Model, unsigned char *Revision);
4506 +static int setup_phy(smcio_t ioaddr);
4510 - . Function: smc_reset( int ioaddr )
4511 + . Function: smc_reset( smcio_t ioaddr )
4513 . This sets the SMC91xx chip to its normal state, hopefully from whatever
4514 . mess that any other DOS driver has put it in.
4516 . 5. clear all interrupts
4519 -static void smc_reset( int ioaddr )
4520 +static void smc_reset( smcio_t ioaddr )
4522 /* This resets the registers mostly to defaults, but doesn't
4523 affect EEPROM. That seems unnecessary */
4524 @@ -328,6 +412,10 @@
4525 SMC_SELECT_BANK( 1 );
4526 outw( inw( ioaddr + CONTROL ) | CTL_AUTO_RELEASE , ioaddr + CONTROL );
4528 +#if defined(CONFIG_LEDMAN) && defined(CONFIG_SNAPGEAR)
4529 + outw( inw( ioaddr + CONTROL ) | CTL_LE_ENABLE , ioaddr + CONTROL );
4533 SMC_SELECT_BANK( 2 );
4534 outw( MC_RESET, ioaddr + MMU_CMD );
4536 but this is a place where future chipsets _COULD_ break. Be wary
4537 of issuing another MMU command right after this */
4539 - outb( 0, ioaddr + INT_MASK );
4545 . 2. Enable the receiver
4546 . 3. Enable interrupts
4548 -static void smc_enable( int ioaddr )
4549 +static void smc_enable( smcio_t ioaddr )
4551 SMC_SELECT_BANK( 0 );
4552 /* see the header file for options in TCR/RCR NORMAL*/
4555 /* now, enable interrupts */
4556 SMC_SELECT_BANK( 2 );
4557 - outb( SMC_INTERRUPT_MASK, ioaddr + INT_MASK );
4558 + SMC_SET_INT( SMC_INTERRUPT_MASK );
4562 @@ -373,16 +461,21 @@
4563 . the manual says that it will wake up in response to any I/O requests
4564 . in the register space. Empirical results do not show this working.
4566 -static void smc_shutdown( int ioaddr )
4567 +static void smc_shutdown( smcio_t ioaddr )
4569 /* no more interrupts for me */
4570 SMC_SELECT_BANK( 2 );
4571 - outb( 0, ioaddr + INT_MASK );
4574 /* and tell the card to stay away from that nasty outside world */
4575 SMC_SELECT_BANK( 0 );
4576 +#if defined(CONFIG_COLDFIRE) || defined(CONFIG_M68EZ328)
4577 + outw( RCR_CLEAR, ioaddr + RCR );
4578 + outw( TCR_CLEAR, ioaddr + TCR );
4580 outb( RCR_CLEAR, ioaddr + RCR );
4581 outb( TCR_CLEAR, ioaddr + TCR );
4582 +#endif /* CONFIG_COLDFIRE */
4584 /* finally, shut the chip down */
4585 SMC_SELECT_BANK( 1 );
4590 - . Function: smc_setmulticast( int ioaddr, int count, dev_mc_list * adds )
4591 + . Function: smc_setmulticast( smcio_t ioaddr, int count, dev_mc_list * adds )
4593 . This sets the internal hardware table to filter out unwanted multicast
4594 . packets before they take up memory.
4599 -static void smc_setmulticast( int ioaddr, int count, struct dev_mc_list * addrs ) {
4600 +static void smc_setmulticast( smcio_t ioaddr, int count, struct dev_mc_list * addrs ) {
4602 unsigned char multicast_table[ 8 ];
4603 struct dev_mc_list * cur_addr;
4604 @@ -442,11 +535,18 @@
4605 /* now, the table can be loaded into the chipset */
4606 SMC_SELECT_BANK( 3 );
4608 +#if defined(CONFIG_COLDFIRE) || defined(CONFIG_M68EZ328)
4609 + for ( i = 0; i < 8 ; i += 2 ) {
4610 + outw(((multicast_table[i+1]<<8)+(multicast_table[i])), ioaddr+MULTICAST1+i );
4613 for ( i = 0; i < 8 ; i++ ) {
4614 outb( multicast_table[i], ioaddr + MULTICAST1 + i );
4621 . Function: smc_wait_to_send_packet( struct sk_buff * skb, struct net_device * )
4624 static int smc_wait_to_send_packet( struct sk_buff * skb, struct net_device * dev )
4626 struct smc_local *lp = (struct smc_local *)dev->priv;
4627 - unsigned short ioaddr = dev->base_addr;
4628 + smcio_t ioaddr = dev->base_addr;
4630 unsigned short numPages;
4632 @@ -481,18 +581,18 @@
4633 printk(CARDNAME": Bad Craziness - sent packet while busy.\n" );
4636 - lp->saved_skb = skb;
4640 - if (length < ETH_ZLEN) {
4641 + if(length < ETH_ZLEN) {
4642 skb = skb_padto(skb, ETH_ZLEN);
4643 - if (skb == NULL) {
4645 netif_wake_queue(dev);
4650 + lp->saved_skb = skb;
4653 ** The MMU wants the number of pages to be the number of 256 bytes
4655 status = inb( ioaddr + INTERRUPT );
4656 if ( status & IM_ALLOC_INT ) {
4657 /* acknowledge the interrupt */
4658 - outb( IM_ALLOC_INT, ioaddr + INTERRUPT );
4659 + SMC_ACK_INT( IM_ALLOC_INT );
4662 } while ( -- time_out );
4665 struct sk_buff * skb = lp->saved_skb;
4667 - unsigned short ioaddr;
4671 ioaddr = dev->base_addr;
4672 @@ -604,7 +704,11 @@
4675 /* we have a packet address, so tell the card to use it */
4676 +#if defined(CONFIG_COLDFIRE) || defined(CONFIG_M68EZ328)
4677 + outw( packet_no, ioaddr + PNR_ARR );
4679 outb( packet_no, ioaddr + PNR_ARR );
4682 /* point to the beginning of the packet */
4683 outw( PTR_AUTOINC , ioaddr + POINTER );
4684 @@ -616,14 +720,23 @@
4686 /* send the packet length ( +6 for status, length and ctl byte )
4687 and the status word ( set to zeros ) */
4690 +#if defined(CONFIG_COLDFIRE) || defined(CONFIG_M68EZ328)
4691 + outl( (length +6 ) , ioaddr + DATA_1 );
4693 outl( (length +6 ) << 16 , ioaddr + DATA_1 );
4696 outw( 0, ioaddr + DATA_1 );
4697 /* send the packet length ( +6 for status words, length, and ctl*/
4698 +#if defined(CONFIG_COLDFIRE) || defined(CONFIG_M68EZ328) || defined(CONFIG_CPU_H8S)
4699 + outw( (length+6) & 0xFFFF, ioaddr + DATA_1 );
4701 outb( (length+6) & 0xFF,ioaddr + DATA_1 );
4702 outb( (length+6) >> 8 , ioaddr + DATA_1 );
4706 /* send the actual data
4707 . I _think_ it's faster to send the longs first, and then
4708 @@ -635,7 +748,11 @@
4710 if ( length & 0x2 ) {
4711 outsl(ioaddr + DATA_1, buf, length >> 2 );
4712 +#if defined(CONFIG_COLDFIRE) || defined(CONFIG_M68EZ328)
4713 + outwd( *((word *)(buf + (length & 0xFFFFFFFC))),ioaddr +DATA_1);
4715 outw( *((word *)(buf + (length & 0xFFFFFFFC))),ioaddr +DATA_1);
4719 outsl(ioaddr + DATA_1, buf, length >> 2 );
4720 @@ -647,8 +764,12 @@
4721 if ( (length & 1) == 0 ) {
4722 outw( 0, ioaddr + DATA_1 );
4724 +#if defined(CONFIG_COLDFIRE) || defined(CONFIG_M68EZ328)
4725 + outw( buf[length -1 ] | (0x20 << 8), ioaddr + DATA_1);
4727 outb( buf[length -1 ], ioaddr + DATA_1 );
4728 outb( 0x20, ioaddr + DATA_1);
4732 /* enable the interrupts */
4733 @@ -688,7 +809,12 @@
4734 int __init smc_init(struct net_device *dev)
4737 +#if defined(NO_AUTOPROBE)
4738 int base_addr = dev->base_addr;
4740 + /* check for special auto-probe address */
4741 + int base_addr = (dev && dev->base_addr != 0xffe0) ? dev->base_addr : 0;
4744 SET_MODULE_OWNER(dev);
4746 @@ -699,9 +825,22 @@
4749 /* check every ethernet address */
4750 - for (i = 0; smc_portlist[i]; i++)
4751 - if (smc_probe(dev, smc_portlist[i]) == 0)
4752 + for (i = 0; smc_portlist[i]; i++) {
4753 +#ifdef CONFIG_NETtel
4754 + smc_remap(smc_portlist[i]);
4756 +#if defined(NO_AUTOPROBE)
4757 + dev->irq = smc_irqlist[i];
4761 + if (smc_probe(dev, smc_portlist[i]) == 0) {
4762 +#if defined(NO_AUTOPROBE)
4769 /* couldn't find anything */
4771 @@ -714,12 +853,20 @@
4772 . interrupt, so an auto-detect routine can detect it, and find the IRQ,
4773 ------------------------------------------------------------------------
4775 -int __init smc_findirq( int ioaddr )
4776 +#ifndef NO_AUTOPROBE
4777 +int __init smc_findirq( smcio_t ioaddr )
4780 unsigned long cookie;
4784 + /* I have to do a STI() here, because this is called from
4785 + a routine that does an CLI during this process, making it
4786 + rather difficult to get interrupts for auto detection */
4790 cookie = probe_irq_on();
4796 /* enable ALLOCation interrupts ONLY */
4797 - outb( IM_ALLOC_INT, ioaddr + INT_MASK );
4798 + SMC_SET_INT( IM_ALLOC_INT );
4801 . Allocate 512 bytes of memory. Note that the chip was just
4802 @@ -766,14 +913,21 @@
4805 /* and disable all interrupts again */
4806 - outb( 0, ioaddr + INT_MASK );
4810 + /* clear hardware interrupts again, because that's how it
4811 + was when I was called... */
4815 /* and return what I found */
4816 return probe_irq_off(cookie);
4818 +#endif /* NO_AUTOPROBE */
4820 /*----------------------------------------------------------------------
4821 - . Function: smc_probe( int ioaddr )
4822 + . Function: smc_probe( smcio_t ioaddr )
4825 . Tests to see if a given ioaddr points to an SMC9xxx chip.
4826 @@ -801,11 +955,17 @@
4828 .-----------------------------------------------------------------
4830 -static int __init smc_probe(struct net_device *dev, int ioaddr)
4831 +static int __init smc_probe(struct net_device *dev, smcio_t ioaddr)
4833 int i, memory, retval;
4834 static unsigned version_printed;
4836 +#if defined(CONFIG_NETtel) || defined(CONFIG_eLIA) || defined(CONFIG_DISKtel) || defined(CONFIG_CLEOPATRA)
4837 + static int nr = 0;
4839 +#if defined(CONFIG_COLDFIRE) || defined(CONFIG_M68EZ328)
4840 + unsigned char *ep;
4843 const char *version_string;
4844 const char *if_string;
4845 @@ -817,9 +977,18 @@
4846 word memory_info_register;
4847 word memory_cfg_register;
4849 +#if !defined(CONFIG_COLDFIRE) && !defined(CONFIG_M68EZ328) && \
4850 + !defined(CONFIG_CPU_H8300H) && !defined(CONFIG_CPU_H8S)
4851 /* Grab the region so that no one else tries to probe our ioports. */
4852 if (!request_region(ioaddr, SMC_IO_EXTENT, dev->name))
4854 +#elif defined(CONFIG_COLDFIRE)
4856 + * We need to put the SMC into 68k mode.
4857 + * Do a write before anything else.
4859 + outw(0, ioaddr + BANK_SELECT);
4862 /* First, see if the high byte is 0x33 */
4863 bank = inw( ioaddr + BANK_SELECT );
4864 @@ -835,12 +1004,14 @@
4869 /* well, we've already written once, so hopefully another time won't
4870 hurt. This time, I need to switch the bank register to bank 1,
4871 so I can access the base address register */
4872 +#if !defined(CONFIG_CPU_H8300H) && !defined(CONFIG_CPU_H8S)
4874 base_address_register = inw( ioaddr + BASE );
4875 - if ( ioaddr != ( base_address_register >> 3 & 0x3E0 ) ) {
4876 + if ( (ioaddr & 0x3E0) != ( base_address_register >> 3 & 0x3E0 ) ) {
4877 printk(CARDNAME ": IOADDR %x doesn't match configuration (%x)."
4878 "Probably not a SMC chip\n",
4879 ioaddr, base_address_register >> 3 & 0x3E0 );
4880 @@ -849,6 +1020,7 @@
4886 /* check if the revision register is something that I recognize.
4887 These might need to be added to later, as future revisions
4888 @@ -867,13 +1039,30 @@
4889 /* at this point I'll assume that the chip is an SMC9xxx.
4890 It might be prudent to check a listing of MAC addresses
4891 against the hardware address, or do some other tests. */
4893 if (version_printed++ == 0)
4894 printk("%s", version);
4896 /* fill in some of the fields */
4897 dev->base_addr = ioaddr;
4899 +#if defined(CONFIG_COLDFIRE) || defined(CONFIG_M68EZ328)
4900 +#if defined(CONFIG_NETtel) || defined(CONFIG_eLIA) || defined(CONFIG_DISKtel) || defined(CONFIG_CLEOPATRA)
4902 + . MAC address should be in FLASH, check that it is valid.
4903 + . If good use it, otherwise use the default.
4905 + ep = (unsigned char *) (0xf0006000 + (nr++ * 6));
4906 + if ((ep[0] == 0xff) && (ep[1] == 0xff) && (ep[2] == 0xff) &&
4907 + (ep[3] == 0xff) && (ep[4] == 0xff) && (ep[5] == 0xff))
4908 + ep = (unsigned char *) &smc_defethaddr[0];
4909 + else if ((ep[0] == 0) && (ep[1] == 0) && (ep[2] == 0) &&
4910 + (ep[3] == 0) && (ep[4] == 0) && (ep[5] == 0))
4911 + ep = (unsigned char *) &smc_defethaddr[0];
4913 + ep = (unsigned char *) &smc_defethaddr[0];
4918 . Get the MAC address ( bank 1, regs 4 - 9 )
4920 @@ -881,11 +1070,23 @@
4921 for ( i = 0; i < 6; i += 2 ) {
4924 +#if defined(CONFIG_COLDFIRE) || defined(CONFIG_M68EZ328)
4925 + dev->dev_addr[ i ] = ep[ i ];
4926 + dev->dev_addr[ i + 1 ] = ep[ i + 1 ];
4927 + address = (((word) ep[ i ]) << 8) | ep[ i + 1 ];
4928 + outw( address, ioaddr + ADDR0 + i);
4930 address = inw( ioaddr + ADDR0 + i );
4931 dev->dev_addr[ i + 1] = address >> 8;
4932 - dev->dev_addr[ i ] = address & 0xFF;
4933 + dev->dev_addr[ i ] = address & 0xFF;
4937 +#if defined(CONFIG_COLDFIRE) || defined(CONFIG_M68EZ328)
4938 + /* HACK: to support 2 ethernets when using default address! */
4939 + smc_defethaddr[5]++;
4942 /* get the memory information */
4944 SMC_SELECT_BANK( 0 );
4945 @@ -938,6 +1139,7 @@
4946 . what (s)he is doing. No checking is done!!!!
4949 +#ifndef NO_AUTOPROBE
4950 if ( dev->irq < 2 ) {
4953 @@ -955,6 +1157,13 @@
4958 + if (dev->irq == 0 ) {
4960 + ": Autoprobing IRQs is not supported for this configuration.\n");
4965 /* now, print out the card info, in a short format.. */
4967 @@ -985,14 +1194,23 @@
4971 - retval = request_irq(dev->irq, &smc_interrupt, 0, dev->name, dev);
4973 +#ifdef CONFIG_COLDFIRE
4974 + mcf_autovector(dev->irq);
4975 + retval = request_irq(dev->irq, &smc_interrupt, 0, dev->name, dev);
4976 +#elif defined(CONFIG_M68EZ328) && !defined(CONFIG_CWEZ328) && !defined(CONFIG_CWVZ328)
4977 + retval = request_irq(IRQ_MACHSPEC | dev->irq, &smc_interrupt,
4978 + IRQ_FLG_STD, dev->name, dev);
4979 + if (retval) panic("Unable to attach Lan91C96 intr\n");
4981 + retval = request_irq(dev->irq, &smc_interrupt, 0, dev->name, dev);
4984 printk("%s: unable to get IRQ %d (irqval=%d).\n", dev->name,
4992 dev->open = smc_open;
4993 dev->stop = smc_close;
4994 @@ -1002,6 +1220,9 @@
4995 dev->get_stats = smc_query_statistics;
4996 dev->set_multicast_list = smc_set_multicast_list;
4999 + setup_phy( ioaddr );
5004 @@ -1054,7 +1275,7 @@
5006 static int smc_open(struct net_device *dev)
5008 - int ioaddr = dev->base_addr;
5009 + smcio_t ioaddr = dev->base_addr;
5011 int i; /* used to set hw ethernet address */
5013 @@ -1069,6 +1290,11 @@
5014 /* Select which interface to use */
5016 SMC_SELECT_BANK( 1 );
5017 +#if defined(CONFIG_DISKtel) || defined(CONFIG_SH_KEYWEST)
5018 + /* Setup to use external PHY on smc91c110 */
5019 + outw( inw( ioaddr + CONFIG ) | CFG_NO_WAIT | CFG_MII_SELECT,
5020 + (ioaddr + CONFIG ));
5022 if ( dev->if_port == 1 ) {
5023 outw( inw( ioaddr + CONFIG ) & ~CFG_AUI_SELECT,
5025 @@ -1077,6 +1303,7 @@
5026 outw( inw( ioaddr + CONFIG ) | CFG_AUI_SELECT,
5032 According to Becker, I have to set the hardware address
5033 @@ -1093,6 +1320,18 @@
5036 netif_start_queue(dev);
5038 +#if defined(CONFIG_LEDMAN) && defined(CONFIG_SNAPGEAR)
5040 + * fix the link status LED's
5042 + SMC_SELECT_BANK( 0 );
5043 + ledman_cmd((inw(ioaddr + EPH_STATUS) & ES_LINK_OK) == ES_LINK_OK ?
5044 + LEDMAN_CMD_ON : LEDMAN_CMD_OFF,
5045 + strcmp(dev->name, "eth0") ?
5046 + LEDMAN_LAN2_LINK : LEDMAN_LAN1_LINK);
5052 @@ -1135,19 +1374,23 @@
5053 static irqreturn_t smc_interrupt(int irq, void * dev_id, struct pt_regs * regs)
5055 struct net_device *dev = dev_id;
5056 - int ioaddr = dev->base_addr;
5057 + smcio_t ioaddr = dev->base_addr;
5058 struct smc_local *lp = (struct smc_local *)dev->priv;
5064 +#ifdef CONFIG_LEDMAN
5067 /* state registers */
5074 PRINTK3((CARDNAME": SMC interrupt started \n"));
5076 saved_bank = inw( ioaddr + BANK_SELECT );
5077 @@ -1157,7 +1400,7 @@
5079 mask = inb( ioaddr + INT_MASK );
5080 /* clear all interrupts */
5081 - outb( 0, ioaddr + INT_MASK );
5085 /* set a timeout value, so I don't stay here forever */
5086 @@ -1170,7 +1413,9 @@
5091 +#ifdef CONFIG_LEDMAN
5095 PRINTK3((KERN_WARNING CARDNAME
5096 ": Handling interrupt status %x \n", status ));
5097 @@ -1184,7 +1429,10 @@
5098 PRINTK2((KERN_WARNING CARDNAME
5099 ": TX ERROR handled\n"));
5101 - outb(IM_TX_INT, ioaddr + INTERRUPT );
5102 + SMC_ACK_INT( IM_TX_INT );
5103 +#ifdef CONFIG_LEDMAN
5106 } else if (status & IM_TX_EMPTY_INT ) {
5108 SMC_SELECT_BANK( 0 );
5109 @@ -1200,11 +1448,14 @@
5110 SMC_SELECT_BANK( 2 );
5111 PRINTK2((KERN_WARNING CARDNAME
5112 ": TX_BUFFER_EMPTY handled\n"));
5113 - outb( IM_TX_EMPTY_INT, ioaddr + INTERRUPT );
5114 + SMC_ACK_INT( IM_TX_EMPTY_INT );
5115 mask &= ~IM_TX_EMPTY_INT;
5116 lp->stats.tx_packets += lp->packets_waiting;
5117 + lp->stats.tx_bytes += lp->saved_skb->len;
5118 lp->packets_waiting = 0;
5120 +#ifdef CONFIG_LEDMAN
5123 } else if (status & IM_ALLOC_INT ) {
5124 PRINTK2((KERN_DEBUG CARDNAME
5125 ": Allocation interrupt \n"));
5126 @@ -1220,22 +1471,50 @@
5127 netif_wake_queue(dev);
5129 PRINTK2((CARDNAME": Handoff done successfully.\n"));
5130 +#ifdef CONFIG_LEDMAN
5133 } else if (status & IM_RX_OVRN_INT ) {
5134 lp->stats.rx_errors++;
5135 lp->stats.rx_fifo_errors++;
5136 - outb( IM_RX_OVRN_INT, ioaddr + INTERRUPT );
5137 + SMC_ACK_INT( IM_RX_OVRN_INT );
5138 } else if (status & IM_EPH_INT ) {
5139 +#if defined(CONFIG_LEDMAN) && defined(CONFIG_SNAPGEAR)
5140 + SMC_SELECT_BANK( 0 );
5141 + ledman_cmd((inw(ioaddr + EPH_STATUS) & ES_LINK_OK) == ES_LINK_OK ?
5142 + LEDMAN_CMD_ON : LEDMAN_CMD_OFF,
5143 + strcmp(dev->name, "eth0")?LEDMAN_LAN2_LINK:LEDMAN_LAN1_LINK);
5144 + SMC_SELECT_BANK( 1 );
5146 + outw(inw(ioaddr + CONTROL) & ~CTL_LE_ENABLE, ioaddr + CONTROL);
5147 + outw(inw(ioaddr + CONTROL) | CTL_LE_ENABLE, ioaddr + CONTROL);
5148 + SMC_SELECT_BANK( 2 );
5149 + SMC_ACK_INT( IM_EPH_INT );
5150 + continue; /* do not turn the TX/RX leds on */
5152 PRINTK((CARDNAME ": UNSUPPORTED: EPH INTERRUPT \n"));
5154 } else if (status & IM_ERCV_INT ) {
5155 PRINTK((CARDNAME ": UNSUPPORTED: ERCV INTERRUPT \n"));
5156 - outb( IM_ERCV_INT, ioaddr + INTERRUPT );
5157 + SMC_ACK_INT( IM_ERCV_INT );
5159 +#ifdef CONFIG_LEDMAN
5161 + ledman_cmd(LEDMAN_CMD_SET,
5162 + strcmp(dev->name, "eth0") == 0 ? LEDMAN_LAN1_TX :
5165 + ledman_cmd(LEDMAN_CMD_SET,
5166 + strcmp(dev->name, "eth0") == 0 ? LEDMAN_LAN1_RX :
5170 } while ( timeout -- );
5173 /* restore state register */
5174 SMC_SELECT_BANK( 2 );
5175 - outb( mask, ioaddr + INT_MASK );
5176 + SMC_SET_INT( mask );
5178 PRINTK3(( KERN_WARNING CARDNAME ": MASK is now %x \n", mask ));
5179 outw( saved_pointer, ioaddr + POINTER );
5180 @@ -1261,7 +1540,7 @@
5181 static void smc_rcv(struct net_device *dev)
5183 struct smc_local *lp = (struct smc_local *)dev->priv;
5184 - int ioaddr = dev->base_addr;
5185 + smcio_t ioaddr = dev->base_addr;
5189 @@ -1281,8 +1560,16 @@
5190 outw( PTR_READ | PTR_RCV | PTR_AUTOINC, ioaddr + POINTER );
5192 /* First two words are status and packet_length */
5193 +#ifndef CONFIG_SH_KEYWEST
5194 status = inw( ioaddr + DATA_1 );
5195 packet_length = inw( ioaddr + DATA_1 );
5198 + unsigned int l = inl( ioaddr + DATA_1 );
5199 + status = l & 0xffff;
5200 + packet_length = l >> 16;
5204 packet_length &= 0x07ff; /* mask off top bits */
5206 @@ -1333,9 +1620,17 @@
5207 packet_length >> 2, packet_length & 3 ));
5208 insl(ioaddr + DATA_1 , data, packet_length >> 2 );
5209 /* read the left over bytes */
5210 +#ifndef CONFIG_SH_KEYWEST
5211 insb( ioaddr + DATA_1, data + (packet_length & 0xFFFFFC),
5212 packet_length & 0x3 );
5214 + if (packet_length & 3) {
5215 + union { unsigned int l; char data[4]; } l;
5216 + l.l = inl(ioaddr + DATA_1);
5217 + memcpy(data + (packet_length & ~0x3), l.data, packet_length & 0x3);
5221 PRINTK3((" Reading %d words and %d byte(s) \n",
5222 (packet_length >> 1 ), packet_length & 1 ));
5223 insw(ioaddr + DATA_1 , data, packet_length >> 1);
5224 @@ -1386,7 +1681,7 @@
5225 ************************************************************************/
5226 static void smc_tx( struct net_device * dev )
5228 - int ioaddr = dev->base_addr;
5229 + smcio_t ioaddr = dev->base_addr;
5230 struct smc_local *lp = (struct smc_local *)dev->priv;
5233 @@ -1400,7 +1695,12 @@
5236 /* select this as the packet to read from */
5237 - outb( packet_no, ioaddr + PNR_ARR );
5238 +#if defined(CONFIG_COLDFIRE) || defined(CONFIG_M68EZ328)
5239 + outw( packet_no, ioaddr + PNR_ARR );
5241 + outb( packet_no, ioaddr + PNR_ARR );
5245 /* read the first word from this packet */
5246 outw( PTR_AUTOINC | PTR_READ, ioaddr + POINTER );
5247 @@ -1411,8 +1711,10 @@
5248 lp->stats.tx_errors++;
5249 if ( tx_status & TS_LOSTCAR ) lp->stats.tx_carrier_errors++;
5250 if ( tx_status & TS_LATCOL ) {
5252 printk(KERN_DEBUG CARDNAME
5253 ": Late collision occurred on last xmit.\n");
5255 lp->stats.tx_window_errors++;
5258 @@ -1433,7 +1735,11 @@
5259 /* one less packet waiting for me */
5260 lp->packets_waiting--;
5262 +#if defined(CONFIG_COLDFIRE) || defined(CONFIG_M68EZ328)
5263 + outw( saved_packet, ioaddr + PNR_ARR );
5265 outb( saved_packet, ioaddr + PNR_ARR );
5270 @@ -1451,6 +1757,11 @@
5271 /* clear everything */
5272 smc_shutdown( dev->base_addr );
5274 +#if defined(CONFIG_LEDMAN) && defined(CONFIG_SNAPGEAR)
5275 + ledman_cmd(LEDMAN_CMD_OFF,
5276 + strcmp(dev->name, "eth0")?LEDMAN_LAN2_LINK : LEDMAN_LAN1_LINK);
5279 /* Update the statistics here. */
5282 @@ -1475,7 +1786,7 @@
5284 static void smc_set_multicast_list(struct net_device *dev)
5286 - short ioaddr = dev->base_addr;
5287 + smcio_t ioaddr = dev->base_addr;
5290 if ( dev->flags & IFF_PROMISC )
5291 @@ -1522,6 +1833,12 @@
5296 +static int phy_delay1 = 4;
5297 +static int phy_delay2 = 1;
5298 +static int phy_delay3 = 100;
5303 static struct net_device devSMC9194;
5304 @@ -1537,6 +1854,15 @@
5305 MODULE_PARM_DESC(irq, "SMC 99194 IRQ number");
5306 MODULE_PARM_DESC(ifport, "SMC 99194 interface port (0-default, 1-TP, 2-AUI)");
5309 +MODULE_PARM(phy_delay1, "i");
5310 +MODULE_PARM(phy_delay2, "i");
5311 +MODULE_PARM(phy_delay3, "i");
5312 +MODULE_PARM_DESC(phy_delay1, "Per MII clock delay [4]");
5313 +MODULE_PARM_DESC(phy_delay2, "General delay [1]");
5314 +MODULE_PARM_DESC(phy_delay3, "pre probe delay [100]");
5317 int init_module(void)
5320 @@ -1545,6 +1871,10 @@
5322 CARDNAME": You shouldn't use auto-probing with insmod!\n" );
5325 + printk(CARDNAME ": phy_delays %d %d %d\n", phy_delay1, phy_delay2,
5328 /* copy the parameters from insmod into the device structure */
5329 devSMC9194.base_addr = io;
5330 devSMC9194.irq = irq;
5331 @@ -1558,6 +1888,7 @@
5333 void cleanup_module(void)
5335 + /* No need to check MOD_IN_USE, as sys_delete_module() checks. */
5336 unregister_netdev(&devSMC9194);
5338 free_irq(devSMC9194.irq, &devSMC9194);
5339 @@ -1568,3 +1899,437 @@
5346 +/*-----------------------------------------------------------
5347 + . PHY/MII setup routines
5351 +#define phy_delay(x) ({ int d; for (d = 0; d < 100; d++) udelay((x) * 10); })
5354 + * Ports for talking to the PHY/MII
5357 +#define NV_CONTROL 0x10
5358 +#define MIICTRL 0x30
5359 +#define MIIDATA 0x34
5360 +#define MIICFG 0x38
5362 +#define MIIREAD 0x0001
5363 +#define MIIWRITE 0x0002
5365 +#define MDO 0x01 /* MII Register bits */
5370 +#define OPWrite 0x01
5371 +#define OPRead 0x02
5374 +#define PHY_CR 0 /* PHY Registers and bits */
5375 +#define PHY_CR_Reset 0x8000
5376 +#define PHY_CR_Speed 0x2000
5377 +#define PHY_CR_Duplex 0x0100
5384 + * PHY propietary registers
5387 +#define PHY_NATIONAL_PAR 0x19
5388 +#define PHY_NATIONAL_PAR_DUPLEX 0x0080
5389 +#define PHY_NATIONAL_PAR_SPEED_10 0x0040
5391 +#define PHY_TDK_DIAG 0x12
5392 +#define PHY_TDK_DIAG_DUPLEX 0x0800
5393 +#define PHY_TDK_DIAG_RATE 0x0400
5395 +#define PHY_QSI_BASETX 0x1F
5396 +#define PHY_QSI_BASETX_OPMODE_MASK 0x001c
5397 +#define PHY_QSI_BASETX_OPMODE_10HD (2<<0x1)
5398 +#define PHY_QSI_BASETX_OPMODE_100HD (2<<0x2)
5399 +#define PHY_QSI_BASETX_OPMODE_10FD (2<<0x5)
5400 +#define PHY_QSI_BASETX_OPMODE_100FD (2<<0x6)
5402 +#define PHY_SEEQ_STATUS_OUTPUT 0x12
5403 +#define PHY_SEEQ_SPD_DET 0x80
5404 +#define PHY_SEEQ_DPLX_DET 0x40
5406 +#define PHY_OUI_QSI 0x006051
5407 +#define PHY_OUI_TDK 0x00C039
5408 +#define PHY_OUI_MITELSMSC 0x00A087
5409 +#define PHY_OUI_NATIONAL 0x080017
5410 +#define PHY_OUI_SEEQSMSC 0x0005BE
5412 +#define NWAY_TIMEOUT 10
5414 +#define MAC_IS_FEAST() (1)
5415 +#define MAC_IS_EPIC() (0)
5418 +clkmdio(smcio_t ioaddr, unsigned int MGMTData)
5420 + outw(MGMTData, ioaddr + MGMT);
5421 + udelay(phy_delay1);
5422 + outw(MGMTData | MCLK, ioaddr + MGMT);
5423 + udelay(phy_delay1);
5430 + unsigned char PHYAdd,
5431 + unsigned char RegAdd,
5432 + unsigned char OPCode,
5438 + // Filter unused bits from input variables.
5444 + if (MAC_IS_FEAST()) {
5445 + MGMTval = inw(ioaddr + MGMT) & (MALL ^ 0xFFFF);
5447 + // Output Preamble (32 '1's)
5449 + for (i = 0; i < 32; i++)
5450 + clkmdio(ioaddr, MGMTval | MDOE | MDO);
5452 + // Output Start of Frame ('01')
5454 + for (i = 0; i < 2; i++)
5455 + clkmdio(ioaddr, MGMTval | MDOE | i);
5457 + // Output OPCode ('01' for write or '10' for Read)
5459 + for (i = 1; i >= 0; i--)
5460 + clkmdio(ioaddr, MGMTval | MDOE | ((OPCode>>i) & 0x01) );
5462 + // Output PHY Address
5464 + for (i = 4; i >= 0; i--)
5465 + clkmdio(ioaddr, MGMTval | MDOE | ((PHYAdd>>i) & 0x01) );
5467 + // Output Register Address
5469 + for (i = 4; i >= 0; i--)
5470 + clkmdio(ioaddr, MGMTval | MDOE | ((RegAdd>>i) & 0x01) );
5472 + if (OPCode == OPRead) {
5475 + // Implement Turnaround ('Z0')
5477 + clkmdio(ioaddr, MGMTval);
5478 + // clkmdio(ioaddr, MGMTval | MDOE);
5484 + for (i = 15; i >= 0; i--) {
5485 + clkmdio(ioaddr, MGMTval);
5486 + wData |= (((inw(ioaddr + MGMT) & MDI) >> 1) << i);
5491 + clkmdio(ioaddr, MGMTval);
5495 + // Write Operation
5497 + // Implement Turnaround ('10')
5499 + for (i = 1; i >= 0; i--)
5500 + clkmdio(ioaddr, MGMTval | MDOE | ((2>>i) & 0x01));
5504 + for (i = 15; i >= 0; i--)
5505 + clkmdio(ioaddr, MGMTval | MDOE | ((wData>>i) & 0x01));
5509 + clkmdio(ioaddr, MGMTval);
5515 + if (MAC_IS_EPIC()) {
5516 + if (OPCode == OPRead) {
5518 + outw((((unsigned)PHYAdd)<<9) | (((unsigned)RegAdd)<<4) | MIIREAD,
5519 + ioaddr + MIICTRL);
5520 + phy_delay(phy_delay2);
5521 + wData = inw(MIIDATA);
5524 + // Write Operation
5525 + outw(wData, ioaddr + MIIDATA);
5526 + outw((((unsigned)PHYAdd)<<9) | (((unsigned)RegAdd)<<4) | MIIWRITE,
5527 + ioaddr + MIICTRL);
5528 + phy_delay(phy_delay2);
5538 +static unsigned char
5541 + unsigned long *OUI,
5542 + unsigned char *Model,
5543 + unsigned char *Revision)
5545 + unsigned int PhyId1, PhyId2;
5546 + unsigned char PhyAdd=0xff;
5549 + for (Count=31; Count >= 0; Count--) {
5550 + PhyId1 = PHYAccess(ioaddr, Count, PHY_ID1, OPRead, 0);
5551 + PhyId1 = PHYAccess(ioaddr, Count, PHY_ID1, OPRead, 0);
5552 + PhyId2 = PHYAccess(ioaddr, Count, PHY_ID2, OPRead, 0);
5553 + PhyId2 = PHYAccess(ioaddr, Count, PHY_ID2, OPRead, 0);
5555 + if (PhyId1 > 0x0000 && PhyId1 < 0xffff && PhyId2 > 0x0000 &&
5556 + PhyId2 < 0xffff && PhyId1 != 0x8000 && PhyId2 != 0x8000) {
5557 + PhyAdd = (unsigned char) Count;
5560 + phy_delay(phy_delay2);
5563 + *OUI = (((unsigned long) PhyId1) << 6) | ((PhyId2 & 0xfc00) >> 10);
5564 + *Model = (unsigned char) ((PhyId2 & 0x03f0) >> 4);
5565 + *Revision = (unsigned char) (PhyId2 & 0x000f);
5572 +setup_phy(smcio_t ioaddr)
5574 + int duplex = 0; /* 0 = Half, !0 = Full */
5575 + int speed = 0; /* 0 = 10Mbps, !0 = 100Mbps */
5576 + char *report = "";
5577 + unsigned long OUI;
5578 + unsigned char Model, Revision;
5580 + unsigned int i, PHYConfig, PHYConfig2, data;
5581 + unsigned char PHYAdd, ositech = 0;
5583 + printk("SMCPHY: ");
5588 + //Setting the AUI Select Bit for 91C110 PCMCIA Design. 11/23/99 PG
5590 + SMC_SELECT_BANK( 1 );
5591 + data = inw(ioaddr + BANK_SELECT);
5592 + outw(data | 0x0100, ioaddr);
5595 + if (MAC_IS_FEAST())
5596 + SMC_SELECT_BANK ( 3 );
5598 + PHYAdd = DetectPHY(ioaddr, &OUI, &Model, &Revision);
5600 + if (PHYAdd > 31) {
5601 + printk("UNRECOVERABLE ERROR: PHY is not present or not supported\n");
5605 + //Setup NV_CONTROL for the cardbus card.
5606 + if (OUI == PHY_OUI_TDK)
5607 + outw(0x7c03, ioaddr + NV_CONTROL);
5609 + // Save Register 0.
5611 + if (OUI == PHY_OUI_TDK)
5612 + PHYAccess(ioaddr, PHYAdd, PHY_CR, OPRead, 0);
5613 + PHYConfig = PHYAccess(ioaddr, PHYAdd,PHY_CR,OPRead,0);
5615 + if (OUI == PHY_OUI_TDK) {
5616 + outw(0x0012, ioaddr + MIICFG); /* Set ENABLE_694 */
5617 + /* if using EPIC, Hardware Reset the PHY from the MAC */
5618 + outw(inw(ioaddr + CONTROL) | 0x4000, ioaddr + CONTROL);
5619 + phy_delay(phy_delay2);
5620 + outw(inw(ioaddr + CONTROL) & (~0x4000), ioaddr + CONTROL);
5621 + phy_delay(phy_delay2);
5625 + PHYAccess(ioaddr, PHYAdd, PHY_CR, OPWrite, PHY_CR_Reset);
5626 + if (OUI == PHY_OUI_TDK)
5627 + PHYAccess(ioaddr, PHYAdd, PHY_CR, OPWrite, PHY_CR_Reset);
5629 + for (i = 0; i < 500; i++) {
5630 + if (OUI == PHY_OUI_TDK)
5631 + PHYAccess(ioaddr, PHYAdd, PHY_CR, OPRead, 0);
5633 + if (PHYAccess(ioaddr, PHYAdd, PHY_CR, OPRead, 0) & PHY_CR_Reset)
5634 + phy_delay(phy_delay2);
5640 + printk("UNRECOVERABLE ERROR: Could not reset PHY\n");
5644 + /* Write selected configuration to the PHY and verify it by reading back */
5645 + /* Set Advertising Register for all 10/100 and Half/Full combinations */
5647 + if (OUI == PHY_OUI_TDK)
5648 + PHYConfig = PHYAccess(ioaddr, PHYAdd, 4, OPRead, 0);
5649 + PHYConfig = PHYAccess(ioaddr, PHYAdd, 4, OPRead, 0);
5650 + PHYConfig |= 0x01e0;
5651 + PHYAccess(ioaddr, PHYAdd, 4, OPWrite, PHYConfig);
5652 + if (OUI == PHY_OUI_TDK)
5653 + PHYAccess(ioaddr, PHYAdd, 4, OPWrite, PHYConfig);
5657 + /* National PHY requires clear before set 1 enable. */
5658 + PHYAccess(ioaddr, PHYAdd, 0, OPWrite, 0x0000);
5659 + PHYAccess(ioaddr, PHYAdd, 0, OPWrite, 0x1200);
5660 + if (OUI == PHY_OUI_TDK)
5661 + PHYAccess(ioaddr, PHYAdd, 0, OPWrite, 0x1200);
5663 + /* Wait for completion */
5664 + for (i = 0; i < NWAY_TIMEOUT * 10; i++) {
5665 + printk("%c\b", "|/-\\"[i&3]);
5667 + phy_delay(phy_delay3);
5669 + PHYConfig = PHYAccess(ioaddr, PHYAdd, 1, OPRead, 0);
5670 + PHYConfig2 = PHYAccess(ioaddr, PHYAdd, 1, OPRead, 0);
5672 + if (PHYConfig != PHYConfig2) /* Value is not stable */
5674 + if (PHYConfig & 0x0010) /* Remote Fault */
5676 + if ((PHYConfig == 0x0000) || (PHYConfig == 0xffff)) /* invalid value */
5678 + if (PHYConfig & 0x0020)
5682 + /* Now read the results of the NWAY. */
5684 + if (OUI == PHY_OUI_TDK)
5685 + PHYConfig = PHYAccess(ioaddr, PHYAdd, 5, OPRead, 0);
5686 + PHYConfig = PHYAccess(ioaddr, PHYAdd, 5, OPRead, 0);
5688 + if (PHYConfig != 0) {
5689 + /* Got real NWAY information here */
5691 + speed = (PHYConfig & 0x0180);
5692 + duplex = (PHYConfig & 0x0140);
5695 + * ANLPA was 0 so NWAY did not complete or is not reported fine.
5696 + * Get the info from propietary regs or from the control register.
5698 + report = "Prop."; /* Proprietary Status */
5701 + case PHY_OUI_NATIONAL:
5702 + PHYConfig = PHYAccess(ioaddr, PHYAdd, PHY_NATIONAL_PAR, OPRead, 0);
5703 + duplex = (PHYConfig & PHY_NATIONAL_PAR_DUPLEX);
5704 + speed = ! (PHYConfig & PHY_NATIONAL_PAR_SPEED_10);
5708 + PHYConfig = PHYAccess(ioaddr, PHYAdd, PHY_TDK_DIAG, OPRead, 0);
5709 + PHYConfig = PHYAccess(ioaddr, PHYAdd, PHY_TDK_DIAG, OPRead, 0);
5710 + speed = ((Revision < 7) && ((PHYConfig & 0x300) == 0x300)) ||
5711 + ((Revision >= 7) && (PHYConfig & PHY_TDK_DIAG_RATE));
5712 + duplex = ((Revision >= 7) && (PHYConfig & PHY_TDK_DIAG_DUPLEX));
5716 + PHYConfig = PHYAccess(ioaddr, PHYAdd, PHY_QSI_BASETX, OPRead, 0);
5717 + PHYConfig &= PHY_QSI_BASETX_OPMODE_MASK;
5718 + duplex = (PHYConfig & PHY_QSI_BASETX_OPMODE_10FD) ||
5719 + (PHYConfig & PHY_QSI_BASETX_OPMODE_100FD);
5720 + speed = (PHYConfig & PHY_QSI_BASETX_OPMODE_100HD) ||
5721 + (PHYConfig & PHY_QSI_BASETX_OPMODE_100FD);
5724 + case PHY_OUI_SEEQSMSC:
5725 + PHYConfig=PHYAccess(ioaddr,PHYAdd,PHY_SEEQ_STATUS_OUTPUT,OPRead,0);
5726 + duplex = (PHYConfig & PHY_SEEQ_DPLX_DET);
5727 + speed = (PHYConfig & PHY_SEEQ_SPD_DET);
5731 + report = "Command";
5732 + PHYConfig = PHYAccess(ioaddr, PHYAdd, 0, OPRead, 0);
5733 + speed = (PHYConfig & 0x2000);
5734 + duplex = (PHYConfig & 0x0100);
5739 + /* Do we need to adjust the Carrier sense on full duplex FEAST issue ? */
5741 + if (duplex && MAC_IS_FEAST() && (OUI == PHY_OUI_MITELSMSC))
5742 + PHYAccess(ioaddr, PHYAdd, 0x18, OPWrite,
5743 + 0x0020 | PHYAccess(ioaddr, PHYAdd, 0x18, OPRead, 0));
5745 + /* Display what we learned */
5747 + printk(" %s-duplex %d Mbps ", duplex ? "Full" : "Half", speed ? 100 : 10);
5749 + if (MAC_IS_FEAST())
5751 + if (MAC_IS_EPIC())
5755 + case PHY_OUI_QSI: printk("QSI"); break;
5756 + case PHY_OUI_TDK: printk("TDK"); break;
5757 + case PHY_OUI_MITELSMSC: printk("MITEL/SMSC180"); break;
5758 + case PHY_OUI_NATIONAL: printk("NATIONAL"); break;
5759 + case PHY_OUI_SEEQSMSC: printk("SEEQ/SMSC183"); break;
5760 + default: printk("%06lX(UNKNOWN)",OUI); break;
5763 + printk(" Model=%02X Rev=%02X ", Model, Revision);
5765 + printk("Addr=%02X ", PHYAdd);
5766 + printk("Conf=%s ", report);
5768 + if (i == NWAY_TIMEOUT)
5769 + printk("TIMEOUT!\n");
5771 + printk("Done.\n");
5775 +/*----------------------------------------------------------- */
5776 +#endif /* PHY_SETUP */
5777 diff -Naur linux-2.6.0-test8/drivers/net/smc9194.h linux-2.6.0-test8-uc0/drivers/net/smc9194.h
5778 --- linux-2.6.0-test8/drivers/net/smc9194.h 2003-10-20 09:10:30.000000000 +1000
5779 +++ linux-2.6.0-test8-uc0/drivers/net/smc9194.h 2003-10-20 09:12:25.833264184 +1000
5783 #define CFG_AUI_SELECT 0x100
5784 +#define CFG_NO_WAIT 0x1000
5785 +#define CFG_MII_SELECT 0x8000
5789 @@ -208,6 +210,44 @@
5790 inw( ioaddr + RCR );\
5791 inw( ioaddr + RCR ); }
5793 +#if defined(CONFIG_COLDFIRE) || defined(CONFIG_M68EZ328)
5795 +/* this enables an interrupt in the interrupt mask register */
5796 +#define SMC_ENABLE_INT(x) {\
5797 + unsigned char mask;\
5798 + SMC_SELECT_BANK(2);\
5799 + mask = inb( ioaddr + INT_MASK );\
5801 + outw( mask << 8, ioaddr + INTERRUPT ); \
5804 +/* this disables an interrupt from the interrupt mask register */
5806 +#define SMC_DISABLE_INT(x) {\
5807 + unsigned char mask;\
5808 + SMC_SELECT_BANK(2);\
5809 + mask = inb( ioaddr + INT_MASK );\
5811 + outw( mask << 8, ioaddr + INTERRUPT ); \
5814 +/* set the interrupt mask register */
5815 +#define SMC_SET_INT(x) {\
5816 + SMC_SELECT_BANK(2);\
5817 + outw( ((unsigned short) (x)) << 8, ioaddr + INTERRUPT );\
5820 +/* acknowledge an interrupt */
5821 +#define SMC_ACK_INT(x) {\
5822 + unsigned short val;\
5823 + /* assume BANK 2 selected */\
5824 + val = inb( ioaddr + INT_MASK );\
5825 + val = (val << 8) | (x);\
5826 + outw( val, ioaddr + INTERRUPT );\
5831 /* this enables an interrupt in the interrupt mask register */
5832 #define SMC_ENABLE_INT(x) {\
5833 unsigned char mask;\
5834 @@ -227,6 +267,17 @@
5835 outb( mask, ioaddr + INT_MASK ); \
5838 +/* set the interrupt mask register */
5839 +#define SMC_SET_INT(x) {\
5840 + SMC_SELECT_BANK(2);\
5841 + outb( (x), ioaddr + INT_MASK );\
5844 +/* acknowledge an interrupt */
5845 +#define SMC_ACK_INT(x) outb( (x), ioaddr + INTERRUPT )
5849 /*----------------------------------------------------------------------
5850 . Define the interrupts that I want to receive from the card
5852 diff -Naur linux-2.6.0-test8/drivers/serial/68328serial.c linux-2.6.0-test8-uc0/drivers/serial/68328serial.c
5853 --- linux-2.6.0-test8/drivers/serial/68328serial.c 2003-10-20 09:10:41.000000000 +1000
5854 +++ linux-2.6.0-test8-uc0/drivers/serial/68328serial.c 2003-10-20 09:12:40.942967160 +1000
5856 * Copyright (C) 1998 Kenneth Albanowski <kjahds@kjahds.com>
5857 * Copyright (C) 1998, 1999 D. Jeff Dionne <jeff@uclinux.org>
5858 * Copyright (C) 1999 Vladimir Gurevich <vgurevic@cisco.com>
5859 - * Copyright (C) 2002 David McCullough <davidm@snapgear.com>
5860 + * Copyright (C) 2002-2003 David McCullough <davidm@snapgear.com>
5861 * Copyright (C) 2002 Greg Ungerer <gerg@snapgear.com>
5863 * VZ Support/Fixes Evan Stawnyczy <e@lineo.ca>
5867 static struct m68k_serial m68k_soft[NR_PORTS];
5868 -struct m86k_serial *IRQ_ports[NR_IRQS];
5869 +struct m68k_serial *IRQ_ports[NR_IRQS];
5871 static unsigned int uart_irqs[NR_PORTS] = UART_IRQ_DEFNS;
5873 /* multiple ports are contiguous in memory */
5874 -m68328_uart *uart_addr = USTCNT_ADDR;
5875 +m68328_uart *uart_addr = (m68328_uart *)USTCNT_ADDR;
5877 struct tty_struct m68k_ttys;
5878 struct m68k_serial *m68k_consinfo = 0;
5881 * This is the serial driver's generic interrupt routine
5883 -void rs_interrupt(int irq, void *dev_id, struct pt_regs * regs)
5884 +irqreturn_t rs_interrupt(int irq, void *dev_id, struct pt_regs * regs)
5886 struct m68k_serial * info;
5890 info = IRQ_ports[irq];
5895 uart = &uart_addr[info->line];
5899 receive_chars(info, regs, rx);
5902 + return IRQ_HANDLED;
5905 static void do_softint(void *private)
5910 - c = min(count, min(SERIAL_XMIT_SIZE - info->xmit_cnt - 1,
5911 + c = min_t(int, count, min(SERIAL_XMIT_SIZE - info->xmit_cnt - 1,
5912 SERIAL_XMIT_SIZE - info->xmit_head));
5918 copy_from_user(tmp_buf, buf, c);
5919 - c = min(c, min(SERIAL_XMIT_SIZE - info->xmit_cnt - 1,
5920 + c = min_t(int, c, min(SERIAL_XMIT_SIZE - info->xmit_cnt - 1,
5921 SERIAL_XMIT_SIZE - info->xmit_head));
5922 memcpy(info->xmit_buf + info->xmit_head, tmp_buf, c);
5924 @@ -1056,11 +1056,10 @@
5925 send_break(info, arg ? arg*(HZ/10) : HZ/4);
5928 - error = verify_area(VERIFY_WRITE, (void *) arg,sizeof(long));
5929 + error = put_user(C_CLOCAL(tty) ? 1 : 0,
5930 + (unsigned long *) arg);
5933 - put_user(C_CLOCAL(tty) ? 1 : 0,
5934 - (unsigned long *) arg);
5937 get_user(arg, (unsigned long *) arg);
5938 diff -Naur linux-2.6.0-test8/drivers/serial/mcfserial.c linux-2.6.0-test8-uc0/drivers/serial/mcfserial.c
5939 --- linux-2.6.0-test8/drivers/serial/mcfserial.c 2003-10-20 09:10:41.000000000 +1000
5940 +++ linux-2.6.0-test8-uc0/drivers/serial/mcfserial.c 2003-10-20 09:12:41.033953328 +1000
5942 * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
5943 * Copyright (C) 1998 TSHG
5944 * Copyright (c) 1999 Rt-Control Inc. <jeff@uclinux.org>
5947 + * 08/07/2003 Daniele Bellucci <bellucda@tiscali.it>
5948 + * some cleanups in mcfrs_write.
5952 #include <linux/module.h>
5954 #include <linux/ledman.h>
5956 #include <linux/console.h>
5957 -#include <linux/version.h>
5958 #include <linux/init.h>
5962 * Forware declarations...
5964 static void mcfrs_change_speed(struct mcf_serial *info);
5965 +static void mcfrs_wait_until_sent(struct tty_struct *tty, int timeout);
5968 static inline int serial_paranoia_check(struct mcf_serial *info,
5970 unsigned long flags;
5971 unsigned char mr1, mr2;
5973 +#ifdef CONFIG_M5272
5974 + unsigned int fraction;
5977 if (!info->tty || !info->tty->termios)
5979 @@ -626,7 +634,20 @@
5980 mcfrs_setsignals(info, 0, -1);
5984 + /* compute the baudrate clock */
5985 +#ifdef CONFIG_M5272
5987 + * For the MCF5272, also compute the baudrate fraction.
5989 + baudclk = (MCF_BUSCLK / mcfrs_baud_table[i]) / 32;
5990 + fraction = MCF_BUSCLK - (baudclk * 32 * mcfrs_baud_table[i]);
5992 + fraction /= (32 * mcfrs_baud_table[i]);
5994 baudclk = ((MCF_BUSCLK / mcfrs_baud_table[i]) + 16) / 32;
5997 info->baud = mcfrs_baud_table[i];
5999 mr1 = MCFUART_MR1_RXIRQRDY | MCFUART_MR1_RXERRCHAR;
6001 uartp[MCFUART_UMR] = mr2;
6002 uartp[MCFUART_UBG1] = (baudclk & 0xff00) >> 8; /* set msb byte */
6003 uartp[MCFUART_UBG2] = (baudclk & 0xff); /* set lsb byte */
6004 +#ifdef CONFIG_M5272
6005 + uartp[MCFUART_UFPD] = (fraction & 0xf); /* set fraction */
6007 uartp[MCFUART_UCSR] = MCFUART_UCSR_RXCLKTIMER | MCFUART_UCSR_TXCLKTIMER;
6008 uartp[MCFUART_UCR] = MCFUART_UCR_RXENABLE | MCFUART_UCR_TXENABLE;
6009 mcfrs_setsignals(info, 1, -1);
6010 @@ -742,24 +766,26 @@
6011 local_irq_disable();
6012 c = min(count, (int) min(((int)SERIAL_XMIT_SIZE) - info->xmit_cnt - 1,
6013 ((int)SERIAL_XMIT_SIZE) - info->xmit_head));
6014 + local_irq_restore(flags);
6017 - local_irq_restore(flags);
6023 down(&mcfrs_tmp_buf_sem);
6024 - copy_from_user(mcfrs_tmp_buf, buf, c);
6025 - local_irq_restore(flags);
6026 - local_irq_disable();
6027 + if (copy_from_user(mcfrs_tmp_buf, buf, c))
6030 + local_irq_disable();
6031 c = min(c, (int) min(((int)SERIAL_XMIT_SIZE) - info->xmit_cnt - 1,
6032 ((int)SERIAL_XMIT_SIZE) - info->xmit_head));
6033 + local_irq_restore(flags);
6034 memcpy(info->xmit_buf + info->xmit_head, mcfrs_tmp_buf, c);
6035 up(&mcfrs_tmp_buf_sem);
6037 memcpy(info->xmit_buf + info->xmit_head, buf, c);
6039 + local_irq_disable();
6040 info->xmit_head = (info->xmit_head + c) & (SERIAL_XMIT_SIZE-1);
6041 info->xmit_cnt += c;
6042 local_irq_restore(flags);
6043 @@ -1020,11 +1046,10 @@
6044 send_break(info, arg ? arg*(HZ/10) : HZ/4);
6047 - error = verify_area(VERIFY_WRITE, (void *) arg,sizeof(long));
6048 + error = put_user(C_CLOCAL(tty) ? 1 : 0,
6049 + (unsigned long *) arg);
6052 - put_user(C_CLOCAL(tty) ? 1 : 0,
6053 - (unsigned long *) arg);
6056 get_user(arg, (unsigned long *) arg);
6057 @@ -1051,48 +1076,37 @@
6058 return get_lsr_info(info, (unsigned int *) arg);
6060 case TIOCSERGSTRUCT:
6061 - error = verify_area(VERIFY_WRITE, (void *) arg,
6062 - sizeof(struct mcf_serial));
6065 - copy_to_user((struct mcf_serial *) arg,
6066 + error = copy_to_user((struct mcf_serial *) arg,
6067 info, sizeof(struct mcf_serial));
6073 - if ((error = verify_area(VERIFY_WRITE, (void *) arg,
6074 - sizeof(unsigned int))))
6076 val = mcfrs_getsignals(info);
6077 - put_user(val, (unsigned int *) arg);
6078 + if ((error = put_user(val, (unsigned int *) arg)))
6083 - if ((error = verify_area(VERIFY_WRITE, (void *) arg,
6084 - sizeof(unsigned int))))
6087 - get_user(val, (unsigned int *) arg);
6088 + if ((error = get_user(val, (unsigned int *) arg)))
6090 rts = (val & TIOCM_RTS) ? 1 : -1;
6091 dtr = (val & TIOCM_DTR) ? 1 : -1;
6092 mcfrs_setsignals(info, dtr, rts);
6096 - if ((error = verify_area(VERIFY_WRITE, (void *) arg,
6097 - sizeof(unsigned int))))
6099 - get_user(val, (unsigned int *) arg);
6100 + if ((error = get_user(val, (unsigned int *) arg)))
6102 rts = (val & TIOCM_RTS) ? 0 : -1;
6103 dtr = (val & TIOCM_DTR) ? 0 : -1;
6104 mcfrs_setsignals(info, dtr, rts);
6108 - if ((error = verify_area(VERIFY_WRITE, (void *) arg,
6109 - sizeof(unsigned int))))
6111 - get_user(val, (unsigned int *) arg);
6112 + if ((error = get_user(val, (unsigned int *) arg)))
6114 rts = (val & TIOCM_RTS) ? 1 : 0;
6115 dtr = (val & TIOCM_DTR) ? 1 : 0;
6116 mcfrs_setsignals(info, dtr, rts);
6117 @@ -1239,6 +1253,76 @@
6121 + * mcfrs_wait_until_sent() --- wait until the transmitter is empty
6124 +mcfrs_wait_until_sent(struct tty_struct *tty, int timeout)
6126 +#ifdef CONFIG_M5272
6127 +#define MCF5272_FIFO_SIZE 25 /* fifo size + shift reg */
6129 + struct mcf_serial * info = (struct mcf_serial *)tty->driver_data;
6130 + volatile unsigned char *uartp;
6131 + unsigned long orig_jiffies, fifo_time, char_time, fifo_cnt;
6133 + if (serial_paranoia_check(info, tty->name, "mcfrs_wait_until_sent"))
6136 + orig_jiffies = jiffies;
6139 + * Set the check interval to be 1/5 of the approximate time
6140 + * to send the entire fifo, and make it at least 1. The check
6141 + * interval should also be less than the timeout.
6143 + * Note: we have to use pretty tight timings here to satisfy
6146 + fifo_time = (MCF5272_FIFO_SIZE * HZ * 10) / info->baud;
6147 + char_time = fifo_time / 5;
6148 + if (char_time == 0)
6150 + if (timeout && timeout < char_time)
6151 + char_time = timeout;
6154 + * Clamp the timeout period at 2 * the time to empty the
6155 + * fifo. Just to be safe, set the minimum at .5 seconds.
6158 + if (fifo_time < (HZ/2))
6160 + if (!timeout || timeout > fifo_time)
6161 + timeout = fifo_time;
6164 + * Account for the number of bytes in the UART
6165 + * transmitter FIFO plus any byte being shifted out.
6167 + uartp = (volatile unsigned char *) info->addr;
6169 + fifo_cnt = (uartp[MCFUART_UTF] & MCFUART_UTF_TXB);
6170 + if ((uartp[MCFUART_USR] & (MCFUART_USR_TXREADY|
6171 + MCFUART_USR_TXEMPTY)) ==
6172 + MCFUART_USR_TXREADY)
6174 + if (fifo_cnt == 0)
6176 + set_current_state(TASK_INTERRUPTIBLE);
6177 + schedule_timeout(char_time);
6178 + if (signal_pending(current))
6180 + if (timeout && time_after(jiffies, orig_jiffies + timeout))
6185 + * For the other coldfire models, assume all data has been sent
6191 * mcfrs_hangup() --- called by tty_hangup() when a hangup is signaled.
6193 void mcfrs_hangup(struct tty_struct *tty)
6194 @@ -1563,6 +1647,7 @@
6195 .start = mcfrs_start,
6196 .hangup = mcfrs_hangup,
6197 .read_proc = mcfrs_readproc,
6198 + .wait_until_sent = mcfrs_wait_until_sent,
6201 /* mcfrs_init inits the driver */
6202 @@ -1589,7 +1674,9 @@
6203 show_serial_version();
6205 /* Initialize the tty_driver structure */
6206 + mcfrs_serial_driver->owner = THIS_MODULE;
6207 mcfrs_serial_driver->name = "ttyS";
6208 + mcfrs_serial_driver->devfs_name = "ttys/";
6209 mcfrs_serial_driver->driver_name = "serial";
6210 mcfrs_serial_driver->major = TTY_MAJOR;
6211 mcfrs_serial_driver->minor_start = 64;
6212 diff -Naur linux-2.6.0-test8/fs/binfmt_flat.c linux-2.6.0-test8-uc0/fs/binfmt_flat.c
6213 --- linux-2.6.0-test8/fs/binfmt_flat.c 2003-10-20 09:10:54.989074600 +1000
6214 +++ linux-2.6.0-test8-uc0/fs/binfmt_flat.c 2003-10-20 09:12:45.018347608 +1000
6222 DBG_FLT("decompress_exec(offset=%x,buf=%x,len=%x)\n",(int)offset, (int)dst, (int)len);
6225 buf = kmalloc(LBUFSIZE, GFP_KERNEL);
6227 DBG_FLT("binfmt_flat: no memory for read buffer\n");
6233 /* Read in first chunk of data and parse gzip header. */
6234 @@ -203,28 +204,30 @@
6235 strm.avail_in = ret;
6238 + retval = -ENOEXEC;
6240 /* Check minimum size -- gzip header */
6242 DBG_FLT("binfmt_flat: file too small?\n");
6244 + goto out_free_buf;
6247 /* Check gzip magic number */
6248 if ((buf[0] != 037) || ((buf[1] != 0213) && (buf[1] != 0236))) {
6249 DBG_FLT("binfmt_flat: unknown compression magic?\n");
6251 + goto out_free_buf;
6254 /* Check gzip method */
6256 DBG_FLT("binfmt_flat: unknown compression method?\n");
6258 + goto out_free_buf;
6260 /* Check gzip flags */
6261 if ((buf[3] & ENCRYPTED) || (buf[3] & CONTINUATION) ||
6262 (buf[3] & RESERVED)) {
6263 DBG_FLT("binfmt_flat: unknown flags?\n");
6265 + goto out_free_buf;
6270 ret += 2 + buf[10] + (buf[11] << 8);
6271 if (unlikely(LBUFSIZE == ret)) {
6272 DBG_FLT("binfmt_flat: buffer overflow (EXTRA)?\n");
6274 + goto out_free_buf;
6277 if (buf[3] & ORIG_NAME) {
6280 if (unlikely(LBUFSIZE == ret)) {
6281 DBG_FLT("binfmt_flat: buffer overflow (ORIG_NAME)?\n");
6283 + goto out_free_buf;
6286 if (buf[3] & COMMENT) {
6289 if (unlikely(LBUFSIZE == ret)) {
6290 DBG_FLT("binfmt_flat: buffer overflow (COMMENT)?\n");
6292 + goto out_free_buf;
6298 if (zlib_inflateInit2(&strm, -MAX_WBITS) != Z_OK) {
6299 DBG_FLT("binfmt_flat: zlib init failed?\n");
6301 + goto out_free_buf;
6304 while ((ret = zlib_inflate(&strm, Z_NO_FLUSH)) == Z_OK) {
6305 @@ -280,13 +283,17 @@
6307 DBG_FLT("binfmt_flat: decompression failed (%d), %s\n",
6310 + goto out_free_buf;
6313 zlib_inflateEnd(&strm);
6318 kfree(strm.workspace);
6324 #endif /* CONFIG_BINFMT_ZFLAT */
6325 diff -Naur linux-2.6.0-test8/fs/Kconfig.binfmt linux-2.6.0-test8-uc0/fs/Kconfig.binfmt
6326 --- linux-2.6.0-test8/fs/Kconfig.binfmt 2003-10-20 09:10:57.047761632 +1000
6327 +++ linux-2.6.0-test8-uc0/fs/Kconfig.binfmt 2003-10-20 09:12:45.006349432 +1000
6330 Support FLAT format compressed binaries
6332 +config BINFMT_SHARED_FLAT
6333 + bool "Enable shared FLAT support"
6334 + depends on BINFMT_FLAT
6336 + Support FLAT shared libraries
6339 tristate "Kernel support for a.out and ECOFF binaries"
6340 depends on (X86 && !X86_64) || ALPHA || ARM || M68K || MIPS || SPARC
6341 diff -Naur linux-2.6.0-test8/fs/proc/task_nommu.c linux-2.6.0-test8-uc0/fs/proc/task_nommu.c
6342 --- linux-2.6.0-test8/fs/proc/task_nommu.c 2003-10-20 09:10:56.398860280 +1000
6343 +++ linux-2.6.0-test8-uc0/fs/proc/task_nommu.c 2003-10-20 09:12:50.002589888 +1000
6346 #include <linux/mm.h>
6347 #include <linux/file.h>
6348 +#include <linux/seq_file.h>
6351 * Logic: we've got two memory sums for each process, "shared", and
6357 - * Albert D. Cahalan suggested to fake entries for the traditional
6358 - * sections here. This might be worth investigating.
6360 -ssize_t proc_pid_read_maps(struct task_struct *task, struct file *file,
6361 - char *buf, size_t count, loff_t *ppos)
6362 +static int show_map(struct seq_file *m, void *v)
6367 +static void *m_start(struct seq_file *m, loff_t *pos)
6372 +static void m_stop(struct seq_file *m, void *v)
6376 +static void *m_next(struct seq_file *m, void *v, loff_t *pos)
6381 +struct seq_operations proc_pid_maps_op = {
6387 diff -Naur linux-2.6.0-test8/include/asm-m68knommu/bitops.h linux-2.6.0-test8-uc0/include/asm-m68knommu/bitops.h
6388 --- linux-2.6.0-test8/include/asm-m68knommu/bitops.h 2003-10-20 09:11:27.864076840 +1000
6389 +++ linux-2.6.0-test8-uc0/include/asm-m68knommu/bitops.h 2003-10-20 09:13:01.807795224 +1000
6394 - * fls: find last bit set.
6396 -#define fls(x) generic_fls(x)
6400 * Every architecture must define this function. It's the fastest
6401 * way of searching a 140-bit bitmap where the first 100 bits are
6402 * unlikely to be set. It's guaranteed that at least one of the 140
6404 return ((1UL << (nr & 31)) & (((const volatile unsigned int *) addr)[nr >> 5])) != 0;
6407 -static __inline__ int __test_bit(int nr, const unsigned long * addr)
6408 +static __inline__ int __test_bit(int nr, const volatile unsigned long * addr)
6410 int * a = (int *) addr;
6414 #endif /* __KERNEL__ */
6417 + * fls: find last bit set.
6419 +#define fls(x) generic_fls(x)
6421 #endif /* _M68KNOMMU_BITOPS_H */
6422 diff -Naur linux-2.6.0-test8/include/asm-m68knommu/cacheflush.h linux-2.6.0-test8-uc0/include/asm-m68knommu/cacheflush.h
6423 --- linux-2.6.0-test8/include/asm-m68knommu/cacheflush.h 2003-10-20 09:11:27.959062400 +1000
6424 +++ linux-2.6.0-test8-uc0/include/asm-m68knommu/cacheflush.h 2003-10-20 09:13:01.831791576 +1000
6427 "movel %%d0,%%a0\n\t"
6429 - ".word 0xf4e8\n\t"
6430 + ".word 0xf468\n\t"
6431 "addl #0x10,%%a0\n\t"
6432 "cmpl #0x00000800,%%a0\n\t"
6437 + "movel #0xb6088500,%%d0\n\t"
6438 + "movec %%d0,%%CACR\n\t"
6440 #endif /* CONFIG_M5407 */
6442 diff -Naur linux-2.6.0-test8/include/asm-m68knommu/elf.h linux-2.6.0-test8-uc0/include/asm-m68knommu/elf.h
6443 --- linux-2.6.0-test8/include/asm-m68knommu/elf.h 2003-10-20 09:11:27.956062856 +1000
6444 +++ linux-2.6.0-test8-uc0/include/asm-m68knommu/elf.h 2003-10-20 09:13:01.848788992 +1000
6446 #include <asm/ptrace.h>
6447 #include <asm/user.h>
6450 + * 68k ELF relocation types
6452 +#define R_68K_NONE 0
6456 +#define R_68K_PC32 4
6457 +#define R_68K_PC16 5
6458 +#define R_68K_PC8 6
6459 +#define R_68K_GOT32 7
6460 +#define R_68K_GOT16 8
6461 +#define R_68K_GOT8 9
6462 +#define R_68K_GOT32O 10
6463 +#define R_68K_GOT16O 11
6464 +#define R_68K_GOT8O 12
6465 +#define R_68K_PLT32 13
6466 +#define R_68K_PLT16 14
6467 +#define R_68K_PLT8 15
6468 +#define R_68K_PLT32O 16
6469 +#define R_68K_PLT16O 17
6470 +#define R_68K_PLT8O 18
6471 +#define R_68K_COPY 19
6472 +#define R_68K_GLOB_DAT 20
6473 +#define R_68K_JMP_SLOT 21
6474 +#define R_68K_RELATIVE 22
6476 typedef unsigned long elf_greg_t;
6478 #define ELF_NGREG (sizeof(struct user_regs_struct) / sizeof(elf_greg_t))
6479 diff -Naur linux-2.6.0-test8/include/asm-m68knommu/kmap_types.h linux-2.6.0-test8-uc0/include/asm-m68knommu/kmap_types.h
6480 --- linux-2.6.0-test8/include/asm-m68knommu/kmap_types.h 2003-10-20 09:11:27.862077144 +1000
6481 +++ linux-2.6.0-test8-uc0/include/asm-m68knommu/kmap_types.h 2003-10-20 09:13:01.991767256 +1000
6491 diff -Naur linux-2.6.0-test8/include/asm-m68knommu/m68360_enet.h linux-2.6.0-test8-uc0/include/asm-m68knommu/m68360_enet.h
6492 --- linux-2.6.0-test8/include/asm-m68knommu/m68360_enet.h 2003-10-20 09:11:27.882074104 +1000
6493 +++ linux-2.6.0-test8-uc0/include/asm-m68knommu/m68360_enet.h 2003-10-20 09:13:01.994766800 +1000
6495 -/***********************************
6497 - ***********************************
6500 ***************************************
6501 * Definitions for the ETHERNET controllers
6502 ***************************************
6503 diff -Naur linux-2.6.0-test8/include/asm-m68knommu/machdep.h linux-2.6.0-test8-uc0/include/asm-m68knommu/machdep.h
6504 --- linux-2.6.0-test8/include/asm-m68knommu/machdep.h 2003-10-20 09:11:27.879074560 +1000
6505 +++ linux-2.6.0-test8-uc0/include/asm-m68knommu/machdep.h 2003-10-20 09:13:01.996766496 +1000
6507 #define _M68KNOMMU_MACHDEP_H
6509 #include <linux/seq_file.h>
6510 +#include <linux/interrupt.h>
6518 -extern void (*mach_sched_init) (void (*handler)(int, void *, struct pt_regs *));
6519 +extern void (*mach_sched_init) (irqreturn_t (*handler)(int, void *, struct pt_regs *));
6520 /* machine dependent keyboard functions */
6521 extern int (*mach_keyb_init) (void);
6522 extern int (*mach_kbdrate) (struct kbd_repeat *);
6523 extern void (*mach_kbd_leds) (unsigned int);
6524 /* machine dependent irq functions */
6525 extern void (*mach_init_IRQ) (void);
6526 -extern void (*(*mach_default_handler)[]) (int, void *, struct pt_regs *);
6527 +extern irqreturn_t (*(*mach_default_handler)[]) (int, void *, struct pt_regs *);
6528 extern int (*mach_request_irq) (unsigned int irq, void (*handler)(int, void *, struct pt_regs *),
6529 unsigned long flags, const char *devname, void *dev_id);
6530 extern void (*mach_free_irq) (unsigned int irq, void *dev_id);
6531 diff -Naur linux-2.6.0-test8/include/asm-m68knommu/mcfsmc.h linux-2.6.0-test8-uc0/include/asm-m68knommu/mcfsmc.h
6532 --- linux-2.6.0-test8/include/asm-m68knommu/mcfsmc.h 2003-10-20 09:11:27.880074408 +1000
6533 +++ linux-2.6.0-test8-uc0/include/asm-m68knommu/mcfsmc.h 2003-10-20 09:13:02.023762392 +1000
6552 * Re-defines for ColdFire environment... The SMC part is
6553 diff -Naur linux-2.6.0-test8/include/asm-m68knommu/types.h linux-2.6.0-test8-uc0/include/asm-m68knommu/types.h
6554 --- linux-2.6.0-test8/include/asm-m68knommu/types.h 2003-10-20 09:11:27.865076688 +1000
6555 +++ linux-2.6.0-test8-uc0/include/asm-m68knommu/types.h 2003-10-20 09:13:02.041759656 +1000
6557 -#ifndef _M68K_TYPES_H
6558 -#define _M68K_TYPES_H
6561 - * This file is never included by application software unless
6562 - * explicitly requested (e.g., via linux/types.h) in which case the
6563 - * application is Linux specific so (user-) name space pollution is
6564 - * not a major issue. However, for interoperability, libraries still
6565 - * need to be careful to avoid a name clashes.
6568 -#ifndef __ASSEMBLY__
6570 -typedef unsigned short umode_t;
6573 - * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the
6574 - * header files exported to user space
6577 -typedef __signed__ char __s8;
6578 -typedef unsigned char __u8;
6580 -typedef __signed__ short __s16;
6581 -typedef unsigned short __u16;
6583 -typedef __signed__ int __s32;
6584 -typedef unsigned int __u32;
6586 -#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
6587 -typedef __signed__ long long __s64;
6588 -typedef unsigned long long __u64;
6591 -#endif /* __ASSEMBLY__ */
6594 - * These aren't exported outside the kernel to avoid name space clashes
6598 -#define BITS_PER_LONG 32
6600 -#ifndef __ASSEMBLY__
6602 -typedef signed char s8;
6603 -typedef unsigned char u8;
6605 -typedef signed short s16;
6606 -typedef unsigned short u16;
6608 -typedef signed int s32;
6609 -typedef unsigned int u32;
6611 -typedef signed long long s64;
6612 -typedef unsigned long long u64;
6614 -/* Dma addresses are 32-bits wide. */
6616 -typedef u32 dma_addr_t;
6618 -#endif /* __ASSEMBLY__ */
6620 -#endif /* __KERNEL__ */
6622 -#endif /* _M68K_TYPES_H */
6623 +#include <asm-m68k/types.h>
6624 diff -Naur linux-2.6.0-test8/include/linux/list.h linux-2.6.0-test8-uc0/include/linux/list.h
6625 --- linux-2.6.0-test8/include/linux/list.h 2003-10-20 09:11:18.436510048 +1000
6626 +++ linux-2.6.0-test8-uc0/include/linux/list.h 2003-10-20 09:13:15.424725136 +1000
6631 +#include <linux/kernel.h>
6632 #include <linux/stddef.h>
6633 #include <linux/prefetch.h>
6634 #include <asm/system.h>
6635 diff -Naur linux-2.6.0-test8/include/linux/mtd/inftl.h linux-2.6.0-test8-uc0/include/linux/mtd/inftl.h
6636 --- linux-2.6.0-test8/include/linux/mtd/inftl.h 2003-10-20 09:11:17.755613560 +1000
6637 +++ linux-2.6.0-test8-uc0/include/linux/mtd/inftl.h 2003-10-20 09:13:16.352584080 +1000
6639 #define SECTORSIZE 512
6642 -#define INFTL_MAJOR 93 /* FIXME */
6643 +#define INFTL_MAJOR 94
6645 #define INFTL_PARTN_BITS 4
6647 diff -Naur linux-2.6.0-test8/mm/nommu.c linux-2.6.0-test8-uc0/mm/nommu.c
6648 --- linux-2.6.0-test8/mm/nommu.c 2003-10-20 09:11:41.792959328 +1000
6649 +++ linux-2.6.0-test8-uc0/mm/nommu.c 2003-10-20 09:13:21.524797784 +1000
6650 @@ -551,6 +551,11 @@
6654 +struct vm_area_struct *find_extend_vma(struct mm_struct *mm, unsigned long addr)
6659 int remap_page_range(struct vm_area_struct *vma, unsigned long from,
6660 unsigned long to, unsigned long size, pgprot_t prot)