firmware: convert e100 driver to request_firmware()
Thanks to David Woodhouse for help. Signed-off-by: Jaswinder Singh Rajput <jaswinderrajput@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
92dc8cc317
commit
9ac32e1bc0
6 changed files with 219 additions and 196 deletions
|
@ -161,6 +161,7 @@
|
||||||
#include <linux/skbuff.h>
|
#include <linux/skbuff.h>
|
||||||
#include <linux/ethtool.h>
|
#include <linux/ethtool.h>
|
||||||
#include <linux/string.h>
|
#include <linux/string.h>
|
||||||
|
#include <linux/firmware.h>
|
||||||
#include <asm/unaligned.h>
|
#include <asm/unaligned.h>
|
||||||
|
|
||||||
|
|
||||||
|
@ -174,10 +175,17 @@
|
||||||
#define E100_WATCHDOG_PERIOD (2 * HZ)
|
#define E100_WATCHDOG_PERIOD (2 * HZ)
|
||||||
#define E100_NAPI_WEIGHT 16
|
#define E100_NAPI_WEIGHT 16
|
||||||
|
|
||||||
|
#define FIRMWARE_D101M "e100/d101m_ucode.bin"
|
||||||
|
#define FIRMWARE_D101S "e100/d101s_ucode.bin"
|
||||||
|
#define FIRMWARE_D102E "e100/d102e_ucode.bin"
|
||||||
|
|
||||||
MODULE_DESCRIPTION(DRV_DESCRIPTION);
|
MODULE_DESCRIPTION(DRV_DESCRIPTION);
|
||||||
MODULE_AUTHOR(DRV_COPYRIGHT);
|
MODULE_AUTHOR(DRV_COPYRIGHT);
|
||||||
MODULE_LICENSE("GPL");
|
MODULE_LICENSE("GPL");
|
||||||
MODULE_VERSION(DRV_VERSION);
|
MODULE_VERSION(DRV_VERSION);
|
||||||
|
MODULE_FIRMWARE(FIRMWARE_D101M);
|
||||||
|
MODULE_FIRMWARE(FIRMWARE_D101S);
|
||||||
|
MODULE_FIRMWARE(FIRMWARE_D102E);
|
||||||
|
|
||||||
static int debug = 3;
|
static int debug = 3;
|
||||||
static int eeprom_bad_csum_allow = 0;
|
static int eeprom_bad_csum_allow = 0;
|
||||||
|
@ -1049,178 +1057,6 @@ static void e100_configure(struct nic *nic, struct cb *cb, struct sk_buff *skb)
|
||||||
c[16], c[17], c[18], c[19], c[20], c[21], c[22], c[23]);
|
c[16], c[17], c[18], c[19], c[20], c[21], c[22], c[23]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/********************************************************/
|
|
||||||
/* Micro code for 8086:1229 Rev 8 */
|
|
||||||
/********************************************************/
|
|
||||||
|
|
||||||
/* Parameter values for the D101M B-step */
|
|
||||||
#define D101M_CPUSAVER_TIMER_DWORD 78
|
|
||||||
#define D101M_CPUSAVER_BUNDLE_DWORD 65
|
|
||||||
#define D101M_CPUSAVER_MIN_SIZE_DWORD 126
|
|
||||||
|
|
||||||
#define D101M_B_RCVBUNDLE_UCODE \
|
|
||||||
{\
|
|
||||||
0x00550215, 0xFFFF0437, 0xFFFFFFFF, 0x06A70789, 0xFFFFFFFF, 0x0558FFFF, \
|
|
||||||
0x000C0001, 0x00101312, 0x000C0008, 0x00380216, \
|
|
||||||
0x0010009C, 0x00204056, 0x002380CC, 0x00380056, \
|
|
||||||
0x0010009C, 0x00244C0B, 0x00000800, 0x00124818, \
|
|
||||||
0x00380438, 0x00000000, 0x00140000, 0x00380555, \
|
|
||||||
0x00308000, 0x00100662, 0x00100561, 0x000E0408, \
|
|
||||||
0x00134861, 0x000C0002, 0x00103093, 0x00308000, \
|
|
||||||
0x00100624, 0x00100561, 0x000E0408, 0x00100861, \
|
|
||||||
0x000C007E, 0x00222C21, 0x000C0002, 0x00103093, \
|
|
||||||
0x00380C7A, 0x00080000, 0x00103090, 0x00380C7A, \
|
|
||||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
|
|
||||||
0x0010009C, 0x00244C2D, 0x00010004, 0x00041000, \
|
|
||||||
0x003A0437, 0x00044010, 0x0038078A, 0x00000000, \
|
|
||||||
0x00100099, 0x00206C7A, 0x0010009C, 0x00244C48, \
|
|
||||||
0x00130824, 0x000C0001, 0x00101213, 0x00260C75, \
|
|
||||||
0x00041000, 0x00010004, 0x00130826, 0x000C0006, \
|
|
||||||
0x002206A8, 0x0013C926, 0x00101313, 0x003806A8, \
|
|
||||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
|
|
||||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
|
|
||||||
0x00080600, 0x00101B10, 0x00050004, 0x00100826, \
|
|
||||||
0x00101210, 0x00380C34, 0x00000000, 0x00000000, \
|
|
||||||
0x0021155B, 0x00100099, 0x00206559, 0x0010009C, \
|
|
||||||
0x00244559, 0x00130836, 0x000C0000, 0x00220C62, \
|
|
||||||
0x000C0001, 0x00101B13, 0x00229C0E, 0x00210C0E, \
|
|
||||||
0x00226C0E, 0x00216C0E, 0x0022FC0E, 0x00215C0E, \
|
|
||||||
0x00214C0E, 0x00380555, 0x00010004, 0x00041000, \
|
|
||||||
0x00278C67, 0x00040800, 0x00018100, 0x003A0437, \
|
|
||||||
0x00130826, 0x000C0001, 0x00220559, 0x00101313, \
|
|
||||||
0x00380559, 0x00000000, 0x00000000, 0x00000000, \
|
|
||||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
|
|
||||||
0x00000000, 0x00130831, 0x0010090B, 0x00124813, \
|
|
||||||
0x000CFF80, 0x002606AB, 0x00041000, 0x00010004, \
|
|
||||||
0x003806A8, 0x00000000, 0x00000000, 0x00000000, \
|
|
||||||
}
|
|
||||||
|
|
||||||
/********************************************************/
|
|
||||||
/* Micro code for 8086:1229 Rev 9 */
|
|
||||||
/********************************************************/
|
|
||||||
|
|
||||||
/* Parameter values for the D101S */
|
|
||||||
#define D101S_CPUSAVER_TIMER_DWORD 78
|
|
||||||
#define D101S_CPUSAVER_BUNDLE_DWORD 67
|
|
||||||
#define D101S_CPUSAVER_MIN_SIZE_DWORD 128
|
|
||||||
|
|
||||||
#define D101S_RCVBUNDLE_UCODE \
|
|
||||||
{\
|
|
||||||
0x00550242, 0xFFFF047E, 0xFFFFFFFF, 0x06FF0818, 0xFFFFFFFF, 0x05A6FFFF, \
|
|
||||||
0x000C0001, 0x00101312, 0x000C0008, 0x00380243, \
|
|
||||||
0x0010009C, 0x00204056, 0x002380D0, 0x00380056, \
|
|
||||||
0x0010009C, 0x00244F8B, 0x00000800, 0x00124818, \
|
|
||||||
0x0038047F, 0x00000000, 0x00140000, 0x003805A3, \
|
|
||||||
0x00308000, 0x00100610, 0x00100561, 0x000E0408, \
|
|
||||||
0x00134861, 0x000C0002, 0x00103093, 0x00308000, \
|
|
||||||
0x00100624, 0x00100561, 0x000E0408, 0x00100861, \
|
|
||||||
0x000C007E, 0x00222FA1, 0x000C0002, 0x00103093, \
|
|
||||||
0x00380F90, 0x00080000, 0x00103090, 0x00380F90, \
|
|
||||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
|
|
||||||
0x0010009C, 0x00244FAD, 0x00010004, 0x00041000, \
|
|
||||||
0x003A047E, 0x00044010, 0x00380819, 0x00000000, \
|
|
||||||
0x00100099, 0x00206FFD, 0x0010009A, 0x0020AFFD, \
|
|
||||||
0x0010009C, 0x00244FC8, 0x00130824, 0x000C0001, \
|
|
||||||
0x00101213, 0x00260FF7, 0x00041000, 0x00010004, \
|
|
||||||
0x00130826, 0x000C0006, 0x00220700, 0x0013C926, \
|
|
||||||
0x00101313, 0x00380700, 0x00000000, 0x00000000, \
|
|
||||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
|
|
||||||
0x00080600, 0x00101B10, 0x00050004, 0x00100826, \
|
|
||||||
0x00101210, 0x00380FB6, 0x00000000, 0x00000000, \
|
|
||||||
0x002115A9, 0x00100099, 0x002065A7, 0x0010009A, \
|
|
||||||
0x0020A5A7, 0x0010009C, 0x002445A7, 0x00130836, \
|
|
||||||
0x000C0000, 0x00220FE4, 0x000C0001, 0x00101B13, \
|
|
||||||
0x00229F8E, 0x00210F8E, 0x00226F8E, 0x00216F8E, \
|
|
||||||
0x0022FF8E, 0x00215F8E, 0x00214F8E, 0x003805A3, \
|
|
||||||
0x00010004, 0x00041000, 0x00278FE9, 0x00040800, \
|
|
||||||
0x00018100, 0x003A047E, 0x00130826, 0x000C0001, \
|
|
||||||
0x002205A7, 0x00101313, 0x003805A7, 0x00000000, \
|
|
||||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
|
|
||||||
0x00000000, 0x00000000, 0x00000000, 0x00130831, \
|
|
||||||
0x0010090B, 0x00124813, 0x000CFF80, 0x00260703, \
|
|
||||||
0x00041000, 0x00010004, 0x00380700 \
|
|
||||||
}
|
|
||||||
|
|
||||||
/********************************************************/
|
|
||||||
/* Micro code for the 8086:1229 Rev F/10 */
|
|
||||||
/********************************************************/
|
|
||||||
|
|
||||||
/* Parameter values for the D102 E-step */
|
|
||||||
#define D102_E_CPUSAVER_TIMER_DWORD 42
|
|
||||||
#define D102_E_CPUSAVER_BUNDLE_DWORD 54
|
|
||||||
#define D102_E_CPUSAVER_MIN_SIZE_DWORD 46
|
|
||||||
|
|
||||||
#define D102_E_RCVBUNDLE_UCODE \
|
|
||||||
{\
|
|
||||||
0x007D028F, 0x0E4204F9, 0x14ED0C85, 0x14FA14E9, 0x0EF70E36, 0x1FFF1FFF, \
|
|
||||||
0x00E014B9, 0x00000000, 0x00000000, 0x00000000, \
|
|
||||||
0x00E014BD, 0x00000000, 0x00000000, 0x00000000, \
|
|
||||||
0x00E014D5, 0x00000000, 0x00000000, 0x00000000, \
|
|
||||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
|
|
||||||
0x00E014C1, 0x00000000, 0x00000000, 0x00000000, \
|
|
||||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
|
|
||||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
|
|
||||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
|
|
||||||
0x00E014C8, 0x00000000, 0x00000000, 0x00000000, \
|
|
||||||
0x00200600, 0x00E014EE, 0x00000000, 0x00000000, \
|
|
||||||
0x0030FF80, 0x00940E46, 0x00038200, 0x00102000, \
|
|
||||||
0x00E00E43, 0x00000000, 0x00000000, 0x00000000, \
|
|
||||||
0x00300006, 0x00E014FB, 0x00000000, 0x00000000, \
|
|
||||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
|
|
||||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
|
|
||||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
|
|
||||||
0x00906E41, 0x00800E3C, 0x00E00E39, 0x00000000, \
|
|
||||||
0x00906EFD, 0x00900EFD, 0x00E00EF8, 0x00000000, \
|
|
||||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
|
|
||||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
|
|
||||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
|
|
||||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
|
|
||||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
|
|
||||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
|
|
||||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
|
|
||||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
|
|
||||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
|
|
||||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
|
|
||||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
|
|
||||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
|
|
||||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
|
|
||||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
|
|
||||||
}
|
|
||||||
|
|
||||||
static void e100_setup_ucode(struct nic *nic, struct cb *cb, struct sk_buff *skb)
|
|
||||||
{
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
static struct {
|
|
||||||
u32 ucode[UCODE_SIZE + 1];
|
|
||||||
u8 mac;
|
|
||||||
u8 timer_dword;
|
|
||||||
u8 bundle_dword;
|
|
||||||
u8 min_size_dword;
|
|
||||||
} ucode_opts[] = {
|
|
||||||
{ D101M_B_RCVBUNDLE_UCODE,
|
|
||||||
mac_82559_D101M,
|
|
||||||
D101M_CPUSAVER_TIMER_DWORD,
|
|
||||||
D101M_CPUSAVER_BUNDLE_DWORD,
|
|
||||||
D101M_CPUSAVER_MIN_SIZE_DWORD },
|
|
||||||
{ D101S_RCVBUNDLE_UCODE,
|
|
||||||
mac_82559_D101S,
|
|
||||||
D101S_CPUSAVER_TIMER_DWORD,
|
|
||||||
D101S_CPUSAVER_BUNDLE_DWORD,
|
|
||||||
D101S_CPUSAVER_MIN_SIZE_DWORD },
|
|
||||||
{ D102_E_RCVBUNDLE_UCODE,
|
|
||||||
mac_82551_F,
|
|
||||||
D102_E_CPUSAVER_TIMER_DWORD,
|
|
||||||
D102_E_CPUSAVER_BUNDLE_DWORD,
|
|
||||||
D102_E_CPUSAVER_MIN_SIZE_DWORD },
|
|
||||||
{ D102_E_RCVBUNDLE_UCODE,
|
|
||||||
mac_82551_10,
|
|
||||||
D102_E_CPUSAVER_TIMER_DWORD,
|
|
||||||
D102_E_CPUSAVER_BUNDLE_DWORD,
|
|
||||||
D102_E_CPUSAVER_MIN_SIZE_DWORD },
|
|
||||||
{ {0}, 0, 0, 0, 0}
|
|
||||||
}, *opts;
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
* CPUSaver parameters
|
* CPUSaver parameters
|
||||||
*
|
*
|
||||||
|
@ -1280,42 +1116,101 @@ static void e100_setup_ucode(struct nic *nic, struct cb *cb, struct sk_buff *skb
|
||||||
#define BUNDLEMAX (u16)6
|
#define BUNDLEMAX (u16)6
|
||||||
#define INTDELAY (u16)1536 /* 0x600 */
|
#define INTDELAY (u16)1536 /* 0x600 */
|
||||||
|
|
||||||
|
/* Initialize firmware */
|
||||||
|
static const struct firmware *e100_request_firmware(struct nic *nic)
|
||||||
|
{
|
||||||
|
const char *fw_name;
|
||||||
|
const struct firmware *fw;
|
||||||
|
u8 timer, bundle, min_size;
|
||||||
|
int err;
|
||||||
|
|
||||||
/* do not load u-code for ICH devices */
|
/* do not load u-code for ICH devices */
|
||||||
if (nic->flags & ich)
|
if (nic->flags & ich)
|
||||||
goto noloaducode;
|
return NULL;
|
||||||
|
|
||||||
/* Search for ucode match against h/w revision */
|
/* Search for ucode match against h/w revision */
|
||||||
for (opts = ucode_opts; opts->mac; opts++) {
|
if (nic->mac == mac_82559_D101M)
|
||||||
int i;
|
fw_name = FIRMWARE_D101M;
|
||||||
u32 *ucode = opts->ucode;
|
else if (nic->mac == mac_82559_D101S)
|
||||||
if (nic->mac != opts->mac)
|
fw_name = FIRMWARE_D101S;
|
||||||
continue;
|
else if (nic->mac == mac_82551_F || nic->mac == mac_82551_10)
|
||||||
|
fw_name = FIRMWARE_D102E;
|
||||||
|
else /* No ucode on other devices */
|
||||||
|
return NULL;
|
||||||
|
|
||||||
/* Insert user-tunable settings */
|
err = request_firmware(&fw, fw_name, &nic->pdev->dev);
|
||||||
ucode[opts->timer_dword] &= 0xFFFF0000;
|
if (err) {
|
||||||
ucode[opts->timer_dword] |= INTDELAY;
|
DPRINTK(PROBE, ERR, "Failed to load firmware \"%s\": %d\n",
|
||||||
ucode[opts->bundle_dword] &= 0xFFFF0000;
|
fw_name, err);
|
||||||
ucode[opts->bundle_dword] |= BUNDLEMAX;
|
return ERR_PTR(err);
|
||||||
ucode[opts->min_size_dword] &= 0xFFFF0000;
|
}
|
||||||
ucode[opts->min_size_dword] |= (BUNDLESMALL) ? 0xFFFF : 0xFF80;
|
/* Firmware should be precisely UCODE_SIZE (words) plus three bytes
|
||||||
|
indicating the offsets for BUNDLESMALL, BUNDLEMAX, INTDELAY */
|
||||||
for (i = 0; i < UCODE_SIZE; i++)
|
if (fw->size != UCODE_SIZE * 4 + 3) {
|
||||||
cb->u.ucode[i] = cpu_to_le32(ucode[i]);
|
DPRINTK(PROBE, ERR, "Firmware \"%s\" has wrong size %zu\n",
|
||||||
cb->command = cpu_to_le16(cb_ucode | cb_el);
|
fw_name, fw->size);
|
||||||
return;
|
release_firmware(fw);
|
||||||
|
return ERR_PTR(-EINVAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
noloaducode:
|
/* Read timer, bundle and min_size from end of firmware blob */
|
||||||
cb->command = cpu_to_le16(cb_nop | cb_el);
|
timer = fw->data[UCODE_SIZE * 4];
|
||||||
|
bundle = fw->data[UCODE_SIZE * 4 + 1];
|
||||||
|
min_size = fw->data[UCODE_SIZE * 4 + 2];
|
||||||
|
|
||||||
|
if (timer >= UCODE_SIZE || bundle >= UCODE_SIZE ||
|
||||||
|
min_size >= UCODE_SIZE) {
|
||||||
|
DPRINTK(PROBE, ERR,
|
||||||
|
"\"%s\" has bogus offset values (0x%x,0x%x,0x%x)\n",
|
||||||
|
fw_name, timer, bundle, min_size);
|
||||||
|
release_firmware(fw);
|
||||||
|
return ERR_PTR(-EINVAL);
|
||||||
|
}
|
||||||
|
/* OK, firmware is validated and ready to use... */
|
||||||
|
return fw;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int e100_exec_cb_wait(struct nic *nic, struct sk_buff *skb,
|
static void e100_setup_ucode(struct nic *nic, struct cb *cb,
|
||||||
void (*cb_prepare)(struct nic *, struct cb *, struct sk_buff *))
|
struct sk_buff *skb)
|
||||||
{
|
{
|
||||||
|
const struct firmware *fw = (void *)skb;
|
||||||
|
u8 timer, bundle, min_size;
|
||||||
|
|
||||||
|
/* It's not a real skb; we just abused the fact that e100_exec_cb
|
||||||
|
will pass it through to here... */
|
||||||
|
cb->skb = NULL;
|
||||||
|
|
||||||
|
/* firmware is stored as little endian already */
|
||||||
|
memcpy(cb->u.ucode, fw->data, UCODE_SIZE * 4);
|
||||||
|
|
||||||
|
/* Read timer, bundle and min_size from end of firmware blob */
|
||||||
|
timer = fw->data[UCODE_SIZE * 4];
|
||||||
|
bundle = fw->data[UCODE_SIZE * 4 + 1];
|
||||||
|
min_size = fw->data[UCODE_SIZE * 4 + 2];
|
||||||
|
|
||||||
|
/* Insert user-tunable settings in cb->u.ucode */
|
||||||
|
cb->u.ucode[timer] &= cpu_to_le32(0xFFFF0000);
|
||||||
|
cb->u.ucode[timer] |= cpu_to_le32(INTDELAY);
|
||||||
|
cb->u.ucode[bundle] &= cpu_to_le32(0xFFFF0000);
|
||||||
|
cb->u.ucode[bundle] |= cpu_to_le32(BUNDLEMAX);
|
||||||
|
cb->u.ucode[min_size] &= cpu_to_le32(0xFFFF0000);
|
||||||
|
cb->u.ucode[min_size] |= cpu_to_le32((BUNDLESMALL) ? 0xFFFF : 0xFF80);
|
||||||
|
|
||||||
|
cb->command = cpu_to_le16(cb_ucode | cb_el);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline int e100_load_ucode_wait(struct nic *nic)
|
||||||
|
{
|
||||||
|
const struct firmware *fw;
|
||||||
int err = 0, counter = 50;
|
int err = 0, counter = 50;
|
||||||
struct cb *cb = nic->cb_to_clean;
|
struct cb *cb = nic->cb_to_clean;
|
||||||
|
|
||||||
if ((err = e100_exec_cb(nic, NULL, e100_setup_ucode)))
|
fw = e100_request_firmware(nic);
|
||||||
|
/* If it's NULL, then no ucode is required */
|
||||||
|
if (!fw || IS_ERR(fw))
|
||||||
|
return PTR_ERR(fw);
|
||||||
|
|
||||||
|
if ((err = e100_exec_cb(nic, (void *)fw, e100_setup_ucode)))
|
||||||
DPRINTK(PROBE,ERR, "ucode cmd failed with error %d\n", err);
|
DPRINTK(PROBE,ERR, "ucode cmd failed with error %d\n", err);
|
||||||
|
|
||||||
/* must restart cuc */
|
/* must restart cuc */
|
||||||
|
@ -1435,7 +1330,7 @@ static int e100_hw_init(struct nic *nic)
|
||||||
return err;
|
return err;
|
||||||
if ((err = e100_exec_cmd(nic, ruc_load_base, 0)))
|
if ((err = e100_exec_cmd(nic, ruc_load_base, 0)))
|
||||||
return err;
|
return err;
|
||||||
if ((err = e100_exec_cb_wait(nic, NULL, e100_setup_ucode)))
|
if ((err = e100_load_ucode_wait(nic)))
|
||||||
return err;
|
return err;
|
||||||
if ((err = e100_exec_cb(nic, NULL, e100_configure)))
|
if ((err = e100_exec_cb(nic, NULL, e100_configure)))
|
||||||
return err;
|
return err;
|
||||||
|
|
|
@ -37,6 +37,8 @@ fw-shipped-$(CONFIG_CHELSIO_T3) += cxgb3/t3b_psram-1.1.0.bin \
|
||||||
cxgb3/t3c_psram-1.1.0.bin \
|
cxgb3/t3c_psram-1.1.0.bin \
|
||||||
cxgb3/t3fw-7.0.0.bin
|
cxgb3/t3fw-7.0.0.bin
|
||||||
fw-shipped-$(CONFIG_DVB_TTUSB_BUDGET) += ttusb-budget/dspbootcode.bin
|
fw-shipped-$(CONFIG_DVB_TTUSB_BUDGET) += ttusb-budget/dspbootcode.bin
|
||||||
|
fw-shipped-$(CONFIG_E100) += e100/d101m_ucode.bin e100/d101s_ucode.bin \
|
||||||
|
e100/d102e_ucode.bin
|
||||||
fw-shipped-$(CONFIG_SMCTR) += tr_smctr.bin
|
fw-shipped-$(CONFIG_SMCTR) += tr_smctr.bin
|
||||||
fw-shipped-$(CONFIG_SND_KORG1212) += korg/k1212.dsp
|
fw-shipped-$(CONFIG_SND_KORG1212) += korg/k1212.dsp
|
||||||
fw-shipped-$(CONFIG_SND_MAESTRO3) += ess/maestro3_assp_kernel.fw \
|
fw-shipped-$(CONFIG_SND_MAESTRO3) += ess/maestro3_assp_kernel.fw \
|
||||||
|
|
|
@ -360,6 +360,18 @@ License: GPLv2 or OpenIB.org BSD license, no source visible
|
||||||
|
|
||||||
--------------------------------------------------------------------------
|
--------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Driver: e100 -- Intel PRO/100 Ethernet NIC
|
||||||
|
|
||||||
|
File: e100/d101m_ucode.bin
|
||||||
|
File: e100/d101s_ucode.bin
|
||||||
|
File: e100/d102e_ucode.bin
|
||||||
|
|
||||||
|
Licence: Unknown
|
||||||
|
|
||||||
|
Found in hex form in kernel source.
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------
|
||||||
|
|
||||||
Driver: acenic -- Alteon AceNIC Gigabit Ethernet card
|
Driver: acenic -- Alteon AceNIC Gigabit Ethernet card
|
||||||
|
|
||||||
File: acenic/tg1.bin
|
File: acenic/tg1.bin
|
||||||
|
|
38
firmware/e100/d101m_ucode.bin.ihex
Normal file
38
firmware/e100/d101m_ucode.bin.ihex
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
:10000000150255003704FFFFFFFFFFFF8907A70612
|
||||||
|
:10001000FFFFFFFFFFFF580501000C001213100047
|
||||||
|
:1000200008000C00160238009C001000564020000A
|
||||||
|
:10003000CC802300560038009C0010000B4C24009C
|
||||||
|
:1000400000080000184812003804380000000000C2
|
||||||
|
:1000500000001400550538000080300062061000D2
|
||||||
|
:100060006105100008040E006148130002000C0036
|
||||||
|
:10007000933010000080300024061000610510004D
|
||||||
|
:1000800008040E00610810007E000C00212C2200E4
|
||||||
|
:1000900002000C00933010007A0C380000000800B9
|
||||||
|
:1000A000903010007A0C38000000000000000000C2
|
||||||
|
:1000B00000000000000000009C0010002D4C2400F7
|
||||||
|
:1000C000040001000010040037043A00104004004E
|
||||||
|
:1000D0008A07380000000000990010007A6C2000A8
|
||||||
|
:1000E0009C001000484C24002408130001000C0060
|
||||||
|
:1000F00013121000750C260000100400040001000B
|
||||||
|
:100100002608130006000C00A806220026C91300CA
|
||||||
|
:1001100013131000A80638000000000000000000C3
|
||||||
|
:1001200000000000000000000000000000000000CF
|
||||||
|
:10013000000000000000000000060800101B100076
|
||||||
|
:10014000040005002608100010121000340C3800BE
|
||||||
|
:1001500000000000000000005B1521009900100065
|
||||||
|
:10016000596520009C0010005945240036081300F2
|
||||||
|
:1001700000000C00620C220001000C00131B100098
|
||||||
|
:100180000E9C22000E0C21000E6C22000E6C210031
|
||||||
|
:100190000EFC22000E5C21000E4C2100550538009B
|
||||||
|
:1001A0000400010000100400678C27000008040010
|
||||||
|
:1001B0000081010037043A002608130001000C00FA
|
||||||
|
:1001C00059052200131310005905380000000000E3
|
||||||
|
:1001D000000000000000000000000000000000001F
|
||||||
|
:1001E00000000000000000000000000031081300C3
|
||||||
|
:1001F0000B0910001348120080FF0C00AB0626000C
|
||||||
|
:100200000010040004000100A806380000000000EF
|
||||||
|
:0B02100000000000000000004E417ED6
|
||||||
|
:00000001FF
|
||||||
|
/********************************************************/
|
||||||
|
/* Micro code for 8086:1229 Rev 8 */
|
||||||
|
/********************************************************/
|
38
firmware/e100/d101s_ucode.bin.ihex
Normal file
38
firmware/e100/d101s_ucode.bin.ihex
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
:10000000420255007E04FFFFFFFFFFFF1808FF06B6
|
||||||
|
:10001000FFFFFFFFFFFFA60501000C0012131000F9
|
||||||
|
:1000200008000C00430238009C00100056402000DD
|
||||||
|
:10003000D0802300560038009C0010008B4F240015
|
||||||
|
:1000400000080000184812007F043800000000007B
|
||||||
|
:1000500000001400A30538000080300010061000D6
|
||||||
|
:100060006105100008040E006148130002000C0036
|
||||||
|
:10007000933010000080300024061000610510004D
|
||||||
|
:1000800008040E00610810007E000C00A12F220061
|
||||||
|
:1000900002000C0093301000900F380000000800A0
|
||||||
|
:1000A00090301000900F38000000000000000000A9
|
||||||
|
:1000B00000000000000000009C001000AD4F240074
|
||||||
|
:1000C00004000100001004007E043A001040040007
|
||||||
|
:1000D000190838000000000099001000FD6F200092
|
||||||
|
:1000E0009A001000FDAF20009C001000C84F2400B3
|
||||||
|
:1000F0002408130001000C0013121000F70F260053
|
||||||
|
:1001000000100400040001002608130006000C0083
|
||||||
|
:100110000007220026C9130013131000000738003F
|
||||||
|
:1001200000000000000000000000000000000000CF
|
||||||
|
:10013000000000000000000000060800101B100076
|
||||||
|
:10014000040005002608100010121000B60F380039
|
||||||
|
:100150000000000000000000A91521009900100017
|
||||||
|
:10016000A76520009A001000A7A520009C001000A1
|
||||||
|
:10017000A74524003608130000000C00E40F2200FD
|
||||||
|
:1001800001000C00131B10008E9F22008E0F210017
|
||||||
|
:100190008E6F22008E6F21008EFF22008E5F210065
|
||||||
|
:1001A0008E4F2100A3053800040001000010040058
|
||||||
|
:1001B000E98F270000080400008101007E043A0056
|
||||||
|
:1001C0002608130001000C00A705220013131000DD
|
||||||
|
:1001D000A70538000000000000000000000000003B
|
||||||
|
:1001E000000000000000000000000000000000000F
|
||||||
|
:1001F00000000000310813000B0910001348120022
|
||||||
|
:1002000080FF0C000307260000100400040001001A
|
||||||
|
:0B02100000073800000000004E438093
|
||||||
|
:00000001FF
|
||||||
|
/********************************************************/
|
||||||
|
/* Micro code for 8086:1229 Rev 9 */
|
||||||
|
/********************************************************/
|
38
firmware/e100/d102e_ucode.bin.ihex
Normal file
38
firmware/e100/d102e_ucode.bin.ihex
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
:100000008F027D00F904420E850CED14E914FA14F8
|
||||||
|
:10001000360EF70EFF1FFF1FB914E00000000000AE
|
||||||
|
:100020000000000000000000BD14E000000000001F
|
||||||
|
:100030000000000000000000D514E00000000000F7
|
||||||
|
:1000400000000000000000000000000000000000B0
|
||||||
|
:100050000000000000000000C114E00000000000EB
|
||||||
|
:100060000000000000000000000000000000000090
|
||||||
|
:100070000000000000000000000000000000000080
|
||||||
|
:100080000000000000000000000000000000000070
|
||||||
|
:100090000000000000000000C814E00000000000A4
|
||||||
|
:1000A000000000000000000000062000EE14E00048
|
||||||
|
:1000B000000000000000000080FF3000460E9400A9
|
||||||
|
:1000C0000082030000201000430EE000000000004A
|
||||||
|
:1000D000000000000000000006003000FB14E000FB
|
||||||
|
:1000E0000000000000000000000000000000000010
|
||||||
|
:1000F0000000000000000000000000000000000000
|
||||||
|
:1001000000000000000000000000000000000000EF
|
||||||
|
:100110000000000000000000416E90003C0E8000D6
|
||||||
|
:10012000390EE00000000000FD6E9000FD0E900012
|
||||||
|
:10013000F80EE000000000000000000000000000D9
|
||||||
|
:1001400000000000000000000000000000000000AF
|
||||||
|
:10015000000000000000000000000000000000009F
|
||||||
|
:10016000000000000000000000000000000000008F
|
||||||
|
:10017000000000000000000000000000000000007F
|
||||||
|
:10018000000000000000000000000000000000006F
|
||||||
|
:10019000000000000000000000000000000000005F
|
||||||
|
:1001A000000000000000000000000000000000004F
|
||||||
|
:1001B000000000000000000000000000000000003F
|
||||||
|
:1001C000000000000000000000000000000000002F
|
||||||
|
:1001D000000000000000000000000000000000001F
|
||||||
|
:1001E000000000000000000000000000000000000F
|
||||||
|
:1001F00000000000000000000000000000000000FF
|
||||||
|
:1002000000000000000000000000000000000000EE
|
||||||
|
:0B02100000000000000000002A362E55
|
||||||
|
:00000001FF
|
||||||
|
/********************************************************/
|
||||||
|
/* Micro code for the 8086:1229 Rev F/10 */
|
||||||
|
/********************************************************/
|
Loading…
Reference in a new issue