Good evening, freedom fighters, I am preparing some patches to Linux. This patch-set intends to add build rules for the keyspan_pda and xircom_pgs free firmwares.
I'd like to get it reviewed by you guys before I send it to the linux-usb mailing list. I need some advice on the third patch since it is currently incomplete. I have added a build_firmware target to the Makefile in the firmware/ directory. This target will be responsible for invoking the Makefiles of the subdirectories where there is code of free firmware that needs to be built into HEX files. Currently just these two firmwares are going to be compiled by this target, but in the future I hope to see *all* firmware in Linux being built by this target :-D The issue is that I dont know exactly how to add this target as a dependency of the rule that converts HEX into .fw (binary ihex format used by the kernel). Can you help me fix that? Happy Hacking, Felipe Sanches PS: I will travel tomorrow in the morning and I'll be back to the internet on Monday (january 10th).
From a2f41d8a7e3307ba328ee434799e7414c5174d34 Mon Sep 17 00:00:00 2001 From: Felipe Correa da Silva Sanches <[email protected]> Date: Tue, 4 Jan 2011 19:59:40 -0200 Subject: [PATCH 1/3] add a header with general #defines for EzUSB firmware development There are several devices that use a Cypress EzUSB microcontroller. Most of these devices are digital tv receivers. This header file contains #defines with register addresses based on info from the EzUSB datasheet. Free firmware for ezusb devices can use this header to avoid duplication of code. --- firmware/include/ezusb.h | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 46 insertions(+), 0 deletions(-) create mode 100644 firmware/include/ezusb.h diff --git a/firmware/include/ezusb.h b/firmware/include/ezusb.h new file mode 100644 index 0000000..984ffa8 --- /dev/null +++ b/firmware/include/ezusb.h @@ -0,0 +1,46 @@ +#define dpl1 0x84 +#define dph1 0x85 +#define dps 0x86 + +;;// usb interrupt : enable is EIE.0 (0xe8), flag is EXIF.4 (0x91) +#define EXIF 0x91 +#define EIE 0xe8 +#define EUSB (EIE+0) +#define IE 0xa8 +#define ES0 (IE+4) + +#define EP0CS #0x7fb4 +#define EP0STALLbit #0x01 +#define IN0BUF #0x7f00 +#define IN0BC #0x7fb5 +#define OUT0BUF #0x7ec0 +#define OUT0BC #0x7fc5 +#define IN2BUF #0x7e00 +#define IN2BC #0x7fb9 +#define IN2CS #0x7fb8 +#define OUT2BC #0x7fc9 +#define OUT2CS #0x7fc8 +#define OUT2BUF #0x7dc0 +#define IN4BUF #0x7d00 +#define IN4BC #0x7fbd +#define IN4CS #0x7fbc +#define OEB #0x7f9d +#define OUTB #0x7f97 +#define OEC #0x7f9e +#define OUTC #0x7f98 +#define PINSC #0x7f9b +#define PORTBCFG #0x7f94 +#define PORTCCFG #0x7f95 +#define OEA #0x7f9c +#define IN07IRQ #0x7fa9 +#define OUT07IRQ #0x7faa +#define IN07IEN #0x7fac +#define OUT07IEN #0x7fad +#define USBIRQ #0x7fab +#define USBIEN #0x7fae +#define USBBAV #0x7faf +#define USBCS #0x7fd6 +#define SUDPTRH #0x7fd4 +#define SUDPTRL #0x7fd5 +#define SETUPDAT #0x7fe8 + -- 1.7.0.4
From 6afa0dcd1251a6fe1826e23e1acc44b7d34a4b6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felipe=20Corr=C3=AAa=20da=20Silva=20Sanches?= <[email protected]> Date: Tue, 4 Jan 2011 20:50:56 -0200 Subject: [PATCH 2/3] update keyspan_pda firmware source code so that it can be built with asx8051 This firmware originally had instructions on how to build it with as31 (8051 assembler). As we have several devices based on the 8051, it is good that we have a single prefered 8051 assembler. I have chosen asx8051 since it is the assembler used by sdcc (Small Devices C Compiler) and we already have some firmware code that uses that. This patch adjusts the syntax of the keyspan_pda and xircom_pgs firmware code so that it can be built with asx8051. --- firmware/keyspan_pda/keyspan_pda.S | 107 +++++++++--------------------------- firmware/keyspan_pda/xircom_pgs.S | 102 ++++++++-------------------------- 2 files changed, 51 insertions(+), 158 deletions(-) diff --git a/firmware/keyspan_pda/keyspan_pda.S b/firmware/keyspan_pda/keyspan_pda.S index f3acc19..805237d 100644 --- a/firmware/keyspan_pda/keyspan_pda.S +++ b/firmware/keyspan_pda/keyspan_pda.S @@ -4,6 +4,7 @@ * the EzUSB microcontroller. * * (C) Copyright 2000 Brian Warner <[email protected]> + * (C) Copyright 2011 Felipe Correa da Silva Sanches <[email protected]> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,13 +23,6 @@ * PC2 -> rts pin 7 PC6 <- dcd pin 1 * PC3 <- cts pin 8 PC7 -> dtr pin 4 * PB1 -> line driver standby - * - * The EzUSB register constants below come from their excellent documentation - * and sample code (which used to be available at www.anchorchips.com, but - * that has now been absorbed into Cypress' site and the CD-ROM contents - * don't appear to be available online anymore). If we get multiple - * EzUSB-based drivers into the kernel, it might be useful to pull them out - * into a separate .h file. * * THEORY OF OPERATION: * @@ -80,13 +74,6 @@ * use totally different registers! * USB 1.1 spec: www.usb.org * - * HOW TO BUILD: - * gcc -x assembler-with-cpp -P -E -o keyspan_pda.asm keyspan_pda.s - * as31 -l keyspan_pda.asm - * mv keyspan_pda.obj keyspan_pda.hex - * perl ezusb_convert.pl keyspan_pda < keyspan_pda.hex > keyspan_pda_fw.h - * Get as31 from <http://www.pjrc.com/tech/8051/index.html>, and hack on it - * a bit to make it build. * * THANKS: * Greg Kroah-Hartman, for coordinating the whole usb-serial thing. @@ -109,82 +96,45 @@ * * -Brian Warner <[email protected]> * - */ - -#define HIGH(x) (((x) & 0xff00) / 256) -#define LOW(x) ((x) & 0xff) + * The EzUSB register constants in the ezusb.h file come from their excellent + * documentation and sample code (which used to be available at + * www.anchorchips.com, but that has now been absorbed into Cypress' site + * and the CD-ROM contents don't appear to be available online anymore). +*/ +#include <ezusb.h> -#define dpl1 0x84 -#define dph1 0x85 -#define dps 0x86 +.area CODE (ABS) + +#define HIGH(x) >x +#define LOW(x) <x ;;; our bit assignments #define TX_RUNNING 0 #define DO_TX_UNTHROTTLE 1 - ;; stack from 0x60 to 0x7f: should really set SP to 0x60-1, not 0x60 +;; stack from 0x60 to 0x7f: should really set SP to 0x60-1, not 0x60 #define STACK #0x60-1 -#define EXIF 0x91 -#define EIE 0xe8 - .flag EUSB, EIE.0 - .flag ES0, IE.4 - -#define EP0CS #0x7fb4 -#define EP0STALLbit #0x01 -#define IN0BUF #0x7f00 -#define IN0BC #0x7fb5 -#define OUT0BUF #0x7ec0 -#define OUT0BC #0x7fc5 -#define IN2BUF #0x7e00 -#define IN2BC #0x7fb9 -#define IN2CS #0x7fb8 -#define OUT2BC #0x7fc9 -#define OUT2CS #0x7fc8 -#define OUT2BUF #0x7dc0 -#define IN4BUF #0x7d00 -#define IN4BC #0x7fbd -#define IN4CS #0x7fbc -#define OEB #0x7f9d -#define OUTB #0x7f97 -#define OEC #0x7f9e -#define OUTC #0x7f98 -#define PINSC #0x7f9b -#define PORTCCFG #0x7f95 -#define IN07IRQ #0x7fa9 -#define OUT07IRQ #0x7faa -#define IN07IEN #0x7fac -#define OUT07IEN #0x7fad -#define USBIRQ #0x7fab -#define USBIEN #0x7fae -#define USBBAV #0x7faf -#define USBCS #0x7fd6 -#define SUDPTRH #0x7fd4 -#define SUDPTRL #0x7fd5 -#define SETUPDAT #0x7fe8 - - ;; usb interrupt : enable is EIE.0 (0xe8), flag is EXIF.4 (0x91) - .org 0 ljmp start ;; interrupt vectors - .org 23H + .org 0x23 ljmp serial_int .byte 0 - .org 43H + .org 0x43 ljmp USB_Jump_Table .byte 0 ; filled in by the USB core ;;; local variables. These are not initialized properly: do it by hand. - .org 30H + .org 0x30 rx_ring_in: .byte 0 rx_ring_out: .byte 0 tx_ring_in: .byte 0 tx_ring_out: .byte 0 tx_unthrottle_threshold: .byte 0 - .org 0x100H ; wants to be on a page boundary + .org 0x100 ; wants to be on a page boundary USB_Jump_Table: ljmp ISR_Sudav ; Setup Data Available .byte 0 @@ -243,11 +193,11 @@ clear_rx_ring_loop: ;;; turn on the RS-232 driver chip (bring the STANDBY pin low) ;; set OEB.1 - mov a, #02H + mov a, #0x02 mov dptr,OEB movx @dptr,a ;; clear PB1 - mov a, #00H + mov a, #0x00 mov dptr,OUTB movx @dptr,a ;; set OEC.[127] @@ -285,7 +235,7 @@ clear_rx_ring_loop: mov dptr,OUTC movx @dptr, a ;; setup the serial port. 9600 8N1. - mov a,#01010011 ; mode 1, enable rx, clear int + mov a,#0b01010011 ; mode 1, enable rx, clear int mov SCON, a ;; using timer2, in 16-bit baud-rate-generator mode ;; (xtal 12MHz, internal fosc 24MHz) @@ -298,11 +248,11 @@ clear_rx_ring_loop: #define BAUD_HIGH(rate) HIGH(BAUD_TIMEOUT(rate)) #define BAUD_LOW(rate) LOW(BAUD_TIMEOUT(rate)) - mov T2CON, #030h ; rclk=1,tclk=1,cp=0,tr2=0(enable later) + mov T2CON, #0x30 ; rclk=1,tclk=1,cp=0,tr2=0(enable later) mov r3, #5 acall set_baud setb TR2 - mov SCON, #050h + mov SCON, #0x50 #if 0 mov r1, #0x40 @@ -362,7 +312,7 @@ ISR_Sudav: clr acc.4 mov EXIF,a ; clear INT2 first mov dptr, USBIRQ ; clear USB int - mov a,#01h + mov a,#0x01 movx @dptr,a ;; get request type @@ -712,7 +662,7 @@ ISR_Ep2in: clr acc.4 mov EXIF,a ; clear INT2 first mov dptr, IN07IRQ ; clear USB int - mov a,#04h + mov a,#0x04 movx @dptr,a ;; do stuff @@ -737,7 +687,7 @@ ISR_Ep2out: clr acc.4 mov EXIF,a ; clear INT2 first mov dptr, OUT07IRQ ; clear USB int - mov a,#04h + mov a,#0x04 movx @dptr,a ;; do stuff @@ -1115,10 +1065,7 @@ string_serial_end: .org 0x1000 tx_ring: - .skip 0x100 ; 256 bytes + .ds 0x100 ; 256 bytes rx_ring: - .skip 0x100 ; 256 bytes - - - .END - + .ds 0x100 ; 256 bytes + diff --git a/firmware/keyspan_pda/xircom_pgs.S b/firmware/keyspan_pda/xircom_pgs.S index 0b79bbf..bd6f0a2 100644 --- a/firmware/keyspan_pda/xircom_pgs.S +++ b/firmware/keyspan_pda/xircom_pgs.S @@ -4,6 +4,7 @@ * the EzUSB microcontroller. * * (C) Copyright 2000 Brian Warner <[email protected]> + * (C) Copyright 2011 Felipe Correa da Silva Sanches <[email protected]> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -23,12 +24,6 @@ * PC3 <- cts pin 8 PC7 -> dtr pin 4 * PB1 -> line driver standby * - * The EzUSB register constants below come from their excellent documentation - * and sample code (which used to be available at www.anchorchips.com, but - * that has now been absorbed into Cypress' site and the CD-ROM contents - * don't appear to be available online anymore). If we get multiple - * EzUSB-based drivers into the kernel, it might be useful to pull them out - * into a separate .h file. * * THEORY OF OPERATION: * @@ -80,13 +75,6 @@ * use totally different registers! * USB 1.1 spec: www.usb.org * - * HOW TO BUILD: - * gcc -x assembler-with-cpp -P -E -o keyspan_pda.asm keyspan_pda.s - * as31 -l keyspan_pda.asm - * mv keyspan_pda.obj keyspan_pda.hex - * perl ezusb_convert.pl keyspan_pda < keyspan_pda.hex > keyspan_pda_fw.h - * Get as31 from <http://www.pjrc.com/tech/8051/index.html>, and hack on it - * a bit to make it build. * * THANKS: * Greg Kroah-Hartman, for coordinating the whole usb-serial thing. @@ -109,84 +97,45 @@ * * -Brian Warner <[email protected]> * - */ + * The EzUSB register constants in the ezusb.h file come from their excellent + * documentation and sample code (which used to be available at + * www.anchorchips.com, but that has now been absorbed into Cypress' site + * and the CD-ROM contents don't appear to be available online anymore). +*/ +#include <ezusb.h> -#define HIGH(x) (((x) & 0xff00) / 256) -#define LOW(x) ((x) & 0xff) - -#define dpl1 0x84 -#define dph1 0x85 -#define dps 0x86 +#define HIGH(x) >x +#define LOW(x) <x ;;; our bit assignments #define TX_RUNNING 0 #define DO_TX_UNTHROTTLE 1 - ;; stack from 0x60 to 0x7f: should really set SP to 0x60-1, not 0x60 +;; stack from 0x60 to 0x7f: should really set SP to 0x60-1, not 0x60 #define STACK #0x60-1 -#define EXIF 0x91 -#define EIE 0xe8 - .flag EUSB, EIE.0 - .flag ES0, IE.4 - -#define EP0CS #0x7fb4 -#define EP0STALLbit #0x01 -#define IN0BUF #0x7f00 -#define IN0BC #0x7fb5 -#define OUT0BUF #0x7ec0 -#define OUT0BC #0x7fc5 -#define IN2BUF #0x7e00 -#define IN2BC #0x7fb9 -#define IN2CS #0x7fb8 -#define OUT2BC #0x7fc9 -#define OUT2CS #0x7fc8 -#define OUT2BUF #0x7dc0 -#define IN4BUF #0x7d00 -#define IN4BC #0x7fbd -#define IN4CS #0x7fbc -#define OEB #0x7f9d -#define OUTB #0x7f97 -#define OEC #0x7f9e -#define OUTC #0x7f98 -#define PINSC #0x7f9b -#define PORTBCFG #0x7f94 -#define PORTCCFG #0x7f95 -#define OEA #0x7f9c -#define IN07IRQ #0x7fa9 -#define OUT07IRQ #0x7faa -#define IN07IEN #0x7fac -#define OUT07IEN #0x7fad -#define USBIRQ #0x7fab -#define USBIEN #0x7fae -#define USBBAV #0x7faf -#define USBCS #0x7fd6 -#define SUDPTRH #0x7fd4 -#define SUDPTRL #0x7fd5 -#define SETUPDAT #0x7fe8 - - ;; usb interrupt : enable is EIE.0 (0xe8), flag is EXIF.4 (0x91) +.area CODE (ABS) .org 0 ljmp start ;; interrupt vectors - .org 23H + .org 0x23 ljmp serial_int .byte 0 - .org 43H + .org 0x43 ljmp USB_Jump_Table .byte 0 ; filled in by the USB core ;;; local variables. These are not initialized properly: do it by hand. - .org 30H + .org 0x30 rx_ring_in: .byte 0 rx_ring_out: .byte 0 tx_ring_in: .byte 0 tx_ring_out: .byte 0 tx_unthrottle_threshold: .byte 0 - .org 0x100H ; wants to be on a page boundary + .org 0x100 ; wants to be on a page boundary USB_Jump_Table: ljmp ISR_Sudav ; Setup Data Available .byte 0 @@ -336,11 +285,11 @@ clear_rx_ring_loop: #define BAUD_HIGH(rate) HIGH(BAUD_TIMEOUT(rate)) #define BAUD_LOW(rate) LOW(BAUD_TIMEOUT(rate)) - mov T2CON, #030h ; rclk=1,tclk=1,cp=0,tr2=0(enable later) + mov T2CON, #0x30 ; rclk=1,tclk=1,cp=0,tr2=0(enable later) mov r3, #5 acall set_baud setb TR2 - mov SCON, #050h + mov SCON, #0x50 #if 0 mov r1, #0x40 @@ -400,7 +349,7 @@ ISR_Sudav: clr acc.4 mov EXIF,a ; clear INT2 first mov dptr, USBIRQ ; clear USB int - mov a,#01h + mov a,#0x01 movx @dptr,a ;; get request type @@ -751,7 +700,7 @@ ISR_Ep2in: clr acc.4 mov EXIF,a ; clear INT2 first mov dptr, IN07IRQ ; clear USB int - mov a,#04h + mov a,#0x04 movx @dptr,a mov a, #0x20 ; Turn off the green LED @@ -794,7 +743,7 @@ ISR_Ep2out: clr acc.4 mov EXIF,a ; clear INT2 first mov dptr, OUT07IRQ ; clear USB int - mov a,#04h + mov a,#0x04 movx @dptr,a ;; do stuff @@ -1051,8 +1000,8 @@ start_in__kick: ;; either we ran out of data, or we copied 64 bytes. r1 has byte count ;; kick off IN mov a, #0x10 ; Turn the green LED - mov dptr,OEA - movx @dptr, a + mov dptr,OEA + movx @dptr, a mov dptr, IN2BC mov a, r1 jz start_in__done @@ -1183,10 +1132,7 @@ string_serial_end: .org 0x1000 tx_ring: - .skip 0x100 ; 256 bytes + .ds 0x100 ; 256 bytes rx_ring: - .skip 0x100 ; 256 bytes - - - .END + .ds 0x100 ; 256 bytes -- 1.7.0.4
From b645aa24cec6e9ca96c5b340ad14b34960c28ccf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felipe=20Corr=C3=AAa=20da=20Silva=20Sanches?= <[email protected]> Date: Tue, 4 Jan 2011 22:02:57 -0200 Subject: [PATCH 3/3] add Makefile for building keyspan_pda firmware from source This Makefile builds keyspan_pda.S and xircom_pgs.S resulting in IHEX firmware files (keyspan_pda.HEX and xircom_pgs.HEX) These files are not identical to the currently shipped ones, but their IHEX content is an equivalent representation of the exact same addresses and memory content. This difference is probably due to the use of different tools (the firmware seem to have been originally built with as31 but now we are using asx8051) to build these files, but it is not a problem since these IHEX files are completely equivalent data encodings of the same 8051 object code. I have checked that. xircom_pgs.HEX object code matches perfectly with the currently shipped one while there is only a one-byte mismatch for keyspan_pda.HEX object code which is discussed in the following paragraph. There is only a single one-byte difference in the object code of keyspan_pda.HEX in comparison to the originally shipped one: the value of address 0x266 was 0x00 and in this newly-built firmware image it is 0x53. The original developer was contacted and he acknowledges that this seems to be a bug, perhaps in the original tools used to build this firmware in march 2000. This byte (along with the 0x74 that preceds it) means: mov a, #0x53 (new build) or mov a, #0x00 (old build) In context, this is a relevant snipped of surrounding assembly code from keyspan_pda.S: ;; setup the serial port. 9600 8N1. mov a,#0b01010011 ; mode 1, enable rx, clear int mov SCON, a The original code did not have a 0b prefix which may have caused the as31 assembler to consider that binary value to mean zero (a bug in the tool perhaps?!). The intention of the developer is clearly of storing 0x53 in the 8051 SCON (Serial Port Control) register and indeed doing that seems to be correct if you read the description of this register in the 8051 datasheet. So, this patch also solves that issue. Now that we build the firmware from source code we do not need to ship the prebuilt files anymore, so the HEX files are removed by this patch. --- firmware/Makefile | 8 +++ firmware/keyspan_pda/Makefile | 14 +++++ firmware/keyspan_pda/keyspan_pda.HEX | 83 -------------------------------- firmware/keyspan_pda/xircom_pgs.HEX | 87 ---------------------------------- 4 files changed, 22 insertions(+), 170 deletions(-) create mode 100644 firmware/keyspan_pda/Makefile delete mode 100644 firmware/keyspan_pda/keyspan_pda.HEX delete mode 100644 firmware/keyspan_pda/xircom_pgs.HEX diff --git a/firmware/Makefile b/firmware/Makefile index 74d47cd..fea3e62 100644 --- a/firmware/Makefile +++ b/firmware/Makefile @@ -210,6 +210,14 @@ $(patsubst %,$(obj)/%.gen.S, $(fw-external-y)): %: $(wordsize_deps) \ $(patsubst %,$(obj)/%.gen.o, $(fw-shipped-y)): %.gen.o: % $(patsubst %,$(obj)/%.gen.o, $(fw-external-y)): $(obj)/%.gen.o: $(fwdir)/% +firmware_build: +ifdef CONFIG_USB_SERIAL_KEYSPAN_PDA + $(MAKE) --directory=firmware/keyspan_pda/ +endif +ifdef CONFIG_USB_SERIAL_XIRCOM + $(MAKE) --directory=firmware/keyspan_pda/ +endif + # .ihex is used just as a simple way to hold binary files in a source tree # where binaries are frowned upon. They are directly converted with objcopy. $(obj)/%: $(obj)/%.ihex | $(objtree)/$(obj)/$$(dir %) diff --git a/firmware/keyspan_pda/Makefile b/firmware/keyspan_pda/Makefile new file mode 100644 index 0000000..f7f2eb3 --- /dev/null +++ b/firmware/keyspan_pda/Makefile @@ -0,0 +1,14 @@ +INCLUDE=../include/ + +all: keyspan_pda.HEX xircom_pgs.HEX + +%.HEX: %.S + gcc -I $(INCLUDE) -x assembler-with-cpp -P -E -o $*.asm $*.S + asx8051 -lo $*.asm 2> $*.errors + echo "$*.rel\n-iY" | aslink -c + mv $*.ihx $*.HEX + rm -f $*.rel $*.lst $*.asm $*.errors + +clean: + rm -f *.HEX + diff --git a/firmware/keyspan_pda/keyspan_pda.HEX b/firmware/keyspan_pda/keyspan_pda.HEX deleted file mode 100644 index 6fcf02b..0000000 --- a/firmware/keyspan_pda/keyspan_pda.HEX +++ /dev/null @@ -1,83 +0,0 @@ -:03000000020200F9 -:0400230002055F0073 -:0400430002010000B6 -:050030000000000000CB -:10010000020296000200000002000000020000004F -:1001100002000000020000000200000002000000D7 -:1001200002000000020000000204610002048900D5 -:1002000075815EE4F532F533F530F531F534C20031 -:10021000C201A90074FE901000F0A3D9FC74FD90F7 -:100220001100F0A3D9FC7402907F9DF07400907FC0 -:1002300097F07486907F9EF0907F957403F0907F86 -:10024000AFE0D2E0F07401907FABF0907FAEF09021 -:100250007FAC7404F0907FAD7404F0907FC9F074AB -:1002600084907F98F07400F59875C8307B059120D4 -:10027000D2CA759850D2E8D2AFD2AC7400F586904D -:100280007FD67402F0792E7A007B00DBFEDAFAD991 -:10029000F67406F080FEC086C082C083C084C0852C -:1002A000C0E0E591C2E4F591907FAB7401F0907FDE -:1002B000E8E0F9A3E0FAA3E0FBA3E0FCE95460B4B2 -:1002C0000003020339B4406EBA000B12042040034D -:1002D00002040202040ABA010302040ABA02030277 -:1002E000040ABA0303020444BA041EBB000A907F46 -:1002F00095E04402F0020402907F98E054FDF090F3 -:100300007F95E054FDF0020402BA050302040ABA24 -:100310000619BB0008E533D395320203DEBB0108A2 -:10032000E532C395330203DE02040ABA07058B34B3 -:1003300002040202040A02040ABA0020B9801090E2 -:100340007F00E4F0A3F0907FB57402F0020402B9DC -:10035000820280EBB9810280E602040ABA010FBB77 -:10036000000302040ABB010302040202040ABA03E6 -:100370000FBB000302040ABB010302040202040AC9 -:10038000BA0656BC010F907FD47406F0907FD574E6 -:1003900012F0020402BC0212BB006F907FD47406FC -:1003A000F0907FD57424F0020402BC03297404C3C6 -:1003B0009B40576055EB2B9006442582F5827400D4 -:1003C0003583F583E0F9A3E0FA907FD4E9F0907FDC -:1003D000D5EAF002040202040ABA080F7401907F01 -:1003E00000F07401907FB5F0020402BA0903020420 -:1003F00002BA0A0574000203DEBA0B030204020209 -:10040000040A907FB47402F08009907FB4E0440144 -:10041000F08000D0E0D085D084D083D082D08632E6 -:10042000EB20E71EC3940A5019EB2324FEF58274D7 -:10043000053400F583E0F5CBF5CDA3E0F5CAF5CCA6 -:10044000C322D322B94111EB64FF5484FB907F98FF -:10045000E0547B4BF0020402907F9BE064FF0203B8 -:10046000DEC086C082C083C084C085C0E0E591C282 -:10047000E4F591907FA97404F01205A0D0E0D08536 -:10048000D084D083D082D08632C086C082C083C060 -:1004900084C085C0E0E591C2E4F591907FAA740420 -:1004A000F0907FC9E0F9E4F586907DC075851085F0 -:1004B0003284E005860584F0E584B53302800905C1 -:1004C000320586A3D9EC8000907FC9F0B131D0E02D -:1004D000D085D084D083D082D08632E4F586907FD8 -:1004E000BCE020E14B907D00E532F0A3E533F0A3C2 -:1004F000E530F0A3E531F0A3E430000104F0A305FA -:10050000869010007910E0A30586F0A30586D9F641 -:10051000058674FCF0A305869011007910E0A30510 -:1005200086F0A30586D9F6E4F586907FBD7426F0A3 -:1005300022200013E532B53301220533758310857F -:100540003382E0F599D2007400B5340122E533D34B -:100550009532C3953440F5753400D2010205A0C030 -:1005600086C082C083C084C085C0E0309907C2992C -:10057000C20012053430980512058AC298D0E0D026 -:1005800085D084D083D082D0863275831185308225 -:100590000582E599F0E582B53101220530B1A0224E -:1005A000907FB8E020E138200136E530B5310122F6 -:1005B000E4F5867583110586907E00F0A3058679A3 -:1005C00001E530B5310280100531853182E00586C4 -:1005D000F0A3058609B940E9907FB9E96001F022EE -:1005E000C201E4F586907E007401F0A37402F090DD -:1005F0007FB9F022C299F5993099FDC29922E55E42 -:10060000F63CFD8FFEC8FF64FFB2FFD9FFEDFFF39C -:10061000FFFA12010001FFFFFF40CD06040189AB84 -:1006200001020301090220000101008032090400D7 -:100630000002FFFFFF0007058203400001070502DB -:1006400002400000064C0650067206A0040300009B -:100650002203410043004D00450020007500730057 -:100660006200200077006900640067006500740084 -:1006700073002E03410043004D004500200055004B -:1006800053004200200073006500720069006100A1 -:100690006C0020007700690064006700650074004A -:0606A000060334003700E0 -:00000001FF diff --git a/firmware/keyspan_pda/xircom_pgs.HEX b/firmware/keyspan_pda/xircom_pgs.HEX deleted file mode 100644 index e9b00d7..0000000 --- a/firmware/keyspan_pda/xircom_pgs.HEX +++ /dev/null @@ -1,87 +0,0 @@ -:03000000020200F9 -:0400230002059B0037 -:050030000000000000CB -:0400430002010000B6 -:100100000202BA000200000002000000020000002B -:1001100002000000020000000200000002000000D7 -:100120000200000002000000020485000204B90081 -:1002000075815EE4F532F533F530F531F534C20031 -:10021000C201A90074FE901000F0A3D9FC74FD90F7 -:100220001100F0A3D9FC907F9474BFF0907F957477 -:10023000EFF07410907F9EF07400907F98F07440FF -:10024000907F9DF07400907F97F07482907F9EF075 -:10025000907F957403F0907FAFE0D2E0F07401904E -:100260007FABF0907FAEF0907FAC7404F0907FADE8 -:100270007404F0907FC9F07407907FAFF074209001 -:100280007F9CF07480907F98F07453F59875C83017 -:100290007B059144D2CA759850D2E8D2AFD2AC74E3 -:1002A00000F586907FD67402F0792E7A007B00DB11 -:1002B000FEDAFAD9F67406F080FEC086C082C083EA -:1002C000C084C085C0E0E591C2E4F591907FAB7435 -:1002D00001F0907FE8E0F9A3E0FAA3E0FBA3E0FCE3 -:1002E000E95460B4000302035DB4406EBA000B121F -:1002F0000444400302042602042EBA010302042E21 -:10030000BA020302042EBA0303020468BA041EBB35 -:10031000000A907F95E04402F0020426907F98E066 -:1003200054FDF0907F95E054FDF0020426BA0503D9 -:1003300002042EBA0619BB0008E533D39532020435 -:1003400002BB0108E532C3953302040202042EBA4F -:1003500007058B3402042602042E02042EBA002064 -:10036000B98010907F00E4F0A3F0907FB57402F0A4 -:10037000020426B9820280EBB9810280E602042ED3 -:10038000BA010FBB000302042EBB010302042602C4 -:10039000042EBA030FBB000302042EBB01030204A8 -:1003A0002602042EBA0656BC010F907FD47406F0C4 -:1003B000907FD5745AF0020426BC0212BB006F90E5 -:1003C0007FD47406F0907FD5746CF0020426BC03D1 -:1003D000297404C39B40576055EB2B90068C2582F3 -:1003E000F58274003583F583E0F9A3E0FA907FD4B9 -:1003F000E9F0907FD5EAF002042602042EBA080F35 -:100400007401907F00F07401907FB5F0020426BA69 -:100410000903020426BA0A057400020402BA0B0397 -:1004200002042602042E907FB47402F08009907FAB -:10043000B4E04401F08000D0E0D085D084D083D0F7 -:1004400082D08632EB20E71EC3940A5019EB232496 -:1004500046F58274063400F583E0F5CBF5CDA3E0D4 -:10046000F5CAF5CCC322D322B94111EB64FF548005 -:10047000FB907F98E0547F4BF0020426907F9BE036 -:1004800064FF020402C086C082C083C084C085C0ED -:10049000E0E591C2E4F591907FA97404F074209096 -:1004A0007F9CF01205DC7420907F9CF0D0E0D0851A -:1004B000D084D083D082D08632C086C082C083C030 -:1004C00084C085C0E07410907F9CF0E591C2E4F593 -:1004D00091907FAA7404F0907FC9E0F9E4F58690CA -:1004E0007DC0758510853284E005860584F0E5843D -:1004F000B53302800905320586A3D9EC8000907FD0 -:10050000C9F0B16D7420907F9CF0D0E0D085D0848C -:10051000D083D082D08632E4F586907FBCE020E1A3 -:100520004B907D00E532F0A3E533F0A3E530F0A376 -:10053000E531F0A3E430000104F0A305869010003B -:100540007910E0A30586F0A30586D9F6058674FC2C -:10055000F0A305869011007910E0A30586F0A305AD -:1005600086D9F6E4F586907FBD7426F0222000132C -:10057000E532B53301220533758310853382E0F50A -:1005800099D2007400B5340122E533D39532C39576 -:100590003440F5753400D2010205DCC086C082C04B -:1005A00083C084C085C0E0309907C299C20012059B -:1005B000703098051205C6C298D0E0D085D084D09E -:1005C00083D082D086327583118530820582E59989 -:1005D000F0E582B53101220530B1DC227410907F44 -:1005E0009CF0907FB8E020E13E20013CE530B53141 -:1005F0000122E4F5867583110586907E00F0A3053F -:10060000867901E530B5310280100531853182E00F -:100610000586F0A3058609B940E97410907F9CF027 -:10062000907FB9E96001F022C201E4F586907E0076 -:100630007401F0A37402F0907FB9F022C299F59989 -:100640003099FDC29922E55EF63CFD8FFEC8FF643D -:10065000FFB2FFD9FFEDFFF3FFFA12010001FFFF28 -:10066000FF40CD06040189AB01020301090220000D -:1006700001010080320904000002FFFFFF000705AE -:10068000820340000107050202400000069406981C -:1006900006BA06E8040300002203410043004D00AF -:1006A000450020007500730062002000770069009B -:1006B000640067006500740073002E03410043006E -:1006C0004D004500200055005300420020007300FB -:1006D00065007200690061006C002000770069000D -:0E06E0006400670065007400060334003700F4 -:00000001FF -- 1.7.0.4
_______________________________________________ linux-libre mailing list [email protected] http://www.fsfla.org/cgi-bin/mailman/listinfo/linux-libre
