mirror of
https://github.com/adulau/aha.git
synced 2025-04-23 03:36:35 +00:00
Merge branch 'for-2.6.27' of git://git.infradead.org/users/dwmw2/firmware-2.6
* 'for-2.6.27' of git://git.infradead.org/users/dwmw2/firmware-2.6: (64 commits) firmware: convert sb16_csp driver to use firmware loader exclusively dsp56k: use request_firmware edgeport-ti: use request_firmware() edgeport: use request_firmware() vicam: use request_firmware() dabusb: use request_firmware() cpia2: use request_firmware() ip2: use request_firmware() firmware: convert Ambassador ATM driver to request_firmware() whiteheat: use request_firmware() ti_usb_3410_5052: use request_firmware() emi62: use request_firmware() emi26: use request_firmware() keyspan_pda: use request_firmware() keyspan: use request_firmware() ttusb-budget: use request_firmware() kaweth: use request_firmware() smctr: use request_firmware() firmware: convert ymfpci driver to use firmware loader exclusively firmware: convert maestro3 driver to use firmware loader exclusively ... Fix up trivial conflicts with BKL removal in drivers/char/dsp56k.c and drivers/char/ip2/ip2main.c manually.
This commit is contained in:
commit
5a86102248
181 changed files with 29649 additions and 50283 deletions
15
Makefile
15
Makefile
|
@ -450,7 +450,7 @@ scripts: scripts_basic include/config/auto.conf
|
|||
|
||||
# Objects we will link into vmlinux / subdirs we need to visit
|
||||
init-y := init/
|
||||
drivers-y := drivers/ sound/
|
||||
drivers-y := drivers/ sound/ firmware/
|
||||
net-y := net/
|
||||
libs-y := lib/
|
||||
core-y := usr/
|
||||
|
@ -998,6 +998,16 @@ PHONY += depend dep
|
|||
depend dep:
|
||||
@echo '*** Warning: make $@ is unnecessary now.'
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Firmware install
|
||||
INSTALL_FW_PATH=$(INSTALL_MOD_PATH)/lib/firmware
|
||||
export INSTALL_FW_PATH
|
||||
|
||||
PHONY += firmware_install
|
||||
firmware_install: FORCE
|
||||
@mkdir -p $(objtree)/firmware
|
||||
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.fwinst obj=firmware __fw_install
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Kernel headers
|
||||
INSTALL_HDR_PATH=$(objtree)/usr
|
||||
|
@ -1084,6 +1094,7 @@ _modinst_:
|
|||
# boot script depmod is the master version.
|
||||
PHONY += _modinst_post
|
||||
_modinst_post: _modinst_
|
||||
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.fwinst obj=firmware __fw_modinst
|
||||
$(call cmd,depmod)
|
||||
|
||||
else # CONFIG_MODULES
|
||||
|
@ -1201,6 +1212,8 @@ help:
|
|||
@echo '* vmlinux - Build the bare kernel'
|
||||
@echo '* modules - Build all modules'
|
||||
@echo ' modules_install - Install all modules to INSTALL_MOD_PATH (default: /)'
|
||||
@echo ' firmware_install- Install all firmware to INSTALL_FW_PATH'
|
||||
@echo ' (default: $$(INSTALL_MOD_PATH)/lib/firmware)'
|
||||
@echo ' dir/ - Build all files in dir and below'
|
||||
@echo ' dir/file.[ois] - Build specified target only'
|
||||
@echo ' dir/file.ko - Build module including final link'
|
||||
|
|
|
@ -491,7 +491,7 @@ MODULE_ALIAS_MISCDEV(MICROCODE_MINOR);
|
|||
#define microcode_dev_exit() do { } while(0)
|
||||
#endif
|
||||
|
||||
static long get_next_ucode_from_buffer(void **mc, void *buf,
|
||||
static long get_next_ucode_from_buffer(void **mc, const u8 *buf,
|
||||
unsigned long size, long offset)
|
||||
{
|
||||
microcode_header_t *mc_header;
|
||||
|
@ -525,7 +525,7 @@ static int cpu_request_microcode(int cpu)
|
|||
char name[30];
|
||||
struct cpuinfo_x86 *c = &cpu_data(cpu);
|
||||
const struct firmware *firmware;
|
||||
void *buf;
|
||||
const u8 *buf;
|
||||
unsigned long size;
|
||||
long offset = 0;
|
||||
int error;
|
||||
|
|
|
@ -6,9 +6,9 @@ fore_200e-objs := fore200e.o
|
|||
hostprogs-y := fore200e_mkfirm
|
||||
|
||||
# Files generated that shall be removed upon make clean
|
||||
clean-files := atmsar11.bin atmsar11.bin1 atmsar11.bin2 pca200e.bin \
|
||||
pca200e.bin1 pca200e.bin2 pca200e_ecd.bin pca200e_ecd.bin1 \
|
||||
pca200e_ecd.bin2 sba200e_ecd.bin sba200e_ecd.bin1 sba200e_ecd.bin2
|
||||
clean-files := pca200e.bin pca200e.bin1 pca200e.bin2 pca200e_ecd.bin \
|
||||
pca200e_ecd.bin1 pca200e_ecd.bin2 sba200e_ecd.bin sba200e_ecd.bin1 \
|
||||
sba200e_ecd.bin2
|
||||
# Firmware generated that shall be removed upon make clean
|
||||
clean-files += fore200e_pca_fw.c fore200e_sba_fw.c
|
||||
|
||||
|
|
|
@ -34,6 +34,8 @@
|
|||
#include <linux/poison.h>
|
||||
#include <linux/bitrev.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/firmware.h>
|
||||
#include <linux/ihex.h>
|
||||
|
||||
#include <asm/atomic.h>
|
||||
#include <asm/io.h>
|
||||
|
@ -290,29 +292,6 @@ static inline void __init show_version (void) {
|
|||
|
||||
*/
|
||||
|
||||
/********** microcode **********/
|
||||
|
||||
#ifdef AMB_NEW_MICROCODE
|
||||
#define UCODE(x) UCODE2(atmsar12.x)
|
||||
#else
|
||||
#define UCODE(x) UCODE2(atmsar11.x)
|
||||
#endif
|
||||
#define UCODE2(x) #x
|
||||
|
||||
static u32 __devinitdata ucode_start =
|
||||
#include UCODE(start)
|
||||
;
|
||||
|
||||
static region __devinitdata ucode_regions[] = {
|
||||
#include UCODE(regions)
|
||||
{ 0, 0 }
|
||||
};
|
||||
|
||||
static u32 __devinitdata ucode_data[] = {
|
||||
#include UCODE(data)
|
||||
0xdeadbeef
|
||||
};
|
||||
|
||||
static void do_housekeeping (unsigned long arg);
|
||||
/********** globals **********/
|
||||
|
||||
|
@ -1841,45 +1820,34 @@ static int __devinit get_loader_version (loader_block * lb,
|
|||
|
||||
/* loader: write memory data blocks */
|
||||
|
||||
static int __devinit loader_write (loader_block * lb,
|
||||
const amb_dev * dev, const u32 * data,
|
||||
u32 address, unsigned int count) {
|
||||
unsigned int i;
|
||||
static int __devinit loader_write (loader_block* lb,
|
||||
const amb_dev *dev,
|
||||
const struct ihex_binrec *rec) {
|
||||
transfer_block * tb = &lb->payload.transfer;
|
||||
|
||||
PRINTD (DBG_FLOW|DBG_LOAD, "loader_write");
|
||||
|
||||
if (count > MAX_TRANSFER_DATA)
|
||||
return -EINVAL;
|
||||
tb->address = cpu_to_be32 (address);
|
||||
tb->count = cpu_to_be32 (count);
|
||||
for (i = 0; i < count; ++i)
|
||||
tb->data[i] = cpu_to_be32 (data[i]);
|
||||
|
||||
tb->address = rec->addr;
|
||||
tb->count = cpu_to_be32(be16_to_cpu(rec->len) / 4);
|
||||
memcpy(tb->data, rec->data, be16_to_cpu(rec->len));
|
||||
return do_loader_command (lb, dev, write_adapter_memory);
|
||||
}
|
||||
|
||||
/* loader: verify memory data blocks */
|
||||
|
||||
static int __devinit loader_verify (loader_block * lb,
|
||||
const amb_dev * dev, const u32 * data,
|
||||
u32 address, unsigned int count) {
|
||||
unsigned int i;
|
||||
const amb_dev *dev,
|
||||
const struct ihex_binrec *rec) {
|
||||
transfer_block * tb = &lb->payload.transfer;
|
||||
int res;
|
||||
|
||||
PRINTD (DBG_FLOW|DBG_LOAD, "loader_verify");
|
||||
|
||||
if (count > MAX_TRANSFER_DATA)
|
||||
return -EINVAL;
|
||||
tb->address = cpu_to_be32 (address);
|
||||
tb->count = cpu_to_be32 (count);
|
||||
tb->address = rec->addr;
|
||||
tb->count = cpu_to_be32(be16_to_cpu(rec->len) / 4);
|
||||
res = do_loader_command (lb, dev, read_adapter_memory);
|
||||
if (!res)
|
||||
for (i = 0; i < count; ++i)
|
||||
if (tb->data[i] != cpu_to_be32 (data[i])) {
|
||||
res = -EINVAL;
|
||||
break;
|
||||
}
|
||||
if (!res && memcmp(tb->data, rec->data, be16_to_cpu(rec->len)))
|
||||
res = -EINVAL;
|
||||
return res;
|
||||
}
|
||||
|
||||
|
@ -1962,47 +1930,53 @@ static int amb_reset (amb_dev * dev, int diags) {
|
|||
/********** transfer and start the microcode **********/
|
||||
|
||||
static int __devinit ucode_init (loader_block * lb, amb_dev * dev) {
|
||||
unsigned int i = 0;
|
||||
unsigned int total = 0;
|
||||
const u32 * pointer = ucode_data;
|
||||
u32 address;
|
||||
unsigned int count;
|
||||
const struct firmware *fw;
|
||||
unsigned long start_address;
|
||||
const struct ihex_binrec *rec;
|
||||
int res;
|
||||
|
||||
res = request_ihex_firmware(&fw, "atmsar11.fw", &dev->pci_dev->dev);
|
||||
if (res) {
|
||||
PRINTK (KERN_ERR, "Cannot load microcode data");
|
||||
return res;
|
||||
}
|
||||
|
||||
/* First record contains just the start address */
|
||||
rec = (const struct ihex_binrec *)fw->data;
|
||||
if (be16_to_cpu(rec->len) != sizeof(__be32) || be32_to_cpu(rec->addr)) {
|
||||
PRINTK (KERN_ERR, "Bad microcode data (no start record)");
|
||||
return -EINVAL;
|
||||
}
|
||||
start_address = be32_to_cpup((__be32 *)rec->data);
|
||||
|
||||
rec = ihex_next_binrec(rec);
|
||||
|
||||
PRINTD (DBG_FLOW|DBG_LOAD, "ucode_init");
|
||||
|
||||
while (address = ucode_regions[i].start,
|
||||
count = ucode_regions[i].count) {
|
||||
PRINTD (DBG_LOAD, "starting region (%x, %u)", address, count);
|
||||
while (count) {
|
||||
unsigned int words;
|
||||
if (count <= MAX_TRANSFER_DATA)
|
||||
words = count;
|
||||
else
|
||||
words = MAX_TRANSFER_DATA;
|
||||
total += words;
|
||||
res = loader_write (lb, dev, pointer, address, words);
|
||||
if (res)
|
||||
return res;
|
||||
res = loader_verify (lb, dev, pointer, address, words);
|
||||
if (res)
|
||||
return res;
|
||||
count -= words;
|
||||
address += sizeof(u32) * words;
|
||||
pointer += words;
|
||||
|
||||
while (rec) {
|
||||
PRINTD (DBG_LOAD, "starting region (%x, %u)", be32_to_cpu(rec->addr),
|
||||
be16_to_cpu(rec->len));
|
||||
if (be16_to_cpu(rec->len) > 4 * MAX_TRANSFER_DATA) {
|
||||
PRINTK (KERN_ERR, "Bad microcode data (record too long)");
|
||||
return -EINVAL;
|
||||
}
|
||||
i += 1;
|
||||
}
|
||||
if (*pointer == ATM_POISON) {
|
||||
return loader_start (lb, dev, ucode_start);
|
||||
} else {
|
||||
// cast needed as there is no %? for pointer differnces
|
||||
PRINTD (DBG_LOAD|DBG_ERR,
|
||||
"offset=%li, *pointer=%x, address=%x, total=%u",
|
||||
(long) (pointer - ucode_data), *pointer, address, total);
|
||||
PRINTK (KERN_ERR, "incorrect microcode data");
|
||||
return -ENOMEM;
|
||||
if (be16_to_cpu(rec->len) & 3) {
|
||||
PRINTK (KERN_ERR, "Bad microcode data (odd number of bytes)");
|
||||
return -EINVAL;
|
||||
}
|
||||
res = loader_write(lb, dev, rec);
|
||||
if (res)
|
||||
break;
|
||||
|
||||
res = loader_verify(lb, dev, rec);
|
||||
if (res)
|
||||
break;
|
||||
}
|
||||
release_firmware(fw);
|
||||
if (!res)
|
||||
res = loader_start(lb, dev, start_address);
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
/********** give adapter parameters **********/
|
||||
|
|
|
@ -656,17 +656,6 @@ typedef struct amb_dev amb_dev;
|
|||
#define AMB_DEV(atm_dev) ((amb_dev *) (atm_dev)->dev_data)
|
||||
#define AMB_VCC(atm_vcc) ((amb_vcc *) (atm_vcc)->dev_data)
|
||||
|
||||
/* the microcode */
|
||||
|
||||
typedef struct {
|
||||
u32 start;
|
||||
unsigned int count;
|
||||
} region;
|
||||
|
||||
static region ucode_regions[];
|
||||
static u32 ucode_data[];
|
||||
static u32 ucode_start;
|
||||
|
||||
/* rate rounding */
|
||||
|
||||
typedef enum {
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,6 +0,0 @@
|
|||
/*
|
||||
See copyright and licensing conditions in ambassador.* files.
|
||||
*/
|
||||
{ 0x00000080, 993, },
|
||||
{ 0xa0d0d500, 80, },
|
||||
{ 0xa0d0f000, 978, },
|
|
@ -1,4 +0,0 @@
|
|||
/*
|
||||
See copyright and licensing conditions in ambassador.* files.
|
||||
*/
|
||||
0xa0d0f000
|
|
@ -34,6 +34,70 @@ config FW_LOADER
|
|||
require userspace firmware loading support, but a module built outside
|
||||
the kernel tree does.
|
||||
|
||||
config FIRMWARE_IN_KERNEL
|
||||
bool "Include in-kernel firmware blobs in kernel binary"
|
||||
depends on FW_LOADER
|
||||
default y
|
||||
help
|
||||
The kernel source tree includes a number of firmware 'blobs'
|
||||
which are used by various drivers. The recommended way to
|
||||
use these is to run "make firmware_install" and to copy the
|
||||
resulting binary files created in usr/lib/firmware directory
|
||||
of the kernel tree to the /lib/firmware on your system so
|
||||
that they can be loaded by userspace helpers on request.
|
||||
|
||||
Enabling this option will build each required firmware blob
|
||||
into the kernel directly, where request_firmware() will find
|
||||
them without having to call out to userspace. This may be
|
||||
useful if your root file system requires a device which uses
|
||||
such firmware, and do not wish to use an initrd.
|
||||
|
||||
This single option controls the inclusion of firmware for
|
||||
every driver which usees request_firmare() and ships its
|
||||
firmware in the kernel source tree, to avoid a proliferation
|
||||
of 'Include firmware for xxx device' options.
|
||||
|
||||
Say 'N' and let firmware be loaded from userspace.
|
||||
|
||||
config EXTRA_FIRMWARE
|
||||
string "External firmware blobs to build into the kernel binary"
|
||||
depends on FW_LOADER
|
||||
help
|
||||
This option allows firmware to be built into the kernel, for the
|
||||
cases where the user either cannot or doesn't want to provide it from
|
||||
userspace at runtime (for example, when the firmware in question is
|
||||
required for accessing the boot device, and the user doesn't want to
|
||||
use an initrd).
|
||||
|
||||
This option is a string, and takes the (space-separated) names of the
|
||||
firmware files -- the same names which appear in MODULE_FIRMWARE()
|
||||
and request_firmware() in the source. These files should exist under
|
||||
the directory specified by the EXTRA_FIRMWARE_DIR option, which is
|
||||
by default the firmware/ subdirectory of the kernel source tree.
|
||||
|
||||
So, for example, you might set CONFIG_EXTRA_FIRMWARE="usb8388.bin",
|
||||
copy the usb8388.bin file into the firmware/ directory, and build the
|
||||
kernel. Then any request_firmware("usb8388.bin") will be
|
||||
satisfied internally without needing to call out to userspace.
|
||||
|
||||
WARNING: If you include additional firmware files into your binary
|
||||
kernel image which are not available under the terms of the GPL,
|
||||
then it may be a violation of the GPL to distribute the resulting
|
||||
image -- since it combines both GPL and non-GPL work. You should
|
||||
consult a lawyer of your own before distributing such an image.
|
||||
|
||||
config EXTRA_FIRMWARE_DIR
|
||||
string "Firmware blobs root directory"
|
||||
depends on EXTRA_FIRMWARE != ""
|
||||
default "firmware"
|
||||
help
|
||||
This option controls the directory in which the kernel build system
|
||||
looks for the firmware files listed in the EXTRA_FIRMWARE option.
|
||||
The default is the firmware/ directory in the kernel source tree,
|
||||
but by changing this option you can point it elsewhere, such as
|
||||
the /lib/firmware/ directory or another separate directory
|
||||
containing firmware files.
|
||||
|
||||
config DEBUG_DRIVER
|
||||
bool "Driver Core verbose debug messages"
|
||||
depends on DEBUG_KERNEL
|
||||
|
|
|
@ -49,6 +49,14 @@ struct firmware_priv {
|
|||
struct timer_list timeout;
|
||||
};
|
||||
|
||||
#ifdef CONFIG_FW_LOADER
|
||||
extern struct builtin_fw __start_builtin_fw[];
|
||||
extern struct builtin_fw __end_builtin_fw[];
|
||||
#else /* Module case. Avoid ifdefs later; it'll all optimise out */
|
||||
static struct builtin_fw *__start_builtin_fw;
|
||||
static struct builtin_fw *__end_builtin_fw;
|
||||
#endif
|
||||
|
||||
static void
|
||||
fw_load_abort(struct firmware_priv *fw_priv)
|
||||
{
|
||||
|
@ -257,7 +265,7 @@ firmware_data_write(struct kobject *kobj, struct bin_attribute *bin_attr,
|
|||
if (retval)
|
||||
goto out;
|
||||
|
||||
memcpy(fw->data + offset, buffer, count);
|
||||
memcpy((u8 *)fw->data + offset, buffer, count);
|
||||
|
||||
fw->size = max_t(size_t, offset + count, fw->size);
|
||||
retval = count;
|
||||
|
@ -391,13 +399,12 @@ _request_firmware(const struct firmware **firmware_p, const char *name,
|
|||
struct device *f_dev;
|
||||
struct firmware_priv *fw_priv;
|
||||
struct firmware *firmware;
|
||||
struct builtin_fw *builtin;
|
||||
int retval;
|
||||
|
||||
if (!firmware_p)
|
||||
return -EINVAL;
|
||||
|
||||
printk(KERN_INFO "firmware: requesting %s\n", name);
|
||||
|
||||
*firmware_p = firmware = kzalloc(sizeof(*firmware), GFP_KERNEL);
|
||||
if (!firmware) {
|
||||
printk(KERN_ERR "%s: kmalloc(struct firmware) failed\n",
|
||||
|
@ -406,6 +413,20 @@ _request_firmware(const struct firmware **firmware_p, const char *name,
|
|||
goto out;
|
||||
}
|
||||
|
||||
for (builtin = __start_builtin_fw; builtin != __end_builtin_fw;
|
||||
builtin++) {
|
||||
if (strcmp(name, builtin->name))
|
||||
continue;
|
||||
printk(KERN_INFO "firmware: using built-in firmware %s\n",
|
||||
name);
|
||||
firmware->size = builtin->size;
|
||||
firmware->data = builtin->data;
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (uevent)
|
||||
printk(KERN_INFO "firmware: requesting %s\n", name);
|
||||
|
||||
retval = fw_setup_device(firmware, &f_dev, name, device, uevent);
|
||||
if (retval)
|
||||
goto error_kfree_fw;
|
||||
|
@ -473,8 +494,16 @@ request_firmware(const struct firmware **firmware_p, const char *name,
|
|||
void
|
||||
release_firmware(const struct firmware *fw)
|
||||
{
|
||||
struct builtin_fw *builtin;
|
||||
|
||||
if (fw) {
|
||||
for (builtin = __start_builtin_fw; builtin != __end_builtin_fw;
|
||||
builtin++) {
|
||||
if (fw->data == builtin->data)
|
||||
goto free_fw;
|
||||
}
|
||||
vfree(fw->data);
|
||||
free_fw:
|
||||
kfree(fw);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -566,7 +566,8 @@ static int bfusb_ioctl(struct hci_dev *hdev, unsigned int cmd, unsigned long arg
|
|||
return -ENOIOCTLCMD;
|
||||
}
|
||||
|
||||
static int bfusb_load_firmware(struct bfusb_data *data, unsigned char *firmware, int count)
|
||||
static int bfusb_load_firmware(struct bfusb_data *data,
|
||||
const unsigned char *firmware, int count)
|
||||
{
|
||||
unsigned char *buf;
|
||||
int err, pipe, len, size, sent = 0;
|
||||
|
|
|
@ -470,7 +470,8 @@ static int bt3c_hci_ioctl(struct hci_dev *hdev, unsigned int cmd, unsigned long
|
|||
/* ======================== Card services HCI interaction ======================== */
|
||||
|
||||
|
||||
static int bt3c_load_firmware(bt3c_info_t *info, unsigned char *firmware, int count)
|
||||
static int bt3c_load_firmware(bt3c_info_t *info, const unsigned char *firmware,
|
||||
int count)
|
||||
{
|
||||
char *ptr = (char *) firmware;
|
||||
char b[9];
|
||||
|
|
|
@ -4668,7 +4668,7 @@ static inline int __devinit cyc_isfwstr(const char *str, unsigned int size)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static inline void __devinit cyz_fpga_copy(void __iomem *fpga, u8 *data,
|
||||
static inline void __devinit cyz_fpga_copy(void __iomem *fpga, const u8 *data,
|
||||
unsigned int size)
|
||||
{
|
||||
for (; size > 0; size--) {
|
||||
|
@ -4701,10 +4701,10 @@ static int __devinit __cyz_load_fw(const struct firmware *fw,
|
|||
const char *name, const u32 mailbox, void __iomem *base,
|
||||
void __iomem *fpga)
|
||||
{
|
||||
void *ptr = fw->data;
|
||||
struct zfile_header *h = ptr;
|
||||
struct zfile_config *c, *cs;
|
||||
struct zfile_block *b, *bs;
|
||||
const void *ptr = fw->data;
|
||||
const struct zfile_header *h = ptr;
|
||||
const struct zfile_config *c, *cs;
|
||||
const struct zfile_block *b, *bs;
|
||||
unsigned int a, tmp, len = fw->size;
|
||||
#define BAD_FW KERN_ERR "Bad firmware: "
|
||||
if (len < sizeof(*h)) {
|
||||
|
|
|
@ -34,6 +34,8 @@
|
|||
#include <linux/init.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/smp_lock.h>
|
||||
#include <linux/firmware.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
#include <asm/atarihw.h>
|
||||
#include <asm/traps.h>
|
||||
|
@ -93,49 +95,6 @@
|
|||
} \
|
||||
}
|
||||
|
||||
/* DSP56001 bootstrap code */
|
||||
static char bootstrap[] = {
|
||||
0x0c, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x60, 0xf4, 0x00, 0x00, 0x00, 0x4f, 0x61, 0xf4,
|
||||
0x00, 0x00, 0x7e, 0xa9, 0x06, 0x2e, 0x80, 0x00, 0x00, 0x47,
|
||||
0x07, 0xd8, 0x84, 0x07, 0x59, 0x84, 0x08, 0xf4, 0xa8, 0x00,
|
||||
0x00, 0x04, 0x08, 0xf4, 0xbf, 0x00, 0x0c, 0x00, 0x00, 0xfe,
|
||||
0xb8, 0x0a, 0xf0, 0x80, 0x00, 0x7e, 0xa9, 0x08, 0xf4, 0xa0,
|
||||
0x00, 0x00, 0x01, 0x08, 0xf4, 0xbe, 0x00, 0x00, 0x00, 0x0a,
|
||||
0xa9, 0x80, 0x00, 0x7e, 0xad, 0x08, 0x4e, 0x2b, 0x44, 0xf4,
|
||||
0x00, 0x00, 0x00, 0x03, 0x44, 0xf4, 0x45, 0x00, 0x00, 0x01,
|
||||
0x0e, 0xa0, 0x00, 0x0a, 0xa9, 0x80, 0x00, 0x7e, 0xb5, 0x08,
|
||||
0x50, 0x2b, 0x0a, 0xa9, 0x80, 0x00, 0x7e, 0xb8, 0x08, 0x46,
|
||||
0x2b, 0x44, 0xf4, 0x45, 0x00, 0x00, 0x02, 0x0a, 0xf0, 0xaa,
|
||||
0x00, 0x7e, 0xc9, 0x20, 0x00, 0x45, 0x0a, 0xf0, 0xaa, 0x00,
|
||||
0x7e, 0xd0, 0x06, 0xc6, 0x00, 0x00, 0x7e, 0xc6, 0x0a, 0xa9,
|
||||
0x80, 0x00, 0x7e, 0xc4, 0x08, 0x58, 0x6b, 0x0a, 0xf0, 0x80,
|
||||
0x00, 0x7e, 0xad, 0x06, 0xc6, 0x00, 0x00, 0x7e, 0xcd, 0x0a,
|
||||
0xa9, 0x80, 0x00, 0x7e, 0xcb, 0x08, 0x58, 0xab, 0x0a, 0xf0,
|
||||
0x80, 0x00, 0x7e, 0xad, 0x06, 0xc6, 0x00, 0x00, 0x7e, 0xd4,
|
||||
0x0a, 0xa9, 0x80, 0x00, 0x7e, 0xd2, 0x08, 0x58, 0xeb, 0x0a,
|
||||
0xf0, 0x80, 0x00, 0x7e, 0xad};
|
||||
static int sizeof_bootstrap = 375;
|
||||
|
||||
|
||||
static struct dsp56k_device {
|
||||
unsigned long in_use;
|
||||
long maxio, timeout;
|
||||
|
@ -165,18 +124,40 @@ static int dsp56k_reset(void)
|
|||
|
||||
static int dsp56k_upload(u_char __user *bin, int len)
|
||||
{
|
||||
struct platform_device *pdev;
|
||||
const struct firmware *fw;
|
||||
const char fw_name[] = "dsp56k/bootstrap.bin";
|
||||
int err;
|
||||
int i;
|
||||
u_char *p;
|
||||
|
||||
|
||||
dsp56k_reset();
|
||||
|
||||
p = bootstrap;
|
||||
for (i = 0; i < sizeof_bootstrap/3; i++) {
|
||||
/* tx_wait(10); */
|
||||
dsp56k_host_interface.data.b[1] = *p++;
|
||||
dsp56k_host_interface.data.b[2] = *p++;
|
||||
dsp56k_host_interface.data.b[3] = *p++;
|
||||
|
||||
pdev = platform_device_register_simple("dsp56k", 0, NULL, 0);
|
||||
if (IS_ERR(pdev)) {
|
||||
printk(KERN_ERR "Failed to register device for \"%s\"\n",
|
||||
fw_name);
|
||||
return -EINVAL;
|
||||
}
|
||||
err = request_firmware(&fw, fw_name, &pdev->dev);
|
||||
platform_device_unregister(pdev);
|
||||
if (err) {
|
||||
printk(KERN_ERR "Failed to load image \"%s\" err %d\n",
|
||||
fw_name, err);
|
||||
return err;
|
||||
}
|
||||
if (fw->size % 3) {
|
||||
printk(KERN_ERR "Bogus length %d in image \"%s\"\n",
|
||||
fw->size, fw_name);
|
||||
release_firmware(fw);
|
||||
return -EINVAL;
|
||||
}
|
||||
for (i = 0; i < fw->size; i = i + 3) {
|
||||
/* tx_wait(10); */
|
||||
dsp56k_host_interface.data.b[1] = fw->data[i];
|
||||
dsp56k_host_interface.data.b[2] = fw->data[i + 1];
|
||||
dsp56k_host_interface.data.b[3] = fw->data[i + 2];
|
||||
}
|
||||
release_firmware(fw);
|
||||
for (; i < 512; i++) {
|
||||
/* tx_wait(10); */
|
||||
dsp56k_host_interface.data.b[1] = 0;
|
||||
|
@ -540,3 +521,4 @@ static void __exit dsp56k_cleanup_driver(void)
|
|||
module_exit(dsp56k_cleanup_driver);
|
||||
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_FIRMWARE("dsp56k/bootstrap.bin");
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -21,10 +21,9 @@
|
|||
#endif
|
||||
|
||||
#include "ip2types.h"
|
||||
#include "fip_firm.h" // the meat
|
||||
|
||||
int
|
||||
ip2_loadmain(int *, int *, unsigned char *, int ); // ref into ip2main.c
|
||||
ip2_loadmain(int *, int *); // ref into ip2main.c
|
||||
|
||||
/* Note: Add compiled in defaults to these arrays, not to the structure
|
||||
in ip2.h any longer. That structure WILL get overridden
|
||||
|
@ -52,7 +51,7 @@ static int __init ip2_init(void)
|
|||
irq[0] = irq[1] = irq[2] = irq[3] = 0;
|
||||
}
|
||||
|
||||
return ip2_loadmain(io,irq,(unsigned char *)fip_firm,sizeof(fip_firm));
|
||||
return ip2_loadmain(io, irq);
|
||||
}
|
||||
module_init(ip2_init);
|
||||
|
||||
|
|
|
@ -99,6 +99,8 @@
|
|||
#include <linux/wait.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/smp_lock.h>
|
||||
#include <linux/firmware.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
#include <linux/tty.h>
|
||||
#include <linux/tty_flip.h>
|
||||
|
@ -156,9 +158,7 @@ static char *pcDriver_name = "ip2";
|
|||
static char *pcIpl = "ip2ipl";
|
||||
|
||||
// cheezy kludge or genius - you decide?
|
||||
int ip2_loadmain(int *, int *, unsigned char *, int);
|
||||
static unsigned char *Fip_firmware;
|
||||
static int Fip_firmware_size;
|
||||
int ip2_loadmain(int *, int *);
|
||||
|
||||
/***********************/
|
||||
/* Function Prototypes */
|
||||
|
@ -209,7 +209,7 @@ static int ip2_ipl_open(struct inode *, struct file *);
|
|||
static int DumpTraceBuffer(char __user *, int);
|
||||
static int DumpFifoBuffer( char __user *, int);
|
||||
|
||||
static void ip2_init_board(int);
|
||||
static void ip2_init_board(int, const struct firmware *);
|
||||
static unsigned short find_eisa_board(int);
|
||||
|
||||
/***************/
|
||||
|
@ -475,8 +475,27 @@ static const struct tty_operations ip2_ops = {
|
|||
/* SA_RANDOM - can be source for cert. random number generators */
|
||||
#define IP2_SA_FLAGS 0
|
||||
|
||||
|
||||
static const struct firmware *ip2_request_firmware(void)
|
||||
{
|
||||
struct platform_device *pdev;
|
||||
const struct firmware *fw;
|
||||
|
||||
pdev = platform_device_register_simple("ip2", 0, NULL, 0);
|
||||
if (IS_ERR(pdev)) {
|
||||
printk(KERN_ERR "Failed to register platform device for ip2\n");
|
||||
return NULL;
|
||||
}
|
||||
if (request_firmware(&fw, "intelliport2.bin", &pdev->dev)) {
|
||||
printk(KERN_ERR "Failed to load firmware 'intelliport2.bin'\n");
|
||||
fw = NULL;
|
||||
}
|
||||
platform_device_unregister(pdev);
|
||||
return fw;
|
||||
}
|
||||
|
||||
int
|
||||
ip2_loadmain(int *iop, int *irqp, unsigned char *firmware, int firmsize)
|
||||
ip2_loadmain(int *iop, int *irqp)
|
||||
{
|
||||
int i, j, box;
|
||||
int err = 0;
|
||||
|
@ -484,6 +503,7 @@ ip2_loadmain(int *iop, int *irqp, unsigned char *firmware, int firmsize)
|
|||
i2eBordStrPtr pB = NULL;
|
||||
int rc = -1;
|
||||
static struct pci_dev *pci_dev_i = NULL;
|
||||
const struct firmware *fw = NULL;
|
||||
|
||||
ip2trace (ITRC_NO_PORT, ITRC_INIT, ITRC_ENTER, 0 );
|
||||
|
||||
|
@ -517,9 +537,6 @@ ip2_loadmain(int *iop, int *irqp, unsigned char *firmware, int firmsize)
|
|||
}
|
||||
poll_only = !poll_only;
|
||||
|
||||
Fip_firmware = firmware;
|
||||
Fip_firmware_size = firmsize;
|
||||
|
||||
/* Announce our presence */
|
||||
printk( KERN_INFO "%s version %s\n", pcName, pcVersion );
|
||||
|
||||
|
@ -639,10 +656,18 @@ ip2_loadmain(int *iop, int *irqp, unsigned char *firmware, int firmsize)
|
|||
}
|
||||
}
|
||||
for ( i = 0; i < IP2_MAX_BOARDS; ++i ) {
|
||||
/* We don't want to request the firmware unless we have at
|
||||
least one board */
|
||||
if ( i2BoardPtrTable[i] != NULL ) {
|
||||
ip2_init_board( i );
|
||||
if (!fw)
|
||||
fw = ip2_request_firmware();
|
||||
if (!fw)
|
||||
break;
|
||||
ip2_init_board(i, fw);
|
||||
}
|
||||
}
|
||||
if (fw)
|
||||
release_firmware(fw);
|
||||
|
||||
ip2trace (ITRC_NO_PORT, ITRC_INIT, 2, 0 );
|
||||
|
||||
|
@ -770,7 +795,7 @@ out:
|
|||
/* are reported on the console. */
|
||||
/******************************************************************************/
|
||||
static void
|
||||
ip2_init_board( int boardnum )
|
||||
ip2_init_board(int boardnum, const struct firmware *fw)
|
||||
{
|
||||
int i;
|
||||
int nports = 0, nboxes = 0;
|
||||
|
@ -790,7 +815,7 @@ ip2_init_board( int boardnum )
|
|||
goto err_initialize;
|
||||
}
|
||||
|
||||
if ( iiDownloadAll ( pB, (loadHdrStrPtr)Fip_firmware, 1, Fip_firmware_size )
|
||||
if ( iiDownloadAll ( pB, (loadHdrStrPtr)fw->data, 1, fw->size )
|
||||
!= II_DOWN_GOOD ) {
|
||||
printk ( KERN_ERR "IP2: failed to download loadware\n" );
|
||||
goto err_release_region;
|
||||
|
|
|
@ -721,7 +721,7 @@ static int moxa_load_code(struct moxa_board_conf *brd, const void *ptr,
|
|||
|
||||
static int moxa_load_fw(struct moxa_board_conf *brd, const struct firmware *fw)
|
||||
{
|
||||
void *ptr = fw->data;
|
||||
const void *ptr = fw->data;
|
||||
char rsn[64];
|
||||
u16 lens[5];
|
||||
size_t len;
|
||||
|
@ -734,7 +734,7 @@ static int moxa_load_fw(struct moxa_board_conf *brd, const struct firmware *fw)
|
|||
u8 model; /* C218T=1, C320T=2, CP204=3 */
|
||||
u8 reserved2[8];
|
||||
__le16 len[5];
|
||||
} *hdr = ptr;
|
||||
} const *hdr = ptr;
|
||||
|
||||
BUILD_BUG_ON(ARRAY_SIZE(hdr->len) != ARRAY_SIZE(lens));
|
||||
|
||||
|
|
|
@ -220,7 +220,7 @@ out_noalloc:
|
|||
return retval;
|
||||
}
|
||||
|
||||
static int packetize_data(void *data, size_t length)
|
||||
static int packetize_data(const u8 *data, size_t length)
|
||||
{
|
||||
int rc = 0;
|
||||
int done = 0;
|
||||
|
|
|
@ -254,7 +254,7 @@ static int load_all_firmwares(struct dvb_frontend *fe)
|
|||
{
|
||||
struct xc2028_data *priv = fe->tuner_priv;
|
||||
const struct firmware *fw = NULL;
|
||||
unsigned char *p, *endp;
|
||||
const unsigned char *p, *endp;
|
||||
int rc = 0;
|
||||
int n, n_array;
|
||||
char name[33];
|
||||
|
|
|
@ -278,7 +278,7 @@ static int xc_read_reg(struct xc5000_priv *priv, u16 regAddr, u16 *i2cData)
|
|||
return result;
|
||||
}
|
||||
|
||||
static int xc_load_i2c_sequence(struct dvb_frontend *fe, u8 i2c_sequence[])
|
||||
static int xc_load_i2c_sequence(struct dvb_frontend *fe, const u8 *i2c_sequence)
|
||||
{
|
||||
struct xc5000_priv *priv = fe->tuner_priv;
|
||||
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
* see Documentation/dvb/README.dvb-usb for more information
|
||||
*/
|
||||
#include <media/tuner.h>
|
||||
#include <linux/vmalloc.h>
|
||||
|
||||
#include "cxusb.h"
|
||||
|
||||
|
@ -700,12 +701,26 @@ static int bluebird_patch_dvico_firmware_download(struct usb_device *udev,
|
|||
|
||||
if (fw->data[idoff] == (USB_VID_DVICO & 0xff) &&
|
||||
fw->data[idoff + 1] == USB_VID_DVICO >> 8) {
|
||||
fw->data[idoff + 2] =
|
||||
struct firmware new_fw;
|
||||
u8 *new_fw_data = vmalloc(fw->size);
|
||||
int ret;
|
||||
|
||||
if (!new_fw_data)
|
||||
return -ENOMEM;
|
||||
|
||||
memcpy(new_fw_data, fw->data, fw->size);
|
||||
new_fw.size = fw->size;
|
||||
new_fw.data = new_fw_data;
|
||||
|
||||
new_fw_data[idoff + 2] =
|
||||
le16_to_cpu(udev->descriptor.idProduct) + 1;
|
||||
fw->data[idoff + 3] =
|
||||
new_fw_data[idoff + 3] =
|
||||
le16_to_cpu(udev->descriptor.idProduct) >> 8;
|
||||
|
||||
return usb_cypress_load_firmware(udev, fw, CYPRESS_FX2);
|
||||
ret = usb_cypress_load_firmware(udev, &new_fw,
|
||||
CYPRESS_FX2);
|
||||
vfree(new_fw_data);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -86,7 +86,8 @@ static int gp8psk_load_bcm4500fw(struct dvb_usb_device *d)
|
|||
{
|
||||
int ret;
|
||||
const struct firmware *fw = NULL;
|
||||
u8 *ptr, *buf;
|
||||
const u8 *ptr;
|
||||
u8 *buf;
|
||||
if ((ret = request_firmware(&fw, bcm4500_firmware,
|
||||
&d->udev->dev)) != 0) {
|
||||
err("did not find the bcm4500 firmware file. (%s) "
|
||||
|
|
|
@ -590,7 +590,8 @@ static void bcm3510_release(struct dvb_frontend* fe)
|
|||
*/
|
||||
#define BCM3510_DEFAULT_FIRMWARE "dvb-fe-bcm3510-01.fw"
|
||||
|
||||
static int bcm3510_write_ram(struct bcm3510_state *st, u16 addr, u8 *b, u16 len)
|
||||
static int bcm3510_write_ram(struct bcm3510_state *st, u16 addr, const u8 *b,
|
||||
u16 len)
|
||||
{
|
||||
int ret = 0,i;
|
||||
bcm3510_register_value vH, vL,vD;
|
||||
|
@ -614,7 +615,7 @@ static int bcm3510_download_firmware(struct dvb_frontend* fe)
|
|||
struct bcm3510_state* st = fe->demodulator_priv;
|
||||
const struct firmware *fw;
|
||||
u16 addr,len;
|
||||
u8 *b;
|
||||
const u8 *b;
|
||||
int ret,i;
|
||||
|
||||
deb_info("requesting firmware\n");
|
||||
|
|
|
@ -93,7 +93,8 @@ static u8 i2c_readbytes (struct nxt200x_state* state, u8 addr, u8* buf, u8 len)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int nxt200x_writebytes (struct nxt200x_state* state, u8 reg, u8 *buf, u8 len)
|
||||
static int nxt200x_writebytes (struct nxt200x_state* state, u8 reg,
|
||||
const u8 *buf, u8 len)
|
||||
{
|
||||
u8 buf2 [len+1];
|
||||
int err;
|
||||
|
|
|
@ -69,7 +69,7 @@ struct or51211_state {
|
|||
u32 current_frequency;
|
||||
};
|
||||
|
||||
static int i2c_writebytes (struct or51211_state* state, u8 reg, u8 *buf,
|
||||
static int i2c_writebytes (struct or51211_state* state, u8 reg, const u8 *buf,
|
||||
int len)
|
||||
{
|
||||
int err;
|
||||
|
@ -77,7 +77,7 @@ static int i2c_writebytes (struct or51211_state* state, u8 reg, u8 *buf,
|
|||
msg.addr = reg;
|
||||
msg.flags = 0;
|
||||
msg.len = len;
|
||||
msg.buf = buf;
|
||||
msg.buf = (u8 *)buf;
|
||||
|
||||
if ((err = i2c_transfer (state->i2c, &msg, 1)) != 1) {
|
||||
printk(KERN_WARNING "or51211: i2c_writebytes error "
|
||||
|
|
|
@ -98,7 +98,7 @@ static int sp8870_readreg (struct sp8870_state* state, u16 reg)
|
|||
static int sp8870_firmware_upload (struct sp8870_state* state, const struct firmware *fw)
|
||||
{
|
||||
struct i2c_msg msg;
|
||||
char *fw_buf = fw->data;
|
||||
const char *fw_buf = fw->data;
|
||||
int fw_pos;
|
||||
u8 tx_buf[255];
|
||||
int tx_len;
|
||||
|
|
|
@ -140,7 +140,7 @@ static int sp887x_initial_setup (struct dvb_frontend* fe, const struct firmware
|
|||
u8 buf [BLOCKSIZE+2];
|
||||
int i;
|
||||
int fw_size = fw->size;
|
||||
unsigned char *mem = fw->data;
|
||||
const unsigned char *mem = fw->data;
|
||||
|
||||
dprintk("%s\n", __func__);
|
||||
|
||||
|
|
|
@ -233,7 +233,7 @@ static u8 tda10048_readreg(struct tda10048_state *state, u8 reg)
|
|||
}
|
||||
|
||||
static int tda10048_writeregbulk(struct tda10048_state *state, u8 reg,
|
||||
u8 *data, u16 len)
|
||||
const u8 *data, u16 len)
|
||||
{
|
||||
int ret = -EREMOTEIO;
|
||||
struct i2c_msg msg;
|
||||
|
|
|
@ -317,7 +317,7 @@ static int tda10046h_set_bandwidth(struct tda1004x_state *state,
|
|||
}
|
||||
|
||||
static int tda1004x_do_upload(struct tda1004x_state *state,
|
||||
unsigned char *mem, unsigned int len,
|
||||
const unsigned char *mem, unsigned int len,
|
||||
u8 dspCodeCounterReg, u8 dspCodeInReg)
|
||||
{
|
||||
u8 buf[65];
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
#include <linux/errno.h>
|
||||
#include <linux/jiffies.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/firmware.h>
|
||||
|
||||
#include "dvb_frontend.h"
|
||||
#include "dmxdev.h"
|
||||
|
@ -285,13 +286,19 @@ static int master_xfer(struct i2c_adapter* adapter, struct i2c_msg *msg, int num
|
|||
return i;
|
||||
}
|
||||
|
||||
#include "dvb-ttusb-dspbootcode.h"
|
||||
|
||||
static int ttusb_boot_dsp(struct ttusb *ttusb)
|
||||
{
|
||||
const struct firmware *fw;
|
||||
int i, err;
|
||||
u8 b[40];
|
||||
|
||||
err = request_firmware(&fw, "ttusb-budget/dspbootcode.bin",
|
||||
&ttusb->dev->dev);
|
||||
if (err) {
|
||||
printk(KERN_ERR "ttusb-budget: failed to request firmware\n");
|
||||
return err;
|
||||
}
|
||||
|
||||
/* BootBlock */
|
||||
b[0] = 0xaa;
|
||||
b[2] = 0x13;
|
||||
|
@ -299,8 +306,8 @@ static int ttusb_boot_dsp(struct ttusb *ttusb)
|
|||
|
||||
/* upload dsp code in 32 byte steps (36 didn't work for me ...) */
|
||||
/* 32 is max packet size, no messages should be splitted. */
|
||||
for (i = 0; i < sizeof(dsp_bootcode); i += 28) {
|
||||
memcpy(&b[4], &dsp_bootcode[i], 28);
|
||||
for (i = 0; i < fw->size; i += 28) {
|
||||
memcpy(&b[4], &fw->data[i], 28);
|
||||
|
||||
b[1] = ++ttusb->c;
|
||||
|
||||
|
@ -1820,3 +1827,4 @@ module_exit(ttusb_exit);
|
|||
MODULE_AUTHOR("Holger Waechtler <holger@convergence.de>");
|
||||
MODULE_DESCRIPTION("TTUSB DVB Driver");
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_FIRMWARE("ttusb-budget/dspbootcode.bin");
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1275,7 +1275,7 @@ static int ttusb_dec_boot_dsp(struct ttusb_dec *dec)
|
|||
u8 b1[] = { 0x61 };
|
||||
u8 *b;
|
||||
char idstring[21];
|
||||
u8 *firmware = NULL;
|
||||
const u8 *firmware = NULL;
|
||||
size_t firmware_size = 0;
|
||||
u16 firmware_csum = 0;
|
||||
__be16 firmware_csum_ns;
|
||||
|
|
|
@ -3768,7 +3768,8 @@ static int terratec_active_radio_upgrade(struct bttv *btv)
|
|||
#define BTTV_ALT_DCLK 0x100000
|
||||
#define BTTV_ALT_NCONFIG 0x800000
|
||||
|
||||
static int __devinit pvr_altera_load(struct bttv *btv, u8 *micro, u32 microlen)
|
||||
static int __devinit pvr_altera_load(struct bttv *btv, const u8 *micro,
|
||||
u32 microlen)
|
||||
{
|
||||
u32 n;
|
||||
u8 bits;
|
||||
|
|
|
@ -33,11 +33,10 @@
|
|||
|
||||
#include <linux/slab.h>
|
||||
#include <linux/vmalloc.h>
|
||||
#include <linux/firmware.h>
|
||||
|
||||
/* #define _CPIA2_DEBUG_ */
|
||||
|
||||
#include "cpia2patch.h"
|
||||
|
||||
#ifdef _CPIA2_DEBUG_
|
||||
|
||||
static const char *block_name[] = {
|
||||
|
@ -893,24 +892,53 @@ int cpia2_set_low_power(struct camera_data *cam)
|
|||
* apply_vp_patch
|
||||
*
|
||||
*****************************************************************************/
|
||||
static int cpia2_send_onebyte_command(struct camera_data *cam,
|
||||
struct cpia2_command *cmd,
|
||||
u8 start, u8 datum)
|
||||
{
|
||||
cmd->buffer.block_data[0] = datum;
|
||||
cmd->start = start;
|
||||
cmd->reg_count = 1;
|
||||
return cpia2_send_command(cam, cmd);
|
||||
}
|
||||
|
||||
static int apply_vp_patch(struct camera_data *cam)
|
||||
{
|
||||
int i, j;
|
||||
const struct firmware *fw;
|
||||
const char fw_name[] = "cpia2/stv0672_vp4.bin";
|
||||
int i, ret;
|
||||
struct cpia2_command cmd;
|
||||
|
||||
ret = request_firmware(&fw, fw_name, &cam->dev->dev);
|
||||
if (ret) {
|
||||
printk(KERN_ERR "cpia2: failed to load VP patch \"%s\"\n",
|
||||
fw_name);
|
||||
return ret;
|
||||
}
|
||||
|
||||
cmd.req_mode = CAMERAACCESS_TYPE_REPEAT | CAMERAACCESS_VP;
|
||||
cmd.direction = TRANSFER_WRITE;
|
||||
|
||||
for (i = 0; i < PATCH_DATA_SIZE; i++) {
|
||||
for (j = 0; j < patch_data[i].count; j++) {
|
||||
cmd.buffer.block_data[j] = patch_data[i].data[j];
|
||||
}
|
||||
/* First send the start address... */
|
||||
cpia2_send_onebyte_command(cam, &cmd, 0x0A, fw->data[0]); /* hi */
|
||||
cpia2_send_onebyte_command(cam, &cmd, 0x0B, fw->data[1]); /* lo */
|
||||
|
||||
cmd.start = patch_data[i].reg;
|
||||
cmd.reg_count = patch_data[i].count;
|
||||
/* ... followed by the data payload */
|
||||
for (i = 2; i < fw->size; i += 64) {
|
||||
cmd.start = 0x0C; /* Data */
|
||||
cmd.reg_count = min_t(int, 64, fw->size - i);
|
||||
memcpy(cmd.buffer.block_data, &fw->data[i], cmd.reg_count);
|
||||
cpia2_send_command(cam, &cmd);
|
||||
}
|
||||
|
||||
/* Next send the start address... */
|
||||
cpia2_send_onebyte_command(cam, &cmd, 0x0A, fw->data[0]); /* hi */
|
||||
cpia2_send_onebyte_command(cam, &cmd, 0x0B, fw->data[1]); /* lo */
|
||||
|
||||
/* ... followed by the 'goto' command */
|
||||
cpia2_send_onebyte_command(cam, &cmd, 0x0D, 1);
|
||||
|
||||
release_firmware(fw);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,233 +0,0 @@
|
|||
/****************************************************************************
|
||||
*
|
||||
* Filename: cpia2patch.h
|
||||
*
|
||||
* Copyright 2001, STMicrolectronics, Inc.
|
||||
*
|
||||
* Contact: steve.miller@st.com
|
||||
*
|
||||
* Description:
|
||||
* This file contains patch data for the CPiA2 (stv0672) VP4.
|
||||
*
|
||||
* 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
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef CPIA2_PATCH_HEADER
|
||||
#define CPIA2_PATCH_HEADER
|
||||
|
||||
typedef struct {
|
||||
unsigned char reg;
|
||||
unsigned char count;
|
||||
const unsigned char *data;
|
||||
} cpia2_patch;
|
||||
|
||||
static const unsigned char start_address_hi[1] = {
|
||||
0x01
|
||||
};
|
||||
|
||||
static const unsigned char start_address_lo[1] = {
|
||||
0xBC
|
||||
};
|
||||
|
||||
static const unsigned char patch_block0[64] = {
|
||||
0xE3, 0x02, 0xE3, 0x03, 0xE3, 0x04, 0xE3, 0x05,
|
||||
0xE3, 0x06, 0xE3, 0x07, 0x93, 0x44, 0x56, 0xD4,
|
||||
0x93, 0x4E, 0x56, 0x51, 0x93, 0x4E, 0x51, 0xD6,
|
||||
0x93, 0x4E, 0x4F, 0x54, 0x93, 0x4E, 0x92, 0x4F,
|
||||
0x92, 0xA4, 0x93, 0x05, 0x92, 0xF4, 0x93, 0x1B,
|
||||
0x92, 0x92, 0x91, 0xE6, 0x92, 0x36, 0x92, 0x74,
|
||||
0x92, 0x4A, 0x92, 0x8C, 0x92, 0x8E, 0xC8, 0xD0,
|
||||
0x0B, 0x42, 0x02, 0xA0, 0xCA, 0x92, 0x09, 0x02
|
||||
};
|
||||
|
||||
static const unsigned char patch_block1[64] = {
|
||||
0xC9, 0x10, 0x0A, 0x0A, 0x0A, 0x81, 0xE3, 0xB8,
|
||||
0xE3, 0xB0, 0xE3, 0xA8, 0xE3, 0xA0, 0xE3, 0x98,
|
||||
0xE3, 0x90, 0xE1, 0x00, 0xCF, 0xD7, 0x0A, 0x12,
|
||||
0xCC, 0x95, 0x08, 0xB2, 0x0A, 0x18, 0xE1, 0x00,
|
||||
0x01, 0xEE, 0x0C, 0x08, 0x4A, 0x12, 0xC8, 0x18,
|
||||
0xF0, 0x9A, 0xC0, 0x22, 0xF3, 0x1C, 0x4A, 0x13,
|
||||
0xF3, 0x14, 0xC8, 0xA0, 0xF2, 0x14, 0xF2, 0x1C,
|
||||
0xEB, 0x13, 0xD3, 0xA2, 0x63, 0x16, 0x48, 0x9E
|
||||
};
|
||||
|
||||
static const unsigned char patch_block2[64] = {
|
||||
0xF0, 0x18, 0xA4, 0x03, 0xF3, 0x93, 0xC0, 0x58,
|
||||
0xF7, 0x13, 0x51, 0x9C, 0xE9, 0x20, 0xCF, 0xEF,
|
||||
0x63, 0xF9, 0x92, 0x2E, 0xD3, 0x5F, 0x63, 0xFA,
|
||||
0x92, 0x2E, 0xD3, 0x67, 0x63, 0xFB, 0x92, 0x2E,
|
||||
0xD3, 0x6F, 0xE9, 0x1A, 0x63, 0x16, 0x48, 0xA7,
|
||||
0xF0, 0x20, 0xA4, 0x06, 0xF3, 0x94, 0xC0, 0x27,
|
||||
0xF7, 0x14, 0xF5, 0x13, 0x51, 0x9D, 0xF6, 0x13,
|
||||
0x63, 0x18, 0xC4, 0x20, 0xCB, 0xEF, 0x63, 0xFC
|
||||
};
|
||||
|
||||
static const unsigned char patch_block3[64] = {
|
||||
0x92, 0x2E, 0xD3, 0x77, 0x63, 0xFD, 0x92, 0x2E,
|
||||
0xD3, 0x7F, 0x63, 0xFE, 0x92, 0x2E, 0xD3, 0x87,
|
||||
0x63, 0xFF, 0x92, 0x2E, 0xD3, 0x8F, 0x64, 0x38,
|
||||
0x92, 0x2E, 0xD3, 0x97, 0x64, 0x39, 0x92, 0x2E,
|
||||
0xD3, 0x9F, 0xE1, 0x00, 0xF5, 0x3A, 0xF4, 0x3B,
|
||||
0xF7, 0xBF, 0xF2, 0xBC, 0xF2, 0x3D, 0xE1, 0x00,
|
||||
0x80, 0x87, 0x90, 0x80, 0x51, 0xD5, 0x02, 0x22,
|
||||
0x02, 0x32, 0x4B, 0xD3, 0xF7, 0x11, 0x0B, 0xDA
|
||||
};
|
||||
|
||||
static const unsigned char patch_block4[64] = {
|
||||
0xE1, 0x00, 0x0E, 0x02, 0x02, 0x40, 0x0D, 0xB5,
|
||||
0xE3, 0x02, 0x48, 0x55, 0xE5, 0x12, 0xA4, 0x01,
|
||||
0xE8, 0x1B, 0xE3, 0x90, 0xF0, 0x18, 0xA4, 0x01,
|
||||
0xE8, 0xBF, 0x8D, 0xB8, 0x4B, 0xD1, 0x4B, 0xD8,
|
||||
0x0B, 0xCB, 0x0B, 0xC2, 0xE1, 0x00, 0xE3, 0x02,
|
||||
0xE3, 0x03, 0x52, 0xD3, 0x60, 0x59, 0xE6, 0x93,
|
||||
0x0D, 0x22, 0x52, 0xD4, 0xE6, 0x93, 0x0D, 0x2A,
|
||||
0xE3, 0x98, 0xE3, 0x90, 0xE1, 0x00, 0x02, 0x5D
|
||||
};
|
||||
|
||||
static const unsigned char patch_block5[64] = {
|
||||
0x02, 0x63, 0xE3, 0x02, 0xC8, 0x12, 0x02, 0xCA,
|
||||
0xC8, 0x52, 0x02, 0xC2, 0x82, 0x68, 0xE3, 0x02,
|
||||
0xC8, 0x14, 0x02, 0xCA, 0xC8, 0x90, 0x02, 0xC2,
|
||||
0x0A, 0xD0, 0xC9, 0x93, 0x0A, 0xDA, 0xCC, 0xD2,
|
||||
0x0A, 0xE2, 0x63, 0x12, 0x02, 0xDA, 0x0A, 0x98,
|
||||
0x0A, 0xA0, 0x0A, 0xA8, 0xE3, 0x90, 0xE1, 0x00,
|
||||
0xE3, 0x02, 0x0A, 0xD0, 0xC9, 0x93, 0x0A, 0xDA,
|
||||
0xCC, 0xD2, 0x0A, 0xE2, 0x63, 0x12, 0x02, 0xDA
|
||||
};
|
||||
|
||||
static const unsigned char patch_block6[64] = {
|
||||
0x0A, 0x98, 0x0A, 0xA0, 0x0A, 0xA8, 0x49, 0x91,
|
||||
0xE5, 0x6A, 0xA4, 0x04, 0xC8, 0x12, 0x02, 0xCA,
|
||||
0xC8, 0x52, 0x82, 0x89, 0xC8, 0x14, 0x02, 0xCA,
|
||||
0xC8, 0x90, 0x02, 0xC2, 0xE3, 0x90, 0xE1, 0x00,
|
||||
0x08, 0x60, 0xE1, 0x00, 0x48, 0x53, 0xE8, 0x97,
|
||||
0x08, 0x5A, 0xE1, 0x00, 0xE3, 0x02, 0xE3, 0x03,
|
||||
0x54, 0xD3, 0x60, 0x59, 0xE6, 0x93, 0x0D, 0x52,
|
||||
0xE3, 0x98, 0xE3, 0x90, 0xE1, 0x00, 0x02, 0x9C
|
||||
};
|
||||
|
||||
static const unsigned char patch_block7[64] = {
|
||||
0xE3, 0x02, 0x55, 0x13, 0x93, 0x17, 0x55, 0x13,
|
||||
0x93, 0x17, 0xE3, 0x90, 0xE1, 0x00, 0x75, 0x30,
|
||||
0xE3, 0x02, 0xE3, 0x03, 0x55, 0x55, 0x60, 0x59,
|
||||
0xE6, 0x93, 0x0D, 0xB2, 0xE3, 0x98, 0xE3, 0x90,
|
||||
0xE1, 0x00, 0x02, 0xAE, 0xE7, 0x92, 0xE9, 0x18,
|
||||
0xEA, 0x9A, 0xE8, 0x98, 0xE8, 0x10, 0xE8, 0x11,
|
||||
0xE8, 0x51, 0xD2, 0xDA, 0xD2, 0xF3, 0xE8, 0x13,
|
||||
0xD2, 0xFA, 0xE8, 0x50, 0xD2, 0xEA, 0xE8, 0xD0
|
||||
};
|
||||
|
||||
static const unsigned char patch_block8[64] = {
|
||||
0xE8, 0xD1, 0xD3, 0x0A, 0x03, 0x09, 0x48, 0x23,
|
||||
0xE5, 0x2C, 0xA0, 0x03, 0x48, 0x24, 0xEA, 0x1C,
|
||||
0x03, 0x08, 0xD2, 0xE3, 0xD3, 0x03, 0xD3, 0x13,
|
||||
0xE1, 0x00, 0x02, 0xCB, 0x05, 0x93, 0x57, 0x93,
|
||||
0xF0, 0x9A, 0xAC, 0x0B, 0xE3, 0x07, 0x92, 0xEA,
|
||||
0xE2, 0x9F, 0xE5, 0x06, 0xE3, 0xB0, 0xA0, 0x02,
|
||||
0xEB, 0x1E, 0x82, 0xD7, 0xEA, 0x1E, 0xE2, 0x3B,
|
||||
0x85, 0x9B, 0xE9, 0x1E, 0xC8, 0x90, 0x85, 0x94
|
||||
};
|
||||
|
||||
static const unsigned char patch_block9[64] = {
|
||||
0x02, 0xDE, 0x05, 0x80, 0x57, 0x93, 0xF0, 0xBA,
|
||||
0xAC, 0x06, 0x92, 0xEA, 0xE2, 0xBF, 0xE5, 0x06,
|
||||
0xA0, 0x01, 0xEB, 0xBF, 0x85, 0x88, 0xE9, 0x3E,
|
||||
0xC8, 0x90, 0x85, 0x81, 0xE9, 0x3E, 0xF0, 0xBA,
|
||||
0xF3, 0x39, 0xF0, 0x3A, 0x60, 0x17, 0xF0, 0x3A,
|
||||
0xC0, 0x90, 0xF0, 0xBA, 0xE1, 0x00, 0x00, 0x3F,
|
||||
0xE3, 0x02, 0xE3, 0x03, 0x58, 0x10, 0x60, 0x59,
|
||||
0xE6, 0x93, 0x0D, 0xA2, 0x58, 0x12, 0xE6, 0x93
|
||||
};
|
||||
|
||||
static const unsigned char patch_block10[64] = {
|
||||
0x0D, 0xAA, 0xE3, 0x98, 0xE3, 0x90, 0xE1, 0x00,
|
||||
0x03, 0x01, 0xE1, 0x00, 0x03, 0x03, 0x9B, 0x7D,
|
||||
0x8B, 0x8B, 0xE3, 0x02, 0xE3, 0x03, 0x58, 0x56,
|
||||
0x60, 0x59, 0xE6, 0x93, 0x0D, 0xBA, 0xE3, 0x98,
|
||||
0xE3, 0x90, 0xE1, 0x00, 0x03, 0x0F, 0x93, 0x11,
|
||||
0xE1, 0x00, 0xE3, 0x02, 0x4A, 0x11, 0x0B, 0x42,
|
||||
0x91, 0xAF, 0xE3, 0x90, 0xE1, 0x00, 0xF2, 0x91,
|
||||
0xF0, 0x91, 0xA3, 0xFE, 0xE1, 0x00, 0x60, 0x92
|
||||
};
|
||||
|
||||
static const unsigned char patch_block11[64] = {
|
||||
0xC0, 0x5F, 0xF0, 0x13, 0xF0, 0x13, 0x59, 0x5B,
|
||||
0xE2, 0x13, 0xF0, 0x11, 0x5A, 0x19, 0xE2, 0x13,
|
||||
0xE1, 0x00, 0x00, 0x00, 0x03, 0x27, 0x68, 0x61,
|
||||
0x76, 0x61, 0x6E, 0x61, 0x00, 0x06, 0x03, 0x2C,
|
||||
0xE3, 0x02, 0xE3, 0x03, 0xE9, 0x38, 0x59, 0x15,
|
||||
0x59, 0x5A, 0xF2, 0x9A, 0xBC, 0x0B, 0xA4, 0x0A,
|
||||
0x59, 0x1E, 0xF3, 0x11, 0xF0, 0x1A, 0xE2, 0xBB,
|
||||
0x59, 0x15, 0xF0, 0x11, 0x19, 0x2A, 0xE5, 0x02
|
||||
};
|
||||
|
||||
static const unsigned char patch_block12[54] = {
|
||||
0xA4, 0x01, 0xEB, 0xBF, 0xE3, 0x98, 0xE3, 0x90,
|
||||
0xE1, 0x00, 0x03, 0x42, 0x19, 0x28, 0xE1, 0x00,
|
||||
0xE9, 0x30, 0x60, 0x79, 0xE1, 0x00, 0xE3, 0x03,
|
||||
0xE3, 0x07, 0x60, 0x79, 0x93, 0x4E, 0xE3, 0xB8,
|
||||
0xE3, 0x98, 0xE1, 0x00, 0xE9, 0x1A, 0xF0, 0x1F,
|
||||
0xE2, 0x33, 0xF0, 0x91, 0xE2, 0x92, 0xE0, 0x32,
|
||||
0xF0, 0x31, 0xE1, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
static const unsigned char do_call[1] = {
|
||||
0x01
|
||||
};
|
||||
|
||||
|
||||
#define PATCH_DATA_SIZE 18
|
||||
|
||||
static const cpia2_patch patch_data[PATCH_DATA_SIZE] = {
|
||||
{0x0A, sizeof(start_address_hi), start_address_hi}
|
||||
, // 0
|
||||
{0x0B, sizeof(start_address_lo), start_address_lo}
|
||||
, // 1
|
||||
{0x0C, sizeof(patch_block0), patch_block0}
|
||||
, // 2
|
||||
{0x0C, sizeof(patch_block1), patch_block1}
|
||||
, // 3
|
||||
{0x0C, sizeof(patch_block2), patch_block2}
|
||||
, // 4
|
||||
{0x0C, sizeof(patch_block3), patch_block3}
|
||||
, // 5
|
||||
{0x0C, sizeof(patch_block4), patch_block4}
|
||||
, // 6
|
||||
{0x0C, sizeof(patch_block5), patch_block5}
|
||||
, // 7
|
||||
{0x0C, sizeof(patch_block6), patch_block6}
|
||||
, // 8
|
||||
{0x0C, sizeof(patch_block7), patch_block7}
|
||||
, // 9
|
||||
{0x0C, sizeof(patch_block8), patch_block8}
|
||||
, // 10
|
||||
{0x0C, sizeof(patch_block9), patch_block9}
|
||||
, //11
|
||||
{0x0C, sizeof(patch_block10), patch_block10}
|
||||
, // 12
|
||||
{0x0C, sizeof(patch_block11), patch_block11}
|
||||
, // 13
|
||||
{0x0C, sizeof(patch_block12), patch_block12}
|
||||
, // 14
|
||||
{0x0A, sizeof(start_address_hi), start_address_hi}
|
||||
, // 15
|
||||
{0x0B, sizeof(start_address_lo), start_address_lo}
|
||||
, // 16
|
||||
{0x0D, sizeof(do_call), do_call} //17
|
||||
};
|
||||
|
||||
|
||||
#endif
|
|
@ -29,7 +29,7 @@ int cx18_av_loadfw(struct cx18 *cx)
|
|||
const struct firmware *fw = NULL;
|
||||
u32 size;
|
||||
u32 v;
|
||||
u8 *ptr;
|
||||
const u8 *ptr;
|
||||
int i;
|
||||
|
||||
if (request_firmware(&fw, FWFILE, &cx->dev->dev) != 0) {
|
||||
|
|
|
@ -79,7 +79,7 @@ static int check_fw_load(struct i2c_client *client, int size)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int fw_write(struct i2c_client *client, u8 *data, int size)
|
||||
static int fw_write(struct i2c_client *client, const u8 *data, int size)
|
||||
{
|
||||
if (i2c_master_send(client, data, size) < size) {
|
||||
v4l_err(client, "firmware load i2c failure\n");
|
||||
|
@ -93,7 +93,8 @@ int cx25840_loadfw(struct i2c_client *client)
|
|||
{
|
||||
struct cx25840_state *state = i2c_get_clientdata(client);
|
||||
const struct firmware *fw = NULL;
|
||||
u8 buffer[4], *ptr;
|
||||
u8 buffer[FWSEND];
|
||||
const u8 *ptr;
|
||||
int size, retval;
|
||||
|
||||
if (state->is_cx23885)
|
||||
|
@ -108,29 +109,23 @@ int cx25840_loadfw(struct i2c_client *client)
|
|||
|
||||
buffer[0] = 0x08;
|
||||
buffer[1] = 0x02;
|
||||
buffer[2] = fw->data[0];
|
||||
buffer[3] = fw->data[1];
|
||||
retval = fw_write(client, buffer, 4);
|
||||
|
||||
if (retval < 0) {
|
||||
release_firmware(fw);
|
||||
return retval;
|
||||
}
|
||||
|
||||
size = fw->size - 2;
|
||||
size = fw->size;
|
||||
ptr = fw->data;
|
||||
while (size > 0) {
|
||||
ptr[0] = 0x08;
|
||||
ptr[1] = 0x02;
|
||||
retval = fw_write(client, ptr, min(FWSEND, size + 2));
|
||||
int len = min(FWSEND - 2, size);
|
||||
|
||||
memcpy(buffer + 2, ptr, len);
|
||||
|
||||
retval = fw_write(client, buffer, len + 2);
|
||||
|
||||
if (retval < 0) {
|
||||
release_firmware(fw);
|
||||
return retval;
|
||||
}
|
||||
|
||||
size -= FWSEND - 2;
|
||||
ptr += FWSEND - 2;
|
||||
size -= len;
|
||||
ptr += len;
|
||||
}
|
||||
|
||||
end_fw_load(client);
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -38,9 +38,10 @@
|
|||
#include <linux/delay.h>
|
||||
#include <linux/usb.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/firmware.h>
|
||||
#include <linux/ihex.h>
|
||||
|
||||
#include "dabusb.h"
|
||||
#include "dabfirmware.h"
|
||||
|
||||
/*
|
||||
* Version Information
|
||||
|
@ -297,7 +298,8 @@ static int dabusb_bulk (pdabusb_t s, pbulk_transfer_t pb)
|
|||
return ret;
|
||||
}
|
||||
/* --------------------------------------------------------------------- */
|
||||
static int dabusb_writemem (pdabusb_t s, int pos, unsigned char *data, int len)
|
||||
static int dabusb_writemem (pdabusb_t s, int pos, const unsigned char *data,
|
||||
int len)
|
||||
{
|
||||
int ret;
|
||||
unsigned char *transfer_buffer = kmalloc (len, GFP_KERNEL);
|
||||
|
@ -324,24 +326,35 @@ static int dabusb_8051_reset (pdabusb_t s, unsigned char reset_bit)
|
|||
static int dabusb_loadmem (pdabusb_t s, const char *fname)
|
||||
{
|
||||
int ret;
|
||||
PINTEL_HEX_RECORD ptr = firmware;
|
||||
const struct ihex_binrec *rec;
|
||||
const struct firmware *fw;
|
||||
|
||||
dbg("Enter dabusb_loadmem (internal)");
|
||||
|
||||
ret = request_ihex_firmware(&fw, "dabusb/firmware.fw", &s->usbdev->dev);
|
||||
if (ret) {
|
||||
err("Failed to load \"dabusb/firmware.fw\": %d\n", ret);
|
||||
goto out;
|
||||
}
|
||||
ret = dabusb_8051_reset (s, 1);
|
||||
while (ptr->Type == 0) {
|
||||
|
||||
dbg("dabusb_writemem: %04X %p %d)", ptr->Address, ptr->Data, ptr->Length);
|
||||
for (rec = (const struct ihex_binrec *)fw->data; rec;
|
||||
rec = ihex_next_binrec(rec)) {
|
||||
dbg("dabusb_writemem: %04X %p %d)", be32_to_cpu(rec->addr),
|
||||
rec->data, be16_to_cpu(rec->len));
|
||||
|
||||
ret = dabusb_writemem (s, ptr->Address, ptr->Data, ptr->Length);
|
||||
ret = dabusb_writemem(s, be32_to_cpu(rec->addr), rec->data,
|
||||
be16_to_cpu(rec->len));
|
||||
if (ret < 0) {
|
||||
err("dabusb_writemem failed (%d %04X %p %d)", ret, ptr->Address, ptr->Data, ptr->Length);
|
||||
err("dabusb_writemem failed (%d %04X %p %d)", ret,
|
||||
be32_to_cpu(rec->addr), rec->data,
|
||||
be16_to_cpu(rec->len));
|
||||
break;
|
||||
}
|
||||
ptr++;
|
||||
}
|
||||
ret = dabusb_8051_reset (s, 0);
|
||||
|
||||
release_firmware(fw);
|
||||
out:
|
||||
dbg("dabusb_loadmem: exit");
|
||||
|
||||
return ret;
|
||||
|
@ -376,9 +389,9 @@ static int dabusb_fpga_init (pdabusb_t s, pbulk_transfer_t b)
|
|||
static int dabusb_fpga_download (pdabusb_t s, const char *fname)
|
||||
{
|
||||
pbulk_transfer_t b = kmalloc (sizeof (bulk_transfer_t), GFP_KERNEL);
|
||||
const struct firmware *fw;
|
||||
unsigned int blen, n;
|
||||
int ret;
|
||||
unsigned char *buf = bitstream;
|
||||
|
||||
dbg("Enter dabusb_fpga_download (internal)");
|
||||
|
||||
|
@ -387,10 +400,16 @@ static int dabusb_fpga_download (pdabusb_t s, const char *fname)
|
|||
return -ENOMEM;
|
||||
}
|
||||
|
||||
ret = request_firmware(&fw, "dabusb/bitstream.bin", &s->usbdev->dev);
|
||||
if (ret) {
|
||||
err("Failed to load \"dabusb/bitstream.bin\": %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
b->pipe = 1;
|
||||
ret = dabusb_fpga_clear (s, b);
|
||||
mdelay (10);
|
||||
blen = buf[73] + (buf[72] << 8);
|
||||
blen = fw->data[73] + (fw->data[72] << 8);
|
||||
|
||||
dbg("Bitstream len: %i", blen);
|
||||
|
||||
|
@ -402,7 +421,7 @@ static int dabusb_fpga_download (pdabusb_t s, const char *fname)
|
|||
for (n = 0; n <= blen + 60; n += 60) {
|
||||
// some cclks for startup
|
||||
b->size = 64;
|
||||
memcpy (b->data + 4, buf + 74 + n, 60);
|
||||
memcpy (b->data + 4, fw->data + 74 + n, 60);
|
||||
ret = dabusb_bulk (s, b);
|
||||
if (ret < 0) {
|
||||
err("dabusb_bulk failed.");
|
||||
|
@ -413,6 +432,7 @@ static int dabusb_fpga_download (pdabusb_t s, const char *fname)
|
|||
|
||||
ret = dabusb_fpga_init (s, b);
|
||||
kfree (b);
|
||||
release_firmware(fw);
|
||||
|
||||
dbg("exit dabusb_fpga_download");
|
||||
|
||||
|
|
|
@ -43,6 +43,8 @@
|
|||
#include <linux/vmalloc.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/firmware.h>
|
||||
#include <linux/ihex.h>
|
||||
#include "usbvideo.h"
|
||||
|
||||
// #define VICAM_DEBUG
|
||||
|
@ -70,284 +72,6 @@
|
|||
|
||||
#define VICAM_HEADER_SIZE 64
|
||||
|
||||
/* Not sure what all the bytes in these char
|
||||
* arrays do, but they're necessary to make
|
||||
* the camera work.
|
||||
*/
|
||||
|
||||
static unsigned char setup1[] = {
|
||||
0xB6, 0xC3, 0x1F, 0x00, 0x02, 0x64, 0xE7, 0x67,
|
||||
0xFD, 0xFF, 0x0E, 0xC0, 0xE7, 0x09, 0xDE, 0x00,
|
||||
0x8E, 0x00, 0xC0, 0x09, 0x40, 0x03, 0xC0, 0x17,
|
||||
0x44, 0x03, 0x4B, 0xAF, 0xC0, 0x07, 0x00, 0x00,
|
||||
0x4B, 0xAF, 0x97, 0xCF, 0x00, 0x00
|
||||
};
|
||||
|
||||
static unsigned char setup2[] = {
|
||||
0xB6, 0xC3, 0x03, 0x00, 0x03, 0x64, 0x18, 0x00,
|
||||
0x00, 0x00
|
||||
};
|
||||
|
||||
static unsigned char setup3[] = {
|
||||
0xB6, 0xC3, 0x01, 0x00, 0x06, 0x64, 0x00, 0x00
|
||||
};
|
||||
|
||||
static unsigned char setup4[] = {
|
||||
0xB6, 0xC3, 0x8F, 0x06, 0x02, 0x64, 0xE7, 0x07,
|
||||
0x00, 0x00, 0x08, 0xC0, 0xE7, 0x07, 0x00, 0x00,
|
||||
0x3E, 0xC0, 0xE7, 0x07, 0x54, 0x01, 0xAA, 0x00,
|
||||
0xE7, 0x07, 0xC8, 0x05, 0xB6, 0x00, 0xE7, 0x07,
|
||||
0x42, 0x01, 0xD2, 0x00, 0xE7, 0x07, 0x7C, 0x00,
|
||||
0x16, 0x00, 0xE7, 0x07, 0x56, 0x00, 0x18, 0x00,
|
||||
0xE7, 0x07, 0x06, 0x00, 0x92, 0xC0, 0xE7, 0x07,
|
||||
0x00, 0x00, 0x1E, 0xC0, 0xE7, 0x07, 0xFF, 0xFF,
|
||||
0x22, 0xC0, 0xE7, 0x07, 0x04, 0x00, 0x24, 0xC0,
|
||||
0xE7, 0x07, 0xEC, 0x27, 0x28, 0xC0, 0xE7, 0x07,
|
||||
0x16, 0x01, 0x8E, 0x00, 0xE7, 0x87, 0x01, 0x00,
|
||||
0x0E, 0xC0, 0x97, 0xCF, 0xD7, 0x09, 0x00, 0xC0,
|
||||
0xE7, 0x77, 0x01, 0x00, 0x92, 0xC0, 0x09, 0xC1,
|
||||
0xE7, 0x09, 0xFE, 0x05, 0x24, 0x01, 0xE7, 0x09,
|
||||
0x04, 0x06, 0x26, 0x01, 0xE7, 0x07, 0x07, 0x00,
|
||||
0x92, 0xC0, 0xE7, 0x05, 0x00, 0xC0, 0xC0, 0xDF,
|
||||
0x97, 0xCF, 0x17, 0x00, 0x57, 0x00, 0x17, 0x02,
|
||||
0xD7, 0x09, 0x00, 0xC0, 0xE7, 0x77, 0x01, 0x00,
|
||||
0x92, 0xC0, 0x0A, 0xC1, 0xE7, 0x57, 0xFF, 0xFF,
|
||||
0xFA, 0x05, 0x0D, 0xC0, 0xE7, 0x57, 0x00, 0x00,
|
||||
0xFA, 0x05, 0x0F, 0xC0, 0x9F, 0xAF, 0xC6, 0x00,
|
||||
0xE7, 0x05, 0x00, 0xC0, 0xC8, 0x05, 0xC1, 0x05,
|
||||
0xC0, 0x05, 0xC0, 0xDF, 0x97, 0xCF, 0x27, 0xDA,
|
||||
0xFA, 0x05, 0xEF, 0x07, 0x01, 0x00, 0x0B, 0x06,
|
||||
0x73, 0xCF, 0x9F, 0xAF, 0x78, 0x01, 0x9F, 0xAF,
|
||||
0x1A, 0x03, 0x6E, 0xCF, 0xE7, 0x09, 0xFC, 0x05,
|
||||
0x24, 0x01, 0xE7, 0x09, 0x02, 0x06, 0x26, 0x01,
|
||||
0xE7, 0x07, 0x07, 0x00, 0x92, 0xC0, 0xE7, 0x09,
|
||||
0xFC, 0x05, 0xFE, 0x05, 0xE7, 0x09, 0x02, 0x06,
|
||||
0x04, 0x06, 0xE7, 0x09, 0x00, 0x06, 0xFC, 0x05,
|
||||
0xE7, 0x09, 0xFE, 0x05, 0x00, 0x06, 0x27, 0xDA,
|
||||
0xFA, 0x05, 0xE7, 0x57, 0x01, 0x00, 0xFA, 0x05,
|
||||
0x02, 0xCA, 0x04, 0xC0, 0x97, 0xCF, 0x9F, 0xAF,
|
||||
0x66, 0x05, 0x97, 0xCF, 0xE7, 0x07, 0x40, 0x00,
|
||||
0x02, 0x06, 0xC8, 0x09, 0xFC, 0x05, 0x9F, 0xAF,
|
||||
0xDA, 0x02, 0x97, 0xCF, 0xCF, 0x17, 0x02, 0x00,
|
||||
0xEF, 0x57, 0x81, 0x00, 0x09, 0x06, 0x9F, 0xA0,
|
||||
0xB6, 0x01, 0xEF, 0x57, 0x80, 0x00, 0x09, 0x06,
|
||||
0x9F, 0xA0, 0x40, 0x02, 0xEF, 0x57, 0x01, 0x00,
|
||||
0x0B, 0x06, 0x9F, 0xA0, 0x46, 0x03, 0xE7, 0x07,
|
||||
0x01, 0x00, 0x0A, 0xC0, 0x46, 0xAF, 0x47, 0xAF,
|
||||
0x9F, 0xAF, 0x40, 0x02, 0xE7, 0x07, 0x2E, 0x00,
|
||||
0x0A, 0xC0, 0xEF, 0x87, 0x80, 0x00, 0x09, 0x06,
|
||||
0x97, 0xCF, 0x00, 0x0E, 0x01, 0x00, 0xC0, 0x57,
|
||||
0x51, 0x00, 0x9F, 0xC0, 0x9E, 0x02, 0xC0, 0x57,
|
||||
0x50, 0x00, 0x20, 0xC0, 0xC0, 0x57, 0x55, 0x00,
|
||||
0x12, 0xC0, 0xC0, 0x57, 0x56, 0x00, 0x9F, 0xC0,
|
||||
0x72, 0x02, 0x9F, 0xCF, 0xD6, 0x02, 0xC1, 0x0B,
|
||||
0x08, 0x06, 0x01, 0xD0, 0x6F, 0x90, 0x08, 0x06,
|
||||
0xC0, 0x07, 0x08, 0x00, 0xC1, 0x0B, 0x08, 0x06,
|
||||
0x9F, 0xAF, 0x28, 0x05, 0x97, 0xCF, 0x2F, 0x0E,
|
||||
0x02, 0x00, 0x08, 0x06, 0xC0, 0x07, 0x08, 0x00,
|
||||
0xC1, 0x0B, 0x08, 0x06, 0x9F, 0xAF, 0x28, 0x05,
|
||||
0x9F, 0xCF, 0xD6, 0x02, 0x2F, 0x0E, 0x02, 0x00,
|
||||
0x09, 0x06, 0xEF, 0x87, 0x80, 0x00, 0x09, 0x06,
|
||||
0x9F, 0xCF, 0xD6, 0x02, 0xEF, 0x67, 0x7F, 0xFF,
|
||||
0x09, 0x06, 0xE7, 0x67, 0xFF, 0xFD, 0x22, 0xC0,
|
||||
0xE7, 0x67, 0xEF, 0xFF, 0x24, 0xC0, 0xE7, 0x87,
|
||||
0x10, 0x00, 0x28, 0xC0, 0x9F, 0xAF, 0xB8, 0x05,
|
||||
0xE7, 0x87, 0xE0, 0x21, 0x24, 0xC0, 0x9F, 0xAF,
|
||||
0xA8, 0x05, 0xE7, 0x87, 0x08, 0x00, 0x24, 0xC0,
|
||||
0xE7, 0x67, 0xDF, 0xFF, 0x24, 0xC0, 0xC8, 0x07,
|
||||
0x0A, 0x00, 0xC0, 0x07, 0x00, 0x00, 0xC1, 0x07,
|
||||
0x01, 0x00, 0x9F, 0xAF, 0x28, 0x05, 0x9F, 0xAF,
|
||||
0xB8, 0x05, 0xC0, 0x07, 0x9E, 0x00, 0x9F, 0xAF,
|
||||
0x44, 0x05, 0xE7, 0x67, 0xFF, 0xFE, 0x24, 0xC0,
|
||||
0xC0, 0x09, 0x20, 0xC0, 0xE7, 0x87, 0x00, 0x01,
|
||||
0x24, 0xC0, 0xC0, 0x77, 0x00, 0x02, 0x0F, 0xC1,
|
||||
0xE7, 0x67, 0xF7, 0xFF, 0x24, 0xC0, 0xE7, 0x67,
|
||||
0xF7, 0xFF, 0x24, 0xC0, 0xE7, 0x87, 0x08, 0x00,
|
||||
0x24, 0xC0, 0x08, 0xDA, 0x5E, 0xC1, 0xEF, 0x07,
|
||||
0x80, 0x00, 0x09, 0x06, 0x97, 0xCF, 0xEF, 0x07,
|
||||
0x01, 0x00, 0x0A, 0x06, 0x97, 0xCF, 0xEF, 0x07,
|
||||
0x00, 0x00, 0x0B, 0x06, 0xEF, 0x07, 0x00, 0x00,
|
||||
0x0A, 0x06, 0xEF, 0x67, 0x7F, 0xFF, 0x09, 0x06,
|
||||
0xEF, 0x07, 0x00, 0x00, 0x0D, 0x06, 0xE7, 0x67,
|
||||
0xEF, 0xFF, 0x28, 0xC0, 0xE7, 0x67, 0x17, 0xD8,
|
||||
0x24, 0xC0, 0xE7, 0x07, 0x00, 0x00, 0x1E, 0xC0,
|
||||
0xE7, 0x07, 0xFF, 0xFF, 0x22, 0xC0, 0x97, 0xCF,
|
||||
0xC8, 0x07, 0x0E, 0x06, 0x9F, 0xAF, 0xDA, 0x02,
|
||||
0xE7, 0x07, 0x00, 0x00, 0xF2, 0x05, 0xE7, 0x07,
|
||||
0x10, 0x00, 0xF6, 0x05, 0xE7, 0x07, 0x0E, 0x06,
|
||||
0xF4, 0x05, 0xE7, 0x07, 0xD6, 0x02, 0xF8, 0x05,
|
||||
0xC8, 0x07, 0xF2, 0x05, 0xC1, 0x07, 0x00, 0x80,
|
||||
0x50, 0xAF, 0x97, 0xCF, 0x2F, 0x0C, 0x02, 0x00,
|
||||
0x07, 0x06, 0x2F, 0x0C, 0x04, 0x00, 0x06, 0x06,
|
||||
0xE7, 0x07, 0x00, 0x00, 0xF2, 0x05, 0xE7, 0x07,
|
||||
0x10, 0x00, 0xF6, 0x05, 0xE7, 0x07, 0xE2, 0x05,
|
||||
0xF4, 0x05, 0xE7, 0x07, 0xCE, 0x02, 0xF8, 0x05,
|
||||
0xC8, 0x07, 0xF2, 0x05, 0xC1, 0x07, 0x00, 0x80,
|
||||
0x51, 0xAF, 0x97, 0xCF, 0x9F, 0xAF, 0x66, 0x04,
|
||||
0x9F, 0xAF, 0x1A, 0x03, 0x59, 0xAF, 0x97, 0xCF,
|
||||
0xC0, 0x07, 0x0E, 0x00, 0xC1, 0x0B, 0x0C, 0x06,
|
||||
0x41, 0xD1, 0x9F, 0xAF, 0x28, 0x05, 0xC0, 0x07,
|
||||
0x3C, 0x00, 0x9F, 0xAF, 0x44, 0x05, 0x68, 0x00,
|
||||
0xC0, 0x07, 0x3B, 0x00, 0x9F, 0xAF, 0x44, 0x05,
|
||||
0x6F, 0x00, 0x0C, 0x06, 0x68, 0x00, 0xE0, 0x07,
|
||||
0x04, 0x01, 0xE8, 0x0B, 0x0A, 0x06, 0xE8, 0x07,
|
||||
0x00, 0x00, 0xE0, 0x07, 0x00, 0x02, 0xE0, 0x07,
|
||||
0xEC, 0x01, 0xE0, 0x07, 0xFC, 0xFF, 0x97, 0xCF,
|
||||
0xE7, 0x07, 0xFF, 0xFF, 0xFA, 0x05, 0xEF, 0x07,
|
||||
0x00, 0x00, 0x0B, 0x06, 0xE7, 0x07, 0x0E, 0x06,
|
||||
0x24, 0x01, 0xE7, 0x07, 0x0E, 0x06, 0xFE, 0x05,
|
||||
0xE7, 0x07, 0x40, 0x00, 0x26, 0x01, 0xE7, 0x07,
|
||||
0x40, 0x00, 0x04, 0x06, 0xE7, 0x07, 0x07, 0x00,
|
||||
0x92, 0xC0, 0x97, 0xCF, 0xEF, 0x07, 0x02, 0x00,
|
||||
0x0B, 0x06, 0x9F, 0xAF, 0x78, 0x01, 0xEF, 0x77,
|
||||
0x80, 0x00, 0x07, 0x06, 0x9F, 0xC0, 0x14, 0x04,
|
||||
0xEF, 0x77, 0x01, 0x00, 0x07, 0x06, 0x37, 0xC0,
|
||||
0xEF, 0x77, 0x01, 0x00, 0x0D, 0x06, 0x0F, 0xC1,
|
||||
0xEF, 0x07, 0x01, 0x00, 0x0D, 0x06, 0xC0, 0x07,
|
||||
0x02, 0x00, 0xC1, 0x07, 0x30, 0x00, 0x9F, 0xAF,
|
||||
0x28, 0x05, 0xC0, 0x07, 0x01, 0x00, 0xC1, 0x07,
|
||||
0x02, 0x00, 0x9F, 0xAF, 0x28, 0x05, 0xC8, 0x07,
|
||||
0xFF, 0x4F, 0x9F, 0xAF, 0xA8, 0x05, 0xC0, 0x07,
|
||||
0x38, 0x00, 0x9F, 0xAF, 0x44, 0x05, 0xC1, 0x77,
|
||||
0x03, 0x00, 0x02, 0xC1, 0x08, 0xDA, 0x75, 0xC1,
|
||||
0xC1, 0x77, 0x01, 0x00, 0x0A, 0xC1, 0xC0, 0x07,
|
||||
0x01, 0x00, 0xC1, 0x07, 0x02, 0x00, 0x9F, 0xAF,
|
||||
0x28, 0x05, 0xEF, 0x07, 0x01, 0x00, 0x06, 0x06,
|
||||
0x2C, 0xCF, 0xC0, 0x07, 0x01, 0x00, 0xC1, 0x07,
|
||||
0x04, 0x00, 0x9F, 0xAF, 0x28, 0x05, 0xEF, 0x07,
|
||||
0x00, 0x00, 0x06, 0x06, 0x22, 0xCF, 0xEF, 0x07,
|
||||
0x00, 0x00, 0x0D, 0x06, 0xEF, 0x57, 0x01, 0x00,
|
||||
0x06, 0x06, 0x1B, 0xC0, 0xC0, 0x07, 0x01, 0x00,
|
||||
0xC1, 0x07, 0x01, 0x00, 0x9F, 0xAF, 0x28, 0x05,
|
||||
0xC0, 0x07, 0x02, 0x00, 0xC1, 0x07, 0x30, 0x00,
|
||||
0x9F, 0xAF, 0x28, 0x05, 0xC8, 0x07, 0xFF, 0x4F,
|
||||
0x9F, 0xAF, 0xA8, 0x05, 0xC0, 0x07, 0x38, 0x00,
|
||||
0x9F, 0xAF, 0x44, 0x05, 0xC1, 0x67, 0x03, 0x00,
|
||||
0xC1, 0x57, 0x03, 0x00, 0x02, 0xC0, 0x08, 0xDA,
|
||||
0x73, 0xC1, 0xC0, 0x07, 0x02, 0x00, 0xC1, 0x07,
|
||||
0x12, 0x00, 0xEF, 0x57, 0x00, 0x00, 0x06, 0x06,
|
||||
0x02, 0xC0, 0xC1, 0x07, 0x23, 0x00, 0x9F, 0xAF,
|
||||
0x28, 0x05, 0xC0, 0x07, 0x14, 0x00, 0xC1, 0x0B,
|
||||
0xEA, 0x05, 0x9F, 0xAF, 0x28, 0x05, 0xC0, 0x07,
|
||||
0x3E, 0x00, 0x9F, 0xAF, 0x0A, 0x05, 0xE7, 0x09,
|
||||
0xE4, 0x05, 0xFA, 0x05, 0x27, 0xD8, 0xFA, 0x05,
|
||||
0xE7, 0x07, 0x0E, 0x06, 0xFC, 0x05, 0xE7, 0x07,
|
||||
0x4E, 0x06, 0x00, 0x06, 0xE7, 0x07, 0x40, 0x00,
|
||||
0x02, 0x06, 0x9F, 0xAF, 0x66, 0x05, 0x9F, 0xAF,
|
||||
0xC6, 0x00, 0x97, 0xCF, 0xC1, 0x0B, 0xE2, 0x05,
|
||||
0x41, 0xD0, 0x01, 0xD2, 0xC1, 0x17, 0x23, 0x00,
|
||||
0x9F, 0xAF, 0xDC, 0x04, 0xC0, 0x07, 0x04, 0x00,
|
||||
0xC1, 0x0B, 0xE3, 0x05, 0x9F, 0xAF, 0x28, 0x05,
|
||||
0xC0, 0x07, 0x06, 0x00, 0xC1, 0x09, 0xE6, 0x05,
|
||||
0x9F, 0xAF, 0x28, 0x05, 0xC0, 0x07, 0x07, 0x00,
|
||||
0xC1, 0x09, 0xE6, 0x05, 0xC1, 0xD1, 0x9F, 0xAF,
|
||||
0x28, 0x05, 0xC0, 0x07, 0x0B, 0x00, 0xC1, 0x09,
|
||||
0xE8, 0x05, 0x9F, 0xAF, 0x28, 0x05, 0xC0, 0x07,
|
||||
0x0C, 0x00, 0xC1, 0x09, 0xE8, 0x05, 0xC1, 0xD1,
|
||||
0x9F, 0xAF, 0x28, 0x05, 0xC0, 0x07, 0x0D, 0x00,
|
||||
0xC1, 0x07, 0x09, 0x00, 0x9F, 0xAF, 0x28, 0x05,
|
||||
0xC0, 0x07, 0x03, 0x00, 0xC1, 0x07, 0x32, 0x00,
|
||||
0x9F, 0xAF, 0x28, 0x05, 0xC0, 0x07, 0x0F, 0x00,
|
||||
0xC1, 0x07, 0x00, 0x00, 0x9F, 0xAF, 0x28, 0x05,
|
||||
0x97, 0xCF, 0xE7, 0x67, 0xFF, 0xD9, 0x24, 0xC0,
|
||||
0xC8, 0x07, 0x0A, 0x00, 0x40, 0x00, 0xC0, 0x67,
|
||||
0x00, 0x02, 0x27, 0x80, 0x24, 0xC0, 0xE7, 0x87,
|
||||
0x00, 0x04, 0x24, 0xC0, 0xE7, 0x67, 0xFF, 0xF9,
|
||||
0x24, 0xC0, 0x01, 0xD2, 0x08, 0xDA, 0x72, 0xC1,
|
||||
0xE7, 0x87, 0x00, 0x20, 0x24, 0xC0, 0x97, 0xCF,
|
||||
0x27, 0x00, 0x1E, 0xC0, 0xE7, 0x87, 0xFF, 0x00,
|
||||
0x22, 0xC0, 0xE7, 0x67, 0x7F, 0xFF, 0x24, 0xC0,
|
||||
0xE7, 0x87, 0x80, 0x00, 0x24, 0xC0, 0xE7, 0x87,
|
||||
0x80, 0x00, 0x24, 0xC0, 0x97, 0xCF, 0x9F, 0xAF,
|
||||
0x0A, 0x05, 0x67, 0x00, 0x1E, 0xC0, 0xE7, 0x67,
|
||||
0xBF, 0xFF, 0x24, 0xC0, 0xE7, 0x87, 0x40, 0x00,
|
||||
0x24, 0xC0, 0xE7, 0x87, 0x40, 0x00, 0x24, 0xC0,
|
||||
0x97, 0xCF, 0x9F, 0xAF, 0x0A, 0x05, 0xE7, 0x67,
|
||||
0x00, 0xFF, 0x22, 0xC0, 0xE7, 0x67, 0xFF, 0xFE,
|
||||
0x24, 0xC0, 0xE7, 0x67, 0xFF, 0xFE, 0x24, 0xC0,
|
||||
0xC1, 0x09, 0x20, 0xC0, 0xE7, 0x87, 0x00, 0x01,
|
||||
0x24, 0xC0, 0x97, 0xCF, 0xC0, 0x07, 0x40, 0x00,
|
||||
0xC8, 0x09, 0xFC, 0x05, 0xE7, 0x67, 0x00, 0xFF,
|
||||
0x22, 0xC0, 0xE7, 0x67, 0xFF, 0xFE, 0x24, 0xC0,
|
||||
0xE7, 0x67, 0xBF, 0xFF, 0x24, 0xC0, 0xE7, 0x67,
|
||||
0xBF, 0xFF, 0x24, 0xC0, 0x00, 0xDA, 0xE8, 0x09,
|
||||
0x20, 0xC0, 0xE7, 0x87, 0x40, 0x00, 0x24, 0xC0,
|
||||
0xE7, 0x87, 0x40, 0x00, 0x24, 0xC0, 0x00, 0xDA,
|
||||
0xE8, 0x09, 0x20, 0xC0, 0x6D, 0xC1, 0xE7, 0x87,
|
||||
0x00, 0x01, 0x24, 0xC0, 0x97, 0xCF, 0xE7, 0x07,
|
||||
0x32, 0x00, 0x12, 0xC0, 0xE7, 0x77, 0x00, 0x80,
|
||||
0x12, 0xC0, 0x7C, 0xC0, 0x97, 0xCF, 0xE7, 0x07,
|
||||
0x20, 0x4E, 0x12, 0xC0, 0xE7, 0x77, 0x00, 0x80,
|
||||
0x12, 0xC0, 0x7C, 0xC0, 0x97, 0xCF, 0x09, 0x02,
|
||||
0x19, 0x00, 0x01, 0x01, 0x00, 0x80, 0x96, 0x09,
|
||||
0x04, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
|
||||
0x07, 0x05, 0x81, 0x02, 0x40, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
|
||||
static unsigned char setup5[] = {
|
||||
0xB6, 0xC3, 0x2F, 0x01, 0x03, 0x64, 0x0E, 0x00,
|
||||
0x14, 0x00, 0x1A, 0x00, 0x20, 0x00, 0x26, 0x00,
|
||||
0x4A, 0x00, 0x64, 0x00, 0x6A, 0x00, 0x92, 0x00,
|
||||
0x9A, 0x00, 0xA0, 0x00, 0xB2, 0x00, 0xB8, 0x00,
|
||||
0xBE, 0x00, 0xC2, 0x00, 0xC8, 0x00, 0xCE, 0x00,
|
||||
0xDC, 0x00, 0xDA, 0x00, 0xE2, 0x00, 0xE0, 0x00,
|
||||
0xE8, 0x00, 0xE6, 0x00, 0xEE, 0x00, 0xEC, 0x00,
|
||||
0xF2, 0x00, 0xF8, 0x00, 0x02, 0x01, 0x0A, 0x01,
|
||||
0x0E, 0x01, 0x12, 0x01, 0x1E, 0x01, 0x22, 0x01,
|
||||
0x28, 0x01, 0x2C, 0x01, 0x32, 0x01, 0x36, 0x01,
|
||||
0x44, 0x01, 0x50, 0x01, 0x5E, 0x01, 0x72, 0x01,
|
||||
0x76, 0x01, 0x7A, 0x01, 0x80, 0x01, 0x88, 0x01,
|
||||
0x8C, 0x01, 0x94, 0x01, 0x9C, 0x01, 0xA0, 0x01,
|
||||
0xA4, 0x01, 0xAA, 0x01, 0xB0, 0x01, 0xB4, 0x01,
|
||||
0xBA, 0x01, 0xD0, 0x01, 0xDA, 0x01, 0xF6, 0x01,
|
||||
0xFA, 0x01, 0x02, 0x02, 0x34, 0x02, 0x3C, 0x02,
|
||||
0x44, 0x02, 0x4A, 0x02, 0x50, 0x02, 0x56, 0x02,
|
||||
0x74, 0x02, 0x78, 0x02, 0x7E, 0x02, 0x84, 0x02,
|
||||
0x8A, 0x02, 0x88, 0x02, 0x90, 0x02, 0x8E, 0x02,
|
||||
0x94, 0x02, 0xA2, 0x02, 0xA8, 0x02, 0xAE, 0x02,
|
||||
0xB4, 0x02, 0xBA, 0x02, 0xB8, 0x02, 0xC0, 0x02,
|
||||
0xBE, 0x02, 0xC4, 0x02, 0xD0, 0x02, 0xD4, 0x02,
|
||||
0xE0, 0x02, 0xE6, 0x02, 0xEE, 0x02, 0xF8, 0x02,
|
||||
0xFC, 0x02, 0x06, 0x03, 0x1E, 0x03, 0x24, 0x03,
|
||||
0x28, 0x03, 0x30, 0x03, 0x2E, 0x03, 0x3C, 0x03,
|
||||
0x4A, 0x03, 0x4E, 0x03, 0x54, 0x03, 0x58, 0x03,
|
||||
0x5E, 0x03, 0x66, 0x03, 0x6E, 0x03, 0x7A, 0x03,
|
||||
0x86, 0x03, 0x8E, 0x03, 0x96, 0x03, 0xB2, 0x03,
|
||||
0xB8, 0x03, 0xC6, 0x03, 0xCC, 0x03, 0xD4, 0x03,
|
||||
0xDA, 0x03, 0xE8, 0x03, 0xF4, 0x03, 0xFC, 0x03,
|
||||
0x04, 0x04, 0x20, 0x04, 0x2A, 0x04, 0x32, 0x04,
|
||||
0x36, 0x04, 0x3E, 0x04, 0x44, 0x04, 0x42, 0x04,
|
||||
0x48, 0x04, 0x4E, 0x04, 0x4C, 0x04, 0x54, 0x04,
|
||||
0x52, 0x04, 0x5A, 0x04, 0x5E, 0x04, 0x62, 0x04,
|
||||
0x68, 0x04, 0x74, 0x04, 0x7C, 0x04, 0x80, 0x04,
|
||||
0x88, 0x04, 0x8C, 0x04, 0x94, 0x04, 0x9A, 0x04,
|
||||
0xA2, 0x04, 0xA6, 0x04, 0xAE, 0x04, 0xB4, 0x04,
|
||||
0xC0, 0x04, 0xCC, 0x04, 0xD8, 0x04, 0x2A, 0x05,
|
||||
0x46, 0x05, 0x6C, 0x05, 0x00, 0x00
|
||||
};
|
||||
|
||||
/* rvmalloc / rvfree copied from usbvideo.c
|
||||
*
|
||||
* Not sure why these are not yet non-statics which I can reference through
|
||||
|
@ -464,28 +188,28 @@ static int send_control_msg(struct vicam_camera *cam,
|
|||
static int
|
||||
initialize_camera(struct vicam_camera *cam)
|
||||
{
|
||||
const struct {
|
||||
u8 *data;
|
||||
u32 size;
|
||||
} firmware[] = {
|
||||
{ .data = setup1, .size = sizeof(setup1) },
|
||||
{ .data = setup2, .size = sizeof(setup2) },
|
||||
{ .data = setup3, .size = sizeof(setup3) },
|
||||
{ .data = setup4, .size = sizeof(setup4) },
|
||||
{ .data = setup5, .size = sizeof(setup5) },
|
||||
{ .data = setup3, .size = sizeof(setup3) },
|
||||
{ .data = NULL, .size = 0 }
|
||||
};
|
||||
int err;
|
||||
const struct ihex_binrec *rec;
|
||||
const struct firmware *fw;
|
||||
|
||||
int err, i;
|
||||
err = request_ihex_firmware(&fw, "vicam/firmware.fw", &cam->udev->dev);
|
||||
if (err) {
|
||||
printk(KERN_ERR "Failed to load \"vicam/firmware.fw\": %d\n",
|
||||
err);
|
||||
return err;
|
||||
}
|
||||
|
||||
for (i = 0, err = 0; firmware[i].data && !err; i++) {
|
||||
memcpy(cam->cntrlbuf, firmware[i].data, firmware[i].size);
|
||||
for (rec = (void *)fw->data; rec; rec = ihex_next_binrec(rec)) {
|
||||
memcpy(cam->cntrlbuf, rec->data, be16_to_cpu(rec->len));
|
||||
|
||||
err = send_control_msg(cam, 0xff, 0, 0,
|
||||
cam->cntrlbuf, firmware[i].size);
|
||||
cam->cntrlbuf, be16_to_cpu(rec->len));
|
||||
if (err)
|
||||
break;
|
||||
}
|
||||
|
||||
release_firmware(fw);
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
|
@ -1226,3 +950,4 @@ module_exit(usb_vicam_exit);
|
|||
MODULE_AUTHOR(DRIVER_AUTHOR);
|
||||
MODULE_DESCRIPTION(DRIVER_DESC);
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_FIRMWARE("vicam/firmware.fw");
|
||||
|
|
|
@ -686,8 +686,9 @@ int t3_seeprom_write(struct adapter *adapter, u32 addr, __le32 data);
|
|||
int t3_seeprom_wp(struct adapter *adapter, int enable);
|
||||
int t3_get_tp_version(struct adapter *adapter, u32 *vers);
|
||||
int t3_check_tpsram_version(struct adapter *adapter, int *must_load);
|
||||
int t3_check_tpsram(struct adapter *adapter, u8 *tp_ram, unsigned int size);
|
||||
int t3_set_proto_sram(struct adapter *adap, u8 *data);
|
||||
int t3_check_tpsram(struct adapter *adapter, const u8 *tp_ram,
|
||||
unsigned int size);
|
||||
int t3_set_proto_sram(struct adapter *adap, const u8 *data);
|
||||
int t3_read_flash(struct adapter *adapter, unsigned int addr,
|
||||
unsigned int nwords, u32 *data, int byte_oriented);
|
||||
int t3_load_fw(struct adapter *adapter, const u8 * fw_data, unsigned int size);
|
||||
|
|
|
@ -923,7 +923,8 @@ int t3_check_tpsram_version(struct adapter *adapter, int *must_load)
|
|||
* Checks if an adapter's tp sram is compatible with the driver.
|
||||
* Returns 0 if the versions are compatible, a negative error otherwise.
|
||||
*/
|
||||
int t3_check_tpsram(struct adapter *adapter, u8 *tp_sram, unsigned int size)
|
||||
int t3_check_tpsram(struct adapter *adapter, const u8 *tp_sram,
|
||||
unsigned int size)
|
||||
{
|
||||
u32 csum;
|
||||
unsigned int i;
|
||||
|
@ -2875,10 +2876,10 @@ static void ulp_config(struct adapter *adap, const struct tp_params *p)
|
|||
*
|
||||
* Write the contents of the protocol SRAM.
|
||||
*/
|
||||
int t3_set_proto_sram(struct adapter *adap, u8 *data)
|
||||
int t3_set_proto_sram(struct adapter *adap, const u8 *data)
|
||||
{
|
||||
int i;
|
||||
__be32 *buf = (__be32 *)data;
|
||||
const __be32 *buf = (const __be32 *)data;
|
||||
|
||||
for (i = 0; i < PROTO_SRAM_LINES; i++) {
|
||||
t3_write_reg(adap, A_TP_EMBED_OP_FIELD5, be32_to_cpu(*buf++));
|
||||
|
|
|
@ -1024,7 +1024,7 @@ static int irda_usb_is_receiving(struct irda_usb_cb *self)
|
|||
* Upload firmware code to SigmaTel 421X IRDA-USB dongle
|
||||
*/
|
||||
static int stir421x_fw_upload(struct irda_usb_cb *self,
|
||||
unsigned char *patch,
|
||||
const unsigned char *patch,
|
||||
const unsigned int patch_len)
|
||||
{
|
||||
int ret = -ENOMEM;
|
||||
|
@ -1073,11 +1073,11 @@ static int stir421x_fw_upload(struct irda_usb_cb *self,
|
|||
*/
|
||||
static int stir421x_patch_device(struct irda_usb_cb *self)
|
||||
{
|
||||
unsigned int i;
|
||||
int ret;
|
||||
char stir421x_fw_name[11];
|
||||
const struct firmware *fw;
|
||||
unsigned char *fw_version_ptr; /* pointer to version string */
|
||||
unsigned int i;
|
||||
int ret;
|
||||
char stir421x_fw_name[11];
|
||||
const struct firmware *fw;
|
||||
const unsigned char *fw_version_ptr; /* pointer to version string */
|
||||
unsigned long fw_version = 0;
|
||||
|
||||
/*
|
||||
|
|
|
@ -529,6 +529,7 @@ static int myri10ge_load_hotplug_firmware(struct myri10ge_priv *mgp, u32 * size)
|
|||
unsigned crc, reread_crc;
|
||||
const struct firmware *fw;
|
||||
struct device *dev = &mgp->pdev->dev;
|
||||
unsigned char *fw_readback;
|
||||
struct mcp_gen_header *hdr;
|
||||
size_t hdr_offset;
|
||||
int status;
|
||||
|
@ -571,9 +572,15 @@ static int myri10ge_load_hotplug_firmware(struct myri10ge_priv *mgp, u32 * size)
|
|||
mb();
|
||||
readb(mgp->sram);
|
||||
}
|
||||
fw_readback = vmalloc(fw->size);
|
||||
if (!fw_readback) {
|
||||
status = -ENOMEM;
|
||||
goto abort_with_fw;
|
||||
}
|
||||
/* corruption checking is good for parity recovery and buggy chipset */
|
||||
memcpy_fromio(fw->data, mgp->sram + MYRI10GE_FW_OFFSET, fw->size);
|
||||
reread_crc = crc32(~0, fw->data, fw->size);
|
||||
memcpy_fromio(fw_readback, mgp->sram + MYRI10GE_FW_OFFSET, fw->size);
|
||||
reread_crc = crc32(~0, fw_readback, fw->size);
|
||||
vfree(fw_readback);
|
||||
if (crc != reread_crc) {
|
||||
dev_err(dev, "CRC failed(fw-len=%u), got 0x%x (expect 0x%x)\n",
|
||||
(unsigned)fw->size, reread_crc, crc);
|
||||
|
|
|
@ -48,6 +48,7 @@
|
|||
#include <linux/skbuff.h>
|
||||
#include <linux/trdevice.h>
|
||||
#include <linux/bitops.h>
|
||||
#include <linux/firmware.h>
|
||||
|
||||
#include <asm/system.h>
|
||||
#include <asm/io.h>
|
||||
|
@ -59,7 +60,6 @@
|
|||
#endif
|
||||
|
||||
#include "smctr.h" /* Our Stuff */
|
||||
#include "smctr_firmware.h" /* SMC adapter firmware */
|
||||
|
||||
static char version[] __initdata = KERN_INFO "smctr.c: v1.4 7/12/00 by jschlst@samba.org\n";
|
||||
static const char cardname[] = "smctr";
|
||||
|
@ -103,7 +103,8 @@ static int smctr_clear_trc_reset(int ioaddr);
|
|||
static int smctr_close(struct net_device *dev);
|
||||
|
||||
/* D */
|
||||
static int smctr_decode_firmware(struct net_device *dev);
|
||||
static int smctr_decode_firmware(struct net_device *dev,
|
||||
const struct firmware *fw);
|
||||
static int smctr_disable_16bit(struct net_device *dev);
|
||||
static int smctr_disable_adapter_ctrl_store(struct net_device *dev);
|
||||
static int smctr_disable_bic_int(struct net_device *dev);
|
||||
|
@ -748,7 +749,8 @@ static int smctr_close(struct net_device *dev)
|
|||
return (0);
|
||||
}
|
||||
|
||||
static int smctr_decode_firmware(struct net_device *dev)
|
||||
static int smctr_decode_firmware(struct net_device *dev,
|
||||
const struct firmware *fw)
|
||||
{
|
||||
struct net_local *tp = netdev_priv(dev);
|
||||
short bit = 0x80, shift = 12;
|
||||
|
@ -762,10 +764,10 @@ static int smctr_decode_firmware(struct net_device *dev)
|
|||
if(smctr_debug > 10)
|
||||
printk(KERN_DEBUG "%s: smctr_decode_firmware\n", dev->name);
|
||||
|
||||
weight = *(long *)(tp->ptr_ucode + WEIGHT_OFFSET);
|
||||
tsize = *(__u8 *)(tp->ptr_ucode + TREE_SIZE_OFFSET);
|
||||
tree = (DECODE_TREE_NODE *)(tp->ptr_ucode + TREE_OFFSET);
|
||||
ucode = (__u8 *)(tp->ptr_ucode + TREE_OFFSET
|
||||
weight = *(long *)(fw->data + WEIGHT_OFFSET);
|
||||
tsize = *(__u8 *)(fw->data + TREE_SIZE_OFFSET);
|
||||
tree = (DECODE_TREE_NODE *)(fw->data + TREE_OFFSET);
|
||||
ucode = (__u8 *)(fw->data + TREE_OFFSET
|
||||
+ (tsize * sizeof(DECODE_TREE_NODE)));
|
||||
mem = (__u16 *)(tp->ram_access);
|
||||
|
||||
|
@ -2963,34 +2965,44 @@ static int smctr_link_tx_fcbs_to_bdbs(struct net_device *dev)
|
|||
static int smctr_load_firmware(struct net_device *dev)
|
||||
{
|
||||
struct net_local *tp = netdev_priv(dev);
|
||||
const struct firmware *fw;
|
||||
__u16 i, checksum = 0;
|
||||
int err = 0;
|
||||
|
||||
if(smctr_debug > 10)
|
||||
printk(KERN_DEBUG "%s: smctr_load_firmware\n", dev->name);
|
||||
|
||||
tp->ptr_ucode = smctr_code;
|
||||
if (request_firmware(&fw, "tr_smctr.bin", &dev->dev)) {
|
||||
printk(KERN_ERR "%s: firmware not found\n", dev->name);
|
||||
return (UCODE_NOT_PRESENT);
|
||||
}
|
||||
|
||||
tp->num_of_tx_buffs = 4;
|
||||
tp->mode_bits |= UMAC;
|
||||
tp->receive_mask = 0;
|
||||
tp->max_packet_size = 4177;
|
||||
|
||||
/* Can only upload the firmware once per adapter reset. */
|
||||
if(tp->microcode_version != 0)
|
||||
return (UCODE_PRESENT);
|
||||
if (tp->microcode_version != 0) {
|
||||
err = (UCODE_PRESENT);
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* Verify the firmware exists and is there in the right amount. */
|
||||
if (!tp->ptr_ucode
|
||||
|| (*(tp->ptr_ucode + UCODE_VERSION_OFFSET) < UCODE_VERSION))
|
||||
if (!fw->data
|
||||
|| (*(fw->data + UCODE_VERSION_OFFSET) < UCODE_VERSION))
|
||||
{
|
||||
return (UCODE_NOT_PRESENT);
|
||||
err = (UCODE_NOT_PRESENT);
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* UCODE_SIZE is not included in Checksum. */
|
||||
for(i = 0; i < *((__u16 *)(tp->ptr_ucode + UCODE_SIZE_OFFSET)); i += 2)
|
||||
checksum += *((__u16 *)(tp->ptr_ucode + 2 + i));
|
||||
if(checksum)
|
||||
return (UCODE_NOT_PRESENT);
|
||||
for(i = 0; i < *((__u16 *)(fw->data + UCODE_SIZE_OFFSET)); i += 2)
|
||||
checksum += *((__u16 *)(fw->data + 2 + i));
|
||||
if (checksum) {
|
||||
err = (UCODE_NOT_PRESENT);
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* At this point we have a valid firmware image, lets kick it on up. */
|
||||
smctr_enable_adapter_ram(dev);
|
||||
|
@ -2998,7 +3010,7 @@ static int smctr_load_firmware(struct net_device *dev)
|
|||
smctr_set_page(dev, (__u8 *)tp->ram_access);
|
||||
|
||||
if((smctr_checksum_firmware(dev))
|
||||
|| (*(tp->ptr_ucode + UCODE_VERSION_OFFSET)
|
||||
|| (*(fw->data + UCODE_VERSION_OFFSET)
|
||||
> tp->microcode_version))
|
||||
{
|
||||
smctr_enable_adapter_ctrl_store(dev);
|
||||
|
@ -3007,9 +3019,9 @@ static int smctr_load_firmware(struct net_device *dev)
|
|||
for(i = 0; i < CS_RAM_SIZE; i += 2)
|
||||
*((__u16 *)(tp->ram_access + i)) = 0;
|
||||
|
||||
smctr_decode_firmware(dev);
|
||||
smctr_decode_firmware(dev, fw);
|
||||
|
||||
tp->microcode_version = *(tp->ptr_ucode + UCODE_VERSION_OFFSET); *((__u16 *)(tp->ram_access + CS_RAM_VERSION_OFFSET))
|
||||
tp->microcode_version = *(fw->data + UCODE_VERSION_OFFSET); *((__u16 *)(tp->ram_access + CS_RAM_VERSION_OFFSET))
|
||||
= (tp->microcode_version << 8);
|
||||
*((__u16 *)(tp->ram_access + CS_RAM_CHECKSUM_OFFSET))
|
||||
= ~(tp->microcode_version << 8) + 1;
|
||||
|
@ -3023,7 +3035,8 @@ static int smctr_load_firmware(struct net_device *dev)
|
|||
err = UCODE_PRESENT;
|
||||
|
||||
smctr_disable_16bit(dev);
|
||||
|
||||
out:
|
||||
release_firmware(fw);
|
||||
return (err);
|
||||
}
|
||||
|
||||
|
@ -5651,6 +5664,7 @@ static int io[SMCTR_MAX_ADAPTERS];
|
|||
static int irq[SMCTR_MAX_ADAPTERS];
|
||||
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_FIRMWARE("tr_smctr.bin");
|
||||
|
||||
module_param_array(io, int, NULL, 0);
|
||||
module_param_array(irq, int, NULL, 0);
|
||||
|
|
|
@ -1042,8 +1042,6 @@ typedef struct net_local {
|
|||
__u16 functional_address[2];
|
||||
__u16 bitwise_group_address[2];
|
||||
|
||||
const __u8 *ptr_ucode;
|
||||
|
||||
__u8 cleanup;
|
||||
|
||||
struct sk_buff_head SendSkbQueue;
|
||||
|
|
|
@ -1,978 +0,0 @@
|
|||
/*
|
||||
* The firmware this driver downloads into the tokenring card is a
|
||||
* separate program and is not GPL'd source code, even though the Linux
|
||||
* side driver and the routine that loads this data into the card are.
|
||||
*
|
||||
* This firmware is licensed to you strictly for use in conjunction
|
||||
* with the use of SMC TokenRing adapters. There is no waranty
|
||||
* expressed or implied about its fitness for any purpose.
|
||||
*/
|
||||
|
||||
/* smctr_firmware.h: SMC TokenRing driver firmware dump for Linux.
|
||||
*
|
||||
* Notes:
|
||||
* - This is an 8K binary image. (MCT.BIN v6.3C1 03/01/95)
|
||||
*
|
||||
* Authors:
|
||||
* - Jay Schulist <jschlst@samba.org>
|
||||
*/
|
||||
|
||||
|
||||
#if defined(CONFIG_SMCTR) || defined(CONFIG_SMCTR_MODULE)
|
||||
|
||||
static const unsigned char smctr_code[] = {
|
||||
0x0BC, 0x01D, 0x012, 0x03B, 0x063, 0x0B4, 0x0E9, 0x000,
|
||||
0x000, 0x01F, 0x000, 0x001, 0x001, 0x000, 0x002, 0x005,
|
||||
0x001, 0x000, 0x006, 0x003, 0x001, 0x000, 0x004, 0x009,
|
||||
0x001, 0x000, 0x00A, 0x007, 0x001, 0x000, 0x008, 0x00B,
|
||||
0x001, 0x000, 0x00C, 0x000, 0x000, 0x000, 0x000, 0x00F,
|
||||
0x001, 0x000, 0x010, 0x00D, 0x001, 0x000, 0x00E, 0x013,
|
||||
0x001, 0x000, 0x014, 0x011, 0x001, 0x000, 0x012, 0x000,
|
||||
0x000, 0x005, 0x000, 0x015, 0x001, 0x000, 0x016, 0x019,
|
||||
0x001, 0x000, 0x01A, 0x017, 0x001, 0x000, 0x018, 0x000,
|
||||
0x000, 0x00E, 0x000, 0x000, 0x000, 0x001, 0x000, 0x000,
|
||||
0x000, 0x004, 0x000, 0x01B, 0x001, 0x000, 0x01C, 0x000,
|
||||
0x000, 0x007, 0x000, 0x000, 0x000, 0x00F, 0x000, 0x000,
|
||||
0x000, 0x00B, 0x000, 0x01D, 0x001, 0x000, 0x01E, 0x000,
|
||||
0x000, 0x008, 0x000, 0x000, 0x000, 0x002, 0x000, 0x000,
|
||||
0x000, 0x00C, 0x000, 0x000, 0x000, 0x006, 0x000, 0x000,
|
||||
0x000, 0x00D, 0x000, 0x000, 0x000, 0x003, 0x000, 0x000,
|
||||
0x000, 0x00A, 0x000, 0x000, 0x000, 0x009, 0x000, 0x004,
|
||||
0x078, 0x0C6, 0x0BC, 0x001, 0x094, 0x004, 0x093, 0x080,
|
||||
0x0C8, 0x040, 0x062, 0x0E9, 0x0DA, 0x01C, 0x02C, 0x015,
|
||||
0x055, 0x055, 0x055, 0x055, 0x055, 0x055, 0x055, 0x058,
|
||||
0x00B, 0x0E9, 0x0E5, 0x0D5, 0x095, 0x0C1, 0x09D, 0x077,
|
||||
0x0CE, 0x0BB, 0x0A0, 0x06E, 0x01C, 0x005, 0x0F6, 0x077,
|
||||
0x0C6, 0x002, 0x0FA, 0x096, 0x070, 0x0E8, 0x01D, 0x0C0,
|
||||
0x017, 0x00E, 0x002, 0x0FA, 0x058, 0x07D, 0x0C0, 0x05F,
|
||||
0x072, 0x0CE, 0x0EC, 0x0A4, 0x0C3, 0x084, 0x090, 0x07A,
|
||||
0x030, 0x0CD, 0x08D, 0x079, 0x019, 0x0E7, 0x06C, 0x024,
|
||||
0x027, 0x09C, 0x008, 0x039, 0x007, 0x038, 0x0A8, 0x04A,
|
||||
0x04C, 0x0EA, 0x04D, 0x098, 0x09B, 0x024, 0x04C, 0x0C0,
|
||||
0x026, 0x0D3, 0x0E7, 0x054, 0x05A, 0x04D, 0x0F2, 0x04C,
|
||||
0x00C, 0x013, 0x023, 0x049, 0x090, 0x032, 0x06E, 0x0A4,
|
||||
0x0DF, 0x093, 0x071, 0x013, 0x077, 0x026, 0x0E1, 0x026,
|
||||
0x0F8, 0x026, 0x00C, 0x04C, 0x012, 0x026, 0x008, 0x009,
|
||||
0x082, 0x082, 0x060, 0x0A9, 0x030, 0x079, 0x036, 0x0B0,
|
||||
0x0B2, 0x0A8, 0x0A7, 0x072, 0x064, 0x08F, 0x09B, 0x033,
|
||||
0x033, 0x0F9, 0x0B8, 0x039, 0x0D5, 0x011, 0x073, 0x0AA,
|
||||
0x075, 0x026, 0x05D, 0x026, 0x051, 0x093, 0x02A, 0x049,
|
||||
0x094, 0x0C9, 0x095, 0x089, 0x0BC, 0x04D, 0x0C8, 0x09B,
|
||||
0x080, 0x09B, 0x0A0, 0x099, 0x006, 0x04C, 0x086, 0x026,
|
||||
0x058, 0x09B, 0x0A4, 0x09B, 0x099, 0x037, 0x062, 0x06C,
|
||||
0x067, 0x09B, 0x033, 0x030, 0x0BF, 0x036, 0x066, 0x061,
|
||||
0x0BF, 0x036, 0x0EC, 0x0C5, 0x0BD, 0x066, 0x082, 0x05A,
|
||||
0x050, 0x031, 0x0D5, 0x09D, 0x098, 0x018, 0x029, 0x03C,
|
||||
0x098, 0x086, 0x04C, 0x017, 0x026, 0x03E, 0x02C, 0x0B8,
|
||||
0x069, 0x03B, 0x049, 0x02E, 0x0B4, 0x008, 0x043, 0x01A,
|
||||
0x0A4, 0x0F9, 0x0B3, 0x051, 0x0F1, 0x010, 0x0F3, 0x043,
|
||||
0x0CD, 0x008, 0x06F, 0x063, 0x079, 0x0B3, 0x033, 0x00E,
|
||||
0x013, 0x098, 0x049, 0x098, 0x004, 0x0DA, 0x07C, 0x0E0,
|
||||
0x052, 0x079, 0x031, 0x00C, 0x098, 0x02E, 0x04D, 0x0AC,
|
||||
0x02C, 0x084, 0x014, 0x0EE, 0x04C, 0x0FE, 0x067, 0x05E,
|
||||
0x0E4, 0x09A, 0x075, 0x029, 0x0D7, 0x0A9, 0x035, 0x03A,
|
||||
0x094, 0x05B, 0x0D5, 0x09B, 0x058, 0x0B4, 0x0AF, 0x075,
|
||||
0x066, 0x0AF, 0x014, 0x0A9, 0x0EF, 0x040, 0x095, 0x025,
|
||||
0x008, 0x0B9, 0x0AD, 0x042, 0x0FC, 0x0D8, 0x0D9, 0x08C,
|
||||
0x033, 0x00E, 0x013, 0x098, 0x066, 0x01E, 0x045, 0x0AC,
|
||||
0x0B0, 0x00C, 0x042, 0x0D3, 0x0CC, 0x0A6, 0x012, 0x062,
|
||||
0x0DE, 0x0B4, 0x0B1, 0x080, 0x049, 0x07D, 0x0A2, 0x0DE,
|
||||
0x0B4, 0x018, 0x0C0, 0x024, 0x084, 0x0E6, 0x054, 0x0F5,
|
||||
0x083, 0x046, 0x001, 0x068, 0x01A, 0x063, 0x00C, 0x0C6,
|
||||
0x012, 0x064, 0x0FA, 0x04C, 0x035, 0x01C, 0x02C, 0x00E,
|
||||
0x0AA, 0x0AA, 0x0AA, 0x0AA, 0x0AA, 0x0AA, 0x0AA, 0x0AA,
|
||||
0x0AA, 0x0AA, 0x0AA, 0x0AA, 0x0AA, 0x0AD, 0x0D7, 0x002,
|
||||
0x070, 0x0E0, 0x04C, 0x0F3, 0x0A1, 0x0C1, 0x0D5, 0x0C0,
|
||||
0x03C, 0x0B9, 0x069, 0x039, 0x060, 0x04E, 0x058, 0x077,
|
||||
0x002, 0x067, 0x093, 0x03C, 0x099, 0x0E4, 0x0CF, 0x038,
|
||||
0x01C, 0x097, 0x02E, 0x040, 0x01B, 0x090, 0x031, 0x046,
|
||||
0x0A3, 0x05E, 0x00E, 0x088, 0x034, 0x06A, 0x035, 0x0E0,
|
||||
0x0E8, 0x0AA, 0x035, 0x01A, 0x0A9, 0x0F5, 0x015, 0x046,
|
||||
0x0A3, 0x0EA, 0x07D, 0x04A, 0x0A3, 0x051, 0x0AA, 0x09F,
|
||||
0x070, 0x054, 0x0A6, 0x057, 0x02E, 0x0B4, 0x0CD, 0x0C8,
|
||||
0x0A3, 0x00C, 0x0C1, 0x0DA, 0x0C6, 0x0E1, 0x0CB, 0x07A,
|
||||
0x0D4, 0x01C, 0x068, 0x0FF, 0x0CF, 0x055, 0x0A8, 0x0C0,
|
||||
0x02D, 0x085, 0x011, 0x017, 0x044, 0x02A, 0x030, 0x00B,
|
||||
0x04A, 0x088, 0x0C2, 0x04D, 0x0B5, 0x020, 0x0D5, 0x026,
|
||||
0x001, 0x069, 0x051, 0x069, 0x052, 0x019, 0x052, 0x060,
|
||||
0x016, 0x095, 0x016, 0x082, 0x096, 0x054, 0x098, 0x005,
|
||||
0x0A5, 0x045, 0x0F3, 0x0DD, 0x06A, 0x0F9, 0x028, 0x018,
|
||||
0x0EF, 0x000, 0x030, 0x030, 0x051, 0x04E, 0x044, 0x05D,
|
||||
0x012, 0x0D1, 0x043, 0x0E6, 0x012, 0x06F, 0x09E, 0x0BA,
|
||||
0x0CC, 0x0DF, 0x025, 0x003, 0x01D, 0x0E0, 0x006, 0x006,
|
||||
0x00A, 0x030, 0x0CC, 0x0A9, 0x0EB, 0x02D, 0x000, 0x086,
|
||||
0x0A6, 0x012, 0x065, 0x04F, 0x056, 0x0D6, 0x065, 0x049,
|
||||
0x05F, 0x03D, 0x0E8, 0x037, 0x0C9, 0x040, 0x0C7, 0x078,
|
||||
0x001, 0x081, 0x082, 0x08C, 0x033, 0x018, 0x049, 0x080,
|
||||
0x0AE, 0x040, 0x0C5, 0x018, 0x005, 0x09C, 0x06D, 0x018,
|
||||
0x066, 0x00E, 0x0F3, 0x0A0, 0x0C6, 0x012, 0x062, 0x0DE,
|
||||
0x0F5, 0x004, 0x0B4, 0x0AC, 0x06B, 0x0C6, 0x019, 0x091,
|
||||
0x073, 0x005, 0x048, 0x02E, 0x072, 0x094, 0x080, 0x073,
|
||||
0x0A1, 0x0C8, 0x047, 0x036, 0x066, 0x064, 0x02F, 0x036,
|
||||
0x066, 0x064, 0x007, 0x099, 0x002, 0x091, 0x08E, 0x072,
|
||||
0x0D1, 0x00F, 0x09D, 0x006, 0x031, 0x073, 0x0A0, 0x0C3,
|
||||
0x051, 0x06A, 0x01A, 0x020, 0x0BF, 0x03A, 0x00C, 0x02C,
|
||||
0x073, 0x087, 0x043, 0x05E, 0x060, 0x002, 0x023, 0x0FC,
|
||||
0x0E0, 0x0D6, 0x035, 0x0EF, 0x09E, 0x0F5, 0x0EF, 0x092,
|
||||
0x081, 0x08E, 0x0F0, 0x003, 0x003, 0x005, 0x018, 0x066,
|
||||
0x045, 0x0CC, 0x00B, 0x048, 0x02E, 0x070, 0x00A, 0x040,
|
||||
0x039, 0x0D0, 0x0E4, 0x023, 0x09B, 0x033, 0x032, 0x017,
|
||||
0x09B, 0x033, 0x032, 0x003, 0x0CC, 0x085, 0x048, 0x0C7,
|
||||
0x038, 0x014, 0x0A5, 0x0CE, 0x029, 0x07E, 0x0D2, 0x080,
|
||||
0x0A1, 0x0A8, 0x0B4, 0x048, 0x088, 0x02F, 0x0CE, 0x083,
|
||||
0x00B, 0x01C, 0x0E1, 0x0D0, 0x0D7, 0x098, 0x004, 0x088,
|
||||
0x087, 0x0CE, 0x096, 0x031, 0x073, 0x0A5, 0x08F, 0x0F3,
|
||||
0x083, 0x058, 0x0D7, 0x0BE, 0x07B, 0x082, 0x0AF, 0x092,
|
||||
0x081, 0x08E, 0x0F0, 0x003, 0x003, 0x005, 0x018, 0x066,
|
||||
0x045, 0x0CC, 0x015, 0x020, 0x0B9, 0x0C8, 0x029, 0x000,
|
||||
0x0E7, 0x043, 0x090, 0x08E, 0x06C, 0x0CC, 0x0C8, 0x05E,
|
||||
0x06C, 0x0CC, 0x0C8, 0x00F, 0x032, 0x005, 0x023, 0x01C,
|
||||
0x0E4, 0x050, 0x0D4, 0x05A, 0x017, 0x088, 0x02F, 0x0CE,
|
||||
0x083, 0x010, 0x0F9, 0x0D0, 0x023, 0x017, 0x03A, 0x004,
|
||||
0x035, 0x0E6, 0x000, 0x022, 0x016, 0x039, 0x0C3, 0x0A3,
|
||||
0x0FC, 0x0E0, 0x0D6, 0x035, 0x0E0, 0x0BF, 0x0F4, 0x018,
|
||||
0x0F2, 0x02D, 0x04D, 0x043, 0x051, 0x06E, 0x05A, 0x022,
|
||||
0x01F, 0x030, 0x0D4, 0x017, 0x0E7, 0x041, 0x091, 0x073,
|
||||
0x005, 0x048, 0x02E, 0x077, 0x069, 0x000, 0x0E7, 0x043,
|
||||
0x090, 0x08E, 0x06C, 0x0CC, 0x0C8, 0x05E, 0x06C, 0x0CC,
|
||||
0x0C8, 0x00F, 0x032, 0x005, 0x023, 0x01C, 0x0EF, 0x04C,
|
||||
0x04E, 0x006, 0x004, 0x0C9, 0x09E, 0x00B, 0x0FF, 0x041,
|
||||
0x08F, 0x022, 0x0D4, 0x0D4, 0x035, 0x016, 0x0E5, 0x0A2,
|
||||
0x021, 0x0F3, 0x05A, 0x082, 0x0FC, 0x0E8, 0x032, 0x02E,
|
||||
0x060, 0x0A9, 0x005, 0x0CE, 0x013, 0x048, 0x007, 0x03A,
|
||||
0x01C, 0x084, 0x073, 0x066, 0x066, 0x042, 0x0F3, 0x066,
|
||||
0x066, 0x040, 0x079, 0x090, 0x029, 0x018, 0x0E7, 0x00A,
|
||||
0x098, 0x09C, 0x00A, 0x09E, 0x0B5, 0x012, 0x05C, 0x07C,
|
||||
0x0C3, 0x031, 0x08B, 0x098, 0x02A, 0x07C, 0x0D3, 0x0ED,
|
||||
0x038, 0x0E9, 0x0D3, 0x04E, 0x074, 0x0ED, 0x049, 0x09E,
|
||||
0x00B, 0x0FF, 0x041, 0x08F, 0x022, 0x0D4, 0x0D4, 0x035,
|
||||
0x016, 0x0E5, 0x0A2, 0x02D, 0x0EB, 0x045, 0x033, 0x08F,
|
||||
0x0FC, 0x0F7, 0x0A0, 0x05F, 0x025, 0x003, 0x01D, 0x0E4,
|
||||
0x00E, 0x006, 0x00A, 0x030, 0x0CC, 0x00C, 0x0F3, 0x0EB,
|
||||
0x040, 0x0DE, 0x061, 0x0A8, 0x070, 0x092, 0x00A, 0x000,
|
||||
0x0E1, 0x024, 0x01E, 0x000, 0x0E1, 0x024, 0x01E, 0x000,
|
||||
0x0E1, 0x024, 0x01E, 0x000, 0x0E1, 0x024, 0x01E, 0x000,
|
||||
0x0E1, 0x024, 0x01E, 0x001, 0x00F, 0x098, 0x02A, 0x00B,
|
||||
0x0F3, 0x0A0, 0x0C8, 0x0B9, 0x0A2, 0x0A4, 0x017, 0x03A,
|
||||
0x069, 0x000, 0x0E7, 0x043, 0x090, 0x08E, 0x075, 0x048,
|
||||
0x05E, 0x070, 0x069, 0x001, 0x0E6, 0x000, 0x052, 0x031,
|
||||
0x0CC, 0x018, 0x014, 0x0A5, 0x0CC, 0x009, 0x082, 0x094,
|
||||
0x073, 0x00C, 0x0A0, 0x091, 0x0F5, 0x025, 0x0CC, 0x007,
|
||||
0x006, 0x084, 0x084, 0x09F, 0x030, 0x0A2, 0x0A4, 0x07D,
|
||||
0x050, 0x075, 0x0A6, 0x065, 0x001, 0x04A, 0x08E, 0x0B4,
|
||||
0x0CC, 0x0C4, 0x035, 0x054, 0x075, 0x066, 0x0A4, 0x097,
|
||||
0x07A, 0x089, 0x050, 0x053, 0x013, 0x080, 0x019, 0x0E3,
|
||||
0x049, 0x05C, 0x06D, 0x0CE, 0x0A9, 0x040, 0x035, 0x006,
|
||||
0x078, 0x0D2, 0x057, 0x006, 0x0F1, 0x0B3, 0x02A, 0x08D,
|
||||
0x097, 0x023, 0x062, 0x092, 0x05D, 0x069, 0x099, 0x01C,
|
||||
0x06A, 0x036, 0x0E6, 0x0CD, 0x046, 0x012, 0x06F, 0x09E,
|
||||
0x0E1, 0x0AB, 0x0E4, 0x0A3, 0x00C, 0x0C0, 0x0DE, 0x0AC,
|
||||
0x0D4, 0x00D, 0x028, 0x01B, 0x0D0, 0x012, 0x0A5, 0x000,
|
||||
0x0F8, 0x04B, 0x0AD, 0x033, 0x028, 0x006, 0x0A0, 0x0DE,
|
||||
0x014, 0x097, 0x03A, 0x089, 0x05D, 0x0C0, 0x00D, 0x0E3,
|
||||
0x006, 0x090, 0x092, 0x05D, 0x069, 0x098, 0x066, 0x0B9,
|
||||
0x019, 0x095, 0x0E4, 0x0A8, 0x0CF, 0x09D, 0x033, 0x018,
|
||||
0x049, 0x0BE, 0x07B, 0x086, 0x0AF, 0x092, 0x08C, 0x033,
|
||||
0x024, 0x014, 0x00C, 0x0F4, 0x083, 0x024, 0x021, 0x0C2,
|
||||
0x070, 0x0BF, 0x0F4, 0x018, 0x0F2, 0x02D, 0x04D, 0x043,
|
||||
0x051, 0x06E, 0x05A, 0x022, 0x01F, 0x032, 0x0A8, 0x02F,
|
||||
0x0CE, 0x083, 0x022, 0x0E6, 0x005, 0x0A4, 0x017, 0x03A,
|
||||
0x069, 0x000, 0x0E7, 0x043, 0x090, 0x08E, 0x075, 0x048,
|
||||
0x05E, 0x070, 0x069, 0x001, 0x0E6, 0x042, 0x0A4, 0x063,
|
||||
0x098, 0x002, 0x029, 0x04B, 0x09A, 0x029, 0x078, 0x0E9,
|
||||
0x040, 0x053, 0x013, 0x081, 0x081, 0x032, 0x067, 0x082,
|
||||
0x0FF, 0x0D0, 0x063, 0x0C8, 0x0B5, 0x035, 0x00D, 0x045,
|
||||
0x0AE, 0x050, 0x008, 0x07C, 0x0E0, 0x0D0, 0x05F, 0x09D,
|
||||
0x006, 0x045, 0x0CC, 0x001, 0x0A4, 0x017, 0x03A, 0x069,
|
||||
0x000, 0x0E7, 0x043, 0x090, 0x08E, 0x075, 0x048, 0x05E,
|
||||
0x070, 0x069, 0x001, 0x0E6, 0x059, 0x0A4, 0x063, 0x098,
|
||||
0x01C, 0x052, 0x097, 0x03B, 0x030, 0x052, 0x08E, 0x07D,
|
||||
0x02A, 0x009, 0x01F, 0x051, 0x0EB, 0x0A4, 0x0A4, 0x00A,
|
||||
0x0B9, 0x094, 0x087, 0x0AE, 0x0C5, 0x031, 0x038, 0x002,
|
||||
0x0FF, 0x0D0, 0x063, 0x0C8, 0x0B5, 0x035, 0x00D, 0x045,
|
||||
0x0AE, 0x050, 0x008, 0x07C, 0x0EA, 0x020, 0x0BF, 0x03A,
|
||||
0x00C, 0x08B, 0x09A, 0x016, 0x090, 0x05C, 0x0E9, 0x0A4,
|
||||
0x003, 0x09D, 0x00E, 0x042, 0x039, 0x0D5, 0x021, 0x079,
|
||||
0x095, 0x048, 0x00F, 0x030, 0x00A, 0x091, 0x08E, 0x060,
|
||||
0x0EB, 0x029, 0x073, 0x000, 0x009, 0x054, 0x004, 0x0CA,
|
||||
0x082, 0x065, 0x052, 0x065, 0x0E4, 0x0CA, 0x022, 0x065,
|
||||
0x072, 0x065, 0x009, 0x032, 0x0E0, 0x099, 0x072, 0x04C,
|
||||
0x0C4, 0x0E0, 0x00B, 0x0FF, 0x041, 0x08F, 0x022, 0x0D4,
|
||||
0x0D4, 0x035, 0x016, 0x0B9, 0x040, 0x021, 0x0F3, 0x08A,
|
||||
0x082, 0x0FC, 0x0E8, 0x032, 0x02E, 0x060, 0x0A9, 0x005,
|
||||
0x0CE, 0x09A, 0x040, 0x039, 0x0D0, 0x0E4, 0x023, 0x09D,
|
||||
0x052, 0x017, 0x099, 0x054, 0x061, 0x099, 0x001, 0x0E6,
|
||||
0x040, 0x0A4, 0x063, 0x098, 0x004, 0x0B1, 0x084, 0x098,
|
||||
0x018, 0x0EF, 0x02D, 0x003, 0x005, 0x031, 0x038, 0x002,
|
||||
0x0FF, 0x0D0, 0x063, 0x0C8, 0x0B5, 0x035, 0x00D, 0x045,
|
||||
0x0B9, 0x068, 0x088, 0x07C, 0x0E0, 0x050, 0x05F, 0x09D,
|
||||
0x006, 0x045, 0x0CC, 0x081, 0x048, 0x02E, 0x071, 0x034,
|
||||
0x08F, 0x048, 0x001, 0x048, 0x015, 0x021, 0x005, 0x021,
|
||||
0x0E9, 0x00A, 0x052, 0x003, 0x0CE, 0x05A, 0x046, 0x039,
|
||||
0x0CF, 0x047, 0x08E, 0x060, 0x0AB, 0x01A, 0x0F3, 0x053,
|
||||
0x043, 0x0EB, 0x035, 0x024, 0x0B8, 0x01B, 0x030, 0x007,
|
||||
0x009, 0x08A, 0x074, 0x02F, 0x07E, 0x041, 0x074, 0x01E,
|
||||
0x01D, 0x00D, 0x087, 0x046, 0x049, 0x0D5, 0x095, 0x0D1,
|
||||
0x0D5, 0x0D5, 0x0BB, 0x0A9, 0x04E, 0x082, 0x09D, 0x005,
|
||||
0x03A, 0x00A, 0x074, 0x014, 0x0E8, 0x029, 0x0D0, 0x042,
|
||||
0x074, 0x05B, 0x0CE, 0x050, 0x0C4, 0x007, 0x045, 0x0BC,
|
||||
0x0E2, 0x00C, 0x040, 0x074, 0x05B, 0x0CE, 0x083, 0x004,
|
||||
0x0F9, 0x095, 0x04D, 0x013, 0x063, 0x05E, 0x06F, 0x031,
|
||||
0x03B, 0x0A0, 0x08B, 0x0A2, 0x0C5, 0x039, 0x08D, 0x078,
|
||||
0x03A, 0x022, 0x0A0, 0x000, 0x06B, 0x0C1, 0x0D1, 0x054,
|
||||
0x060, 0x016, 0x0D9, 0x091, 0x0A2, 0x0E7, 0x043, 0x08C,
|
||||
0x024, 0x0DC, 0x01C, 0x0E0, 0x051, 0x017, 0x039, 0x06B,
|
||||
0x03B, 0x0CC, 0x04B, 0x042, 0x02E, 0x06B, 0x050, 0x0BF,
|
||||
0x036, 0x036, 0x065, 0x04F, 0x07A, 0x018, 0x055, 0x025,
|
||||
0x078, 0x098, 0x023, 0x0E7, 0x050, 0x03E, 0x0F3, 0x081,
|
||||
0x04C, 0x002, 0x06D, 0x03E, 0x071, 0x053, 0x0AF, 0x078,
|
||||
0x0A9, 0x0D4, 0x0A6, 0x029, 0x0B1, 0x0BC, 0x0D9, 0x099,
|
||||
0x0B2, 0x08E, 0x062, 0x08F, 0x022, 0x02E, 0x075, 0x016,
|
||||
0x0B0, 0x0B2, 0x0AB, 0x023, 0x028, 0x016, 0x054, 0x052,
|
||||
0x031, 0x0BC, 0x0D9, 0x099, 0x0B2, 0x08E, 0x066, 0x019,
|
||||
0x002, 0x02E, 0x075, 0x016, 0x050, 0x02C, 0x0A9, 0x0C8,
|
||||
0x0C6, 0x0F5, 0x020, 0x0D3, 0x0E4, 0x07F, 0x04F, 0x09C,
|
||||
0x00A, 0x0D6, 0x016, 0x07F, 0x090, 0x0EE, 0x04C, 0x0EB,
|
||||
0x0CF, 0x0E2, 0x088, 0x0BA, 0x02F, 0x042, 0x086, 0x0AE,
|
||||
0x0BD, 0x0E5, 0x0A7, 0x052, 0x09F, 0x093, 0x063, 0x079,
|
||||
0x0EB, 0x033, 0x008, 0x0F9, 0x094, 0x052, 0x047, 0x0CD,
|
||||
0x099, 0x025, 0x06F, 0x03A, 0x00C, 0x013, 0x0E6, 0x055,
|
||||
0x034, 0x04C, 0x05A, 0x04D, 0x0B5, 0x023, 0x095, 0x0A5,
|
||||
0x048, 0x011, 0x05A, 0x00A, 0x043, 0x095, 0x0AC, 0x02C,
|
||||
0x0BA, 0x024, 0x005, 0x049, 0x0B1, 0x0BC, 0x0CA, 0x0A7,
|
||||
0x072, 0x06C, 0x06B, 0x0C5, 0x0BD, 0x0E8, 0x031, 0x069,
|
||||
0x052, 0x05D, 0x006, 0x012, 0x065, 0x03E, 0x0B1, 0x050,
|
||||
0x04C, 0x07D, 0x04F, 0x0AC, 0x00A, 0x030, 0x00B, 0x036,
|
||||
0x064, 0x011, 0x073, 0x08A, 0x083, 0x08E, 0x075, 0x012,
|
||||
0x09F, 0x07B, 0x0D2, 0x099, 0x058, 0x0EE, 0x082, 0x02E,
|
||||
0x077, 0x0A0, 0x0E3, 0x09D, 0x05D, 0x04F, 0x0BC, 0x02A,
|
||||
0x053, 0x029, 0x053, 0x0DE, 0x093, 0x024, 0x0BA, 0x0B3,
|
||||
0x036, 0x0AA, 0x04A, 0x0C6, 0x079, 0x0D4, 0x0B9, 0x0DE,
|
||||
0x062, 0x05A, 0x011, 0x073, 0x050, 0x050, 0x0BF, 0x037,
|
||||
0x036, 0x06F, 0x013, 0x023, 0x0BA, 0x00C, 0x024, 0x0CE,
|
||||
0x0BD, 0x0E2, 0x0A7, 0x052, 0x0B2, 0x08E, 0x06B, 0x060,
|
||||
0x062, 0x02E, 0x075, 0x013, 0x030, 0x0AC, 0x0A0, 0x059,
|
||||
0x0CA, 0x064, 0x063, 0x079, 0x0B3, 0x033, 0x065, 0x01C,
|
||||
0x0CC, 0x032, 0x004, 0x05C, 0x0EA, 0x02C, 0x0A0, 0x059,
|
||||
0x0DF, 0x023, 0x01B, 0x0D4, 0x083, 0x052, 0x047, 0x0DD,
|
||||
0x079, 0x096, 0x0D4, 0x09E, 0x0B3, 0x052, 0x04B, 0x0A2,
|
||||
0x05A, 0x01A, 0x08D, 0x05D, 0x07B, 0x082, 0x0A7, 0x052,
|
||||
0x0B2, 0x08E, 0x066, 0x019, 0x002, 0x02E, 0x075, 0x016,
|
||||
0x050, 0x02C, 0x08C, 0x032, 0x01D, 0x07B, 0x08E, 0x0A7,
|
||||
0x052, 0x0B1, 0x0BC, 0x0D9, 0x099, 0x098, 0x004, 0x0DA,
|
||||
0x07C, 0x0E2, 0x0AC, 0x0FE, 0x066, 0x019, 0x002, 0x02E,
|
||||
0x065, 0x050, 0x0BF, 0x033, 0x066, 0x064, 0x0FE, 0x074,
|
||||
0x018, 0x086, 0x04C, 0x017, 0x026, 0x0D6, 0x016, 0x052,
|
||||
0x039, 0x018, 0x0DE, 0x07A, 0x0CC, 0x0C2, 0x03E, 0x065,
|
||||
0x014, 0x091, 0x0F3, 0x066, 0x049, 0x008, 0x06E, 0x083,
|
||||
0x009, 0x033, 0x0AF, 0x031, 0x0ED, 0x00D, 0x09D, 0x006,
|
||||
0x012, 0x062, 0x02A, 0x031, 0x08D, 0x06D, 0x0E7, 0x041,
|
||||
0x082, 0x07C, 0x0CA, 0x0A6, 0x089, 0x087, 0x009, 0x02E,
|
||||
0x029, 0x0B1, 0x0AF, 0x010, 0x039, 0x0D6, 0x064, 0x097,
|
||||
0x030, 0x01D, 0x042, 0x075, 0x093, 0x044, 0x002, 0x08C,
|
||||
0x024, 0x0D2, 0x07A, 0x0B3, 0x050, 0x0F6, 0x089, 0x005,
|
||||
0x043, 0x05E, 0x061, 0x098, 0x0C0, 0x02C, 0x092, 0x025,
|
||||
0x03C, 0x08B, 0x024, 0x089, 0x049, 0x005, 0x049, 0x0E7,
|
||||
0x00C, 0x0B9, 0x084, 0x098, 0x0B7, 0x0AD, 0x033, 0x044,
|
||||
0x0AE, 0x05A, 0x051, 0x086, 0x060, 0x09F, 0x038, 0x0A9,
|
||||
0x0A2, 0x06C, 0x06B, 0x0C4, 0x08E, 0x0F4, 0x05E, 0x049,
|
||||
0x046, 0x012, 0x062, 0x0DE, 0x0B4, 0x0CD, 0x021, 0x05C,
|
||||
0x0B4, 0x0A3, 0x00C, 0x0C1, 0x03E, 0x072, 0x029, 0x0A2,
|
||||
0x06C, 0x06B, 0x0C6, 0x012, 0x062, 0x047, 0x0F0, 0x0E8,
|
||||
0x0C3, 0x032, 0x004, 0x035, 0x040, 0x092, 0x0A4, 0x082,
|
||||
0x088, 0x010, 0x092, 0x07C, 0x0CB, 0x0D4, 0x02F, 0x0A4,
|
||||
0x002, 0x011, 0x084, 0x098, 0x0B7, 0x0AD, 0x033, 0x044,
|
||||
0x0AE, 0x05A, 0x051, 0x086, 0x060, 0x09F, 0x038, 0x0A9,
|
||||
0x0A2, 0x06C, 0x06B, 0x0C4, 0x08E, 0x0F4, 0x05E, 0x049,
|
||||
0x044, 0x008, 0x049, 0x03E, 0x065, 0x0EA, 0x017, 0x0D2,
|
||||
0x001, 0x008, 0x0C2, 0x04C, 0x05B, 0x0D6, 0x099, 0x0A4,
|
||||
0x02B, 0x096, 0x094, 0x061, 0x098, 0x027, 0x0CE, 0x045,
|
||||
0x034, 0x04D, 0x08D, 0x078, 0x081, 0x009, 0x027, 0x0CC,
|
||||
0x0BD, 0x012, 0x028, 0x06C, 0x058, 0x0AF, 0x0B6, 0x0F3,
|
||||
0x0A0, 0x0C1, 0x03E, 0x065, 0x053, 0x044, 0x0D8, 0x0D7,
|
||||
0x092, 0x08E, 0x07D, 0x04B, 0x0C2, 0x0FA, 0x061, 0x026,
|
||||
0x006, 0x03A, 0x0B3, 0x06B, 0x003, 0x005, 0x049, 0x0E7,
|
||||
0x00C, 0x0B9, 0x06F, 0x05A, 0x066, 0x095, 0x05C, 0x0B4,
|
||||
0x0A3, 0x00C, 0x0C1, 0x03E, 0x070, 0x029, 0x0A2, 0x06E,
|
||||
0x0A4, 0x0DF, 0x093, 0x071, 0x013, 0x077, 0x026, 0x0E1,
|
||||
0x026, 0x0F8, 0x026, 0x0C6, 0x0BC, 0x094, 0x073, 0x0F9,
|
||||
0x02F, 0x00B, 0x0E9, 0x084, 0x098, 0x018, 0x0EA, 0x0CC,
|
||||
0x0EC, 0x00C, 0x015, 0x027, 0x09C, 0x032, 0x0FF, 0x03D,
|
||||
0x056, 0x0AF, 0x092, 0x08B, 0x07A, 0x0D3, 0x035, 0x0D5,
|
||||
0x0CB, 0x04A, 0x030, 0x0CC, 0x013, 0x0E7, 0x002, 0x09A,
|
||||
0x026, 0x0C6, 0x0BC, 0x094, 0x073, 0x041, 0x097, 0x091,
|
||||
0x0F4, 0x083, 0x0CE, 0x004, 0x020, 0x062, 0x08B, 0x005,
|
||||
0x016, 0x049, 0x08C, 0x024, 0x0C0, 0x0C7, 0x056, 0x090,
|
||||
0x0C0, 0x0C1, 0x052, 0x079, 0x0C3, 0x02E, 0x05B, 0x0D5,
|
||||
0x0A6, 0x072, 0x0D2, 0x094, 0x0FA, 0x0AD, 0x058, 0x0C8,
|
||||
0x0FA, 0x09F, 0x054, 0x0B3, 0x032, 0x04B, 0x0B9, 0x054,
|
||||
0x0A6, 0x051, 0x086, 0x06B, 0x079, 0x0D0, 0x060, 0x09F,
|
||||
0x032, 0x005, 0x034, 0x04D, 0x08D, 0x07A, 0x04D, 0x01E,
|
||||
0x07A, 0x0B3, 0x051, 0x000, 0x0A9, 0x03D, 0x059, 0x0A8,
|
||||
0x07B, 0x044, 0x082, 0x0A1, 0x0AF, 0x04A, 0x08D, 0x052,
|
||||
0x0A9, 0x052, 0x041, 0x049, 0x04F, 0x03A, 0x02E, 0x040,
|
||||
0x0A4, 0x099, 0x050, 0x0BE, 0x090, 0x008, 0x052, 0x079,
|
||||
0x0C3, 0x02E, 0x061, 0x026, 0x02D, 0x0EB, 0x04C, 0x0D0,
|
||||
0x015, 0x0CB, 0x04A, 0x030, 0x0CC, 0x013, 0x0E7, 0x002,
|
||||
0x09A, 0x026, 0x0C6, 0x0BC, 0x048, 0x0FE, 0x01D, 0x025,
|
||||
0x046, 0x0A9, 0x054, 0x0A9, 0x020, 0x0A4, 0x0A7, 0x09D,
|
||||
0x017, 0x020, 0x052, 0x04C, 0x0A8, 0x05F, 0x048, 0x004,
|
||||
0x023, 0x009, 0x031, 0x06F, 0x05A, 0x066, 0x080, 0x0AE,
|
||||
0x05A, 0x051, 0x086, 0x060, 0x09F, 0x038, 0x014, 0x0D1,
|
||||
0x036, 0x035, 0x0E4, 0x0A7, 0x09D, 0x017, 0x020, 0x052,
|
||||
0x04C, 0x0A2, 0x045, 0x00D, 0x08B, 0x015, 0x0F4, 0x091,
|
||||
0x0DE, 0x08B, 0x0C9, 0x028, 0x0C2, 0x04C, 0x05B, 0x0D6,
|
||||
0x099, 0x0A9, 0x05C, 0x0B4, 0x0A3, 0x00C, 0x0D6, 0x0F3,
|
||||
0x0A0, 0x0C1, 0x03E, 0x064, 0x00A, 0x068, 0x09B, 0x01A,
|
||||
0x0F1, 0x06D, 0x04C, 0x0AA, 0x092, 0x0E0, 0x036, 0x094,
|
||||
0x070, 0x09B, 0x029, 0x078, 0x013, 0x0AE, 0x0B3, 0x0AA,
|
||||
0x085, 0x0D4, 0x043, 0x075, 0x009, 0x03A, 0x0C9, 0x0EB,
|
||||
0x035, 0x024, 0x0B8, 0x01B, 0x032, 0x08E, 0x013, 0x048,
|
||||
0x07E, 0x04E, 0x0FD, 0x040, 0x0FD, 0x040, 0x0FD, 0x040,
|
||||
0x0FD, 0x040, 0x0FD, 0x040, 0x0FC, 0x013, 0x0F4, 0x021,
|
||||
0x0F9, 0x017, 0x045, 0x08A, 0x030, 0x00B, 0x033, 0x05F,
|
||||
0x083, 0x0A2, 0x02A, 0x030, 0x00B, 0x033, 0x05F, 0x083,
|
||||
0x0A2, 0x0A8, 0x0C0, 0x02D, 0x0B3, 0x020, 0x070, 0x092,
|
||||
0x013, 0x09A, 0x0DE, 0x074, 0x018, 0x027, 0x0CC, 0x0AA,
|
||||
0x068, 0x09B, 0x01A, 0x0F7, 0x007, 0x045, 0x051, 0x080,
|
||||
0x05B, 0x066, 0x047, 0x007, 0x038, 0x0A8, 0x023, 0x0E7,
|
||||
0x051, 0x011, 0x03F, 0x0E0, 0x0E8, 0x085, 0x046, 0x001,
|
||||
0x06D, 0x099, 0x006, 0x012, 0x065, 0x04F, 0x07A, 0x020,
|
||||
0x024, 0x0BA, 0x0B3, 0x032, 0x015, 0x025, 0x07B, 0x0AD,
|
||||
0x033, 0x078, 0x0AE, 0x00E, 0x073, 0x0D0, 0x047, 0x0CE,
|
||||
0x0A7, 0x030, 0x0CC, 0x044, 0x0FF, 0x083, 0x0A2, 0x0A8,
|
||||
0x0C0, 0x02C, 0x0D9, 0x091, 0x0C1, 0x0D1, 0x015, 0x018,
|
||||
0x005, 0x09B, 0x032, 0x008, 0x0BA, 0x02C, 0x051, 0x080,
|
||||
0x059, 0x0B3, 0x020, 0x070, 0x092, 0x0E2, 0x098, 0x089,
|
||||
0x0FD, 0x0BC, 0x0EE, 0x018, 0x090, 0x0FC, 0x08B, 0x0A2,
|
||||
0x0C5, 0x02B, 0x00D, 0x078, 0x03A, 0x022, 0x0A5, 0x061,
|
||||
0x0AF, 0x007, 0x045, 0x051, 0x080, 0x05B, 0x066, 0x044,
|
||||
0x09E, 0x0B3, 0x052, 0x04B, 0x083, 0x0AD, 0x0C7, 0x009,
|
||||
0x0BE, 0x01F, 0x09F, 0x074, 0x065, 0x05D, 0x00A, 0x017,
|
||||
0x07C, 0x0AB, 0x0A0, 0x0C2, 0x04C, 0x038, 0x049, 0x012,
|
||||
0x02E, 0x038, 0x049, 0x007, 0x0A3, 0x00C, 0x0C1, 0x03E,
|
||||
0x065, 0x053, 0x044, 0x0D8, 0x0D7, 0x0AD, 0x0E7, 0x000,
|
||||
0x032, 0x04B, 0x09B, 0x033, 0x034, 0x04A, 0x003, 0x000,
|
||||
0x09D, 0x025, 0x0CE, 0x083, 0x024, 0x0B8, 0x019, 0x099,
|
||||
0x08C, 0x002, 0x012, 0x04B, 0x0A1, 0x099, 0x0D8, 0x0C0,
|
||||
0x027, 0x049, 0x073, 0x0CF, 0x0F9, 0x03C, 0x0F4, 0x07C,
|
||||
0x0E7, 0x098, 0x004, 0x0E9, 0x02E, 0x07F, 0x039, 0x0E3,
|
||||
0x04F, 0x046, 0x053, 0x0C0, 0x060, 0x013, 0x0A4, 0x0B9,
|
||||
0x0E5, 0x03C, 0x003, 0x0DE, 0x08F, 0x09C, 0x0F3, 0x000,
|
||||
0x09C, 0x06F, 0x0CF, 0x03E, 0x085, 0x0F9, 0x0A3, 0x036,
|
||||
0x002, 0x01E, 0x060, 0x038, 0x092, 0x03E, 0x063, 0x01A,
|
||||
0x010, 0x09F, 0x0CF, 0x018, 0x010, 0x092, 0x0BC, 0x0D0,
|
||||
0x0A4, 0x00C, 0x0DC, 0x0C0, 0x00F, 0x09C, 0x097, 0x034,
|
||||
0x062, 0x0B6, 0x0E7, 0x0F3, 0x0F3, 0x0A5, 0x0CF, 0x018,
|
||||
0x042, 0x034, 0x01C, 0x0C2, 0x0CA, 0x0FA, 0x08E, 0x068,
|
||||
0x052, 0x006, 0x0AF, 0x03C, 0x0A3, 0x00D, 0x0BF, 0x09E,
|
||||
0x050, 0x0E1, 0x0D1, 0x073, 0x0CA, 0x0E0, 0x03A, 0x0FC,
|
||||
0x0C1, 0x009, 0x01A, 0x01E, 0x06A, 0x05C, 0x05B, 0x08E,
|
||||
0x063, 0x04E, 0x077, 0x073, 0x0CC, 0x061, 0x067, 0x0DD,
|
||||
0x0E6, 0x06C, 0x048, 0x0D1, 0x0F3, 0x01B, 0x024, 0x069,
|
||||
0x051, 0x008, 0x0D4, 0x042, 0x01B, 0x0F4, 0x067, 0x0D1,
|
||||
0x080, 0x04E, 0x02F, 0x0D0, 0x08C, 0x0D8, 0x030, 0x009,
|
||||
0x0C2, 0x01E, 0x080, 0x01C, 0x046, 0x001, 0x03A, 0x047,
|
||||
0x0D0, 0x031, 0x0A1, 0x006, 0x001, 0x03A, 0x07F, 0x046,
|
||||
0x030, 0x021, 0x018, 0x004, 0x0E9, 0x05E, 0x084, 0x029,
|
||||
0x000, 0x0C0, 0x027, 0x0CD, 0x0D0, 0x000, 0x07C, 0x098,
|
||||
0x004, 0x0F9, 0x02E, 0x084, 0x062, 0x08C, 0x002, 0x07D,
|
||||
0x0BA, 0x03E, 0x07E, 0x04C, 0x002, 0x07D, 0x02E, 0x08C,
|
||||
0x061, 0x008, 0x030, 0x009, 0x0F4, 0x01D, 0x001, 0x065,
|
||||
0x073, 0x000, 0x09F, 0x051, 0x0D0, 0x085, 0x020, 0x018,
|
||||
0x004, 0x0FA, 0x0BD, 0x019, 0x046, 0x018, 0x0C0, 0x027,
|
||||
0x0DF, 0x0D1, 0x094, 0x038, 0x04C, 0x002, 0x07D, 0x017,
|
||||
0x046, 0x057, 0x001, 0x030, 0x009, 0x0F5, 0x0FA, 0x001,
|
||||
0x009, 0x006, 0x001, 0x03E, 0x087, 0x0A1, 0x04B, 0x088,
|
||||
0x0C0, 0x027, 0x0DC, 0x074, 0x00D, 0x039, 0x0D3, 0x000,
|
||||
0x09F, 0x073, 0x0D0, 0x030, 0x0B3, 0x098, 0x004, 0x0FB,
|
||||
0x0BD, 0x006, 0x0C4, 0x083, 0x000, 0x09F, 0x047, 0x0D0,
|
||||
0x036, 0x048, 0x0CC, 0x002, 0x071, 0x0BF, 0x03F, 0x09A,
|
||||
0x017, 0x0E6, 0x03F, 0x008, 0x021, 0x0E6, 0x092, 0x0A4,
|
||||
0x08F, 0x09A, 0x010, 0x031, 0x0A7, 0x0F3, 0x010, 0x0B1,
|
||||
0x084, 0x0AF, 0x03A, 0x0AC, 0x0DC, 0x0F7, 0x073, 0x0F2,
|
||||
0x05C, 0x0C6, 0x02A, 0x0DB, 0x09E, 0x07E, 0x07E, 0x097,
|
||||
0x031, 0x008, 0x063, 0x0D0, 0x073, 0x07B, 0x043, 0x0A8,
|
||||
0x0E6, 0x03D, 0x034, 0x0EA, 0x0F3, 0x0E3, 0x015, 0x0BF,
|
||||
0x09F, 0x018, 0x05F, 0x045, 0x0CF, 0x0E8, 0x09F, 0x05F,
|
||||
0x09A, 0x05B, 0x003, 0x0D0, 0x0F3, 0x0D3, 0x0CE, 0x037,
|
||||
0x01C, 0x0D0, 0x00F, 0x0BB, 0x09E, 0x068, 0x078, 0x03B,
|
||||
0x0BC, 0x0CA, 0x031, 0x0E8, 0x0F9, 0x0A2, 0x002, 0x012,
|
||||
0x0A2, 0x073, 0x051, 0x008, 0x06F, 0x0D1, 0x0F3, 0x046,
|
||||
0x001, 0x038, 0x0BF, 0x040, 0x0FC, 0x023, 0x000, 0x09C,
|
||||
0x021, 0x0E8, 0x049, 0x051, 0x080, 0x04E, 0x091, 0x0F4,
|
||||
0x021, 0x003, 0x019, 0x080, 0x04E, 0x09F, 0x0D0, 0x021,
|
||||
0x063, 0x006, 0x001, 0x03A, 0x056, 0x08C, 0x002, 0x074,
|
||||
0x0FE, 0x075, 0x049, 0x05E, 0x063, 0x0D3, 0x04A, 0x054,
|
||||
0x042, 0x035, 0x013, 0x0A7, 0x0D1, 0x080, 0x04E, 0x095,
|
||||
0x0E8, 0x01E, 0x09A, 0x04C, 0x002, 0x07C, 0x0DD, 0x01B,
|
||||
0x0B9, 0x0E6, 0x001, 0x03E, 0x04B, 0x0A0, 0x062, 0x0A3,
|
||||
0x000, 0x09F, 0x06E, 0x08C, 0x0FC, 0x0F3, 0x000, 0x09F,
|
||||
0x04B, 0x0A0, 0x042, 0x018, 0x0CC, 0x002, 0x07D, 0x007,
|
||||
0x043, 0x0DA, 0x013, 0x000, 0x09F, 0x051, 0x0D0, 0x03D,
|
||||
0x034, 0x098, 0x004, 0x0FA, 0x0BD, 0x01C, 0x062, 0x08C,
|
||||
0x002, 0x07D, 0x0FD, 0x01C, 0x061, 0x073, 0x000, 0x09F,
|
||||
0x045, 0x0D1, 0x0F4, 0x04E, 0x060, 0x013, 0x0EB, 0x0F4,
|
||||
0x025, 0x0B0, 0x033, 0x000, 0x09F, 0x043, 0x0D1, 0x0A7,
|
||||
0x09C, 0x018, 0x004, 0x0FB, 0x08E, 0x084, 0x003, 0x0E9,
|
||||
0x080, 0x04F, 0x0B9, 0x0E8, 0x043, 0x0C1, 0x030, 0x009,
|
||||
0x0F7, 0x07A, 0x00A, 0x031, 0x098, 0x004, 0x0FA, 0x03E,
|
||||
0x084, 0x040, 0x041, 0x080, 0x04E, 0x082, 0x0E7, 0x041,
|
||||
0x087, 0x009, 0x023, 0x004, 0x023, 0x000, 0x09D, 0x005,
|
||||
0x0CE, 0x096, 0x01C, 0x024, 0x08C, 0x010, 0x08C, 0x002,
|
||||
0x074, 0x017, 0x03A, 0x004, 0x038, 0x049, 0x018, 0x021,
|
||||
0x018, 0x004, 0x0E8, 0x02E, 0x074, 0x050, 0x0E1, 0x024,
|
||||
0x060, 0x084, 0x060, 0x013, 0x0A0, 0x0B9, 0x0D4, 0x011,
|
||||
0x0C2, 0x048, 0x0C1, 0x008, 0x0C0, 0x027, 0x041, 0x073,
|
||||
0x0A8, 0x023, 0x084, 0x091, 0x082, 0x011, 0x080, 0x04E,
|
||||
0x082, 0x0E7, 0x052, 0x08E, 0x012, 0x046, 0x008, 0x046,
|
||||
0x001, 0x03A, 0x00B, 0x09D, 0x040, 0x01C, 0x024, 0x08C,
|
||||
0x010, 0x08C, 0x002, 0x074, 0x017, 0x03A, 0x009, 0x00E,
|
||||
0x012, 0x046, 0x008, 0x046, 0x001, 0x03A, 0x00B, 0x098,
|
||||
0x06A, 0x01C, 0x024, 0x0B0, 0x0E1, 0x018, 0x004, 0x0E8,
|
||||
0x02E, 0x06B, 0x050, 0x0E1, 0x025, 0x087, 0x008, 0x0C0,
|
||||
0x027, 0x041, 0x073, 0x005, 0x043, 0x084, 0x096, 0x01C,
|
||||
0x023, 0x000, 0x09D, 0x005, 0x0CC, 0x0AA, 0x01C, 0x024,
|
||||
0x0B0, 0x0E1, 0x018, 0x004, 0x0E8, 0x02E, 0x070, 0x068,
|
||||
0x070, 0x092, 0x0C3, 0x084, 0x060, 0x013, 0x0E5, 0x044,
|
||||
0x0F9, 0x040, 0x09D, 0x005, 0x0CE, 0x05A, 0x01C, 0x024,
|
||||
0x0B0, 0x0E1, 0x018, 0x004, 0x0F9, 0x0D1, 0x03E, 0x070,
|
||||
0x027, 0x0CF, 0x013, 0x0E5, 0x044, 0x02C, 0x0A0, 0x042,
|
||||
0x0CB, 0x089, 0x0F2, 0x021, 0x03A, 0x00B, 0x09C, 0x00A,
|
||||
0x01C, 0x024, 0x0B0, 0x0E1, 0x018, 0x004, 0x0F9, 0x0D1,
|
||||
0x00B, 0x038, 0x010, 0x0B3, 0x0C4, 0x021, 0x039, 0x036,
|
||||
0x05C, 0x042, 0x0C8, 0x084, 0x02B, 0x079, 0x0D0, 0x061,
|
||||
0x0C2, 0x074, 0x015, 0x024, 0x0BA, 0x0D3, 0x031, 0x0E5,
|
||||
0x059, 0x008, 0x029, 0x008, 0x0E0, 0x066, 0x063, 0x042,
|
||||
0x095, 0x012, 0x081, 0x000, 0x029, 0x00B, 0x0C1, 0x051,
|
||||
0x024, 0x0B8, 0x019, 0x099, 0x090, 0x022, 0x090, 0x0B4,
|
||||
0x018, 0x0A0, 0x091, 0x041, 0x001, 0x041, 0x041, 0x041,
|
||||
0x052, 0x083, 0x0CA, 0x040, 0x028, 0x068, 0x029, 0x008,
|
||||
0x0BA, 0x016, 0x010, 0x09C, 0x099, 0x00B, 0x056, 0x094,
|
||||
0x090, 0x052, 0x015, 0x074, 0x0C0, 0x027, 0x01A, 0x02A,
|
||||
0x0D2, 0x090, 0x025, 0x0D3, 0x000, 0x09D, 0x028, 0x0AB,
|
||||
0x04A, 0x042, 0x017, 0x04C, 0x002, 0x070, 0x0D4, 0x084,
|
||||
0x02E, 0x098, 0x004, 0x0E1, 0x02A, 0x042, 0x017, 0x04C,
|
||||
0x002, 0x070, 0x082, 0x090, 0x04B, 0x0A6, 0x001, 0x038,
|
||||
0x051, 0x048, 0x042, 0x0E9, 0x080, 0x04E, 0x015, 0x0A4,
|
||||
0x021, 0x074, 0x0C0, 0x027, 0x00F, 0x0A4, 0x012, 0x0E9,
|
||||
0x080, 0x04E, 0x082, 0x0AC, 0x080, 0x0AC, 0x0A0, 0x0AC,
|
||||
0x0A9, 0x059, 0x0E5, 0x064, 0x045, 0x065, 0x0CA, 0x0C8,
|
||||
0x04A, 0x0CE, 0x00A, 0x0CE, 0x04A, 0x0CE, 0x095, 0x091,
|
||||
0x095, 0x094, 0x095, 0x093, 0x029, 0x025, 0x0C0, 0x0CC,
|
||||
0x0CC, 0x088, 0x0A4, 0x097, 0x056, 0x036, 0x064, 0x072,
|
||||
0x090, 0x054, 0x08A, 0x09C, 0x045, 0x008, 0x0B9, 0x0B7,
|
||||
0x066, 0x012, 0x093, 0x009, 0x0C9, 0x0B2, 0x074, 0x08E,
|
||||
0x0BA, 0x060, 0x013, 0x0E5, 0x034, 0x08E, 0x0BA, 0x060,
|
||||
0x013, 0x0E4, 0x074, 0x08E, 0x0BA, 0x060, 0x013, 0x0E5,
|
||||
0x069, 0x01D, 0x074, 0x0C0, 0x027, 0x0CA, 0x029, 0x01D,
|
||||
0x074, 0x0C0, 0x027, 0x0CE, 0x0D2, 0x025, 0x0D3, 0x000,
|
||||
0x09F, 0x038, 0x0A4, 0x04B, 0x0A6, 0x001, 0x03E, 0x05E,
|
||||
0x091, 0x02E, 0x098, 0x004, 0x0F9, 0x015, 0x022, 0x05D,
|
||||
0x030, 0x009, 0x0F3, 0x0E9, 0x012, 0x0E9, 0x080, 0x04F,
|
||||
0x090, 0x052, 0x025, 0x0D3, 0x000, 0x09D, 0x0C5, 0x048,
|
||||
0x025, 0x0D3, 0x000, 0x09C, 0x045, 0x0CE, 0x0CD, 0x009,
|
||||
0x0C9, 0x0B2, 0x01A, 0x044, 0x0BA, 0x060, 0x013, 0x0E7,
|
||||
0x034, 0x089, 0x074, 0x0C0, 0x027, 0x01C, 0x027, 0x0B7,
|
||||
0x09C, 0x080, 0x0C2, 0x0D7, 0x076, 0x059, 0x09B, 0x093,
|
||||
0x00C, 0x064, 0x0C3, 0x01D, 0x01B, 0x0F4, 0x045, 0x04B,
|
||||
0x0C7, 0x0C6, 0x03A, 0x037, 0x0E8, 0x081, 0x04B, 0x0C7,
|
||||
0x0C6, 0x03A, 0x037, 0x0E8, 0x091, 0x04B, 0x0C7, 0x0C6,
|
||||
0x032, 0x061, 0x08E, 0x0B3, 0x0BC, 0x0C3, 0x04A, 0x022,
|
||||
0x0E6, 0x0B5, 0x024, 0x097, 0x071, 0x0C9, 0x087, 0x0B4,
|
||||
0x031, 0x0AE, 0x073, 0x0A2, 0x0CF, 0x039, 0x0D2, 0x05D,
|
||||
0x004, 0x044, 0x042, 0x0C0, 0x0D6, 0x0DE, 0x071, 0x006,
|
||||
0x016, 0x0BB, 0x0DB, 0x0CE, 0x083, 0x00C, 0x064, 0x0C3,
|
||||
0x01D, 0x031, 0x013, 0x004, 0x0F9, 0x095, 0x04D, 0x013,
|
||||
0x032, 0x093, 0x063, 0x05E, 0x066, 0x014, 0x0CC, 0x029,
|
||||
0x02A, 0x053, 0x030, 0x0A6, 0x061, 0x04C, 0x0C2, 0x099,
|
||||
0x085, 0x03A, 0x072, 0x0CC, 0x0C2, 0x099, 0x085, 0x006,
|
||||
0x01B, 0x0B3, 0x00A, 0x066, 0x014, 0x014, 0x024, 0x099,
|
||||
0x085, 0x033, 0x00A, 0x008, 0x0B1, 0x086, 0x061, 0x04C,
|
||||
0x0C2, 0x084, 0x021, 0x068, 0x073, 0x03B, 0x030, 0x0A6,
|
||||
0x061, 0x041, 0x04E, 0x0A5, 0x098, 0x053, 0x030, 0x0AC,
|
||||
0x059, 0x076, 0x061, 0x04C, 0x0C2, 0x0B0, 0x08D, 0x0D6,
|
||||
0x061, 0x04C, 0x0C2, 0x0B0, 0x02C, 0x0F6, 0x061, 0x04C,
|
||||
0x0C2, 0x0B1, 0x08C, 0x0A5, 0x098, 0x053, 0x030, 0x0AC,
|
||||
0x00F, 0x024, 0x0CC, 0x029, 0x098, 0x056, 0x00F, 0x028,
|
||||
0x066, 0x015, 0x092, 0x01A, 0x019, 0x085, 0x033, 0x00A,
|
||||
0x0CA, 0x085, 0x00C, 0x0C2, 0x099, 0x085, 0x065, 0x0C3,
|
||||
0x0D9, 0x085, 0x033, 0x00A, 0x0CE, 0x070, 0x086, 0x061,
|
||||
0x04C, 0x0C2, 0x0B3, 0x097, 0x071, 0x00C, 0x099, 0x03B,
|
||||
0x0CC, 0x083, 0x058, 0x00B, 0x0EA, 0x077, 0x09D, 0x006,
|
||||
0x04A, 0x0BE, 0x004, 0x074, 0x060, 0x0E0, 0x0D1, 0x04E,
|
||||
0x038, 0x04C, 0x03E, 0x0EE, 0x03E, 0x0EE, 0x03E, 0x0EE,
|
||||
0x03E, 0x0EE, 0x030, 0x0BB, 0x0CA, 0x0E1, 0x01F, 0x077,
|
||||
0x01F, 0x077, 0x01F, 0x077, 0x01F, 0x077, 0x027, 0x070,
|
||||
0x08F, 0x0BB, 0x080, 0x00E, 0x011, 0x0F7, 0x071, 0x0F7,
|
||||
0x07C, 0x06F, 0x03C, 0x0B3, 0x036, 0x002, 0x0FB, 0x08D,
|
||||
0x0E6, 0x055, 0x070, 0x07F, 0x02D, 0x024, 0x069, 0x055,
|
||||
0x04F, 0x058, 0x0A9, 0x023, 0x01F, 0x054, 0x0F7, 0x08A,
|
||||
0x095, 0x025, 0x02B, 0x075, 0x00C, 0x0CC, 0x0AC, 0x056,
|
||||
0x051, 0x0CC, 0x051, 0x0E4, 0x045, 0x0CE, 0x0A2, 0x012,
|
||||
0x039, 0x0C0, 0x0A0, 0x0AF, 0x056, 0x06A, 0x049, 0x07F,
|
||||
0x002, 0x08C, 0x009, 0x0F8, 0x00B, 0x0EB, 0x0AF, 0x056,
|
||||
0x076, 0x067, 0x052, 0x0B2, 0x08E, 0x069, 0x0A7, 0x011,
|
||||
0x073, 0x0A8, 0x0B1, 0x0BC, 0x0CA, 0x0A0, 0x0A9, 0x036,
|
||||
0x050, 0x02C, 0x098, 0x0E7, 0x00A, 0x0F5, 0x066, 0x0A4,
|
||||
0x097, 0x0E2, 0x05A, 0x030, 0x027, 0x0BA, 0x0F7, 0x083,
|
||||
0x04E, 0x0A5, 0x033, 0x00A, 0x066, 0x015, 0x08D, 0x0E6,
|
||||
0x055, 0x039, 0x0D2, 0x0A7, 0x0AC, 0x054, 0x060, 0x016,
|
||||
0x070, 0x01B, 0x072, 0x08E, 0x062, 0x08F, 0x022, 0x02E,
|
||||
0x075, 0x016, 0x002, 0x0FB, 0x08D, 0x0E6, 0x00A, 0x095,
|
||||
0x03D, 0x062, 0x0A3, 0x000, 0x0B7, 0x001, 0x0B5, 0x053,
|
||||
0x0DE, 0x02A, 0x054, 0x094, 0x0AD, 0x0D4, 0x033, 0x032,
|
||||
0x0B1, 0x059, 0x047, 0x031, 0x047, 0x091, 0x017, 0x03A,
|
||||
0x088, 0x048, 0x0E7, 0x002, 0x0B0, 0x017, 0x0DC, 0x067,
|
||||
0x09D, 0x04B, 0x08D, 0x0E7, 0x052, 0x0AA, 0x07B, 0x0D4,
|
||||
0x0AA, 0x092, 0x0BD, 0x0D6, 0x099, 0x0BC, 0x056, 0x002,
|
||||
0x0FB, 0x08C, 0x0F3, 0x066, 0x066, 0x0C6, 0x0F3, 0x066,
|
||||
0x066, 0x062, 0x099, 0x02A, 0x0F8, 0x018, 0x068, 0x070,
|
||||
0x0B0, 0x08A, 0x00D, 0x055, 0x055, 0x055, 0x055, 0x052,
|
||||
0x032, 0x0E1, 0x040, 0x05C, 0x038, 0x00B, 0x0EA, 0x09B,
|
||||
0x087, 0x001, 0x07D, 0x0C0, 0x05F, 0x070, 0x017, 0x0DC,
|
||||
0x005, 0x0F5, 0x0DC, 0x09B, 0x001, 0x07D, 0x061, 0x04D,
|
||||
0x080, 0x0BE, 0x0A7, 0x079, 0x082, 0x0A2, 0x01F, 0x050,
|
||||
0x015, 0x02A, 0x08F, 0x08B, 0x01C, 0x0E5, 0x0A5, 0x013,
|
||||
0x084, 0x058, 0x0E7, 0x002, 0x091, 0x054, 0x005, 0x002,
|
||||
0x04B, 0x0BD, 0x022, 0x01A, 0x094, 0x07F, 0x09C, 0x01A,
|
||||
0x0C0, 0x05F, 0x042, 0x01A, 0x021, 0x0D1, 0x080, 0x059,
|
||||
0x0C0, 0x06D, 0x01C, 0x02C, 0x00A, 0x083, 0x055, 0x055,
|
||||
0x055, 0x055, 0x055, 0x055, 0x055, 0x055, 0x055, 0x055,
|
||||
0x055, 0x054, 0x01C, 0x0B8, 0x05C, 0x06E, 0x017, 0x09C,
|
||||
0x02F, 0x038, 0x05E, 0x070, 0x0E7, 0x0B8, 0x05E, 0x070,
|
||||
0x0BC, 0x0E1, 0x079, 0x0C2, 0x0F3, 0x085, 0x0E7, 0x00B,
|
||||
0x0CE, 0x017, 0x09C, 0x029, 0x09C, 0x029, 0x09C, 0x029,
|
||||
0x09C, 0x023, 0x00F, 0x058, 0x014, 0x0EE, 0x035, 0x077,
|
||||
0x026, 0x021, 0x093, 0x005, 0x0C9, 0x0B0, 0x017, 0x0D2,
|
||||
0x01D, 0x018, 0x08A, 0x021, 0x093, 0x005, 0x0C9, 0x0B0,
|
||||
0x017, 0x0D1, 0x087, 0x0AC, 0x00A, 0x074, 0x00F, 0x0AE,
|
||||
0x0F5, 0x05A, 0x082, 0x0A3, 0x0E4, 0x03A, 0x031, 0x014,
|
||||
0x0BB, 0x0D7, 0x059, 0x099, 0x074, 0x0A2, 0x019, 0x030,
|
||||
0x05C, 0x09B, 0x001, 0x07D, 0x018, 0x07A, 0x0C0, 0x0A7,
|
||||
0x040, 0x0F8, 0x043, 0x0D4, 0x063, 0x089, 0x025, 0x0D0,
|
||||
0x010, 0x0D6, 0x01C, 0x06A, 0x010, 0x0F5, 0x055, 0x089,
|
||||
0x025, 0x0D1, 0x051, 0x066, 0x01F, 0x051, 0x0F5, 0x091,
|
||||
0x049, 0x02E, 0x089, 0x015, 0x098, 0x06A, 0x0A3, 0x0E0,
|
||||
0x08A, 0x094, 0x065, 0x064, 0x00E, 0x013, 0x017, 0x038,
|
||||
0x0A8, 0x086, 0x04C, 0x017, 0x026, 0x0C0, 0x05F, 0x046,
|
||||
0x01E, 0x0B0, 0x028, 0x063, 0x01F, 0x008, 0x07A, 0x08C,
|
||||
0x071, 0x024, 0x0BA, 0x002, 0x01A, 0x0D0, 0x00D, 0x042,
|
||||
0x01E, 0x0AA, 0x0B1, 0x024, 0x0BA, 0x02A, 0x02D, 0x031,
|
||||
0x0F5, 0x01F, 0x058, 0x074, 0x092, 0x0E8, 0x087, 0x05A,
|
||||
0x063, 0x052, 0x0DE, 0x0F4, 0x051, 0x069, 0x04A, 0x03E,
|
||||
0x009, 0x069, 0x046, 0x050, 0x0F0, 0x0E1, 0x031, 0x073,
|
||||
0x005, 0x045, 0x0BD, 0x059, 0x08D, 0x08B, 0x04A, 0x07C,
|
||||
0x0D3, 0x0ED, 0x038, 0x0E9, 0x0D3, 0x04E, 0x074, 0x0ED,
|
||||
0x044, 0x032, 0x060, 0x0B9, 0x036, 0x002, 0x0FA, 0x05B,
|
||||
0x0DE, 0x08A, 0x02D, 0x029, 0x0D0, 0x0E1, 0x021, 0x0F5,
|
||||
0x0A3, 0x092, 0x021, 0x0F2, 0x019, 0x030, 0x05C, 0x09B,
|
||||
0x001, 0x07D, 0x021, 0x0F5, 0x0A0, 0x0C6, 0x001, 0x067,
|
||||
0x001, 0x0B4, 0x045, 0x0CE, 0x0A5, 0x012, 0x039, 0x0D4,
|
||||
0x01C, 0x005, 0x0F4, 0x040, 0x0A1, 0x0C2, 0x0C3, 0x050,
|
||||
0x06A, 0x0AA, 0x0AA, 0x0AA, 0x0AA, 0x0AA, 0x0AA, 0x0AA,
|
||||
0x0AA, 0x0AA, 0x0AA, 0x0AA, 0x0AA, 0x0AA, 0x081, 0x0AF,
|
||||
0x086, 0x09F, 0x019, 0x01B, 0x0E7, 0x081, 0x0F3, 0x065,
|
||||
0x0F2, 0x080, 0x0BE, 0x070, 0x017, 0x0DF, 0x0DF, 0x038,
|
||||
0x00B, 0x0EB, 0x00D, 0x0C3, 0x080, 0x0BE, 0x0A7, 0x00F,
|
||||
0x095, 0x04F, 0x05A, 0x094, 0x0C0, 0x02C, 0x0D8, 0x0B1,
|
||||
0x0A7, 0x0CE, 0x05A, 0x011, 0x073, 0x0A8, 0x03A, 0x0C2,
|
||||
0x0CC, 0x0B6, 0x030, 0x017, 0x0DC, 0x06F, 0x035, 0x0A9,
|
||||
0x080, 0x04D, 0x0A7, 0x0CE, 0x02A, 0x018, 0x079, 0x0C5,
|
||||
0x049, 0x0DE, 0x061, 0x0A8, 0x022, 0x0E7, 0x050, 0x033,
|
||||
0x0F9, 0x098, 0x064, 0x008, 0x0B9, 0x095, 0x042, 0x0FC,
|
||||
0x0CC, 0x0D9, 0x095, 0x03D, 0x062, 0x0A2, 0x048, 0x0D4,
|
||||
0x048, 0x0E7, 0x002, 0x088, 0x0B9, 0x0C1, 0x0A0, 0x0E3,
|
||||
0x09D, 0x04E, 0x062, 0x0E6, 0x0CC, 0x0C6, 0x06B, 0x0CE,
|
||||
0x083, 0x010, 0x0C9, 0x082, 0x0E4, 0x0DA, 0x0C2, 0x0C8,
|
||||
0x01E, 0x0C3, 0x0B9, 0x036, 0x002, 0x0FA, 0x0A9, 0x0EB,
|
||||
0x04E, 0x030, 0x030, 0x0FA, 0x00D, 0x0F0, 0x0A9, 0x0EB,
|
||||
0x040, 0x0B9, 0x00F, 0x0AA, 0x07A, 0x0D2, 0x0C2, 0x0C8,
|
||||
0x0FA, 0x0A7, 0x0AD, 0x041, 0x00A, 0x047, 0x0D5, 0x03D,
|
||||
0x068, 0x0AC, 0x0F1, 0x0F5, 0x04F, 0x05A, 0x097, 0x054,
|
||||
0x07D, 0x04F, 0x0A8, 0x0AA, 0x055, 0x01F, 0x011, 0x073,
|
||||
0x05A, 0x0B0, 0x017, 0x0DE, 0x05D, 0x059, 0x0A9, 0x025,
|
||||
0x0D0, 0x055, 0x02A, 0x046, 0x0BC, 0x0B8, 0x022, 0x0AE,
|
||||
0x045, 0x029, 0x03E, 0x014, 0x0FA, 0x0E1, 0x099, 0x094,
|
||||
0x0CA, 0x04A, 0x0BE, 0x03D, 0x0D6, 0x099, 0x092, 0x05D,
|
||||
0x015, 0x017, 0x0C8, 0x0D7, 0x0DC, 0x015, 0x017, 0x08A,
|
||||
0x040, 0x01F, 0x00A, 0x09E, 0x0AC, 0x0C9, 0x065, 0x049,
|
||||
0x05C, 0x01D, 0x010, 0x068, 0x04A, 0x03E, 0x05B, 0x0DE,
|
||||
0x083, 0x016, 0x095, 0x080, 0x0BE, 0x091, 0x074, 0x058,
|
||||
0x0A4, 0x000, 0x07C, 0x038, 0x0E7, 0x056, 0x030, 0x017,
|
||||
0x0DF, 0x075, 0x0A6, 0x064, 0x097, 0x045, 0x020, 0x09D,
|
||||
0x003, 0x05F, 0x070, 0x054, 0x05E, 0x029, 0x01D, 0x0F0,
|
||||
0x0A9, 0x0EA, 0x0CC, 0x086, 0x054, 0x095, 0x0C1, 0x0D1,
|
||||
0x006, 0x083, 0x00F, 0x0AA, 0x07B, 0x0D0, 0x065, 0x049,
|
||||
0x045, 0x0BD, 0x0E9, 0x062, 0x0D2, 0x091, 0x0DF, 0x004,
|
||||
0x05D, 0x016, 0x029, 0x01C, 0x07D, 0x04F, 0x0AC, 0x01A,
|
||||
0x047, 0x01A, 0x0A9, 0x0F5, 0x067, 0x066, 0x053, 0x028,
|
||||
0x0B7, 0x0BD, 0x02C, 0x05A, 0x052, 0x03B, 0x0E3, 0x0DD,
|
||||
0x059, 0x0A9, 0x025, 0x0D1, 0x0A8, 0x0AC, 0x008, 0x06B,
|
||||
0x0EE, 0x008, 0x0AB, 0x0C5, 0x020, 0x02F, 0x085, 0x04F,
|
||||
0x056, 0x066, 0x075, 0x049, 0x05C, 0x01C, 0x018, 0x01D,
|
||||
0x081, 0x0C2, 0x064, 0x005, 0x0F0, 0x080, 0x0BE, 0x035,
|
||||
0x05C, 0x0D0, 0x017, 0x0C2, 0x055, 0x0F0, 0x095, 0x07C,
|
||||
0x025, 0x05F, 0x008, 0x00B, 0x0E1, 0x001, 0x07C, 0x07B,
|
||||
0x0AB, 0x035, 0x024, 0x0BA, 0x010, 0x055, 0x093, 0x01A,
|
||||
0x0FB, 0x082, 0x02A, 0x0F1, 0x048, 0x0D7, 0x0C2, 0x0A7,
|
||||
0x0AB, 0x031, 0x0B2, 0x0A4, 0x0AC, 0x063, 0x09D, 0x04A,
|
||||
0x08D, 0x07C, 0x07B, 0x0AB, 0x035, 0x024, 0x0BA, 0x010,
|
||||
0x054, 0x030, 0x08D, 0x07D, 0x0C1, 0x015, 0x078, 0x0AC,
|
||||
0x06F, 0x05A, 0x094, 0x060, 0x01A, 0x0E3, 0x079, 0x0D4,
|
||||
0x0AA, 0x04F, 0x085, 0x04F, 0x056, 0x066, 0x0D5, 0x049,
|
||||
0x058, 0x0C7, 0x03A, 0x095, 0x049, 0x0F0, 0x045, 0x0D1,
|
||||
0x062, 0x094, 0x086, 0x0BC, 0x01D, 0x013, 0x0D2, 0x090,
|
||||
0x0FF, 0x0CF, 0x07A, 0x083, 0x0F2, 0x050, 0x031, 0x0DE,
|
||||
0x000, 0x060, 0x060, 0x0A1, 0x017, 0x035, 0x0A8, 0x05F,
|
||||
0x09B, 0x01B, 0x037, 0x007, 0x044, 0x01A, 0x030, 0x00B,
|
||||
0x038, 0x00D, 0x0BC, 0x01C, 0x0E0, 0x0D0, 0x047, 0x0CE,
|
||||
0x0A0, 0x0AA, 0x07A, 0x0A1, 0x098, 0x06A, 0x092, 0x095,
|
||||
0x03D, 0x068, 0x031, 0x080, 0x05B, 0x080, 0x0DA, 0x0A9,
|
||||
0x0EF, 0x041, 0x095, 0x025, 0x016, 0x0F7, 0x0A5, 0x08B,
|
||||
0x04A, 0x0C6, 0x079, 0x0B3, 0x033, 0x060, 0x02F, 0x0AA,
|
||||
0x09E, 0x0B1, 0x051, 0x080, 0x059, 0x09E, 0x0CA, 0x0A7,
|
||||
0x0AC, 0x00A, 0x030, 0x00B, 0x067, 0x0B2, 0x0AD, 0x0D5,
|
||||
0x0DA, 0x092, 0x05D, 0x017, 0x0A3, 0x000, 0x0B3, 0x02D,
|
||||
0x095, 0x06E, 0x008, 0x0A9, 0x058, 0x0A1, 0x017, 0x03A,
|
||||
0x08B, 0x001, 0x07D, 0x054, 0x0F7, 0x08E, 0x095, 0x025,
|
||||
0x008, 0x01C, 0x0E0, 0x056, 0x002, 0x0FB, 0x0C1, 0x0D1,
|
||||
0x015, 0x018, 0x005, 0x092, 0x06B, 0x03C, 0x01D, 0x012,
|
||||
0x028, 0x0C0, 0x02C, 0x0A5, 0x06C, 0x011, 0x070, 0x017,
|
||||
0x0B2, 0x038, 0x04D, 0x080, 0x0BE, 0x0E0, 0x02F, 0x0B4,
|
||||
0x0EC, 0x04A, 0x0ED, 0x0B3, 0x09E, 0x002, 0x0FB, 0x080,
|
||||
0x0BE, 0x0E0, 0x02F, 0x0B1, 0x039, 0x093, 0x03E, 0x06D,
|
||||
0x0E7, 0x010, 0x060, 0x09F, 0x032, 0x0A9, 0x0A2, 0x06C,
|
||||
0x005, 0x0F4, 0x040, 0x0E6, 0x00A, 0x095, 0x03D, 0x06A,
|
||||
0x023, 0x000, 0x0B3, 0x080, 0x0DA, 0x0A7, 0x0D6, 0x02A,
|
||||
0x003, 0x00D, 0x070, 0x017, 0x0D2, 0x02E, 0x076, 0x029,
|
||||
0x04F, 0x0BC, 0x054, 0x0A6, 0x051, 0x06F, 0x07A, 0x058,
|
||||
0x0B4, 0x0AC, 0x005, 0x0F4, 0x08B, 0x0A2, 0x0F4, 0x00E,
|
||||
0x035, 0x00D, 0x049, 0x02E, 0x0B4, 0x0CC, 0x018, 0x0A5,
|
||||
0x0C8, 0x0F8, 0x04A, 0x097, 0x023, 0x0E1, 0x005, 0x02E,
|
||||
0x047, 0x0C2, 0x08A, 0x05C, 0x08F, 0x085, 0x069, 0x072,
|
||||
0x03E, 0x01F, 0x04A, 0x0C3, 0x055, 0x01F, 0x056, 0x043,
|
||||
0x032, 0x08C, 0x0A3, 0x05E, 0x060, 0x0A8, 0x045, 0x0CE,
|
||||
0x00D, 0x060, 0x02F, 0x0A3, 0x084, 0x09D, 0x0D8, 0x0F0,
|
||||
0x017, 0x0D2, 0x02E, 0x00E, 0x01B, 0x023, 0x084, 0x0D8,
|
||||
0x00B, 0x0EB, 0x089, 0x0F3, 0x080, 0x0BE, 0x0E0, 0x02F,
|
||||
0x0BB, 0x039, 0x085, 0x0DF, 0x022, 0x003, 0x0E7, 0x001,
|
||||
0x07D, 0x0C0, 0x05F, 0x070, 0x017, 0x0D1, 0x017, 0x038,
|
||||
0x014, 0x05B, 0x0D6, 0x0A2, 0x074, 0x00D, 0x04B, 0x07A,
|
||||
0x0B3, 0x031, 0x096, 0x094, 0x06B, 0x0CC, 0x035, 0x023,
|
||||
0x0D7, 0x049, 0x048, 0x015, 0x073, 0x029, 0x00F, 0x05D,
|
||||
0x08A, 0x0C0, 0x05F, 0x04D, 0x079, 0x084, 0x035, 0x080,
|
||||
0x0BE, 0x088, 0x01C, 0x0C3, 0x052, 0x09F, 0x059, 0x068,
|
||||
0x0C0, 0x02C, 0x0E0, 0x036, 0x0AA, 0x07B, 0x0CD, 0x04A,
|
||||
0x092, 0x0BE, 0x0F3, 0x081, 0x04A, 0x07D, 0x05B, 0x059,
|
||||
0x094, 0x0CA, 0x01C, 0x024, 0x0EE, 0x0C7, 0x080, 0x0BE,
|
||||
0x088, 0x01C, 0x0C3, 0x052, 0x09F, 0x059, 0x068, 0x0C0,
|
||||
0x02C, 0x0E0, 0x036, 0x0AA, 0x07B, 0x0CD, 0x04A, 0x092,
|
||||
0x0BE, 0x0F3, 0x081, 0x043, 0x084, 0x09C, 0x07B, 0x038,
|
||||
0x00B, 0x0EB, 0x0AF, 0x070, 0x0D4, 0x0EA, 0x053, 0x000,
|
||||
0x09B, 0x04F, 0x09C, 0x054, 0x030, 0x0F3, 0x08A, 0x094,
|
||||
0x0FA, 0x0B6, 0x0B3, 0x029, 0x094, 0x022, 0x0E6, 0x01A,
|
||||
0x085, 0x0F9, 0x0B0, 0x059, 0x093, 0x0F9, 0x0D2, 0x0C4,
|
||||
0x032, 0x060, 0x0B9, 0x036, 0x0B0, 0x0B3, 0x090, 0x0D9,
|
||||
0x077, 0x026, 0x01C, 0x027, 0x022, 0x0E8, 0x096, 0x0B4,
|
||||
0x023, 0x0EA, 0x09E, 0x0B5, 0x011, 0x080, 0x059, 0x065,
|
||||
0x086, 0x020, 0x073, 0x096, 0x08D, 0x079, 0x0AD, 0x058,
|
||||
0x00B, 0x0E9, 0x017, 0x044, 0x08A, 0x04A, 0x007, 0x0D7,
|
||||
0x07A, 0x082, 0x0A1, 0x090, 0x0FA, 0x0EF, 0x001, 0x054,
|
||||
0x0BA, 0x050, 0x0D4, 0x059, 0x01E, 0x02C, 0x0E9, 0x0F3,
|
||||
0x08A, 0x099, 0x085, 0x06B, 0x00B, 0x023, 0x015, 0x097,
|
||||
0x072, 0x061, 0x017, 0x030, 0x0D4, 0x02C, 0x073, 0x087,
|
||||
0x048, 0x0AA, 0x002, 0x081, 0x025, 0x0DE, 0x091, 0x00D,
|
||||
0x04A, 0x0C0, 0x05F, 0x07E, 0x0D2, 0x080, 0x0A5, 0x03E,
|
||||
0x0B2, 0x0D0, 0x0C8, 0x06B, 0x080, 0x0BE, 0x088, 0x01C,
|
||||
0x0EA, 0x009, 0x017, 0x044, 0x01A, 0x037, 0x01A, 0x091,
|
||||
0x074, 0x058, 0x0A3, 0x071, 0x0AF, 0x007, 0x044, 0x054,
|
||||
0x06E, 0x035, 0x0E0, 0x0E8, 0x0AA, 0x064, 0x00F, 0x090,
|
||||
0x0FA, 0x0D0, 0x063, 0x000, 0x0B3, 0x080, 0x0DA, 0x02C,
|
||||
0x073, 0x087, 0x048, 0x0AA, 0x002, 0x081, 0x025, 0x0DE,
|
||||
0x091, 0x00D, 0x04A, 0x0C0, 0x05F, 0x048, 0x0BA, 0x027,
|
||||
0x0A3, 0x000, 0x0B7, 0x001, 0x0B7, 0x04F, 0x09C, 0x0B4,
|
||||
0x06B, 0x0CC, 0x035, 0x016, 0x0F5, 0x066, 0x063, 0x02D,
|
||||
0x029, 0x01E, 0x0BA, 0x04A, 0x040, 0x0AB, 0x099, 0x048,
|
||||
0x07A, 0x0EC, 0x050, 0x08B, 0x09C, 0x008, 0x022, 0x0FC,
|
||||
0x0F9, 0x0B2, 0x055, 0x03D, 0x062, 0x0A9, 0x023, 0x051,
|
||||
0x023, 0x09C, 0x00A, 0x03C, 0x073, 0x00D, 0x044, 0x05C,
|
||||
0x0E1, 0x050, 0x071, 0x0CE, 0x0A1, 0x01F, 0x0E7, 0x015,
|
||||
0x06B, 0x00B, 0x025, 0x0ED, 0x00B, 0x093, 0x060, 0x02F,
|
||||
0x0AA, 0x09E, 0x0AC, 0x036, 0x065, 0x049, 0x05F, 0x07A,
|
||||
0x020, 0x050, 0x008, 0x07F, 0x0EF, 0x039, 0x014, 0x049,
|
||||
0x001, 0x011, 0x081, 0x004, 0x060, 0x040, 0x0CC, 0x059,
|
||||
0x0C0, 0x0AD, 0x023, 0x0EB, 0x041, 0x0B0, 0x081, 0x0F2,
|
||||
0x03A, 0x041, 0x0AA, 0x050, 0x043, 0x0E4, 0x0D4, 0x086,
|
||||
0x054, 0x0A0, 0x087, 0x0C1, 0x052, 0x0CA, 0x093, 0x001,
|
||||
0x032, 0x054, 0x09D, 0x024, 0x002, 0x000, 0x000, 0x052,
|
||||
0x0AF, 0x016, 0x046, 0x0A7, 0x091, 0x067, 0x008, 0x0B4,
|
||||
0x004, 0x051, 0x0F1, 0x065, 0x019, 0x0B4, 0x06E, 0x02D,
|
||||
0x0C0, 0x0AD, 0x049, 0x000, 0x092, 0x057, 0x01B, 0x074,
|
||||
0x045, 0x05F, 0x023, 0x051, 0x0B7, 0x044, 0x00A, 0x010,
|
||||
0x006, 0x0A3, 0x06E, 0x08B, 0x06B, 0x008, 0x01F, 0x019,
|
||||
0x0D1, 0x0E6, 0x080, 0x082, 0x080, 0x054, 0x004, 0x02A,
|
||||
0x045, 0x091, 0x0A9, 0x0E4, 0x059, 0x0C2, 0x02D, 0x001,
|
||||
0x014, 0x004, 0x050, 0x0D3, 0x0FC, 0x055, 0x084, 0x061,
|
||||
0x0D9, 0x080, 0x051, 0x02F, 0x0E2, 0x01F, 0x046, 0x05F,
|
||||
0x040, 0x0E0, 0x020, 0x015, 0x04A, 0x0BC, 0x059, 0x01A,
|
||||
0x09E, 0x045, 0x09C, 0x022, 0x0D0, 0x011, 0x048, 0x0CB,
|
||||
0x0E8, 0x014, 0x008, 0x001, 0x054, 0x015, 0x0E2, 0x0C8,
|
||||
0x0D4, 0x0F2, 0x02C, 0x0E1, 0x016, 0x080, 0x08A, 0x046,
|
||||
0x05F, 0x052, 0x07C, 0x0D9, 0x0A8, 0x0F8, 0x088, 0x0D0,
|
||||
0x05A, 0x03C, 0x0D2, 0x05C, 0x05B, 0x080, 0x0DA, 0x0A7,
|
||||
0x0D6, 0x05A, 0x008, 0x086, 0x0A4, 0x05D, 0x017, 0x0A0,
|
||||
0x0C3, 0x052, 0x02E, 0x088, 0x0A8, 0x022, 0x01F, 0x053,
|
||||
0x0EA, 0x0DA, 0x0CC, 0x0A6, 0x050, 0x0E1, 0x027, 0x076,
|
||||
0x03C, 0x005, 0x0F5, 0x04F, 0x0AB, 0x06B, 0x032, 0x099,
|
||||
0x043, 0x084, 0x09C, 0x07B, 0x038, 0x00B, 0x0E9, 0x027,
|
||||
0x0AC, 0x0D4, 0x092, 0x0E0, 0x00E, 0x0DA, 0x038, 0x04D,
|
||||
0x080, 0x0BE, 0x0E6, 0x07D, 0x050, 0x0BA, 0x051, 0x0AE,
|
||||
0x066, 0x0EF, 0x0BC, 0x0DC, 0x07B, 0x087, 0x01E, 0x002,
|
||||
0x0FA, 0x093, 0x0E6, 0x0CD, 0x047, 0x0C4, 0x043, 0x0CD,
|
||||
0x00F, 0x034, 0x09D, 0x0A3, 0x000, 0x0B0, 0x055, 0x001,
|
||||
0x0AE, 0x003, 0x084, 0x004, 0x0CE, 0x001, 0x0D0, 0x0E1,
|
||||
0x070, 0x002, 0x080, 0x00E, 0x089, 0x0E9, 0x022, 0x01F,
|
||||
0x0E0, 0x0E8, 0x096, 0x0B0, 0x011, 0x0F4, 0x0C2, 0x0CE,
|
||||
0x003, 0x06A, 0x044, 0x02D, 0x0C0, 0x06D, 0x048, 0x005,
|
||||
0x0B8, 0x00D, 0x0A3, 0x000, 0x0B7, 0x076, 0x0D5, 0x0DE,
|
||||
0x0B1, 0x050, 0x0DC, 0x07D, 0x077, 0x0BC, 0x054, 0x0BA,
|
||||
0x052, 0x07F, 0x058, 0x014, 0x034, 0x00F, 0x09A, 0x0F3,
|
||||
0x081, 0x058, 0x00B, 0x0EA, 0x0EF, 0x058, 0x014, 0x060,
|
||||
0x016, 0x0A5, 0x06C, 0x02E, 0x0F7, 0x081, 0x04B, 0x0A5,
|
||||
0x06F, 0x07D, 0x05D, 0x0EE, 0x0B5, 0x02E, 0x095, 0x080,
|
||||
0x0BE, 0x0F0, 0x073, 0x0BD, 0x004, 0x07C, 0x0EA, 0x0FE,
|
||||
0x0EB, 0x04C, 0x0DE, 0x029, 0x053, 0x0DD, 0x06A, 0x054,
|
||||
0x094, 0x0A9, 0x0EA, 0x00A, 0x08C, 0x002, 0x0D6, 0x04C,
|
||||
0x03C, 0x005, 0x0F4, 0x000, 0x0EA, 0x0CD, 0x056, 0x0AF,
|
||||
0x0C0, 0x047, 0x0D2, 0x09C, 0x08D, 0x029, 0x0CA, 0x0E0,
|
||||
0x02F, 0x0AE, 0x0BD, 0x075, 0x099, 0x09D, 0x04A, 0x0F9,
|
||||
0x0EF, 0x051, 0x07C, 0x094, 0x00C, 0x077, 0x080, 0x018,
|
||||
0x018, 0x029, 0x02A, 0x0F8, 0x0E0, 0x0E8, 0x0AA, 0x030,
|
||||
0x00B, 0x02A, 0x098, 0x07C, 0x01D, 0x011, 0x051, 0x080,
|
||||
0x059, 0x054, 0x0C3, 0x051, 0x0F5, 0x01B, 0x033, 0x024,
|
||||
0x0BB, 0x082, 0x0A5, 0x019, 0x05C, 0x01D, 0x010, 0x028,
|
||||
0x0C0, 0x02C, 0x09A, 0x0C7, 0x0C1, 0x0D1, 0x022, 0x08C,
|
||||
0x002, 0x0C9, 0x094, 0x064, 0x05C, 0x00C, 0x0D6, 0x08E,
|
||||
0x013, 0x060, 0x02F, 0x0B8, 0x00B, 0x0EA, 0x030, 0x0E3,
|
||||
0x0C0, 0x05F, 0x048, 0x0DC, 0x078, 0x00B, 0x0E8, 0x000,
|
||||
0x0E3, 0x0C0, 0x05F, 0x06C, 0x038, 0x0D5, 0x02E, 0x035,
|
||||
0x04F, 0x05A, 0x08A, 0x061, 0x0AA, 0x09F, 0x056, 0x01B,
|
||||
0x032, 0x099, 0x046, 0x042, 0x0C8, 0x001, 0x00C, 0x045,
|
||||
0x0CE, 0x0A5, 0x017, 0x0E6, 0x0C6, 0x0CE, 0x0A9, 0x0EB,
|
||||
0x015, 0x016, 0x046, 0x0A2, 0x047, 0x038, 0x014, 0x043,
|
||||
0x026, 0x022, 0x0E7, 0x03D, 0x060, 0x02F, 0x0AA, 0x09E,
|
||||
0x0B5, 0x012, 0x0E0, 0x07F, 0x001, 0x07D, 0x0E3, 0x0E7,
|
||||
0x002, 0x093, 0x0F9, 0x095, 0x044, 0x05C, 0x0E5, 0x0A0,
|
||||
0x0E3, 0x09D, 0x04A, 0x07F, 0x09C, 0x054, 0x0A9, 0x0EB,
|
||||
0x051, 0x005, 0x046, 0x0B9, 0x0FC, 0x0C0, 0x01B, 0x022,
|
||||
0x02E, 0x064, 0x054, 0x02F, 0x0CD, 0x046, 0x0CC, 0x0A7,
|
||||
0x0D5, 0x086, 0x0CC, 0x0A6, 0x050, 0x055, 0x0C6, 0x045,
|
||||
0x0CE, 0x05A, 0x00E, 0x039, 0x0D4, 0x0A7, 0x0F9, 0x0C5,
|
||||
0x04A, 0x09E, 0x0B5, 0x011, 0x080, 0x059, 0x0C0, 0x06D,
|
||||
0x0CF, 0x0E6, 0x000, 0x0D9, 0x011, 0x073, 0x022, 0x0A1,
|
||||
0x07E, 0x06A, 0x036, 0x065, 0x03E, 0x0AC, 0x036, 0x065,
|
||||
0x032, 0x0B0, 0x017, 0x0DD, 0x03E, 0x072, 0x0D2, 0x079,
|
||||
0x031, 0x00C, 0x098, 0x02E, 0x04C, 0x020, 0x073, 0x02A,
|
||||
0x08F, 0x0F3, 0x08A, 0x0AD, 0x0E7, 0x041, 0x082, 0x07C,
|
||||
0x0CA, 0x0A6, 0x089, 0x0B5, 0x085, 0x09F, 0x0B0, 0x0F0,
|
||||
0x017, 0x0D5, 0x01F, 0x054, 0x054, 0x025, 0x01A, 0x0A8,
|
||||
0x0FF, 0x02A, 0x094, 0x065, 0x011, 0x0D7, 0x049, 0x044,
|
||||
0x0D5, 0x0CC, 0x0A0, 0x055, 0x0D8, 0x0AE, 0x00E, 0x088,
|
||||
0x014, 0x060, 0x016, 0x04D, 0x063, 0x022, 0x0E0, 0x072,
|
||||
0x086, 0x038, 0x04D, 0x080, 0x0BE, 0x0E0, 0x02F, 0x0B8,
|
||||
0x00B, 0x0EE, 0x002, 0x0FB, 0x081, 0x038, 0x0F0, 0x017,
|
||||
0x0D7, 0x0D7, 0x01E, 0x002, 0x0FA, 0x0FA, 0x0E3, 0x0C0,
|
||||
0x05F, 0x04C, 0x085, 0x090, 0x002, 0x018, 0x0C8, 0x05B,
|
||||
0x080, 0x0DA, 0x030, 0x00B, 0x070, 0x01B, 0x04C, 0x022,
|
||||
0x0D3, 0x04C, 0x033, 0x003, 0x08C, 0x02E, 0x04C, 0x043,
|
||||
0x026, 0x0D0, 0x0F5, 0x063, 0x066, 0x0D0, 0x095, 0x0A7,
|
||||
0x0CE, 0x045, 0x033, 0x00A, 0x0D6, 0x016, 0x042, 0x038,
|
||||
0x06E, 0x0E4, 0x0CE, 0x0BD, 0x059, 0x02C, 0x0D2, 0x0AB,
|
||||
0x0BA, 0x094, 0x09D, 0x0E6, 0x01A, 0x0B0, 0x017, 0x0D5,
|
||||
0x04F, 0x05A, 0x08B, 0x009, 0x01A, 0x088, 0x0B9, 0x0C5,
|
||||
0x042, 0x047, 0x030, 0x0D4, 0x032, 0x016, 0x072, 0x088,
|
||||
0x065, 0x0BD, 0x059, 0x099, 0x025, 0x0A5, 0x060, 0x02F,
|
||||
0x0B8, 0x060, 0x0F3, 0x008, 0x0B7, 0x04A, 0x01A, 0x08F,
|
||||
0x0AB, 0x00D, 0x099, 0x046, 0x051, 0x0AF, 0x038, 0x0A8,
|
||||
0x08E, 0x090, 0x065, 0x013, 0x052, 0x018, 0x0A0, 0x054,
|
||||
0x0B1, 0x042, 0x02E, 0x061, 0x0A8, 0x048, 0x0E7, 0x02D,
|
||||
0x016, 0x0F7, 0x0A8, 0x005, 0x0A5, 0x060, 0x02F, 0x0A4,
|
||||
0x075, 0x0D2, 0x051, 0x035, 0x073, 0x028, 0x015, 0x076,
|
||||
0x02B, 0x083, 0x0A2, 0x005, 0x018, 0x005, 0x093, 0x058,
|
||||
0x0C8, 0x0B8, 0x006, 0x028, 0x063, 0x084, 0x0D8, 0x00B,
|
||||
0x0EE, 0x002, 0x0FB, 0x080, 0x0BE, 0x0E0, 0x02F, 0x0A0,
|
||||
0x043, 0x0A7, 0x001, 0x07D, 0x04C, 0x0E3, 0x0C0, 0x05F,
|
||||
0x070, 0x017, 0x0DC, 0x005, 0x0F4, 0x064, 0x02D, 0x0C0,
|
||||
0x06D, 0x018, 0x005, 0x0B8, 0x00D, 0x0A5, 0x0BD, 0x06A,
|
||||
0x023, 0x086, 0x0AA, 0x09E, 0x0B5, 0x011, 0x0A4, 0x06A,
|
||||
0x0A3, 0x0EA, 0x08A, 0x08D, 0x023, 0x0E1, 0x017, 0x038,
|
||||
0x034, 0x069, 0x071, 0x098, 0x045, 0x0A6, 0x098, 0x06A,
|
||||
0x03E, 0x0AC, 0x036, 0x065, 0x019, 0x046, 0x0BC, 0x0E2,
|
||||
0x0A2, 0x03A, 0x041, 0x094, 0x04D, 0x048, 0x062, 0x081,
|
||||
0x052, 0x0C5, 0x016, 0x0F7, 0x0A8, 0x08B, 0x04A, 0x054,
|
||||
0x0F5, 0x0A8, 0x08C, 0x002, 0x0DC, 0x006, 0x0D1, 0x003,
|
||||
0x09C, 0x0B4, 0x0A9, 0x0EE, 0x00A, 0x095, 0x025, 0x02A,
|
||||
0x07A, 0x0AD, 0x046, 0x001, 0x067, 0x001, 0x0B5, 0x0D7,
|
||||
0x0AC, 0x00A, 0x030, 0x00B, 0x06C, 0x049, 0x035, 0x0E6,
|
||||
0x0B5, 0x067, 0x0F3, 0x000, 0x06C, 0x088, 0x0B9, 0x091,
|
||||
0x050, 0x0BF, 0x031, 0x01B, 0x032, 0x0A7, 0x0B8, 0x068,
|
||||
0x095, 0x025, 0x07B, 0x0AD, 0x033, 0x078, 0x0A7, 0x0CD,
|
||||
0x03E, 0x0D3, 0x08E, 0x09D, 0x034, 0x0E7, 0x04E, 0x0D4,
|
||||
0x022, 0x0E7, 0x006, 0x084, 0x08E, 0x060, 0x0A8, 0x0FF,
|
||||
0x038, 0x0AB, 0x083, 0x09C, 0x02A, 0x008, 0x0F9, 0x0D4,
|
||||
0x020, 0x063, 0x0BC, 0x01A, 0x006, 0x00A, 0x0C0, 0x05F,
|
||||
0x046, 0x042, 0x0DC, 0x006, 0x0D1, 0x080, 0x05B, 0x080,
|
||||
0x0DA, 0x022, 0x0E6, 0x01A, 0x084, 0x08E, 0x072, 0x0D1,
|
||||
0x06F, 0x05A, 0x080, 0x087, 0x01A, 0x0AA, 0x07A, 0x0D4,
|
||||
0x048, 0x0C8, 0x0D5, 0x047, 0x0D5, 0x015, 0x023, 0x023,
|
||||
0x0E1, 0x017, 0x038, 0x034, 0x08C, 0x0BA, 0x04B, 0x07B,
|
||||
0x0D4, 0x002, 0x0D2, 0x08C, 0x022, 0x0DC, 0x006, 0x0D5,
|
||||
0x01F, 0x056, 0x01B, 0x032, 0x08C, 0x0A3, 0x05E, 0x071,
|
||||
0x051, 0x01D, 0x020, 0x0CA, 0x026, 0x0A4, 0x031, 0x040,
|
||||
0x0A9, 0x062, 0x0B0, 0x017, 0x0DF, 0x09E, 0x0F4, 0x0B7,
|
||||
0x0C9, 0x040, 0x0C7, 0x078, 0x001, 0x081, 0x082, 0x0B8,
|
||||
0x038, 0x039, 0x049, 0x01C, 0x026, 0x0C0, 0x05F, 0x070,
|
||||
0x017, 0x0D4, 0x0AB, 0x0E1, 0x02A, 0x0F8, 0x04A, 0x0BE,
|
||||
0x012, 0x0AF, 0x08F, 0x097, 0x04F, 0x0CB, 0x0A7, 0x001,
|
||||
0x07D, 0x0DA, 0x080, 0x0AA, 0x091, 0x064, 0x07F, 0x04A,
|
||||
0x081, 0x0D5, 0x022, 0x0C8, 0x0FE, 0x082, 0x080, 0x025,
|
||||
0x048, 0x0B2, 0x03E, 0x0BB, 0x0DC, 0x035, 0x02E, 0x094,
|
||||
0x007, 0x0E8, 0x08A, 0x09C, 0x003, 0x0E2, 0x04B, 0x0A5,
|
||||
0x077, 0x0AB, 0x0B3, 0x032, 0x0E9, 0x04B, 0x0BD, 0x059,
|
||||
0x086, 0x084, 0x097, 0x07A, 0x004, 0x0BA, 0x053, 0x0E1,
|
||||
0x032, 0x0EF, 0x050, 0x0D4, 0x0E6, 0x035, 0x053, 0x0EB,
|
||||
0x002, 0x09C, 0x0C7, 0x0D7, 0x07A, 0x0B3, 0x030, 0x0D2,
|
||||
0x05D, 0x0EA, 0x002, 0x0E9, 0x044, 0x05D, 0x016, 0x028,
|
||||
0x0C0, 0x02C, 0x0E0, 0x036, 0x091, 0x074, 0x045, 0x059,
|
||||
0x018, 0x0D5, 0x04F, 0x0AC, 0x00A, 0x0C4, 0x035, 0x030,
|
||||
0x08B, 0x038, 0x069, 0x02B, 0x0BD, 0x059, 0x098, 0x069,
|
||||
0x02E, 0x0F5, 0x012, 0x0E9, 0x058, 0x067, 0x04A, 0x0EF,
|
||||
0x050, 0x0D5, 0x08E, 0x03E, 0x01C, 0x0A4, 0x0B0, 0x0CE,
|
||||
0x093, 0x021, 0x06E, 0x01A, 0x048, 0x01F, 0x0A2, 0x02A,
|
||||
0x0C3, 0x00D, 0x057, 0x07A, 0x0B3, 0x00D, 0x009, 0x02E,
|
||||
0x0F4, 0x043, 0x05D, 0x028, 0x08B, 0x083, 0x020, 0x092,
|
||||
0x038, 0x04D, 0x080, 0x0BE, 0x0E0, 0x02F, 0x0AC, 0x017,
|
||||
0x049, 0x0B3, 0x0A5, 0x082, 0x0E9, 0x03E, 0x0E9, 0x036,
|
||||
0x074, 0x0E0, 0x02F, 0x0A6, 0x0CE, 0x09C, 0x005, 0x0F4,
|
||||
0x0C2, 0x02C, 0x08C, 0x052, 0x057, 0x07A, 0x0D4, 0x08D,
|
||||
0x048, 0x0FA, 0x0EF, 0x050, 0x0D5, 0x0AE, 0x035, 0x053,
|
||||
0x0EB, 0x002, 0x086, 0x021, 0x0AA, 0x0EF, 0x056, 0x066,
|
||||
0x01A, 0x04B, 0x0BD, 0x044, 0x0BA, 0x050, 0x0C4, 0x0E9,
|
||||
0x053, 0x0EB, 0x002, 0x086, 0x081, 0x0F5, 0x0DE, 0x0A1,
|
||||
0x0A8, 0x062, 0x01F, 0x05D, 0x0FE, 0x0A2, 0x05D, 0x029,
|
||||
0x077, 0x0A8, 0x06A, 0x061, 0x08D, 0x040, 0x0FD, 0x011,
|
||||
0x053, 0x00C, 0x06A, 0x0A7, 0x0D6, 0x005, 0x030, 0x0C7,
|
||||
0x0D7, 0x07F, 0x0A9, 0x057, 0x04A, 0x05D, 0x0EB, 0x048,
|
||||
0x01B, 0x00C, 0x07C, 0x08B, 0x09D, 0x08A, 0x053, 0x0EF,
|
||||
0x066, 0x094, 0x0CA, 0x054, 0x0F5, 0x0A0, 0x0C6, 0x001,
|
||||
0x06E, 0x003, 0x06A, 0x09F, 0x056, 0x076, 0x065, 0x032,
|
||||
0x08B, 0x07B, 0x0D2, 0x0C5, 0x0A5, 0x060, 0x02F, 0x0AA,
|
||||
0x07D, 0x065, 0x0A3, 0x000, 0x0B7, 0x001, 0x0B4, 0x0C8,
|
||||
0x05A, 0x007, 0x08F, 0x0ED, 0x001, 0x0D5, 0x027, 0x091,
|
||||
0x067, 0x001, 0x0B4, 0x08B, 0x09C, 0x054, 0x01C, 0x073,
|
||||
0x0A8, 0x084, 0x05C, 0x0C1, 0x050, 0x0BF, 0x036, 0x056,
|
||||
0x060, 0x0AB, 0x08C, 0x08B, 0x09C, 0x054, 0x01C, 0x073,
|
||||
0x0A8, 0x084, 0x05C, 0x0C1, 0x050, 0x0BF, 0x036, 0x056,
|
||||
0x06C, 0x005, 0x0F5, 0x053, 0x0D6, 0x0A2, 0x030, 0x00B,
|
||||
0x029, 0x05B, 0x019, 0x0FC, 0x0F6, 0x094, 0x045, 0x0CF,
|
||||
0x015, 0x00B, 0x0F3, 0x03C, 0x0B3, 0x02A, 0x07A, 0x0C5,
|
||||
0x046, 0x001, 0x064, 0x08A, 0x031, 0x023, 0x09C, 0x00A,
|
||||
0x05D, 0x0EA, 0x034, 0x033, 0x02E, 0x095, 0x0C7, 0x0CE,
|
||||
0x02A, 0x04F, 0x0E6, 0x050, 0x020, 0x0B9, 0x031, 0x00C,
|
||||
0x09B, 0x0EF, 0x039, 0x014, 0x045, 0x0CE, 0x045, 0x007,
|
||||
0x01C, 0x0EA, 0x046, 0x087, 0x0AB, 0x01B, 0x036, 0x084,
|
||||
0x0A7, 0x05E, 0x0AC, 0x096, 0x067, 0x052, 0x0B0, 0x017,
|
||||
0x0DC, 0x0FE, 0x07B, 0x04A, 0x022, 0x0E7, 0x08A, 0x085,
|
||||
0x0F9, 0x09E, 0x059, 0x097, 0x07A, 0x08D, 0x00C, 0x0CB,
|
||||
0x0A5, 0x027, 0x0F3, 0x0A0, 0x044, 0x032, 0x060, 0x0B9,
|
||||
0x037, 0x0DE, 0x072, 0x028, 0x08B, 0x09C, 0x08A, 0x00E,
|
||||
0x039, 0x0D4, 0x08C, 0x005, 0x0F7, 0x0E7, 0x0B8, 0x02A,
|
||||
0x0F9, 0x028, 0x018, 0x0EF, 0x000, 0x030, 0x030, 0x057,
|
||||
0x007, 0x044, 0x00A, 0x050, 0x08F, 0x0F0, 0x073, 0x091,
|
||||
0x041, 0x01F, 0x03A, 0x090, 0x045, 0x0C0, 0x0BB, 0x018,
|
||||
0x0E1, 0x036, 0x002, 0x0FB, 0x0FB, 0x09E, 0x002, 0x0FA,
|
||||
0x0EE, 0x0E7, 0x0F5, 0x0CF, 0x001, 0x07D, 0x010, 0x05C,
|
||||
0x0F0, 0x017, 0x0D1, 0x005, 0x0CF, 0x001, 0x07D, 0x053,
|
||||
0x0EB, 0x02D, 0x018, 0x005, 0x0B8, 0x00D, 0x0A6, 0x042,
|
||||
0x0DC, 0x006, 0x0D3, 0x017, 0x035, 0x0A8, 0x08B, 0x09C,
|
||||
0x00A, 0x00E, 0x039, 0x0D4, 0x00C, 0x0FE, 0x07B, 0x04A,
|
||||
0x022, 0x0E6, 0x055, 0x00B, 0x0F3, 0x031, 0x0B3, 0x060,
|
||||
0x02F, 0x0BC, 0x07C, 0x0E2, 0x0A4, 0x0FE, 0x065, 0x051,
|
||||
0x017, 0x038, 0x014, 0x01C, 0x073, 0x0A8, 0x019, 0x0FC,
|
||||
0x0F6, 0x094, 0x045, 0x0CC, 0x0AA, 0x017, 0x0E6, 0x063,
|
||||
0x066, 0x00A, 0x0B8, 0x0CC, 0x085, 0x0A1, 0x058, 0x0F6,
|
||||
0x0A2, 0x035, 0x048, 0x048, 0x07F, 0x04A, 0x089, 0x095,
|
||||
0x021, 0x021, 0x0FD, 0x005, 0x002, 0x054, 0x09E, 0x045,
|
||||
0x091, 0x00E, 0x03C, 0x005, 0x0F5, 0x007, 0x040, 0x055,
|
||||
0x048, 0x052, 0x03E, 0x086, 0x0A0, 0x075, 0x048, 0x052,
|
||||
0x03E, 0x0B5, 0x000, 0x04A, 0x09C, 0x000, 0x06B, 0x0C7,
|
||||
0x0CE, 0x045, 0x027, 0x0F3, 0x02A, 0x084, 0x037, 0x035,
|
||||
0x0DE, 0x0A0, 0x0AB, 0x023, 0x01A, 0x0AE, 0x0F5, 0x083,
|
||||
0x059, 0x018, 0x0D7, 0x043, 0x0DE, 0x02A, 0x0D0, 0x094,
|
||||
0x0EB, 0x0DE, 0x005, 0x03A, 0x095, 0x09F, 0x0CC, 0x0C3,
|
||||
0x020, 0x045, 0x0CC, 0x0AA, 0x017, 0x0E6, 0x066, 0x0CC,
|
||||
0x043, 0x026, 0x04F, 0x0E7, 0x041, 0x022, 0x02E, 0x070,
|
||||
0x068, 0x038, 0x0E7, 0x053, 0x0E0, 0x02F, 0x0AB, 0x0BC,
|
||||
0x012, 0x0D2, 0x0E9, 0x058, 0x00B, 0x0EA, 0x0A7, 0x0AD,
|
||||
0x045, 0x0A1, 0x01F, 0x0C0, 0x05F, 0x078, 0x039, 0x0C8,
|
||||
0x0A0, 0x08F, 0x09D, 0x048, 0x01C, 0x024, 0x0EE, 0x0C7,
|
||||
0x080, 0x0BE, 0x0BA, 0x0F5, 0x06D, 0x066, 0x049, 0x077,
|
||||
0x00D, 0x04E, 0x0A5, 0x030, 0x009, 0x0B4, 0x0F9, 0x0C5,
|
||||
0x043, 0x00F, 0x038, 0x0A9, 0x03F, 0x09D, 0x002, 0x0FB,
|
||||
0x0CE, 0x045, 0x011, 0x073, 0x091, 0x041, 0x0C7, 0x03A,
|
||||
0x091, 0x09F, 0x0CF, 0x069, 0x044, 0x05C, 0x0F1, 0x050,
|
||||
0x0BF, 0x033, 0x0CB, 0x032, 0x0A7, 0x0AC, 0x054, 0x090,
|
||||
0x08D, 0x044, 0x08E, 0x070, 0x029, 0x077, 0x0A8, 0x0D0,
|
||||
0x0CC, 0x0BA, 0x056, 0x0B0, 0x0B2, 0x09D, 0x08C, 0x086,
|
||||
0x04C, 0x017, 0x026, 0x077, 0x026, 0x01C, 0x027, 0x01C,
|
||||
0x024, 0x09E, 0x023, 0x061, 0x0BE, 0x08E, 0x012, 0x04F,
|
||||
0x011, 0x087, 0x01C, 0x0EA, 0x05C, 0x005, 0x0F5, 0x0D7,
|
||||
0x0B8, 0x06A, 0x075, 0x029, 0x077, 0x0AB, 0x00D, 0x099,
|
||||
0x074, 0x0A5, 0x04F, 0x072, 0x0A0, 0x0AA, 0x04A, 0x0C6,
|
||||
0x0F3, 0x066, 0x066, 0x0C6, 0x039, 0x082, 0x0AF, 0x075,
|
||||
0x0A6, 0x06F, 0x014, 0x06B, 0x0CE, 0x005, 0x070, 0x073,
|
||||
0x096, 0x082, 0x03E, 0x075, 0x028, 0x0E1, 0x03A, 0x0A7,
|
||||
0x0AD, 0x044, 0x060, 0x016, 0x052, 0x0B6, 0x01D, 0x07A,
|
||||
0x0B6, 0x0B3, 0x024, 0x0BB, 0x086, 0x0A7, 0x052, 0x098,
|
||||
0x004, 0x0DA, 0x07C, 0x0E2, 0x0A1, 0x087, 0x09C, 0x055,
|
||||
0x0F7, 0x09C, 0x0B5, 0x0AC, 0x02C, 0x095, 0x033, 0x0B9,
|
||||
0x031, 0x005, 0x0D9, 0x053, 0x0D6, 0x0A2, 0x030, 0x00B,
|
||||
0x029, 0x05B, 0x002, 0x02E, 0x061, 0x05A, 0x017, 0x0E6,
|
||||
0x09C, 0x0B3, 0x02A, 0x07A, 0x0C5, 0x040, 0x021, 0x0A8,
|
||||
0x091, 0x0CE, 0x005, 0x027, 0x0F3, 0x0A5, 0x088, 0x064,
|
||||
0x0C1, 0x072, 0x065, 0x04F, 0x058, 0x014, 0x00C, 0x08D,
|
||||
0x07E, 0x0F3, 0x081, 0x044, 0x05C, 0x0EF, 0x041, 0x0C7,
|
||||
0x03A, 0x0BE, 0x002, 0x0FA, 0x0A9, 0x0EA, 0x0CE, 0x0CC,
|
||||
0x0A9, 0x029, 0x053, 0x0D6, 0x0A2, 0x046, 0x047, 0x0DD,
|
||||
0x07A, 0x0C0, 0x0A3, 0x000, 0x086, 0x0E2, 0x09B, 0x029,
|
||||
0x078, 0x08B, 0x081, 0x009, 0x098, 0x070, 0x09B, 0x029,
|
||||
0x079, 0x05D, 0x0D9, 0x072, 0x0ED, 0x094, 0x0BC, 0x0B9,
|
||||
0x076, 0x013, 0x03B, 0x02A, 0x05D, 0x0B2, 0x097, 0x095,
|
||||
0x02E, 0x0D9, 0x04B, 0x0CA, 0x07D, 0x05B, 0x059, 0x094,
|
||||
0x0CA, 0x01C, 0x024, 0x0EE, 0x0C7, 0x094, 0x0BC, 0x0C0,
|
||||
0x026, 0x0D3, 0x0E7, 0x015, 0x00C, 0x03C, 0x0E2, 0x0AC,
|
||||
0x0FE, 0x07B, 0x04A, 0x022, 0x0E7, 0x08A, 0x085, 0x0F9,
|
||||
0x09E, 0x059, 0x097, 0x07A, 0x08D, 0x00C, 0x0CB, 0x0A5,
|
||||
0x027, 0x0F3, 0x0A0, 0x041, 0x072, 0x062, 0x019, 0x037,
|
||||
0x0DE, 0x070, 0x028, 0x08B, 0x09C, 0x08A, 0x00E, 0x039,
|
||||
0x0D4, 0x08D, 0x00F, 0x056, 0x036, 0x06D, 0x009, 0x04E,
|
||||
0x0BD, 0x059, 0x02C, 0x0CE, 0x0A5, 0x06B, 0x00B, 0x022,
|
||||
0x0D9, 0x09D, 0x0C9, 0x0B2, 0x097, 0x0BE, 0x0F3, 0x081,
|
||||
0x04A, 0x07D, 0x065, 0x0A3, 0x000, 0x093, 0x08F, 0x067,
|
||||
0x029, 0x078, 0x0C2, 0x04D, 0x0C1, 0x0D1, 0x006, 0x082,
|
||||
0x031, 0x0AF, 0x007, 0x038, 0x034, 0x011, 0x0F3, 0x0A8,
|
||||
0x02A, 0x09E, 0x0A8, 0x066, 0x01A, 0x0A4, 0x0A5, 0x04F,
|
||||
0x05A, 0x00C, 0x011, 0x08F, 0x0AA, 0x07B, 0x0D0, 0x065,
|
||||
0x049, 0x045, 0x0BD, 0x0E9, 0x062, 0x0D2, 0x0B1, 0x09E,
|
||||
0x06C, 0x0CC, 0x0C6, 0x019, 0x087, 0x009, 0x0C3, 0x08E,
|
||||
0x075, 0x041, 0x01F, 0x03A, 0x0A5, 0x013, 0x0D5, 0x055,
|
||||
0x055, 0x055, 0x055, 0x055, 0x055, 0x055, 0x055, 0x055,
|
||||
0x055, 0x055, 0x055, 0x055, 0x055, 0x055, 0x055, 0x055,
|
||||
0x055, 0x055, 0x055, 0x055, 0x055, 0x055, 0x055, 0x055,
|
||||
0x055, 0x055, 0x055, 0x055, 0x055, 0x055, 0x055, 0x055,
|
||||
0x055, 0x055, 0x055, 0x055, 0x055, 0x055, 0x055, 0x055,
|
||||
0x055, 0x055, 0x055, 0x05A, 0x0CC, 0x090
|
||||
};
|
||||
|
||||
#endif /* defined(CONFIG_SMCTR) || defined(CONFIG_SMCTR_MODULE) */
|
|
@ -57,13 +57,12 @@
|
|||
#include <linux/ethtool.h>
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/wait.h>
|
||||
#include <linux/firmware.h>
|
||||
#include <asm/uaccess.h>
|
||||
#include <asm/byteorder.h>
|
||||
|
||||
#undef DEBUG
|
||||
|
||||
#include "kawethfw.h"
|
||||
|
||||
#define KAWETH_MTU 1514
|
||||
#define KAWETH_BUF_SIZE 1664
|
||||
#define KAWETH_TX_TIMEOUT (5 * HZ)
|
||||
|
@ -108,6 +107,10 @@
|
|||
MODULE_AUTHOR("Michael Zappe <zapman@interlan.net>, Stephane Alnet <stephane@u-picardie.fr>, Brad Hards <bhards@bigpond.net.au> and Oliver Neukum <oliver@neukum.org>");
|
||||
MODULE_DESCRIPTION("KL5USB101 USB Ethernet driver");
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_FIRMWARE("kaweth/new_code.bin");
|
||||
MODULE_FIRMWARE("kaweth/new_code_fix.bin");
|
||||
MODULE_FIRMWARE("kaweth/trigger_code.bin");
|
||||
MODULE_FIRMWARE("kaweth/trigger_code_fix.bin");
|
||||
|
||||
static const char driver_name[] = "kaweth";
|
||||
|
||||
|
@ -385,17 +388,28 @@ static int kaweth_set_receive_filter(struct kaweth_device *kaweth,
|
|||
* kaweth_download_firmware
|
||||
****************************************************************/
|
||||
static int kaweth_download_firmware(struct kaweth_device *kaweth,
|
||||
__u8 *data,
|
||||
__u16 data_len,
|
||||
const char *fwname,
|
||||
__u8 interrupt,
|
||||
__u8 type)
|
||||
{
|
||||
if(data_len > KAWETH_FIRMWARE_BUF_SIZE) {
|
||||
err("Firmware too big: %d", data_len);
|
||||
return -ENOSPC;
|
||||
const struct firmware *fw;
|
||||
int data_len;
|
||||
int ret;
|
||||
|
||||
ret = request_firmware(&fw, fwname, &kaweth->dev->dev);
|
||||
if (ret) {
|
||||
err("Firmware request failed\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
memcpy(kaweth->firmware_buf, data, data_len);
|
||||
if (fw->size > KAWETH_FIRMWARE_BUF_SIZE) {
|
||||
err("Firmware too big: %zu", fw->size);
|
||||
return -ENOSPC;
|
||||
}
|
||||
data_len = fw->size;
|
||||
memcpy(kaweth->firmware_buf, fw->data, fw->size);
|
||||
|
||||
release_firmware(fw);
|
||||
|
||||
kaweth->firmware_buf[2] = (data_len & 0xFF) - 7;
|
||||
kaweth->firmware_buf[3] = data_len >> 8;
|
||||
|
@ -406,8 +420,7 @@ static int kaweth_download_firmware(struct kaweth_device *kaweth,
|
|||
kaweth->firmware_buf[2]);
|
||||
|
||||
dbg("Downloading firmware at %p to kaweth device at %p",
|
||||
data,
|
||||
kaweth);
|
||||
fw->data, kaweth);
|
||||
dbg("Firmware length: %d", data_len);
|
||||
|
||||
return kaweth_control(kaweth,
|
||||
|
@ -1009,8 +1022,7 @@ static int kaweth_probe(
|
|||
info("Downloading firmware...");
|
||||
kaweth->firmware_buf = (__u8 *)__get_free_page(GFP_KERNEL);
|
||||
if ((result = kaweth_download_firmware(kaweth,
|
||||
kaweth_new_code,
|
||||
len_kaweth_new_code,
|
||||
"kaweth/new_code.bin",
|
||||
100,
|
||||
2)) < 0) {
|
||||
err("Error downloading firmware (%d)", result);
|
||||
|
@ -1018,8 +1030,7 @@ static int kaweth_probe(
|
|||
}
|
||||
|
||||
if ((result = kaweth_download_firmware(kaweth,
|
||||
kaweth_new_code_fix,
|
||||
len_kaweth_new_code_fix,
|
||||
"kaweth/new_code_fix.bin",
|
||||
100,
|
||||
3)) < 0) {
|
||||
err("Error downloading firmware fix (%d)", result);
|
||||
|
@ -1027,8 +1038,7 @@ static int kaweth_probe(
|
|||
}
|
||||
|
||||
if ((result = kaweth_download_firmware(kaweth,
|
||||
kaweth_trigger_code,
|
||||
len_kaweth_trigger_code,
|
||||
"kaweth/trigger_code.bin",
|
||||
126,
|
||||
2)) < 0) {
|
||||
err("Error downloading trigger code (%d)", result);
|
||||
|
@ -1037,8 +1047,7 @@ static int kaweth_probe(
|
|||
}
|
||||
|
||||
if ((result = kaweth_download_firmware(kaweth,
|
||||
kaweth_trigger_code_fix,
|
||||
len_kaweth_trigger_code_fix,
|
||||
"kaweth/trigger_code_fix.bin",
|
||||
126,
|
||||
3)) < 0) {
|
||||
err("Error downloading trigger code fix (%d)", result);
|
||||
|
|
|
@ -1,557 +0,0 @@
|
|||
/******************************************/
|
||||
/* NOTE: B6/C3 is data header signature */
|
||||
/* 0xAA/0xBB is data length = total */
|
||||
/* bytes - 7, 0xCC is type, 0xDD is */
|
||||
/* interrupt to use. */
|
||||
/******************************************/
|
||||
|
||||
/****************************************************************
|
||||
* kaweth_trigger_code
|
||||
****************************************************************/
|
||||
static __u8 kaweth_trigger_code[] =
|
||||
{
|
||||
0xB6, 0xC3, 0xAA, 0xBB, 0xCC, 0xDD,
|
||||
0xc8, 0x07, 0xa0, 0x00, 0xf0, 0x07, 0x5e, 0x00,
|
||||
0x06, 0x00, 0xf0, 0x07, 0x0a, 0x00, 0x08, 0x00,
|
||||
0xf0, 0x09, 0x00, 0x00, 0x02, 0x00, 0xe7, 0x07,
|
||||
0x36, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00,
|
||||
0x04, 0x00, 0xe7, 0x07, 0x50, 0xc3, 0x10, 0xc0,
|
||||
0xf0, 0x09, 0x0e, 0xc0, 0x00, 0x00, 0xe7, 0x87,
|
||||
0x01, 0x00, 0x0e, 0xc0, 0x97, 0xcf, 0xd7, 0x09,
|
||||
0x00, 0xc0, 0x17, 0x02, 0xc8, 0x07, 0xa0, 0x00,
|
||||
0xe7, 0x17, 0x50, 0xc3, 0x10, 0xc0, 0x30, 0xd8,
|
||||
0x04, 0x00, 0x30, 0x5c, 0x08, 0x00, 0x04, 0x00,
|
||||
0xb0, 0xc0, 0x06, 0x00, 0xc8, 0x05, 0xe7, 0x05,
|
||||
0x00, 0xc0, 0xc0, 0xdf, 0x97, 0xcf, 0x49, 0xaf,
|
||||
0xc0, 0x07, 0x00, 0x00, 0x60, 0xaf, 0x4a, 0xaf,
|
||||
0x00, 0x0c, 0x0c, 0x00, 0x40, 0xd2, 0x00, 0x1c,
|
||||
0x0c, 0x00, 0x40, 0xd2, 0x30, 0x00, 0x08, 0x00,
|
||||
0xf0, 0x07, 0x00, 0x00, 0x04, 0x00, 0xf0, 0x07,
|
||||
0x86, 0x00, 0x06, 0x00, 0x67, 0xcf, 0x27, 0x0c,
|
||||
0x02, 0x00, 0x00, 0x00, 0x27, 0x0c, 0x00, 0x00,
|
||||
0x0e, 0xc0, 0x49, 0xaf, 0x64, 0xaf, 0xc0, 0x07,
|
||||
0x00, 0x00, 0x4b, 0xaf, 0x4a, 0xaf, 0x5a, 0xcf,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x94, 0x00, 0x05, 0x00,
|
||||
0x00, 0x00
|
||||
};
|
||||
/****************************************************************
|
||||
* kaweth_trigger_code_fix
|
||||
****************************************************************/
|
||||
static __u8 kaweth_trigger_code_fix[] =
|
||||
{
|
||||
0xB6, 0xC3, 0xAA, 0xBB, 0xCC, 0xDD,
|
||||
0x02, 0x00, 0x06, 0x00, 0x18, 0x00, 0x3e, 0x00,
|
||||
0x80, 0x00, 0x98, 0x00, 0xaa, 0x00,
|
||||
0x00, 0x00
|
||||
};
|
||||
|
||||
/****************************************************************
|
||||
* kaweth_new_code
|
||||
****************************************************************/
|
||||
static __u8 kaweth_new_code[] =
|
||||
{
|
||||
0xB6, 0xC3, 0xAA, 0xBB, 0xCC, 0xDD,
|
||||
0x9f, 0xcf, 0xde, 0x06, 0xe7, 0x57, 0x00, 0x00,
|
||||
0xc4, 0x06, 0x97, 0xc1, 0xe7, 0x67, 0xff, 0x1f,
|
||||
0x28, 0xc0, 0xe7, 0x87, 0x00, 0x04, 0x24, 0xc0,
|
||||
0xe7, 0x67, 0xff, 0xf9, 0x22, 0xc0, 0x97, 0xcf,
|
||||
0xd7, 0x09, 0x00, 0xc0, 0xe7, 0x09, 0xa2, 0xc0,
|
||||
0xbe, 0x06, 0x9f, 0xaf, 0x36, 0x00, 0xe7, 0x05,
|
||||
0x00, 0xc0, 0xa7, 0xcf, 0xbc, 0x06, 0x97, 0xcf,
|
||||
0xe7, 0x57, 0x00, 0x00, 0xb8, 0x06, 0xa7, 0xa1,
|
||||
0xb8, 0x06, 0x97, 0xcf, 0xe7, 0x57, 0x00, 0x00,
|
||||
0x14, 0x08, 0x0a, 0xc0, 0xe7, 0x57, 0x00, 0x00,
|
||||
0xa4, 0xc0, 0xa7, 0xc0, 0x7a, 0x06, 0x9f, 0xaf,
|
||||
0x92, 0x07, 0xe7, 0x07, 0x00, 0x00, 0x14, 0x08,
|
||||
0xe7, 0x57, 0xff, 0xff, 0xba, 0x06, 0x9f, 0xa0,
|
||||
0x38, 0x00, 0xe7, 0x59, 0xba, 0x06, 0xbe, 0x06,
|
||||
0x9f, 0xa0, 0x38, 0x00, 0xc8, 0x09, 0xca, 0x06,
|
||||
0x08, 0x62, 0x9f, 0xa1, 0x36, 0x08, 0xc0, 0x09,
|
||||
0x76, 0x06, 0x00, 0x60, 0xa7, 0xc0, 0x7a, 0x06,
|
||||
0x9f, 0xaf, 0xcc, 0x02, 0xe7, 0x57, 0x00, 0x00,
|
||||
0xb8, 0x06, 0xa7, 0xc1, 0x7a, 0x06, 0x9f, 0xaf,
|
||||
0x04, 0x00, 0xe7, 0x57, 0x00, 0x00, 0x8e, 0x06,
|
||||
0x0a, 0xc1, 0xe7, 0x09, 0x20, 0xc0, 0x10, 0x08,
|
||||
0xe7, 0xd0, 0x10, 0x08, 0xe7, 0x67, 0x40, 0x00,
|
||||
0x10, 0x08, 0x9f, 0xaf, 0x92, 0x0c, 0xc0, 0x09,
|
||||
0xd0, 0x06, 0x00, 0x60, 0x05, 0xc4, 0xc0, 0x59,
|
||||
0xbe, 0x06, 0x02, 0xc0, 0x9f, 0xaf, 0xec, 0x00,
|
||||
0x9f, 0xaf, 0x34, 0x02, 0xe7, 0x57, 0x00, 0x00,
|
||||
0xa6, 0x06, 0x9f, 0xa0, 0x7a, 0x02, 0xa7, 0xcf,
|
||||
0x7a, 0x06, 0x48, 0x02, 0xe7, 0x09, 0xbe, 0x06,
|
||||
0xd0, 0x06, 0xc8, 0x37, 0x04, 0x00, 0x9f, 0xaf,
|
||||
0x08, 0x03, 0x97, 0xcf, 0xe7, 0x57, 0x00, 0x00,
|
||||
0xce, 0x06, 0x97, 0xc0, 0xd7, 0x09, 0x00, 0xc0,
|
||||
0xc1, 0xdf, 0xc8, 0x09, 0xc6, 0x06, 0x08, 0x62,
|
||||
0x14, 0xc0, 0x27, 0x04, 0xc6, 0x06, 0x10, 0x94,
|
||||
0xf0, 0x07, 0x10, 0x08, 0x02, 0x00, 0xc1, 0x07,
|
||||
0x01, 0x00, 0x70, 0x00, 0x04, 0x00, 0xf0, 0x07,
|
||||
0x30, 0x01, 0x06, 0x00, 0x50, 0xaf, 0xe7, 0x07,
|
||||
0xff, 0xff, 0xd0, 0x06, 0xe7, 0x07, 0x00, 0x00,
|
||||
0xce, 0x06, 0xe7, 0x05, 0x00, 0xc0, 0x97, 0xcf,
|
||||
0xd7, 0x09, 0x00, 0xc0, 0xc1, 0xdf, 0x48, 0x02,
|
||||
0xd0, 0x09, 0xc6, 0x06, 0x27, 0x02, 0xc6, 0x06,
|
||||
0xe7, 0x05, 0x00, 0xc0, 0x97, 0xcf, 0x48, 0x02,
|
||||
0xc8, 0x37, 0x04, 0x00, 0x00, 0x0c, 0x0c, 0x00,
|
||||
0x00, 0x60, 0x21, 0xc0, 0xc0, 0x37, 0x3e, 0x00,
|
||||
0x23, 0xc9, 0xc0, 0x57, 0xb4, 0x05, 0x1b, 0xc8,
|
||||
0xc0, 0x17, 0x3f, 0x00, 0xc0, 0x67, 0xc0, 0xff,
|
||||
0x30, 0x00, 0x08, 0x00, 0xf0, 0x07, 0x00, 0x00,
|
||||
0x04, 0x00, 0x00, 0x02, 0xc0, 0x17, 0x4c, 0x00,
|
||||
0x30, 0x00, 0x06, 0x00, 0xf0, 0x07, 0xa0, 0x01,
|
||||
0x0a, 0x00, 0x48, 0x02, 0xc1, 0x07, 0x02, 0x00,
|
||||
0xd7, 0x09, 0x00, 0xc0, 0xc1, 0xdf, 0x51, 0xaf,
|
||||
0xe7, 0x05, 0x00, 0xc0, 0x97, 0xcf, 0x9f, 0xaf,
|
||||
0x08, 0x03, 0x9f, 0xaf, 0x7a, 0x02, 0x97, 0xcf,
|
||||
0x9f, 0xaf, 0x7a, 0x02, 0xc9, 0x37, 0x04, 0x00,
|
||||
0xc1, 0xdf, 0xc8, 0x09, 0xa2, 0x06, 0x50, 0x02,
|
||||
0x67, 0x02, 0xa2, 0x06, 0xd1, 0x07, 0x00, 0x00,
|
||||
0x27, 0xd8, 0xaa, 0x06, 0xc0, 0xdf, 0x9f, 0xaf,
|
||||
0xc4, 0x01, 0x97, 0xcf, 0xe7, 0x57, 0x00, 0x00,
|
||||
0xd2, 0x06, 0x97, 0xc1, 0xe7, 0x57, 0x01, 0x00,
|
||||
0xa8, 0x06, 0x97, 0xc0, 0xc8, 0x09, 0xa0, 0x06,
|
||||
0x08, 0x62, 0x97, 0xc0, 0x00, 0x02, 0xc0, 0x17,
|
||||
0x0e, 0x00, 0x27, 0x00, 0x34, 0x01, 0x27, 0x0c,
|
||||
0x0c, 0x00, 0x36, 0x01, 0xe7, 0x07, 0x50, 0xc3,
|
||||
0x12, 0xc0, 0xe7, 0x07, 0xcc, 0x0b, 0x02, 0x00,
|
||||
0xe7, 0x07, 0x01, 0x00, 0xa8, 0x06, 0xe7, 0x07,
|
||||
0x05, 0x00, 0x90, 0xc0, 0x97, 0xcf, 0xc8, 0x09,
|
||||
0xa4, 0x06, 0x08, 0x62, 0x02, 0xc0, 0x10, 0x64,
|
||||
0x07, 0xc1, 0xe7, 0x07, 0x00, 0x00, 0x9e, 0x06,
|
||||
0xe7, 0x07, 0x72, 0x04, 0x24, 0x00, 0x97, 0xcf,
|
||||
0x27, 0x04, 0xa4, 0x06, 0xc8, 0x17, 0x0e, 0x00,
|
||||
0x27, 0x02, 0x9e, 0x06, 0xe7, 0x07, 0x80, 0x04,
|
||||
0x24, 0x00, 0x97, 0xcf, 0xd7, 0x09, 0x00, 0xc0,
|
||||
0xc1, 0xdf, 0xe7, 0x57, 0x00, 0x00, 0x90, 0x06,
|
||||
0x13, 0xc1, 0x9f, 0xaf, 0x06, 0x02, 0xe7, 0x57,
|
||||
0x00, 0x00, 0x9e, 0x06, 0x13, 0xc0, 0xe7, 0x09,
|
||||
0x9e, 0x06, 0x30, 0x01, 0xe7, 0x07, 0xf2, 0x05,
|
||||
0x32, 0x01, 0xe7, 0x07, 0x10, 0x00, 0x96, 0xc0,
|
||||
0xe7, 0x09, 0x9e, 0x06, 0x90, 0x06, 0x04, 0xcf,
|
||||
0xe7, 0x57, 0x00, 0x00, 0x9e, 0x06, 0x02, 0xc1,
|
||||
0x9f, 0xaf, 0x06, 0x02, 0xe7, 0x05, 0x00, 0xc0,
|
||||
0x97, 0xcf, 0xd7, 0x09, 0x00, 0xc0, 0xc1, 0xdf,
|
||||
0x08, 0x92, 0xe7, 0x57, 0x02, 0x00, 0xaa, 0x06,
|
||||
0x02, 0xc3, 0xc8, 0x09, 0xa4, 0x06, 0x27, 0x02,
|
||||
0xa6, 0x06, 0x08, 0x62, 0x03, 0xc1, 0xe7, 0x05,
|
||||
0x00, 0xc0, 0x97, 0xcf, 0x27, 0x04, 0xa4, 0x06,
|
||||
0xe7, 0x05, 0x00, 0xc0, 0xf0, 0x07, 0x40, 0x00,
|
||||
0x08, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x04, 0x00,
|
||||
0x00, 0x02, 0xc0, 0x17, 0x0c, 0x00, 0x30, 0x00,
|
||||
0x06, 0x00, 0xf0, 0x07, 0x46, 0x01, 0x0a, 0x00,
|
||||
0xc8, 0x17, 0x04, 0x00, 0xc1, 0x07, 0x02, 0x00,
|
||||
0x51, 0xaf, 0x97, 0xcf, 0xe7, 0x57, 0x00, 0x00,
|
||||
0x96, 0x06, 0x97, 0xc0, 0xc1, 0xdf, 0xc8, 0x09,
|
||||
0x96, 0x06, 0x27, 0x04, 0x96, 0x06, 0x27, 0x52,
|
||||
0x98, 0x06, 0x03, 0xc1, 0xe7, 0x07, 0x96, 0x06,
|
||||
0x98, 0x06, 0xc0, 0xdf, 0x17, 0x02, 0xc8, 0x17,
|
||||
0x0e, 0x00, 0x9f, 0xaf, 0xba, 0x03, 0xc8, 0x05,
|
||||
0x00, 0x60, 0x03, 0xc0, 0x9f, 0xaf, 0x24, 0x03,
|
||||
0x97, 0xcf, 0x9f, 0xaf, 0x08, 0x03, 0x97, 0xcf,
|
||||
0x57, 0x02, 0xc9, 0x07, 0xa4, 0x06, 0xd7, 0x09,
|
||||
0x00, 0xc0, 0xc1, 0xdf, 0x08, 0x62, 0x1b, 0xc0,
|
||||
0x50, 0x04, 0x11, 0x02, 0xe7, 0x05, 0x00, 0xc0,
|
||||
0xc9, 0x05, 0x97, 0xcf, 0x97, 0x02, 0xca, 0x09,
|
||||
0xd6, 0x06, 0xf2, 0x17, 0x01, 0x00, 0x04, 0x00,
|
||||
0xf2, 0x27, 0x00, 0x00, 0x06, 0x00, 0xca, 0x17,
|
||||
0x2c, 0x00, 0xf8, 0x77, 0x01, 0x00, 0x0e, 0x00,
|
||||
0x06, 0xc0, 0xca, 0xd9, 0xf8, 0x57, 0xff, 0x00,
|
||||
0x0e, 0x00, 0x01, 0xc1, 0xca, 0xd9, 0x22, 0x1c,
|
||||
0x0c, 0x00, 0xe2, 0x27, 0x00, 0x00, 0xe2, 0x17,
|
||||
0x01, 0x00, 0xe2, 0x27, 0x00, 0x00, 0xca, 0x05,
|
||||
0x00, 0x0c, 0x0c, 0x00, 0xc0, 0x17, 0x41, 0x00,
|
||||
0xc0, 0x67, 0xc0, 0xff, 0x30, 0x00, 0x08, 0x00,
|
||||
0x00, 0x02, 0xc0, 0x17, 0x0c, 0x00, 0x30, 0x00,
|
||||
0x06, 0x00, 0xf0, 0x07, 0xda, 0x00, 0x0a, 0x00,
|
||||
0xf0, 0x07, 0x00, 0x00, 0x04, 0x00, 0x00, 0x0c,
|
||||
0x08, 0x00, 0x40, 0xd1, 0x01, 0x00, 0xc0, 0x19,
|
||||
0xce, 0x06, 0xc0, 0x59, 0xc2, 0x06, 0x04, 0xc9,
|
||||
0x49, 0xaf, 0x9f, 0xaf, 0xec, 0x00, 0x4a, 0xaf,
|
||||
0x67, 0x10, 0xce, 0x06, 0xc8, 0x17, 0x04, 0x00,
|
||||
0xc1, 0x07, 0x01, 0x00, 0xd7, 0x09, 0x00, 0xc0,
|
||||
0xc1, 0xdf, 0x50, 0xaf, 0xe7, 0x05, 0x00, 0xc0,
|
||||
0x97, 0xcf, 0xc0, 0x07, 0x01, 0x00, 0xc1, 0x09,
|
||||
0xac, 0x06, 0xc1, 0x77, 0x01, 0x00, 0x97, 0xc1,
|
||||
0xd8, 0x77, 0x01, 0x00, 0x12, 0xc0, 0xc9, 0x07,
|
||||
0x6a, 0x06, 0x9f, 0xaf, 0x08, 0x04, 0x04, 0xc1,
|
||||
0xc1, 0x77, 0x08, 0x00, 0x13, 0xc0, 0x97, 0xcf,
|
||||
0xc1, 0x77, 0x02, 0x00, 0x97, 0xc1, 0xc1, 0x77,
|
||||
0x10, 0x00, 0x0c, 0xc0, 0x9f, 0xaf, 0x2c, 0x04,
|
||||
0x97, 0xcf, 0xc1, 0x77, 0x04, 0x00, 0x06, 0xc0,
|
||||
0xc9, 0x07, 0x70, 0x06, 0x9f, 0xaf, 0x08, 0x04,
|
||||
0x97, 0xc0, 0x00, 0xcf, 0x00, 0x90, 0x97, 0xcf,
|
||||
0x50, 0x54, 0x97, 0xc1, 0x70, 0x5c, 0x02, 0x00,
|
||||
0x02, 0x00, 0x97, 0xc1, 0x70, 0x5c, 0x04, 0x00,
|
||||
0x04, 0x00, 0x97, 0xcf, 0x80, 0x01, 0xc0, 0x00,
|
||||
0x60, 0x00, 0x30, 0x00, 0x18, 0x00, 0x0c, 0x00,
|
||||
0x06, 0x00, 0x00, 0x00, 0xcb, 0x09, 0xb2, 0x06,
|
||||
0xcc, 0x09, 0xb4, 0x06, 0x0b, 0x53, 0x11, 0xc0,
|
||||
0xc9, 0x02, 0xca, 0x07, 0x1c, 0x04, 0x9f, 0xaf,
|
||||
0x08, 0x04, 0x97, 0xc0, 0x0a, 0xc8, 0x82, 0x08,
|
||||
0x0a, 0xcf, 0x82, 0x08, 0x9f, 0xaf, 0x08, 0x04,
|
||||
0x97, 0xc0, 0x05, 0xc2, 0x89, 0x30, 0x82, 0x60,
|
||||
0x78, 0xc1, 0x00, 0x90, 0x97, 0xcf, 0x89, 0x10,
|
||||
0x09, 0x53, 0x79, 0xc2, 0x89, 0x30, 0x82, 0x08,
|
||||
0x7a, 0xcf, 0xc0, 0xdf, 0x97, 0xcf, 0xc0, 0xdf,
|
||||
0x97, 0xcf, 0xe7, 0x09, 0x96, 0xc0, 0x92, 0x06,
|
||||
0xe7, 0x09, 0x98, 0xc0, 0x94, 0x06, 0x0f, 0xcf,
|
||||
0xe7, 0x09, 0x96, 0xc0, 0x92, 0x06, 0xe7, 0x09,
|
||||
0x98, 0xc0, 0x94, 0x06, 0xe7, 0x09, 0x9e, 0x06,
|
||||
0x30, 0x01, 0xe7, 0x07, 0xf2, 0x05, 0x32, 0x01,
|
||||
0xe7, 0x07, 0x10, 0x00, 0x96, 0xc0, 0xd7, 0x09,
|
||||
0x00, 0xc0, 0x17, 0x02, 0xc8, 0x09, 0x90, 0x06,
|
||||
0xc8, 0x37, 0x0e, 0x00, 0xe7, 0x77, 0x2a, 0x00,
|
||||
0x92, 0x06, 0x30, 0xc0, 0x97, 0x02, 0xca, 0x09,
|
||||
0xd6, 0x06, 0xe7, 0x77, 0x20, 0x00, 0x92, 0x06,
|
||||
0x0e, 0xc0, 0xf2, 0x17, 0x01, 0x00, 0x10, 0x00,
|
||||
0xf2, 0x27, 0x00, 0x00, 0x12, 0x00, 0xe7, 0x77,
|
||||
0x0a, 0x00, 0x92, 0x06, 0xca, 0x05, 0x1e, 0xc0,
|
||||
0x97, 0x02, 0xca, 0x09, 0xd6, 0x06, 0xf2, 0x17,
|
||||
0x01, 0x00, 0x0c, 0x00, 0xf2, 0x27, 0x00, 0x00,
|
||||
0x0e, 0x00, 0xe7, 0x77, 0x02, 0x00, 0x92, 0x06,
|
||||
0x07, 0xc0, 0xf2, 0x17, 0x01, 0x00, 0x44, 0x00,
|
||||
0xf2, 0x27, 0x00, 0x00, 0x46, 0x00, 0x06, 0xcf,
|
||||
0xf2, 0x17, 0x01, 0x00, 0x60, 0x00, 0xf2, 0x27,
|
||||
0x00, 0x00, 0x62, 0x00, 0xca, 0x05, 0x9f, 0xaf,
|
||||
0x08, 0x03, 0x0f, 0xcf, 0x57, 0x02, 0x09, 0x02,
|
||||
0xf1, 0x09, 0x94, 0x06, 0x0c, 0x00, 0xf1, 0xda,
|
||||
0x0c, 0x00, 0xc8, 0x09, 0x98, 0x06, 0x50, 0x02,
|
||||
0x67, 0x02, 0x98, 0x06, 0xd1, 0x07, 0x00, 0x00,
|
||||
0xc9, 0x05, 0xe7, 0x09, 0x9e, 0x06, 0x90, 0x06,
|
||||
0xe7, 0x57, 0x00, 0x00, 0x90, 0x06, 0x02, 0xc0,
|
||||
0x9f, 0xaf, 0x06, 0x02, 0xc8, 0x05, 0xe7, 0x05,
|
||||
0x00, 0xc0, 0xc0, 0xdf, 0x97, 0xcf, 0xd7, 0x09,
|
||||
0x00, 0xc0, 0x17, 0x00, 0x17, 0x02, 0x97, 0x02,
|
||||
0xc0, 0x09, 0x92, 0xc0, 0xe7, 0x07, 0x04, 0x00,
|
||||
0x90, 0xc0, 0xca, 0x09, 0xd6, 0x06, 0xe7, 0x07,
|
||||
0x00, 0x00, 0xa8, 0x06, 0xe7, 0x07, 0x6a, 0x04,
|
||||
0x02, 0x00, 0xc0, 0x77, 0x02, 0x00, 0x08, 0xc0,
|
||||
0xf2, 0x17, 0x01, 0x00, 0x50, 0x00, 0xf2, 0x27,
|
||||
0x00, 0x00, 0x52, 0x00, 0x9f, 0xcf, 0x24, 0x06,
|
||||
0xc0, 0x77, 0x10, 0x00, 0x06, 0xc0, 0xf2, 0x17,
|
||||
0x01, 0x00, 0x58, 0x00, 0xf2, 0x27, 0x00, 0x00,
|
||||
0x5a, 0x00, 0xc0, 0x77, 0x80, 0x00, 0x06, 0xc0,
|
||||
0xf2, 0x17, 0x01, 0x00, 0x70, 0x00, 0xf2, 0x27,
|
||||
0x00, 0x00, 0x72, 0x00, 0xc0, 0x77, 0x08, 0x00,
|
||||
0x1d, 0xc1, 0xf2, 0x17, 0x01, 0x00, 0x08, 0x00,
|
||||
0xf2, 0x27, 0x00, 0x00, 0x0a, 0x00, 0xc0, 0x77,
|
||||
0x00, 0x02, 0x06, 0xc0, 0xf2, 0x17, 0x01, 0x00,
|
||||
0x64, 0x00, 0xf2, 0x27, 0x00, 0x00, 0x66, 0x00,
|
||||
0xc0, 0x77, 0x40, 0x00, 0x06, 0xc0, 0xf2, 0x17,
|
||||
0x01, 0x00, 0x5c, 0x00, 0xf2, 0x27, 0x00, 0x00,
|
||||
0x5e, 0x00, 0xc0, 0x77, 0x01, 0x00, 0x01, 0xc0,
|
||||
0x1b, 0xcf, 0x1a, 0xcf, 0xf2, 0x17, 0x01, 0x00,
|
||||
0x00, 0x00, 0xf2, 0x27, 0x00, 0x00, 0x02, 0x00,
|
||||
0xc8, 0x09, 0x34, 0x01, 0xca, 0x17, 0x14, 0x00,
|
||||
0xd8, 0x77, 0x01, 0x00, 0x05, 0xc0, 0xca, 0xd9,
|
||||
0xd8, 0x57, 0xff, 0x00, 0x01, 0xc0, 0xca, 0xd9,
|
||||
0xe2, 0x19, 0x94, 0xc0, 0xe2, 0x27, 0x00, 0x00,
|
||||
0xe2, 0x17, 0x01, 0x00, 0xe2, 0x27, 0x00, 0x00,
|
||||
0x9f, 0xaf, 0x40, 0x06, 0x9f, 0xaf, 0xc4, 0x01,
|
||||
0xe7, 0x57, 0x00, 0x00, 0xd2, 0x06, 0x9f, 0xa1,
|
||||
0x0e, 0x0a, 0xca, 0x05, 0xc8, 0x05, 0xc0, 0x05,
|
||||
0xe7, 0x05, 0x00, 0xc0, 0xc0, 0xdf, 0x97, 0xcf,
|
||||
0xc8, 0x09, 0xa0, 0x06, 0x08, 0x62, 0x97, 0xc0,
|
||||
0x27, 0x04, 0xa0, 0x06, 0x27, 0x52, 0xa2, 0x06,
|
||||
0x03, 0xc1, 0xe7, 0x07, 0xa0, 0x06, 0xa2, 0x06,
|
||||
0x9f, 0xaf, 0x08, 0x03, 0xe7, 0x57, 0x00, 0x00,
|
||||
0xaa, 0x06, 0x02, 0xc0, 0x27, 0xda, 0xaa, 0x06,
|
||||
0x97, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0xff, 0xfb, 0x13, 0xe7, 0x57,
|
||||
0x00, 0x80, 0xb2, 0x00, 0x06, 0xc2, 0xe7, 0x07,
|
||||
0xee, 0x0b, 0x12, 0x00, 0xe7, 0x07, 0x34, 0x0c,
|
||||
0xb2, 0x00, 0xe7, 0x07, 0xc6, 0x07, 0xf2, 0x02,
|
||||
0xc8, 0x09, 0xb4, 0x00, 0xf8, 0x07, 0x02, 0x00,
|
||||
0x0d, 0x00, 0xd7, 0x09, 0x0e, 0xc0, 0xe7, 0x07,
|
||||
0x00, 0x00, 0x0e, 0xc0, 0xc8, 0x09, 0xde, 0x00,
|
||||
0xc8, 0x17, 0x09, 0x00, 0xc9, 0x07, 0xda, 0x06,
|
||||
0xc0, 0x07, 0x04, 0x00, 0x68, 0x0a, 0x00, 0xda,
|
||||
0x7d, 0xc1, 0xe7, 0x09, 0xc0, 0x00, 0x7c, 0x06,
|
||||
0xe7, 0x09, 0xbe, 0x00, 0x78, 0x06, 0xe7, 0x09,
|
||||
0x10, 0x00, 0xbc, 0x06, 0xc8, 0x07, 0xd6, 0x07,
|
||||
0x9f, 0xaf, 0xae, 0x07, 0x9f, 0xaf, 0x00, 0x0a,
|
||||
0xc8, 0x09, 0xde, 0x00, 0x00, 0x0e, 0x0f, 0x00,
|
||||
0x41, 0x90, 0x9f, 0xde, 0x06, 0x00, 0x44, 0xaf,
|
||||
0x27, 0x00, 0xb2, 0x06, 0x27, 0x00, 0xb4, 0x06,
|
||||
0x27, 0x00, 0xb6, 0x06, 0xc0, 0x07, 0x74, 0x00,
|
||||
0x44, 0xaf, 0x27, 0x00, 0xd6, 0x06, 0x08, 0x00,
|
||||
0x00, 0x90, 0xc1, 0x07, 0x3a, 0x00, 0x20, 0x00,
|
||||
0x01, 0xda, 0x7d, 0xc1, 0x9f, 0xaf, 0xba, 0x09,
|
||||
0xc0, 0x07, 0x44, 0x00, 0x48, 0xaf, 0x27, 0x00,
|
||||
0x7a, 0x06, 0x9f, 0xaf, 0x96, 0x0a, 0xe7, 0x07,
|
||||
0x01, 0x00, 0xc0, 0x06, 0xe7, 0x05, 0x0e, 0xc0,
|
||||
0x97, 0xcf, 0x49, 0xaf, 0xe7, 0x87, 0x43, 0x00,
|
||||
0x0e, 0xc0, 0xe7, 0x07, 0xff, 0xff, 0xbe, 0x06,
|
||||
0x9f, 0xaf, 0xae, 0x0a, 0xc0, 0x07, 0x01, 0x00,
|
||||
0x60, 0xaf, 0x4a, 0xaf, 0x97, 0xcf, 0x00, 0x08,
|
||||
0x09, 0x08, 0x11, 0x08, 0x00, 0xda, 0x7c, 0xc1,
|
||||
0x97, 0xcf, 0x67, 0x04, 0xcc, 0x02, 0xc0, 0xdf,
|
||||
0x51, 0x94, 0xb1, 0xaf, 0x06, 0x00, 0xc1, 0xdf,
|
||||
0xc9, 0x09, 0xcc, 0x02, 0x49, 0x62, 0x75, 0xc1,
|
||||
0xc0, 0xdf, 0xa7, 0xcf, 0xd6, 0x02, 0x0e, 0x00,
|
||||
0x24, 0x00, 0x80, 0x04, 0x22, 0x00, 0x4e, 0x05,
|
||||
0xd0, 0x00, 0x0e, 0x0a, 0xaa, 0x00, 0x30, 0x08,
|
||||
0xbe, 0x00, 0x4a, 0x0a, 0x10, 0x00, 0x20, 0x00,
|
||||
0x04, 0x00, 0x6e, 0x04, 0x02, 0x00, 0x6a, 0x04,
|
||||
0x06, 0x00, 0x00, 0x00, 0x24, 0xc0, 0x04, 0x04,
|
||||
0x28, 0xc0, 0xfe, 0xfb, 0x1e, 0xc0, 0x00, 0x04,
|
||||
0x22, 0xc0, 0xff, 0xf4, 0xc0, 0x00, 0x90, 0x09,
|
||||
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x56, 0x08,
|
||||
0x60, 0x08, 0xd0, 0x08, 0xda, 0x08, 0x00, 0x09,
|
||||
0x04, 0x09, 0x08, 0x09, 0x32, 0x09, 0x42, 0x09,
|
||||
0x50, 0x09, 0x52, 0x09, 0x5a, 0x09, 0x5a, 0x09,
|
||||
0x27, 0x02, 0xca, 0x06, 0x97, 0xcf, 0xe7, 0x07,
|
||||
0x00, 0x00, 0xca, 0x06, 0x0a, 0x0e, 0x01, 0x00,
|
||||
0xca, 0x57, 0x0e, 0x00, 0x9f, 0xc3, 0x5a, 0x09,
|
||||
0xca, 0x37, 0x00, 0x00, 0x9f, 0xc2, 0x5a, 0x09,
|
||||
0x0a, 0xd2, 0xb2, 0xcf, 0x16, 0x08, 0xc8, 0x09,
|
||||
0xde, 0x00, 0x07, 0x06, 0x9f, 0xcf, 0x6c, 0x09,
|
||||
0x17, 0x02, 0xc8, 0x09, 0xde, 0x00, 0x00, 0x0e,
|
||||
0x0f, 0x00, 0x41, 0x90, 0x9f, 0xde, 0x06, 0x00,
|
||||
0xc8, 0x05, 0x30, 0x50, 0x06, 0x00, 0x9f, 0xc8,
|
||||
0x5a, 0x09, 0x27, 0x0c, 0x02, 0x00, 0xb0, 0x06,
|
||||
0xc0, 0x09, 0xb2, 0x06, 0x27, 0x00, 0xb4, 0x06,
|
||||
0xe7, 0x07, 0x00, 0x00, 0xae, 0x06, 0x27, 0x00,
|
||||
0x80, 0x06, 0x00, 0x1c, 0x06, 0x00, 0x27, 0x00,
|
||||
0xb6, 0x06, 0x41, 0x90, 0x67, 0x50, 0xb0, 0x06,
|
||||
0x0d, 0xc0, 0x67, 0x00, 0x7e, 0x06, 0x27, 0x0c,
|
||||
0x06, 0x00, 0x82, 0x06, 0xe7, 0x07, 0xbc, 0x08,
|
||||
0x84, 0x06, 0xc8, 0x07, 0x7e, 0x06, 0x41, 0x90,
|
||||
0x51, 0xaf, 0x97, 0xcf, 0x9f, 0xaf, 0x48, 0x0c,
|
||||
0xe7, 0x09, 0xb6, 0x06, 0xb4, 0x06, 0xe7, 0x09,
|
||||
0xb0, 0x06, 0xae, 0x06, 0x59, 0xaf, 0x97, 0xcf,
|
||||
0x27, 0x0c, 0x02, 0x00, 0xac, 0x06, 0x59, 0xaf,
|
||||
0x97, 0xcf, 0x09, 0x0c, 0x02, 0x00, 0x09, 0xda,
|
||||
0x49, 0xd2, 0xc9, 0x19, 0xd6, 0x06, 0xc8, 0x07,
|
||||
0x7e, 0x06, 0xe0, 0x07, 0x00, 0x00, 0x60, 0x02,
|
||||
0xe0, 0x07, 0x04, 0x00, 0xd0, 0x07, 0xcc, 0x08,
|
||||
0x48, 0xdb, 0x41, 0x90, 0x50, 0xaf, 0x97, 0xcf,
|
||||
0x59, 0xaf, 0x97, 0xcf, 0x59, 0xaf, 0x97, 0xcf,
|
||||
0xf0, 0x57, 0x06, 0x00, 0x06, 0x00, 0x25, 0xc1,
|
||||
0xe7, 0x07, 0x70, 0x06, 0x80, 0x06, 0x41, 0x90,
|
||||
0x67, 0x00, 0x7e, 0x06, 0x27, 0x0c, 0x06, 0x00,
|
||||
0x82, 0x06, 0xe7, 0x07, 0x8c, 0x09, 0x84, 0x06,
|
||||
0xc8, 0x07, 0x7e, 0x06, 0x41, 0x90, 0x51, 0xaf,
|
||||
0x97, 0xcf, 0x07, 0x0c, 0x06, 0x00, 0xc7, 0x57,
|
||||
0x06, 0x00, 0x0f, 0xc1, 0xc8, 0x07, 0x70, 0x06,
|
||||
0x15, 0xcf, 0x00, 0x0c, 0x02, 0x00, 0x00, 0xda,
|
||||
0x40, 0xd1, 0x27, 0x00, 0xc2, 0x06, 0x1e, 0xcf,
|
||||
0x1d, 0xcf, 0x27, 0x0c, 0x02, 0x00, 0xcc, 0x06,
|
||||
0x19, 0xcf, 0x27, 0x02, 0x20, 0x01, 0xe7, 0x07,
|
||||
0x08, 0x00, 0x22, 0x01, 0xe7, 0x07, 0x13, 0x00,
|
||||
0xb0, 0xc0, 0x97, 0xcf, 0x41, 0x90, 0x67, 0x00,
|
||||
0x7e, 0x06, 0xe7, 0x01, 0x82, 0x06, 0x27, 0x02,
|
||||
0x80, 0x06, 0xe7, 0x07, 0x8c, 0x09, 0x84, 0x06,
|
||||
0xc8, 0x07, 0x7e, 0x06, 0xc1, 0x07, 0x00, 0x80,
|
||||
0x50, 0xaf, 0x97, 0xcf, 0x59, 0xaf, 0x97, 0xcf,
|
||||
0x00, 0x60, 0x05, 0xc0, 0xe7, 0x07, 0x00, 0x00,
|
||||
0xc4, 0x06, 0xa7, 0xcf, 0x7c, 0x06, 0x9f, 0xaf,
|
||||
0x00, 0x0a, 0xe7, 0x07, 0x01, 0x00, 0xc4, 0x06,
|
||||
0x49, 0xaf, 0xd7, 0x09, 0x00, 0xc0, 0x07, 0xaf,
|
||||
0xe7, 0x05, 0x00, 0xc0, 0x4a, 0xaf, 0xa7, 0xcf,
|
||||
0x7c, 0x06, 0xc0, 0x07, 0xfe, 0x7f, 0x44, 0xaf,
|
||||
0x40, 0x00, 0xc0, 0x37, 0x00, 0x01, 0x41, 0x90,
|
||||
0xc0, 0x37, 0x08, 0x00, 0xdf, 0xde, 0x50, 0x06,
|
||||
0xc0, 0x57, 0x10, 0x00, 0x02, 0xc2, 0xc0, 0x07,
|
||||
0x10, 0x00, 0x27, 0x00, 0x9a, 0x06, 0x41, 0x90,
|
||||
0x9f, 0xde, 0x40, 0x06, 0x44, 0xaf, 0x27, 0x00,
|
||||
0x9c, 0x06, 0xc0, 0x09, 0x9a, 0x06, 0x41, 0x90,
|
||||
0x00, 0xd2, 0x00, 0xd8, 0x9f, 0xde, 0x08, 0x00,
|
||||
0x44, 0xaf, 0x27, 0x00, 0xc8, 0x06, 0x97, 0xcf,
|
||||
0xe7, 0x87, 0x00, 0x84, 0x28, 0xc0, 0xe7, 0x67,
|
||||
0xff, 0xfb, 0x24, 0xc0, 0x97, 0xcf, 0xe7, 0x87,
|
||||
0x01, 0x00, 0xd2, 0x06, 0xe7, 0x57, 0x00, 0x00,
|
||||
0xa8, 0x06, 0x97, 0xc1, 0x9f, 0xaf, 0x00, 0x0a,
|
||||
0xe7, 0x87, 0x00, 0x06, 0x22, 0xc0, 0xe7, 0x07,
|
||||
0x00, 0x00, 0x90, 0xc0, 0xe7, 0x67, 0xfe, 0xff,
|
||||
0x3e, 0xc0, 0xe7, 0x07, 0x26, 0x00, 0x0a, 0xc0,
|
||||
0xe7, 0x87, 0x01, 0x00, 0x3e, 0xc0, 0xe7, 0x07,
|
||||
0xff, 0xff, 0xbe, 0x06, 0x9f, 0xaf, 0x10, 0x0b,
|
||||
0x97, 0xcf, 0x17, 0x00, 0xa7, 0xaf, 0x78, 0x06,
|
||||
0xc0, 0x05, 0x27, 0x00, 0x76, 0x06, 0xe7, 0x87,
|
||||
0x01, 0x00, 0xd2, 0x06, 0x9f, 0xaf, 0x00, 0x0a,
|
||||
0xe7, 0x07, 0x0c, 0x00, 0x40, 0xc0, 0x9f, 0xaf,
|
||||
0x10, 0x0b, 0x00, 0x90, 0x27, 0x00, 0xa6, 0x06,
|
||||
0x27, 0x00, 0xaa, 0x06, 0xe7, 0x09, 0xb2, 0x06,
|
||||
0xb4, 0x06, 0x27, 0x00, 0xae, 0x06, 0x27, 0x00,
|
||||
0xac, 0x06, 0x9f, 0xaf, 0xae, 0x0a, 0xc0, 0x07,
|
||||
0x00, 0x00, 0x27, 0x00, 0xb2, 0x02, 0x27, 0x00,
|
||||
0xb4, 0x02, 0x27, 0x00, 0x8e, 0x06, 0xc0, 0x07,
|
||||
0x06, 0x00, 0xc8, 0x09, 0xde, 0x00, 0xc8, 0x17,
|
||||
0x03, 0x00, 0xc9, 0x07, 0x70, 0x06, 0x29, 0x0a,
|
||||
0x00, 0xda, 0x7d, 0xc1, 0x97, 0xcf, 0xd7, 0x09,
|
||||
0x00, 0xc0, 0xc1, 0xdf, 0x00, 0x90, 0x27, 0x00,
|
||||
0x96, 0x06, 0xe7, 0x07, 0x96, 0x06, 0x98, 0x06,
|
||||
0x27, 0x00, 0xa0, 0x06, 0xe7, 0x07, 0xa0, 0x06,
|
||||
0xa2, 0x06, 0x27, 0x00, 0xa6, 0x06, 0x27, 0x00,
|
||||
0x90, 0x06, 0x27, 0x00, 0x9e, 0x06, 0xc8, 0x09,
|
||||
0x9c, 0x06, 0xc1, 0x09, 0x9a, 0x06, 0xc9, 0x07,
|
||||
0xa4, 0x06, 0x11, 0x02, 0x09, 0x02, 0xc8, 0x17,
|
||||
0x40, 0x06, 0x01, 0xda, 0x7a, 0xc1, 0x51, 0x94,
|
||||
0xc8, 0x09, 0xc8, 0x06, 0xc9, 0x07, 0xc6, 0x06,
|
||||
0xc1, 0x09, 0x9a, 0x06, 0x11, 0x02, 0x09, 0x02,
|
||||
0xc8, 0x17, 0x08, 0x00, 0x01, 0xda, 0x7a, 0xc1,
|
||||
0x51, 0x94, 0xe7, 0x05, 0x00, 0xc0, 0x97, 0xcf,
|
||||
0xe7, 0x57, 0x00, 0x00, 0x76, 0x06, 0x97, 0xc0,
|
||||
0x9f, 0xaf, 0x04, 0x00, 0xe7, 0x09, 0xbe, 0x06,
|
||||
0xba, 0x06, 0xe7, 0x57, 0xff, 0xff, 0xba, 0x06,
|
||||
0x04, 0xc1, 0xe7, 0x07, 0x10, 0x0b, 0xb8, 0x06,
|
||||
0x97, 0xcf, 0xe7, 0x17, 0x32, 0x00, 0xba, 0x06,
|
||||
0xe7, 0x67, 0xff, 0x07, 0xba, 0x06, 0xe7, 0x07,
|
||||
0x46, 0x0b, 0xb8, 0x06, 0x97, 0xcf, 0xe7, 0x57,
|
||||
0x00, 0x00, 0xc0, 0x06, 0x23, 0xc0, 0xe7, 0x07,
|
||||
0x04, 0x00, 0x90, 0xc0, 0xe7, 0x07, 0x00, 0x80,
|
||||
0x80, 0xc0, 0xe7, 0x07, 0x00, 0x00, 0x80, 0xc0,
|
||||
0xe7, 0x07, 0x00, 0x80, 0x80, 0xc0, 0xc0, 0x07,
|
||||
0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0xc0, 0x07,
|
||||
0x00, 0x00, 0xe7, 0x07, 0x00, 0x00, 0x80, 0xc0,
|
||||
0xe7, 0x07, 0x00, 0x80, 0x80, 0xc0, 0xe7, 0x07,
|
||||
0x00, 0x80, 0x40, 0xc0, 0xc0, 0x07, 0x00, 0x00,
|
||||
0xe7, 0x07, 0x00, 0x00, 0x40, 0xc0, 0xe7, 0x07,
|
||||
0x00, 0x00, 0x80, 0xc0, 0xe7, 0x07, 0x04, 0x00,
|
||||
0x90, 0xc0, 0xe7, 0x07, 0x00, 0x02, 0x40, 0xc0,
|
||||
0xe7, 0x07, 0x0c, 0x02, 0x40, 0xc0, 0xe7, 0x07,
|
||||
0x00, 0x00, 0xc0, 0x06, 0xe7, 0x07, 0x00, 0x00,
|
||||
0xb8, 0x06, 0xe7, 0x07, 0x00, 0x00, 0xd2, 0x06,
|
||||
0xd7, 0x09, 0x00, 0xc0, 0xc1, 0xdf, 0x9f, 0xaf,
|
||||
0x34, 0x02, 0xe7, 0x05, 0x00, 0xc0, 0x9f, 0xaf,
|
||||
0xc4, 0x01, 0x97, 0xcf, 0xd7, 0x09, 0x00, 0xc0,
|
||||
0x17, 0x00, 0x17, 0x02, 0x97, 0x02, 0xe7, 0x57,
|
||||
0x00, 0x00, 0xa8, 0x06, 0x06, 0xc0, 0xc0, 0x09,
|
||||
0x92, 0xc0, 0xc0, 0x77, 0x09, 0x02, 0x9f, 0xc1,
|
||||
0x5c, 0x05, 0x9f, 0xcf, 0x32, 0x06, 0xd7, 0x09,
|
||||
0x0e, 0xc0, 0xe7, 0x07, 0x00, 0x00, 0x0e, 0xc0,
|
||||
0x9f, 0xaf, 0x02, 0x0c, 0xe7, 0x05, 0x0e, 0xc0,
|
||||
0x97, 0xcf, 0xd7, 0x09, 0x00, 0xc0, 0x17, 0x02,
|
||||
0xc8, 0x09, 0xb0, 0xc0, 0xe7, 0x67, 0xfe, 0x7f,
|
||||
0xb0, 0xc0, 0xc8, 0x77, 0x00, 0x20, 0x9f, 0xc1,
|
||||
0x64, 0xeb, 0xe7, 0x57, 0x00, 0x00, 0xc8, 0x02,
|
||||
0x9f, 0xc1, 0x80, 0xeb, 0xc8, 0x99, 0xca, 0x02,
|
||||
0xc8, 0x67, 0x04, 0x00, 0x9f, 0xc1, 0x96, 0xeb,
|
||||
0x9f, 0xcf, 0x4c, 0xeb, 0xe7, 0x07, 0x00, 0x00,
|
||||
0xa6, 0xc0, 0xe7, 0x09, 0xb0, 0xc0, 0xc8, 0x02,
|
||||
0xe7, 0x07, 0x03, 0x00, 0xb0, 0xc0, 0x97, 0xcf,
|
||||
0xc0, 0x09, 0xb0, 0x06, 0xc0, 0x37, 0x01, 0x00,
|
||||
0x97, 0xc9, 0xc9, 0x09, 0xb2, 0x06, 0x02, 0x00,
|
||||
0x41, 0x90, 0x48, 0x02, 0xc9, 0x17, 0x06, 0x00,
|
||||
0x9f, 0xaf, 0x08, 0x04, 0x9f, 0xa2, 0x72, 0x0c,
|
||||
0x02, 0xda, 0x77, 0xc1, 0x41, 0x60, 0x71, 0xc1,
|
||||
0x97, 0xcf, 0x17, 0x02, 0x57, 0x02, 0x43, 0x04,
|
||||
0x21, 0x04, 0xe0, 0x00, 0x43, 0x04, 0x21, 0x04,
|
||||
0xe0, 0x00, 0x43, 0x04, 0x21, 0x04, 0xe0, 0x00,
|
||||
0xc1, 0x07, 0x01, 0x00, 0xc9, 0x05, 0xc8, 0x05,
|
||||
0x97, 0xcf, 0xe7, 0x07, 0x01, 0x00, 0x8e, 0x06,
|
||||
0xc8, 0x07, 0x86, 0x06, 0xe7, 0x07, 0x00, 0x00,
|
||||
0x86, 0x06, 0xe7, 0x07, 0x10, 0x08, 0x88, 0x06,
|
||||
0xe7, 0x07, 0x04, 0x00, 0x8a, 0x06, 0xe7, 0x07,
|
||||
0xbc, 0x0c, 0x8c, 0x06, 0xc1, 0x07, 0x03, 0x80,
|
||||
0x50, 0xaf, 0x97, 0xcf, 0xe7, 0x07, 0x00, 0x00,
|
||||
0x8e, 0x06, 0x97, 0xcf,
|
||||
0x00, 0x00
|
||||
};
|
||||
|
||||
/****************************************************************
|
||||
* kaweth_new_code_fix
|
||||
****************************************************************/
|
||||
static __u8 kaweth_new_code_fix[] =
|
||||
{
|
||||
0xB6, 0xC3, 0xAA, 0xBB, 0xCC, 0xDD,
|
||||
0x02, 0x00, 0x08, 0x00, 0x28, 0x00, 0x2c, 0x00,
|
||||
0x34, 0x00, 0x3c, 0x00, 0x40, 0x00, 0x48, 0x00,
|
||||
0x54, 0x00, 0x58, 0x00, 0x5e, 0x00, 0x64, 0x00,
|
||||
0x68, 0x00, 0x6e, 0x00, 0x6c, 0x00, 0x72, 0x00,
|
||||
0x76, 0x00, 0x7c, 0x00, 0x80, 0x00, 0x86, 0x00,
|
||||
0x8a, 0x00, 0x90, 0x00, 0x94, 0x00, 0x98, 0x00,
|
||||
0x9e, 0x00, 0xa6, 0x00, 0xaa, 0x00, 0xb0, 0x00,
|
||||
0xb4, 0x00, 0xb8, 0x00, 0xc0, 0x00, 0xc6, 0x00,
|
||||
0xca, 0x00, 0xd0, 0x00, 0xd4, 0x00, 0xd8, 0x00,
|
||||
0xe0, 0x00, 0xde, 0x00, 0xe8, 0x00, 0xf0, 0x00,
|
||||
0xfc, 0x00, 0x04, 0x01, 0x0a, 0x01, 0x18, 0x01,
|
||||
0x22, 0x01, 0x28, 0x01, 0x3a, 0x01, 0x3e, 0x01,
|
||||
0x7e, 0x01, 0x98, 0x01, 0x9c, 0x01, 0xa2, 0x01,
|
||||
0xac, 0x01, 0xb2, 0x01, 0xba, 0x01, 0xc0, 0x01,
|
||||
0xc8, 0x01, 0xd0, 0x01, 0xd6, 0x01, 0xf4, 0x01,
|
||||
0xfc, 0x01, 0x08, 0x02, 0x16, 0x02, 0x1a, 0x02,
|
||||
0x22, 0x02, 0x2a, 0x02, 0x2e, 0x02, 0x3e, 0x02,
|
||||
0x44, 0x02, 0x4a, 0x02, 0x50, 0x02, 0x64, 0x02,
|
||||
0x62, 0x02, 0x6c, 0x02, 0x72, 0x02, 0x86, 0x02,
|
||||
0x8c, 0x02, 0x90, 0x02, 0x9e, 0x02, 0xbc, 0x02,
|
||||
0xd0, 0x02, 0xd8, 0x02, 0xdc, 0x02, 0xe0, 0x02,
|
||||
0xe8, 0x02, 0xe6, 0x02, 0xf4, 0x02, 0xfe, 0x02,
|
||||
0x04, 0x03, 0x0c, 0x03, 0x28, 0x03, 0x7c, 0x03,
|
||||
0x90, 0x03, 0x94, 0x03, 0x9c, 0x03, 0xa2, 0x03,
|
||||
0xc0, 0x03, 0xd0, 0x03, 0xd4, 0x03, 0xee, 0x03,
|
||||
0xfa, 0x03, 0xfe, 0x03, 0x2e, 0x04, 0x32, 0x04,
|
||||
0x3c, 0x04, 0x40, 0x04, 0x4e, 0x04, 0x76, 0x04,
|
||||
0x7c, 0x04, 0x84, 0x04, 0x8a, 0x04, 0x8e, 0x04,
|
||||
0xa6, 0x04, 0xb0, 0x04, 0xb8, 0x04, 0xbe, 0x04,
|
||||
0xd2, 0x04, 0xdc, 0x04, 0xee, 0x04, 0x10, 0x05,
|
||||
0x1a, 0x05, 0x24, 0x05, 0x2a, 0x05, 0x36, 0x05,
|
||||
0x34, 0x05, 0x3c, 0x05, 0x42, 0x05, 0x64, 0x05,
|
||||
0x6a, 0x05, 0x6e, 0x05, 0x86, 0x05, 0x22, 0x06,
|
||||
0x26, 0x06, 0x2c, 0x06, 0x30, 0x06, 0x42, 0x06,
|
||||
0x4a, 0x06, 0x4e, 0x06, 0x56, 0x06, 0x54, 0x06,
|
||||
0x5a, 0x06, 0x60, 0x06, 0x66, 0x06, 0xe8, 0x06,
|
||||
0xee, 0x06, 0xf4, 0x06, 0x16, 0x07, 0x26, 0x07,
|
||||
0x2c, 0x07, 0x32, 0x07, 0x36, 0x07, 0x3a, 0x07,
|
||||
0x3e, 0x07, 0x52, 0x07, 0x56, 0x07, 0x5a, 0x07,
|
||||
0x64, 0x07, 0x76, 0x07, 0x7a, 0x07, 0x80, 0x07,
|
||||
0x84, 0x07, 0x8a, 0x07, 0x9e, 0x07, 0xa2, 0x07,
|
||||
0xda, 0x07, 0xde, 0x07, 0xe2, 0x07, 0xe6, 0x07,
|
||||
0xea, 0x07, 0xee, 0x07, 0xf2, 0x07, 0xf6, 0x07,
|
||||
0x0e, 0x08, 0x16, 0x08, 0x18, 0x08, 0x1a, 0x08,
|
||||
0x1c, 0x08, 0x1e, 0x08, 0x20, 0x08, 0x22, 0x08,
|
||||
0x24, 0x08, 0x26, 0x08, 0x28, 0x08, 0x2a, 0x08,
|
||||
0x2c, 0x08, 0x2e, 0x08, 0x32, 0x08, 0x3a, 0x08,
|
||||
0x46, 0x08, 0x4e, 0x08, 0x54, 0x08, 0x5e, 0x08,
|
||||
0x78, 0x08, 0x7e, 0x08, 0x82, 0x08, 0x86, 0x08,
|
||||
0x8c, 0x08, 0x90, 0x08, 0x98, 0x08, 0x9e, 0x08,
|
||||
0xa4, 0x08, 0xaa, 0x08, 0xb0, 0x08, 0xae, 0x08,
|
||||
0xb4, 0x08, 0xbe, 0x08, 0xc4, 0x08, 0xc2, 0x08,
|
||||
0xca, 0x08, 0xc8, 0x08, 0xd4, 0x08, 0xe4, 0x08,
|
||||
0xe8, 0x08, 0xf6, 0x08, 0x14, 0x09, 0x12, 0x09,
|
||||
0x1a, 0x09, 0x20, 0x09, 0x26, 0x09, 0x24, 0x09,
|
||||
0x2a, 0x09, 0x3e, 0x09, 0x4c, 0x09, 0x56, 0x09,
|
||||
0x70, 0x09, 0x74, 0x09, 0x78, 0x09, 0x7e, 0x09,
|
||||
0x7c, 0x09, 0x82, 0x09, 0x98, 0x09, 0x9c, 0x09,
|
||||
0xa0, 0x09, 0xa6, 0x09, 0xb8, 0x09, 0xdc, 0x09,
|
||||
0xe8, 0x09, 0xec, 0x09, 0xfc, 0x09, 0x12, 0x0a,
|
||||
0x18, 0x0a, 0x1e, 0x0a, 0x42, 0x0a, 0x46, 0x0a,
|
||||
0x4e, 0x0a, 0x54, 0x0a, 0x5a, 0x0a, 0x5e, 0x0a,
|
||||
0x68, 0x0a, 0x6e, 0x0a, 0x72, 0x0a, 0x78, 0x0a,
|
||||
0x76, 0x0a, 0x7c, 0x0a, 0x80, 0x0a, 0x84, 0x0a,
|
||||
0x94, 0x0a, 0xa4, 0x0a, 0xb8, 0x0a, 0xbe, 0x0a,
|
||||
0xbc, 0x0a, 0xc2, 0x0a, 0xc8, 0x0a, 0xc6, 0x0a,
|
||||
0xcc, 0x0a, 0xd0, 0x0a, 0xd4, 0x0a, 0xd8, 0x0a,
|
||||
0xdc, 0x0a, 0xe0, 0x0a, 0xf2, 0x0a, 0xf6, 0x0a,
|
||||
0xfa, 0x0a, 0x14, 0x0b, 0x1a, 0x0b, 0x20, 0x0b,
|
||||
0x1e, 0x0b, 0x26, 0x0b, 0x2e, 0x0b, 0x2c, 0x0b,
|
||||
0x36, 0x0b, 0x3c, 0x0b, 0x42, 0x0b, 0x40, 0x0b,
|
||||
0x4a, 0x0b, 0xaa, 0x0b, 0xb0, 0x0b, 0xb6, 0x0b,
|
||||
0xc0, 0x0b, 0xc8, 0x0b, 0xda, 0x0b, 0xe8, 0x0b,
|
||||
0xec, 0x0b, 0xfa, 0x0b, 0x4a, 0x0c, 0x54, 0x0c,
|
||||
0x62, 0x0c, 0x66, 0x0c, 0x96, 0x0c, 0x9a, 0x0c,
|
||||
0xa0, 0x0c, 0xa6, 0x0c, 0xa4, 0x0c, 0xac, 0x0c,
|
||||
0xb2, 0x0c, 0xb0, 0x0c, 0xc0, 0x0c,
|
||||
0x00, 0x00
|
||||
};
|
||||
|
||||
|
||||
static const int len_kaweth_trigger_code = sizeof(kaweth_trigger_code);
|
||||
static const int len_kaweth_trigger_code_fix = sizeof(kaweth_trigger_code_fix);
|
||||
static const int len_kaweth_new_code = sizeof(kaweth_new_code);
|
||||
static const int len_kaweth_new_code_fix = sizeof(kaweth_new_code_fix);
|
|
@ -560,7 +560,7 @@ static const struct {
|
|||
static void build_wpa_mib(struct atmel_private *priv);
|
||||
static int atmel_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
|
||||
static void atmel_copy_to_card(struct net_device *dev, u16 dest,
|
||||
unsigned char *src, u16 len);
|
||||
const unsigned char *src, u16 len);
|
||||
static void atmel_copy_to_host(struct net_device *dev, unsigned char *dest,
|
||||
u16 src, u16 len);
|
||||
static void atmel_set_gcr(struct net_device *dev, u16 mask);
|
||||
|
@ -3853,7 +3853,7 @@ static int reset_atmel_card(struct net_device *dev)
|
|||
if (priv->card_type == CARD_TYPE_EEPROM) {
|
||||
/* copy in firmware if needed */
|
||||
const struct firmware *fw_entry = NULL;
|
||||
unsigned char *fw;
|
||||
const unsigned char *fw;
|
||||
int len = priv->firmware_length;
|
||||
if (!(fw = priv->firmware)) {
|
||||
if (priv->firmware_type == ATMEL_FW_TYPE_NONE) {
|
||||
|
@ -4120,7 +4120,7 @@ static void atmel_writeAR(struct net_device *dev, u16 data)
|
|||
}
|
||||
|
||||
static void atmel_copy_to_card(struct net_device *dev, u16 dest,
|
||||
unsigned char *src, u16 len)
|
||||
const unsigned char *src, u16 len)
|
||||
{
|
||||
int i;
|
||||
atmel_writeAR(dev, dest);
|
||||
|
|
|
@ -122,7 +122,7 @@ static inline void if_cs_write16(struct if_cs_card *card, uint reg, u16 val)
|
|||
static inline void if_cs_write16_rep(
|
||||
struct if_cs_card *card,
|
||||
uint reg,
|
||||
void *buf,
|
||||
const void *buf,
|
||||
unsigned long count)
|
||||
{
|
||||
if (debug_output)
|
||||
|
|
|
@ -392,7 +392,7 @@ static int if_sdio_prog_helper(struct if_sdio_card *card)
|
|||
unsigned long timeout;
|
||||
u8 *chunk_buffer;
|
||||
u32 chunk_size;
|
||||
u8 *firmware;
|
||||
const u8 *firmware;
|
||||
size_t size;
|
||||
|
||||
lbs_deb_enter(LBS_DEB_SDIO);
|
||||
|
@ -508,7 +508,7 @@ static int if_sdio_prog_real(struct if_sdio_card *card)
|
|||
unsigned long timeout;
|
||||
u8 *chunk_buffer;
|
||||
u32 chunk_size;
|
||||
u8 *firmware;
|
||||
const u8 *firmware;
|
||||
size_t size, req_size;
|
||||
|
||||
lbs_deb_enter(LBS_DEB_SDIO);
|
||||
|
|
|
@ -293,7 +293,7 @@ static void if_usb_disconnect(struct usb_interface *intf)
|
|||
static int if_usb_send_fw_pkt(struct if_usb_card *cardp)
|
||||
{
|
||||
struct fwdata *fwdata = cardp->ep_out_buf;
|
||||
uint8_t *firmware = cardp->fw->data;
|
||||
const uint8_t *firmware = cardp->fw->data;
|
||||
|
||||
/* If we got a CRC failure on the last block, back
|
||||
up and retry it */
|
||||
|
@ -746,7 +746,7 @@ static int if_usb_issue_boot_command(struct if_usb_card *cardp, int ivalue)
|
|||
* len image length
|
||||
* @return 0 or -1
|
||||
*/
|
||||
static int check_fwfile_format(uint8_t *data, uint32_t totlen)
|
||||
static int check_fwfile_format(const uint8_t *data, uint32_t totlen)
|
||||
{
|
||||
uint32_t bincmd, exit;
|
||||
uint32_t blksize, offset, len;
|
||||
|
|
|
@ -376,7 +376,8 @@ static int p54u_upload_firmware_3887(struct ieee80211_hw *dev)
|
|||
const struct firmware *fw_entry = NULL;
|
||||
int err, alen;
|
||||
u8 carry = 0;
|
||||
u8 *buf, *tmp, *data;
|
||||
u8 *buf, *tmp;
|
||||
const u8 *data;
|
||||
unsigned int left, remains, block_size;
|
||||
struct x2_header *hdr;
|
||||
unsigned long timeout;
|
||||
|
@ -523,7 +524,7 @@ static int p54u_upload_firmware_net2280(struct ieee80211_hw *dev)
|
|||
void *buf;
|
||||
__le32 reg;
|
||||
unsigned int remains, offset;
|
||||
u8 *data;
|
||||
const u8 *data;
|
||||
|
||||
buf = kmalloc(512, GFP_KERNEL);
|
||||
if (!buf) {
|
||||
|
|
|
@ -511,8 +511,8 @@ struct rt2x00lib_ops {
|
|||
*/
|
||||
int (*probe_hw) (struct rt2x00_dev *rt2x00dev);
|
||||
char *(*get_firmware_name) (struct rt2x00_dev *rt2x00dev);
|
||||
u16 (*get_firmware_crc) (void *data, const size_t len);
|
||||
int (*load_firmware) (struct rt2x00_dev *rt2x00dev, void *data,
|
||||
u16 (*get_firmware_crc) (const void *data, const size_t len);
|
||||
int (*load_firmware) (struct rt2x00_dev *rt2x00dev, const void *data,
|
||||
const size_t len);
|
||||
|
||||
/*
|
||||
|
|
|
@ -82,7 +82,7 @@ static inline void rt2x00pci_register_write(struct rt2x00_dev *rt2x00dev,
|
|||
static inline void
|
||||
rt2x00pci_register_multiwrite(struct rt2x00_dev *rt2x00dev,
|
||||
const unsigned long offset,
|
||||
void *value, const u16 length)
|
||||
const void *value, const u16 length)
|
||||
{
|
||||
memcpy_toio(rt2x00dev->csr.base + offset, value, length);
|
||||
}
|
||||
|
|
|
@ -915,7 +915,7 @@ static char *rt61pci_get_firmware_name(struct rt2x00_dev *rt2x00dev)
|
|||
return fw_name;
|
||||
}
|
||||
|
||||
static u16 rt61pci_get_firmware_crc(void *data, const size_t len)
|
||||
static u16 rt61pci_get_firmware_crc(const void *data, const size_t len)
|
||||
{
|
||||
u16 crc;
|
||||
|
||||
|
@ -932,7 +932,7 @@ static u16 rt61pci_get_firmware_crc(void *data, const size_t len)
|
|||
return crc;
|
||||
}
|
||||
|
||||
static int rt61pci_load_firmware(struct rt2x00_dev *rt2x00dev, void *data,
|
||||
static int rt61pci_load_firmware(struct rt2x00_dev *rt2x00dev, const void *data,
|
||||
const size_t len)
|
||||
{
|
||||
int i;
|
||||
|
|
|
@ -856,7 +856,7 @@ static char *rt73usb_get_firmware_name(struct rt2x00_dev *rt2x00dev)
|
|||
return FIRMWARE_RT2571;
|
||||
}
|
||||
|
||||
static u16 rt73usb_get_firmware_crc(void *data, const size_t len)
|
||||
static u16 rt73usb_get_firmware_crc(const void *data, const size_t len)
|
||||
{
|
||||
u16 crc;
|
||||
|
||||
|
@ -873,13 +873,13 @@ static u16 rt73usb_get_firmware_crc(void *data, const size_t len)
|
|||
return crc;
|
||||
}
|
||||
|
||||
static int rt73usb_load_firmware(struct rt2x00_dev *rt2x00dev, void *data,
|
||||
static int rt73usb_load_firmware(struct rt2x00_dev *rt2x00dev, const void *data,
|
||||
const size_t len)
|
||||
{
|
||||
unsigned int i;
|
||||
int status;
|
||||
u32 reg;
|
||||
char *ptr = data;
|
||||
const char *ptr = data;
|
||||
char *cache;
|
||||
int buflen;
|
||||
int timeout;
|
||||
|
|
|
@ -49,7 +49,7 @@ MODULE_DEVICE_TABLE(usb, zd1201_table);
|
|||
static int zd1201_fw_upload(struct usb_device *dev, int apfw)
|
||||
{
|
||||
const struct firmware *fw_entry;
|
||||
char *data;
|
||||
const char *data;
|
||||
unsigned long len;
|
||||
int err;
|
||||
unsigned char ret;
|
||||
|
|
|
@ -1093,9 +1093,9 @@ out:
|
|||
* @bytes_to_verify: total bytes to verify
|
||||
*/
|
||||
int asd_verify_flash_seg(struct asd_ha_struct *asd_ha,
|
||||
void *src, u32 dest_offset, u32 bytes_to_verify)
|
||||
const void *src, u32 dest_offset, u32 bytes_to_verify)
|
||||
{
|
||||
u8 *src_buf;
|
||||
const u8 *src_buf;
|
||||
u8 flash_char;
|
||||
int err;
|
||||
u32 nv_offset, reg, i;
|
||||
|
@ -1105,7 +1105,7 @@ int asd_verify_flash_seg(struct asd_ha_struct *asd_ha,
|
|||
|
||||
err = FLASH_OK;
|
||||
nv_offset = dest_offset;
|
||||
src_buf = (u8 *)src;
|
||||
src_buf = (const u8 *)src;
|
||||
for (i = 0; i < bytes_to_verify; i++) {
|
||||
flash_char = asd_read_reg_byte(asd_ha, reg + nv_offset + i);
|
||||
if (flash_char != src_buf[i]) {
|
||||
|
@ -1124,9 +1124,9 @@ int asd_verify_flash_seg(struct asd_ha_struct *asd_ha,
|
|||
* @bytes_to_write: total bytes to write
|
||||
*/
|
||||
int asd_write_flash_seg(struct asd_ha_struct *asd_ha,
|
||||
void *src, u32 dest_offset, u32 bytes_to_write)
|
||||
const void *src, u32 dest_offset, u32 bytes_to_write)
|
||||
{
|
||||
u8 *src_buf;
|
||||
const u8 *src_buf;
|
||||
u32 nv_offset, reg, i;
|
||||
int err;
|
||||
|
||||
|
@ -1153,7 +1153,7 @@ int asd_write_flash_seg(struct asd_ha_struct *asd_ha,
|
|||
return err;
|
||||
}
|
||||
|
||||
src_buf = (u8 *)src;
|
||||
src_buf = (const u8 *)src;
|
||||
for (i = 0; i < bytes_to_write; i++) {
|
||||
/* Setup program command sequence */
|
||||
switch (asd_ha->hw_prof.flash.method) {
|
||||
|
|
|
@ -110,9 +110,9 @@ struct bios_file_header {
|
|||
};
|
||||
|
||||
int asd_verify_flash_seg(struct asd_ha_struct *asd_ha,
|
||||
void *src, u32 dest_offset, u32 bytes_to_verify);
|
||||
const void *src, u32 dest_offset, u32 bytes_to_verify);
|
||||
int asd_write_flash_seg(struct asd_ha_struct *asd_ha,
|
||||
void *src, u32 dest_offset, u32 bytes_to_write);
|
||||
const void *src, u32 dest_offset, u32 bytes_to_write);
|
||||
int asd_chk_write_status(struct asd_ha_struct *asd_ha,
|
||||
u32 sector_addr, u8 erase_flag);
|
||||
int asd_check_flash_type(struct asd_ha_struct *asd_ha);
|
||||
|
|
|
@ -46,7 +46,7 @@
|
|||
static const struct firmware *sequencer_fw;
|
||||
static u16 cseq_vecs[CSEQ_NUM_VECS], lseq_vecs[LSEQ_NUM_VECS], mode2_task,
|
||||
cseq_idle_loop, lseq_idle_loop;
|
||||
static u8 *cseq_code, *lseq_code;
|
||||
static const u8 *cseq_code, *lseq_code;
|
||||
static u32 cseq_code_size, lseq_code_size;
|
||||
|
||||
static u16 first_scb_site_no = 0xFFFF;
|
||||
|
@ -1235,7 +1235,8 @@ int asd_release_firmware(void)
|
|||
static int asd_request_firmware(struct asd_ha_struct *asd_ha)
|
||||
{
|
||||
int err, i;
|
||||
struct sequencer_file_header header, *hdr_ptr;
|
||||
struct sequencer_file_header header;
|
||||
const struct sequencer_file_header *hdr_ptr;
|
||||
u32 csum = 0;
|
||||
u16 *ptr_cseq_vecs, *ptr_lseq_vecs;
|
||||
|
||||
|
@ -1249,7 +1250,7 @@ static int asd_request_firmware(struct asd_ha_struct *asd_ha)
|
|||
if (err)
|
||||
return err;
|
||||
|
||||
hdr_ptr = (struct sequencer_file_header *)sequencer_fw->data;
|
||||
hdr_ptr = (const struct sequencer_file_header *)sequencer_fw->data;
|
||||
|
||||
header.csum = le32_to_cpu(hdr_ptr->csum);
|
||||
header.major = le32_to_cpu(hdr_ptr->major);
|
||||
|
|
|
@ -820,7 +820,7 @@ reschedule:
|
|||
}
|
||||
|
||||
static int cxacru_fw(struct usb_device *usb_dev, enum cxacru_fw_request fw,
|
||||
u8 code1, u8 code2, u32 addr, u8 *data, int size)
|
||||
u8 code1, u8 code2, u32 addr, const u8 *data, int size)
|
||||
{
|
||||
int ret;
|
||||
u8 *buf;
|
||||
|
|
|
@ -579,7 +579,7 @@ MODULE_PARM_DESC(annex,
|
|||
* uea_send_modem_cmd - Send a command for pre-firmware devices.
|
||||
*/
|
||||
static int uea_send_modem_cmd(struct usb_device *usb,
|
||||
u16 addr, u16 size, u8 * buff)
|
||||
u16 addr, u16 size, const u8 *buff)
|
||||
{
|
||||
int ret = -ENOMEM;
|
||||
u8 *xfer_buff;
|
||||
|
@ -604,7 +604,8 @@ static int uea_send_modem_cmd(struct usb_device *usb,
|
|||
static void uea_upload_pre_firmware(const struct firmware *fw_entry, void *context)
|
||||
{
|
||||
struct usb_device *usb = context;
|
||||
u8 *pfw, value;
|
||||
const u8 *pfw;
|
||||
u8 value;
|
||||
u32 crc = 0;
|
||||
int ret, size;
|
||||
|
||||
|
@ -720,7 +721,7 @@ static int uea_load_firmware(struct usb_device *usb, unsigned int ver)
|
|||
/*
|
||||
* Make sure that the DSP code provided is safe to use.
|
||||
*/
|
||||
static int check_dsp_e1(u8 *dsp, unsigned int len)
|
||||
static int check_dsp_e1(const u8 *dsp, unsigned int len)
|
||||
{
|
||||
u8 pagecount, blockcount;
|
||||
u16 blocksize;
|
||||
|
@ -771,7 +772,7 @@ static int check_dsp_e1(u8 *dsp, unsigned int len)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int check_dsp_e4(u8 *dsp, int len)
|
||||
static int check_dsp_e4(const u8 *dsp, int len)
|
||||
{
|
||||
int i;
|
||||
struct l1_code *p = (struct l1_code *) dsp;
|
||||
|
@ -819,7 +820,7 @@ static int check_dsp_e4(u8 *dsp, int len)
|
|||
/*
|
||||
* send data to the idma pipe
|
||||
* */
|
||||
static int uea_idma_write(struct uea_softc *sc, void *data, u32 size)
|
||||
static int uea_idma_write(struct uea_softc *sc, const void *data, u32 size)
|
||||
{
|
||||
int ret = -ENOMEM;
|
||||
u8 *xfer_buff;
|
||||
|
@ -903,7 +904,7 @@ static void uea_load_page_e1(struct work_struct *work)
|
|||
u16 ovl = sc->ovl;
|
||||
struct block_info_e1 bi;
|
||||
|
||||
u8 *p;
|
||||
const u8 *p;
|
||||
u8 pagecount, blockcount;
|
||||
u16 blockaddr, blocksize;
|
||||
u32 pageoffset;
|
||||
|
@ -986,7 +987,7 @@ static void __uea_load_page_e4(struct uea_softc *sc, u8 pageno, int boot)
|
|||
bi.wReserved = cpu_to_be16(UEA_RESERVED);
|
||||
|
||||
do {
|
||||
u8 *blockoffset;
|
||||
const u8 *blockoffset;
|
||||
unsigned int blocksize;
|
||||
|
||||
blockidx = &p->page_header[blockno];
|
||||
|
@ -1095,7 +1096,7 @@ static inline int wait_cmv_ack(struct uea_softc *sc)
|
|||
#define UCDC_SEND_ENCAPSULATED_COMMAND 0x00
|
||||
|
||||
static int uea_request(struct uea_softc *sc,
|
||||
u16 value, u16 index, u16 size, void *data)
|
||||
u16 value, u16 index, u16 size, const void *data)
|
||||
{
|
||||
u8 *xfer_buff;
|
||||
int ret = -ENOMEM;
|
||||
|
@ -1891,7 +1892,8 @@ static int load_XILINX_firmware(struct uea_softc *sc)
|
|||
{
|
||||
const struct firmware *fw_entry;
|
||||
int ret, size, u, ln;
|
||||
u8 *pfw, value;
|
||||
const u8 *pfw;
|
||||
u8 value;
|
||||
char *fw_name = FW_DIR "930-fpga.bin";
|
||||
|
||||
uea_enters(INS_TO_USBDEV(sc));
|
||||
|
|
|
@ -16,18 +16,8 @@
|
|||
#include <linux/init.h>
|
||||
#include <linux/usb.h>
|
||||
#include <linux/delay.h>
|
||||
|
||||
#define MAX_INTEL_HEX_RECORD_LENGTH 16
|
||||
typedef struct _INTEL_HEX_RECORD
|
||||
{
|
||||
__u32 length;
|
||||
__u32 address;
|
||||
__u32 type;
|
||||
__u8 data[MAX_INTEL_HEX_RECORD_LENGTH];
|
||||
} INTEL_HEX_RECORD, *PINTEL_HEX_RECORD;
|
||||
|
||||
/* include firmware (variables) */
|
||||
#include "emi26_fw.h"
|
||||
#include <linux/firmware.h>
|
||||
#include <linux/ihex.h>
|
||||
|
||||
#define EMI26_VENDOR_ID 0x086a /* Emagic Soft-und Hardware GmBH */
|
||||
#define EMI26_PRODUCT_ID 0x0100 /* EMI 2|6 without firmware */
|
||||
|
@ -40,7 +30,9 @@ typedef struct _INTEL_HEX_RECORD
|
|||
#define CPUCS_REG 0x7F92 /* EZ-USB Control and Status Register. Bit 0 controls 8051 reset */
|
||||
#define INTERNAL_RAM(address) (address <= MAX_INTERNAL_ADDRESS)
|
||||
|
||||
static int emi26_writememory( struct usb_device *dev, int address, unsigned char *data, int length, __u8 bRequest);
|
||||
static int emi26_writememory( struct usb_device *dev, int address,
|
||||
const unsigned char *data, int length,
|
||||
__u8 bRequest);
|
||||
static int emi26_set_reset(struct usb_device *dev, unsigned char reset_bit);
|
||||
static int emi26_load_firmware (struct usb_device *dev);
|
||||
static int emi26_probe(struct usb_interface *intf, const struct usb_device_id *id);
|
||||
|
@ -50,7 +42,9 @@ static void __exit emi26_exit (void);
|
|||
|
||||
|
||||
/* thanks to drivers/usb/serial/keyspan_pda.c code */
|
||||
static int emi26_writememory (struct usb_device *dev, int address, unsigned char *data, int length, __u8 request)
|
||||
static int emi26_writememory (struct usb_device *dev, int address,
|
||||
const unsigned char *data, int length,
|
||||
__u8 request)
|
||||
{
|
||||
int result;
|
||||
unsigned char *buffer = kmemdup(data, length, GFP_KERNEL);
|
||||
|
@ -83,9 +77,12 @@ static int emi26_set_reset (struct usb_device *dev, unsigned char reset_bit)
|
|||
|
||||
static int emi26_load_firmware (struct usb_device *dev)
|
||||
{
|
||||
const struct firmware *loader_fw = NULL;
|
||||
const struct firmware *bitstream_fw = NULL;
|
||||
const struct firmware *firmware_fw = NULL;
|
||||
const struct ihex_binrec *rec;
|
||||
int err;
|
||||
int i;
|
||||
int pos = 0; /* Position in hex record */
|
||||
__u32 addr; /* Address to write */
|
||||
__u8 *buf;
|
||||
|
||||
|
@ -96,6 +93,23 @@ static int emi26_load_firmware (struct usb_device *dev)
|
|||
goto wraperr;
|
||||
}
|
||||
|
||||
err = request_ihex_firmware(&loader_fw, "emi26/loader.fw", &dev->dev);
|
||||
if (err)
|
||||
goto nofw;
|
||||
|
||||
err = request_ihex_firmware(&bitstream_fw, "emi26/bitstream.fw",
|
||||
&dev->dev);
|
||||
if (err)
|
||||
goto nofw;
|
||||
|
||||
err = request_ihex_firmware(&firmware_fw, "emi26/firmware.fw",
|
||||
&dev->dev);
|
||||
if (err) {
|
||||
nofw:
|
||||
err( "%s - request_firmware() failed", __func__);
|
||||
goto wraperr;
|
||||
}
|
||||
|
||||
/* Assert reset (stop the CPU in the EMI) */
|
||||
err = emi26_set_reset(dev,1);
|
||||
if (err < 0) {
|
||||
|
@ -103,13 +117,17 @@ static int emi26_load_firmware (struct usb_device *dev)
|
|||
goto wraperr;
|
||||
}
|
||||
|
||||
rec = (const struct ihex_binrec *)loader_fw->data;
|
||||
/* 1. We need to put the loader for the FPGA into the EZ-USB */
|
||||
for (i=0; g_Loader[i].type == 0; i++) {
|
||||
err = emi26_writememory(dev, g_Loader[i].address, g_Loader[i].data, g_Loader[i].length, ANCHOR_LOAD_INTERNAL);
|
||||
while (rec) {
|
||||
err = emi26_writememory(dev, be32_to_cpu(rec->addr),
|
||||
rec->data, be16_to_cpu(rec->len),
|
||||
ANCHOR_LOAD_INTERNAL);
|
||||
if (err < 0) {
|
||||
err("%s - error loading firmware: error = %d", __func__, err);
|
||||
goto wraperr;
|
||||
}
|
||||
rec = ihex_next_binrec(rec);
|
||||
}
|
||||
|
||||
/* De-assert reset (let the CPU run) */
|
||||
|
@ -123,15 +141,16 @@ static int emi26_load_firmware (struct usb_device *dev)
|
|||
/* 2. We upload the FPGA firmware into the EMI
|
||||
* Note: collect up to 1023 (yes!) bytes and send them with
|
||||
* a single request. This is _much_ faster! */
|
||||
rec = (const struct ihex_binrec *)bitstream_fw->data;
|
||||
do {
|
||||
i = 0;
|
||||
addr = g_bitstream[pos].address;
|
||||
addr = be32_to_cpu(rec->addr);
|
||||
|
||||
/* intel hex records are terminated with type 0 element */
|
||||
while ((g_bitstream[pos].type == 0) && (i + g_bitstream[pos].length < FW_LOAD_SIZE)) {
|
||||
memcpy(buf + i, g_bitstream[pos].data, g_bitstream[pos].length);
|
||||
i += g_bitstream[pos].length;
|
||||
pos++;
|
||||
while (rec && (i + be16_to_cpu(rec->len) < FW_LOAD_SIZE)) {
|
||||
memcpy(buf + i, rec->data, be16_to_cpu(rec->len));
|
||||
i += be16_to_cpu(rec->len);
|
||||
rec = ihex_next_binrec(rec);
|
||||
}
|
||||
err = emi26_writememory(dev, addr, buf, i, ANCHOR_LOAD_FPGA);
|
||||
if (err < 0) {
|
||||
|
@ -148,8 +167,11 @@ static int emi26_load_firmware (struct usb_device *dev)
|
|||
}
|
||||
|
||||
/* 3. We need to put the loader for the firmware into the EZ-USB (again...) */
|
||||
for (i=0; g_Loader[i].type == 0; i++) {
|
||||
err = emi26_writememory(dev, g_Loader[i].address, g_Loader[i].data, g_Loader[i].length, ANCHOR_LOAD_INTERNAL);
|
||||
for (rec = (const struct ihex_binrec *)loader_fw->data;
|
||||
rec; rec = ihex_next_binrec(rec)) {
|
||||
err = emi26_writememory(dev, be32_to_cpu(rec->addr),
|
||||
rec->data, be16_to_cpu(rec->len),
|
||||
ANCHOR_LOAD_INTERNAL);
|
||||
if (err < 0) {
|
||||
err("%s - error loading firmware: error = %d", __func__, err);
|
||||
goto wraperr;
|
||||
|
@ -165,9 +187,13 @@ static int emi26_load_firmware (struct usb_device *dev)
|
|||
}
|
||||
|
||||
/* 4. We put the part of the firmware that lies in the external RAM into the EZ-USB */
|
||||
for (i=0; g_Firmware[i].type == 0; i++) {
|
||||
if (!INTERNAL_RAM(g_Firmware[i].address)) {
|
||||
err = emi26_writememory(dev, g_Firmware[i].address, g_Firmware[i].data, g_Firmware[i].length, ANCHOR_LOAD_EXTERNAL);
|
||||
|
||||
for (rec = (const struct ihex_binrec *)firmware_fw->data;
|
||||
rec; rec = ihex_next_binrec(rec)) {
|
||||
if (!INTERNAL_RAM(be32_to_cpu(rec->addr))) {
|
||||
err = emi26_writememory(dev, be32_to_cpu(rec->addr),
|
||||
rec->data, be16_to_cpu(rec->len),
|
||||
ANCHOR_LOAD_EXTERNAL);
|
||||
if (err < 0) {
|
||||
err("%s - error loading firmware: error = %d", __func__, err);
|
||||
goto wraperr;
|
||||
|
@ -182,9 +208,12 @@ static int emi26_load_firmware (struct usb_device *dev)
|
|||
goto wraperr;
|
||||
}
|
||||
|
||||
for (i=0; g_Firmware[i].type == 0; i++) {
|
||||
if (INTERNAL_RAM(g_Firmware[i].address)) {
|
||||
err = emi26_writememory(dev, g_Firmware[i].address, g_Firmware[i].data, g_Firmware[i].length, ANCHOR_LOAD_INTERNAL);
|
||||
for (rec = (const struct ihex_binrec *)firmware_fw->data;
|
||||
rec; rec = ihex_next_binrec(rec)) {
|
||||
if (INTERNAL_RAM(be32_to_cpu(rec->addr))) {
|
||||
err = emi26_writememory(dev, be32_to_cpu(rec->addr),
|
||||
rec->data, be16_to_cpu(rec->len),
|
||||
ANCHOR_LOAD_INTERNAL);
|
||||
if (err < 0) {
|
||||
err("%s - error loading firmware: error = %d", __func__, err);
|
||||
goto wraperr;
|
||||
|
@ -205,6 +234,10 @@ static int emi26_load_firmware (struct usb_device *dev)
|
|||
err = 1;
|
||||
|
||||
wraperr:
|
||||
release_firmware(loader_fw);
|
||||
release_firmware(bitstream_fw);
|
||||
release_firmware(firmware_fw);
|
||||
|
||||
kfree(buf);
|
||||
return err;
|
||||
}
|
||||
|
@ -257,5 +290,8 @@ MODULE_AUTHOR("Tapio Laxström");
|
|||
MODULE_DESCRIPTION("Emagic EMI 2|6 firmware loader.");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
MODULE_FIRMWARE("emi26/loader.fw");
|
||||
MODULE_FIRMWARE("emi26/bitstream.fw");
|
||||
MODULE_FIRMWARE("emi26/firmware.fw");
|
||||
/* vi:ai:syntax=c:sw=8:ts=8:tw=80
|
||||
*/
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -16,15 +16,8 @@
|
|||
#include <linux/module.h>
|
||||
#include <linux/usb.h>
|
||||
#include <linux/delay.h>
|
||||
|
||||
#define MAX_INTEL_HEX_RECORD_LENGTH 16
|
||||
typedef struct _INTEL_HEX_RECORD
|
||||
{
|
||||
__u32 length;
|
||||
__u32 address;
|
||||
__u32 type;
|
||||
__u8 data[MAX_INTEL_HEX_RECORD_LENGTH];
|
||||
} INTEL_HEX_RECORD, *PINTEL_HEX_RECORD;
|
||||
#include <linux/firmware.h>
|
||||
#include <linux/ihex.h>
|
||||
|
||||
/* include firmware (variables)*/
|
||||
|
||||
|
@ -33,9 +26,9 @@ typedef struct _INTEL_HEX_RECORD
|
|||
//#undef SPDIF /* if you want MIDI uncomment this line */
|
||||
|
||||
#ifdef SPDIF
|
||||
# include "emi62_fw_s.h" /* spdif fw */
|
||||
#define FIRMWARE_FW "emi62/spdif.fw"
|
||||
#else
|
||||
# include "emi62_fw_m.h" /* midi fw */
|
||||
#define FIRMWARE_FW "emi62/midi.fw"
|
||||
#endif
|
||||
|
||||
#define EMI62_VENDOR_ID 0x086a /* Emagic Soft-und Hardware GmBH */
|
||||
|
@ -48,7 +41,9 @@ typedef struct _INTEL_HEX_RECORD
|
|||
#define CPUCS_REG 0x7F92 /* EZ-USB Control and Status Register. Bit 0 controls 8051 reset */
|
||||
#define INTERNAL_RAM(address) (address <= MAX_INTERNAL_ADDRESS)
|
||||
|
||||
static int emi62_writememory( struct usb_device *dev, int address, unsigned char *data, int length, __u8 bRequest);
|
||||
static int emi62_writememory(struct usb_device *dev, int address,
|
||||
const unsigned char *data, int length,
|
||||
__u8 bRequest);
|
||||
static int emi62_set_reset(struct usb_device *dev, unsigned char reset_bit);
|
||||
static int emi62_load_firmware (struct usb_device *dev);
|
||||
static int emi62_probe(struct usb_interface *intf, const struct usb_device_id *id);
|
||||
|
@ -58,7 +53,9 @@ static void __exit emi62_exit (void);
|
|||
|
||||
|
||||
/* thanks to drivers/usb/serial/keyspan_pda.c code */
|
||||
static int emi62_writememory (struct usb_device *dev, int address, unsigned char *data, int length, __u8 request)
|
||||
static int emi62_writememory(struct usb_device *dev, int address,
|
||||
const unsigned char *data, int length,
|
||||
__u8 request)
|
||||
{
|
||||
int result;
|
||||
unsigned char *buffer = kmemdup(data, length, GFP_KERNEL);
|
||||
|
@ -91,9 +88,12 @@ static int emi62_set_reset (struct usb_device *dev, unsigned char reset_bit)
|
|||
|
||||
static int emi62_load_firmware (struct usb_device *dev)
|
||||
{
|
||||
const struct firmware *loader_fw = NULL;
|
||||
const struct firmware *bitstream_fw = NULL;
|
||||
const struct firmware *firmware_fw = NULL;
|
||||
const struct ihex_binrec *rec;
|
||||
int err;
|
||||
int i;
|
||||
int pos = 0; /* Position in hex record */
|
||||
__u32 addr; /* Address to write */
|
||||
__u8 *buf;
|
||||
|
||||
|
@ -105,6 +105,22 @@ static int emi62_load_firmware (struct usb_device *dev)
|
|||
goto wraperr;
|
||||
}
|
||||
|
||||
err = request_ihex_firmware(&loader_fw, "emi62/loader.fw", &dev->dev);
|
||||
if (err)
|
||||
goto nofw;
|
||||
|
||||
err = request_ihex_firmware(&bitstream_fw, "emi62/bitstream.fw",
|
||||
&dev->dev);
|
||||
if (err)
|
||||
goto nofw;
|
||||
|
||||
err = request_ihex_firmware(&firmware_fw, FIRMWARE_FW, &dev->dev);
|
||||
if (err) {
|
||||
nofw:
|
||||
err( "%s - request_firmware() failed", __func__);
|
||||
goto wraperr;
|
||||
}
|
||||
|
||||
/* Assert reset (stop the CPU in the EMI) */
|
||||
err = emi62_set_reset(dev,1);
|
||||
if (err < 0) {
|
||||
|
@ -112,13 +128,18 @@ static int emi62_load_firmware (struct usb_device *dev)
|
|||
goto wraperr;
|
||||
}
|
||||
|
||||
rec = (const struct ihex_binrec *)loader_fw->data;
|
||||
|
||||
/* 1. We need to put the loader for the FPGA into the EZ-USB */
|
||||
for (i=0; g_emi62_loader[i].type == 0; i++) {
|
||||
err = emi62_writememory(dev, g_emi62_loader[i].address, g_emi62_loader[i].data, g_emi62_loader[i].length, ANCHOR_LOAD_INTERNAL);
|
||||
while (rec) {
|
||||
err = emi62_writememory(dev, be32_to_cpu(rec->addr),
|
||||
rec->data, be16_to_cpu(rec->len),
|
||||
ANCHOR_LOAD_INTERNAL);
|
||||
if (err < 0) {
|
||||
err("%s - error loading firmware: error = %d", __func__, err);
|
||||
goto wraperr;
|
||||
}
|
||||
rec = ihex_next_binrec(rec);
|
||||
}
|
||||
|
||||
/* De-assert reset (let the CPU run) */
|
||||
|
@ -132,15 +153,16 @@ static int emi62_load_firmware (struct usb_device *dev)
|
|||
/* 2. We upload the FPGA firmware into the EMI
|
||||
* Note: collect up to 1023 (yes!) bytes and send them with
|
||||
* a single request. This is _much_ faster! */
|
||||
rec = (const struct ihex_binrec *)bitstream_fw->data;
|
||||
do {
|
||||
i = 0;
|
||||
addr = g_emi62bs[pos].address;
|
||||
addr = be32_to_cpu(rec->addr);
|
||||
|
||||
/* intel hex records are terminated with type 0 element */
|
||||
while ((g_emi62bs[pos].type == 0) && (i + g_emi62bs[pos].length < FW_LOAD_SIZE)) {
|
||||
memcpy(buf + i, g_emi62bs[pos].data, g_emi62bs[pos].length);
|
||||
i += g_emi62bs[pos].length;
|
||||
pos++;
|
||||
while (rec && (i + be16_to_cpu(rec->len) < FW_LOAD_SIZE)) {
|
||||
memcpy(buf + i, rec->data, be16_to_cpu(rec->len));
|
||||
i += be16_to_cpu(rec->len);
|
||||
rec = ihex_next_binrec(rec);
|
||||
}
|
||||
err = emi62_writememory(dev, addr, buf, i, ANCHOR_LOAD_FPGA);
|
||||
if (err < 0) {
|
||||
|
@ -157,8 +179,11 @@ static int emi62_load_firmware (struct usb_device *dev)
|
|||
}
|
||||
|
||||
/* 3. We need to put the loader for the firmware into the EZ-USB (again...) */
|
||||
for (i=0; g_emi62_loader[i].type == 0; i++) {
|
||||
err = emi62_writememory(dev, g_emi62_loader[i].address, g_emi62_loader[i].data, g_emi62_loader[i].length, ANCHOR_LOAD_INTERNAL);
|
||||
for (rec = (const struct ihex_binrec *)loader_fw->data;
|
||||
rec; rec = ihex_next_binrec(rec)) {
|
||||
err = emi62_writememory(dev, be32_to_cpu(rec->addr),
|
||||
rec->data, be16_to_cpu(rec->len),
|
||||
ANCHOR_LOAD_INTERNAL);
|
||||
if (err < 0) {
|
||||
err("%s - error loading firmware: error = %d", __func__, err);
|
||||
goto wraperr;
|
||||
|
@ -175,29 +200,19 @@ static int emi62_load_firmware (struct usb_device *dev)
|
|||
|
||||
/* 4. We put the part of the firmware that lies in the external RAM into the EZ-USB */
|
||||
|
||||
/* FIXME: quick and dirty ifdefs */
|
||||
#ifdef SPDIF
|
||||
for (i=0; g_HexSpdifFw62[i].type == 0; i++) {
|
||||
if (!INTERNAL_RAM(g_HexSpdifFw62[i].address)) {
|
||||
err = emi62_writememory(dev, g_HexSpdifFw62[i].address, g_HexSpdifFw62[i].data, g_HexSpdifFw62[i].length, ANCHOR_LOAD_EXTERNAL);
|
||||
for (rec = (const struct ihex_binrec *)firmware_fw->data;
|
||||
rec; rec = ihex_next_binrec(rec)) {
|
||||
if (!INTERNAL_RAM(be32_to_cpu(rec->addr))) {
|
||||
err = emi62_writememory(dev, be32_to_cpu(rec->addr),
|
||||
rec->data, be16_to_cpu(rec->len),
|
||||
ANCHOR_LOAD_EXTERNAL);
|
||||
if (err < 0) {
|
||||
err("%s - error loading firmware: error = %d", __func__, err);
|
||||
goto wraperr;
|
||||
}
|
||||
}
|
||||
}
|
||||
#else /* MIDI */
|
||||
for (i=0; g_HexMidiFw62[i].type == 0; i++) {
|
||||
if (!INTERNAL_RAM(g_HexMidiFw62[i].address)) {
|
||||
err = emi62_writememory(dev, g_HexMidiFw62[i].address, g_HexMidiFw62[i].data, g_HexMidiFw62[i].length, ANCHOR_LOAD_EXTERNAL);
|
||||
if (err < 0) {
|
||||
err("%s - error loading firmware: error = %d\n", __func__, err);
|
||||
goto wraperr;
|
||||
return err;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Assert reset (stop the CPU in the EMI) */
|
||||
err = emi62_set_reset(dev,1);
|
||||
if (err < 0) {
|
||||
|
@ -205,29 +220,19 @@ static int emi62_load_firmware (struct usb_device *dev)
|
|||
goto wraperr;
|
||||
}
|
||||
|
||||
/* FIXME: quick and dirty ifdefs */
|
||||
#ifdef SPDIF
|
||||
for (i=0; g_HexSpdifFw62[i].type == 0; i++) {
|
||||
if (INTERNAL_RAM(g_HexSpdifFw62[i].address)) {
|
||||
err = emi62_writememory(dev, g_HexSpdifFw62[i].address, g_HexSpdifFw62[i].data, g_HexSpdifFw62[i].length, ANCHOR_LOAD_INTERNAL);
|
||||
for (rec = (const struct ihex_binrec *)firmware_fw->data;
|
||||
rec; rec = ihex_next_binrec(rec)) {
|
||||
if (INTERNAL_RAM(be32_to_cpu(rec->addr))) {
|
||||
err = emi62_writememory(dev, be32_to_cpu(rec->addr),
|
||||
rec->data, be16_to_cpu(rec->len),
|
||||
ANCHOR_LOAD_EXTERNAL);
|
||||
if (err < 0) {
|
||||
err("%s - error loading firmware: error = %d", __func__, err);
|
||||
goto wraperr;
|
||||
}
|
||||
}
|
||||
}
|
||||
#else /* MIDI */
|
||||
for (i=0; g_HexMidiFw62[i].type == 0; i++) {
|
||||
if (INTERNAL_RAM(g_HexMidiFw62[i].address)) {
|
||||
err = emi62_writememory(dev, g_HexMidiFw62[i].address, g_HexMidiFw62[i].data, g_HexMidiFw62[i].length, ANCHOR_LOAD_INTERNAL);
|
||||
if (err < 0) {
|
||||
err("%s - error loading firmware: error = %d\n", __func__, err);
|
||||
goto wraperr;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/* De-assert reset (let the CPU run) */
|
||||
err = emi62_set_reset(dev,0);
|
||||
if (err < 0) {
|
||||
|
@ -236,6 +241,10 @@ static int emi62_load_firmware (struct usb_device *dev)
|
|||
}
|
||||
msleep(250); /* let device settle */
|
||||
|
||||
release_firmware(loader_fw);
|
||||
release_firmware(bitstream_fw);
|
||||
release_firmware(firmware_fw);
|
||||
|
||||
kfree(buf);
|
||||
|
||||
/* return 1 to fail the driver inialization
|
||||
|
@ -243,6 +252,10 @@ static int emi62_load_firmware (struct usb_device *dev)
|
|||
return 1;
|
||||
|
||||
wraperr:
|
||||
release_firmware(loader_fw);
|
||||
release_firmware(bitstream_fw);
|
||||
release_firmware(firmware_fw);
|
||||
|
||||
kfree(buf);
|
||||
dev_err(&dev->dev, "Error\n");
|
||||
return err;
|
||||
|
@ -300,5 +313,8 @@ MODULE_AUTHOR("Tapio Laxström");
|
|||
MODULE_DESCRIPTION("Emagic EMI 6|2m firmware loader.");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
MODULE_FIRMWARE("emi62/loader.fw");
|
||||
MODULE_FIRMWARE("emi62/bitstream.fw");
|
||||
MODULE_FIRMWARE(FIRMWARE_FW);
|
||||
/* vi:ai:syntax=c:sw=8:ts=8:tw=80
|
||||
*/
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -41,7 +41,7 @@ static int isight_firmware_load(struct usb_interface *intf,
|
|||
const struct firmware *firmware;
|
||||
unsigned char *buf = kmalloc(50, GFP_KERNEL);
|
||||
unsigned char data[4];
|
||||
u8 *ptr;
|
||||
const u8 *ptr;
|
||||
|
||||
if (!buf)
|
||||
return -ENOMEM;
|
||||
|
|
|
@ -304,19 +304,19 @@ config USB_SERIAL_KEYSPAN
|
|||
|
||||
config USB_SERIAL_KEYSPAN_MPR
|
||||
bool "USB Keyspan MPR Firmware"
|
||||
depends on USB_SERIAL_KEYSPAN
|
||||
depends on USB_SERIAL_KEYSPAN && FIRMWARE_IN_KERNEL
|
||||
help
|
||||
Say Y here to include firmware for the Keyspan MPR converter.
|
||||
|
||||
config USB_SERIAL_KEYSPAN_USA28
|
||||
bool "USB Keyspan USA-28 Firmware"
|
||||
depends on USB_SERIAL_KEYSPAN
|
||||
depends on USB_SERIAL_KEYSPAN && FIRMWARE_IN_KERNEL
|
||||
help
|
||||
Say Y here to include firmware for the USA-28 converter.
|
||||
|
||||
config USB_SERIAL_KEYSPAN_USA28X
|
||||
bool "USB Keyspan USA-28X Firmware"
|
||||
depends on USB_SERIAL_KEYSPAN
|
||||
depends on USB_SERIAL_KEYSPAN && FIRMWARE_IN_KERNEL
|
||||
help
|
||||
Say Y here to include firmware for the USA-28X converter.
|
||||
Be sure you have a USA-28X, there are also 28XA and 28XB
|
||||
|
@ -324,7 +324,7 @@ config USB_SERIAL_KEYSPAN_USA28X
|
|||
|
||||
config USB_SERIAL_KEYSPAN_USA28XA
|
||||
bool "USB Keyspan USA-28XA Firmware"
|
||||
depends on USB_SERIAL_KEYSPAN
|
||||
depends on USB_SERIAL_KEYSPAN && FIRMWARE_IN_KERNEL
|
||||
help
|
||||
Say Y here to include firmware for the USA-28XA converter.
|
||||
Be sure you have a USA-28XA, there are also 28X and 28XB
|
||||
|
@ -332,7 +332,7 @@ config USB_SERIAL_KEYSPAN_USA28XA
|
|||
|
||||
config USB_SERIAL_KEYSPAN_USA28XB
|
||||
bool "USB Keyspan USA-28XB Firmware"
|
||||
depends on USB_SERIAL_KEYSPAN
|
||||
depends on USB_SERIAL_KEYSPAN && FIRMWARE_IN_KERNEL
|
||||
help
|
||||
Say Y here to include firmware for the USA-28XB converter.
|
||||
Be sure you have a USA-28XB, there are also 28X and 28XA
|
||||
|
@ -340,43 +340,43 @@ config USB_SERIAL_KEYSPAN_USA28XB
|
|||
|
||||
config USB_SERIAL_KEYSPAN_USA19
|
||||
bool "USB Keyspan USA-19 Firmware"
|
||||
depends on USB_SERIAL_KEYSPAN
|
||||
depends on USB_SERIAL_KEYSPAN && FIRMWARE_IN_KERNEL
|
||||
help
|
||||
Say Y here to include firmware for the USA-19 converter.
|
||||
|
||||
config USB_SERIAL_KEYSPAN_USA18X
|
||||
bool "USB Keyspan USA-18X Firmware"
|
||||
depends on USB_SERIAL_KEYSPAN
|
||||
depends on USB_SERIAL_KEYSPAN && FIRMWARE_IN_KERNEL
|
||||
help
|
||||
Say Y here to include firmware for the USA-18X converter.
|
||||
|
||||
config USB_SERIAL_KEYSPAN_USA19W
|
||||
bool "USB Keyspan USA-19W Firmware"
|
||||
depends on USB_SERIAL_KEYSPAN
|
||||
depends on USB_SERIAL_KEYSPAN && FIRMWARE_IN_KERNEL
|
||||
help
|
||||
Say Y here to include firmware for the USA-19W converter.
|
||||
|
||||
config USB_SERIAL_KEYSPAN_USA19QW
|
||||
bool "USB Keyspan USA-19QW Firmware"
|
||||
depends on USB_SERIAL_KEYSPAN
|
||||
depends on USB_SERIAL_KEYSPAN && FIRMWARE_IN_KERNEL
|
||||
help
|
||||
Say Y here to include firmware for the USA-19QW converter.
|
||||
|
||||
config USB_SERIAL_KEYSPAN_USA19QI
|
||||
bool "USB Keyspan USA-19QI Firmware"
|
||||
depends on USB_SERIAL_KEYSPAN
|
||||
depends on USB_SERIAL_KEYSPAN && FIRMWARE_IN_KERNEL
|
||||
help
|
||||
Say Y here to include firmware for the USA-19QI converter.
|
||||
|
||||
config USB_SERIAL_KEYSPAN_USA49W
|
||||
bool "USB Keyspan USA-49W Firmware"
|
||||
depends on USB_SERIAL_KEYSPAN
|
||||
depends on USB_SERIAL_KEYSPAN && FIRMWARE_IN_KERNEL
|
||||
help
|
||||
Say Y here to include firmware for the USA-49W converter.
|
||||
|
||||
config USB_SERIAL_KEYSPAN_USA49WLC
|
||||
bool "USB Keyspan USA-49WLC Firmware"
|
||||
depends on USB_SERIAL_KEYSPAN
|
||||
depends on USB_SERIAL_KEYSPAN && FIRMWARE_IN_KERNEL
|
||||
help
|
||||
Say Y here to include firmware for the USA-49WLC converter.
|
||||
|
||||
|
|
|
@ -42,6 +42,8 @@
|
|||
#include <linux/serial.h>
|
||||
#include <linux/ioctl.h>
|
||||
#include <linux/wait.h>
|
||||
#include <linux/firmware.h>
|
||||
#include <linux/ihex.h>
|
||||
#include <asm/uaccess.h>
|
||||
#include <linux/usb.h>
|
||||
#include <linux/usb/serial.h>
|
||||
|
@ -56,26 +58,6 @@
|
|||
#define DRIVER_AUTHOR "Greg Kroah-Hartman <greg@kroah.com> and David Iacovelli"
|
||||
#define DRIVER_DESC "Edgeport USB Serial Driver"
|
||||
|
||||
/* First, the latest boot code - for first generation edgeports */
|
||||
#define IMAGE_ARRAY_NAME BootCodeImage_GEN1
|
||||
#define IMAGE_VERSION_NAME BootCodeImageVersion_GEN1
|
||||
#include "io_fw_boot.h" /* the bootloader firmware to download to a device, if it needs it */
|
||||
|
||||
/* for second generation edgeports */
|
||||
#define IMAGE_ARRAY_NAME BootCodeImage_GEN2
|
||||
#define IMAGE_VERSION_NAME BootCodeImageVersion_GEN2
|
||||
#include "io_fw_boot2.h" /* the bootloader firmware to download to a device, if it needs it */
|
||||
|
||||
/* Then finally the main run-time operational code - for first generation edgeports */
|
||||
#define IMAGE_ARRAY_NAME OperationalCodeImage_GEN1
|
||||
#define IMAGE_VERSION_NAME OperationalCodeImageVersion_GEN1
|
||||
#include "io_fw_down.h" /* Define array OperationalCodeImage[] */
|
||||
|
||||
/* for second generation edgeports */
|
||||
#define IMAGE_ARRAY_NAME OperationalCodeImage_GEN2
|
||||
#define IMAGE_VERSION_NAME OperationalCodeImageVersion_GEN2
|
||||
#include "io_fw_down2.h" /* Define array OperationalCodeImage[] */
|
||||
|
||||
#define MAX_NAME_LEN 64
|
||||
|
||||
#define CHASE_TIMEOUT (5*HZ) /* 5 seconds */
|
||||
|
@ -256,9 +238,9 @@ static int send_cmd_write_uart_register (struct edgeport_port *edge_port, __u8
|
|||
static int write_cmd_usb (struct edgeport_port *edge_port, unsigned char *buffer, int writeLength);
|
||||
static void send_more_port_data (struct edgeport_serial *edge_serial, struct edgeport_port *edge_port);
|
||||
|
||||
static int sram_write (struct usb_serial *serial, __u16 extAddr, __u16 addr, __u16 length, __u8 *data);
|
||||
static int sram_write (struct usb_serial *serial, __u16 extAddr, __u16 addr, __u16 length, const __u8 *data);
|
||||
static int rom_read (struct usb_serial *serial, __u16 extAddr, __u16 addr, __u16 length, __u8 *data);
|
||||
static int rom_write (struct usb_serial *serial, __u16 extAddr, __u16 addr, __u16 length, __u8 *data);
|
||||
static int rom_write (struct usb_serial *serial, __u16 extAddr, __u16 addr, __u16 length, const __u8 *data);
|
||||
static void get_manufacturing_desc (struct edgeport_serial *edge_serial);
|
||||
static void get_boot_desc (struct edgeport_serial *edge_serial);
|
||||
static void load_application_firmware (struct edgeport_serial *edge_serial);
|
||||
|
@ -283,37 +265,41 @@ static void update_edgeport_E2PROM (struct edgeport_serial *edge_serial)
|
|||
{
|
||||
__u32 BootCurVer;
|
||||
__u32 BootNewVer;
|
||||
__u8 BootMajorVersion;
|
||||
__u8 BootMinorVersion;
|
||||
__le16 BootBuildNumber;
|
||||
__u8 *BootImage;
|
||||
__u32 BootSize;
|
||||
struct edge_firmware_image_record *record;
|
||||
unsigned char *firmware;
|
||||
__u8 BootMajorVersion;
|
||||
__u8 BootMinorVersion;
|
||||
__u16 BootBuildNumber;
|
||||
__u32 Bootaddr;
|
||||
const struct ihex_binrec *rec;
|
||||
const struct firmware *fw;
|
||||
const char *fw_name;
|
||||
int response;
|
||||
|
||||
|
||||
switch (edge_serial->product_info.iDownloadFile) {
|
||||
case EDGE_DOWNLOAD_FILE_I930:
|
||||
BootMajorVersion = BootCodeImageVersion_GEN1.MajorVersion;
|
||||
BootMinorVersion = BootCodeImageVersion_GEN1.MinorVersion;
|
||||
BootBuildNumber = cpu_to_le16(BootCodeImageVersion_GEN1.BuildNumber);
|
||||
BootImage = &BootCodeImage_GEN1[0];
|
||||
BootSize = sizeof( BootCodeImage_GEN1 );
|
||||
fw_name = "edgeport/boot.fw";
|
||||
break;
|
||||
|
||||
case EDGE_DOWNLOAD_FILE_80251:
|
||||
BootMajorVersion = BootCodeImageVersion_GEN2.MajorVersion;
|
||||
BootMinorVersion = BootCodeImageVersion_GEN2.MinorVersion;
|
||||
BootBuildNumber = cpu_to_le16(BootCodeImageVersion_GEN2.BuildNumber);
|
||||
BootImage = &BootCodeImage_GEN2[0];
|
||||
BootSize = sizeof( BootCodeImage_GEN2 );
|
||||
fw_name = "edgeport/boot2.fw";
|
||||
break;
|
||||
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
response = request_ihex_firmware(&fw, fw_name,
|
||||
&edge_serial->serial->dev->dev);
|
||||
if (response) {
|
||||
printk(KERN_ERR "Failed to load image \"%s\" err %d\n",
|
||||
fw_name, response);
|
||||
return;
|
||||
}
|
||||
|
||||
rec = (const struct ihex_binrec *)fw->data;
|
||||
BootMajorVersion = rec->data[0];
|
||||
BootMinorVersion = rec->data[1];
|
||||
BootBuildNumber = (rec->data[2] << 8) | rec->data[3];
|
||||
|
||||
// Check Boot Image Version
|
||||
BootCurVer = (edge_serial->boot_descriptor.MajorVersion << 24) +
|
||||
(edge_serial->boot_descriptor.MinorVersion << 16) +
|
||||
|
@ -321,7 +307,7 @@ static void update_edgeport_E2PROM (struct edgeport_serial *edge_serial)
|
|||
|
||||
BootNewVer = (BootMajorVersion << 24) +
|
||||
(BootMinorVersion << 16) +
|
||||
le16_to_cpu(BootBuildNumber);
|
||||
BootBuildNumber;
|
||||
|
||||
dbg("Current Boot Image version %d.%d.%d",
|
||||
edge_serial->boot_descriptor.MajorVersion,
|
||||
|
@ -334,30 +320,30 @@ static void update_edgeport_E2PROM (struct edgeport_serial *edge_serial)
|
|||
edge_serial->boot_descriptor.MajorVersion,
|
||||
edge_serial->boot_descriptor.MinorVersion,
|
||||
le16_to_cpu(edge_serial->boot_descriptor.BuildNumber),
|
||||
BootMajorVersion,
|
||||
BootMinorVersion,
|
||||
le16_to_cpu(BootBuildNumber));
|
||||
|
||||
BootMajorVersion, BootMinorVersion, BootBuildNumber);
|
||||
|
||||
dbg("Downloading new Boot Image");
|
||||
|
||||
firmware = BootImage;
|
||||
|
||||
for (;;) {
|
||||
record = (struct edge_firmware_image_record *)firmware;
|
||||
response = rom_write (edge_serial->serial, le16_to_cpu(record->ExtAddr), le16_to_cpu(record->Addr), le16_to_cpu(record->Len), &record->Data[0]);
|
||||
for (rec = ihex_next_binrec(rec); rec;
|
||||
rec = ihex_next_binrec(rec)) {
|
||||
Bootaddr = be32_to_cpu(rec->addr);
|
||||
response = rom_write(edge_serial->serial,
|
||||
Bootaddr >> 16,
|
||||
Bootaddr & 0xFFFF,
|
||||
be16_to_cpu(rec->len),
|
||||
&rec->data[0]);
|
||||
if (response < 0) {
|
||||
dev_err(&edge_serial->serial->dev->dev, "rom_write failed (%x, %x, %d)\n", le16_to_cpu(record->ExtAddr), le16_to_cpu(record->Addr), le16_to_cpu(record->Len));
|
||||
break;
|
||||
}
|
||||
firmware += sizeof (struct edge_firmware_image_record) + le16_to_cpu(record->Len);
|
||||
if (firmware >= &BootImage[BootSize]) {
|
||||
dev_err(&edge_serial->serial->dev->dev,
|
||||
"rom_write failed (%x, %x, %d)\n",
|
||||
Bootaddr >> 16, Bootaddr & 0xFFFF,
|
||||
be16_to_cpu(rec->len));
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
dbg("Boot Image -- already up to date");
|
||||
}
|
||||
release_firmware(fw);
|
||||
}
|
||||
|
||||
|
||||
|
@ -447,9 +433,6 @@ static void dump_product_info(struct edgeport_product_info *product_info)
|
|||
dbg(" BootMajorVersion %d.%d.%d", product_info->BootMajorVersion,
|
||||
product_info->BootMinorVersion,
|
||||
le16_to_cpu(product_info->BootBuildNumber));
|
||||
dbg(" FirmwareMajorVersion %d.%d.%d", product_info->FirmwareMajorVersion,
|
||||
product_info->FirmwareMinorVersion,
|
||||
le16_to_cpu(product_info->FirmwareBuildNumber));
|
||||
dbg(" ManufactureDescDate %d/%d/%d", product_info->ManufactureDescDate[0],
|
||||
product_info->ManufactureDescDate[1],
|
||||
product_info->ManufactureDescDate[2]+1900);
|
||||
|
@ -480,14 +463,8 @@ static void get_product_info(struct edgeport_serial *edge_serial)
|
|||
|
||||
// check if this is 2nd generation hardware
|
||||
if (le16_to_cpu(edge_serial->serial->dev->descriptor.idProduct) & ION_DEVICE_ID_80251_NETCHIP) {
|
||||
product_info->FirmwareMajorVersion = OperationalCodeImageVersion_GEN2.MajorVersion;
|
||||
product_info->FirmwareMinorVersion = OperationalCodeImageVersion_GEN2.MinorVersion;
|
||||
product_info->FirmwareBuildNumber = cpu_to_le16(OperationalCodeImageVersion_GEN2.BuildNumber);
|
||||
product_info->iDownloadFile = EDGE_DOWNLOAD_FILE_80251;
|
||||
} else {
|
||||
product_info->FirmwareMajorVersion = OperationalCodeImageVersion_GEN1.MajorVersion;
|
||||
product_info->FirmwareMinorVersion = OperationalCodeImageVersion_GEN1.MinorVersion;
|
||||
product_info->FirmwareBuildNumber = cpu_to_le16(OperationalCodeImageVersion_GEN1.BuildNumber);
|
||||
product_info->iDownloadFile = EDGE_DOWNLOAD_FILE_I930;
|
||||
}
|
||||
|
||||
|
@ -2130,7 +2107,7 @@ static void handle_new_lsr(struct edgeport_port *edge_port, __u8 lsrData, __u8 l
|
|||
* If successful returns the number of bytes written, otherwise it returns
|
||||
* a negative error number of the problem.
|
||||
****************************************************************************/
|
||||
static int sram_write (struct usb_serial *serial, __u16 extAddr, __u16 addr, __u16 length, __u8 *data)
|
||||
static int sram_write(struct usb_serial *serial, __u16 extAddr, __u16 addr, __u16 length, const __u8 *data)
|
||||
{
|
||||
int result;
|
||||
__u16 current_length;
|
||||
|
@ -2175,7 +2152,7 @@ static int sram_write (struct usb_serial *serial, __u16 extAddr, __u16 addr, __u
|
|||
* If successful returns the number of bytes written, otherwise it returns
|
||||
* a negative error number of the problem.
|
||||
****************************************************************************/
|
||||
static int rom_write (struct usb_serial *serial, __u16 extAddr, __u16 addr, __u16 length, __u8 *data)
|
||||
static int rom_write(struct usb_serial *serial, __u16 extAddr, __u16 addr, __u16 length, const __u8 *data)
|
||||
{
|
||||
int result;
|
||||
__u16 current_length;
|
||||
|
@ -2761,32 +2738,23 @@ static void get_boot_desc (struct edgeport_serial *edge_serial)
|
|||
****************************************************************************/
|
||||
static void load_application_firmware (struct edgeport_serial *edge_serial)
|
||||
{
|
||||
struct edge_firmware_image_record *record;
|
||||
unsigned char *firmware;
|
||||
unsigned char *FirmwareImage;
|
||||
int ImageSize;
|
||||
const struct ihex_binrec *rec;
|
||||
const struct firmware *fw;
|
||||
const char *fw_name;
|
||||
const char *fw_info;
|
||||
int response;
|
||||
|
||||
__u32 Operaddr;
|
||||
__u16 build;
|
||||
|
||||
switch (edge_serial->product_info.iDownloadFile) {
|
||||
case EDGE_DOWNLOAD_FILE_I930:
|
||||
dbg("downloading firmware version (930) %d.%d.%d",
|
||||
OperationalCodeImageVersion_GEN1.MajorVersion,
|
||||
OperationalCodeImageVersion_GEN1.MinorVersion,
|
||||
OperationalCodeImageVersion_GEN1.BuildNumber);
|
||||
firmware = &OperationalCodeImage_GEN1[0];
|
||||
FirmwareImage = &OperationalCodeImage_GEN1[0];
|
||||
ImageSize = sizeof(OperationalCodeImage_GEN1);
|
||||
fw_info = "downloading firmware version (930)";
|
||||
fw_name = "edgeport/down.fw";
|
||||
break;
|
||||
|
||||
case EDGE_DOWNLOAD_FILE_80251:
|
||||
dbg("downloading firmware version (80251) %d.%d.%d",
|
||||
OperationalCodeImageVersion_GEN2.MajorVersion,
|
||||
OperationalCodeImageVersion_GEN2.MinorVersion,
|
||||
OperationalCodeImageVersion_GEN2.BuildNumber);
|
||||
firmware = &OperationalCodeImage_GEN2[0];
|
||||
FirmwareImage = &OperationalCodeImage_GEN2[0];
|
||||
ImageSize = sizeof(OperationalCodeImage_GEN2);
|
||||
fw_info = "downloading firmware version (80251)";
|
||||
fw_name = "edgeport/down2.fw";
|
||||
break;
|
||||
|
||||
case EDGE_DOWNLOAD_FILE_NONE:
|
||||
|
@ -2797,16 +2765,36 @@ static void load_application_firmware (struct edgeport_serial *edge_serial)
|
|||
return;
|
||||
}
|
||||
|
||||
response = request_ihex_firmware(&fw, fw_name,
|
||||
&edge_serial->serial->dev->dev);
|
||||
if (response) {
|
||||
printk(KERN_ERR "Failed to load image \"%s\" err %d\n",
|
||||
fw_name, response);
|
||||
return;
|
||||
}
|
||||
|
||||
for (;;) {
|
||||
record = (struct edge_firmware_image_record *)firmware;
|
||||
response = sram_write (edge_serial->serial, le16_to_cpu(record->ExtAddr), le16_to_cpu(record->Addr), le16_to_cpu(record->Len), &record->Data[0]);
|
||||
rec = (const struct ihex_binrec *)fw->data;
|
||||
build = (rec->data[2] << 8) | rec->data[3];
|
||||
|
||||
dbg("%s %d.%d.%d", fw_info, rec->data[0], rec->data[1], build);
|
||||
|
||||
edge_serial->product_info.FirmwareMajorVersion = fw->data[0];
|
||||
edge_serial->product_info.FirmwareMinorVersion = fw->data[1];
|
||||
edge_serial->product_info.FirmwareBuildNumber = cpu_to_le16(build);
|
||||
|
||||
for (rec = ihex_next_binrec(rec); rec;
|
||||
rec = ihex_next_binrec(rec)) {
|
||||
Operaddr = be32_to_cpu(rec->addr);
|
||||
response = sram_write(edge_serial->serial,
|
||||
Operaddr >> 16,
|
||||
Operaddr & 0xFFFF,
|
||||
be16_to_cpu(rec->len),
|
||||
&rec->data[0]);
|
||||
if (response < 0) {
|
||||
dev_err(&edge_serial->serial->dev->dev, "sram_write failed (%x, %x, %d)\n", le16_to_cpu(record->ExtAddr), le16_to_cpu(record->Addr), le16_to_cpu(record->Len));
|
||||
break;
|
||||
}
|
||||
firmware += sizeof (struct edge_firmware_image_record) + le16_to_cpu(record->Len);
|
||||
if (firmware >= &FirmwareImage[ImageSize]) {
|
||||
dev_err(&edge_serial->serial->dev->dev,
|
||||
"sram_write failed (%x, %x, %d)\n",
|
||||
Operaddr >> 16, Operaddr & 0xFFFF,
|
||||
be16_to_cpu(rec->len));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -2817,6 +2805,7 @@ static void load_application_firmware (struct edgeport_serial *edge_serial)
|
|||
USB_REQUEST_ION_EXEC_DL_CODE,
|
||||
0x40, 0x4000, 0x0001, NULL, 0, 3000);
|
||||
|
||||
release_firmware(fw);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -2903,6 +2892,10 @@ static int edge_startup (struct usb_serial *serial)
|
|||
// dbg("set_configuration 1");
|
||||
// usb_set_configuration (dev, 1);
|
||||
}
|
||||
dbg(" FirmwareMajorVersion %d.%d.%d",
|
||||
edge_serial->product_info.FirmwareMajorVersion,
|
||||
edge_serial->product_info.FirmwareMinorVersion,
|
||||
le16_to_cpu(edge_serial->product_info.FirmwareBuildNumber));
|
||||
|
||||
/* we set up the pointers to the endpoints in the edge_open function,
|
||||
* as the structures aren't created yet. */
|
||||
|
@ -3115,6 +3108,10 @@ module_exit(edgeport_exit);
|
|||
MODULE_AUTHOR( DRIVER_AUTHOR );
|
||||
MODULE_DESCRIPTION( DRIVER_DESC );
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_FIRMWARE("edgeport/boot.fw");
|
||||
MODULE_FIRMWARE("edgeport/boot2.fw");
|
||||
MODULE_FIRMWARE("edgeport/down.fw");
|
||||
MODULE_FIRMWARE("edgeport/down2.fw");
|
||||
|
||||
module_param(debug, bool, S_IRUGO | S_IWUSR);
|
||||
MODULE_PARM_DESC(debug, "Debug enabled or not");
|
||||
|
|
|
@ -1,556 +0,0 @@
|
|||
//**************************************************************
|
||||
//* Edgeport/4 Binary Image
|
||||
//* Generated by HEX2C v1.06
|
||||
//* Copyright (C) 1998 Inside Out Networks, All rights reserved.
|
||||
//* 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
|
||||
//* the Free Software Foundation; either version 2 of the License, or
|
||||
//* (at your option) any later version.
|
||||
//**************************************************************
|
||||
|
||||
|
||||
//Image structure definition
|
||||
#if !defined(DEFINED_EDGE_FIRMWARE_IMAGE_RECORD)
|
||||
#define DEFINED_EDGE_FIRMWARE_IMAGE_RECORD
|
||||
struct edge_firmware_image_record {
|
||||
__le16 ExtAddr;
|
||||
__le16 Addr;
|
||||
__le16 Len;
|
||||
unsigned char Data[0];
|
||||
} __attribute__ ((packed));
|
||||
|
||||
struct edge_firmware_version_info {
|
||||
unsigned char MajorVersion;
|
||||
unsigned char MinorVersion;
|
||||
unsigned short BuildNumber;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
#if !defined(IMAGE_ARRAY_NAME)
|
||||
#define IMAGE_ARRAY_NAME FirmwareImage
|
||||
#define IMAGE_VERSION_NAME FirmwareImageVersion
|
||||
#endif
|
||||
|
||||
static unsigned char IMAGE_ARRAY_NAME[] = {
|
||||
|
||||
// Segment #1, Start Address 00ff0000, Length 6
|
||||
0xff,0x00,0x00,0x00,0x06,0x00,
|
||||
0x02, 0x00, 0x80, 0x02, 0x00, 0x03,
|
||||
|
||||
// Segment #2, Start Address 00ff000b, Length 3
|
||||
0xff,0x00,0x0b,0x00,0x03,0x00,
|
||||
0x02, 0x00, 0x0b,
|
||||
|
||||
// Segment #3, Start Address 00ff0013, Length 3
|
||||
0xff,0x00,0x13,0x00,0x03,0x00,
|
||||
0x02, 0x01, 0xb8,
|
||||
|
||||
// Segment #4, Start Address 00ff001b, Length 3
|
||||
0xff,0x00,0x1b,0x00,0x03,0x00,
|
||||
0x02, 0x00, 0x1b,
|
||||
|
||||
// Segment #5, Start Address 00ff0023, Length 3
|
||||
0xff,0x00,0x23,0x00,0x03,0x00,
|
||||
0x02, 0x00, 0x23,
|
||||
|
||||
// Segment #6, Start Address 00ff002b, Length 3
|
||||
0xff,0x00,0x2b,0x00,0x03,0x00,
|
||||
0x02, 0x00, 0x2b,
|
||||
|
||||
// Segment #7, Start Address 00ff0033, Length 3
|
||||
0xff,0x00,0x33,0x00,0x03,0x00,
|
||||
0x02, 0x00, 0x33,
|
||||
|
||||
// Segment #8, Start Address 00ff003b, Length 3
|
||||
0xff,0x00,0x3b,0x00,0x03,0x00,
|
||||
0x02, 0x00, 0x3b,
|
||||
|
||||
// Segment #9, Start Address 00ff0043, Length 3
|
||||
0xff,0x00,0x43,0x00,0x03,0x00,
|
||||
0x02, 0x01, 0xbd,
|
||||
|
||||
// Segment #10, Start Address 00ff004b, Length 3
|
||||
0xff,0x00,0x4b,0x00,0x03,0x00,
|
||||
0x02, 0x01, 0xd0,
|
||||
|
||||
// Segment #11, Start Address 00ff0053, Length 3
|
||||
0xff,0x00,0x53,0x00,0x03,0x00,
|
||||
0x02, 0x01, 0x21,
|
||||
|
||||
// Segment #12, Start Address 00ff007b, Length 3
|
||||
0xff,0x00,0x7b,0x00,0x03,0x00,
|
||||
0x02, 0x00, 0x7b,
|
||||
|
||||
// Segment #13, Start Address 00ff0080, Length 358
|
||||
0xff,0x00,0x80,0x00,0x66,0x01,
|
||||
0x7e, 0xb0, 0x00, 0x7a, 0xb3, 0x3f, 0xf2, 0x7e, 0xf8, 0x00, 0x23, 0x7e, 0x00, 0x01, 0x7e, 0x10,
|
||||
0x00, 0x12, 0x07, 0x5f, 0x69, 0x20, 0x00, 0x0a, 0xbe, 0x24, 0x00, 0x00, 0x78, 0x05, 0x75, 0x90,
|
||||
0x0d, 0x80, 0x03, 0x75, 0x90, 0x1d, 0xd2, 0xb5, 0x7e, 0x00, 0x00, 0xa5, 0xd8, 0xfd, 0x75, 0xa8,
|
||||
0x00, 0x75, 0xb1, 0x00, 0xa9, 0xd5, 0x87, 0xca, 0x29, 0x12, 0x09, 0xcc, 0x12, 0x09, 0xa0, 0xf5,
|
||||
0x09, 0x7a, 0xa1, 0x20, 0x12, 0x01, 0xe6, 0xda, 0x29, 0xa9, 0xd0, 0xc7, 0x7e, 0x00, 0x05, 0x7a,
|
||||
0x01, 0xf1, 0x75, 0xe1, 0x10, 0xa9, 0xd7, 0xf4, 0xa9, 0xd7, 0xe4, 0xa5, 0xd8, 0xf1, 0x75, 0xf1,
|
||||
0x00, 0x75, 0xe1, 0x3f, 0x75, 0xa2, 0x03, 0x75, 0xa3, 0x00, 0x75, 0xc0, 0x00, 0x75, 0xc1, 0x00,
|
||||
0xa9, 0xd1, 0xb1, 0xa9, 0xd0, 0xb1, 0xa9, 0xd5, 0xd3, 0xd2, 0xaf, 0xe4, 0x7e, 0x04, 0x28, 0x00,
|
||||
0x8d, 0xef, 0x1b, 0x04, 0x78, 0xfa, 0x04, 0xa9, 0x34, 0xd3, 0x03, 0x30, 0xe0, 0xee, 0xbe, 0x24,
|
||||
0x00, 0x00, 0x78, 0x05, 0x63, 0x90, 0x30, 0x80, 0xe3, 0xb2, 0x95, 0x80, 0xdf, 0xbe, 0xb0, 0x02,
|
||||
0x22, 0xc0, 0xd0, 0xa9, 0x20, 0xdf, 0x0f, 0xa9, 0x31, 0xdf, 0x03, 0x02, 0x01, 0xb5, 0x75, 0x08,
|
||||
0x01, 0x12, 0x08, 0x33, 0x80, 0xfe, 0x75, 0x08, 0xfe, 0x12, 0x08, 0x33, 0x75, 0xa8, 0x00, 0x7e,
|
||||
0xb3, 0x3f, 0xf2, 0x30, 0xe0, 0x4b, 0x30, 0x01, 0x46, 0xc2, 0x92, 0x7e, 0x24, 0x80, 0x00, 0x7e,
|
||||
0x11, 0x09, 0x74, 0x08, 0x19, 0xb2, 0x00, 0x10, 0x74, 0x0e, 0x19, 0xb2, 0x00, 0x04, 0x2e, 0x24,
|
||||
0x01, 0x00, 0xa5, 0xd9, 0xed, 0x7e, 0x24, 0x80, 0x00, 0x7e, 0x11, 0x09, 0xe4, 0xd5, 0xe0, 0xfd,
|
||||
0x09, 0xb2, 0x00, 0x08, 0x20, 0xe0, 0x0a, 0x09, 0xb2, 0x00, 0x00, 0x09, 0xb2, 0x00, 0x18, 0x80,
|
||||
0xeb, 0x2e, 0x24, 0x01, 0x00, 0xa5, 0xd9, 0xe4, 0x43, 0x90, 0x30, 0xd2, 0xaa, 0x80, 0x05, 0xd2,
|
||||
0xaa, 0x43, 0x90, 0x34, 0xd2, 0xaf, 0xa9, 0xd1, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa9, 0x11,
|
||||
0xdf, 0x03, 0xa9, 0xd2, 0xdf, 0x75, 0x08, 0xff, 0x12, 0x08, 0x33, 0xc0, 0xd1, 0xca, 0x02, 0xff,
|
||||
0xca, 0x06, 0x83, 0x00, 0x32, 0xd0, 0xd0, 0x32, 0xc2, 0x8b, 0xc2, 0xaa, 0x32, 0x75, 0x08, 0x08,
|
||||
0x12, 0x08, 0x33, 0xa9, 0xc0, 0xb1, 0xa9, 0xc5, 0xd3, 0xa9, 0xc6, 0xd3, 0xa9, 0xd2, 0xb1, 0x32,
|
||||
0xca, 0xb8, 0x75, 0x08, 0x02, 0x12, 0x08, 0x33, 0xe5, 0xc0, 0x54, 0x03, 0x68, 0x05, 0x12, 0x01,
|
||||
0xee, 0x80, 0xf5, 0xda, 0xb8, 0x32,
|
||||
|
||||
// Segment #14, Start Address 00ff1bca, Length 1
|
||||
0xff,0x00,0xca,0x1b,0x01,0x00,
|
||||
0x00,
|
||||
|
||||
// Segment #15, Start Address 00ff01e6, Length 1613
|
||||
0xff,0x00,0xe6,0x01,0x4d,0x06,
|
||||
0xe4, 0x7a, 0xb3, 0x3f, 0xf1, 0x02, 0x02, 0x63, 0xca, 0x0b, 0xca, 0x1b, 0xca, 0x2b, 0xca, 0x3b,
|
||||
0xca, 0x4b, 0xca, 0x5b, 0xca, 0x6b, 0xca, 0x7b, 0xca, 0xeb, 0xc0, 0xf1, 0x7e, 0xb3, 0x01, 0x2b,
|
||||
0xb4, 0x00, 0x02, 0x80, 0x19, 0xb4, 0x01, 0x16, 0x30, 0xc0, 0x08, 0x75, 0xf1, 0x00, 0x12, 0x02,
|
||||
0x4d, 0x80, 0x1f, 0x30, 0xc1, 0x1c, 0x75, 0xf1, 0x00, 0x12, 0x02, 0xde, 0x80, 0x14, 0x30, 0xc1,
|
||||
0x08, 0x75, 0xf1, 0x00, 0x12, 0x02, 0xde, 0x80, 0x09, 0x30, 0xc0, 0x06, 0x75, 0xf1, 0x00, 0x12,
|
||||
0x02, 0x4d, 0xd0, 0xf1, 0xda, 0xeb, 0xda, 0x7b, 0xda, 0x6b, 0xda, 0x5b, 0xda, 0x4b, 0xda, 0x3b,
|
||||
0xda, 0x2b, 0xda, 0x1b, 0xda, 0x0b, 0x22, 0xc2, 0xc0, 0x7e, 0xb3, 0x01, 0x2b, 0xb4, 0x02, 0x07,
|
||||
0x12, 0x02, 0x6f, 0x02, 0x02, 0x63, 0x22, 0xb4, 0x01, 0xfc, 0x02, 0x02, 0xa9, 0x7e, 0x00, 0x00,
|
||||
0x7a, 0x03, 0x01, 0x2b, 0x7a, 0x03, 0x01, 0x2c, 0x22, 0x7e, 0xb3, 0x01, 0x23, 0x54, 0x60, 0x60,
|
||||
0x05, 0xb4, 0x40, 0x15, 0x80, 0x13, 0x7e, 0xb3, 0x01, 0x24, 0xb4, 0x05, 0x0c, 0x75, 0x08, 0x71,
|
||||
0x12, 0x08, 0x33, 0x7e, 0xb3, 0x01, 0x26, 0xf5, 0x8f, 0x22, 0x75, 0xf6, 0x00, 0x22, 0xbe, 0x57,
|
||||
0x01, 0x29, 0x28, 0x04, 0x7e, 0x57, 0x01, 0x29, 0x7a, 0x0f, 0x01, 0x2e, 0x7a, 0x57, 0x01, 0x32,
|
||||
0x02, 0x02, 0xa9, 0x7e, 0xef, 0x01, 0x2e, 0x7e, 0xf7, 0x01, 0x32, 0x7e, 0x07, 0x01, 0x32, 0x4d,
|
||||
0x00, 0x68, 0x21, 0x7e, 0x00, 0x00, 0x7e, 0xeb, 0xb0, 0xf5, 0xf3, 0xa3, 0xa5, 0x08, 0x1b, 0xf4,
|
||||
0x68, 0x04, 0xa5, 0xb8, 0x08, 0xf0, 0x7a, 0xef, 0x01, 0x2e, 0x7a, 0xf7, 0x01, 0x32, 0x75, 0x08,
|
||||
0x06, 0x12, 0x08, 0x33, 0x7a, 0x01, 0xf6, 0x22, 0xc2, 0xc1, 0x75, 0x08, 0x03, 0x12, 0x08, 0x33,
|
||||
0xa9, 0x36, 0xe2, 0x16, 0xe5, 0xf5, 0x54, 0xc0, 0x68, 0x07, 0xa9, 0xd7, 0xf4, 0xa9, 0x27, 0xf4,
|
||||
0xfc, 0x53, 0xe1, 0x3f, 0x43, 0xf2, 0x88, 0x02, 0x03, 0x55, 0x7e, 0xb3, 0x01, 0x2c, 0xb4, 0x02,
|
||||
0x0f, 0xa9, 0xd4, 0xe4, 0x7e, 0xb0, 0x00, 0x7a, 0xb3, 0x01, 0x2c, 0x7a, 0xb3, 0x01, 0x2b, 0x22,
|
||||
0xb4, 0x01, 0x39, 0x7e, 0x21, 0xe6, 0x7c, 0x32, 0x7e, 0x13, 0x01, 0x2d, 0x2c, 0x21, 0x7a, 0x23,
|
||||
0x01, 0x2d, 0x7e, 0x00, 0x00, 0x2e, 0x04, 0x01, 0x34, 0xe5, 0xe3, 0x7a, 0x09, 0xb0, 0x0b, 0x04,
|
||||
0xa5, 0xdb, 0xf6, 0xa9, 0xd4, 0xe4, 0x75, 0x08, 0x70, 0x12, 0x08, 0x33, 0x7e, 0xb3, 0x01, 0x2d,
|
||||
0x7e, 0xa3, 0x01, 0x2a, 0xbc, 0xab, 0x78, 0x03, 0x12, 0x03, 0xec, 0x22, 0x02, 0x07, 0x55, 0xe5,
|
||||
0xe6, 0xb4, 0x08, 0x65, 0xa9, 0xc4, 0xe2, 0x7e, 0x01, 0xe3, 0x7e, 0x11, 0xe3, 0x7e, 0x31, 0xe3,
|
||||
0x7e, 0x21, 0xe3, 0x7e, 0x51, 0xe3, 0x7e, 0x41, 0xe3, 0x7e, 0x71, 0xe3, 0x7e, 0x61, 0xe3, 0x7a,
|
||||
0x0f, 0x01, 0x23, 0x7a, 0x1f, 0x01, 0x27, 0x75, 0x08, 0x04, 0x12, 0x08, 0x33, 0x7a, 0x01, 0x08,
|
||||
0x12, 0x08, 0x33, 0x7a, 0x11, 0x08, 0x12, 0x08, 0x33, 0x7a, 0x21, 0x08, 0x12, 0x08, 0x33, 0x7a,
|
||||
0x31, 0x08, 0x12, 0x08, 0x33, 0x7a, 0x41, 0x08, 0x12, 0x08, 0x33, 0x7a, 0x51, 0x08, 0x12, 0x08,
|
||||
0x33, 0x7a, 0x61, 0x08, 0x12, 0x08, 0x33, 0x7a, 0x71, 0x08, 0x12, 0x08, 0x33, 0xa9, 0xd4, 0xe4,
|
||||
0xa9, 0xd7, 0xf4, 0xa9, 0xc6, 0xe2, 0x12, 0x03, 0xc0, 0x22, 0x6d, 0x00, 0x7e, 0x14, 0x01, 0x02,
|
||||
0x7a, 0x07, 0x01, 0x32, 0x7a, 0x03, 0x01, 0x2d, 0x7e, 0xb3, 0x01, 0x23, 0x20, 0xe7, 0x0f, 0x7a,
|
||||
0x23, 0x01, 0x2c, 0x7a, 0x33, 0x01, 0x2b, 0xbe, 0x07, 0x01, 0x29, 0x68, 0x09, 0x22, 0x7a, 0x33,
|
||||
0x01, 0x2c, 0x7a, 0x23, 0x01, 0x2b, 0x7e, 0xb3, 0x01, 0x23, 0x54, 0xe3, 0x23, 0x23, 0x30, 0xe0,
|
||||
0x02, 0xd2, 0xe5, 0x30, 0xe7, 0x02, 0xd2, 0xe4, 0x30, 0xe5, 0x06, 0x30, 0xe4, 0x03, 0x02, 0x07,
|
||||
0x55, 0x54, 0x3e, 0xf5, 0xf0, 0x03, 0x54, 0x1f, 0xc3, 0x25, 0xf0, 0x90, 0x04, 0x18, 0x75, 0x84,
|
||||
0xff, 0x73, 0x02, 0x05, 0x6c, 0x02, 0x04, 0x60, 0x02, 0x06, 0x09, 0x02, 0x06, 0x24, 0x02, 0x05,
|
||||
0x05, 0x02, 0x04, 0xc6, 0x02, 0x06, 0x3d, 0x02, 0x06, 0x3d, 0x02, 0x06, 0x40, 0x02, 0x06, 0x40,
|
||||
0x02, 0x06, 0x40, 0x02, 0x06, 0x40, 0x02, 0x06, 0x40, 0x02, 0x06, 0x40, 0x02, 0x06, 0x40, 0x02,
|
||||
0x06, 0x40, 0x02, 0x06, 0x46, 0x02, 0x06, 0xfa, 0x02, 0x06, 0x43, 0x02, 0x06, 0x43, 0x02, 0x06,
|
||||
0x43, 0x02, 0x06, 0x43, 0x02, 0x06, 0x43, 0x02, 0x06, 0x43, 0x7e, 0xb3, 0x01, 0x24, 0xb4, 0x06,
|
||||
0x2a, 0x7e, 0xb3, 0x01, 0x25, 0x60, 0x56, 0x7c, 0x0b, 0x7e, 0x13, 0x01, 0x26, 0x7e, 0x17, 0x01,
|
||||
0x27, 0x75, 0x08, 0x72, 0x12, 0x08, 0x33, 0x7a, 0x01, 0x08, 0x12, 0x08, 0x33, 0x7a, 0x11, 0x08,
|
||||
0x12, 0x08, 0x33, 0x12, 0x07, 0x5f, 0x40, 0x35, 0x02, 0x02, 0x94, 0xb4, 0x08, 0x10, 0x75, 0x08,
|
||||
0x74, 0x12, 0x08, 0x33, 0x7e, 0xb3, 0x3f, 0xf1, 0xf5, 0xf3, 0x75, 0xf6, 0x01, 0x22, 0xb4, 0x00,
|
||||
0x1c, 0x75, 0x08, 0x75, 0x12, 0x08, 0x33, 0x7e, 0xb3, 0x3f, 0xf2, 0x30, 0xe0, 0x05, 0x75, 0xf3,
|
||||
0x02, 0x80, 0x03, 0x75, 0xf3, 0x00, 0x75, 0xf3, 0x00, 0x75, 0xf6, 0x02, 0x22, 0x02, 0x07, 0x55,
|
||||
0x7e, 0xb3, 0x01, 0x24, 0xb4, 0x00, 0x35, 0x75, 0x08, 0x76, 0x12, 0x08, 0x33, 0x7e, 0xb3, 0x01,
|
||||
0x28, 0x54, 0x0f, 0xf5, 0xf1, 0x7e, 0xb3, 0x01, 0x28, 0x20, 0xe7, 0x09, 0xe5, 0xe1, 0x30, 0xe7,
|
||||
0x0d, 0x74, 0x01, 0x80, 0x0b, 0xe5, 0xe1, 0x30, 0xe6, 0x04, 0x74, 0x01, 0x80, 0x02, 0x74, 0x00,
|
||||
0x53, 0xf1, 0x80, 0xf5, 0xf3, 0x75, 0xf3, 0x00, 0x75, 0xf6, 0x02, 0x22, 0x02, 0x07, 0x55, 0xc0,
|
||||
0xf1, 0x7e, 0xb3, 0x01, 0x28, 0x54, 0x0f, 0x42, 0xf1, 0x7e, 0xb3, 0x01, 0x26, 0xb4, 0x00, 0x45,
|
||||
0x7e, 0xb3, 0x01, 0x24, 0xb4, 0x01, 0x24, 0x75, 0x08, 0x77, 0x12, 0x08, 0x33, 0x7e, 0xb3, 0x01,
|
||||
0x28, 0x54, 0x0f, 0x78, 0x05, 0x53, 0xe1, 0x3f, 0x80, 0x37, 0x7e, 0xb3, 0x01, 0x28, 0x20, 0xe7,
|
||||
0x05, 0x53, 0xe1, 0x7f, 0x80, 0x2b, 0x53, 0xe1, 0xbf, 0x80, 0x26, 0xb4, 0x03, 0x17, 0x75, 0x08,
|
||||
0x78, 0x12, 0x08, 0x33, 0x7e, 0xb3, 0x01, 0x28, 0x20, 0xe7, 0x05, 0x43, 0xe1, 0x80, 0x80, 0x11,
|
||||
0x43, 0xe1, 0x40, 0x80, 0x0c, 0x43, 0xe1, 0xc0, 0xd0, 0xf1, 0x75, 0x08, 0x07, 0x12, 0x08, 0x33,
|
||||
0x22, 0xd0, 0xf1, 0x02, 0x02, 0x90, 0x7e, 0xb3, 0x01, 0x24, 0xb4, 0x09, 0x23, 0x75, 0x08, 0x79,
|
||||
0x12, 0x08, 0x33, 0x7e, 0xb3, 0x01, 0x26, 0xbe, 0xb3, 0x3f, 0xf1, 0x68, 0x11, 0xca, 0xb8, 0xc0,
|
||||
0xf1, 0x12, 0x01, 0x1d, 0xd0, 0xf1, 0xda, 0xb8, 0x50, 0x76, 0x7a, 0xb3, 0x3f, 0xf1, 0x80, 0x6d,
|
||||
0xb4, 0x05, 0x08, 0x75, 0x08, 0x7a, 0x12, 0x08, 0x33, 0x80, 0x62, 0xb4, 0x03, 0x19, 0x75, 0x08,
|
||||
0x7b, 0x12, 0x08, 0x33, 0x7e, 0xb3, 0x01, 0x26, 0xb4, 0x01, 0x55, 0x7e, 0xb3, 0x3f, 0xf2, 0x44,
|
||||
0x01, 0x7a, 0xb3, 0x3f, 0xf2, 0x80, 0x46, 0xb4, 0x01, 0x19, 0x75, 0x08, 0x7c, 0x12, 0x08, 0x33,
|
||||
0x7e, 0xb3, 0x01, 0x26, 0xb4, 0x01, 0x39, 0x7e, 0xb3, 0x3f, 0xf2, 0x54, 0xfe, 0x7a, 0xb3, 0x3f,
|
||||
0xf2, 0x80, 0x2a, 0xb4, 0x07, 0x2a, 0x7e, 0xb3, 0x01, 0x25, 0x60, 0x24, 0x7c, 0x0b, 0x7e, 0x13,
|
||||
0x01, 0x26, 0x7e, 0x17, 0x01, 0x27, 0x75, 0x08, 0x73, 0x12, 0x08, 0x33, 0x7a, 0x01, 0x08, 0x12,
|
||||
0x08, 0x33, 0x7a, 0x11, 0x08, 0x12, 0x08, 0x33, 0x12, 0x07, 0x8b, 0x40, 0x03, 0x02, 0x02, 0x90,
|
||||
0x02, 0x07, 0x55, 0x7e, 0xb3, 0x01, 0x24, 0xb4, 0x0b, 0xf6, 0x75, 0x08, 0x7d, 0x12, 0x08, 0x33,
|
||||
0x7e, 0xb3, 0x01, 0x26, 0x7e, 0xa3, 0x01, 0x28, 0x4c, 0xab, 0x78, 0xe4, 0x80, 0xdf, 0x7e, 0xb3,
|
||||
0x01, 0x24, 0xb4, 0x0a, 0xdb, 0x75, 0x08, 0x7e, 0x12, 0x08, 0x33, 0x7e, 0xb3, 0x01, 0x26, 0x70,
|
||||
0xcf, 0xf5, 0xf3, 0x75, 0xf6, 0x01, 0x22, 0x02, 0x07, 0x55, 0x02, 0x07, 0x55, 0x02, 0x07, 0x55,
|
||||
0x7e, 0xb3, 0x01, 0x24, 0xb4, 0x04, 0x20, 0x75, 0x08, 0xc3, 0x12, 0x08, 0x33, 0x7e, 0x04, 0x00,
|
||||
0x01, 0x7e, 0x17, 0x01, 0x25, 0x7e, 0x18, 0x01, 0x34, 0x7a, 0x1c, 0x00, 0x00, 0x7e, 0x47, 0x01,
|
||||
0x29, 0x12, 0x08, 0x3f, 0x02, 0x06, 0xf4, 0xb4, 0x06, 0x3a, 0x75, 0x08, 0xc1, 0x12, 0x08, 0x33,
|
||||
0x7e, 0x58, 0x00, 0x00, 0x7a, 0x5c, 0x00, 0xfe, 0x7d, 0xca, 0x7e, 0xd7, 0x01, 0x25, 0x7e, 0x78,
|
||||
0x01, 0x34, 0x7a, 0x7c, 0x00, 0x00, 0x7e, 0x77, 0x01, 0x29, 0x75, 0x08, 0xc1, 0x12, 0x08, 0x33,
|
||||
0xc0, 0xa8, 0xc0, 0x87, 0xc2, 0xaf, 0xa9, 0xd5, 0x87, 0x12, 0x08, 0xd6, 0xd0, 0x87, 0xd0, 0xa8,
|
||||
0x40, 0x4f, 0x80, 0x4a, 0xb4, 0x00, 0x1c, 0xc2, 0xaf, 0xa9, 0xd5, 0x87, 0x12, 0x02, 0x90, 0xe4,
|
||||
0x8d, 0xef, 0x8d, 0xef, 0x8d, 0xef, 0xd5, 0xe0, 0xf7, 0xc0, 0xd1, 0xca, 0x02, 0xff, 0xca, 0x06,
|
||||
0x00, 0x00, 0x32, 0xb4, 0x09, 0x12, 0x7e, 0x57, 0x01, 0x25, 0x4d, 0x55, 0x68, 0x05, 0xa9, 0xd2,
|
||||
0xb1, 0x80, 0x03, 0xa9, 0xc2, 0xb1, 0x80, 0x16, 0xb4, 0x07, 0x16, 0xc2, 0xaf, 0x7e, 0x07, 0x01,
|
||||
0x27, 0x7e, 0x17, 0x01, 0x25, 0xc0, 0xd1, 0xca, 0x18, 0xca, 0x38, 0xca, 0x28, 0x32, 0x02, 0x02,
|
||||
0x90, 0x02, 0x07, 0x55, 0x7e, 0xb3, 0x01, 0x24, 0xb4, 0x03, 0x15, 0x75, 0x08, 0xc2, 0x12, 0x08,
|
||||
0x33, 0x7e, 0x04, 0x00, 0x01, 0x7e, 0x17, 0x01, 0x25, 0x7e, 0x57, 0x01, 0x29, 0x02, 0x02, 0x94,
|
||||
0xb4, 0x05, 0x39, 0x75, 0x08, 0xc0, 0x12, 0x08, 0x33, 0xc0, 0xa8, 0xc0, 0x87, 0xc2, 0xaf, 0xa9,
|
||||
0xd5, 0x87, 0x7e, 0x08, 0x01, 0x34, 0x7a, 0x0c, 0x00, 0x00, 0x7e, 0x24, 0x00, 0xfe, 0x7e, 0x37,
|
||||
0x01, 0x25, 0x7e, 0x47, 0x01, 0x29, 0x12, 0x08, 0x3f, 0xd0, 0x87, 0xd0, 0xa8, 0x7e, 0x08, 0x01,
|
||||
0x34, 0x7a, 0x0c, 0x00, 0x00, 0x7e, 0x57, 0x01, 0x29, 0x02, 0x02, 0x94, 0x02, 0x07, 0x55, 0x75,
|
||||
0x08, 0x07, 0x12, 0x08, 0x33, 0x43, 0xe1, 0xc0, 0x22, 0xc0, 0xa8, 0xc0, 0x87, 0xc2, 0xaf, 0xa9,
|
||||
0xd5, 0x87, 0x12, 0x07, 0xca, 0x40, 0x19, 0x7e, 0x08, 0x01, 0x34, 0x7a, 0x0c, 0x00, 0x00, 0xca,
|
||||
0x0b, 0xca, 0x49, 0x12, 0x08, 0x3f, 0xda, 0x59, 0xda, 0x0b, 0xd0, 0x87, 0xd0, 0xa8, 0xc3, 0x22,
|
||||
0xd0, 0x87, 0xd0, 0xa8, 0x22, 0xc0, 0xa8, 0xc0, 0x87, 0xc2, 0xaf, 0xa9, 0xd5, 0x87, 0x12, 0x07,
|
||||
0xca, 0x40, 0x2b, 0x7e, 0x58, 0x00, 0x00, 0x7a, 0x5c, 0x00, 0xfe, 0x7f, 0x61, 0x7e, 0x78, 0x01,
|
||||
0x34, 0x7a, 0x7c, 0x00, 0x00, 0x7e, 0x77, 0x01, 0x29, 0xbd, 0x74, 0x78, 0x11, 0x75, 0x08, 0xc1,
|
||||
0x12, 0x08, 0x33, 0x12, 0x08, 0xd6, 0x40, 0x06, 0xd0, 0x87, 0xd0, 0xa8, 0xc3, 0x22, 0xd0, 0x87,
|
||||
0xd0, 0xa8, 0xd3, 0x22, 0x7e, 0x24, 0x00, 0xfe, 0x7e, 0x34, 0x7f, 0xca, 0x0b, 0x1a, 0x50, 0xc5,
|
||||
0xf0, 0x7d, 0x62, 0x7d, 0x75, 0x7d, 0x87, 0x7e, 0x34, 0x7f, 0x03, 0x7e, 0x1b, 0xb0, 0xbc, 0x0b,
|
||||
0x50, 0x49, 0x3e, 0x00, 0x3e, 0x00, 0x0a, 0x50, 0x2d, 0x75, 0x0b, 0x3a, 0x30, 0x69, 0x53, 0x00,
|
||||
0x02, 0xbd, 0x38, 0x50, 0x02, 0x2d, 0x38, 0xbc, 0x1b, 0x50, 0x30, 0x3e, 0x10, 0x3e, 0x10, 0x0a,
|
||||
0x51, 0x2d, 0x35, 0x69, 0x41, 0x00, 0x02, 0x0b, 0x1a, 0x30, 0xbd, 0x38, 0x50, 0x02, 0x2d, 0x38,
|
||||
0xbe, 0x44, 0xff, 0xff, 0x78, 0x05, 0x7e, 0x1b, 0x90, 0x0a, 0x49, 0x4d, 0x44, 0x68, 0x0c, 0xbe,
|
||||
0x44, 0x00, 0xff, 0x28, 0x04, 0x7e, 0x44, 0x00, 0xff, 0xc3, 0x22, 0xd3, 0x22,
|
||||
|
||||
// Segment #16, EXCLUDED Start Address 00ff7c00, Length 199
|
||||
|
||||
|
||||
// Segment #17, EXCLUDED Start Address 00ff7f00, Length 192
|
||||
|
||||
|
||||
// Segment #17, Start Address 00ff7fc0, Length 64
|
||||
0xff,0x00,0xc0,0x7f,0x40,0x00,
|
||||
0x40, 0x01, 0x02, 0x00, 0xca, 0x1b, 0x01, 0x0c, 0x02, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x01, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
// Segment #18, Start Address 00ff0833, Length 5015
|
||||
0xff,0x00,0x33,0x08,0x97,0x13,
|
||||
0xca, 0x08, 0x7e, 0x01, 0x08, 0x7a, 0x03, 0x3f, 0xf0, 0xda, 0x08, 0x22, 0x80, 0x50, 0x0b, 0x1a,
|
||||
0x60, 0x0b, 0x35, 0x0b, 0x1a, 0x70, 0x0b, 0x35, 0x0b, 0x1a, 0x80, 0x0b, 0x35, 0x0b, 0x1a, 0x90,
|
||||
0x0b, 0x35, 0x0b, 0x1a, 0xa0, 0x0b, 0x35, 0x0b, 0x1a, 0xb0, 0x0b, 0x35, 0x0b, 0x1a, 0xc0, 0x0b,
|
||||
0x35, 0x0b, 0x1a, 0xd0, 0x0b, 0x35, 0x1b, 0x0a, 0x60, 0x0b, 0x15, 0x1b, 0x0a, 0x70, 0x0b, 0x15,
|
||||
0x1b, 0x0a, 0x80, 0x0b, 0x15, 0x1b, 0x0a, 0x90, 0x0b, 0x15, 0x1b, 0x0a, 0xa0, 0x0b, 0x15, 0x1b,
|
||||
0x0a, 0xb0, 0x0b, 0x15, 0x1b, 0x0a, 0xc0, 0x0b, 0x15, 0x1b, 0x0a, 0xd0, 0x0b, 0x15, 0x9e, 0x44,
|
||||
0x00, 0x10, 0x50, 0xaa, 0x2e, 0x44, 0x00, 0x10, 0x68, 0x0e, 0x7e, 0x1b, 0xc0, 0x7a, 0x0b, 0xc0,
|
||||
0x0b, 0x14, 0x0b, 0x34, 0x1b, 0x44, 0x78, 0xf2, 0x22, 0x7f, 0x6f, 0x7f, 0xf0, 0x1b, 0xfc, 0x7c,
|
||||
0x54, 0x7d, 0x32, 0x80, 0x08, 0xca, 0x1b, 0xca, 0x1b, 0xca, 0x1b, 0xca, 0x1b, 0x9e, 0x44, 0x00,
|
||||
0x10, 0x50, 0xf2, 0x2e, 0x44, 0x00, 0x10, 0x68, 0x06, 0xca, 0x48, 0x1b, 0x44, 0x78, 0xfa, 0x7f,
|
||||
0xf6, 0x89, 0xe4, 0xca, 0x6b, 0x5e, 0xd4, 0x00, 0x3f, 0x68, 0x20, 0x7e, 0x84, 0x00, 0x40, 0x9d,
|
||||
0x8d, 0xda, 0x6b, 0xbd, 0x87, 0x38, 0x16, 0xca, 0x79, 0x7d, 0x78, 0x12, 0x09, 0x00, 0xda, 0x79,
|
||||
0x40, 0x08, 0x9d, 0x78, 0x68, 0x02, 0x80, 0x05, 0xc2, 0xd7, 0x22, 0xda, 0x6b, 0x43, 0x90, 0x30,
|
||||
0x74, 0xaa, 0x39, 0xb5, 0x55, 0x55, 0x74, 0x55, 0x39, 0xb5, 0x2a, 0xaa, 0x74, 0xa0, 0x39, 0xb5,
|
||||
0x55, 0x55, 0x7e, 0x04, 0x00, 0x40, 0x9d, 0x70, 0x50, 0x06, 0x2d, 0x70, 0x7d, 0x07, 0x6d, 0x77,
|
||||
0x7c, 0x31, 0x7e, 0x7b, 0x00, 0x7a, 0x6b, 0x00, 0x0b, 0x7c, 0x0b, 0x6c, 0xa5, 0xd9, 0xf3, 0x7f,
|
||||
0x16, 0x1b, 0x1c, 0x7e, 0x54, 0x27, 0x10, 0x7e, 0x1b, 0x10, 0xbc, 0x10, 0x68, 0x06, 0x1b, 0x54,
|
||||
0x78, 0xf5, 0x80, 0x2c, 0x6d, 0x00, 0x7c, 0x20, 0x7f, 0x16, 0x9f, 0x10, 0x7f, 0x27, 0x9f, 0x20,
|
||||
0x7e, 0x2b, 0x00, 0x7e, 0x1b, 0x10, 0xbc, 0x01, 0x78, 0x16, 0x0b, 0x2c, 0x0b, 0x1c, 0xa5, 0xdb,
|
||||
0xef, 0x7c, 0xb6, 0x20, 0xe0, 0x03, 0x63, 0x90, 0x30, 0x4d, 0x77, 0x78, 0x93, 0xc2, 0xd7, 0x22,
|
||||
0xd2, 0xd7, 0x22, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x06, 0x04, 0x02, 0x04, 0x00, 0x02, 0x01,
|
||||
0x04, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02,
|
||||
0x04, 0x00, 0x08, 0x10, 0x02, 0x10, 0x04, 0x02, 0x08, 0x00, 0x01, 0x01, 0x08, 0x7e, 0x18, 0x7f,
|
||||
0xbd, 0x7a, 0x1c, 0x00, 0xff, 0x0b, 0x1a, 0x00, 0xbe, 0x10, 0x14, 0x38, 0x1a, 0x0a, 0x51, 0x23,
|
||||
0x7e, 0x18, 0x09, 0x76, 0x7a, 0x1c, 0x00, 0xff, 0x2d, 0x35, 0x0b, 0x1a, 0x50, 0x60, 0x08, 0xa5,
|
||||
0xb8, 0x02, 0x03, 0x4e, 0xa0, 0x08, 0x22, 0x80, 0xfe, 0x7e, 0xe8, 0x7f, 0xbf, 0x7a, 0xec, 0x00,
|
||||
0xff, 0xe0, 0xf5, 0x22, 0x54, 0xc0, 0x68, 0x16, 0x7e, 0xe8, 0x7f, 0xbe, 0x7a, 0xec, 0x00, 0xff,
|
||||
0xe0, 0x60, 0x0c, 0x12, 0x09, 0xa0, 0xf5, 0x09, 0x7a, 0xa1, 0x20, 0x02, 0x0f, 0x0a, 0x22, 0xc2,
|
||||
0x95, 0xd2, 0x94, 0x12, 0x19, 0xfb, 0x53, 0x90, 0xcf, 0x12, 0x19, 0xfb, 0x80, 0xf1, 0x0d, 0x0a,
|
||||
0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0d,
|
||||
0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a,
|
||||
0x45, 0x64, 0x67, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x34, 0x20, 0x2d, 0x20, 0x48, 0x61, 0x72,
|
||||
0x64, 0x77, 0x61, 0x72, 0x65, 0x20, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63,
|
||||
0x73, 0x2c, 0x20, 0x52, 0x65, 0x76, 0x20, 0x31, 0x2e, 0x30, 0x30, 0x3b, 0x20, 0x43, 0x6f, 0x70,
|
||||
0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x31, 0x39, 0x39, 0x38, 0x20, 0x49, 0x6e, 0x73, 0x69,
|
||||
0x64, 0x65, 0x20, 0x4f, 0x75, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x0d,
|
||||
0x0a, 0x00, 0x50, 0x61, 0x73, 0x73, 0x00, 0x46, 0x41, 0x49, 0x4c, 0x20, 0x21, 0x21, 0x00, 0x50,
|
||||
0x61, 0x73, 0x73, 0x20, 0x20, 0x20, 0x20, 0x00, 0x46, 0x41, 0x49, 0x4c, 0x20, 0x21, 0x21, 0x20,
|
||||
0x00, 0x0d, 0x0a, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x20, 0x52, 0x61, 0x6d, 0x3a, 0x20, 0x20,
|
||||
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
|
||||
0x20, 0x20, 0x00, 0x0d, 0x0a, 0x52, 0x61, 0x6d, 0x20, 0x54, 0x65, 0x73, 0x74, 0x3a, 0x20, 0x20,
|
||||
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
|
||||
0x20, 0x20, 0x20, 0x20, 0x00, 0x0d, 0x0a, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x62,
|
||||
0x69, 0x74, 0x20, 0x30, 0x2d, 0x31, 0x34, 0x20, 0x74, 0x65, 0x73, 0x74, 0x3a, 0x20, 0x20, 0x20,
|
||||
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x0d, 0x0a, 0x57, 0x72, 0x6f, 0x74, 0x65, 0x20, 0x41,
|
||||
0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x3a, 0x20, 0x30, 0x30, 0x3a, 0x00, 0x20, 0x20, 0x77, 0x69,
|
||||
0x74, 0x68, 0x20, 0x64, 0x61, 0x74, 0x61, 0x3a, 0x20, 0x00, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20,
|
||||
0x72, 0x65, 0x61, 0x64, 0x3a, 0x20, 0x00, 0x0d, 0x0a, 0x4f, 0x6e, 0x65, 0x20, 0x6f, 0x72, 0x20,
|
||||
0x62, 0x6f, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6f, 0x6c, 0x6c,
|
||||
0x6f, 0x77, 0x69, 0x6e, 0x67, 0x20, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x62, 0x69,
|
||||
0x74, 0x73, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x68,
|
||||
0x6f, 0x72, 0x74, 0x65, 0x64, 0x0d, 0x0a, 0x74, 0x6f, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x74, 0x68,
|
||||
0x69, 0x6e, 0x67, 0x3a, 0x20, 0x00, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x00, 0x0d, 0x0a, 0x44, 0x65,
|
||||
0x74, 0x65, 0x63, 0x74, 0x20, 0x55, 0x61, 0x72, 0x74, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
|
||||
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x0d, 0x0a,
|
||||
0x53, 0x63, 0x72, 0x61, 0x74, 0x63, 0x68, 0x20, 0x50, 0x61, 0x64, 0x2c, 0x46, 0x69, 0x46, 0x6f,
|
||||
0x20, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x26, 0x20, 0x52, 0x53, 0x54, 0x3a, 0x20, 0x00,
|
||||
0x0d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x55, 0x61, 0x72, 0x74, 0x20, 0x54, 0x65, 0x73, 0x74, 0x73,
|
||||
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
|
||||
0x20, 0x20, 0x20, 0x20, 0x50, 0x6f, 0x72, 0x74, 0x31, 0x20, 0x20, 0x20, 0x50, 0x6f, 0x72, 0x74,
|
||||
0x32, 0x20, 0x20, 0x20, 0x50, 0x6f, 0x72, 0x74, 0x33, 0x20, 0x20, 0x20, 0x50, 0x6f, 0x72, 0x74,
|
||||
0x34, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
|
||||
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
|
||||
0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
|
||||
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
|
||||
0x2d, 0x00, 0x0d, 0x0a, 0x50, 0x6f, 0x72, 0x74, 0x20, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x72,
|
||||
0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
|
||||
0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x0d, 0x0a, 0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x20,
|
||||
0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
|
||||
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x0d, 0x0a, 0x41, 0x6e, 0x61, 0x6c,
|
||||
0x6f, 0x67, 0x20, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x3a, 0x20, 0x20, 0x20, 0x20,
|
||||
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x0d, 0x0a,
|
||||
0x52, 0x58, 0x44, 0x2c, 0x54, 0x58, 0x44, 0x20, 0x74, 0x6f, 0x20, 0x52, 0x54, 0x53, 0x2c, 0x43,
|
||||
0x54, 0x53, 0x2c, 0x52, 0x49, 0x20, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x3a, 0x20, 0x20, 0x20, 0x20,
|
||||
0x20, 0x00, 0x0d, 0x0a, 0x52, 0x58, 0x44, 0x2c, 0x54, 0x58, 0x44, 0x20, 0x74, 0x6f, 0x20, 0x44,
|
||||
0x54, 0x52, 0x2c, 0x44, 0x53, 0x52, 0x2c, 0x43, 0x44, 0x20, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x3a,
|
||||
0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x0d, 0x0a, 0x52, 0x54, 0x53, 0x5b, 0x43, 0x54, 0x53, 0x2c,
|
||||
0x52, 0x49, 0x5d, 0x20, 0x74, 0x6f, 0x20, 0x44, 0x54, 0x52, 0x2c, 0x44, 0x53, 0x52, 0x2c, 0x43,
|
||||
0x44, 0x20, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x3a, 0x20, 0x00, 0x0d, 0x0a, 0x52, 0x54, 0x53, 0x5b,
|
||||
0x43, 0x54, 0x53, 0x2c, 0x43, 0x44, 0x5d, 0x20, 0x74, 0x6f, 0x20, 0x44, 0x53, 0x52, 0x2c, 0x52,
|
||||
0x49, 0x20, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x0d, 0x0a,
|
||||
0x44, 0x54, 0x52, 0x5b, 0x44, 0x53, 0x52, 0x2c, 0x43, 0x44, 0x5d, 0x20, 0x74, 0x6f, 0x20, 0x52,
|
||||
0x54, 0x53, 0x2c, 0x43, 0x54, 0x53, 0x2c, 0x52, 0x49, 0x20, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x3a,
|
||||
0x20, 0x00, 0x0d, 0x0a, 0x44, 0x54, 0x52, 0x20, 0x74, 0x6f, 0x20, 0x43, 0x54, 0x53, 0x2c, 0x43,
|
||||
0x44, 0x20, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
|
||||
0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x0d, 0x0a, 0x52, 0x54, 0x53, 0x20, 0x74, 0x6f, 0x20, 0x43,
|
||||
0x54, 0x53, 0x2c, 0x52, 0x49, 0x20, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x3a, 0x20,
|
||||
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x0d, 0x0a, 0x52, 0x54, 0x53, 0x20,
|
||||
0x74, 0x6f, 0x20, 0x43, 0x54, 0x53, 0x2c, 0x43, 0x44, 0x20, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61,
|
||||
0x63, 0x6b, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x0d, 0x0a,
|
||||
0x44, 0x54, 0x52, 0x20, 0x74, 0x6f, 0x20, 0x44, 0x53, 0x52, 0x2c, 0x43, 0x44, 0x20, 0x4c, 0x6f,
|
||||
0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
|
||||
0x20, 0x00, 0x0d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x45, 0x20, 0x52, 0x20, 0x52, 0x20, 0x4f, 0x20,
|
||||
0x52, 0x20, 0x21, 0x21, 0x21, 0x2c, 0x20, 0x45, 0x20, 0x52, 0x20, 0x52, 0x20, 0x4f, 0x20, 0x52,
|
||||
0x20, 0x21, 0x21, 0x21, 0x20, 0x2c, 0x20, 0x45, 0x20, 0x52, 0x20, 0x52, 0x20, 0x4f, 0x20, 0x52,
|
||||
0x20, 0x21, 0x21, 0x21, 0x0d, 0x0a, 0x0a, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69,
|
||||
0x63, 0x73, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x65, 0x6e, 0x74, 0x65,
|
||||
0x72, 0x20, 0x61, 0x20, 0x64, 0x65, 0x62, 0x75, 0x67, 0x20, 0x6c, 0x6f, 0x6f, 0x70, 0x20, 0x6f,
|
||||
0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x64, 0x65, 0x74, 0x65,
|
||||
0x63, 0x74, 0x65, 0x64, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x00, 0x0d, 0x0a, 0x0a, 0x4e,
|
||||
0x6f, 0x20, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72,
|
||||
0x73, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x2e, 0x0d, 0x0a, 0x00, 0x43, 0x6f,
|
||||
0x70, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20,
|
||||
0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x6c, 0x61, 0x76, 0x65, 0x27,
|
||||
0x73, 0x20, 0x45, 0x45, 0x70, 0x72, 0x6f, 0x6d, 0x20, 0x2e, 0x2e, 0x2e, 0x00, 0x44, 0x6f, 0x6e,
|
||||
0x65, 0x0d, 0x0a, 0x0a, 0x2d, 0x3e, 0x20, 0x54, 0x75, 0x72, 0x6e, 0x20, 0x75, 0x6e, 0x69, 0x74,
|
||||
0x20, 0x6f, 0x66, 0x66, 0x2c, 0x20, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74,
|
||||
0x20, 0x63, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x73,
|
||||
0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x20, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f,
|
||||
0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x00, 0xc2, 0xaf, 0xc2, 0x09, 0xc2, 0x0a, 0x75, 0x90, 0x0d,
|
||||
0x20, 0x17, 0x02, 0xd2, 0xb5, 0x43, 0x90, 0x30, 0x6c, 0x00, 0x7e, 0x10, 0x03, 0x12, 0x0f, 0x38,
|
||||
0x7e, 0x68, 0x0a, 0x01, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x0b, 0x00, 0x30, 0xb4, 0x02,
|
||||
0x80, 0x24, 0x02, 0x1b, 0x3c, 0x20, 0x09, 0x1d, 0xc2, 0x94, 0xd2, 0x95, 0x12, 0x19, 0xfb, 0x53,
|
||||
0x90, 0xcf, 0x12, 0x19, 0xfb, 0xc2, 0x95, 0xd2, 0x94, 0x12, 0x19, 0xfb, 0xa5, 0xd9, 0xe6, 0x43,
|
||||
0x90, 0x30, 0x12, 0x19, 0xfb, 0x22, 0x7e, 0x68, 0x0a, 0x94, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a,
|
||||
0x93, 0x7e, 0xe4, 0x10, 0x00, 0x7e, 0x40, 0x55, 0x7a, 0xe9, 0x40, 0x0b, 0xe4, 0x7e, 0x50, 0xaa,
|
||||
0x7a, 0xe9, 0x50, 0x1b, 0xe4, 0xbe, 0xe9, 0x40, 0x68, 0x19, 0x7e, 0x68, 0x0a, 0x7a, 0x7a, 0x6c,
|
||||
0x00, 0xff, 0x12, 0x1a, 0x93, 0x12, 0x1a, 0x08, 0x30, 0x09, 0x13, 0x7a, 0xe9, 0x40, 0x7e, 0xe9,
|
||||
0x10, 0x80, 0xf8, 0x7e, 0x68, 0x0a, 0x75, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x0b, 0x00,
|
||||
0x7e, 0x68, 0x0a, 0xd8, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x7e, 0x78, 0x00, 0x00, 0x7e,
|
||||
0x70, 0x0e, 0x7e, 0xa4, 0xff, 0xff, 0x7e, 0xb4, 0xbf, 0xff, 0x7d, 0xcb, 0x0e, 0xc4, 0x7d, 0xdc,
|
||||
0x5d, 0xdb, 0x6c, 0xbb, 0x7d, 0xfa, 0x5e, 0xf4, 0x7f, 0xff, 0x7a, 0x7b, 0xb0, 0x0b, 0xb0, 0x7d,
|
||||
0xfb, 0x5e, 0xf4, 0x7f, 0xff, 0x7a, 0x7b, 0xb0, 0x0b, 0xb0, 0x7d, 0xfc, 0x5e, 0xf4, 0x7f, 0xff,
|
||||
0x7a, 0x7b, 0xb0, 0x0b, 0xb0, 0x7d, 0xfd, 0x5e, 0xf4, 0x7f, 0xff, 0x7a, 0x7b, 0xb0, 0x6c, 0xbb,
|
||||
0x7d, 0xfa, 0x5e, 0xf4, 0x7f, 0xff, 0xbe, 0x7b, 0xb0, 0x78, 0x41, 0x0b, 0xb0, 0x7d, 0xfb, 0x5e,
|
||||
0xf4, 0x7f, 0xff, 0xbe, 0x7b, 0xb0, 0x78, 0x34, 0x0b, 0xb0, 0x7d, 0xfc, 0x5e, 0xf4, 0x7f, 0xff,
|
||||
0xbe, 0x7b, 0xb0, 0x78, 0x27, 0x0b, 0xb0, 0x7d, 0xfd, 0x5e, 0xf4, 0x7f, 0xff, 0xbe, 0x7b, 0xb0,
|
||||
0x78, 0x1a, 0x0b, 0xb0, 0xbe, 0xc4, 0xff, 0xfe, 0x78, 0x92, 0x0e, 0xb4, 0xa5, 0xdf, 0x8b, 0x7e,
|
||||
0x68, 0x0a, 0x82, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x80, 0x77, 0xca, 0x5b, 0xca, 0x6b,
|
||||
0x7e, 0x68, 0x0a, 0x8b, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x7e, 0x68, 0x0b, 0x2a, 0x7a,
|
||||
0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x0a, 0x47, 0x12, 0x1a, 0xc9, 0x7e, 0x68, 0x0b, 0x79, 0x7a,
|
||||
0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x6c, 0x77, 0xda, 0x6b, 0xca, 0x6b, 0x0b, 0x70, 0x0e, 0xc4,
|
||||
0xbe, 0xc4, 0xff, 0xff, 0x78, 0xf6, 0x1b, 0x70, 0x0a, 0x47, 0x12, 0x1a, 0xc9, 0x12, 0x1a, 0x08,
|
||||
0x30, 0x09, 0x30, 0xda, 0x6b, 0xda, 0x5b, 0x6c, 0xbb, 0x7e, 0x78, 0x00, 0x00, 0x7d, 0xfa, 0x5e,
|
||||
0xf4, 0x7f, 0xff, 0x7a, 0x7b, 0xb0, 0x7d, 0xfb, 0x5e, 0xf4, 0x7f, 0xff, 0x7a, 0x7b, 0xb0, 0x7d,
|
||||
0xfc, 0x5e, 0xf4, 0x7f, 0xff, 0x7a, 0x7b, 0xb0, 0x7d, 0xfd, 0x5e, 0xf4, 0x7f, 0xff, 0x7a, 0x7b,
|
||||
0xb0, 0x80, 0xd4, 0x7e, 0x68, 0x0a, 0xb6, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x30, 0x17,
|
||||
0x0e, 0x7e, 0x78, 0x04, 0x20, 0x7a, 0x7c, 0x00, 0x00, 0x7e, 0x44, 0x7b, 0xe0, 0x80, 0x0c, 0x7e,
|
||||
0x78, 0x00, 0x00, 0x7a, 0x7c, 0x00, 0x01, 0x7e, 0x44, 0x80, 0x00, 0x0b, 0x00, 0x7e, 0x40, 0x3a,
|
||||
0x7c, 0x54, 0x7f, 0x57, 0x7d, 0x84, 0x6c, 0x66, 0x7a, 0x5b, 0x50, 0x0b, 0x5c, 0x0b, 0x50, 0xa5,
|
||||
0xde, 0x02, 0x0b, 0x50, 0x1b, 0x84, 0x78, 0xf0, 0x7c, 0x54, 0x7f, 0x57, 0x7d, 0x84, 0x6c, 0x66,
|
||||
0xbe, 0x5b, 0x50, 0x78, 0x1a, 0x0b, 0x5c, 0x0b, 0x50, 0xa5, 0xde, 0x02, 0x0b, 0x50, 0x1b, 0x84,
|
||||
0x78, 0xee, 0x7e, 0x68, 0x0a, 0x75, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x80, 0x4b, 0x7f,
|
||||
0x45, 0x7e, 0x68, 0x0a, 0x7a, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x7e, 0x68, 0x0a, 0xfa,
|
||||
0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x7d, 0x4b, 0x12, 0x1a, 0xc9, 0x7e, 0x68, 0x0b, 0x0f,
|
||||
0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x6c, 0x88, 0x7c, 0x95, 0x12, 0x1a, 0xc9, 0x7e, 0x68,
|
||||
0x0b, 0x1d, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x7e, 0x4b, 0x90, 0x12, 0x1a, 0xc9, 0x12,
|
||||
0x1a, 0x08, 0x30, 0x09, 0x05, 0x7e, 0x4b, 0x90, 0x80, 0xfb, 0x7e, 0x68, 0x0b, 0x7f, 0x7a, 0x6c,
|
||||
0x00, 0xff, 0x12, 0x1a, 0x93, 0x0b, 0x00, 0xd2, 0x92, 0x7e, 0x24, 0x80, 0x00, 0x09, 0xb2, 0x00,
|
||||
0x08, 0xbe, 0xb0, 0x01, 0x78, 0x0b, 0x09, 0xb2, 0x00, 0x14, 0xbe, 0xb0, 0x60, 0x78, 0x02, 0x80,
|
||||
0x17, 0x7e, 0x68, 0x0a, 0x7a, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x12, 0x1a, 0x08, 0x30,
|
||||
0x09, 0x11, 0x09, 0xb2, 0x00, 0x08, 0x80, 0xfa, 0x7e, 0x68, 0x0a, 0x75, 0x7a, 0x6c, 0x00, 0xff,
|
||||
0x12, 0x1a, 0x93, 0x7e, 0x68, 0x0b, 0xa1, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x0b, 0x00,
|
||||
0xc2, 0x92, 0x12, 0x19, 0xee, 0x7e, 0x24, 0x80, 0x00, 0x7e, 0xa0, 0x55, 0x19, 0xa2, 0x00, 0x1c,
|
||||
0x7e, 0xb0, 0x01, 0x19, 0xb2, 0x00, 0x08, 0x09, 0xb2, 0x00, 0x1c, 0xbc, 0xab, 0x78, 0x37, 0x09,
|
||||
0xb2, 0x00, 0x08, 0x5e, 0xb0, 0xc0, 0xbe, 0xb0, 0xc0, 0x78, 0x2b, 0x7e, 0xa0, 0xaa, 0x19, 0xa2,
|
||||
0x00, 0x1c, 0x6c, 0xbb, 0x19, 0xb2, 0x00, 0x08, 0x09, 0xb2, 0x00, 0x1c, 0xbc, 0xab, 0x78, 0x16,
|
||||
0x09, 0xb2, 0x00, 0x08, 0x5e, 0xb0, 0xc0, 0x78, 0x0d, 0x7e, 0x68, 0x0a, 0x75, 0x7a, 0x6c, 0x00,
|
||||
0xff, 0x12, 0x1a, 0x93, 0x80, 0x1b, 0x7e, 0x68, 0x0a, 0x7a, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a,
|
||||
0x93, 0x12, 0x1a, 0x08, 0x30, 0x09, 0x0a, 0x19, 0xa2, 0x00, 0x1c, 0x09, 0xb2, 0x00, 0x1c, 0x80,
|
||||
0xf6, 0x7e, 0x68, 0x0b, 0xc3, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x7e, 0x68, 0x0c, 0x45,
|
||||
0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x7e, 0x24, 0x80, 0x00, 0x7e, 0x11, 0x09, 0x7e, 0xb0,
|
||||
0x01, 0x19, 0xb2, 0x00, 0x1c, 0x2e, 0x24, 0x01, 0x00, 0x0b, 0xb0, 0xa5, 0xd9, 0xf3, 0x7e, 0x24,
|
||||
0x80, 0x00, 0x7e, 0x11, 0x09, 0x7e, 0xb0, 0x01, 0x0b, 0x00, 0x09, 0xa2, 0x00, 0x1c, 0xbc, 0xab,
|
||||
0x78, 0x16, 0x7e, 0x68, 0x0a, 0x82, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x2e, 0x24, 0x01,
|
||||
0x00, 0x0b, 0xb0, 0xa5, 0xd9, 0xe2, 0x80, 0x25, 0x7e, 0x68, 0x0a, 0x8b, 0x7a, 0x6c, 0x00, 0xff,
|
||||
0x12, 0x1a, 0x93, 0x12, 0x1a, 0x08, 0x30, 0x09, 0xe4, 0x7e, 0x24, 0x80, 0x00, 0x7e, 0x11, 0x09,
|
||||
0x09, 0xa2, 0x00, 0x1c, 0x2e, 0x24, 0x01, 0x00, 0xa5, 0xd9, 0xf5, 0x80, 0xec, 0x7e, 0x68, 0x0c,
|
||||
0x69, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x12, 0x13, 0x8a, 0x7e, 0x24, 0x80, 0x00, 0x7e,
|
||||
0x11, 0x09, 0x0b, 0x00, 0x74, 0x10, 0x19, 0xb2, 0x00, 0x10, 0x12, 0x13, 0x03, 0x2e, 0x24, 0x01,
|
||||
0x00, 0xa5, 0xd9, 0xee, 0x7e, 0x68, 0x0c, 0x8d, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x7e,
|
||||
0x24, 0x80, 0x00, 0x7e, 0x11, 0x09, 0x0b, 0x00, 0xe4, 0x19, 0xb2, 0x00, 0x10, 0x12, 0x13, 0x03,
|
||||
0x2e, 0x24, 0x01, 0x00, 0xa5, 0xd9, 0xef, 0x30, 0x00, 0x03, 0x02, 0x18, 0xb7, 0x02, 0x13, 0xbb,
|
||||
0x74, 0x07, 0x19, 0xb2, 0x00, 0x08, 0x12, 0x19, 0xfb, 0x09, 0xb2, 0x00, 0x00, 0x09, 0xb2, 0x00,
|
||||
0x14, 0x09, 0xb2, 0x00, 0x00, 0x09, 0xb2, 0x00, 0x14, 0x09, 0xb2, 0x00, 0x00, 0x09, 0xb2, 0x00,
|
||||
0x14, 0x09, 0xb2, 0x00, 0x00, 0x09, 0xb2, 0x00, 0x14, 0xc2, 0x0b, 0x7e, 0xb0, 0x55, 0x12, 0x13,
|
||||
0x64, 0x7e, 0xb0, 0xaa, 0x12, 0x13, 0x64, 0x7e, 0xb0, 0x00, 0x12, 0x13, 0x64, 0x7e, 0xb0, 0xff,
|
||||
0x12, 0x13, 0x64, 0x30, 0x0b, 0x0f, 0x7e, 0x68, 0x0a, 0x8b, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a,
|
||||
0x93, 0x12, 0x1a, 0x08, 0x22, 0x7e, 0x68, 0x0a, 0x82, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93,
|
||||
0x22, 0x19, 0xb2, 0x00, 0x00, 0x12, 0x19, 0xee, 0x09, 0xa2, 0x00, 0x00, 0xbc, 0xab, 0x78, 0x01,
|
||||
0x22, 0x20, 0x09, 0x03, 0xd2, 0x0b, 0x22, 0x12, 0x1a, 0x08, 0x19, 0xb2, 0x00, 0x00, 0x12, 0x19,
|
||||
0xee, 0x09, 0xa2, 0x00, 0x00, 0x80, 0xf3, 0xd2, 0x92, 0x12, 0x19, 0xee, 0xc2, 0x92, 0x12, 0x19,
|
||||
0xee, 0x7e, 0x24, 0x80, 0x00, 0x7e, 0x11, 0x09, 0x74, 0x80, 0x19, 0xb2, 0x00, 0x0c, 0x7e, 0x54,
|
||||
0x00, 0x02, 0x19, 0xa2, 0x00, 0x04, 0x19, 0xb2, 0x00, 0x00, 0x74, 0x03, 0x19, 0xb2, 0x00, 0x0c,
|
||||
0x2e, 0x24, 0x01, 0x00, 0xa5, 0xd9, 0xe1, 0x22, 0x7e, 0x68, 0x0c, 0xb1, 0x7a, 0x6c, 0x00, 0xff,
|
||||
0x12, 0x1a, 0x93, 0x7e, 0x24, 0x80, 0x00, 0x7e, 0x11, 0x09, 0x0b, 0x00, 0x12, 0x19, 0xee, 0x09,
|
||||
0xb2, 0x00, 0x18, 0x7e, 0xa0, 0x55, 0x19, 0xa2, 0x00, 0x00, 0x12, 0x19, 0xee, 0x09, 0xb2, 0x00,
|
||||
0x18, 0x5e, 0xb0, 0x05, 0x78, 0x0d, 0x7e, 0x68, 0x0a, 0x82, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a,
|
||||
0x93, 0x80, 0x1a, 0x7e, 0x68, 0x0a, 0x8b, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x12, 0x1a,
|
||||
0x08, 0x30, 0x09, 0x09, 0x19, 0xa2, 0x00, 0x00, 0x12, 0x19, 0xee, 0x80, 0xf7, 0x2e, 0x24, 0x01,
|
||||
0x00, 0xa5, 0xd9, 0xb6, 0x7e, 0x68, 0x0c, 0xd5, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x7e,
|
||||
0x24, 0x80, 0x00, 0x7e, 0x11, 0x09, 0x0b, 0x00, 0x12, 0x19, 0xee, 0x09, 0xb2, 0x00, 0x18, 0x7e,
|
||||
0xa0, 0x55, 0x19, 0xa2, 0x00, 0x00, 0x12, 0x19, 0xee, 0x09, 0xb2, 0x00, 0x18, 0x5e, 0xb0, 0x0a,
|
||||
0x78, 0x0d, 0x7e, 0x68, 0x0a, 0x82, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x80, 0x1a, 0x7e,
|
||||
0x68, 0x0a, 0x8b, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x12, 0x1a, 0x08, 0x30, 0x09, 0x09,
|
||||
0x19, 0xa2, 0x00, 0x00, 0x12, 0x19, 0xee, 0x80, 0xf7, 0x2e, 0x24, 0x01, 0x00, 0xa5, 0xd9, 0xb6,
|
||||
0x30, 0x04, 0x03, 0x02, 0x16, 0x8c, 0x7e, 0x68, 0x0c, 0xf9, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a,
|
||||
0x93, 0x7e, 0x24, 0x80, 0x00, 0x7e, 0x11, 0x09, 0x0b, 0x00, 0x6c, 0xaa, 0x19, 0xa2, 0x00, 0x10,
|
||||
0x12, 0x19, 0xee, 0x09, 0xb2, 0x00, 0x18, 0x7e, 0xa0, 0x02, 0x19, 0xa2, 0x00, 0x10, 0x6c, 0xaa,
|
||||
0x19, 0xa2, 0x00, 0x10, 0x12, 0x19, 0xee, 0x09, 0xb2, 0x00, 0x18, 0x5e, 0xb0, 0x0a, 0x78, 0x3c,
|
||||
0x7e, 0xa0, 0x01, 0x19, 0xa2, 0x00, 0x10, 0x12, 0x19, 0xee, 0x09, 0xb2, 0x00, 0x18, 0x7e, 0xa0,
|
||||
0x03, 0x19, 0xa2, 0x00, 0x10, 0x7e, 0xa0, 0x01, 0x19, 0xa2, 0x00, 0x10, 0x12, 0x19, 0xee, 0x09,
|
||||
0xb2, 0x00, 0x18, 0x5e, 0xb0, 0x0a, 0x78, 0x14, 0x7e, 0x68, 0x0a, 0x82, 0x7a, 0x6c, 0x00, 0xff,
|
||||
0x12, 0x1a, 0x93, 0x2e, 0x24, 0x01, 0x00, 0xa5, 0xd9, 0x9e, 0x80, 0x20, 0x7e, 0x68, 0x0a, 0x8b,
|
||||
0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x12, 0x1a, 0x08, 0x30, 0x09, 0xe6, 0x7e, 0xa0, 0x02,
|
||||
0x19, 0xa2, 0x00, 0x10, 0x6c, 0xaa, 0x19, 0xa2, 0x00, 0x10, 0x80, 0xf1, 0x7e, 0x68, 0x0d, 0x41,
|
||||
0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x7e, 0x24, 0x80, 0x00, 0x7e, 0x11, 0x09, 0x0b, 0x00,
|
||||
0x6c, 0xaa, 0x19, 0xa2, 0x00, 0x10, 0x12, 0x19, 0xee, 0x09, 0xb2, 0x00, 0x18, 0x7e, 0xa0, 0x01,
|
||||
0x19, 0xa2, 0x00, 0x10, 0x6c, 0xaa, 0x19, 0xa2, 0x00, 0x10, 0x12, 0x19, 0xee, 0x09, 0xb2, 0x00,
|
||||
0x18, 0x5e, 0xb0, 0x05, 0x78, 0x3c, 0x7e, 0xa0, 0x02, 0x19, 0xa2, 0x00, 0x10, 0x12, 0x19, 0xee,
|
||||
0x09, 0xb2, 0x00, 0x18, 0x7e, 0xa0, 0x03, 0x19, 0xa2, 0x00, 0x10, 0x7e, 0xa0, 0x02, 0x19, 0xa2,
|
||||
0x00, 0x10, 0x12, 0x19, 0xee, 0x09, 0xb2, 0x00, 0x18, 0x5e, 0xb0, 0x05, 0x78, 0x14, 0x7e, 0x68,
|
||||
0x0a, 0x82, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x2e, 0x24, 0x01, 0x00, 0xa5, 0xd9, 0x9e,
|
||||
0x80, 0x20, 0x7e, 0x68, 0x0a, 0x8b, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x12, 0x1a, 0x08,
|
||||
0x30, 0x09, 0xe6, 0x7e, 0xa0, 0x01, 0x19, 0xa2, 0x00, 0x10, 0x6c, 0xaa, 0x19, 0xa2, 0x00, 0x10,
|
||||
0x80, 0xf1, 0x7e, 0x68, 0x0d, 0x89, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x7e, 0x24, 0x80,
|
||||
0x00, 0x7e, 0x11, 0x09, 0x0b, 0x00, 0x7e, 0xa0, 0x02, 0x19, 0xa2, 0x00, 0x10, 0x12, 0x19, 0xee,
|
||||
0x09, 0xb2, 0x00, 0x18, 0x5e, 0xb0, 0x50, 0xbe, 0xb0, 0x50, 0x78, 0x1f, 0x6c, 0xaa, 0x19, 0xa2,
|
||||
0x00, 0x10, 0x12, 0x19, 0xee, 0x09, 0xb2, 0x00, 0x18, 0x5e, 0xb0, 0x50, 0x78, 0x0d, 0x7e, 0x68,
|
||||
0x0a, 0x82, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x80, 0x20, 0x7e, 0x68, 0x0a, 0x8b, 0x7a,
|
||||
0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x12, 0x1a, 0x08, 0x30, 0x09, 0x0f, 0x7e, 0xa0, 0x02, 0x19,
|
||||
0xa2, 0x00, 0x10, 0x6c, 0xaa, 0x19, 0xa2, 0x00, 0x10, 0x80, 0xf1, 0x2e, 0x24, 0x01, 0x00, 0xa5,
|
||||
0xd9, 0xa2, 0x7e, 0x68, 0x0d, 0xd1, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x7e, 0x24, 0x80,
|
||||
0x00, 0x7e, 0x11, 0x09, 0x0b, 0x00, 0x09, 0xb2, 0x00, 0x18, 0x7e, 0xa0, 0x01, 0x19, 0xa2, 0x00,
|
||||
0x10, 0x12, 0x19, 0xee, 0x09, 0xb2, 0x00, 0x18, 0x5e, 0xb0, 0xa0, 0xbe, 0xb0, 0xa0, 0x78, 0x1f,
|
||||
0x6c, 0xaa, 0x19, 0xa2, 0x00, 0x10, 0x12, 0x19, 0xee, 0x09, 0xb2, 0x00, 0x18, 0x5e, 0xb0, 0xa0,
|
||||
0x78, 0x0d, 0x7e, 0x68, 0x0a, 0x82, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x80, 0x20, 0x7e,
|
||||
0x68, 0x0a, 0x8b, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x12, 0x1a, 0x08, 0x30, 0x09, 0x0f,
|
||||
0x7e, 0xa0, 0x01, 0x19, 0xa2, 0x00, 0x10, 0x6c, 0xaa, 0x19, 0xa2, 0x00, 0x10, 0x80, 0xf1, 0x2e,
|
||||
0x24, 0x01, 0x00, 0xa5, 0xd9, 0x9e, 0x02, 0x18, 0x2b, 0x7e, 0x68, 0x0d, 0x1d, 0x7a, 0x6c, 0x00,
|
||||
0xff, 0x12, 0x1a, 0x93, 0x7e, 0x24, 0x80, 0x00, 0x7e, 0x11, 0x09, 0x0b, 0x00, 0x6c, 0xaa, 0x19,
|
||||
0xa2, 0x00, 0x10, 0x12, 0x19, 0xee, 0x09, 0xb2, 0x00, 0x18, 0x7e, 0xa0, 0x02, 0x19, 0xa2, 0x00,
|
||||
0x10, 0x6c, 0xaa, 0x19, 0xa2, 0x00, 0x10, 0x12, 0x19, 0xee, 0x09, 0xb2, 0x00, 0x18, 0x5e, 0xb0,
|
||||
0x06, 0x78, 0x3c, 0x7e, 0xa0, 0x01, 0x19, 0xa2, 0x00, 0x10, 0x12, 0x19, 0xee, 0x09, 0xb2, 0x00,
|
||||
0x18, 0x7e, 0xa0, 0x03, 0x19, 0xa2, 0x00, 0x10, 0x7e, 0xa0, 0x01, 0x19, 0xa2, 0x00, 0x10, 0x12,
|
||||
0x19, 0xee, 0x09, 0xb2, 0x00, 0x18, 0x5e, 0xb0, 0x06, 0x78, 0x14, 0x7e, 0x68, 0x0a, 0x82, 0x7a,
|
||||
0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x2e, 0x24, 0x01, 0x00, 0xa5, 0xd9, 0x9e, 0x80, 0x20, 0x7e,
|
||||
0x68, 0x0a, 0x8b, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x12, 0x1a, 0x08, 0x30, 0x09, 0xe6,
|
||||
0x7e, 0xa0, 0x02, 0x19, 0xa2, 0x00, 0x10, 0x6c, 0xaa, 0x19, 0xa2, 0x00, 0x10, 0x80, 0xf1, 0x7e,
|
||||
0x68, 0x0d, 0x65, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x7e, 0x24, 0x80, 0x00, 0x7e, 0x11,
|
||||
0x09, 0x0b, 0x00, 0x6c, 0xaa, 0x19, 0xa2, 0x00, 0x10, 0x12, 0x19, 0xee, 0x09, 0xb2, 0x00, 0x18,
|
||||
0x7e, 0xa0, 0x01, 0x19, 0xa2, 0x00, 0x10, 0x6c, 0xaa, 0x19, 0xa2, 0x00, 0x10, 0x12, 0x19, 0xee,
|
||||
0x09, 0xb2, 0x00, 0x18, 0x5e, 0xb0, 0x09, 0x78, 0x3c, 0x7e, 0xa0, 0x02, 0x19, 0xa2, 0x00, 0x10,
|
||||
0x12, 0x19, 0xee, 0x09, 0xb2, 0x00, 0x18, 0x7e, 0xa0, 0x03, 0x19, 0xa2, 0x00, 0x10, 0x7e, 0xa0,
|
||||
0x02, 0x19, 0xa2, 0x00, 0x10, 0x12, 0x19, 0xee, 0x09, 0xb2, 0x00, 0x18, 0x5e, 0xb0, 0x09, 0x78,
|
||||
0x14, 0x7e, 0x68, 0x0a, 0x82, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x2e, 0x24, 0x01, 0x00,
|
||||
0xa5, 0xd9, 0x9e, 0x80, 0x20, 0x7e, 0x68, 0x0a, 0x8b, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93,
|
||||
0x12, 0x1a, 0x08, 0x30, 0x09, 0xe6, 0x7e, 0xa0, 0x01, 0x19, 0xa2, 0x00, 0x10, 0x6c, 0xaa, 0x19,
|
||||
0xa2, 0x00, 0x10, 0x80, 0xf1, 0x7e, 0x68, 0x0d, 0xad, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93,
|
||||
0x7e, 0x24, 0x80, 0x00, 0x7e, 0x11, 0x09, 0x0b, 0x00, 0x7e, 0xa0, 0x02, 0x19, 0xa2, 0x00, 0x10,
|
||||
0x12, 0x19, 0xee, 0x09, 0xb2, 0x00, 0x18, 0x5e, 0xb0, 0x90, 0xbe, 0xb0, 0x90, 0x78, 0x1f, 0x6c,
|
||||
0xaa, 0x19, 0xa2, 0x00, 0x10, 0x12, 0x19, 0xee, 0x09, 0xb2, 0x00, 0x18, 0x5e, 0xb0, 0x90, 0x78,
|
||||
0x0d, 0x7e, 0x68, 0x0a, 0x82, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x80, 0x20, 0x7e, 0x68,
|
||||
0x0a, 0x8b, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x12, 0x1a, 0x08, 0x30, 0x09, 0x0f, 0x7e,
|
||||
0xa0, 0x02, 0x19, 0xa2, 0x00, 0x10, 0x6c, 0xaa, 0x19, 0xa2, 0x00, 0x10, 0x80, 0xf1, 0x2e, 0x24,
|
||||
0x01, 0x00, 0xa5, 0xd9, 0xa2, 0x02, 0x18, 0xb7, 0x30, 0x17, 0x03, 0x02, 0x19, 0x3b, 0xc2, 0x8a,
|
||||
0x12, 0x19, 0x22, 0x7e, 0x24, 0x80, 0x00, 0x7e, 0x11, 0x09, 0x6c, 0xaa, 0x19, 0xa2, 0x00, 0x04,
|
||||
0x12, 0x19, 0xee, 0x0b, 0x00, 0x7e, 0xa0, 0x08, 0x19, 0xa2, 0x00, 0x10, 0x12, 0x19, 0xee, 0x20,
|
||||
0x8b, 0x3e, 0x20, 0x89, 0x3b, 0x7e, 0xa0, 0x08, 0x19, 0xa2, 0x00, 0x04, 0x09, 0xa2, 0x00, 0x10,
|
||||
0x4e, 0xa0, 0x02, 0x19, 0xa2, 0x00, 0x10, 0x12, 0x19, 0xee, 0x30, 0x8b, 0x23, 0x30, 0x89, 0x20,
|
||||
0x09, 0xa2, 0x00, 0x10, 0x5e, 0xa0, 0xfd, 0x19, 0xa2, 0x00, 0x10, 0x12, 0x19, 0xee, 0x7e, 0xa0,
|
||||
0x00, 0x19, 0xa2, 0x00, 0x04, 0x12, 0x19, 0xee, 0x20, 0x8b, 0x05, 0x20, 0x89, 0x02, 0x80, 0x1a,
|
||||
0x12, 0x1a, 0x08, 0x30, 0x09, 0x14, 0x7e, 0xa0, 0x02, 0x19, 0xa2, 0x00, 0x10, 0x00, 0x00, 0x5e,
|
||||
0xa0, 0xfd, 0x19, 0xa2, 0x00, 0x10, 0x00, 0x00, 0x80, 0xec, 0x2e, 0x24, 0x01, 0x00, 0xa5, 0xd9,
|
||||
0x89, 0x02, 0x19, 0x3b, 0x20, 0x17, 0xfa, 0x12, 0x13, 0x8a, 0x12, 0x19, 0x22, 0x7e, 0x24, 0x80,
|
||||
0x00, 0x7e, 0x11, 0x09, 0x0b, 0x00, 0x20, 0x89, 0x26, 0x7e, 0xa0, 0xff, 0x19, 0xa2, 0x00, 0x04,
|
||||
0x12, 0x19, 0xee, 0x7e, 0xb0, 0x55, 0x19, 0xb2, 0x00, 0x00, 0x12, 0x19, 0xee, 0x30, 0x89, 0x0f,
|
||||
0x7e, 0xa0, 0x00, 0x19, 0xa2, 0x00, 0x04, 0x12, 0x19, 0xee, 0x20, 0x89, 0x02, 0x80, 0x26, 0x12,
|
||||
0x1a, 0x08, 0x30, 0x09, 0x20, 0x7e, 0xa0, 0xff, 0x19, 0xa2, 0x00, 0x04, 0x12, 0x19, 0xee, 0x7e,
|
||||
0xb0, 0x55, 0x19, 0xb2, 0x00, 0x00, 0x12, 0x19, 0xee, 0x7e, 0xa0, 0x00, 0x19, 0xa2, 0x00, 0x04,
|
||||
0x12, 0x19, 0xee, 0x80, 0xe0, 0x2e, 0x24, 0x01, 0x00, 0xa5, 0xd9, 0xa8, 0x02, 0x19, 0x3b, 0x7e,
|
||||
0x24, 0x80, 0x00, 0x7e, 0x11, 0x09, 0x7e, 0xa0, 0x08, 0x19, 0xa2, 0x00, 0x10, 0x12, 0x19, 0xee,
|
||||
0x2e, 0x24, 0x01, 0x00, 0xa5, 0xd9, 0xef, 0x22, 0x30, 0x0a, 0x19, 0x7e, 0x68, 0x0d, 0xf5, 0x7a,
|
||||
0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0xd2, 0x09, 0x12, 0x19, 0xee, 0x12, 0x19, 0xee, 0x12, 0x19,
|
||||
0xee, 0x02, 0x0f, 0x10, 0x30, 0x17, 0x1c, 0x7e, 0x68, 0x0e, 0x6f, 0x7a, 0x6c, 0x00, 0xff, 0x12,
|
||||
0x1a, 0x93, 0x7e, 0x68, 0x0e, 0x91, 0x7a, 0x6c, 0x00, 0xff, 0x12, 0x1a, 0x93, 0x12, 0x1b, 0x3c,
|
||||
0x02, 0x19, 0xe6, 0x0b, 0x00, 0x7e, 0x78, 0x19, 0xa0, 0x7a, 0x7c, 0x00, 0xff, 0x7f, 0x67, 0x7a,
|
||||
0x6c, 0x00, 0x00, 0x7e, 0x70, 0x3e, 0x7e, 0x7b, 0xb0, 0x7a, 0x6b, 0xb0, 0x0b, 0x7c, 0x0b, 0x6c,
|
||||
0xa5, 0xdf, 0xf3, 0x7e, 0x78, 0x19, 0xa0, 0x7a, 0x7c, 0x00, 0x00, 0x89, 0x78, 0x7e, 0x78, 0x00,
|
||||
0x00, 0x7a, 0x7c, 0x00, 0xfe, 0x7e, 0x68, 0x7f, 0xbf, 0x7a, 0x6c, 0x00, 0xfe, 0x74, 0xaa, 0x39,
|
||||
0xb7, 0x55, 0x55, 0x74, 0x55, 0x39, 0xb7, 0x2a, 0xaa, 0x74, 0xa0, 0x39, 0xb7, 0x55, 0x55, 0x6c,
|
||||
0x99, 0x7a, 0x6b, 0x90, 0x7e, 0x54, 0x27, 0x10, 0x7e, 0x6b, 0x80, 0xbc, 0x89, 0x68, 0x08, 0x1b,
|
||||
0x54, 0x78, 0xf5, 0x8a, 0xff, 0x19, 0xde, 0x8a, 0xff, 0x19, 0xe6, 0x12, 0x1a, 0x08, 0x7e, 0x6b,
|
||||
0x80, 0x80, 0xfb, 0x7e, 0x10, 0xff, 0x12, 0x1a, 0x85, 0x80, 0xf8, 0xca, 0xf9, 0x7e, 0xf4, 0x00,
|
||||
0xff, 0x1b, 0xf4, 0x78, 0xfc, 0xda, 0xf9, 0x22, 0xca, 0xf9, 0x7e, 0xf4, 0x00, 0x00, 0x1b, 0xf4,
|
||||
0x78, 0xfc, 0xda, 0xf9, 0x22, 0x20, 0x09, 0x19, 0xd2, 0x0a, 0x12, 0x19, 0xfb, 0xc2, 0x95, 0xd2,
|
||||
0x94, 0x12, 0x19, 0xfb, 0x12, 0x19, 0xfb, 0x12, 0x19, 0xfb, 0x12, 0x19, 0xfb, 0x43, 0x90, 0x30,
|
||||
0x22, 0xca, 0x0b, 0x7e, 0x10, 0x03, 0x7c, 0x30, 0x6c, 0x22, 0x0b, 0x20, 0x9e, 0x30, 0x0a, 0x50,
|
||||
0xf9, 0x2e, 0x30, 0x0b, 0x1b, 0x20, 0x68, 0x18, 0x12, 0x19, 0xfb, 0x12, 0x19, 0xfb, 0x53, 0x90,
|
||||
0xcf, 0x12, 0x19, 0xfb, 0x12, 0x19, 0xfb, 0x12, 0x19, 0xfb, 0x43, 0x90, 0x30, 0xa5, 0xda, 0xe8,
|
||||
0x12, 0x19, 0xfb, 0x12, 0x19, 0xfb, 0x1b, 0x30, 0x68, 0x19, 0x12, 0x19, 0xfb, 0x12, 0x19, 0xfb,
|
||||
0xc2, 0x95, 0xd2, 0x94, 0x12, 0x19, 0xfb, 0x12, 0x19, 0xfb, 0x12, 0x19, 0xfb, 0x43, 0x90, 0x30,
|
||||
0xa5, 0xdb, 0xe7, 0x7e, 0x20, 0x0a, 0x12, 0x19, 0xfb, 0xa5, 0xda, 0xfa, 0xa5, 0xd9, 0xa7, 0xda,
|
||||
0x0b, 0x22, 0x20, 0x09, 0x0a, 0x12, 0x19, 0xfb, 0xb2, 0x94, 0x12, 0x19, 0xfb, 0xb2, 0x94, 0x22,
|
||||
0x30, 0x17, 0x32, 0x20, 0x09, 0x2f, 0xca, 0x2b, 0xca, 0x7b, 0x7e, 0x78, 0x80, 0x00, 0x7a, 0x7c,
|
||||
0x00, 0xfe, 0x12, 0x1b, 0x1c, 0x7e, 0x6b, 0xa0, 0x5c, 0xaa, 0x68, 0x10, 0x29, 0xb7, 0x00, 0x14,
|
||||
0x54, 0x60, 0x68, 0xf8, 0x39, 0xa7, 0x00, 0x00, 0x0b, 0x6c, 0x80, 0xe9, 0x12, 0x19, 0xee, 0xd2,
|
||||
0xb5, 0xda, 0x7b, 0xda, 0x2b, 0x22, 0x12, 0x1a, 0xd4, 0x7e, 0x68, 0x00, 0x0b, 0x12, 0x1a, 0x93,
|
||||
0x22, 0xca, 0x59, 0xca, 0x5b, 0x7e, 0xb4, 0x00, 0x0b, 0x7c, 0xb8, 0xc4, 0x12, 0x1b, 0x04, 0x7c,
|
||||
0xb8, 0x12, 0x1b, 0x04, 0x7c, 0xb9, 0xc4, 0x12, 0x1b, 0x04, 0x7c, 0xb9, 0x12, 0x1b, 0x04, 0x7e,
|
||||
0xb0, 0x68, 0x7a, 0xb9, 0xb0, 0x0b, 0xb4, 0x6c, 0xbb, 0x7a, 0xb9, 0xb0, 0xda, 0x59, 0xda, 0x5b,
|
||||
0x22, 0x5e, 0xb0, 0x0f, 0x7c, 0xab, 0x9e, 0xa0, 0x0a, 0x40, 0x05, 0x2e, 0xb0, 0x37, 0x80, 0x03,
|
||||
0x2e, 0xb0, 0x30, 0x7a, 0xb9, 0xb0, 0x0b, 0xb4, 0x22, 0xc2, 0xb5, 0xc2, 0x92, 0x12, 0x19, 0xee,
|
||||
0x74, 0x80, 0x39, 0xb7, 0x00, 0x0c, 0x7e, 0x54, 0x00, 0x06, 0x39, 0xa7, 0x00, 0x04, 0x39, 0xb7,
|
||||
0x00, 0x00, 0x74, 0x03, 0x39, 0xb7, 0x00, 0x0c, 0x22, 0x7e, 0x78, 0x00, 0x00, 0x7a, 0x7c, 0x00,
|
||||
0xff, 0x7e, 0x58, 0x00, 0x00, 0x7a, 0x5c, 0x00, 0x01, 0x7f, 0x65, 0x7e, 0x74, 0x20, 0x00, 0x12,
|
||||
0x08, 0xd6, 0x40, 0x54, 0x7e, 0x78, 0x7c, 0x00, 0x7a, 0x7c, 0x00, 0xff, 0x7e, 0x58, 0x00, 0x00,
|
||||
0x7a, 0x5c, 0x00, 0x01, 0x7e, 0x68, 0x7c, 0x00, 0x7a, 0x6c, 0x00, 0x01, 0x7e, 0x74, 0x04, 0x00,
|
||||
0x12, 0x08, 0xd6, 0x40, 0x33, 0x74, 0x80, 0x12, 0x1b, 0xb1, 0x40, 0x2c, 0x53, 0x90, 0xcf, 0xd2,
|
||||
0x08, 0x7e, 0x04, 0x00, 0x08, 0x7e, 0x14, 0x00, 0x00, 0x84, 0xa5, 0xdb, 0xfc, 0xa5, 0xda, 0xf9,
|
||||
0xa5, 0xd9, 0xf6, 0x74, 0x40, 0x12, 0x1b, 0xb1, 0x40, 0x0e, 0x7e, 0x68, 0x0e, 0xc0, 0x7a, 0x6c,
|
||||
0x00, 0xff, 0x12, 0x1a, 0x93, 0x02, 0x19, 0xe6, 0xc2, 0x95, 0xd2, 0x94, 0x80, 0xfe, 0xf5, 0x0a,
|
||||
0x7e, 0x78, 0x00, 0x0a, 0x7a, 0x7c, 0x00, 0x00, 0x7e, 0x68, 0x7f, 0xbf, 0x7a, 0x6c, 0x00, 0x01,
|
||||
0x7e, 0x74, 0x00, 0x01, 0x02, 0x08, 0xd6,
|
||||
};
|
||||
|
||||
static struct edge_firmware_version_info IMAGE_VERSION_NAME = {
|
||||
1, 12, 2 }; // Major, Minor, Build
|
||||
|
||||
#undef IMAGE_VERSION_NAME
|
||||
|
||||
#undef IMAGE_ARRAY_NAME
|
||||
|
|
@ -1,546 +0,0 @@
|
|||
//**************************************************************
|
||||
//* Edgeport/4 Binary Image
|
||||
//* Generated by HEX2C v1.06
|
||||
//* Copyright (C) 1998 Inside Out Networks, All rights reserved.
|
||||
//* 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
|
||||
//* the Free Software Foundation; either version 2 of the License, or
|
||||
//* (at your option) any later version.
|
||||
//**************************************************************
|
||||
|
||||
|
||||
//Image structure definition
|
||||
#if !defined(DEFINED_EDGE_FIRMWARE_IMAGE_RECORD)
|
||||
#define DEFINED_EDGE_FIRMWARE_IMAGE_RECORD
|
||||
struct edge_firmware_image_record {
|
||||
__le16 ExtAddr;
|
||||
__le16 Addr;
|
||||
__le16 Len;
|
||||
unsigned char Data[0];
|
||||
} __attribute__ ((packed));
|
||||
|
||||
struct edge_firmware_version_info {
|
||||
unsigned char MajorVersion;
|
||||
unsigned char MinorVersion;
|
||||
unsigned short BuildNumber;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
#if !defined(IMAGE_ARRAY_NAME)
|
||||
#define IMAGE_ARRAY_NAME FirmwareImage
|
||||
#define IMAGE_VERSION_NAME FirmwareImageVersion
|
||||
#endif
|
||||
|
||||
static unsigned char IMAGE_ARRAY_NAME[] = {
|
||||
|
||||
// Segment #1, Start Address 00ff0000, Length 6
|
||||
0xff,0x00,0x00,0x00,0x06,0x00,
|
||||
0x02, 0x00, 0x80, 0x02, 0x00, 0x03,
|
||||
|
||||
// Segment #2, Start Address 00ff000b, Length 3
|
||||
0xff,0x00,0x0b,0x00,0x03,0x00,
|
||||
0x02, 0x00, 0x0b,
|
||||
|
||||
// Segment #3, Start Address 00ff0013, Length 3
|
||||
0xff,0x00,0x13,0x00,0x03,0x00,
|
||||
0x02, 0x02, 0x56,
|
||||
|
||||
// Segment #4, Start Address 00ff001b, Length 3
|
||||
0xff,0x00,0x1b,0x00,0x03,0x00,
|
||||
0x02, 0x00, 0x1b,
|
||||
|
||||
// Segment #5, Start Address 00ff0023, Length 3
|
||||
0xff,0x00,0x23,0x00,0x03,0x00,
|
||||
0x02, 0x00, 0x23,
|
||||
|
||||
// Segment #6, Start Address 00ff002b, Length 3
|
||||
0xff,0x00,0x2b,0x00,0x03,0x00,
|
||||
0x02, 0x00, 0x2b,
|
||||
|
||||
// Segment #7, Start Address 00ff0033, Length 3
|
||||
0xff,0x00,0x33,0x00,0x03,0x00,
|
||||
0x02, 0x00, 0x33,
|
||||
|
||||
// Segment #8, Start Address 00ff003b, Length 3
|
||||
0xff,0x00,0x3b,0x00,0x03,0x00,
|
||||
0x02, 0x00, 0x3b,
|
||||
|
||||
// Segment #9, Start Address 00ff0043, Length 3
|
||||
0xff,0x00,0x43,0x00,0x03,0x00,
|
||||
0x02, 0x00, 0x43,
|
||||
|
||||
// Segment #10, Start Address 00ff004b, Length 3
|
||||
0xff,0x00,0x4b,0x00,0x03,0x00,
|
||||
0x02, 0x00, 0x4b,
|
||||
|
||||
// Segment #11, Start Address 00ff0053, Length 3
|
||||
0xff,0x00,0x53,0x00,0x03,0x00,
|
||||
0x02, 0x01, 0xf5,
|
||||
|
||||
// Segment #12, Start Address 00ff007b, Length 3
|
||||
0xff,0x00,0x7b,0x00,0x03,0x00,
|
||||
0x02, 0x00, 0x7b,
|
||||
|
||||
// Segment #13, Start Address 00ff0080, Length 534
|
||||
0xff,0x00,0x80,0x00,0x16,0x02,
|
||||
0x7e, 0xb3, 0x91, 0x01, 0x20, 0xe3, 0x0c, 0x7e, 0xb3, 0x3f, 0xf2, 0x54, 0xfe, 0x7a, 0xb3, 0x3f,
|
||||
0xf2, 0x80, 0x0a, 0x7e, 0xb3, 0x3f, 0xf2, 0x44, 0x01, 0x7a, 0xb3, 0x3f, 0xf2, 0x74, 0x00, 0x7a,
|
||||
0xb3, 0x91, 0x00, 0x74, 0x01, 0x7a, 0xb3, 0x91, 0x12, 0x7e, 0xf8, 0x00, 0x24, 0x7e, 0x00, 0x01,
|
||||
0x7e, 0x10, 0x00, 0x12, 0x09, 0xd0, 0x69, 0x20, 0x00, 0x0a, 0x5e, 0x40, 0x1f, 0xbe, 0x24, 0x00,
|
||||
0x00, 0x78, 0x09, 0x7e, 0x00, 0x03, 0x7a, 0x03, 0x90, 0x00, 0x80, 0x07, 0x7e, 0x00, 0x02, 0x7a,
|
||||
0x03, 0x90, 0x00, 0x75, 0xb0, 0xdf, 0x7e, 0x00, 0x01, 0x7a, 0x03, 0x94, 0x00, 0x7a, 0x03, 0x01,
|
||||
0x24, 0x7e, 0x00, 0x01, 0x7a, 0x03, 0x93, 0x00, 0x7e, 0x00, 0x00, 0xa5, 0xd8, 0xfd, 0x75, 0xa8,
|
||||
0x00, 0x75, 0xb1, 0x00, 0xca, 0x29, 0x12, 0x0c, 0x66, 0x12, 0x0c, 0x37, 0xf5, 0x21, 0x7a, 0xa1,
|
||||
0x20, 0x20, 0x09, 0x08, 0x20, 0x0a, 0x0a, 0x7e, 0xb0, 0x0c, 0x80, 0x08, 0x7e, 0xb0, 0x00, 0x80,
|
||||
0x03, 0x7e, 0xb0, 0x08, 0x7a, 0xb3, 0x92, 0x00, 0x12, 0x02, 0x96, 0xda, 0x29, 0x74, 0x10, 0x7a,
|
||||
0xb3, 0x91, 0x01, 0x7e, 0x20, 0x04, 0x7c, 0xb2, 0xc2, 0xd7, 0x13, 0x13, 0x13, 0x13, 0x7a, 0xb3,
|
||||
0x91, 0x00, 0x74, 0x00, 0x7a, 0xb3, 0x91, 0x10, 0x74, 0x60, 0x7a, 0xb3, 0x91, 0x1c, 0x74, 0x02,
|
||||
0x7a, 0xb3, 0x91, 0x12, 0xa5, 0xda, 0xdf, 0x74, 0x00, 0x7a, 0xb3, 0x91, 0x00, 0x74, 0x60, 0x7a,
|
||||
0xb3, 0x91, 0x1c, 0x74, 0x10, 0x7a, 0xb3, 0x91, 0x06, 0x74, 0x10, 0x7a, 0xb3, 0x91, 0x07, 0x74,
|
||||
0x34, 0x7a, 0xb3, 0x91, 0x13, 0x74, 0x3f, 0x7a, 0xb3, 0x91, 0x14, 0x74, 0x02, 0x7a, 0xb3, 0x91,
|
||||
0x06, 0x74, 0x01, 0x7a, 0xb3, 0x91, 0x07, 0x74, 0x03, 0x7a, 0xb3, 0x91, 0x06, 0x74, 0x44, 0x7a,
|
||||
0xb3, 0x91, 0x07, 0x74, 0xef, 0x7a, 0xb3, 0x91, 0x04, 0x74, 0x07, 0x7a, 0xb3, 0x91, 0x06, 0x7e,
|
||||
0xb3, 0x91, 0x07, 0x7a, 0xb1, 0x0a, 0x75, 0x09, 0x01, 0xd2, 0xaa, 0xd2, 0xaf, 0xe4, 0x7e, 0x60,
|
||||
0x02, 0x4d, 0x22, 0x78, 0x03, 0x7e, 0x60, 0x03, 0x7c, 0x76, 0x7e, 0x04, 0x28, 0x00, 0x8d, 0xef,
|
||||
0x1b, 0x04, 0x78, 0xfa, 0x04, 0x7e, 0x20, 0x07, 0x7a, 0x23, 0x91, 0x06, 0x7e, 0x23, 0x91, 0x07, |