diff options
| -rw-r--r-- | drivers/net/starfire.c | 54 | ||||
| -rw-r--r-- | drivers/net/starfire_firmware.h | 346 | ||||
| -rw-r--r-- | drivers/net/starfire_firmware.pl | 31 | ||||
| -rw-r--r-- | firmware/Makefile | 2 | ||||
| -rw-r--r-- | firmware/WHENCE | 19 | ||||
| -rw-r--r-- | firmware/adaptec/starfire_rx.bin.ihex | 53 | ||||
| -rw-r--r-- | firmware/adaptec/starfire_tx.bin.ihex | 53 |
7 files changed, 175 insertions, 383 deletions
diff --git a/drivers/net/starfire.c b/drivers/net/starfire.c index f54ac2389da2..57fb1f71c47b 100644 --- a/drivers/net/starfire.c +++ b/drivers/net/starfire.c | |||
| @@ -42,11 +42,11 @@ | |||
| 42 | #include <linux/mii.h> | 42 | #include <linux/mii.h> |
| 43 | #include <linux/if_vlan.h> | 43 | #include <linux/if_vlan.h> |
| 44 | #include <linux/mm.h> | 44 | #include <linux/mm.h> |
| 45 | #include <linux/firmware.h> | ||
| 45 | #include <asm/processor.h> /* Processor type for cache alignment. */ | 46 | #include <asm/processor.h> /* Processor type for cache alignment. */ |
| 46 | #include <asm/uaccess.h> | 47 | #include <asm/uaccess.h> |
| 47 | #include <asm/io.h> | 48 | #include <asm/io.h> |
| 48 | 49 | ||
| 49 | #include "starfire_firmware.h" | ||
| 50 | /* | 50 | /* |
| 51 | * The current frame processor firmware fails to checksum a fragment | 51 | * The current frame processor firmware fails to checksum a fragment |
| 52 | * of length 1. If and when this is fixed, the #define below can be removed. | 52 | * of length 1. If and when this is fixed, the #define below can be removed. |
| @@ -173,6 +173,10 @@ static int full_duplex[MAX_UNITS] = {0, }; | |||
| 173 | #define skb_first_frag_len(skb) skb_headlen(skb) | 173 | #define skb_first_frag_len(skb) skb_headlen(skb) |
| 174 | #define skb_num_frags(skb) (skb_shinfo(skb)->nr_frags + 1) | 174 | #define skb_num_frags(skb) (skb_shinfo(skb)->nr_frags + 1) |
| 175 | 175 | ||
| 176 | /* Firmware names */ | ||
| 177 | #define FIRMWARE_RX "adaptec/starfire_rx.bin" | ||
| 178 | #define FIRMWARE_TX "adaptec/starfire_tx.bin" | ||
| 179 | |||
| 176 | /* These identify the driver base version and may not be removed. */ | 180 | /* These identify the driver base version and may not be removed. */ |
| 177 | static char version[] = | 181 | static char version[] = |
| 178 | KERN_INFO "starfire.c:v1.03 7/26/2000 Written by Donald Becker <becker@scyld.com>\n" | 182 | KERN_INFO "starfire.c:v1.03 7/26/2000 Written by Donald Becker <becker@scyld.com>\n" |
| @@ -182,6 +186,8 @@ MODULE_AUTHOR("Donald Becker <becker@scyld.com>"); | |||
| 182 | MODULE_DESCRIPTION("Adaptec Starfire Ethernet driver"); | 186 | MODULE_DESCRIPTION("Adaptec Starfire Ethernet driver"); |
| 183 | MODULE_LICENSE("GPL"); | 187 | MODULE_LICENSE("GPL"); |
| 184 | MODULE_VERSION(DRV_VERSION); | 188 | MODULE_VERSION(DRV_VERSION); |
| 189 | MODULE_FIRMWARE(FIRMWARE_RX); | ||
| 190 | MODULE_FIRMWARE(FIRMWARE_TX); | ||
| 185 | 191 | ||
| 186 | module_param(max_interrupt_work, int, 0); | 192 | module_param(max_interrupt_work, int, 0); |
| 187 | module_param(mtu, int, 0); | 193 | module_param(mtu, int, 0); |
| @@ -902,9 +908,12 @@ static void mdio_write(struct net_device *dev, int phy_id, int location, int val | |||
| 902 | 908 | ||
| 903 | static int netdev_open(struct net_device *dev) | 909 | static int netdev_open(struct net_device *dev) |
| 904 | { | 910 | { |
| 911 | const struct firmware *fw_rx, *fw_tx; | ||
| 912 | const __be32 *fw_rx_data, *fw_tx_data; | ||
| 905 | struct netdev_private *np = netdev_priv(dev); | 913 | struct netdev_private *np = netdev_priv(dev); |
| 906 | void __iomem *ioaddr = np->base; | 914 | void __iomem *ioaddr = np->base; |
| 907 | int i, retval; | 915 | int i, retval; |
| 916 | size_t tx_size, rx_size; | ||
| 908 | size_t tx_done_q_size, rx_done_q_size, tx_ring_size, rx_ring_size; | 917 | size_t tx_done_q_size, rx_done_q_size, tx_ring_size, rx_ring_size; |
| 909 | 918 | ||
| 910 | /* Do we ever need to reset the chip??? */ | 919 | /* Do we ever need to reset the chip??? */ |
| @@ -1040,11 +1049,40 @@ static int netdev_open(struct net_device *dev) | |||
| 1040 | writel(ETH_P_8021Q, ioaddr + VlanType); | 1049 | writel(ETH_P_8021Q, ioaddr + VlanType); |
| 1041 | #endif /* VLAN_SUPPORT */ | 1050 | #endif /* VLAN_SUPPORT */ |
| 1042 | 1051 | ||
| 1052 | retval = request_firmware(&fw_rx, FIRMWARE_RX, &np->pci_dev->dev); | ||
| 1053 | if (retval) { | ||
| 1054 | printk(KERN_ERR "starfire: Failed to load firmware \"%s\"\n", | ||
| 1055 | FIRMWARE_RX); | ||
| 1056 | return retval; | ||
| 1057 | } | ||
| 1058 | if (fw_rx->size % 4) { | ||
| 1059 | printk(KERN_ERR "starfire: bogus length %zu in \"%s\"\n", | ||
| 1060 | fw_rx->size, FIRMWARE_RX); | ||
| 1061 | retval = -EINVAL; | ||
| 1062 | goto out_rx; | ||
| 1063 | } | ||
| 1064 | retval = request_firmware(&fw_tx, FIRMWARE_TX, &np->pci_dev->dev); | ||
| 1065 | if (retval) { | ||
| 1066 | printk(KERN_ERR "starfire: Failed to load firmware \"%s\"\n", | ||
| 1067 | FIRMWARE_TX); | ||
| 1068 | goto out_rx; | ||
| 1069 | } | ||
| 1070 | if (fw_tx->size % 4) { | ||
| 1071 | printk(KERN_ERR "starfire: bogus length %zu in \"%s\"\n", | ||
| 1072 | fw_tx->size, FIRMWARE_TX); | ||
| 1073 | retval = -EINVAL; | ||
| 1074 | goto out_tx; | ||
| 1075 | } | ||
| 1076 | fw_rx_data = (const __be32 *)&fw_rx->data[0]; | ||
| 1077 | fw_tx_data = (const __be32 *)&fw_tx->data[0]; | ||
| 1078 | rx_size = fw_rx->size / 4; | ||
| 1079 | tx_size = fw_tx->size / 4; | ||
| 1080 | |||
| 1043 | /* Load Rx/Tx firmware into the frame processors */ | 1081 | /* Load Rx/Tx firmware into the frame processors */ |
| 1044 | for (i = 0; i < FIRMWARE_RX_SIZE * 2; i++) | 1082 | for (i = 0; i < rx_size; i++) |
| 1045 | writel(firmware_rx[i], ioaddr + RxGfpMem + i * 4); | 1083 | writel(be32_to_cpup(&fw_rx_data[i]), ioaddr + RxGfpMem + i * 4); |
| 1046 | for (i = 0; i < FIRMWARE_TX_SIZE * 2; i++) | 1084 | for (i = 0; i < tx_size; i++) |
| 1047 | writel(firmware_tx[i], ioaddr + TxGfpMem + i * 4); | 1085 | writel(be32_to_cpup(&fw_tx_data[i]), ioaddr + TxGfpMem + i * 4); |
| 1048 | if (enable_hw_cksum) | 1086 | if (enable_hw_cksum) |
| 1049 | /* Enable the Rx and Tx units, and the Rx/Tx frame processors. */ | 1087 | /* Enable the Rx and Tx units, and the Rx/Tx frame processors. */ |
| 1050 | writel(TxEnable|TxGFPEnable|RxEnable|RxGFPEnable, ioaddr + GenCtrl); | 1088 | writel(TxEnable|TxGFPEnable|RxEnable|RxGFPEnable, ioaddr + GenCtrl); |
| @@ -1056,7 +1094,11 @@ static int netdev_open(struct net_device *dev) | |||
| 1056 | printk(KERN_DEBUG "%s: Done netdev_open().\n", | 1094 | printk(KERN_DEBUG "%s: Done netdev_open().\n", |
| 1057 | dev->name); | 1095 | dev->name); |
| 1058 | 1096 | ||
| 1059 | return 0; | 1097 | out_tx: |
| 1098 | release_firmware(fw_tx); | ||
| 1099 | out_rx: | ||
| 1100 | release_firmware(fw_rx); | ||
| 1101 | return retval; | ||
| 1060 | } | 1102 | } |
| 1061 | 1103 | ||
| 1062 | 1104 | ||
diff --git a/drivers/net/starfire_firmware.h b/drivers/net/starfire_firmware.h deleted file mode 100644 index 0a668528955d..000000000000 --- a/drivers/net/starfire_firmware.h +++ /dev/null | |||
| @@ -1,346 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * Copyright 2003 Adaptec, Inc. | ||
| 3 | * | ||
| 4 | * Please read the following license before using the Adaptec Software | ||
| 5 | * ("Program"). If you do not agree to the license terms, do not use the | ||
| 6 | * Program: | ||
| 7 | * | ||
| 8 | * You agree to be bound by version 2 of the General Public License ("GPL") | ||
| 9 | * dated June 1991, which can be found at http://www.fsf.org/licenses/gpl.html. | ||
| 10 | * If the link is broken, write to Free Software Foundation, 59 Temple Place, | ||
| 11 | * Boston, Massachusetts 02111-1307. | ||
| 12 | * | ||
| 13 | * BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE IT IS LICENSED "AS IS" AND | ||
| 14 | * THERE IS NO WARRANTY FOR THE PROGRAM, INCLUDING BUT NOT LIMITED TO THE | ||
| 15 | * IMPLIED WARRANTIES OF MERCHANTIBILITY OR FITNESS FOR A PARTICULAR PURPOSE | ||
| 16 | * (TO THE EXTENT PERMITTED BY APPLICABLE LAW). USE OF THE PROGRAM IS AT YOUR | ||
| 17 | * OWN RISK. IN NO EVENT WILL ADAPTEC OR ITS LICENSORS BE LIABLE TO YOU FOR | ||
| 18 | * DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES | ||
| 19 | * ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM. | ||
| 20 | * | ||
| 21 | */ | ||
| 22 | |||
| 23 | static const u32 firmware_rx[] = { | ||
| 24 | 0x010003dc, 0x00000000, | ||
| 25 | 0x04000421, 0x00000086, | ||
| 26 | 0x80000015, 0x0000180e, | ||
| 27 | 0x81000015, 0x00006664, | ||
| 28 | 0x1a0040ab, 0x00000b06, | ||
| 29 | 0x14200011, 0x00000000, | ||
| 30 | 0x14204022, 0x0000aaaa, | ||
| 31 | 0x14204022, 0x00000300, | ||
| 32 | 0x14204022, 0x00000000, | ||
| 33 | 0x1a0040ab, 0x00000b14, | ||
| 34 | 0x14200011, 0x00000000, | ||
| 35 | 0x83000015, 0x00000002, | ||
| 36 | 0x04000021, 0x00000000, | ||
| 37 | 0x00000010, 0x00000000, | ||
| 38 | 0x04000421, 0x00000087, | ||
| 39 | 0x00000010, 0x00000000, | ||
| 40 | 0x00000010, 0x00000000, | ||
| 41 | 0x00008015, 0x00000000, | ||
| 42 | 0x0000003e, 0x00000000, | ||
| 43 | 0x00000010, 0x00000000, | ||
| 44 | 0x82000015, 0x00004000, | ||
| 45 | 0x009e8050, 0x00000000, | ||
| 46 | 0x03008015, 0x00000000, | ||
| 47 | 0x86008015, 0x00000000, | ||
| 48 | 0x82000015, 0x00008000, | ||
| 49 | 0x0100001c, 0x00000000, | ||
| 50 | 0x000050a0, 0x0000010c, | ||
| 51 | 0x4e20d011, 0x00006008, | ||
| 52 | 0x1420d012, 0x00004008, | ||
| 53 | 0x0000f090, 0x00007000, | ||
| 54 | 0x0000c8b0, 0x00003000, | ||
| 55 | 0x00004040, 0x00000000, | ||
| 56 | 0x00108015, 0x00000000, | ||
| 57 | 0x00a2c150, 0x00004000, | ||
| 58 | 0x00a400b0, 0x00000014, | ||
| 59 | 0x00000020, 0x00000000, | ||
| 60 | 0x2500400d, 0x00002525, | ||
| 61 | 0x00047220, 0x00003100, | ||
| 62 | 0x00934070, 0x00000000, | ||
| 63 | 0x00000020, 0x00000000, | ||
| 64 | 0x00924460, 0x00000184, | ||
| 65 | 0x2b20c011, 0x00000000, | ||
| 66 | 0x0000c420, 0x00000540, | ||
| 67 | 0x36014018, 0x0000422d, | ||
| 68 | 0x14200011, 0x00000000, | ||
| 69 | 0x00924460, 0x00000183, | ||
| 70 | 0x3200001f, 0x00000034, | ||
| 71 | 0x02ac0015, 0x00000002, | ||
| 72 | 0x00a60110, 0x00000008, | ||
| 73 | 0x42200011, 0x00000000, | ||
| 74 | 0x00924060, 0x00000103, | ||
| 75 | 0x0000001e, 0x00000000, | ||
| 76 | 0x00000020, 0x00000100, | ||
| 77 | 0x0000001e, 0x00000000, | ||
| 78 | 0x00924460, 0x00000086, | ||
| 79 | 0x00004080, 0x00000000, | ||
| 80 | 0x0092c070, 0x00000000, | ||
| 81 | 0x00924060, 0x00000100, | ||
| 82 | 0x0000c890, 0x00005000, | ||
| 83 | 0x00a6c110, 0x00000000, | ||
| 84 | 0x00b0c090, 0x00000012, | ||
| 85 | 0x021c0015, 0x00000000, | ||
| 86 | 0x3200001f, 0x00000034, | ||
| 87 | 0x00924460, 0x00000510, | ||
| 88 | 0x44210011, 0x00000000, | ||
| 89 | 0x42000011, 0x00000000, | ||
| 90 | 0x83000015, 0x00000040, | ||
| 91 | 0x00924460, 0x00000508, | ||
| 92 | 0x45014018, 0x00004545, | ||
| 93 | 0x00808050, 0x00000000, | ||
| 94 | 0x62208012, 0x00000000, | ||
| 95 | 0x82000015, 0x00000800, | ||
| 96 | 0x15200011, 0x00000000, | ||
| 97 | 0x00000010, 0x00000000, | ||
| 98 | 0x00000010, 0x00000000, | ||
| 99 | 0x00000010, 0x00000000, | ||
| 100 | 0x00000010, 0x00000000, | ||
| 101 | 0x00000010, 0x00000000, | ||
| 102 | 0x80000015, 0x0000eea4, | ||
| 103 | 0x81000015, 0x0000005f, | ||
| 104 | 0x00000060, 0x00000000, | ||
| 105 | 0x00004120, 0x00000000, | ||
| 106 | 0x00004a00, 0x00004000, | ||
| 107 | 0x00924460, 0x00000190, | ||
| 108 | 0x5601401a, 0x00005956, | ||
| 109 | 0x14000011, 0x00000000, | ||
| 110 | 0x00934050, 0x00000018, | ||
| 111 | 0x00930050, 0x00000018, | ||
| 112 | 0x3601403a, 0x0000002d, | ||
| 113 | 0x000643a9, 0x00000000, | ||
| 114 | 0x0000c420, 0x00000140, | ||
| 115 | 0x5601401a, 0x00005956, | ||
| 116 | 0x14000011, 0x00000000, | ||
| 117 | 0x00000010, 0x00000000, | ||
| 118 | 0x00000010, 0x00000000, | ||
| 119 | 0x000642a9, 0x00000000, | ||
| 120 | 0x00024420, 0x00000183, | ||
| 121 | 0x5601401a, 0x00005956, | ||
| 122 | 0x82000015, 0x00002000, | ||
| 123 | 0x15200011, 0x00000000, | ||
| 124 | 0x82000015, 0x00000010, | ||
| 125 | 0x15200011, 0x00000000, | ||
| 126 | 0x82000015, 0x00000010, | ||
| 127 | 0x15200011, 0x00000000, | ||
| 128 | }; /* 104 Rx instructions */ | ||
| 129 | #define FIRMWARE_RX_SIZE 104 | ||
| 130 | |||
| 131 | static const u32 firmware_tx[] = { | ||
| 132 | 0x010003dc, 0x00000000, | ||
| 133 | 0x04000421, 0x00000086, | ||
| 134 | 0x80000015, 0x0000180e, | ||
| 135 | 0x81000015, 0x00006664, | ||
| 136 | 0x1a0040ab, 0x00000b06, | ||
| 137 | 0x14200011, 0x00000000, | ||
| 138 | 0x14204022, 0x0000aaaa, | ||
| 139 | 0x14204022, 0x00000300, | ||
| 140 | 0x14204022, 0x00000000, | ||
| 141 | 0x1a0040ab, 0x00000b14, | ||
| 142 | 0x14200011, 0x00000000, | ||
| 143 | 0x83000015, 0x00000002, | ||
| 144 | 0x04000021, 0x00000000, | ||
| 145 | 0x00000010, 0x00000000, | ||
| 146 | 0x04000421, 0x00000087, | ||
| 147 | 0x00000010, 0x00000000, | ||
| 148 | 0x00000010, 0x00000000, | ||
| 149 | 0x00008015, 0x00000000, | ||
| 150 | 0x0000003e, 0x00000000, | ||
| 151 | 0x00000010, 0x00000000, | ||
| 152 | 0x82000015, 0x00004000, | ||
| 153 | 0x009e8050, 0x00000000, | ||
| 154 | 0x03008015, 0x00000000, | ||
| 155 | 0x86008015, 0x00000000, | ||
| 156 | 0x82000015, 0x00008000, | ||
| 157 | 0x0100001c, 0x00000000, | ||
| 158 | 0x000050a0, 0x0000010c, | ||
| 159 | 0x4e20d011, 0x00006008, | ||
| 160 | 0x1420d012, 0x00004008, | ||
| 161 | 0x0000f090, 0x00007000, | ||
| 162 | 0x0000c8b0, 0x00003000, | ||
| 163 | 0x00004040, 0x00000000, | ||
| 164 | 0x00108015, 0x00000000, | ||
| 165 | 0x00a2c150, 0x00004000, | ||
| 166 | 0x00a400b0, 0x00000014, | ||
| 167 | 0x00000020, 0x00000000, | ||
| 168 | 0x2500400d, 0x00002525, | ||
| 169 | 0x00047220, 0x00003100, | ||
| 170 | 0x00934070, 0x00000000, | ||
| 171 | 0x00000020, 0x00000000, | ||
| 172 | 0x00924460, 0x00000184, | ||
| 173 | 0x2b20c011, 0x00000000, | ||
| 174 | 0x0000c420, 0x00000540, | ||
| 175 | 0x36014018, 0x0000422d, | ||
| 176 | 0x14200011, 0x00000000, | ||
| 177 | 0x00924460, 0x00000183, | ||
| 178 | 0x3200001f, 0x00000034, | ||
| 179 | 0x02ac0015, 0x00000002, | ||
| 180 | 0x00a60110, 0x00000008, | ||
| 181 | 0x42200011, 0x00000000, | ||
| 182 | 0x00924060, 0x00000103, | ||
| 183 | 0x0000001e, 0x00000000, | ||
| 184 | 0x00000020, 0x00000100, | ||
| 185 | 0x0000001e, 0x00000000, | ||
| 186 | 0x00924460, 0x00000086, | ||
| 187 | 0x00004080, 0x00000000, | ||
| 188 | 0x0092c070, 0x00000000, | ||
| 189 | 0x00924060, 0x00000100, | ||
| 190 | 0x0000c890, 0x00005000, | ||
| 191 | 0x00a6c110, 0x00000000, | ||
| 192 | 0x00b0c090, 0x00000012, | ||
| 193 | 0x021c0015, 0x00000000, | ||
| 194 | 0x3200001f, 0x00000034, | ||
| 195 | 0x00924460, 0x00000510, | ||
| 196 | 0x44210011, 0x00000000, | ||
| 197 | 0x42000011, 0x00000000, | ||
| 198 | 0x83000015, 0x00000040, | ||
| 199 | 0x00924460, 0x00000508, | ||
| 200 | 0x45014018, 0x00004545, | ||
| 201 | 0x00808050, 0x00000000, | ||
| 202 | 0x62208012, 0x00000000, | ||
| 203 | 0x82000015, 0x00000800, | ||
| 204 | 0x15200011, 0x00000000, | ||
| 205 | 0x00000010, 0x00000000, | ||
| 206 | 0x00000010, 0x00000000, | ||
| 207 | 0x00000010, 0x00000000, | ||
| 208 | 0x00000010, 0x00000000, | ||
| 209 | 0x00000010, 0x00000000, | ||
| 210 | 0x80000015, 0x0000eea4, | ||
| 211 | 0x81000015, 0x0000005f, | ||
| 212 | 0x00000060, 0x00000000, | ||
| 213 | 0x00004120, 0x00000000, | ||
| 214 | 0x00004a00, 0x00004000, | ||
| 215 | 0x00924460, 0x00000190, | ||
| 216 | 0x5601401a, 0x00005956, | ||
| 217 | 0x14000011, 0x00000000, | ||
| 218 | 0x00934050, 0x00000018, | ||
| 219 | 0x00930050, 0x00000018, | ||
| 220 | 0x3601403a, 0x0000002d, | ||
| 221 | 0x000643a9, 0x00000000, | ||
| 222 | 0x0000c420, 0x00000140, | ||
| 223 | 0x5601401a, 0x00005956, | ||
| 224 | 0x14000011, 0x00000000, | ||
| 225 | 0x00000010, 0x00000000, | ||
| 226 | 0x00000010, 0x00000000, | ||
| 227 | 0x000642a9, 0x00000000, | ||
| 228 | 0x00024420, 0x00000183, | ||
| 229 | 0x5601401a, 0x00005956, | ||
| 230 | 0x82000015, 0x00002000, | ||
| 231 | 0x15200011, 0x00000000, | ||
| 232 | 0x82000015, 0x00000010, | ||
| 233 | 0x15200011, 0x00000000, | ||
| 234 | 0x82000015, 0x00000010, | ||
| 235 | 0x15200011, 0x00000000, | ||
| 236 | }; /* 104 Tx instructions */ | ||
| 237 | #define FIRMWARE_TX_SIZE 104 | ||
| 238 | #if 0 | ||
| 239 | static const u32 firmware_wol[] = { | ||
| 240 | 0x010003dc, 0x00000000, | ||
| 241 | 0x19000421, 0x00000087, | ||
| 242 | 0x80000015, 0x00001a1a, | ||
| 243 | 0x81000015, 0x00001a1a, | ||
| 244 | 0x1a0040ab, 0x00000b06, | ||
| 245 | 0x15200011, 0x00000000, | ||
| 246 | 0x15204022, 0x0000aaaa, | ||
| 247 | 0x15204022, 0x00000300, | ||
| 248 | 0x15204022, 0x00000000, | ||
| 249 | 0x1a0040ab, 0x00000b15, | ||
| 250 | 0x15200011, 0x00000000, | ||
| 251 | 0x83000015, 0x00000002, | ||
| 252 | 0x04000021, 0x00000000, | ||
| 253 | 0x00000010, 0x00000000, | ||
| 254 | 0x04000421, 0x00000087, | ||
| 255 | 0x00000010, 0x00000000, | ||
| 256 | 0x00000010, 0x00000000, | ||
| 257 | 0x00008015, 0x00000000, | ||
| 258 | 0x0000003e, 0x00000000, | ||
| 259 | 0x00000010, 0x00000000, | ||
| 260 | 0x00000010, 0x00000000, | ||
| 261 | 0x82000015, 0x00004000, | ||
| 262 | 0x82000015, 0x00008000, | ||
| 263 | 0x0000000c, 0x00000000, | ||
| 264 | 0x00000010, 0x00000000, | ||
| 265 | 0x00004080, 0x00000100, | ||
| 266 | 0x1f20c011, 0x00001122, | ||
| 267 | 0x2720f011, 0x00003011, | ||
| 268 | 0x19200071, 0x00000000, | ||
| 269 | 0x1a200051, 0x00000000, | ||
| 270 | 0x00000010, 0x00000000, | ||
| 271 | 0x00000010, 0x00000000, | ||
| 272 | 0x1d2040a4, 0x00003344, | ||
| 273 | 0x1d2040a2, 0x00005566, | ||
| 274 | 0x000040a0, 0x00000100, | ||
| 275 | 0x00108050, 0x00000001, | ||
| 276 | 0x1a208012, 0x00000006, | ||
| 277 | 0x82000015, 0x00008080, | ||
| 278 | 0x010003dc, 0x00000000, | ||
| 279 | 0x1d2040a4, 0x00002233, | ||
| 280 | 0x1d2040a4, 0x00004455, | ||
| 281 | 0x2d208011, 0x00000005, | ||
| 282 | 0x1d2040a4, 0x00006611, | ||
| 283 | 0x00108050, 0x00000001, | ||
| 284 | 0x27200011, 0x00000000, | ||
| 285 | 0x1d2050a4, 0x00006600, | ||
| 286 | 0x82000015, 0x00008080, | ||
| 287 | 0x010003dc, 0x00000000, | ||
| 288 | 0x00000050, 0x00000000, | ||
| 289 | 0x1b200031, 0x00000000, | ||
| 290 | 0x0000001e, 0x00000000, | ||
| 291 | 0x0000001e, 0x00000000, | ||
| 292 | 0x0000001e, 0x00000000, | ||
| 293 | 0x0000001e, 0x00000000, | ||
| 294 | 0x00924460, 0x00000086, | ||
| 295 | 0x00004080, 0x00000000, | ||
| 296 | 0x0092c070, 0x00000000, | ||
| 297 | 0x00924060, 0x00000100, | ||
| 298 | 0x0000c890, 0x00005000, | ||
| 299 | 0x00a6c110, 0x00000000, | ||
| 300 | 0x00b0c090, 0x00000012, | ||
| 301 | 0x021c0015, 0x00000000, | ||
| 302 | 0x3200001f, 0x00000034, | ||
| 303 | 0x00924460, 0x00000510, | ||
| 304 | 0x44210011, 0x00000000, | ||
| 305 | 0x42000011, 0x00000000, | ||
| 306 | 0x83000015, 0x00000040, | ||
| 307 | 0x00924460, 0x00000508, | ||
| 308 | 0x476a0012, 0x00000100, | ||
| 309 | 0x83000015, 0x00000008, | ||
| 310 | 0x16200011, 0x00000000, | ||
| 311 | 0x001e8050, 0x00000000, | ||
| 312 | 0x001e8050, 0x00000000, | ||
| 313 | 0x00808050, 0x00000000, | ||
| 314 | 0x03008015, 0x00000000, | ||
| 315 | 0x62208012, 0x00000000, | ||
| 316 | 0x82000015, 0x00000800, | ||
| 317 | 0x16200011, 0x00000000, | ||
| 318 | 0x80000015, 0x0000eea4, | ||
| 319 | 0x81000015, 0x0000005f, | ||
| 320 | 0x00000020, 0x00000000, | ||
| 321 | 0x00004120, 0x00000000, | ||
| 322 | 0x00004a00, 0x00004000, | ||
| 323 | 0x00924460, 0x00000190, | ||
| 324 | 0x5c01401a, 0x0000595c, | ||
| 325 | 0x15000011, 0x00000000, | ||
| 326 | 0x00934050, 0x00000018, | ||
| 327 | 0x00930050, 0x00000018, | ||
| 328 | 0x3601403a, 0x0000002d, | ||
| 329 | 0x00064029, 0x00000000, | ||
| 330 | 0x0000c420, 0x00000140, | ||
| 331 | 0x5c01401a, 0x0000595c, | ||
| 332 | 0x15000011, 0x00000000, | ||
| 333 | 0x00000010, 0x00000000, | ||
| 334 | 0x00000010, 0x00000000, | ||
| 335 | 0x00064029, 0x00000000, | ||
| 336 | 0x00024420, 0x00000183, | ||
| 337 | 0x5c01401a, 0x0000595c, | ||
| 338 | 0x82000015, 0x00002000, | ||
| 339 | 0x16200011, 0x00000000, | ||
| 340 | 0x82000015, 0x00000010, | ||
| 341 | 0x16200011, 0x00000000, | ||
| 342 | 0x82000015, 0x00000010, | ||
| 343 | 0x16200011, 0x00000000, | ||
| 344 | }; /* 104 WoL instructions */ | ||
| 345 | #define FIRMWARE_WOL_SIZE 104 | ||
| 346 | #endif | ||
diff --git a/drivers/net/starfire_firmware.pl b/drivers/net/starfire_firmware.pl deleted file mode 100644 index 0c82b80e1074..000000000000 --- a/drivers/net/starfire_firmware.pl +++ /dev/null | |||
| @@ -1,31 +0,0 @@ | |||
| 1 | #!/usr/bin/perl | ||
| 2 | |||
| 3 | # This script can be used to generate a new starfire_firmware.h | ||
| 4 | # from GFP_RX.DAT and GFP_TX.DAT, files included with the DDK | ||
| 5 | # and also with the Novell drivers. | ||
| 6 | |||
| 7 | open FW, "GFP_RX.DAT" || die; | ||
| 8 | open FWH, ">starfire_firmware.h" || die; | ||
| 9 | |||
| 10 | printf(FWH "static u32 firmware_rx[] = {\n"); | ||
| 11 | $counter = 0; | ||
| 12 | while ($foo = <FW>) { | ||
| 13 | chomp; | ||
| 14 | printf(FWH " 0x%s, 0x0000%s,\n", substr($foo, 4, 8), substr($foo, 0, 4)); | ||
| 15 | $counter++; | ||
| 16 | } | ||
| 17 | |||
| 18 | close FW; | ||
| 19 | open FW, "GFP_TX.DAT" || die; | ||
| 20 | |||
| 21 | printf(FWH "};\t/* %d Rx instructions */\n#define FIRMWARE_RX_SIZE %d\n\nstatic u32 firmware_tx[] = {\n", $counter, $counter); | ||
| 22 | $counter = 0; | ||
| 23 | while ($foo = <FW>) { | ||
| 24 | chomp; | ||
| 25 | printf(FWH " 0x%s, 0x0000%s,\n", substr($foo, 4, 8), substr($foo, 0, 4)); | ||
| 26 | $counter++; | ||
| 27 | } | ||
| 28 | |||
| 29 | close FW; | ||
| 30 | printf(FWH "};\t/* %d Tx instructions */\n#define FIRMWARE_TX_SIZE %d\n", $counter, $counter); | ||
| 31 | close(FWH); | ||
diff --git a/firmware/Makefile b/firmware/Makefile index 0dc7afc28482..0e432843db74 100644 --- a/firmware/Makefile +++ b/firmware/Makefile | |||
| @@ -27,6 +27,8 @@ else | |||
| 27 | acenic-objs := acenic/tg1.bin acenic/tg2.bin | 27 | acenic-objs := acenic/tg1.bin acenic/tg2.bin |
| 28 | endif | 28 | endif |
| 29 | fw-shipped-$(CONFIG_ACENIC) += $(acenic-objs) | 29 | fw-shipped-$(CONFIG_ACENIC) += $(acenic-objs) |
| 30 | fw-shipped-$(CONFIG_ADAPTEC_STARFIRE) += adaptec/starfire_rx.bin \ | ||
| 31 | adaptec/starfire_tx.bin | ||
| 30 | fw-shipped-$(CONFIG_ATARI_DSP56K) += dsp56k/bootstrap.bin | 32 | fw-shipped-$(CONFIG_ATARI_DSP56K) += dsp56k/bootstrap.bin |
| 31 | fw-shipped-$(CONFIG_ATM_AMBASSADOR) += atmsar11.fw | 33 | fw-shipped-$(CONFIG_ATM_AMBASSADOR) += atmsar11.fw |
| 32 | fw-shipped-$(CONFIG_CASSINI) += sun/cassini.bin | 34 | fw-shipped-$(CONFIG_CASSINI) += sun/cassini.bin |
diff --git a/firmware/WHENCE b/firmware/WHENCE index 0460eb39c404..1bb2cf4b1735 100644 --- a/firmware/WHENCE +++ b/firmware/WHENCE | |||
| @@ -390,3 +390,22 @@ Licence: | |||
| 390 | Found in hex form in kernel source. | 390 | Found in hex form in kernel source. |
| 391 | 391 | ||
| 392 | -------------------------------------------------------------------------- | 392 | -------------------------------------------------------------------------- |
| 393 | |||
| 394 | Driver: ADAPTEC_STARFIRE - Adaptec Starfire/DuraLAN support | ||
| 395 | |||
| 396 | File: adaptec/starfire_rx.bin | ||
| 397 | File: adaptec/starfire_tx.bin | ||
| 398 | |||
| 399 | Licence: Allegedly GPLv2, but no source visible. | ||
| 400 | |||
| 401 | Found in hex form in kernel source, with the following notice: | ||
| 402 | |||
| 403 | BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE IT IS LICENSED "AS IS" AND | ||
| 404 | THERE IS NO WARRANTY FOR THE PROGRAM, INCLUDING BUT NOT LIMITED TO THE | ||
| 405 | IMPLIED WARRANTIES OF MERCHANTIBILITY OR FITNESS FOR A PARTICULAR PURPOSE | ||
| 406 | (TO THE EXTENT PERMITTED BY APPLICABLE LAW). USE OF THE PROGRAM IS AT YOUR | ||
| 407 | OWN RISK. IN NO EVENT WILL ADAPTEC OR ITS LICENSORS BE LIABLE TO YOU FOR | ||
| 408 | DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES | ||
| 409 | ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM. | ||
| 410 | |||
| 411 | -------------------------------------------------------------------------- | ||
diff --git a/firmware/adaptec/starfire_rx.bin.ihex b/firmware/adaptec/starfire_rx.bin.ihex new file mode 100644 index 000000000000..6b1fae0d18eb --- /dev/null +++ b/firmware/adaptec/starfire_rx.bin.ihex | |||
| @@ -0,0 +1,53 @@ | |||
| 1 | :10000000010003DC00000000040004210000008661 | ||
| 2 | :10001000800000150000180E8100001500006664C5 | ||
| 3 | :100020001A0040AB00000B06142000110000000075 | ||
| 4 | :10003000142040220000AAAA14204022000003003D | ||
| 5 | :1000400014204022000000001A0040AB00000B14F6 | ||
| 6 | :1000500014200011000000008300001500000002C1 | ||
| 7 | :10006000040000210000000000000010000000005B | ||
| 8 | :1000700004000421000000870000001000000000C0 | ||
| 9 | :1000800000000010000000000000801500000000CB | ||
| 10 | :100090000000003E00000000000000100000000012 | ||
| 11 | :1000A0008200001500004000009E8050000000000B | ||
| 12 | :1000B000030080150000000086008015000000008D | ||
| 13 | :1000C00082000015000080000100001C00000000FC | ||
| 14 | :1000D000000050A00000010C4E20D011000060086C | ||
| 15 | :1000E0001420D012000040080000F09000007000C2 | ||
| 16 | :1000F0000000C8B0000030000000404000000000D8 | ||
| 17 | :10010000001080150000000000A2C1500000400057 | ||
| 18 | :1001100000A400B000000014000000200000000057 | ||
| 19 | :100120002500400D0000252500047220000031004C | ||
| 20 | :10013000009340700000000000000020000000005C | ||
| 21 | :1001400000924460000001842B20C01100000000D8 | ||
| 22 | :100150000000C42000000540360140180000422D78 | ||
| 23 | :100160001420001100000000009244600000018390 | ||
| 24 | :100170003200001F0000003402AC00150000000235 | ||
| 25 | :1001800000A601100000000842200011000000003D | ||
| 26 | :1001900000924060000001030000001E000000000B | ||
| 27 | :1001A00000000020000001000000001E0000000010 | ||
| 28 | :1001B00000924460000000860000408000000000C3 | ||
| 29 | :1001C0000092C0700000000000924060000001003A | ||
| 30 | :1001D0000000C8900000500000A6C1100000000000 | ||
| 31 | :1001E00000B0C09000000012021C001500000000CA | ||
| 32 | :1001F0003200001F0000003400924460000005102F | ||
| 33 | :100200004421001100000000420000110000000025 | ||
| 34 | :1002100083000015000000400092446000000508C3 | ||
| 35 | :100220004501401800004545008080500000000056 | ||
| 36 | :10023000622080120000000082000015000008000B | ||
| 37 | :100240001520001100000000000000100000000058 | ||
| 38 | :10025000000000100000000000000010000000007E | ||
| 39 | :10026000000000100000000000000010000000006E | ||
| 40 | :10027000800000150000EEA4810000150000005F62 | ||
| 41 | :1002800000000060000000000000412000000000AD | ||
| 42 | :1002900000004A000000400000924460000001900D | ||
| 43 | :1002A0005601401A000059561400001100000000C9 | ||
| 44 | :1002B0000093405000000018009300500000001808 | ||
| 45 | :1002C0003601403A0000002D000643A9000000005E | ||
| 46 | :1002D0000000C420000001405601401A0000595699 | ||
| 47 | :1002E00014000011000000000000001000000000D9 | ||
| 48 | :1002F0000000001000000000000642A900000000FD | ||
| 49 | :1003000000024420000001835601401A00005956A3 | ||
| 50 | :1003100082000015000020001520001100000000E0 | ||
| 51 | :1003200082000015000000101520001100000000E0 | ||
| 52 | :1003300082000015000000101520001100000000D0 | ||
| 53 | :00000001FF | ||
diff --git a/firmware/adaptec/starfire_tx.bin.ihex b/firmware/adaptec/starfire_tx.bin.ihex new file mode 100644 index 000000000000..6b1fae0d18eb --- /dev/null +++ b/firmware/adaptec/starfire_tx.bin.ihex | |||
| @@ -0,0 +1,53 @@ | |||
| 1 | :10000000010003DC00000000040004210000008661 | ||
| 2 | :10001000800000150000180E8100001500006664C5 | ||
| 3 | :100020001A0040AB00000B06142000110000000075 | ||
| 4 | :10003000142040220000AAAA14204022000003003D | ||
| 5 | :1000400014204022000000001A0040AB00000B14F6 | ||
| 6 | :1000500014200011000000008300001500000002C1 | ||
| 7 | :10006000040000210000000000000010000000005B | ||
| 8 | :1000700004000421000000870000001000000000C0 | ||
| 9 | :1000800000000010000000000000801500000000CB | ||
| 10 | :100090000000003E00000000000000100000000012 | ||
| 11 | :1000A0008200001500004000009E8050000000000B | ||
| 12 | :1000B000030080150000000086008015000000008D | ||
| 13 | :1000C00082000015000080000100001C00000000FC | ||
| 14 | :1000D000000050A00000010C4E20D011000060086C | ||
| 15 | :1000E0001420D012000040080000F09000007000C2 | ||
| 16 | :1000F0000000C8B0000030000000404000000000D8 | ||
| 17 | :10010000001080150000000000A2C1500000400057 | ||
| 18 | :1001100000A400B000000014000000200000000057 | ||
| 19 | :100120002500400D0000252500047220000031004C | ||
| 20 | :10013000009340700000000000000020000000005C | ||
| 21 | :1001400000924460000001842B20C01100000000D8 | ||
| 22 | :100150000000C42000000540360140180000422D78 | ||
| 23 | :100160001420001100000000009244600000018390 | ||
| 24 | :100170003200001F0000003402AC00150000000235 | ||
| 25 | :1001800000A601100000000842200011000000003D | ||
| 26 | :1001900000924060000001030000001E000000000B | ||
| 27 | :1001A00000000020000001000000001E0000000010 | ||
| 28 | :1001B00000924460000000860000408000000000C3 | ||
| 29 | :1001C0000092C0700000000000924060000001003A | ||
| 30 | :1001D0000000C8900000500000A6C1100000000000 | ||
| 31 | :1001E00000B0C09000000012021C001500000000CA | ||
| 32 | :1001F0003200001F0000003400924460000005102F | ||
| 33 | :100200004421001100000000420000110000000025 | ||
| 34 | :1002100083000015000000400092446000000508C3 | ||
| 35 | :100220004501401800004545008080500000000056 | ||
| 36 | :10023000622080120000000082000015000008000B | ||
| 37 | :100240001520001100000000000000100000000058 | ||
| 38 | :10025000000000100000000000000010000000007E | ||
| 39 | :10026000000000100000000000000010000000006E | ||
| 40 | :10027000800000150000EEA4810000150000005F62 | ||
| 41 | :1002800000000060000000000000412000000000AD | ||
| 42 | :1002900000004A000000400000924460000001900D | ||
| 43 | :1002A0005601401A000059561400001100000000C9 | ||
| 44 | :1002B0000093405000000018009300500000001808 | ||
| 45 | :1002C0003601403A0000002D000643A9000000005E | ||
| 46 | :1002D0000000C420000001405601401A0000595699 | ||
| 47 | :1002E00014000011000000000000001000000000D9 | ||
| 48 | :1002F0000000001000000000000642A900000000FD | ||
| 49 | :1003000000024420000001835601401A00005956A3 | ||
| 50 | :1003100082000015000020001520001100000000E0 | ||
| 51 | :1003200082000015000000101520001100000000E0 | ||
| 52 | :1003300082000015000000101520001100000000D0 | ||
| 53 | :00000001FF | ||
