Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

keyspan_pda: use request_firmware()

Signed-off-by: David Woodhouse <dwmw2@infradead.org>

authored by

David Woodhouse and committed by
David Woodhouse
3edbf98b 2971c579

+210 -229
drivers/usb/serial/keyspan_pda.S firmware/keyspan_pda/keyspan_pda.S
+24 -27
drivers/usb/serial/keyspan_pda.c
··· 76 76 #include <linux/module.h> 77 77 #include <linux/spinlock.h> 78 78 #include <linux/workqueue.h> 79 + #include <linux/firmware.h> 80 + #include <linux/ihex.h> 79 81 #include <asm/uaccess.h> 80 82 #include <linux/usb.h> 81 83 #include <linux/usb/serial.h> 82 84 83 85 static int debug; 84 - 85 - struct ezusb_hex_record { 86 - __u16 address; 87 - __u8 data_size; 88 - __u8 data[16]; 89 - }; 90 86 91 87 /* make a simple define to handle if we are compiling keyspan_pda or xircom support */ 92 88 #if defined(CONFIG_USB_SERIAL_KEYSPAN_PDA) || defined(CONFIG_USB_SERIAL_KEYSPAN_PDA_MODULE) ··· 94 98 #define XIRCOM 95 99 #else 96 100 #undef XIRCOM 97 - #endif 98 - 99 - #ifdef KEYSPAN 100 - #include "keyspan_pda_fw.h" 101 - #endif 102 - 103 - #ifdef XIRCOM 104 - #include "xircom_pgs_fw.h" 105 101 #endif 106 102 107 103 /* ··· 710 722 static int keyspan_pda_fake_startup (struct usb_serial *serial) 711 723 { 712 724 int response; 713 - const struct ezusb_hex_record *record = NULL; 725 + const char *fw_name; 726 + const struct ihex_binrec *record; 727 + const struct firmware *fw; 714 728 715 729 /* download the firmware here ... */ 716 730 response = ezusb_set_reset(serial, 1); 717 731 732 + if (0) { ; } 718 733 #ifdef KEYSPAN 719 - if (le16_to_cpu(serial->dev->descriptor.idVendor) == KEYSPAN_VENDOR_ID) 720 - record = &keyspan_pda_firmware[0]; 734 + else if (le16_to_cpu(serial->dev->descriptor.idVendor) == KEYSPAN_VENDOR_ID) 735 + fw_name = "keyspan_pda/keyspan_pda.fw"; 721 736 #endif 722 737 #ifdef XIRCOM 723 - if ((le16_to_cpu(serial->dev->descriptor.idVendor) == XIRCOM_VENDOR_ID) || 724 - (le16_to_cpu(serial->dev->descriptor.idVendor) == ENTREGRA_VENDOR_ID)) 725 - record = &xircom_pgs_firmware[0]; 738 + else if ((le16_to_cpu(serial->dev->descriptor.idVendor) == XIRCOM_VENDOR_ID) || 739 + (le16_to_cpu(serial->dev->descriptor.idVendor) == ENTREGRA_VENDOR_ID)) 740 + fw_name = "keyspan_pda/xircom_pgs.fw"; 726 741 #endif 727 - if (record == NULL) { 742 + else { 728 743 err("%s: unknown vendor, aborting.", __func__); 729 744 return -ENODEV; 730 745 } 746 + if (request_ihex_firmware(&fw, fw_name, &serial->dev->dev)) { 747 + err("failed to load firmware \"%s\"\n", fw_name); 748 + return -ENOENT; 749 + } 750 + record = (const struct ihex_binrec *)fw->data; 731 751 732 - while(record->address != 0xffff) { 733 - response = ezusb_writememory(serial, record->address, 752 + while (record) { 753 + response = ezusb_writememory(serial, be32_to_cpu(record->addr), 734 754 (unsigned char *)record->data, 735 - record->data_size, 0xa0); 755 + be16_to_cpu(record->len), 0xa0); 736 756 if (response < 0) { 737 757 err("ezusb_writememory failed for Keyspan PDA " 738 758 "firmware (%d %04X %p %d)", 739 - response, 740 - record->address, record->data, record->data_size); 759 + response, be32_to_cpu(record->addr), 760 + record->data, be16_to_cpu(record->len)); 741 761 break; 742 762 } 743 - record++; 763 + record = ihex_next_binrec(record); 744 764 } 765 + release_firmware(fw); 745 766 /* bring device out of reset. Renumeration will occur in a moment 746 767 and the new device will bind to the real driver */ 747 768 response = ezusb_set_reset(serial, 0);
-99
drivers/usb/serial/keyspan_pda_fw.h
··· 1 - /* 2 - * USB Keyspan PDA Firmware 3 - * 4 - * Copyright (C) 1999, 2000 Brian Warner <warner@lothar.com> 5 - * 6 - * This program is free software; you can redistribute it and/or modify 7 - * it under the terms of the GNU General Public License as published by 8 - * the Free Software Foundation; either version 2 of the License, or 9 - * (at your option) any later version. 10 - * 11 - * Generated from keyspan_pda.s by ezusb_convert.pl 12 - * 13 - */ 14 - 15 - static const struct ezusb_hex_record keyspan_pda_firmware[] = { 16 - { 0x0000, 3, {0x02, 0x02, 0x00} }, 17 - { 0x0023, 4, {0x02, 0x05, 0x5f, 0x00} }, 18 - { 0x0043, 4, {0x02, 0x01, 0x00, 0x00} }, 19 - { 0x0030, 5, {0x00, 0x00, 0x00, 0x00, 0x00} }, 20 - { 0x0100, 16, {0x02, 0x02, 0x96, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00} }, 21 - { 0x0110, 16, {0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00} }, 22 - { 0x0120, 16, {0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x04, 0x61, 0x00, 0x02, 0x04, 0x89, 0x00} }, 23 - { 0x0200, 16, {0x75, 0x81, 0x5e, 0xe4, 0xf5, 0x32, 0xf5, 0x33, 0xf5, 0x30, 0xf5, 0x31, 0xf5, 0x34, 0xc2, 0x00} }, 24 - { 0x0210, 16, {0xc2, 0x01, 0xa9, 0x00, 0x74, 0xfe, 0x90, 0x10, 0x00, 0xf0, 0xa3, 0xd9, 0xfc, 0x74, 0xfd, 0x90} }, 25 - { 0x0220, 16, {0x11, 0x00, 0xf0, 0xa3, 0xd9, 0xfc, 0x74, 0x02, 0x90, 0x7f, 0x9d, 0xf0, 0x74, 0x00, 0x90, 0x7f} }, 26 - { 0x0230, 16, {0x97, 0xf0, 0x74, 0x86, 0x90, 0x7f, 0x9e, 0xf0, 0x90, 0x7f, 0x95, 0x74, 0x03, 0xf0, 0x90, 0x7f} }, 27 - { 0x0240, 16, {0xaf, 0xe0, 0xd2, 0xe0, 0xf0, 0x74, 0x01, 0x90, 0x7f, 0xab, 0xf0, 0x90, 0x7f, 0xae, 0xf0, 0x90} }, 28 - { 0x0250, 16, {0x7f, 0xac, 0x74, 0x04, 0xf0, 0x90, 0x7f, 0xad, 0x74, 0x04, 0xf0, 0x90, 0x7f, 0xc9, 0xf0, 0x74} }, 29 - { 0x0260, 16, {0x84, 0x90, 0x7f, 0x98, 0xf0, 0x74, 0x00, 0xf5, 0x98, 0x75, 0xc8, 0x30, 0x7b, 0x05, 0x91, 0x20} }, 30 - { 0x0270, 16, {0xd2, 0xca, 0x75, 0x98, 0x50, 0xd2, 0xe8, 0xd2, 0xaf, 0xd2, 0xac, 0x74, 0x00, 0xf5, 0x86, 0x90} }, 31 - { 0x0280, 16, {0x7f, 0xd6, 0x74, 0x02, 0xf0, 0x79, 0x2e, 0x7a, 0x00, 0x7b, 0x00, 0xdb, 0xfe, 0xda, 0xfa, 0xd9} }, 32 - { 0x0290, 16, {0xf6, 0x74, 0x06, 0xf0, 0x80, 0xfe, 0xc0, 0x86, 0xc0, 0x82, 0xc0, 0x83, 0xc0, 0x84, 0xc0, 0x85} }, 33 - { 0x02a0, 16, {0xc0, 0xe0, 0xe5, 0x91, 0xc2, 0xe4, 0xf5, 0x91, 0x90, 0x7f, 0xab, 0x74, 0x01, 0xf0, 0x90, 0x7f} }, 34 - { 0x02b0, 16, {0xe8, 0xe0, 0xf9, 0xa3, 0xe0, 0xfa, 0xa3, 0xe0, 0xfb, 0xa3, 0xe0, 0xfc, 0xe9, 0x54, 0x60, 0xb4} }, 35 - { 0x02c0, 16, {0x00, 0x03, 0x02, 0x03, 0x39, 0xb4, 0x40, 0x6e, 0xba, 0x00, 0x0b, 0x12, 0x04, 0x20, 0x40, 0x03} }, 36 - { 0x02d0, 16, {0x02, 0x04, 0x02, 0x02, 0x04, 0x0a, 0xba, 0x01, 0x03, 0x02, 0x04, 0x0a, 0xba, 0x02, 0x03, 0x02} }, 37 - { 0x02e0, 16, {0x04, 0x0a, 0xba, 0x03, 0x03, 0x02, 0x04, 0x44, 0xba, 0x04, 0x1e, 0xbb, 0x00, 0x0a, 0x90, 0x7f} }, 38 - { 0x02f0, 16, {0x95, 0xe0, 0x44, 0x02, 0xf0, 0x02, 0x04, 0x02, 0x90, 0x7f, 0x98, 0xe0, 0x54, 0xfd, 0xf0, 0x90} }, 39 - { 0x0300, 16, {0x7f, 0x95, 0xe0, 0x54, 0xfd, 0xf0, 0x02, 0x04, 0x02, 0xba, 0x05, 0x03, 0x02, 0x04, 0x0a, 0xba} }, 40 - { 0x0310, 16, {0x06, 0x19, 0xbb, 0x00, 0x08, 0xe5, 0x33, 0xd3, 0x95, 0x32, 0x02, 0x03, 0xde, 0xbb, 0x01, 0x08} }, 41 - { 0x0320, 16, {0xe5, 0x32, 0xc3, 0x95, 0x33, 0x02, 0x03, 0xde, 0x02, 0x04, 0x0a, 0xba, 0x07, 0x05, 0x8b, 0x34} }, 42 - { 0x0330, 16, {0x02, 0x04, 0x02, 0x02, 0x04, 0x0a, 0x02, 0x04, 0x0a, 0xba, 0x00, 0x20, 0xb9, 0x80, 0x10, 0x90} }, 43 - { 0x0340, 16, {0x7f, 0x00, 0xe4, 0xf0, 0xa3, 0xf0, 0x90, 0x7f, 0xb5, 0x74, 0x02, 0xf0, 0x02, 0x04, 0x02, 0xb9} }, 44 - { 0x0350, 16, {0x82, 0x02, 0x80, 0xeb, 0xb9, 0x81, 0x02, 0x80, 0xe6, 0x02, 0x04, 0x0a, 0xba, 0x01, 0x0f, 0xbb} }, 45 - { 0x0360, 16, {0x00, 0x03, 0x02, 0x04, 0x0a, 0xbb, 0x01, 0x03, 0x02, 0x04, 0x02, 0x02, 0x04, 0x0a, 0xba, 0x03} }, 46 - { 0x0370, 16, {0x0f, 0xbb, 0x00, 0x03, 0x02, 0x04, 0x0a, 0xbb, 0x01, 0x03, 0x02, 0x04, 0x02, 0x02, 0x04, 0x0a} }, 47 - { 0x0380, 16, {0xba, 0x06, 0x56, 0xbc, 0x01, 0x0f, 0x90, 0x7f, 0xd4, 0x74, 0x06, 0xf0, 0x90, 0x7f, 0xd5, 0x74} }, 48 - { 0x0390, 16, {0x12, 0xf0, 0x02, 0x04, 0x02, 0xbc, 0x02, 0x12, 0xbb, 0x00, 0x6f, 0x90, 0x7f, 0xd4, 0x74, 0x06} }, 49 - { 0x03a0, 16, {0xf0, 0x90, 0x7f, 0xd5, 0x74, 0x24, 0xf0, 0x02, 0x04, 0x02, 0xbc, 0x03, 0x29, 0x74, 0x04, 0xc3} }, 50 - { 0x03b0, 16, {0x9b, 0x40, 0x57, 0x60, 0x55, 0xeb, 0x2b, 0x90, 0x06, 0x44, 0x25, 0x82, 0xf5, 0x82, 0x74, 0x00} }, 51 - { 0x03c0, 16, {0x35, 0x83, 0xf5, 0x83, 0xe0, 0xf9, 0xa3, 0xe0, 0xfa, 0x90, 0x7f, 0xd4, 0xe9, 0xf0, 0x90, 0x7f} }, 52 - { 0x03d0, 16, {0xd5, 0xea, 0xf0, 0x02, 0x04, 0x02, 0x02, 0x04, 0x0a, 0xba, 0x08, 0x0f, 0x74, 0x01, 0x90, 0x7f} }, 53 - { 0x03e0, 16, {0x00, 0xf0, 0x74, 0x01, 0x90, 0x7f, 0xb5, 0xf0, 0x02, 0x04, 0x02, 0xba, 0x09, 0x03, 0x02, 0x04} }, 54 - { 0x03f0, 16, {0x02, 0xba, 0x0a, 0x05, 0x74, 0x00, 0x02, 0x03, 0xde, 0xba, 0x0b, 0x03, 0x02, 0x04, 0x02, 0x02} }, 55 - { 0x0400, 16, {0x04, 0x0a, 0x90, 0x7f, 0xb4, 0x74, 0x02, 0xf0, 0x80, 0x09, 0x90, 0x7f, 0xb4, 0xe0, 0x44, 0x01} }, 56 - { 0x0410, 16, {0xf0, 0x80, 0x00, 0xd0, 0xe0, 0xd0, 0x85, 0xd0, 0x84, 0xd0, 0x83, 0xd0, 0x82, 0xd0, 0x86, 0x32} }, 57 - { 0x0420, 16, {0xeb, 0x20, 0xe7, 0x1e, 0xc3, 0x94, 0x0a, 0x50, 0x19, 0xeb, 0x23, 0x24, 0xfe, 0xf5, 0x82, 0x74} }, 58 - { 0x0430, 16, {0x05, 0x34, 0x00, 0xf5, 0x83, 0xe0, 0xf5, 0xcb, 0xf5, 0xcd, 0xa3, 0xe0, 0xf5, 0xca, 0xf5, 0xcc} }, 59 - { 0x0440, 16, {0xc3, 0x22, 0xd3, 0x22, 0xb9, 0x41, 0x11, 0xeb, 0x64, 0xff, 0x54, 0x84, 0xfb, 0x90, 0x7f, 0x98} }, 60 - { 0x0450, 16, {0xe0, 0x54, 0x7b, 0x4b, 0xf0, 0x02, 0x04, 0x02, 0x90, 0x7f, 0x9b, 0xe0, 0x64, 0xff, 0x02, 0x03} }, 61 - { 0x0460, 16, {0xde, 0xc0, 0x86, 0xc0, 0x82, 0xc0, 0x83, 0xc0, 0x84, 0xc0, 0x85, 0xc0, 0xe0, 0xe5, 0x91, 0xc2} }, 62 - { 0x0470, 16, {0xe4, 0xf5, 0x91, 0x90, 0x7f, 0xa9, 0x74, 0x04, 0xf0, 0x12, 0x05, 0xa0, 0xd0, 0xe0, 0xd0, 0x85} }, 63 - { 0x0480, 16, {0xd0, 0x84, 0xd0, 0x83, 0xd0, 0x82, 0xd0, 0x86, 0x32, 0xc0, 0x86, 0xc0, 0x82, 0xc0, 0x83, 0xc0} }, 64 - { 0x0490, 16, {0x84, 0xc0, 0x85, 0xc0, 0xe0, 0xe5, 0x91, 0xc2, 0xe4, 0xf5, 0x91, 0x90, 0x7f, 0xaa, 0x74, 0x04} }, 65 - { 0x04a0, 16, {0xf0, 0x90, 0x7f, 0xc9, 0xe0, 0xf9, 0xe4, 0xf5, 0x86, 0x90, 0x7d, 0xc0, 0x75, 0x85, 0x10, 0x85} }, 66 - { 0x04b0, 16, {0x32, 0x84, 0xe0, 0x05, 0x86, 0x05, 0x84, 0xf0, 0xe5, 0x84, 0xb5, 0x33, 0x02, 0x80, 0x09, 0x05} }, 67 - { 0x04c0, 16, {0x32, 0x05, 0x86, 0xa3, 0xd9, 0xec, 0x80, 0x00, 0x90, 0x7f, 0xc9, 0xf0, 0xb1, 0x31, 0xd0, 0xe0} }, 68 - { 0x04d0, 16, {0xd0, 0x85, 0xd0, 0x84, 0xd0, 0x83, 0xd0, 0x82, 0xd0, 0x86, 0x32, 0xe4, 0xf5, 0x86, 0x90, 0x7f} }, 69 - { 0x04e0, 16, {0xbc, 0xe0, 0x20, 0xe1, 0x4b, 0x90, 0x7d, 0x00, 0xe5, 0x32, 0xf0, 0xa3, 0xe5, 0x33, 0xf0, 0xa3} }, 70 - { 0x04f0, 16, {0xe5, 0x30, 0xf0, 0xa3, 0xe5, 0x31, 0xf0, 0xa3, 0xe4, 0x30, 0x00, 0x01, 0x04, 0xf0, 0xa3, 0x05} }, 71 - { 0x0500, 16, {0x86, 0x90, 0x10, 0x00, 0x79, 0x10, 0xe0, 0xa3, 0x05, 0x86, 0xf0, 0xa3, 0x05, 0x86, 0xd9, 0xf6} }, 72 - { 0x0510, 16, {0x05, 0x86, 0x74, 0xfc, 0xf0, 0xa3, 0x05, 0x86, 0x90, 0x11, 0x00, 0x79, 0x10, 0xe0, 0xa3, 0x05} }, 73 - { 0x0520, 16, {0x86, 0xf0, 0xa3, 0x05, 0x86, 0xd9, 0xf6, 0xe4, 0xf5, 0x86, 0x90, 0x7f, 0xbd, 0x74, 0x26, 0xf0} }, 74 - { 0x0530, 16, {0x22, 0x20, 0x00, 0x13, 0xe5, 0x32, 0xb5, 0x33, 0x01, 0x22, 0x05, 0x33, 0x75, 0x83, 0x10, 0x85} }, 75 - { 0x0540, 16, {0x33, 0x82, 0xe0, 0xf5, 0x99, 0xd2, 0x00, 0x74, 0x00, 0xb5, 0x34, 0x01, 0x22, 0xe5, 0x33, 0xd3} }, 76 - { 0x0550, 16, {0x95, 0x32, 0xc3, 0x95, 0x34, 0x40, 0xf5, 0x75, 0x34, 0x00, 0xd2, 0x01, 0x02, 0x05, 0xa0, 0xc0} }, 77 - { 0x0560, 16, {0x86, 0xc0, 0x82, 0xc0, 0x83, 0xc0, 0x84, 0xc0, 0x85, 0xc0, 0xe0, 0x30, 0x99, 0x07, 0xc2, 0x99} }, 78 - { 0x0570, 16, {0xc2, 0x00, 0x12, 0x05, 0x34, 0x30, 0x98, 0x05, 0x12, 0x05, 0x8a, 0xc2, 0x98, 0xd0, 0xe0, 0xd0} }, 79 - { 0x0580, 16, {0x85, 0xd0, 0x84, 0xd0, 0x83, 0xd0, 0x82, 0xd0, 0x86, 0x32, 0x75, 0x83, 0x11, 0x85, 0x30, 0x82} }, 80 - { 0x0590, 16, {0x05, 0x82, 0xe5, 0x99, 0xf0, 0xe5, 0x82, 0xb5, 0x31, 0x01, 0x22, 0x05, 0x30, 0xb1, 0xa0, 0x22} }, 81 - { 0x05a0, 16, {0x90, 0x7f, 0xb8, 0xe0, 0x20, 0xe1, 0x38, 0x20, 0x01, 0x36, 0xe5, 0x30, 0xb5, 0x31, 0x01, 0x22} }, 82 - { 0x05b0, 16, {0xe4, 0xf5, 0x86, 0x75, 0x83, 0x11, 0x05, 0x86, 0x90, 0x7e, 0x00, 0xf0, 0xa3, 0x05, 0x86, 0x79} }, 83 - { 0x05c0, 16, {0x01, 0xe5, 0x30, 0xb5, 0x31, 0x02, 0x80, 0x10, 0x05, 0x31, 0x85, 0x31, 0x82, 0xe0, 0x05, 0x86} }, 84 - { 0x05d0, 16, {0xf0, 0xa3, 0x05, 0x86, 0x09, 0xb9, 0x40, 0xe9, 0x90, 0x7f, 0xb9, 0xe9, 0x60, 0x01, 0xf0, 0x22} }, 85 - { 0x05e0, 16, {0xc2, 0x01, 0xe4, 0xf5, 0x86, 0x90, 0x7e, 0x00, 0x74, 0x01, 0xf0, 0xa3, 0x74, 0x02, 0xf0, 0x90} }, 86 - { 0x05f0, 16, {0x7f, 0xb9, 0xf0, 0x22, 0xc2, 0x99, 0xf5, 0x99, 0x30, 0x99, 0xfd, 0xc2, 0x99, 0x22, 0xe5, 0x5e} }, 87 - { 0x0600, 16, {0xf6, 0x3c, 0xfd, 0x8f, 0xfe, 0xc8, 0xff, 0x64, 0xff, 0xb2, 0xff, 0xd9, 0xff, 0xed, 0xff, 0xf3} }, 88 - { 0x0610, 16, {0xff, 0xfa, 0x12, 0x01, 0x00, 0x01, 0xff, 0xff, 0xff, 0x40, 0xcd, 0x06, 0x04, 0x01, 0x89, 0xab} }, 89 - { 0x0620, 16, {0x01, 0x02, 0x03, 0x01, 0x09, 0x02, 0x20, 0x00, 0x01, 0x01, 0x00, 0x80, 0x32, 0x09, 0x04, 0x00} }, 90 - { 0x0630, 16, {0x00, 0x02, 0xff, 0xff, 0xff, 0x00, 0x07, 0x05, 0x82, 0x03, 0x40, 0x00, 0x01, 0x07, 0x05, 0x02} }, 91 - { 0x0640, 16, {0x02, 0x40, 0x00, 0x00, 0x06, 0x4c, 0x06, 0x50, 0x06, 0x72, 0x06, 0xa0, 0x04, 0x03, 0x00, 0x00} }, 92 - { 0x0650, 16, {0x22, 0x03, 0x41, 0x00, 0x43, 0x00, 0x4d, 0x00, 0x45, 0x00, 0x20, 0x00, 0x75, 0x00, 0x73, 0x00} }, 93 - { 0x0660, 16, {0x62, 0x00, 0x20, 0x00, 0x77, 0x00, 0x69, 0x00, 0x64, 0x00, 0x67, 0x00, 0x65, 0x00, 0x74, 0x00} }, 94 - { 0x0670, 16, {0x73, 0x00, 0x2e, 0x03, 0x41, 0x00, 0x43, 0x00, 0x4d, 0x00, 0x45, 0x00, 0x20, 0x00, 0x55, 0x00} }, 95 - { 0x0680, 16, {0x53, 0x00, 0x42, 0x00, 0x20, 0x00, 0x73, 0x00, 0x65, 0x00, 0x72, 0x00, 0x69, 0x00, 0x61, 0x00} }, 96 - { 0x0690, 16, {0x6c, 0x00, 0x20, 0x00, 0x77, 0x00, 0x69, 0x00, 0x64, 0x00, 0x67, 0x00, 0x65, 0x00, 0x74, 0x00} }, 97 - { 0x06a0, 6, {0x06, 0x03, 0x34, 0x00, 0x37, 0x00} }, 98 - { 0xffff, 0, {0x00} } 99 - };
drivers/usb/serial/xircom_pgs.S firmware/keyspan_pda/xircom_pgs.S
-103
drivers/usb/serial/xircom_pgs_fw.h
··· 1 - /* 2 - * USB Xircom PGS Firmware 3 - * 4 - * Copyright (C) 1999, 2000 Brian Warner <warner@lothar.com> 5 - * Copyright (C) 2001 Cristian M. Craciunescu <cristi@dnt.ro> 6 - * 7 - * This program is free software; you can redistribute it and/or modify 8 - * it under the terms of the GNU General Public License as published by 9 - * the Free Software Foundation; either version 2 of the License, or 10 - * (at your option) any later version. 11 - * 12 - * Generated from xircom_pgs.S by ezusb_convert_x.pl 13 - */ 14 - 15 - static const struct ezusb_hex_record xircom_pgs_firmware[] = { 16 - { 0x0000, 3, {0x02, 0x02, 0x00} }, 17 - { 0x0023, 4, {0x02, 0x05, 0x9b, 0x00} }, 18 - { 0x0030, 5, {0x00, 0x00, 0x00, 0x00, 0x00} }, 19 - { 0x0043, 4, {0x02, 0x01, 0x00, 0x00} }, 20 - { 0x0100, 16, {0x02, 0x02, 0xba, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00} }, 21 - { 0x0110, 16, {0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00} }, 22 - { 0x0120, 16, {0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x04, 0x85, 0x00, 0x02, 0x04, 0xb9, 0x00} }, 23 - { 0x0200, 16, {0x75, 0x81, 0x5e, 0xe4, 0xf5, 0x32, 0xf5, 0x33, 0xf5, 0x30, 0xf5, 0x31, 0xf5, 0x34, 0xc2, 0x00} }, 24 - { 0x0210, 16, {0xc2, 0x01, 0xa9, 0x00, 0x74, 0xfe, 0x90, 0x10, 0x00, 0xf0, 0xa3, 0xd9, 0xfc, 0x74, 0xfd, 0x90} }, 25 - { 0x0220, 16, {0x11, 0x00, 0xf0, 0xa3, 0xd9, 0xfc, 0x90, 0x7f, 0x94, 0x74, 0xbf, 0xf0, 0x90, 0x7f, 0x95, 0x74} }, 26 - { 0x0230, 16, {0xef, 0xf0, 0x74, 0x10, 0x90, 0x7f, 0x9e, 0xf0, 0x74, 0x00, 0x90, 0x7f, 0x98, 0xf0, 0x74, 0x40} }, 27 - { 0x0240, 16, {0x90, 0x7f, 0x9d, 0xf0, 0x74, 0x00, 0x90, 0x7f, 0x97, 0xf0, 0x74, 0x82, 0x90, 0x7f, 0x9e, 0xf0} }, 28 - { 0x0250, 16, {0x90, 0x7f, 0x95, 0x74, 0x03, 0xf0, 0x90, 0x7f, 0xaf, 0xe0, 0xd2, 0xe0, 0xf0, 0x74, 0x01, 0x90} }, 29 - { 0x0260, 16, {0x7f, 0xab, 0xf0, 0x90, 0x7f, 0xae, 0xf0, 0x90, 0x7f, 0xac, 0x74, 0x04, 0xf0, 0x90, 0x7f, 0xad} }, 30 - { 0x0270, 16, {0x74, 0x04, 0xf0, 0x90, 0x7f, 0xc9, 0xf0, 0x74, 0x07, 0x90, 0x7f, 0xaf, 0xf0, 0x74, 0x20, 0x90} }, 31 - { 0x0280, 16, {0x7f, 0x9c, 0xf0, 0x74, 0x80, 0x90, 0x7f, 0x98, 0xf0, 0x74, 0x53, 0xf5, 0x98, 0x75, 0xc8, 0x30} }, 32 - { 0x0290, 16, {0x7b, 0x05, 0x91, 0x44, 0xd2, 0xca, 0x75, 0x98, 0x50, 0xd2, 0xe8, 0xd2, 0xaf, 0xd2, 0xac, 0x74} }, 33 - { 0x02a0, 16, {0x00, 0xf5, 0x86, 0x90, 0x7f, 0xd6, 0x74, 0x02, 0xf0, 0x79, 0x2e, 0x7a, 0x00, 0x7b, 0x00, 0xdb} }, 34 - { 0x02b0, 16, {0xfe, 0xda, 0xfa, 0xd9, 0xf6, 0x74, 0x06, 0xf0, 0x80, 0xfe, 0xc0, 0x86, 0xc0, 0x82, 0xc0, 0x83} }, 35 - { 0x02c0, 16, {0xc0, 0x84, 0xc0, 0x85, 0xc0, 0xe0, 0xe5, 0x91, 0xc2, 0xe4, 0xf5, 0x91, 0x90, 0x7f, 0xab, 0x74} }, 36 - { 0x02d0, 16, {0x01, 0xf0, 0x90, 0x7f, 0xe8, 0xe0, 0xf9, 0xa3, 0xe0, 0xfa, 0xa3, 0xe0, 0xfb, 0xa3, 0xe0, 0xfc} }, 37 - { 0x02e0, 16, {0xe9, 0x54, 0x60, 0xb4, 0x00, 0x03, 0x02, 0x03, 0x5d, 0xb4, 0x40, 0x6e, 0xba, 0x00, 0x0b, 0x12} }, 38 - { 0x02f0, 16, {0x04, 0x44, 0x40, 0x03, 0x02, 0x04, 0x26, 0x02, 0x04, 0x2e, 0xba, 0x01, 0x03, 0x02, 0x04, 0x2e} }, 39 - { 0x0300, 16, {0xba, 0x02, 0x03, 0x02, 0x04, 0x2e, 0xba, 0x03, 0x03, 0x02, 0x04, 0x68, 0xba, 0x04, 0x1e, 0xbb} }, 40 - { 0x0310, 16, {0x00, 0x0a, 0x90, 0x7f, 0x95, 0xe0, 0x44, 0x02, 0xf0, 0x02, 0x04, 0x26, 0x90, 0x7f, 0x98, 0xe0} }, 41 - { 0x0320, 16, {0x54, 0xfd, 0xf0, 0x90, 0x7f, 0x95, 0xe0, 0x54, 0xfd, 0xf0, 0x02, 0x04, 0x26, 0xba, 0x05, 0x03} }, 42 - { 0x0330, 16, {0x02, 0x04, 0x2e, 0xba, 0x06, 0x19, 0xbb, 0x00, 0x08, 0xe5, 0x33, 0xd3, 0x95, 0x32, 0x02, 0x04} }, 43 - { 0x0340, 16, {0x02, 0xbb, 0x01, 0x08, 0xe5, 0x32, 0xc3, 0x95, 0x33, 0x02, 0x04, 0x02, 0x02, 0x04, 0x2e, 0xba} }, 44 - { 0x0350, 16, {0x07, 0x05, 0x8b, 0x34, 0x02, 0x04, 0x26, 0x02, 0x04, 0x2e, 0x02, 0x04, 0x2e, 0xba, 0x00, 0x20} }, 45 - { 0x0360, 16, {0xb9, 0x80, 0x10, 0x90, 0x7f, 0x00, 0xe4, 0xf0, 0xa3, 0xf0, 0x90, 0x7f, 0xb5, 0x74, 0x02, 0xf0} }, 46 - { 0x0370, 16, {0x02, 0x04, 0x26, 0xb9, 0x82, 0x02, 0x80, 0xeb, 0xb9, 0x81, 0x02, 0x80, 0xe6, 0x02, 0x04, 0x2e} }, 47 - { 0x0380, 16, {0xba, 0x01, 0x0f, 0xbb, 0x00, 0x03, 0x02, 0x04, 0x2e, 0xbb, 0x01, 0x03, 0x02, 0x04, 0x26, 0x02} }, 48 - { 0x0390, 16, {0x04, 0x2e, 0xba, 0x03, 0x0f, 0xbb, 0x00, 0x03, 0x02, 0x04, 0x2e, 0xbb, 0x01, 0x03, 0x02, 0x04} }, 49 - { 0x03a0, 16, {0x26, 0x02, 0x04, 0x2e, 0xba, 0x06, 0x56, 0xbc, 0x01, 0x0f, 0x90, 0x7f, 0xd4, 0x74, 0x06, 0xf0} }, 50 - { 0x03b0, 16, {0x90, 0x7f, 0xd5, 0x74, 0x5a, 0xf0, 0x02, 0x04, 0x26, 0xbc, 0x02, 0x12, 0xbb, 0x00, 0x6f, 0x90} }, 51 - { 0x03c0, 16, {0x7f, 0xd4, 0x74, 0x06, 0xf0, 0x90, 0x7f, 0xd5, 0x74, 0x6c, 0xf0, 0x02, 0x04, 0x26, 0xbc, 0x03} }, 52 - { 0x03d0, 16, {0x29, 0x74, 0x04, 0xc3, 0x9b, 0x40, 0x57, 0x60, 0x55, 0xeb, 0x2b, 0x90, 0x06, 0x8c, 0x25, 0x82} }, 53 - { 0x03e0, 16, {0xf5, 0x82, 0x74, 0x00, 0x35, 0x83, 0xf5, 0x83, 0xe0, 0xf9, 0xa3, 0xe0, 0xfa, 0x90, 0x7f, 0xd4} }, 54 - { 0x03f0, 16, {0xe9, 0xf0, 0x90, 0x7f, 0xd5, 0xea, 0xf0, 0x02, 0x04, 0x26, 0x02, 0x04, 0x2e, 0xba, 0x08, 0x0f} }, 55 - { 0x0400, 16, {0x74, 0x01, 0x90, 0x7f, 0x00, 0xf0, 0x74, 0x01, 0x90, 0x7f, 0xb5, 0xf0, 0x02, 0x04, 0x26, 0xba} }, 56 - { 0x0410, 16, {0x09, 0x03, 0x02, 0x04, 0x26, 0xba, 0x0a, 0x05, 0x74, 0x00, 0x02, 0x04, 0x02, 0xba, 0x0b, 0x03} }, 57 - { 0x0420, 16, {0x02, 0x04, 0x26, 0x02, 0x04, 0x2e, 0x90, 0x7f, 0xb4, 0x74, 0x02, 0xf0, 0x80, 0x09, 0x90, 0x7f} }, 58 - { 0x0430, 16, {0xb4, 0xe0, 0x44, 0x01, 0xf0, 0x80, 0x00, 0xd0, 0xe0, 0xd0, 0x85, 0xd0, 0x84, 0xd0, 0x83, 0xd0} }, 59 - { 0x0440, 16, {0x82, 0xd0, 0x86, 0x32, 0xeb, 0x20, 0xe7, 0x1e, 0xc3, 0x94, 0x0a, 0x50, 0x19, 0xeb, 0x23, 0x24} }, 60 - { 0x0450, 16, {0x46, 0xf5, 0x82, 0x74, 0x06, 0x34, 0x00, 0xf5, 0x83, 0xe0, 0xf5, 0xcb, 0xf5, 0xcd, 0xa3, 0xe0} }, 61 - { 0x0460, 16, {0xf5, 0xca, 0xf5, 0xcc, 0xc3, 0x22, 0xd3, 0x22, 0xb9, 0x41, 0x11, 0xeb, 0x64, 0xff, 0x54, 0x80} }, 62 - { 0x0470, 16, {0xfb, 0x90, 0x7f, 0x98, 0xe0, 0x54, 0x7f, 0x4b, 0xf0, 0x02, 0x04, 0x26, 0x90, 0x7f, 0x9b, 0xe0} }, 63 - { 0x0480, 16, {0x64, 0xff, 0x02, 0x04, 0x02, 0xc0, 0x86, 0xc0, 0x82, 0xc0, 0x83, 0xc0, 0x84, 0xc0, 0x85, 0xc0} }, 64 - { 0x0490, 16, {0xe0, 0xe5, 0x91, 0xc2, 0xe4, 0xf5, 0x91, 0x90, 0x7f, 0xa9, 0x74, 0x04, 0xf0, 0x74, 0x20, 0x90} }, 65 - { 0x04a0, 16, {0x7f, 0x9c, 0xf0, 0x12, 0x05, 0xdc, 0x74, 0x20, 0x90, 0x7f, 0x9c, 0xf0, 0xd0, 0xe0, 0xd0, 0x85} }, 66 - { 0x04b0, 16, {0xd0, 0x84, 0xd0, 0x83, 0xd0, 0x82, 0xd0, 0x86, 0x32, 0xc0, 0x86, 0xc0, 0x82, 0xc0, 0x83, 0xc0} }, 67 - { 0x04c0, 16, {0x84, 0xc0, 0x85, 0xc0, 0xe0, 0x74, 0x10, 0x90, 0x7f, 0x9c, 0xf0, 0xe5, 0x91, 0xc2, 0xe4, 0xf5} }, 68 - { 0x04d0, 16, {0x91, 0x90, 0x7f, 0xaa, 0x74, 0x04, 0xf0, 0x90, 0x7f, 0xc9, 0xe0, 0xf9, 0xe4, 0xf5, 0x86, 0x90} }, 69 - { 0x04e0, 16, {0x7d, 0xc0, 0x75, 0x85, 0x10, 0x85, 0x32, 0x84, 0xe0, 0x05, 0x86, 0x05, 0x84, 0xf0, 0xe5, 0x84} }, 70 - { 0x04f0, 16, {0xb5, 0x33, 0x02, 0x80, 0x09, 0x05, 0x32, 0x05, 0x86, 0xa3, 0xd9, 0xec, 0x80, 0x00, 0x90, 0x7f} }, 71 - { 0x0500, 16, {0xc9, 0xf0, 0xb1, 0x6d, 0x74, 0x20, 0x90, 0x7f, 0x9c, 0xf0, 0xd0, 0xe0, 0xd0, 0x85, 0xd0, 0x84} }, 72 - { 0x0510, 16, {0xd0, 0x83, 0xd0, 0x82, 0xd0, 0x86, 0x32, 0xe4, 0xf5, 0x86, 0x90, 0x7f, 0xbc, 0xe0, 0x20, 0xe1} }, 73 - { 0x0520, 16, {0x4b, 0x90, 0x7d, 0x00, 0xe5, 0x32, 0xf0, 0xa3, 0xe5, 0x33, 0xf0, 0xa3, 0xe5, 0x30, 0xf0, 0xa3} }, 74 - { 0x0530, 16, {0xe5, 0x31, 0xf0, 0xa3, 0xe4, 0x30, 0x00, 0x01, 0x04, 0xf0, 0xa3, 0x05, 0x86, 0x90, 0x10, 0x00} }, 75 - { 0x0540, 16, {0x79, 0x10, 0xe0, 0xa3, 0x05, 0x86, 0xf0, 0xa3, 0x05, 0x86, 0xd9, 0xf6, 0x05, 0x86, 0x74, 0xfc} }, 76 - { 0x0550, 16, {0xf0, 0xa3, 0x05, 0x86, 0x90, 0x11, 0x00, 0x79, 0x10, 0xe0, 0xa3, 0x05, 0x86, 0xf0, 0xa3, 0x05} }, 77 - { 0x0560, 16, {0x86, 0xd9, 0xf6, 0xe4, 0xf5, 0x86, 0x90, 0x7f, 0xbd, 0x74, 0x26, 0xf0, 0x22, 0x20, 0x00, 0x13} }, 78 - { 0x0570, 16, {0xe5, 0x32, 0xb5, 0x33, 0x01, 0x22, 0x05, 0x33, 0x75, 0x83, 0x10, 0x85, 0x33, 0x82, 0xe0, 0xf5} }, 79 - { 0x0580, 16, {0x99, 0xd2, 0x00, 0x74, 0x00, 0xb5, 0x34, 0x01, 0x22, 0xe5, 0x33, 0xd3, 0x95, 0x32, 0xc3, 0x95} }, 80 - { 0x0590, 16, {0x34, 0x40, 0xf5, 0x75, 0x34, 0x00, 0xd2, 0x01, 0x02, 0x05, 0xdc, 0xc0, 0x86, 0xc0, 0x82, 0xc0} }, 81 - { 0x05a0, 16, {0x83, 0xc0, 0x84, 0xc0, 0x85, 0xc0, 0xe0, 0x30, 0x99, 0x07, 0xc2, 0x99, 0xc2, 0x00, 0x12, 0x05} }, 82 - { 0x05b0, 16, {0x70, 0x30, 0x98, 0x05, 0x12, 0x05, 0xc6, 0xc2, 0x98, 0xd0, 0xe0, 0xd0, 0x85, 0xd0, 0x84, 0xd0} }, 83 - { 0x05c0, 16, {0x83, 0xd0, 0x82, 0xd0, 0x86, 0x32, 0x75, 0x83, 0x11, 0x85, 0x30, 0x82, 0x05, 0x82, 0xe5, 0x99} }, 84 - { 0x05d0, 16, {0xf0, 0xe5, 0x82, 0xb5, 0x31, 0x01, 0x22, 0x05, 0x30, 0xb1, 0xdc, 0x22, 0x74, 0x10, 0x90, 0x7f} }, 85 - { 0x05e0, 16, {0x9c, 0xf0, 0x90, 0x7f, 0xb8, 0xe0, 0x20, 0xe1, 0x3e, 0x20, 0x01, 0x3c, 0xe5, 0x30, 0xb5, 0x31} }, 86 - { 0x05f0, 16, {0x01, 0x22, 0xe4, 0xf5, 0x86, 0x75, 0x83, 0x11, 0x05, 0x86, 0x90, 0x7e, 0x00, 0xf0, 0xa3, 0x05} }, 87 - { 0x0600, 16, {0x86, 0x79, 0x01, 0xe5, 0x30, 0xb5, 0x31, 0x02, 0x80, 0x10, 0x05, 0x31, 0x85, 0x31, 0x82, 0xe0} }, 88 - { 0x0610, 16, {0x05, 0x86, 0xf0, 0xa3, 0x05, 0x86, 0x09, 0xb9, 0x40, 0xe9, 0x74, 0x10, 0x90, 0x7f, 0x9c, 0xf0} }, 89 - { 0x0620, 16, {0x90, 0x7f, 0xb9, 0xe9, 0x60, 0x01, 0xf0, 0x22, 0xc2, 0x01, 0xe4, 0xf5, 0x86, 0x90, 0x7e, 0x00} }, 90 - { 0x0630, 16, {0x74, 0x01, 0xf0, 0xa3, 0x74, 0x02, 0xf0, 0x90, 0x7f, 0xb9, 0xf0, 0x22, 0xc2, 0x99, 0xf5, 0x99} }, 91 - { 0x0640, 16, {0x30, 0x99, 0xfd, 0xc2, 0x99, 0x22, 0xe5, 0x5e, 0xf6, 0x3c, 0xfd, 0x8f, 0xfe, 0xc8, 0xff, 0x64} }, 92 - { 0x0650, 16, {0xff, 0xb2, 0xff, 0xd9, 0xff, 0xed, 0xff, 0xf3, 0xff, 0xfa, 0x12, 0x01, 0x00, 0x01, 0xff, 0xff} }, 93 - { 0x0660, 16, {0xff, 0x40, 0xcd, 0x06, 0x04, 0x01, 0x89, 0xab, 0x01, 0x02, 0x03, 0x01, 0x09, 0x02, 0x20, 0x00} }, 94 - { 0x0670, 16, {0x01, 0x01, 0x00, 0x80, 0x32, 0x09, 0x04, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0x00, 0x07, 0x05} }, 95 - { 0x0680, 16, {0x82, 0x03, 0x40, 0x00, 0x01, 0x07, 0x05, 0x02, 0x02, 0x40, 0x00, 0x00, 0x06, 0x94, 0x06, 0x98} }, 96 - { 0x0690, 16, {0x06, 0xba, 0x06, 0xe8, 0x04, 0x03, 0x00, 0x00, 0x22, 0x03, 0x41, 0x00, 0x43, 0x00, 0x4d, 0x00} }, 97 - { 0x06a0, 16, {0x45, 0x00, 0x20, 0x00, 0x75, 0x00, 0x73, 0x00, 0x62, 0x00, 0x20, 0x00, 0x77, 0x00, 0x69, 0x00} }, 98 - { 0x06b0, 16, {0x64, 0x00, 0x67, 0x00, 0x65, 0x00, 0x74, 0x00, 0x73, 0x00, 0x2e, 0x03, 0x41, 0x00, 0x43, 0x00} }, 99 - { 0x06c0, 16, {0x4d, 0x00, 0x45, 0x00, 0x20, 0x00, 0x55, 0x00, 0x53, 0x00, 0x42, 0x00, 0x20, 0x00, 0x73, 0x00} }, 100 - { 0x06d0, 16, {0x65, 0x00, 0x72, 0x00, 0x69, 0x00, 0x61, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x77, 0x00, 0x69, 0x00} }, 101 - { 0x06e0, 14, {0x64, 0x00, 0x67, 0x00, 0x65, 0x00, 0x74, 0x00, 0x06, 0x03, 0x34, 0x00, 0x37, 0x00} }, 102 - { 0xffff, 0, {0x00} } 103 - };
+2
firmware/Makefile
··· 49 49 keyspan/usa28.fw keyspan/usa28xa.fw keyspan/usa28xb.fw \ 50 50 keyspan/usa28x.fw keyspan/usa49w.fw keyspan/usa49wlc.fw 51 51 endif 52 + fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_PDA) += keyspan_pda/keyspan_pda.fw 53 + fw-shipped-$(CONFIG_USB_SERIAL_XIRCOM) += keyspan_pda/xircom_pgs.fw 52 54 53 55 fw-shipped-all := $(fw-shipped-y) $(fw-shipped-m) $(fw-shipped-) 54 56
+14
firmware/WHENCE
··· 119 119 part, requires the inclusion of this statement." 120 120 121 121 -------------------------------------------------------------------------- 122 + 123 + Driver: keyspan_pda -- USB Keyspan PDA single-port serial device 124 + 125 + File: keyspan_pda/keyspan_pda.fw 126 + Source: keyspan_pda/keyspan_pda.S 127 + 128 + File: keyspan_pda/xircom_pgs.fw 129 + Source: keyspan_pda/xircom_pgs.S 130 + 131 + Licence: GPLv2+ 132 + 133 + Compiled from original 8051 source into Intel HEX, used in our binary ihex form. 134 + 135 + --------------------------------------------------------------------------
+83
firmware/keyspan_pda/keyspan_pda.HEX
··· 1 + :03000000020200F9 2 + :0400230002055F0073 3 + :0400430002010000B6 4 + :050030000000000000CB 5 + :10010000020296000200000002000000020000004F 6 + :1001100002000000020000000200000002000000D7 7 + :1001200002000000020000000204610002048900D5 8 + :1002000075815EE4F532F533F530F531F534C20031 9 + :10021000C201A90074FE901000F0A3D9FC74FD90F7 10 + :100220001100F0A3D9FC7402907F9DF07400907FC0 11 + :1002300097F07486907F9EF0907F957403F0907F86 12 + :10024000AFE0D2E0F07401907FABF0907FAEF09021 13 + :100250007FAC7404F0907FAD7404F0907FC9F074AB 14 + :1002600084907F98F07400F59875C8307B059120D4 15 + :10027000D2CA759850D2E8D2AFD2AC7400F586904D 16 + :100280007FD67402F0792E7A007B00DBFEDAFAD991 17 + :10029000F67406F080FEC086C082C083C084C0852C 18 + :1002A000C0E0E591C2E4F591907FAB7401F0907FDE 19 + :1002B000E8E0F9A3E0FAA3E0FBA3E0FCE95460B4B2 20 + :1002C0000003020339B4406EBA000B12042040034D 21 + :1002D00002040202040ABA010302040ABA02030277 22 + :1002E000040ABA0303020444BA041EBB000A907F46 23 + :1002F00095E04402F0020402907F98E054FDF090F3 24 + :100300007F95E054FDF0020402BA050302040ABA24 25 + :100310000619BB0008E533D395320203DEBB0108A2 26 + :10032000E532C395330203DE02040ABA07058B34B3 27 + :1003300002040202040A02040ABA0020B9801090E2 28 + :100340007F00E4F0A3F0907FB57402F0020402B9DC 29 + :10035000820280EBB9810280E602040ABA010FBB77 30 + :10036000000302040ABB010302040202040ABA03E6 31 + :100370000FBB000302040ABB010302040202040AC9 32 + :10038000BA0656BC010F907FD47406F0907FD574E6 33 + :1003900012F0020402BC0212BB006F907FD47406FC 34 + :1003A000F0907FD57424F0020402BC03297404C3C6 35 + :1003B0009B40576055EB2B9006442582F5827400D4 36 + :1003C0003583F583E0F9A3E0FA907FD4E9F0907FDC 37 + :1003D000D5EAF002040202040ABA080F7401907F01 38 + :1003E00000F07401907FB5F0020402BA0903020420 39 + :1003F00002BA0A0574000203DEBA0B030204020209 40 + :10040000040A907FB47402F08009907FB4E0440144 41 + :10041000F08000D0E0D085D084D083D082D08632E6 42 + :10042000EB20E71EC3940A5019EB2324FEF58274D7 43 + :10043000053400F583E0F5CBF5CDA3E0F5CAF5CCA6 44 + :10044000C322D322B94111EB64FF5484FB907F98FF 45 + :10045000E0547B4BF0020402907F9BE064FF0203B8 46 + :10046000DEC086C082C083C084C085C0E0E591C282 47 + :10047000E4F591907FA97404F01205A0D0E0D08536 48 + :10048000D084D083D082D08632C086C082C083C060 49 + :1004900084C085C0E0E591C2E4F591907FAA740420 50 + :1004A000F0907FC9E0F9E4F586907DC075851085F0 51 + :1004B0003284E005860584F0E584B53302800905C1 52 + :1004C000320586A3D9EC8000907FC9F0B131D0E02D 53 + :1004D000D085D084D083D082D08632E4F586907FD8 54 + :1004E000BCE020E14B907D00E532F0A3E533F0A3C2 55 + :1004F000E530F0A3E531F0A3E430000104F0A305FA 56 + :10050000869010007910E0A30586F0A30586D9F641 57 + :10051000058674FCF0A305869011007910E0A30510 58 + :1005200086F0A30586D9F6E4F586907FBD7426F0A3 59 + :1005300022200013E532B53301220533758310857F 60 + :100540003382E0F599D2007400B5340122E533D34B 61 + :100550009532C3953440F5753400D2010205A0C030 62 + :1005600086C082C083C084C085C0E0309907C2992C 63 + :10057000C20012053430980512058AC298D0E0D026 64 + :1005800085D084D083D082D0863275831185308225 65 + :100590000582E599F0E582B53101220530B1A0224E 66 + :1005A000907FB8E020E138200136E530B5310122F6 67 + :1005B000E4F5867583110586907E00F0A3058679A3 68 + :1005C00001E530B5310280100531853182E00586C4 69 + :1005D000F0A3058609B940E9907FB9E96001F022EE 70 + :1005E000C201E4F586907E007401F0A37402F090DD 71 + :1005F0007FB9F022C299F5993099FDC29922E55E42 72 + :10060000F63CFD8FFEC8FF64FFB2FFD9FFEDFFF39C 73 + :10061000FFFA12010001FFFFFF40CD06040189AB84 74 + :1006200001020301090220000101008032090400D7 75 + :100630000002FFFFFF0007058203400001070502DB 76 + :1006400002400000064C0650067206A0040300009B 77 + :100650002203410043004D00450020007500730057 78 + :100660006200200077006900640067006500740084 79 + :1006700073002E03410043004D004500200055004B 80 + :1006800053004200200073006500720069006100A1 81 + :100690006C0020007700690064006700650074004A 82 + :0606A000060334003700E0 83 + :00000001FF
+87
firmware/keyspan_pda/xircom_pgs.HEX
··· 1 + :03000000020200F9 2 + :0400230002059B0037 3 + :050030000000000000CB 4 + :0400430002010000B6 5 + :100100000202BA000200000002000000020000002B 6 + :1001100002000000020000000200000002000000D7 7 + :100120000200000002000000020485000204B90081 8 + :1002000075815EE4F532F533F530F531F534C20031 9 + :10021000C201A90074FE901000F0A3D9FC74FD90F7 10 + :100220001100F0A3D9FC907F9474BFF0907F957477 11 + :10023000EFF07410907F9EF07400907F98F07440FF 12 + :10024000907F9DF07400907F97F07482907F9EF075 13 + :10025000907F957403F0907FAFE0D2E0F07401904E 14 + :100260007FABF0907FAEF0907FAC7404F0907FADE8 15 + :100270007404F0907FC9F07407907FAFF074209001 16 + :100280007F9CF07480907F98F07453F59875C83017 17 + :100290007B059144D2CA759850D2E8D2AFD2AC74E3 18 + :1002A00000F586907FD67402F0792E7A007B00DB11 19 + :1002B000FEDAFAD9F67406F080FEC086C082C083EA 20 + :1002C000C084C085C0E0E591C2E4F591907FAB7435 21 + :1002D00001F0907FE8E0F9A3E0FAA3E0FBA3E0FCE3 22 + :1002E000E95460B4000302035DB4406EBA000B121F 23 + :1002F0000444400302042602042EBA010302042E21 24 + :10030000BA020302042EBA0303020468BA041EBB35 25 + :10031000000A907F95E04402F0020426907F98E066 26 + :1003200054FDF0907F95E054FDF0020426BA0503D9 27 + :1003300002042EBA0619BB0008E533D39532020435 28 + :1003400002BB0108E532C3953302040202042EBA4F 29 + :1003500007058B3402042602042E02042EBA002064 30 + :10036000B98010907F00E4F0A3F0907FB57402F0A4 31 + :10037000020426B9820280EBB9810280E602042ED3 32 + :10038000BA010FBB000302042EBB010302042602C4 33 + :10039000042EBA030FBB000302042EBB01030204A8 34 + :1003A0002602042EBA0656BC010F907FD47406F0C4 35 + :1003B000907FD5745AF0020426BC0212BB006F90E5 36 + :1003C0007FD47406F0907FD5746CF0020426BC03D1 37 + :1003D000297404C39B40576055EB2B90068C2582F3 38 + :1003E000F58274003583F583E0F9A3E0FA907FD4B9 39 + :1003F000E9F0907FD5EAF002042602042EBA080F35 40 + :100400007401907F00F07401907FB5F0020426BA69 41 + :100410000903020426BA0A057400020402BA0B0397 42 + :1004200002042602042E907FB47402F08009907FAB 43 + :10043000B4E04401F08000D0E0D085D084D083D0F7 44 + :1004400082D08632EB20E71EC3940A5019EB232496 45 + :1004500046F58274063400F583E0F5CBF5CDA3E0D4 46 + :10046000F5CAF5CCC322D322B94111EB64FF548005 47 + :10047000FB907F98E0547F4BF0020426907F9BE036 48 + :1004800064FF020402C086C082C083C084C085C0ED 49 + :10049000E0E591C2E4F591907FA97404F074209096 50 + :1004A0007F9CF01205DC7420907F9CF0D0E0D0851A 51 + :1004B000D084D083D082D08632C086C082C083C030 52 + :1004C00084C085C0E07410907F9CF0E591C2E4F593 53 + :1004D00091907FAA7404F0907FC9E0F9E4F58690CA 54 + :1004E0007DC0758510853284E005860584F0E5843D 55 + :1004F000B53302800905320586A3D9EC8000907FD0 56 + :10050000C9F0B16D7420907F9CF0D0E0D085D0848C 57 + :10051000D083D082D08632E4F586907FBCE020E1A3 58 + :100520004B907D00E532F0A3E533F0A3E530F0A376 59 + :10053000E531F0A3E430000104F0A305869010003B 60 + :100540007910E0A30586F0A30586D9F6058674FC2C 61 + :10055000F0A305869011007910E0A30586F0A305AD 62 + :1005600086D9F6E4F586907FBD7426F0222000132C 63 + :10057000E532B53301220533758310853382E0F50A 64 + :1005800099D2007400B5340122E533D39532C39576 65 + :100590003440F5753400D2010205DCC086C082C04B 66 + :1005A00083C084C085C0E0309907C299C20012059B 67 + :1005B000703098051205C6C298D0E0D085D084D09E 68 + :1005C00083D082D086327583118530820582E59989 69 + :1005D000F0E582B53101220530B1DC227410907F44 70 + :1005E0009CF0907FB8E020E13E20013CE530B53141 71 + :1005F0000122E4F5867583110586907E00F0A3053F 72 + :10060000867901E530B5310280100531853182E00F 73 + :100610000586F0A3058609B940E97410907F9CF027 74 + :10062000907FB9E96001F022C201E4F586907E0076 75 + :100630007401F0A37402F0907FB9F022C299F59989 76 + :100640003099FDC29922E55EF63CFD8FFEC8FF643D 77 + :10065000FFB2FFD9FFEDFFF3FFFA12010001FFFF28 78 + :10066000FF40CD06040189AB01020301090220000D 79 + :1006700001010080320904000002FFFFFF000705AE 80 + :10068000820340000107050202400000069406981C 81 + :1006900006BA06E8040300002203410043004D00AF 82 + :1006A000450020007500730062002000770069009B 83 + :1006B000640067006500740073002E03410043006E 84 + :1006C0004D004500200055005300420020007300FB 85 + :1006D00065007200690061006C002000770069000D 86 + :0E06E0006400670065007400060334003700F4 87 + :00000001FF