10ca5a07633d0f1dd53ab6cb13d8aafb7e114cf7
[linux-2.6.git] / drivers / net / bcm5700 / RELEASE.TXT
1 \r
2                               Release Notes\r
3                        Broadcom BCM5700 Linux Driver\r
4                               Version 8.3.17b\r
5                                 02/21/2006\r
6 \r
7                           Broadcom Corporation\r
8                           16215 Alton Parkway,\r
9                           Irvine, CA 92619-7013\r
10 \r
11                 Copyright (c) 2000-2006 Broadcom Corporation\r
12                            All rights reserved\r
13 \r
14 \r
15 v8.3.17b (February 21 2006)\r
16 =========================\r
17     Fixes:\r
18     ------\r
19     1. Problem : (ISSUE289636) 5715 ports hang under linux with 6 or more\r
20                  ports are active in the RFC2544 test.\r
21        Cause   : While running RFC2544 test with 6 or more ports active\r
22                  the linux error message "NETDEV_WATCHDOG transmitt timed out"\r
23                  gets displayed multiple times. After multiple errors 5715\r
24                  ports stop working.\r
25        Change  : Updated trans_start with jiffies before calling\r
26                  netif_stop_queue to prevent false NETDEV WATCHDOG\r
27        Impact  : 5715.\r
28 \r
29 v8.3.17 (January 18 2006)\r
30 =========================\r
31 The patch file in the bcm_sup-8.3.16 tar file will not compile\r
32 in 2.6.14 kernels. This release version is using a patch\r
33 file for 2.6.13 kernels.\r
34 \r
35 v8.3.16 (January 10 2006)\r
36 =========================\r
37     Enhancement:\r
38     ------------\r
39         ECD13216 complete workaround for 5714/5715 fiber:\r
40         During chip init set: \r
41         0x5b0[10]=1\r
42         0x6808[5:4]=01\r
43         To check link status read:\r
44         0x460 bit 3 is set when link is established.    \r
45 \r
46 \r
47 v8.3.15 (December 16, 2005)\r
48 ===========================\r
49     Enhancement:\r
50     ------------\r
51         Added support for 5714S and 5715S.\r
52  \r
53 \r
54 v8.3.14 (November 02, 2005)\r
55 ===========================\r
56     Fixes:\r
57     ------\r
58     1. Problem : (CQ14546) Montara A2 devices cannot write to ST flash\r
59                  parts.\r
60        Cause   : ST parts require an additional "write enable" command\r
61                  to be executed before any write operations can\r
62                  commence.  Montara A2 devices do not issue this\r
63                  command on behalf of the driver.\r
64        Change  : Code already exists in the driver to issue the\r
65                  "write enable" command, but the code is only enabled\r
66                  on an opt-in basis.  The 5714 family devices have\r
67                  been added to the list of devices that explicitly\r
68                  issue this command.\r
69        Impact  : This fix only impacts 5714 family of devices.\r
70 \r
71 \r
72 v8.3.13 (October 28, 2005)\r
73 ==========================\r
74     Fixes:\r
75     ------\r
76     1. Problem : CQ13326 NETDEV Watchdog timeout followed by kernel panic.\r
77        Cause   : A NETDEV watchdog timeout was occurring because writes to the\r
78                  indirect memory register were not being flushed when setting\r
79                  the watchdog timer's keep alive bit.\r
80        Change  : Changed the driver to use direct memory writes instead of\r
81                  indirect memory writes when setting the keep alive bit.\r
82        Impact  : This fix impacts any PCI-E device that has ASF/IPMI enabled.\r
83 \r
84 \r
85 \r
86 v8.3.11 (October 20, 2005)\r
87 ==========================\r
88     Fixes:\r
89     ------\r
90     1. Problem : CQ13326 NETDEV Watchdog timeout followed by kernel panic. \r
91                  Some systems would generate NMI's followed by NETDEV Watchdog\r
92                  timeouts and eventually panic when running a stress test using\r
93                  multiple NIC's in a BASP team with ASF/IPMI enabled.\r
94        Cause   : The NMI was caused by the ASF/IPMI firmware reseting the NIC\r
95                  while the driver was operational because of a watchdog timeout. \r
96                  The watchdog timeout was occurring because the keep alive\r
97                  handshake between the driver and firmware would fail\r
98                  occasionally for the same reason as documented in CQ13369 in\r
99                  v8.3.1. In this case, the driver was using pci config writes to\r
100                  set the keep alive flag when ASF/IPMI was enabled. Pci config\r
101                  writes made by the driver while it is running can result in the\r
102                  chipset misrouting the write to another device. When this\r
103                  happens, the firmware does not see the keep alive bit being set\r
104                  by the driver and concludes that the driver had failed and\r
105                  resets the chip accordingly. \r
106        Change  : There are two methods available to workaround this problem. One\r
107                  workaround is to set the pci=nommconfig switch when starting\r
108                  the kernel. This switch is available only with newer kernels\r
109                  (2.6) and on systems that support PCI-E (i.e. ICH6-7). Starting\r
110                  the kernel with this switch will disable memory mapped config\r
111                  cycles from being used by the kernel, so the kernel instead\r
112                  uses the standard 0xcf8/0xcfc i/o ports to generate pci config\r
113                  cycles. The other method is to upgrade to this driver which\r
114                  avoids using pci config cycles when updating the keep alive\r
115                  flag and uses memory writes cycles instead.\r
116        Impact  : This problem occurs on devices that have ASF/IPMI enabled and \r
117                  are running on a 2.6 kernel and in a system that is PCI-E\r
118                  capable. Similarly, this patch is executed only on systems with\r
119                  an Intel ICH4 or newer chipsets and when ASF/IPMI is enable.\r
120                  The patch is not executed if ASF is disable. Also, the old\r
121                  method of using pci config writes to update the keep alive flag\r
122                  is used when the chipset is older than ICH4.\r
123 \r
124     2. Problem : Broadcom Teaming driver would not fail over when controller\r
125                  speed was forced to 100 half duplex.\r
126         Cause  : The driver did not indicate a link down state when necessary.\r
127                  The LineSpeed variable was not being set properly in the NICE\r
128                  interface for teaming.\r
129         Change : The driver indicates the proper link state in the NICE interface.\r
130         Impact : Broadcom Teaming driver will failover properly.\r
131 \r
132 \r
133 v8.3.11 (October 18, 2005)\r
134 ==========================\r
135 \r
136 Note: Removal of support for 5714S, 5715S, 5755, 5787 controllers.\r
137 \r
138 \r
139 \r
140 v8.3.10 (October 14, 2005)\r
141 ==========================\r
142     Fixes:\r
143     ------\r
144 \r
145     1. Problem : CQ13716 Netdump does not work on RH4EL U1 with bcm5700 \r
146                  driver. When intentionally crashing the system to test the \r
147                  netdump application, the bcm5700 driver would hang on the \r
148                  client and so the dump file would not be created on the netdump\r
149                  server. \r
150        Cause   : The interface to the driver poll function called by netdump\r
151                  when the system crashes changed slightly between RHEL3 and\r
152                  RHEL4. For RHEL4, the poll function in the driver called by\r
153                  netdump (poll_bcm5700) no longer has to call the bcm_poll() as\r
154                  it had previously. This is because the netdump controller calls\r
155                  the bcm_poll() function from outside the driver. Calling \r
156                  bcm_poll() from within the driver results in recursively \r
157                  re-entering netdump, hanging the application.\r
158        Change  : The driver was modified to detect the version of Redhat it's \r
159                  being built for and to use the appropriate algorithm in\r
160                  poll_bcm5700(). \r
161        Impact  : This change applies specifically to Redhat and Fedora OS's, and\r
162                  is independent of the device type.\r
163 \r
164     2. Problem : CQ14274 Linux bcm5700 build errors on SUSE 10.2.6.13-15.\r
165        Cause   : The driver was using "#if"'s instead of "#ifdef"'s on variables\r
166                  that could remain undefined. This caused the compiler\r
167                  distributed with SUSE to issue compiler warnings when building\r
168                  the bcm5700 driver.\r
169        Change  : Two categories of changes made to the driver to fix this\r
170                  problem. First, if the variable causing the warning was used\r
171                  such that it either simply was "defined" or "not defined", then\r
172                  the "#if" was changed to "#ifdef" in the driver. However, if\r
173                  the variable usage was such that it could either be\r
174                  "not defined" or a number from 0-n, then a conditional was\r
175                  added into the header file to define the variable and set its\r
176                  value to 0 whenever it was not defined. This allowed the code\r
177                  in the driver to still use the "#if" and not have to change\r
178        Impact  : This change was applied to the driver in general and applies to\r
179                  all linux distributions, not just SUSE. These changes do not\r
180                  apply to a specific NIC, though they are used enable and\r
181                  disable specific features in the driver, such as, software\r
182                  workarounds for 570x, enabling Jumbo Frames, TBI support and\r
183                  PCI-X software workarounds.\r
184 \r
185 \r
186 v8.3.9 (September 30, 2005)\r
187 ===========================\r
188     Fixes:\r
189     ------\r
190        Problem :The PHY registers can become corrupted on all 5714S,\r
191                 5715S, and 5780S devices.\r
192         Cause  :The periodic link check code does not acquire the phy\r
193                 lock before performing its task.\r
194         Change :Add phy lock acquisition and release code around\r
195                 the link check function call.\r
196         Impact : 5714/5715/5780 fiber.\r
197 \r
198 \r
199 v8.3.8 (September 29, 2005)\r
200 ===========================\r
201     Fixes:\r
202     ------\r
203        Problem :CQ14155 5714 fiber occasionally does not get link.\r
204         Cause  :This problem occurs when the duplex and line_speed\r
205                 parameters are used with the 5714 fiber controller.\r
206                 The driver allowed autonegotiation with only half\r
207                 duplex advertised. Some switches do not support 1G fiber at half\r
208                 duplex.\r
209         Change :If the controller is fiber, autonegotiation has full and half \r
210                 duplex advertised regardless of parameter settings.\r
211         Impact : 5714/5715/5780 fiber.\r
212 \r
213     Note: Removed support for 5903F that was introducd in v8.3.2. \r
214 \r
215 v8.3.7 (September 27, 2005)\r
216 ===========================\r
217     Fixes:\r
218     ------\r
219     1. Problem : The 5780 fiber ports on an IBM Maui PPC Blade server would stop\r
220                  receiving packets during a simple ping test.\r
221        Cause   : The RX DMA Engine (RDE) was not being re-enabled after the RX\r
222                  MAC was reset. This happens only after driver v8.3.2.\r
223        Change  : The sequence of reseting the Rx MAC was changed so that the RDE\r
224                  is enabled after the Rx MAC is reset.\r
225        Impact  : This change was made to specifically correct a problem seen on\r
226                  5780 and 5714 fiber devices. However, it should be noted that\r
227                  the implementation applies the change to all fiber devices.\r
228     \r
229     2. Problem : CQ 13980 BCM5780S can't pass link test with bcm5700 v8.3.2. \r
230        Cause   : The link test would fail when running "ethtool -t ethx" on \r
231                  fiber links that were in forced fallback mode. The test failed \r
232                  because the PHY_FIBER_FALLBACK flag in the PhyFlags variable\r
233                  was not being reinitialized when the PHY was reset. This caused\r
234                  the driver to think it was already in forced fallback mode when\r
235                  it wasn't. Running ethtool -t would reset the PHY and the\r
236                  driver would autoneg the link. When autoneg would fail, the\r
237                  driver wouldn't force the link because the force fallback flag \r
238                  (PHY_FIBER_FALLBACK) was already set from the initial PHY reset\r
239                  and hence the driver though it had already fallen back. \r
240        Change  : Changing the driver to clear the PHY_FIBER_FALLBACK flag in\r
241                  the PhyFlags variable whenever 1) auto-neg is initiated or\r
242                  2) whenever the PHY is reset fixed this problem.\r
243        Impact  : This problem only occurred on 5780, 5714 and 5715 devices with\r
244                  fiber phys attached to a switch that forces the link to gigabit\r
245                  speed (e.g a switch that doesn't auto negotiate the link).\r
246 \r
247 \r
248 v8.3.6 (September 22, 2005)\r
249 ===========================\r
250     Fixes:\r
251     ------\r
252     1. Problem :CQ14069 5714s causes NMI when bringing interface down \r
253                 with ASFIPMI enabled.\r
254         Cause  :5714 Switching to VAUX power on certain systems caused\r
255                 NMI to occur.\r
256         Change :The 5714/5715 will not switch to VAUX power.\r
257         Impact :5714/5715 controllers.\r
258  \r
259     2. Problem :CQ14119 Using 5714 fiber a linking loop occurs when restrictive\r
260                 autoneg is used.\r
261         Cause  :The driver continually configures the fiber link causing \r
262                 continual phy interrupts. Only when user forces link.\r
263         Change :The driver reconfigures the phy when requested configuration\r
264                 differs from current configuration.\r
265         Impact :5714/5715 fiber.\r
266  \r
267 \r
268 v8.3.5 (September 19, 2005)\r
269 ==========================\r
270     Fixes:\r
271     ------\r
272     1. Problem :CQ14063 parameter nic_tx_bd not getting set.\r
273         Cause  :5705 and later controllers do not support this\r
274                 feature.\r
275         Change :README.TXT was updated to include the description\r
276                 "and later"\r
277         Impact :None.\r
278 \r
279     2. Problem :CQ14054 Two adapter names for each lom in Linux.\r
280         Cause  :The driver displayed a different integrated phy\r
281                 number than the controller type.\r
282         Change :Changed the code to ensure the correct phy number\r
283                 is displayed.\r
284         Impact :5780 SERDES only.\r
285 \r
286     3. Problem :CQ13971 5714S stops passing traffic after a few seconds.\r
287         Cause  :The Rx Mac Mode reset was causing this to occur.\r
288         Change :No longer reset RxMode for 5714 SERDES.\r
289         Impact :5714/5715 SERDES.\r
290   \r
291 \r
292 v8.3.4 (September 15, 2005)\r
293 ==========================\r
294 \r
295 \r
296     Enhancements:\r
297     ============\r
298     1. Added basic support for 5755 and 5787 to driver.\r
299        - Added device, asic and phy ids for 5755/5787 devices.\r
300        - Modified the id macros to include these new devices.\r
301        - Added code to recognize the new phy id.\r
302        - Changed the PCI-E detection algorithm to use the kernel api.\r
303     2. Enabled hardware fix for CQ12384 and CQ12156 on 5755 and 5787.\r
304        - The 5751/5752/5753 devices may assert #INTA before writting\r
305          the corresponding status block to host memory.\r
306        - A software workaround for this problem was first implemented in\r
307          v8.1.10 of the driver (change #1 in release.txt).\r
308        - A hardware workaround to this problem has also been implemented\r
309          in 5755 and 5787 devices.\r
310        - This change enables the hardware workaround to this problem by\r
311          setting bit-29 in register 0x4c00 on 5755 and 5787 devices.\r
312     3. Enabled full hardware checksum offloading on 5755 and 5787.\r
313        - Use NETIF_F_HW_CSUM instead of NETIF_F_IP_CSUM on 5755/5787 \r
314          devices.\r
315     4. Added TSO support for 5755 and 5787 to the driver.\r
316        - The definition of the L3/L4 header length field in the send\r
317          buffer descriptor has been changed on 5755/5787 devices.\r
318        - The driver was modified to use a new algorithm to calculate\r
319          the L3/L4 header length for 5755/5787 devices.\r
320     5. Added fix for ECD13216 for the SERDES cross link problem.\r
321 \r
322 \r
323 \r
324 v8.3.3 (September 7, 2005)\r
325 ==========================\r
326     Fixes:\r
327     ------\r
328     1. Problem : CQ13626 Wrong message is displayed on the console when jumbo\r
329                  frames are enabled.\r
330        Cause   : Redo of fix #2 in 8.3.1. \r
331        Change  : Reordered some of the printk's in the driver so that the \r
332                  messages will be displayed correctly for all options.\r
333        Impact  : This bug is cosmetic, though it will cause some confusion \r
334                  regarding whether TSO or jumbo frames has been enabled on \r
335                  adapters other than the 5714 family.\r
336 \r
337     2. Problem : 5714, 5715, and 5780 devices do not work with ST flash\r
338                  parts.\r
339        Cause   : The NVRAM discovery code was using the legacy\r
340                  discovery method instead of the 5750 method.\r
341        Change  : Change code to use the 5750 NVRAM discovery method.\r
342        Impact  : ST NVRAM parts operate correctly.\r
343 \r
344     3. Problem : CQ13846 Call Trace When Jumbo Frames Are Enabled.\r
345        Cause   : When jumbo frames are enabled the driver will use vmalloc\r
346                  and vfree to setup the jumbo packet descriptors.  \r
347                  vfree/vmalloc can only be used in user context (open/close/ioctle)\r
348                  and enterrupts must be enabled. The driver was using vfree with \r
349                  interrupts disabled causing the call trace.\r
350        Change  : The vmalloc/vfree was replaced with kmalloc/kfree.\r
351        Impact : None.\r
352 \r
353     4. Problem : CQ13660 Ethtool Offline Test, intermittently Fails Loopback Test.       \r
354         Cause  : The driver did not reset the RX mode in the mac causing the \r
355                  phy to drop the first few packets. This only occured in\r
356                  the 5780/5714/5715 devices. Other serdes devices have the rx\r
357                  mode reset in the code.\r
358         Change : Added  rx mode reset to ensure the phy is in sync with the mac.\r
359         Impact : Only 5780/5714/5715.\r
360 \r
361 \r
362 \r
363 v8.3.2 (August 26, 2005)\r
364 =======================\r
365     Fixes:\r
366     ------\r
367     1. Problem : CQ13025 Unable to force speed on legacy serdes (5704,03,etc).\r
368         Cause  : Failed in ethtool due to code that did not include 5704/3\r
369                  fiber properly.\r
370         Change : Changed code to allow fiber to be forced to 1000Mbs.\r
371         Impact : All Serdes adapters.\r
372 \r
373     2. Problem : CQ13533 Cannot compile on PPC w/SuSe 8.\r
374         Cause  : Missing #include <linux\vmalloc>. This problem\r
375                  was originally reported in driver v8.2.14 as \r
376                  vmalloc() was introduced. The vmalloc was removed at that \r
377                  time.  \r
378         Change : Added missing include.\r
379         Impact : none.\r
380 \r
381   Enhancements :\r
382   =============\r
383      Added support for 5903M and 5903F adapters.\r
384 \r
385 \r
386 \r
387 v8.3.1 (August 23, 2005)\r
388 =======================\r
389     Fixes :\r
390     -------\r
391     1. Problem : CQ13369 Kernel panic occurs under stress with large 802.3ad\r
392                  teams.\r
393        Cause   : The kernel panic was caused by the ICH6 rev. C2 misdirecting\r
394                  pci config reads to the wrong device. The driver was using pci\r
395                  config cycle to read the low-priority mailbox of the 5703\r
396                  attached to the 5714's expansion bus. The driver was using\r
397                  indirect pci config cycles to read the MB to apply a special\r
398                  cycle  workaround needed for 5703-A1/2 and 5704-A0 when they\r
399                  are  connected to the PCI-X bus of an ICH1-ICH4.\r
400        Change  : This workaround is really only needed when the 5703/4 is\r
401                  directly attached to older ICH chips. This problem was resolved\r
402                  by modifying the driver to only apply the workaround when a\r
403                  5703-A1/2 or 5704-A0 is directly attached to an ICH1-ICH4\r
404                  chipset. This problem can also be worked around by setting the\r
405                  switch pci=nommconfig when starting the kernel. This switch is\r
406                  available only with newer kernels (2.6) and on systems with\r
407                  PCI-E (i.e. ICH6-7). Starting the kernel with the above switch\r
408                  disables memory mapped config cycles being used by the kernel,\r
409                  so the kernel instead uses the standard 0xcf8/0xcfc i/o ports\r
410                  to generate pci config cycles.\r
411        Impact  : This problem and the fix only applies to 5703-A1/A2 or 5704-A0\r
412                  connect to a PCI-X bus in systems with an ICH6 or ICH7 chipset.\r
413 \r
414     2. Problem : CQ13626 Wrong message is displayed on the console when jumbo\r
415                  frames are enabled.\r
416        Cause   : The 5714 family of adapters cannot support both jumbo frames\r
417                  and TSO at the same time. When the driver detects that a user\r
418                  is trying to enable both features on a 5714, it will disable\r
419                  TSO, enable jumbo frames, and log a message to the syslog.\r
420                  There was a bug in the driver logic that caused it to log a\r
421                  message saying jumbo frames and TSO cannot simultaneously\r
422                  be supported even if the adapter could support both features\r
423                  being enabled at the same time.\r
424        Change  : The driver logic was changed to only log this message when the\r
425                  adapter is a member of the 5714 family of controllers.\r
426        Impact  : This bug is cosmetic, though it will cause some confusion \r
427                  regarding whether TSO or jumbo frames has been enabled on \r
428                  adapters other than the 5714 family.\r
429 \r
430     3. Problem : CQ13658 stats_coalesce_ticks parameter does not default to \r
431                  the correct number.\r
432        Cause   : If the parameter value is set by the user and it is below \r
433                  the minimum supported value, then the parameter value used\r
434                  will be the minimum supported value for this parameter.\r
435                  When the value exceeds the maximum supported \r
436                  value, then the value will become the default value.\r
437        Change  : The driver will not validate this paremeter if the \r
438                  adaptive_coalesce parameter is set.\r
439        Impact  : The driver will display a message when stats_coalesce_ticks\r
440                  and adaptive_coalesce parameters are set.\r
441 \r
442     4. Problem : CQ13025 Unable to force speed on legacy serdes (5704,03,etc).\r
443        Cause   : A bug in the driver prevented the user from forcing speed on\r
444                  serdes adapters. The speed parameter was not being checked\r
445                  properly.\r
446        Change  : The driver checks the speed input correctly.\r
447        Impact  : All legacy serdes adapters can now be forced to 1000.\r
448 \r
449     5. Problem : CQ13612 Rx_Jumbo_Packets counter does not increment on 5780.\r
450        Cause   : The adapters 5705 and later do not have the jumbo packet \r
451                  counters.\r
452        Change  : The driver does not display the jumbo packets counter.\r
453        Impact  : 5705 and new adapters will not display the counter.\r
454 \r
455     6. Problem : CQ13263 5780 fiber intermittently fails to link properly with \r
456                  3COM 4900 SX switch.\r
457        Cause   : Occasionally the 4900 switch and the 5780 fiber will not\r
458                  autonegotiate.\r
459        Change  : A delay was put in the driver to allow better autonegotiation.\r
460        Impact  : 5780 Serdes only.\r
461  \r
462     7. Problem : CQ13759 bcm5700 corrupts memory when doing ethtool -t eth0.\r
463        Cause   : The driver was using a wrong value in the driver self test\r
464                  allowing  data writes to user space.\r
465        Change  : The test value was changed to the correct value. This bug\r
466                  was found and fixed by York Chung.\r
467        Impact  : All adapters when running this test.\r
468        \r
469 \r
470     Enhancements:\r
471     ============\r
472     1. Added support for 5714/5715 family of adapters.\r
473     2. Added the 5714/5714 performance fix for CQ13140.\r
474     3. Added new IPMI handshake.\r
475 \r
476 \r
477 v8.2.18 (August 1, 2005)\r
478 ========================\r
479     Fixes:\r
480     ======\r
481        Problem : CQ13578 Linux i386 2.4:insmod bcm5700 8.2.XX with tg3\r
482                  already loaded causes panic.\r
483        Cause   : The netdevice_notifier was being registered to the bcm\r
484                  driver code and the code did not unregister the notifier\r
485                  callback routine when the bcm device was not present.\r
486                  This bug was introduced in driver v8.2.6 cq10262.\r
487        Change  : Registering of notifier is done when a device is found.\r
488        Impact  : 2.4 kernel\r
489 \r
490 \r
491 v8.2.17 (July 29, 2005)\r
492 ======================\r
493     Fixes:\r
494     ======\r
495        Problem : CQ13550 Linux 8.2.12+ driver fails BASP Automation.\r
496        Cause   : A bug was introduced in v8.2.12 that prevented the\r
497                  5703 from getting proper link after closing and opening\r
498                  the driver interface.\r
499        Change  : The code was modified to ensure 5703 is configured\r
500                  properly after each interface open.\r
501        Impact  : 5703 copper nics using using v8.2.12 upto v8.2.16.\r
502 \r
503 \r
504 v8.2.16 (July 27, 2005)\r
505 ======================\r
506     Enhancement:\r
507     ============\r
508     Added the skb_cloned_header check for tco support in 2.6.12 kernels.\r
509 \r
510 \r
511 v8.2.15 (July 26, 2005)\r
512 =======================\r
513     Fixes:\r
514     ======\r
515 \r
516     1. Problem : CQ13533 Cannot compile on PPC w/SuSe 8.\r
517        Cause   : vmalloc is not in the SuSe 8 library.\r
518                  vamalloc was introduced into the driver in v8.2.13.\r
519        Change  : Replaced vmalloc with kmalloc.\r
520        Impact  : Problem resolved on SuSe 8 PPC.\r
521 \r
522     2. Problem : CQ13525 Missing items in supplemental tar file.\r
523        Cause   : latest patch file was not included, nor was disk image.\r
524        Change  : included patch files and disk image.\r
525        Impact  : None.\r
526 \r
527     3. Problem : CQ13519 Jumbo enabled causes call trace.\r
528        Cause   : vmalloc was being used outsie of init or close functions.\r
529        Change  : Replaced vmalloc with kmalloc.\r
530        Impact  : None.\r
531 \r
532 \r
533 v8.2.14 (July 21, 2005)\r
534 =======================\r
535 \r
536 This version does not have support for 5714/5715 controllers.\r
537 \r
538 \r
539 v8.2.13 (July 21, 2005)\r
540 =======================\r
541     1. Problem : CQ 13381 5715s: Driver incorrectly reports the PCI-X bus\r
542                  speed is 33 MHz instead of 133 MHz.\r
543        Cause   : The driver was incorrectly using just the Bond ID (and not\r
544                  the ASIC IC) to determine if chip was a 5704CIOBE. On a\r
545                  5714Cu, the Bond ID by luck matched the CIOBE which led the\r
546                  driver to conclude that the PCI-X bus speed was 133 MHz. On\r
547                  a 5714S, the Bond ID did NOT match the CIOBE, and so the\r
548                  driver used the bits 0-4 (=0) in the Clock Control register\r
549                  (0x70) to incorrectly conclude that the PCI-X bus speed was\r
550                  33 MHz.\r
551        Change  : The driver was hardcoded to display the PCI-X bus speed as\r
552                  133 MHz when 1) both the ASIC Id AND the Bond Id both\r
553                  identify the chip as a 5704CIOBE, or 2) the ASIC ID is a\r
554                  5714, 5715 or 5780.\r
555        Impact  : This change is only cosmetic and will not have any impact\r
556                  on system performance or functionality. The change was only to\r
557                  correctly display the bus speed stored in /proc/net/nicinfo.\r
558                  The code that was changed is used by all PCI-X devices,\r
559                  in particular CIOBE, 5714, 5715 and 57890.\r
560 \r
561     2. Problem : CQ 13431 B57LDIAG nictest fails on 5780/5714/5715.\r
562         Cause  : The driver was not restoring the MSI state properly\r
563                  after resets. This bug was introduced in driver v8.2.12.\r
564         Change : Save the MSI state before reset and retore it after\r
565                  reset.\r
566         Impact : All msi supported drivers.\r
567 \r
568    Enhancement : 5703 DMA read water mark was to 512 in pcix mode as\r
569                  the proper value for the workaround below after\r
570                  tests determined this setting to be the optimal value.\r
571 \r
572 \r
573 v8.2.12 (July 20, 2005)\r
574 =======================\r
575     Fixes :\r
576     -------\r
577     1. Problem : CQ13208 Kernel panics when using ethtool on an\r
578                  inactive interface.\r
579        Cause   : The ethtool command executes LM_SetupPhy(), which\r
580                  dereferences the device's status block.  When an\r
581                  interface is not active though, the status block\r
582                  memory will have been freed / will be NULL.  The\r
583                  crash is due to a NULL pointer dereference.\r
584        Change  : Avoid calling LM_SetupPhy() if the interface is not\r
585                  active.\r
586        Impact  : None.\r
587 \r
588     2. Problem : A 5703 or 5704 can hang when connected to a PCI-X bus if the\r
589                  DMA Read Watermark register is not programmed correctly. This\r
590                  problem typically manifests itself as a watchdog timeout and\r
591                  possible loss of a TCP session. The driver monitors watchdog\r
592                  timeout events and will automatically recovers from these\r
593                  events by reseting the chip.\r
594        Cause   : This problem was documented in the hardware errata for the\r
595                  5703 chips, though it was not implemented in prior driver\r
596                  releases.\r
597        Change  : When a 5703 or 5704 is connected to a PCI-X bus, the DMA Read\r
598                  Watermark is programmed as follows:\r
599 \r
600                  Max Read Byte Count = PCI Config. Reg. 0x42, bits 3-2\r
601                  DMA Read Watermark  = PCI Config. Reg. 0x6C, bits 18-16\r
602 \r
603                  Max Read Byte Count  Allowable DMA Read Watermark Values\r
604                  -------------------  -----------------------------------\r
605                  00 =  512 bytes      0-4\r
606                  01 = 1024 bytes      0-5\r
607                  10 = 2048 bytes      0-7\r
608 \r
609        Impact  : Systems using a 5703 or 5704 chip in a PCI-X bus may\r
610                  experience NETDEV watchdog timouts without this change.\r
611                  Upgrading the driver to this version should fix this problem.\r
612                  No other system components need to be changed.\r
613 \r
614     3. Problem : ethtool -t causing oops when interface is down.\r
615         Cause  : Driver code would attempt to free  memory based\r
616                  on the index of the receive packet queue after the\r
617                  queue memory had already been freed.\r
618         Change : The re-initializeation of the receive packet queue at driver\r
619                  close to clear the index.\r
620         Impact : none.\r
621 \r
622     4. Problem : CQ13263 5780 fiber occasionally looses link on 3com 4900sx.\r
623         Cause  : Phy link would go down during reset and the reset phy\r
624                  function was not waiting long enough.\r
625         Change : Added longer delay in Reset Phy driver code and the driver\r
626                  does not toggle the gigabit setting in Mac.\r
627         Impact : 5780 fiber only.\r
628 \r
629 \r
630     Enhancement: Added loopback mode support for testing.\r
631 \r
632 \r
633 v8.2.11 (July 01, 2005)\r
634 =======================\r
635 \r
636     Fixes :\r
637     -------\r
638     1. Problem : CQ13321 Driver does not build.\r
639        Cause   : Undefined constant.\r
640        Change  : Recode so that the constant is no longer needed.\r
641        Impact  : None.\r
642 \r
643 \r
644 v8.2.10 (July 01, 2005)\r
645 =======================\r
646 \r
647     1. Problem : CQ12559 Call trace occurs when enslaving interface.\r
648        Cause   : The bonding driver can call the bcm5700 in a context\r
649                  where preemption is disabled. Some kernels will\r
650                  issue a call trace when an interface function involves\r
651                  a sleep thread when there should be none.\r
652        Change  : The driver was changed to detect if a call was being\r
653                  made to it in a non sleep context and it uses the\r
654                  appropriate copy function.\r
655                  ( the prior implementation of this fix was incorrect )\r
656        Impact  : All adapters with this version driver and kernel 2.6.x\r
657                  and above.\r
658                  There is still a call trace when the bonding driver is\r
659                  brought down, but it occurs with the tg3 driver as well.\r
660 \r
661     2. Problem : CQ13280 5780 displays incorrect speed and duplex\r
662                  advertisements in the procfile.\r
663        Cause   : The 5780 uses new phy code, which did not include\r
664                  filling in the "advertising" field of our device\r
665                  structure.  This field is used to construct strings\r
666                  for the procfile.\r
667        Change  : Add code to properly construct speed advertisement\r
668                  strings for the 5780.\r
669        Impact  : None.\r
670 \r
671 \r
672 v8.2.9 (June 28, 2005)\r
673 =======================\r
674 \r
675     Fixes :\r
676     -------\r
677     1. Problem : CQ13274 5780 cannot get link on copper PHYs.\r
678        Cause   : The 5780 uses the same PHY, but a different PHY mode\r
679                  when configured as a serdes device.  The different\r
680                  PHY mode requires the use of a different PHY register\r
681                  set.  The driver was coded to always use the alternate\r
682                  PHY mode when setting the flow control advertisement.\r
683        Change  : Change the code to use the alternate PHY mode only\r
684                  when on a 5714 family serdes device.\r
685        Impact  : None.\r
686 \r
687 \r
688 v8.2.8 (June 24, 2005)\r
689 =======================\r
690 \r
691     Fixes :\r
692     -------\r
693     1. Problem : CQ13202 Shasta C1 fails ethtool -t test and stops\r
694                  responding.\r
695        Cause   : The new HaltCpu code was improperly attempting to\r
696                  halt a non-existant Tx Cpu.  This is because the\r
697                  T3_HAS_TWO_CPUS bit was somehow set.\r
698        Change  : Explicitly turn off T3_HAS_TWO_CPUS before detecting\r
699                  devices that actually have two CPUS.\r
700        Impact  : All non-two-cpu devices.\r
701 \r
702     2. Problem : CQ13205 5714 fiber boards repeatedly display message\r
703          of link down.\r
704     Cause  : RH 4 seems to continually open and close the interface\r
705          of one of the ports of the 5714. If the cable of that\r
706          port is not linked, the message will be displayed.\r
707     Change : The driver will report link status when it changes.\r
708     Impact : All 5714 family fiber.\r
709 \r
710 \r
711 v8.2.7 (June 21, 2005)\r
712 =======================\r
713 \r
714     Fixes :\r
715     -------\r
716     1. Problem : CQ13011 5714s/5715s does not link when switch is forced\r
717                  to a 1000 and not set to Auto Negotiation.\r
718        Cause   : The speed forcing code for 5714s was not in place.\r
719        Change  : Code was added to the driver to allow forcing the\r
720                  speed to 1000Mbs and the driver will fall back to\r
721          1000Mbs when connection is sensed but autonegotiation\r
722          is disabled on the switch.\r
723        Impact  : 5714s/5715s/5780s\r
724 \r
725     2. Problem : CQ13051 5714s/5715s does have flow control function.\r
726        Cause   : The code for flow control  was not in place.\r
727        Change  : Code was added to the driver to allow flow control.\r
728        Impact  : 5714s/5715s/5780s\r
729 \r
730     3. Problem : CQ13072 Do not switch to VAUX power on 5714/5715.\r
731        Cause   : Power consumption is excessive.\r
732        Change  : Code was added to the driver to ensure VAUX power is\r
733          not consumed.\r
734        Impact  : 5714s/5715s\r
735 \r
736     4. Problem : CQ12559 Call trace occurs when enslaving interface.\r
737        Cause   : The bonding driver can call the bcm5700 in a context\r
738          where preemption is disabled. Some kernels will\r
739          issue a call trace when an interface function involves\r
740          a sleep thread when there should be none.\r
741        Change  : The driver was changed to detect if a call was being\r
742          made to it in a non sleep context and it uses the\r
743          appropriate copy function.\r
744        Impact  : All adapters with this version driver and kernel 2.6.x\r
745          and above.\r
746 \r
747 \r
748 \r
749 v8.2.6 (June 13, 2005)\r
750 =======================\r
751 \r
752     Fixes :\r
753     -------\r
754     1. Problem : CQ10262 iThe /proc/net/nicinfo filename does\r
755                  not match the device name in the output of\r
756                  ifconfig.\r
757        Cause   : No mechanism existed to notify the driver when the\r
758                  administrator changes the name of the device.\r
759        Change  : Added a callback function to respond to name change\r
760                  events.  When a name change event occurs, the proc\r
761                  filesystem entry is torn down and rebuilt.\r
762        Impact  : None.\r
763 \r
764     2. Problem : CQ12637 When running 'ethtool -t <interface>', the\r
765                  system becomes unresponsive for a several seconds.\r
766        Cause   : On uniprocessor systems, the kernel is busy performing\r
767                  the ethtool test.  This processing comes at the\r
768                  expense of servicing user events.\r
769        Change  : Added a message before the test begins notifying the\r
770                  administrator that the test will take some time.\r
771                  Littered the code with sleep() calls so that the\r
772                  kernel can service user events in between tests.\r
773        Impact  : None.\r
774 \r
775     3. Problem : CQ12972 Kernel panics when ethtool test is run after\r
776                  being up'd and down'd.\r
777        Cause   : When attempting to restore the previous power state\r
778                  (D3), the code dereferences a NULL status block\r
779                  pointer.\r
780        Change  : Detect if the status block pointer is NULL.  If so,\r
781                  forgo any packet ring cleanups.\r
782        Impact  : None.\r
783 \r
784     4. Problem : CQ12969 During 'ethtool -t <interface>' tests, the\r
785                  kernel issues "transmit timed out" messages.\r
786        Cause   : In normal operation, MM_IndicateStatus turns on and\r
787                  off the kernel transmit queues.  When the transmit\r
788                  queues are on, a packet must be transmitted within a\r
789                  certain amount of time, or else these warnings will\r
790                  appear.  During ethtool tests, the device is suspended\r
791                  and all kernel transmit queues are turned off.  It is\r
792                  possible however, for MM_IndicateStatus to be called\r
793                  after suspending the device.  In this scenario, on\r
794                  link up, MM_IndicateStatus would reenable the transmit\r
795                  queue during the ethtool test.  The end result is the\r
796                  above messages.\r
797        Change  : Modify the MM_IndicateStatus() function to only toggle\r
798                  the kernel queues if we are not suspended.\r
799        Impact  : None.\r
800 \r
801     5. Problem : CQ12215 Ethtool failures during ethtool test.\r
802        Cause   : There is a race condition between the driver and the\r
803                  firmware with respect to nvram lock acquisition.\r
804                  There can be cases where a terminated firmware\r
805                  acquires the NVRAM lock post-mortem.\r
806        Change  : Modify LM_HaltCpu() to free the nvram lock on behalf\r
807                  of the firmware whenever we can.  Flag the error\r
808                  otherwise.\r
809        Impact  : None.\r
810 \r
811     6. Problem : CQ12884 Linux DMA problem with ldiag.\r
812        Cause   : Some new distributions do not allow user space apps\r
813          access to memory allocated by a kernel process.\r
814        Change  : The driver will map/unmap memory that was allocated\r
815                  in user space.\r
816        Impact  : Ldiag application only.\r
817 \r
818     7. Problem : CQ12427 Enabling TSO causes random link down/up.\r
819     Cause  : Oversized message stress tests may impact TSO in\r
820          some machines causing NETDEV Timeouts.\r
821     Change : Added code to disable TSO if Timeouts detected\r
822          with TSO enabled.\r
823     Impact : 575x\r
824 \r
825 v8.2.5 (May 20, 2005)\r
826 =======================\r
827 \r
828     Fixes :\r
829     -------\r
830     1. Problem : CQ12806 Random kernel panics with 5714A1\r
831                  the kernel.\r
832                  CQ12827 Load/Unload with MSI enabled causes\r
833                  "nobody cared! (screaming interrupt)"\r
834 \r
835        Cause   : MSI enable bit in MSI capability block\r
836                  is cleared during GRC reset.\r
837 \r
838        Change  : Added software work-around to restore\r
839                  the state of this bit after a GRC reset\r
840 \r
841        Impact  : None.\r
842 \r
843 \r
844 v8.2.4 (May 16, 2005)\r
845 =======================\r
846 \r
847     Enhancements :\r
848     --------------\r
849     1. Change  : Added support for new HP NC32Xi products.\r
850        Impact  : None.\r
851 \r
852 \r
853 v8.2.3 (May 13, 2005)\r
854 =======================\r
855 \r
856    Fix:\r
857    ----\r
858     1. Problem : CQ12133 Ethtool reports the wrong link speed.\r
859        Cause   : When the driver forces the link, the link will\r
860                  many times be acquired before finishing the\r
861                  SetupCopperPhy() call.  This, in turn, will\r
862                  cause MM_IndicateStatus() _not_ to be called.\r
863                  MM_IndicateStatus() updates the line_speed\r
864                  variable which is used to report the link\r
865                  speed when using the ethtool method.  In effect,\r
866                  the ethtool query reports a stale link speed.\r
867         Change : Code the driver to obtain the link speed from\r
868                  the pDevice->LinkSpeed field instead.  Removed\r
869                  the line_speed member from the device structure.\r
870         Impact : None.\r
871 \r
872     2. Problem : CQ12831 Bootcode version string missing device\r
873                  name for 5714 devices.\r
874         Cause  : The GetBootCodeVersion function tests the value\r
875                  of an instruction it read from NVRAM to determine\r
876                  whether it should use the new version extraction\r
877                  routines or the old extraction routines.  The test\r
878                  was overly restrictive, which would force the\r
879                  driver to use the old method.\r
880         Change : Change the test to only inspect the opcode portion\r
881                  of the instruction.  The rest of the bits are\r
882                  offset bits which can and do change between\r
883                  firmware versions.\r
884         Impact : None.\r
885 \r
886 \r
887 v8.2.2 (May 10, 2005)\r
888 =======================\r
889 \r
890    Fix:\r
891    ----\r
892     1.Problem : CQ12784 hogging interrupts message seen with 5714.\r
893        Cause  : The device was not initializing properly due to the\r
894                 the driver putting the device into slow clock mode.\r
895        Change : The driver keeps the device in full power mode.\r
896        Impact : This impacts the 5714/15 and 5780.\r
897 \r
898     2.Problem : CQ12785 NMI seen using 5714.\r
899     Cause : Same as above.\r
900 \r
901     3.Problem : CQ12786 5715 cannot get link.\r
902         Cause : Sambe as above.\r
903 \r
904     4.Problem : CQ12824 5714 removing driver from bonding team and\r
905                 basp team results in kernel panic.\r
906         Cause : Same as above.\r
907 \r
908  Enhancement\r
909  -----------\r
910     Added msi support for 5780.\r
911 \r
912 \r
913 v8.2.1 (April 29, 2005)\r
914 =======================\r
915 \r
916    Fix:\r
917    ----\r
918     1.Problem : CQ12781 5714C stops passing traffic after ifup/down.\r
919        Cause  : The driver puts the device into slow clock mode when\r
920                 shutting down the interface to conserve power and this\r
921                 occasionally creates an inability for the device to\r
922                 transmit when brought back up. The real problem may\r
923                 lay in the driver initialization code of the device\r
924                 clock speed on power up. This driver release is to allow\r
925                 internal testing to contine, until debug is completed.\r
926       Change  : The driver does not slow the clock when shutting down\r
927                 the interface.\r
928       Impact  : 5714/5715 should function as expected.\r
929 \r
930     2.Problem : CQ12469 Add 5780 Device IDs.\r
931        Cause  : The 5780 copper and fiber have PCI Device IDs of 0x166a\r
932                 and 0x166b respectively.\r
933        Change : Added the ids.\r
934        Impact : 5780.\r
935 \r
936 \r
937 v8.2.0 (April 22, 2005)\r
938 ========================\r
939 \r
940   Enhancements\r
941   ------------\r
942    1. Change : Added support for 5714\r
943 \r
944    2. Change : CQ12081 Added MSI support for 5714.\r
945       Impact : Only 5714.\r
946 \r
947    3. Change : Added support in Makefile for PPC and SuSE.\r
948       Impact : Only in PPC machines.\r
949 \r
950   Fix:\r
951   ----\r
952      Problem : CQ12677 "$" character appended to device name.\r
953        Cause : Typo in script file.\r
954       Change : Deleted extra character.\r
955       Impact : Only visual.\r
956 \r
957 \r
958 v8.1.55 (April 8, 2005)\r
959 ========================\r
960 \r
961   Enhancement: Using the updated GPHY BIAS for 5752.\r
962   ------------\r
963       Change : The code was changed to include a setting to the GPHY\r
964                to ensure a high quality network link over long cable\r
965                lengths. No problems have been reported with the\r
966                previous GPHY BIAS setting.\r
967 \r
968       Impact : 5752 has no noticable impact.\r
969 \r
970 \r
971 v8.1.54 (April 8, 2005)\r
972 =======================\r
973 \r
974    Fix:\r
975    ----\r
976      Problem : CQ12639 Latest driver causes panic on DELL 6650.\r
977        Cause : A bug introduced in driver v8.1.50 created a timing\r
978                window on the 5700 where a releasing spinlock\r
979                was out of sync with the acquiring spinlock.\r
980                This problem was specific to the 5700 and only\r
981                seen on the 6650 integrated 5700 device.\r
982       Change : The driver code was changed to ensure the 5700\r
983                spinlock is not released before is is acquired.\r
984       Impact : 5700 only.\r
985 \r
986 \r
987 \r
988 v8.1.53 (April 6, 2005)\r
989 =======================\r
990 \r
991    Fix:\r
992    ----\r
993    1.Problem : CQ12628 Driver does not compile on Beta SuSE 9.3\r
994       Cause  : A coding bug in the driver code accessed only\r
995                by kernel versions greater than 2.6.10. This bug\r
996                was introduced in driver v8.1.10.\r
997       Change : This bug was a typo that was corrected.\r
998       Impact : None.\r
999 \r
1000 \r
1001    2.Problem : CQ12450 bcm5700 does not compile on PPC64 RHEL3 U3.\r
1002       Cause  : Additional Makefile switches were needed to compile on\r
1003                the RHEL3 U3 PPC64.\r
1004       Change : The Makefile was updated to include a makefile\r
1005                switch and an LD line to allow PPC64 compilation on\r
1006                RHEL3 U3 PPC64.\r
1007       Impact : May no longer  build on older PPC64 kernels.\r
1008 \r
1009 \r
1010 v8.1.52 (April 1, 2005)\r
1011 ============================\r
1012 \r
1013    Fix:\r
1014    ----\r
1015      Problem1: CQ12549 Error 63 getting the ASF configuration table.\r
1016       Cause  : The NVRAM was not being read properly.\r
1017       Change : The NVRAM access code was changed to properly access\r
1018                NVRAM.\r
1019       Impact : None.\r
1020 \r
1021      Problem2: CQ12467 System hanging after unloading driver.\r
1022       Cause  : The driver accessed reserved registers.\r
1023       Change : Removed the code that accessed the reserved registers.\r
1024       Impact : None.\r
1025 \r
1026 \r
1027 v8.1.51 (March 29, 2005)\r
1028 ============================\r
1029 \r
1030    Fix:\r
1031    ----\r
1032      Problem : CQ12549 Error writing to ASF config table in NVRAM.\r
1033       Cause  : The 5752 will not allow an NVRAM to write above 64k.\r
1034       Change : The reported size of the NVRAM was changed to 64k.\r
1035       Impact : None.\r
1036 \r
1037    Removed support for that 5714 ASIC revision.\r
1038 \r
1039 v8.1.50 (March 16, 2005)\r
1040 ============================\r
1041 \r
1042    Fix:\r
1043    ----\r
1044       Problem : CQ11136 GPIOs need to be configured to outputs.\r
1045        Cause  : 5752 GPIOs default to inputs.\r
1046        Change : Added code to enable GPIO output.\r
1047        Impact : None.\r
1048 \r
1049 \r
1050    Added support for ASIC revisions 5752, 5714.\r
1051 \r
1052 \r
1053 v8.1.11 (March 11, 2005)\r
1054 ============================\r
1055 \r
1056    Fix:\r
1057    ----\r
1058       Problem : CQ12400 Removing driver causes a kernel panic\r
1059        Cause  : The statistics timer was not being disabled at\r
1060                 shutdown.\r
1061        Change : Disable statistics timer at shutdown.\r
1062        Impact : None.\r
1063 \r
1064 \r
1065 v8.1.10 (March 10, 2005)\r
1066 ============================\r
1067 \r
1068    Fix:\r
1069    ----\r
1070       Problem : CQ12156 ATI transmit timeout-"NETDEV WATCHDOG".\r
1071        Cause  : The ATI chipset did not call the driver ISR\r
1072                 after the ISR did not service an INTx interrupt.\r
1073        Change : The driver will check a register to determine if\r
1074                 the INTx should be claimed if the status block has\r
1075                 not been updated on ISR entry.\r
1076        Impact : This fix may improve system performance on some\r
1077                 systems as it reduces the amount of spurious or\r
1078                 unclaimed interrupts.\r
1079 \r
1080   Enhancemnts\r
1081   -----------\r
1082 \r
1083    1. Problem : Users want command line parameters.\r
1084 \r
1085       Change  : All the parameters are accessible on the command line.\r
1086         The code uses MODULE_PARAM for new kernels.\r
1087 \r
1088    2. Problem : MSI support needs to test for older non-msi supported\r
1089         machines running kernels with MSI support enabled.\r
1090       Change  : Added MSI validity test.\r
1091 \r
1092    3. Problem : Jumbo frame support on some systems caused device\r
1093         counters to increment CRC errors.\r
1094       Change  : Added additional setting to PHY.\r
1095       Impact  : None.\r
1096 \r
1097    4. Problem : pci_find_device() will be deprecated.\r
1098       Change  : Added pci_dev_present() and pci_get_device() where\r
1099         pci_find_device() is.\r
1100 \r
1101    5. Change  : Added mmiowb() in tx/rx paths.\r
1102 \r
1103    6. Change  : Changed makefile for netdump service build to not\r
1104         rely on #define RED_HAT_LINUX_KERNEL.\r
1105 \r
1106    7. Change  : Added code to better scale the timer intervals\r
1107         dependent on device.\r
1108 \r
1109 \r
1110 v8.1.9 (March 1, 2005)\r
1111 ============================\r
1112 \r
1113    Support for ASIC revisions 5752, 5714 and 5715 was taken out of\r
1114    the driver.\r
1115 \r
1116 \r
1117 v8.1.8 (February 28, 2005)\r
1118 ============================\r
1119    Fixes:\r
1120    ------\r
1121 \r
1122    1. Problem : CQ11788 5721 not receiving probes in Intel team.\r
1123        Cause  : Statistics do not get updated fast enough.\r
1124        Change : Connect the stats_coalesce_ticks module parameter\r
1125                 to the actual statistics update frequency.\r
1126        Impact : System behaves as expected.\r
1127 \r
1128 \r
1129    2. Problem : CQ12273 "MODULE_PARM is deprecated" messages are\r
1130                 displayed when compiling on Red Hat 4.0.\r
1131 \r
1132         Cause : Drivers using the deprecated macro MODULE_PARM will\r
1133                 cause compile warnings to be displayed in systems\r
1134                 using RedHat 4. The bcm5700 driver was still using\r
1135                 the MODULE_PARM as the parameter interface.\r
1136 \r
1137        Change : The driver now uses ethtool for passing most parameters.\r
1138 \r
1139        Impact : The driver operating in environments with kernel versions\r
1140                 of 2.6.5 and above requires the use of ethtool to set\r
1141                 parameters. When the driver is used with a kernel version\r
1142                 older than 2.6.5 it will accept all command line parameters.\r
1143 \r
1144                 The only parameters accepted from the command line in\r
1145                 kernel versions 2.6.5 and later are:\r
1146 \r
1147                                             nic_tx_bd\r
1148                                             delay_link\r
1149                                             disable_d3hot\r
1150                                             disable_msi\r
1151 \r
1152    3. Problem : CQ12278 Make driver errors on Suse 9.\r
1153 \r
1154         Cause : The MODULE_PARAM macro is defined differently in kernel\r
1155                 versions below 2.6.10 than they are in the 2.6.10\r
1156                 kernel verion. The driver did not account for the\r
1157                 different macro definitions and the driver code path\r
1158                 was flawed for 2.4.x kernels when declaring\r
1159                 MODULE_PARM.\r
1160 \r
1161        Change : The driver parameters are declared in three ways and all\r
1162                 the original parameters are still used when the driver\r
1163                 is operating in systems with kernel versions below 2.6.5.\r
1164 \r
1165        Impact : The driver operating in systems with kernel versions\r
1166                 of 2.6.5 and above requires the use of ethtool to set\r
1167                 parameters. The driver accepts all parameters from\r
1168                 the command line when running in systems with kernel\r
1169                 versions older than 2.6.5.\r
1170 \r
1171                 The only parameters accepted from the command line in\r
1172                 kernel versions 2.6.5 and later are:\r
1173 \r
1174                                             nic_tx_bd\r
1175                                             delay_link\r
1176                                             disable_d3hot\r
1177                                             disable_msi\r
1178 \r
1179 \r
1180 \r
1181 v8.1.7 (February 25, 2005)\r
1182 ============================\r
1183    Fixes:\r
1184    ------\r
1185 \r
1186    1. Problem : CQ12168 Running ethtool -d <interface> causes\r
1187                 system to hang or panic.\r
1188        Cause  : Driver stores two copies of memory allocated for\r
1189                 register data.  One copy gets incremented as it\r
1190                 gets filled.  The other does not.  The driver was\r
1191                 using the incremented pointer to free the memory\r
1192                 instead of the non-incremented pointer.\r
1193        Change : Pass the original pointer value to kfree().\r
1194        Impact : System behaves as expected.\r
1195 \r
1196    2. Problem : External loopback test not working with 5752 devices.\r
1197        Cause  : 5752 ISR was dereferencing an invalid packet\r
1198                 descriptor pointer.\r
1199        Change : Turn off interrupts when loopback tests are running.\r
1200        Impact : System behaves as expected.\r
1201 \r
1202    3. Problem : CQ11916 HTLE has intermittent problem passing traffic.\r
1203        Cause  : The HTLE seems to have a problem with low clock speed.\r
1204        Change : The driver will not slow the clock down when unloading\r
1205                 for HTLE.\r
1206        Impact : None.\r
1207 \r
1208    4. Problem : CQ12080 TSO should be disabled by the driver when\r
1209                 jumbo frames are used with the 5714.\r
1210        Cause  : The driver did not disable TSO when running\r
1211                 jumbo frames on the 5714\r
1212        Change : Added code to disable TSO when 5714 is running in\r
1213                 jumbo frame mode.\r
1214        Impact : None.\r
1215 \r
1216    5. Problem : CQ12209 5714 Fiber would not pass traffic with IPMI\r
1217                 enabled.\r
1218        Cause  : The fiber would not get initialized due to the driver\r
1219                 using the wrong phy type.\r
1220        Change : The driver now checks for the correct phy id when\r
1221                 IPMI is loaded.\r
1222        Impact : None.\r
1223 \r
1224    6. Problem : CQ12166 Running ethtool -t fails register and memory\r
1225                 tests on 5752.\r
1226        Cause  : Test was performing tests for this device.\r
1227        Change : Change code to use 5705 register and memory tests.\r
1228        Impact : None.\r
1229 \r
1230 \r
1231 \r
1232 v8.1.6 (February 23, 2005)\r
1233 ============================\r
1234    Fixes:\r
1235    ------\r
1236 \r
1237    1. Problem : CQ12128 5701 locks up system when driver loads.\r
1238        Cause  : The driver used the wrong NVRAM access type.\r
1239        Change : The driver code was changed to use the correct\r
1240                 NVRAM type to access the NVRAM.\r
1241        Impact : 5701 will not lock up the system.\r
1242 \r
1243    2. Problem : CQ12212 Unwanted information is displayed.\r
1244        Cause  : The driver displayed debug information.\r
1245        Change : The debug information was removed from the driver.\r
1246        Imapct : None.\r
1247 \r
1248 \r
1249   Enhancements\r
1250   ------------\r
1251 \r
1252    1. Problem : CQ11650 Driver does not show ASF / IPMI version.\r
1253       Change  : Added code to extract ASF / IPMI version info from\r
1254                 NVRAM.\r
1255       Impact  : None.\r
1256 \r
1257 \r
1258 \r
1259 v8.1.5 (February 18, 2005)\r
1260 ============================\r
1261 \r
1262    Fixes:\r
1263    -----\r
1264     1. Problem : CQ12097 Unable to link with  5714S.\r
1265         Cause  : The v8.1.4 driver did not fully support 5714S.\r
1266        Change  : Added support for the 5714S.\r
1267        Impact  : 5714S is functional w/v8.1.5.\r
1268 \r
1269 \r
1270     2. Problem : CQ11807 Driver will not pass traffic with\r
1271                  forced speed.\r
1272         Cause  : The driver default setting of gigabit mode\r
1273                  was interferring with the forced settings.\r
1274        Change  : The gigabit mode setting is now cleared until used.\r
1275        Impact  : None.\r
1276 \r
1277 \r
1278    3. Problem  : CQ12104 VPD Read error on 5714 LOM.\r
1279         Cause  : The race condition described CQ11951.\r
1280        Change  : Change is described in v8.1.3. and actually\r
1281                  fixed in v8.1.3.\r
1282        Impact  : None.\r
1283 \r
1284 \r
1285 \r
1286 v8.1.4 (February 16, 2005)\r
1287 ============================\r
1288 \r
1289    Fixes:\r
1290    -----\r
1291     1. Problem : CQ11918 Customer reported problem with kernel dump.\r
1292         Cause  : When the driver was using the NAPI POLL function, it\r
1293                  did not have a way for the kernel dump to function.\r
1294         Change : The driver NAPI POLL function code was change so that\r
1295                  it now will call the driver ISR to allow the kernel\r
1296                  dump function to run when the kernel dump feature\r
1297                  is enabled in the kernel.\r
1298         Impact : None.\r
1299 \r
1300     2. Problem : CQ12114 The MSI state machine on the device is not\r
1301                  disabled on the in the event that the system\r
1302                  call to enable msi fails.\r
1303         Change : The driver will disable the MSI state machine\r
1304                  when the call to pci_enable_msi() fails.\r
1305         Impact : None.\r
1306 \r
1307 \r
1308 \r
1309 \r
1310 v8.1.3 (February 15, 2005)\r
1311 ============================\r
1312 \r
1313    Fixes:\r
1314    -----\r
1315 \r
1316     1. Problem : (CQ11951) "Failed to access NVRAM" messages are\r
1317                  showing up in the message file.\r
1318        Cause   : Because EEPROM accesses are much slower than flash\r
1319                  accesses, the bootcode can take that much longer to\r
1320                  initialize the hardware.  The problem here was that\r
1321                  Linux was downloading the LSO firmware to the NIC\r
1322                  before the bootcode had a chance to complete it's\r
1323                  task.  As a result, the firmware would crash, while\r
1324                  still holding the NVRAM lock.\r
1325        Change  : Acquire the NVRAM lock before halting the CPU and\r
1326                  downloading the LSO firmware.\r
1327        Impact  : None.\r
1328 \r
1329     2. Problem : (CQ12096) MODULE_PARM deprecated warnings.\r
1330        Cause   : Linux is moving to a new module parameter declaration\r
1331                  format.  The kernel has deprecated the older\r
1332                  parameter declaration style.\r
1333        Change  : For those module parameters that do not have a\r
1334                  configuration tool equivalent, the parameter\r
1335                  declarations have been converted to the new style.\r
1336                  All other module parameters have been dropped in\r
1337                  favor of their configuration tool equivalents.\r
1338        Impact  : None.\r
1339 \r
1340 \r
1341    Enhancements:\r
1342    -------------\r
1343 \r
1344    1. Problem : (CQ10408) Driver does not issue a "Link is DOWN"\r
1345                 message when bringing the interface down.\r
1346       Change  : Issue a "Link down" message upon device closure.\r
1347       Impact  : None.\r
1348 \r
1349    2. Problem : (CQ10828) The driver needs a way to isolate\r
1350                 loopback testing.\r
1351       Change  : Added a NICE command to invoke loopback tests.\r
1352       Impact  : None.\r
1353 \r
1354    3. Problem : CQ12159 Older silicon has memory location 0xd38 uninitialized\r
1355                 and bits 17,18 may be set which causes the capacitive\r
1356                 coupling and pre-emphasis settings to be enabled by mistake.\r
1357       Change  : Validate memory location 0xd38 before using it.\r
1358                 The patch is similiar to a patch done in tg3.\r
1359       Impact  : none.\r
1360 \r
1361    4. Problem : Added changed asic revs for 5714 family.\r
1362 \r
1363 \r
1364 \r
1365 v8.1.2 (February 1, 2005)\r
1366 ============================\r
1367    Fixes:\r
1368    -----\r
1369 \r
1370    1. Problem : (CQ12046)Does not compile on some supported distrobutions.\r
1371        Cause  : The disable_msi switch was declared but then used within\r
1372                 #defines\r
1373        Change : The disable_msi switch is declared within the same defines\r
1374                 as where it is used.\r
1375 \r
1376    Impact: None.\r
1377 \r
1378    2. Problem: (CQ12045)Unable to pass traffic on the 5714.\r
1379       Cause  : The disable_msi switch seems to have caused compile problems.\r
1380       Change : The above change resolves this problem too.\r
1381 \r
1382    Impact: None.\r
1383 \r
1384    Enhancment: Added support for the 5751_C0.\r
1385 \r
1386 \r
1387 v8.1.1 (February 1, 2005)\r
1388 ============================\r
1389    Enhancements:\r
1390    ------------\r
1391    Change: MAC address is read from NVRAM on 5714s for now.\r
1392 \r
1393    Impact: None.\r
1394 \r
1395 \r
1396 v8.1.0.5 (January 28, 2005)\r
1397 ============================\r
1398    Enhancement:\r
1399    ------------\r
1400    Change: Jumbo frames are supported on the 5714.\r
1401            msi is supported on the 5714\r
1402            NVRAM support code was enhanced.\r
1403 \r
1404    Impact: None.\r
1405 \r
1406    Note: This is a preliminary driver for internal testing only.\r
1407 \r
1408 \r
1409 8.1.0.4.msi (January 1, 2005)\r
1410 ============================\r
1411    Enhancement:\r
1412    ------------\r
1413    Change: Additional tweeking to support 5752 & 5714/5715 including:\r
1414            -msi is enabled for 5752 only.\r
1415            -detection of 5752 & 5714 is fixed.\r
1416 \r
1417    Impact: None.\r
1418 \r
1419    Note: This is still a preliminary driver release for internal\r
1420          testing only.\r
1421 \r
1422 \r
1423 \r
1424 v8.1.0.2 (December 16, 2004)\r
1425 ============================\r
1426    Enhancement:\r
1427    ------------\r
1428    Change: PCI IDs were added to support the 5752\r
1429 \r
1430    Impact: None.\r
1431 \r
1432    Note: This is a very preliminary and internal release for internal\r
1433          testing only.\r
1434 \r
1435 \r
1436 \r
1437 v8.1.0.1 (December 14, 2004)\r
1438 ============================\r
1439    Enhancement:\r
1440    ------------\r
1441    Change: PCI IDs were added to support the 5714 and 1515.\r
1442 \r
1443    Impact: None.\r
1444 \r
1445    Note: This is an alpha release for support of the 5714 & 5715\r
1446 \r
1447 \r
1448 v7.4.10 (December 3, 2004)\r
1449 =========================\r
1450 \r
1451    1. Problem : (CQ11042)ASF IP Monitoring cannot update config table.\r
1452 \r
1453       Cause   : The NVRAM on 5750 LOM systems could not be written as\r
1454                 the NVRAM write protection was not being cleared by\r
1455                 the driver.\r
1456 \r
1457       Change  : The driver now  correctly uses the write protection\r
1458                 capabilities of the 5750 LOM NVRAM.\r
1459 \r
1460       Impact  : The driver can write to the NVRAM for 5750 LOMs.\r
1461 \r
1462 \r
1463 \r
1464 v7.4.9 (December 1, 2004)\r
1465 =========================\r
1466 \r
1467    1. Problem : EEPROM_ExecuteCommand warnings showing up on the console.\r
1468 \r
1469       Cause   : Code incorrectly uses old EEPROM routines.\r
1470 \r
1471       Change  : Use new nvram routines when available.\r
1472 \r
1473       Impact  : Flash works as expected.\r
1474 \r
1475    2. Problem : (CQ11472)Add PLL workaround.\r
1476 \r
1477       Cause   : Occasionally a problem occurs when the device is put\r
1478                 into D3 cold. The problem can result in a chip lockup.\r
1479                 This only occurs on 5750 AX/BX chips.\r
1480 \r
1481       Change  : Added the workaroud to code, which is to keep the\r
1482                 power clks ticking when transitioning to d3 cold/hot.\r
1483 \r
1484       Impact  : D3 transition is robust.\r
1485 \r
1486 \r
1487 v7.4.8 (November 24, 2004)\r
1488 =========================\r
1489 \r
1490    1. Problem : Vpd cannot be read on 5704 and other legacy devices.\r
1491 \r
1492       Cause   : Code incorrectly identifies flash type.\r
1493 \r
1494       Change  : Ignore bits 24 and 25 on Config1 for legacy devices.\r
1495 \r
1496       Impact  : Flash works as expected.\r
1497 \r
1498 \r
1499    2. Problem : (CQ11402) Driver crashes while obtaining chip size on 5701.\r
1500 \r
1501       Cause   : Code uses incorrect read routine.  Chipsize was not\r
1502                 initialized which caused a divide by zero.\r
1503 \r
1504       Change  : Change code to use correct read routine.  Made sure\r
1505                 to set the chipsize to a valid chipsize (nonzero)\r
1506                 before calling the read routine.\r
1507 \r
1508       Impact  : EEPROM works as expected.\r
1509 \r
1510 \r
1511    3. Problem : Firmware version not correct for 5721 devices.\r
1512 \r
1513       Cause   : Offset calculation error for Atmel parts.\r
1514 \r
1515       Change  : Fix calculation error.\r
1516 \r
1517       Impact  : Firmware version correct.\r
1518 \r
1519 \r
1520 v7.4.7 (November 18, 2004)\r
1521 =========================\r
1522 \r
1523    1. Problem : Firmware version not displaying on BCM5753 devices.\r
1524 \r
1525       Cause   : Reads being performed before the NVRAM is locked.\r
1526 \r
1527       Change  : Lock the NVRAM before performing any reads.\r
1528 \r
1529       Impact  : None.\r
1530 \r
1531 \r
1532    2. Problem : (CQ11142) OOPS occuring on PPC750\r
1533 \r
1534       Cause   : Statistic and status memory pointers were initialized\r
1535                 even after driver shutdown and memory deallocation\r
1536                 causing OOPS to occur when statistics were probed.\r
1537 \r
1538       Change  : Reset pointers to zero after shutdown.\r
1539 \r
1540       Impact  : None.\r
1541 \r
1542 \r
1543    3. Problem : (CQ11115) Driver allows for invalid user adminstered\r
1544                 MAC address.\r
1545 \r
1546       Cause   : Driver did not check for valid address.\r
1547 \r
1548       Change  : Driver checks for valid MAC address.\r
1549 \r
1550       Impact  : None.\r
1551 \r
1552 \r
1553    4. Problem : (CQ10598) Driver occasionally cannot get link on certain\r
1554                 machines.\r
1555 \r
1556       Cause   : The certain machines had interrupt sharing between many\r
1557                 devices and occasionally the driver would lose the\r
1558                 link change interrupt.\r
1559 \r
1560       Change  : The ISR was modified to ensure the interrupt being cleared\r
1561         has been serviced properly.\r
1562 \r
1563       Impact  : None.\r
1564 \r
1565 \r
1566    5. Problem : (CQ11117) Need SERDES pre-emphasis support.\r
1567 \r
1568         Cause : Certain 5704 designs have requested that certain bits be\r
1569                 set in SERDES configuration registers.\r
1570 \r
1571        Change : Changes made use presupplied value for SERDES configuration.\r
1572 \r
1573        Impact : None.\r
1574 \r
1575 \r
1576   Enhancement :\r
1577   -------------\r
1578 \r
1579    1. Change  : GPIO2 will not have an output for the 5753 family.\r
1580 \r
1581    2. Change  : Added code to support more flash (and EEPROM) types.\r
1582                 The flash write code has been separated into buffered\r
1583                 and unbuffered versions.  The flash and EEPROM read\r
1584                 code has been modified to support sub-32bit word reads.\r
1585                 New nvram sizing functions have been introduced.\r
1586 \r
1587 \r
1588 v7.4.6 (October 25, 2004)\r
1589 =========================\r
1590 \r
1591    1. Problem : (CQ11088) Remove the ability to set speed & duplex on the 150T\r
1592 \r
1593        Cause  : The switch on the 150T nic is set to autoneg. The line speed\r
1594                 on the 5705 should only be set to auto for proper link to\r
1595                 be established with the internal switch.\r
1596 \r
1597       Change  : Added code in b57um.c line 4316 to check for this nic and\r
1598                 always set it to auto.\r
1599 \r
1600       Impact  : None.\r
1601 \r
1602 \r
1603    2. Problem : (CQ11102) NMI occurs during load/unload w/ASF enabled.\r
1604 \r
1605        Cause  : The 5753 drove GPIO2 as an output, which did not allow\r
1606                 ASF to use it to sense main power properly.\r
1607 \r
1608       Change  : The driver does not driver GPIO2.\r
1609 \r
1610       Impact  : None.\r
1611 \r
1612 \r
1613 v7.4.5 (October 11, 2004)\r
1614 ========================\r
1615    Enhancement:\r
1616    ------------\r
1617    Change: PCI IDs were added to support the 5753, 5753M, 5753F and 5789.\r
1618 \r
1619    Impact: None.\r
1620 \r
1621 \r
1622 v7.4.4 (October 4, 2004)\r
1623 =======================\r
1624 \r
1625    1. Problem : (CQ10955) DELL 6650 kernel panic during negotiation\r
1626         using 5700 lom.\r
1627 \r
1628        Cause  : Spinlock deadlock during reset & link up.\r
1629 \r
1630       Change  : Removed the spinlock contention.\r
1631 \r
1632       Impact  : None.\r
1633 \r
1634 \r
1635    2. Problem : (CQ10436)Man page needs update.\r
1636 \r
1637        Cause  : bcm5700.ko was not noted in man page.\r
1638 \r
1639       Change  : Modified man page.\r
1640 \r
1641       Impact  : None.\r
1642 \r
1643 \r
1644    3. Problem : (CQ10396) Cannot ping when Dell PowerEdge 6650(#459)\r
1645                 is configured for 10half forced.\r
1646 \r
1647       Cause   : 5411 PHY does not require a PHY reset before being set\r
1648                 up to 10 half, or a PHY reset was being called without\r
1649                 sufficient delay before the PHY was being set up.\r
1650 \r
1651                 The code in LM_ResetAdapter()calls\r
1652                 LM_ResetPhy()(on line 3479 in tigon3.c) immediately before\r
1653                 calling LM_SetupPhy().\r
1654                 If a 2 second delay is placed between these two functions,\r
1655                 then 10half forced will function, or when LM_ResetPhy()\r
1656                 is removed, 10half forced will again function.\r
1657 \r
1658                 It is not clear why This delay is needed or why\r
1659                 LM_ResetPhy()is needed here as the MII control reg shows\r
1660                 the same values for a successful or failed case.\r
1661                 LM_ResetPhy() is not called for the 5401 PHY for the\r
1662                 same reason this problem occurs.\r
1663                 A request for assistance was emailed to HWEng  with no\r
1664                 response.\r
1665 \r
1666       Change  : Removed unnecessary PHY reset for 5411 PHY.\r
1667 \r
1668       Impact  : Forcing 5411 PHY to 10 half will function as expected.\r
1669 \r
1670 \r
1671 \r
1672 v7.4.3 (August 26, 2004)\r
1673 ======================\r
1674    Fixes:\r
1675    ------\r
1676    1. Problem : (CQ10437) Driver is installed in a directory other\r
1677                 than the directory noted in the README.TXT file.\r
1678 \r
1679        Cause  : Note omission.\r
1680 \r
1681        Change : Added a line in the README.TXT file diclosing an\r
1682                 alternative install directory\r
1683                 (/lib/modules/<kernel_version>/kernel/drivers/net/bcm/)\r
1684                 for SLES9 installations.\r
1685 \r
1686        Impact : Problem resolved.\r
1687 \r
1688    2. Problem : (CQ10396) Cannot ping when Dell PowerEdge 6650(#459)\r
1689                 is configured for 10half forced.\r
1690 \r
1691       Cause   : 5411 PHY does not require a PHY reset before being\r
1692                 forced to 10 half.\r
1693 \r
1694       Change  : Removed unnecessary PHY reset for 5411 PHY.\r
1695 \r
1696       Impact  : Forcing 5411 PHY to 10 half will function as expected.\r
1697 \r
1698 \r
1699    3. Problem : (CQ10540)Max value for "stats_coalesce_ticks" is\r
1700                 rejected in 2.6 kernels.\r
1701 \r
1702        Cause  : 2.6 kernels are using a different parameter interface\r
1703                 that limits the value range.\r
1704 \r
1705        Change : README.TXT was changed to inform the user that the\r
1706                 value range for this parameter may very by kernel version.\r
1707 \r
1708       Impact  : None.\r
1709 \r
1710 \r
1711    4. Problem : (CQ9804)5751 freezes in certain platforms under heavy\r
1712                 stress.\r
1713 \r
1714        Cause  : A logic bug in clearing interrupts caused this to occur.\r
1715                 See previous entry for CQ9804.\r
1716 \r
1717       Change  : Setting Bit 29 in 0x7c00 (TLP control reg) prevents\r
1718         the lock-up from occurring and was set as a safeguard.\r
1719 \r
1720        Impact : None.\r
1721 \r
1722 \r
1723    Enhancement: (CQ10355) Ethtool -i shows no value for "firmware-version"\r
1724    ------------\r
1725       Change  : Added bootcode version value to Ethtool driver info structure.\r
1726 \r
1727       Impact  : None.\r
1728 \r
1729 \r
1730 \r
1731 \r
1732 v7.4.2 (July 29, 2004)\r
1733 ======================\r
1734    Fixes:\r
1735    ------\r
1736    1. Problem:(CQ10695) System screen froze after third port.\r
1737 \r
1738        Cause: Third port was pci and driver was treating it\r
1739           as a pciexpress. Bug introduced v7.4.1.\r
1740 \r
1741        Change:Driver checks for PCIE or PCI and then executes\r
1742           PCIE code only on PCIE adapter.\r
1743 \r
1744        Impact:Problem resolved.\r
1745 \r
1746    2. Problem:(CQ10627)Remove 5751-A0 support.\r
1747 \r
1748        Cause: 5751-A0 is not shipping.\r
1749 \r
1750        Change:Driver checks for 5751 A0 then fails if found.\r
1751 \r
1752        Impact:Driver will not load on 5751-A0\r
1753 \r
1754 \r
1755 v7.4.1 (July 27, 2004)\r
1756 ======================\r
1757    Fixes:\r
1758    ------\r
1759    1. Problem:(CQ10602) FSC 1899 system may freeze/reboot when bringing the\r
1760         initerface up/down with ASF enabled.\r
1761 \r
1762       Cause:  Handshake between ASF & driver disrupted by 7.4.0 extra\r
1763           delay, allowing the driver to enable D3 state before ASF\r
1764           was ready.\r
1765 \r
1766       Change: Delay was moved to immediately before enabling D3.\r
1767 \r
1768       Impact: Driver will not freeze or reboot system.\r
1769 \r
1770    2. Problem:(CQ10481)Driver displays gigabit speed on adapter\r
1771           that only supports 10/100.\r
1772 \r
1773       Cause:  The Driver displayed support for 10/100/1000 link\r
1774               do to an error in the code.\r
1775 \r
1776       Change: Code changed to display correct link support\r
1777           values.\r
1778 \r
1779       Impact: Driver displays correct supported link speeds.\r
1780 \r
1781 \r
1782 v7.4.0 (July 12, 2004)\r
1783 ======================\r
1784    Enhancement:\r
1785    ------------\r
1786    Change: Added extra delay after GRC reset to make the\r
1787            firmware D3hot workaround in 3.29i effective.\r
1788 \r
1789    Impact: None.\r
1790 \r
1791    Fixes:\r
1792    ------\r
1793    1. Problem: (CQ10549) "BCM_DRV: command not found" when compiling\r
1794                the source RPM.\r
1795 \r
1796       Cause: $(BCM_DRV) not substituted properly.\r
1797 \r
1798       Change: Changed all $(BCM_DRV) to $BCM_DRV in bcm5700.spec.\r
1799 \r
1800       Impact: None.\r
1801 \r
1802    2. Problem: (CQ10468) Driver not working properly in bridging environment\r
1803                after changing mtu.\r
1804 \r
1805       Cause: Promiscuous mode not preserved after changing mtu.\r
1806 \r
1807       Change: Fixed by setting the rx mode after mtu change.\r
1808 \r
1809       Impact: None.\r
1810 \r
1811    3. Problem: (CQ10557) Kernel panics with 17 or more devices installed.\r
1812 \r
1813       Cause: Driver parameters checking logic assumes maximum of 16\r
1814              devices.\r
1815 \r
1816       Change: Added logic to skip parameter processing if the device\r
1817               index is higher than or equal to 16.\r
1818 \r
1819       Impact: This will prevent the kernel panic and the driver will load with\r
1820               any number of devices in the system. Driver parameters will\r
1821               only work for the first 16 devices.\r
1822 \r
1823    4. Problem: Changing mtu may cause the kernel to print a warning message:\r
1824                sleeping function called from invalid context at mm/slab.c.\r
1825 \r
1826       Cause: Calling kmalloc with GFP_KERNEL from invalid context.\r
1827 \r
1828       Change: Changed to GFP_ATOMIC.\r
1829 \r
1830       Impact: None.\r
1831 \r
1832 v7.3.5 (June 23, 2004)\r
1833 ======================\r
1834    Fixes:\r
1835    ------\r
1836    1. Problem: (CQ10407) Linux 2.6 kernel fails to get IP address using DHCP\r
1837                on 5751 A1.\r
1838 \r
1839       Cause: When DHCP fails, ifup script will shutdown the NIC and it\r
1840              will go to D3hot state. On 2.6 kernels, the config write\r
1841              to put device in D3hot will be written using mmconfig with\r
1842              a mmconfig read of register 0 to flush the write. The\r
1843              read immediately following the write when the device is\r
1844              transitioning to L1 link state may cause problems. The symptom\r
1845              is that the device will lose the memory space bit in the\r
1846              PCI command register. When ifup brings up the NIC again\r
1847              to retry DHCP, the device will not be functional.\r
1848 \r
1849      Change: The fix for the problem is in bootcode 3.29 which will\r
1850              greatly reduce if not eliminate this problem from happening.\r
1851              To further reduce the risk, 2 changes were made to the driver.\r
1852              1. Add a parameter to disable D3hot (disable_d3hot).\r
1853              2. Check PCI command register and re-enable the memory space\r
1854                 and other bits multiple times until the bits are set\r
1855                 or up to a maximum during driver init.\r
1856 \r
1857       Impact: None.\r
1858 \r
1859 v7.3.4 (June 18, 2004)\r
1860 ======================\r
1861    Fixes:\r
1862    ------\r
1863    1. Problem: (CQ10312) System Hangs when loading and unloading the driver\r
1864                continuously with 5705.\r
1865 \r
1866       Cause: Hang was caused by infinite retry soon after writing to register\r
1867              0x74 to speed up the core clock.\r
1868 \r
1869       Change: Implemented a 2-step sequence to speed up the core clock on\r
1870               5705 and shasta devices.\r
1871 \r
1872       Impact: None.\r
1873 \r
1874    2. Problem: System crashes occasionally when loading and unloading the\r
1875                driver.\r
1876 \r
1877       Cause: System may be unable to map memory.\r
1878 \r
1879       Change: Added error check on memory mapping and gracefully fail\r
1880               the driver load.\r
1881 \r
1882       Impact: None.\r
1883 \r
1884    3. Problem: (CQ10364) System hangs when issuing reset from b57ldiag.\r
1885 \r
1886       Cause: Deadlock when trying to get a spinlock.\r
1887 \r
1888       Change: Removed the deadlock.\r
1889 \r
1890       Impact: None.\r
1891 \r
1892    4. Problem: (CQ10379) Driver allows jumbo frames on 5751/5721 devices\r
1893                using ifconfig.\r
1894 \r
1895       Cause: Missing validity check for mtu on shasta devices.\r
1896 \r
1897       Change: Added checks.\r
1898 \r
1899       Impact: None.\r
1900 \r
1901    5. Problem: (CQ#10110) ethtool -d still hangs on some systems.\r
1902 \r
1903       Cause: Chip does not respond to reserved registers, causing\r
1904              some machines to hang.\r
1905 \r
1906       Change: More changes to only dump the valid registers in the\r
1907               memory space.\r
1908 \r
1909       Impact: None.\r
1910 \r
1911    Enhancements:\r
1912    -------------\r
1913    1. Change: Added Capacitive coupling phy support.\r
1914 \r
1915 v7.3.3 (June 03, 2004)\r
1916 ======================\r
1917    Enhancements:\r
1918    -------------\r
1919    1. Change: Added support for 5789.\r
1920 \r
1921    Fixes:\r
1922    ------\r
1923    1. Problem: 5704 may run on Vaux during normal operations.\r
1924 \r
1925       Cause: Depending on the sequence of shutdown, the first port\r
1926              of a 5704 may be brought up and run on Vaux due to\r
1927              a programming error.\r
1928 \r
1929       Change: Corrected the GPIO programming sequence to take\r
1930               both ports of the 5704 into account.\r
1931 \r
1932       Impact: None.\r
1933 \r
1934    2. Problem: NC150T not identified.\r
1935 \r
1936       Change: Added OEM string.\r
1937 \r
1938       Impact: None.\r
1939 \r
1940    3. Problem: (CQ #10340) NC1020 identified as NC7722.\r
1941 \r
1942       Cause: String not updated.\r
1943 \r
1944       Change: Updated OEM string.\r
1945 \r
1946       Impact: None.\r
1947 \r
1948 v7.3.2 (June 03, 2004)\r
1949 ======================\r
1950    Enhancements:\r
1951    -------------\r
1952    1. Change: Added support for 5751F.\r
1953 \r
1954    Fixes:\r
1955    ------\r
1956    1. Problem: (CQ #10145) IBM PPC64 PBlade crashes after many hours.\r
1957 \r
1958       Cause: Speculative execution path reading an old descriptor, causing\r
1959              the wrong buffer to be freed.\r
1960 \r
1961       Change: Added read memory barriers to prevent this.\r
1962 \r
1963       Impact: None\r
1964 \r
1965    2. Problem: 5701 does not link up intermittently.\r
1966 \r
1967       Cause: Concurrent register writes when adding multicast address and\r
1968              sevicing link change interrupt. This is a chip bug.\r
1969 \r
1970       Change: Added locking to prevent this one case of concurrent register\r
1971               access.\r
1972 \r
1973       Impact: None.\r
1974 \r
1975 v7.3.1 (May 27, 2004)\r
1976 =====================\r
1977    Fixes:\r
1978    ------\r
1979    1. Change: Added workaround for 5750 A3 to disable the CPU after\r
1980               reset.\r
1981 \r
1982       Impact: None.\r
1983 \r
1984 v7.3.0 (May 21, 2004)\r
1985 =====================\r
1986    Enhancements:\r
1987    -------------\r
1988    1. Change: Added support for 5751M devices.\r
1989 \r
1990    Fixes:\r
1991    ------\r
1992    1. Problem: (CQ#10109) CIOBE hangs machine after many hours of heavy traffic.\r
1993 \r
1994       Cause: New hw errata on 5704 PCIX multi-split mode.\r
1995 \r
1996       Change: Disabled multi-split on CIOBE.\r
1997 \r
1998       Impact: None.\r
1999 \r
2000    2. Problem: (CQ#10110) ethtool -d hangs on some systems.\r
2001 \r
2002       Cause: Chip does not respond to reserved registers, causing\r
2003              some machines to hang.\r
2004 \r
2005       Change: Changed code to only dump the valis registers in the\r
2006               memory space.\r
2007 \r
2008       Impact: None.\r
2009 \r
2010    3. Problem: Driver contains unresolved genapic symbol when compiled\r
2011                on some kernels.\r
2012 \r
2013       Cause: genapic may be referenced by hard_smp_processor_id.\r
2014 \r
2015       Change: Removed hard_smp_processor_id which is purely for\r
2016               debugging and not needed.\r
2017 \r
2018       Impact: None.\r
2019 \r
2020    3. Problem: (CQ#9959) ethtool returns wrong flow control settings.\r
2021 \r
2022       Cause: Minor bug.\r
2023 \r
2024       Impact: None.\r
2025 \r
2026 v7.2.24 (April 23, 2004)\r
2027 ========================\r
2028    Enhancements:\r
2029    -------------\r
2030    1. Change: (CQ #9955) Remove support for 5751M devices.\r
2031 \r
2032       Impact: None.\r
2033 \r
2034    2. Change: Added support for cache line aligned write DMA on PPC64.\r
2035               This feature is only supported on 5700/5701.\r
2036 \r
2037       Impact: None.\r
2038 \r
2039    Fixes:\r
2040    ------\r
2041    1. Problem: ASF doesn't run properly after ifdown on 5750 chips.\r
2042 \r
2043       Cause: Driver sets device to run on slow core clock during\r
2044              shutdown. ASF cannot run on slow clock.\r
2045 \r
2046       Change: Added check to skip slowing the core clock if ASF\r
2047               is running on 5750 chips.\r
2048 \r
2049       Impact: None.\r
2050 \r
2051    2. Problem: TSO doesn't work on non-x86 architectures.\r
2052 \r
2053       Cause: U32 misdefined.\r
2054 \r
2055       Impact: None.\r
2056 \r
2057 v7.2.23 (April 19, 2004)\r
2058 ========================\r
2059    Fixes:\r
2060    ------\r
2061    1. Problem: (CQ #9782) ethtool link test fails on 5703 intermittently.\r
2062 \r
2063       Cause: Not waiting long enough for link up.\r
2064 \r
2065       Change: Added 3 more seconds if copper link is still down.\r
2066 \r
2067       Impact: None.\r
2068 \r
2069    Enhancements:\r
2070    -------------\r
2071    1. Change: Added PHY workaround for 5705/5750 to improve bit error rate.\r
2072 \r
2073       Impact: None.\r
2074 \r
2075 v7.2.22 (April 14, 2004)\r
2076 ========================\r
2077    Fixes:\r
2078    ------\r
2079    1. Problem: (CQ #9804) PCIE system freezes under heavy stress.\r
2080 \r
2081       Cause: 2 problems - 1. Logic in poll routine prematurely clears\r
2082              the next interrupt, causing tx timeout. 2. Bug in reset\r
2083              logic causing hang.\r
2084 \r
2085       Change: Made changes to the logic that reenables rx interrupt\r
2086               in the poll routine. Fixed the tx timeout reset routine.\r
2087 \r
2088       Impact: None.\r
2089 \r
2090    2. Problem: (CQ #9836) 5700 LOMs not recognising link down.\r
2091 \r
2092       Cause: 5700 in 66 MHz or higher bus speeds will go through\r
2093              chip reset instead of the normal link down interrupt\r
2094              when link goes down at gigabit link speed. There is\r
2095              a bug in the reset logic that causes the link down\r
2096              event to be unreported.\r
2097 \r
2098       Change: Simple change in the reset logic.\r
2099 \r
2100       Impact: None.\r
2101 \r
2102 \r
2103 v7.2.21 (April 08, 2004)\r
2104 =======================\r
2105    Fixes:\r
2106    ------\r
2107    1. Problem: (CQ #9645) Unable to pass traffic on 5701 with long cable.\r
2108 \r
2109       Cause: Phy register 0x18 shadow 0 not set correctly.\r
2110 \r
2111       Change: Changed the code to do read-modify-write on that register\r
2112               to preserve the contents of that register.\r
2113 \r
2114       Impact: None.\r
2115 \r
2116 v7.2.20 (Mar. 31, 2004)\r
2117 =======================\r
2118    Fixes:\r
2119    ------\r
2120    1. Problem: Poor performance in NAPI mode in certain test cases.\r
2121 \r
2122       Cause: Stale packets not processed by the driver after polling\r
2123              completes. This is caused by rx interrupt being\r
2124              enabled right after a new status block is already\r
2125              initiated and pending DMA.\r
2126 \r
2127       Change: Implemented a new scheme to detect possible missed\r
2128               packets after rx interrupt is enabled. Also set\r
2129               the "during-int" coalescing parameters to be the\r
2130               same as the normal coalescing parameters.\r
2131 \r
2132       Impact: None.\r
2133 \r
2134    2. Problem: Driver unable to identify the PHY intermittently.\r
2135 \r
2136       Cause: In some cases, both boot code and driver\r
2137              cannot read the proper PHY ID from the PHY. Driver\r
2138              relies on either the PHY ID read by boot code or\r
2139              directly read from the PHY register to idendify the PHY.\r
2140 \r
2141       Change: Changed the PHY detection logic to make it more\r
2142               robust by doing PHY reset when boot code and PHY\r
2143               registers return invalid PHY ID.\r
2144 \r
2145       Impact: None.\r
2146 \r
2147    3. Problem: LEDs not working perfectly on shasta devices.\r
2148 \r
2149       Cause: Some new shasta LED modes require driver to update\r
2150              register 0x450.\r
2151 \r
2152       Change: Added necessary code to update register 0x450.\r
2153               Also changed driver to program register 0x40c\r
2154               instead of relying on boot code to program it.\r
2155 \r
2156       Impact: None.\r
2157 \r
2158    3. Problem: Driver does not compile on kernels not supporting\r
2159                NAPI.\r
2160 \r
2161       Cause: Minor syntax error.\r
2162 \r
2163    Enhancements:\r
2164    -------------\r
2165    1. Change: Added a new OEM ID and string.\r
2166 \r
2167 v7.2.19 (Mar. 11, 2004)\r
2168 =======================\r
2169    Fixes:\r
2170    ------\r
2171    1. Problem: (CQ9188) Gigabit link light still does not work on 5751.\r
2172 \r
2173       Cause: bug in implementation.\r
2174 \r
2175       Change: Cleaned up the LED code in the driver and let the\r
2176               bootcode program the LEDs on shasta (575x/572x) devices.\r
2177 \r
2178       Impact: None.\r
2179 \r
2180    2. Problem: CRC errors reported on 5700 using 5411 PHYs.\r
2181 \r
2182       Cause: PHY register 0x18 shadow register 0 not programmed\r
2183              correctly.\r
2184 \r
2185       Change: Fixed code to use the same setting as 5401.\r
2186 \r
2187       Impact: None.\r
2188 \r
2189    3. Change: Enabled hw bug fix for 5703/04 PCI-X write DMA bug.\r
2190 \r
2191       Impact: None.\r
2192 \r
2193    4. Problem: ethtool -t fails nvram test in big endian systems.\r
2194 \r
2195       Cause: Endian bug in calculating CRC in nvram.\r
2196 \r
2197       Change: Simple fix by swapping data.\r
2198 \r
2199       Impact: None.\r
2200 \r
2201    Enhancements:\r
2202    -------------\r
2203    1. Change: (CQ8586) Added some missing stats counters to\r
2204               ETHTOOL_GSTATS\r
2205 \r
2206       Impact: None\r
2207 \r
2208 v7.2.18 (Feb. 24, 2004)\r
2209 =======================\r
2210    Fixes:\r
2211    ------\r
2212    1. Change: Changed driver for 5751 A1 by disabling PCIE reset\r
2213               during GRC reset.\r
2214 \r
2215       Impact: None.\r
2216 \r
2217    2. Change: Changed driver for 5751 A1 by enabing PCIE data\r
2218               fifo bug fix in the chip.\r
2219 \r
2220       Impact: None.\r
2221 \r
2222 v7.2.16 (Feb. 20, 2004)\r
2223 =======================\r
2224    Fixes:\r
2225    ------\r
2226    1. Problem: (CQ9188) Gigabit link light does not work on 5751.\r
2227 \r
2228       Cause: Driver did not support the new shasta LED modes.\r
2229 \r
2230       Change: Added support for the new shasta LED modes.\r
2231 \r
2232       Impact: None.\r
2233 \r
2234    2. Problem: (CQ9418) 5700 NIC fails to pass traffic at 10Mbps\r
2235                half duplex when connected to a switch port forced\r
2236                to the same speed setting.\r
2237 \r
2238       Cause: The 5401 PHY requires a long delay after PHY reset\r
2239              before the PHY can be confiured.\r
2240 \r
2241       Change: Changed code to skip PHY reset if it is 5401.\r
2242 \r
2243       Impact: None.\r
2244 \r
2245    3. Problem: (CQ9430) RPM build errors occur on 2.6.x kernels.\r
2246 \r
2247       Cause: spec file was not handling 2.6 kernels with the new\r
2248              kernel build mechanism properly.\r
2249 \r
2250       Change: Modified the spec file.\r
2251 \r
2252       Impact: None.\r
2253 \r
2254    4. Problem: (CQ9410 & CQ9393) Delayed link report to MII and\r
2255                ETHTOOL ioctls causing problems.\r
2256 \r
2257       Cause: Workaround for ifup problem (see v6.2.11, CQ7791 bug\r
2258              fix descript for details) causing problems in\r
2259              other applications that require accurate link information.\r
2260 \r
2261       Change: Changed driver so that the delayed link workaround is\r
2262               enabled using a delay_link driver parameter. The parameter\r
2263               is disabled be default.\r
2264 \r
2265       Impact: ifup may not be able to obtain IP address using DHCP.\r
2266               Use the delay_link parameter or modify the ifup script\r
2267               to increase the wait time for link up.\r
2268 \r
2269 v7.2.15 (Feb. 12, 2004)\r
2270 =======================\r
2271    Enhancement:\r
2272    ------------\r
2273    1. Change:  Added diagnostics functions to support ethtool -t.\r
2274 \r
2275       Impact: None.\r
2276 \r
2277 v7.2.12 (Feb. 05, 2004)\r
2278 =======================\r
2279    Fixes:\r
2280    ------\r
2281    1. Problem: Tx timeout reset may crash when hardware is unreliable.\r
2282 \r
2283       Cause: Reset routine relies on a valid rx consumer index in status\r
2284              block to free the rx buffers. (related to problem #1\r
2285              fixed in 7.2.10)\r
2286 \r
2287       Change: Changed logic to not rely on the hw rx consumer index.\r
2288 \r
2289       Impact: None.\r
2290 \r
2291    2. Problem: Driver not running in NAPI mode\r
2292 \r
2293       Cause: see Problem #1 fixed in 7.2.10.\r
2294 \r
2295       Change: Fixed NAPI code so that it will also run in single-threaded\r
2296               mode.\r
2297       Impact: None.\r
2298 \r
2299    3. Problem: (CQ 9293) Driver hangs intermittently during ifdown.\r
2300 \r
2301       Cause: Writing to Nic's memory when memory arbiter is disabled.\r
2302 \r
2303       Change: Changed code to write firmware mailbox signatures before\r
2304               memory arbiter is disabled.\r
2305 \r
2306       Impact: None.\r
2307 \r
2308    4. Problem: PHY's extended packet length bit not set when using\r
2309                jumbo frames.\r
2310 \r
2311       Change: Added change to always set this bit on NICs that\r
2312               support jumbo frames.\r
2313 \r
2314       Impact: None, but testing required.\r
2315 \r
2316    5. Problem: Posted writes not flushed before delay loop, causing\r
2317                the delay to be less than intended in duration.\r
2318 \r
2319       Change: Added register read back to flush the writes before delay\r
2320               loop, where appropriate.\r
2321 \r
2322       Impact: None.\r
2323 \r
2324    6. Problem: (CQ 9263) ethtool -a returning wrong autonegotiation\r
2325                 status.\r
2326 \r
2327       Cause: Minor bug.\r
2328 \r
2329       Change: Minor change.\r
2330 \r
2331       Impact: None.\r
2332 \r
2333    Enhancement:\r
2334    ------------\r
2335    1. Change: Implemented TSO for 5788 and changed name to NetLink\r
2336 \r
2337       Impact: None.\r
2338 \r
2339 v7.2.11 (Jan. 21, 2004)\r
2340 =======================\r
2341    Fixes:\r
2342    ------\r
2343    1. Problem: (CQ#9207) ASF does not work when driver is loaded on 5751.\r
2344 \r
2345       Cause:  Driver/ASF handshake problem caused by a long delay after\r
2346               GRC reset.\r
2347 \r
2348       Change: Added the new Driver/ASF handshake mechanism.\r
2349 \r
2350       Impact: None.\r
2351 \r
2352    2. Problem: (CQ#9179) Driver allows jumbo frames on 575x.\r
2353 \r
2354       Change: Minor change to disallow setting jumbo frames on 575x.\r
2355 \r
2356       Impact: None.\r
2357 \r
2358 v7.2.10 (Jan. 13, 2004)\r
2359 =======================\r
2360    Fixes:\r
2361    ------\r
2362    1. Problem: (CQ#9181) Panic on IBM PCIE system running chariot.\r
2363 \r
2364       Cause: The panic was caused by a problem in the tx timeout\r
2365              reset logic that assumed a good rx BD consumer index\r
2366              can always be read from the chip during reset. When\r
2367              something is wrong with the chip and a bogus rx BD\r
2368              consumer is read, the system panics when trying to\r
2369              recycle a wrong BD.\r
2370 \r
2371              The tx timeout itself was caused by buggy single-threaded\r
2372              workaround code and register read back code originally\r
2373              implemented for the 5700 and 5701.\r
2374 \r
2375       Change: Fixed the single-threaded and register read back\r
2376               workaround. The fix was implemented for non-NAPI\r
2377               mode only as the fix for NAPI will take more time.\r
2378               The driver will only run in non-NAPI mode.\r
2379 \r
2380       Impact: Minor.\r
2381 \r
2382    2. Problem: ASF does not run on 5751.\r
2383 \r
2384       Cause: FTQ reset after chip reset.\r
2385 \r
2386       Change: Removed FTQ reset.\r
2387 \r
2388       Impact: Should be none, but need to be tested on all 570x chips.\r
2389 \r
2390    3. Problem: (CQ#9170) NMI occurs intermittently when doing ifconfig down.\r
2391 \r
2392       Cause: HW bug when programming 5751 to low power mode.\r
2393 \r
2394       Change: Removed low power mode setting for 5751.\r
2395 \r
2396       Impact: Wol will not work on 5751.\r
2397 \r
2398    4. Change: Changed delay after GRC reset to 500 msec.\r
2399 \r
2400    5. Change: Changed shasta_smp_fix to 1 (enabled) be default.\r
2401 \r
2402 v7.2.9 (Jan. 09, 2004)\r
2403 ======================\r
2404    Enhancements:\r
2405    -------------\r
2406    1. Change: Added parameter shasta_smp_fix to enable/disable\r
2407               SMP workaround (see fix #2 in v7.2.8). Default\r
2408               is workaround disabled.\r
2409 \r
2410       Impact: None.\r
2411 \r
2412 v7.2.8 (Jan. 05, 2004)\r
2413 ======================\r
2414    Fixes:\r
2415    ------\r
2416    1. Problem: (CQ#9096) Data corruption with large ping packets.\r
2417 \r
2418       Cause: Mbuf pool start and length registers overwritten by\r
2419              driver.\r
2420 \r
2421       Change: Fixed code so that the 2 mbuf registers will not be\r
2422               overwritten for the 5750.\r
2423 \r
2424       Impact: None.\r
2425 \r
2426    2. Change: Added register read back and single-threaded workaround\r
2427               for 5750 PCIE.\r
2428 \r
2429       Impact: Lower performance.\r
2430 \r
2431 v7.2.7 (Dec. 24, 2003)\r
2432 ======================\r
2433    Fixes:\r
2434    ------\r
2435    1. Change: Changed delay to 300msec after GRC reset for 5751/5721 A0 PCI\r
2436               Express devices.\r
2437 \r
2438       Impact: None.\r
2439 \r
2440 v7.2.6 (Dec. 10, 2003)\r
2441 ======================\r
2442    Fixes:\r
2443    ------\r
2444    1. Problem: Driver does not receive interrupts on some PCI\r
2445                Express systems.\r
2446 \r
2447       Cause: A register bit could not be set using config. cycles.\r
2448 \r
2449       Change: Changed to memory write cycle to write the register.\r
2450 \r
2451       Impact: None.\r
2452 \r
2453 v7.2.5 (Dec. 02, 2003)\r
2454 ======================\r
2455    Fixes:\r
2456    ------\r
2457    1. Problem: Driver crashes during transmit timeout reset.\r
2458 \r
2459       Cause: Driver was calling schedule_timeout which is a\r
2460              blocking function and cannot be called in interrupt\r
2461              context.\r
2462 \r
2463       Change: Changed to udelay.\r
2464 \r
2465       Impact: None.\r
2466 \r
2467 v7.2.4 (Nov. 24, 2003)\r
2468 ======================\r
2469    Fixes:\r
2470    ------\r
2471    1. Problem: (CQ #8908) System freezes when 5751 PCI Express device\r
2472                is brought up.\r
2473 \r
2474       Cause: PCI Express device was not detected properly.\r
2475 \r
2476       Change: Corrected the PCI Express detection logic.\r
2477 \r
2478       Impact: None.\r
2479 \r
2480    2. Problem: (CQ #8910) PCI_Bus_Speed is misreported for PCI Express\r
2481                device.\r
2482 \r
2483       Cause: Old logic did not take PCI Express into account.\r
2484 \r
2485       Change: Made simple change to account for PCI Express device.\r
2486 \r
2487       Impact: None.\r
2488 \r
2489 v7.2.1 (Nov. 18, 2003)\r
2490 ======================\r
2491 \r
2492    Enhancements:\r
2493    -------------\r
2494    1. Change: Made some changes to make 5751 work on PCIE 1.0 systems.\r
2495 \r
2496 v7.2.0 (Nov. 17, 2003)\r
2497 ======================\r
2498 \r
2499    Enhancements:\r
2500    -------------\r
2501    1. Change: Added support for 575x and 572x PCI and PCIE chips.\r
2502 \r
2503 v7.1.21 (Jan. 05, 2004)\r
2504 =======================\r
2505    Fixes:\r
2506    ------\r
2507    1. Problem: ASF stops working after driver is loaded if PXE ran\r
2508                and did not shutdown properly.\r
2509 \r
2510       Cause: The wait time to gain NVRAM arbitration was not long\r
2511              enough in 5704 using serial eprom. As a result, a\r
2512              reset can happen to one channel of a 5704 while\r
2513              the other channel is still loading boot code. This\r
2514              will cause ASF to subsequently hang waiting forever\r
2515              for NVRAM arbitration.\r
2516 \r
2517       Change: Changed the wait time to cover the worst case\r
2518               serial eprom boot code load time plus a safety margin.\r
2519 \r
2520       Impact: None.\r
2521 \r
2522    2. Problem: (CQ#8890) Receive errors on 5700 NICs.\r
2523 \r
2524       Cause: Incorrect PHY settings on the 5401 introduced in 6.2.18\r
2525              when PHY loopback was implemented.\r
2526 \r
2527       Change: Fixed the PHY settings.\r
2528 \r
2529       Impact: None.\r
2530 \r
2531    3. Problem: Driver does not compile on some 2.4 kernels.\r
2532 \r
2533       Cause: Driver not compatible with some older ethtool.h files.\r
2534 \r
2535       Change: Added #ifdef to fix the problem.\r
2536 \r
2537       Impact: None.\r
2538 \r
2539 v7.1.20 (Dec. 24, 2003)\r
2540 ======================\r
2541 \r
2542    Fixes:\r
2543    ------\r
2544    1. Problem: ASF stops working after driver is loaded if PXE is enabled.\r
2545 \r
2546       Cause: The fix for the PXE problem in version 7.1.18 (fix #3, see below)\r
2547              has a flaw that causes reset to always occur if PXE is enabled.\r
2548              This reset causes ASF to stop functioning.\r
2549 \r
2550       Change: Fixed the flawed logic.\r
2551 \r
2552       Imapct: None.\r
2553 \r
2554 v7.1.19 (Dec. 10, 2003)\r
2555 ======================\r
2556 \r
2557    Fixes:\r
2558    ------\r
2559    1. Problem: (CQ #8961) Interrupt test fails intermitently.\r
2560 \r
2561       Cause: A race condition between the ioctl and interrupt\r
2562              service routine can cause the interrupt test to fail.\r
2563 \r
2564       Change: Added code to regenerate the interrupt in the loop\r
2565               that waits for interrupt to complete.\r
2566 \r
2567       Impact: None.\r
2568 \r
2569    Enhancements:\r
2570    -------------\r
2571    1. Change: Changed Makefile to use ppc64 compiler and linker\r
2572               if compiling on ppc64 environment.\r
2573 \r
2574       Impact: None.\r
2575 \r
2576 v7.1.18 (Nov. 21, 2003)\r
2577 ======================\r
2578 \r
2579    Fixes:\r
2580    ------\r
2581    1. Problem: IPMI firmware receiving VLAN tagged packets stops working\r
2582                after ifconfig up.\r
2583 \r
2584       Cause: Driver sets NIC to keep VLAN tags by default.\r
2585 \r
2586       Change: Added code and driver parameter vlan_tag_mode to control whether\r
2587               VLAN tags will be stripped or not. By default, the driver will\r
2588               always strip VLAN tags if ASF/IPMI firmware is enabled.\r
2589 \r
2590       Imapct: If ASF is enabled, the NIC may not work properly when VLAN\r
2591               and bonding are used together. Sniffer applications that\r
2592               wants to receive raw VLAN-tagged frames will also be affected.\r
2593 \r
2594    2. Problem: IPMI firmware stops working after ifconfig up on PPC64 machine.\r
2595 \r
2596       Cause: Timing differences on PPC cause the driver to reset a certain\r
2597              chip block after firmware has enabled it. Timing difference\r
2598              is due to very slow config cycles on the PPC.\r
2599 \r
2600       Change: Rearranged some code in LM_ResetAdapter to get around the problem.\r
2601 \r
2602       Impact: None.\r
2603 \r
2604    3. Problem: Driver does not load if PXE ran previously and did not shutdown\r
2605                the chip.\r
2606 \r
2607       Cause: Driver does not work properly as it expects the chip to be\r
2608              disabled during reset.\r
2609 \r
2610       Change: Added code to check if the chip is enabled and reset it\r
2611               if necessary before setup.\r
2612 \r
2613       Imapct: None.\r
2614 \r
2615    4. Problem: Driver takes a long time to reset if the bootcode is\r
2616                disabled on the PPC.\r
2617 \r
2618       Cause: Config cycles are very slow on the PPC and the loop\r
2619              to check for the firmware signature is too tight.\r
2620 \r
2621       Change: Loosened the loop to check for the firmeare signature\r
2622               after reset. Also made the maximum loop count smaller\r
2623               if it is using flash NVRAM.\r
2624 \r
2625       Imapct: None.\r
2626 \r
2627    Enhancements:\r
2628    -------------\r
2629    1. Change: Added ETHTOOL_GRINGPARAM ioctl\r
2630 \r
2631       Imapct: None.\r
2632 \r
2633    2. Change: Added PPC64 specific compile switches in Makefile to allow\r
2634               the driver to be compiled as a standalone module.\r
2635 \r
2636       Imapct: None.\r
2637 \r
2638 v7.1.11 (Nov. 05, 2003)\r
2639 ======================\r
2640 \r
2641    Fixes:\r
2642    ------\r
2643    1. Problem: Running b57ldiag on PPC system crashes after a while.\r
2644 \r
2645       Cause: PCI addresses not properly unmapped during diagnostics\r
2646              suspend operation.\r
2647 \r
2648       Change: Added code to unmap PCI addresses in rx buffers during\r
2649               suspend.\r
2650 \r
2651       Impact: None.\r
2652 \r
2653    Enhancements:\r
2654    -------------\r
2655    1. Problem: Driver doesn't load on SerDes and 5704 devices when\r
2656                the NVRAM is blank or corrupted. Driver needs to load\r
2657                to support diagnostics.\r
2658 \r
2659       Cause: 5704 NVRAM cannot be reliably accessed when boot code is\r
2660              not running, so driver cannot get proper MAC address\r
2661              and proper PHY ID.\r
2662 \r
2663       Change: Changed code to allow driver to load with warnings when\r
2664               even when NVRAM cannot be accessed.\r
2665 \r
2666       Impact: When boot code is blank, driver will load with a bogus\r
2667               MAC address.\r
2668 \r
2669    2. Problem: Driver cannot reliably read/write NVRAM when NVRAM\r
2670                is corrupted or blank.\r
2671 \r
2672       Cause: When bootcode is not running, the NVRAM interface state\r
2673              machines will get locked up.\r
2674 \r
2675       Change: Added code to reset the NVRAM interfaces of both\r
2676               ports in 5704.\r
2677 \r
2678       Impact: None.\r
2679 \r
2680    3. Change: Added ioctl to get and clear statistics block.\r
2681 \r
2682       Impact: None.\r
2683 \r
2684 v7.1.9 (Nov. 03, 2003)\r
2685 ======================\r
2686 \r
2687    Fixes:\r
2688    ------\r
2689    1. Problem: Driver does not load on 5704S devices if the eeprom is\r
2690                blank.\r
2691 \r
2692       Cause: 5704S defaults to an unsupported device ID when eeprom\r
2693              is blank.\r
2694 \r
2695       Change: Added the default 5704S device ID.\r
2696 \r
2697       Impact: None.\r
2698 \r
2699 \r
2700 v7.1.8 (Oct. 31, 2003)\r
2701 ======================\r
2702 \r
2703    Fixes:\r
2704    ------\r
2705    1. Problem: ASF/IPMI stops passing traffic after driver is loaded.\r
2706 \r
2707       Cause: GRC mode control register overwritten when driver loads.\r
2708 \r
2709       Change: Changed driver to preserve the relevant bit in the GRC\r
2710               mode control register during driver load.\r
2711 \r
2712       Impact: None.\r
2713 \r
2714    Enhancements:\r
2715    -------------\r
2716    1. Change: Changed memory allocation ioctl to support diagnostics\r
2717               program doing DMA tests.\r
2718               Added a new ioctl to force Nvram write protect on/off\r
2719               in case the write protect setting is wrong in the nvram.\r
2720 \r
2721       Impact: None.\r
2722 \r
2723 v7.1.6 (Oct. 27, 2003)\r
2724 ======================\r
2725 \r
2726    Fixes:\r
2727    ------\r
2728    1. Problem: (CQ #8732) Unloading bcm5700.ko in 2.6 kernels causes\r
2729                segmentation fault.\r
2730 \r
2731       Cause: Driver uses init_etherdev which has been deprecated by\r
2732              alloc_etherdev and register_netdev.\r
2733 \r
2734       Change: Changed to use the new APIs in 2.6 kernels.\r
2735 \r
2736       Impact: None.\r
2737 \r
2738 v7.1.5 (Oct. 21, 2003)\r
2739 ======================\r
2740 \r
2741    Fixes:\r
2742    ------\r
2743    1. Problem: Driver does not compile on 2.5+ kernels.\r
2744 \r
2745       Cause:  mem_map_reserve/mem_unmap_reserve no longer defined in 2.5+\r
2746               kernels.\r
2747 \r
2748       Change: Changed to SetPageReserved/ClearPageReserved (More testing\r
2749               is needed to make sure this works on 2.5+ kernels)\r
2750 \r
2751       Impact: No impact on normal driver operations. The memory\r
2752               allocation ioctl that supports diagnostics may be impacted.\r
2753 \r
2754 v7.1.4 (Oct. 17, 2003)\r
2755 ======================\r
2756 \r
2757    Enhancements:\r
2758    -------------\r
2759    1. Change: Added memory allocation ioctl to allow user apps to mmap it\r
2760               for dma tests.\r
2761 \r
2762       Imapct: None.\r
2763 \r
2764    Fixes:\r
2765    ------\r
2766    1. Problem: Driver does not load on ia64 with register_ioctl32_conversion\r
2767                undefined.\r
2768 \r
2769       Cause:   register_ioctl32_conversion not defined for ia64.\r
2770 \r
2771       Change:  Removed this routine for ia64.\r
2772 \r
2773       Imapct: None.\r
2774 \r
2775 v7.1.2 (Oct. 13, 2003)\r
2776 ======================\r
2777 \r
2778    Enhancements:\r
2779    -------------\r
2780    1. Change: Added OEM string.\r
2781 \r
2782       Impact: None.\r
2783 \r
2784 v7.1.1 (Oct. 07, 2003)\r
2785 ======================\r
2786 \r
2787    Enhancements:\r
2788    -------------\r
2789    1. Change: Added a few more diagnostics ioctl commands.\r
2790 \r
2791       Impact: None.\r
2792 \r
2793    2. Change: (CQ #8428) Added nic_tx_bd parameter.\r
2794 \r
2795       Impact: None.\r
2796 \r
2797    3. Change: Added ETHTOOL_GTSO and ETHTOL_STSO ioctl commands and\r
2798               changed TSO to be enabled by default (when supported\r
2799               by the NIC and the kernel)\r
2800 \r
2801       Impact: None.\r
2802 \r
2803    4. Problem: (CQ #8469) Mandrake 9.1 has new module path.\r
2804 \r
2805       Change: Modified Makefile to install driver in the new 3rdparty path.\r
2806 \r
2807       Impact: None.\r
2808 \r
2809    5. Problem: (CQ #8438) Some parameters do not assume default values\r
2810                as documented.\r
2811 \r
2812       Cause: When running in NAPI mode, some coalescing parameters have\r
2813              different default values.\r
2814 \r
2815       Change: Updated documentation and man page.\r
2816 \r
2817       Impact: None.\r
2818 \r
2819 \r
2820 v7.1.0 (Sep. 22, 2003)\r
2821 ======================\r
2822 \r
2823    Fixes:\r
2824    ------\r
2825    1. Problem: SIOCNICE ioctl does not work in 64-bit systems when\r
2826                the calling application is 32-bit.\r
2827 \r
2828       Cause: The 32-bit ifreq data structure is converted by the\r
2829              kernel to 64-bit, messing up the nice_req structure.\r
2830 \r
2831       Change: Added 32-bit ioctl conversion routine to handle the\r
2832               proper conversion.\r
2833 \r
2834       Impact: None.\r
2835 \r
2836    Enhancements:\r
2837    -------------\r
2838    1. Problem: Ethtool -e does not output the same data on big\r
2839                and little endian systems.\r
2840 \r
2841       Change: Change swapping scheme so that nvram read/write routines\r
2842               will work with the same byte-stream data in big and little\r
2843               endian systems.\r
2844 \r
2845       Impact: None.\r
2846 \r
2847     2. Change: Added support for 5705F.\r
2848 \r
2849        Impact: None.\r
2850 \r
2851 v7.0.0 (Aug. 14, 2003)\r
2852 ======================\r
2853 \r
2854    Enhancements:\r
2855    -------------\r
2856    1. Problem: Phy ADC and gamma fix not applied properly to all\r
2857                relevant PHY cores.\r
2858 \r
2859       Change: Made appropriate changes to apply the fix to the\r
2860               relevant PHYs after PHY reset.\r
2861 \r
2862    2. Problem: 5704 SerDes drive transmission level not set properly.\r
2863 \r
2864       Change: Changed 5704 SerDes' drive transmission level to 1.2V.\r
2865 \r
2866 v6.2.20 (Aug. 08, 2003)\r
2867 =======================\r
2868 \r
2869    Fixes:\r
2870    ------\r
2871    1. Problem: (CQ #8275) 5704B0 NICs not working properly on HP rx2600\r
2872                PCIX systems\r
2873 \r
2874       Cause: Problem in one of the hardware fixes in 5704 B0.\r
2875 \r
2876       Change: Disable the h/w fix.\r
2877 \r
2878       Impact: None.\r
2879 \r
2880 v6.2.19 (July 31, 2003)\r
2881 =======================\r
2882 \r
2883    Fixes:\r
2884    ------\r
2885    1. Problem: Repeated ifup/ifdown hangs systems using iommu's.\r
2886 \r
2887       Cause: Rx buffers not properly unmapped during ifdown.\r
2888 \r
2889       Change: Fixed driver to unmap all buffers during ifdown.\r
2890 \r
2891       Impact: None.\r
2892 \r
2893    2. Problem: (CQ# 8232) Copper NICs drop packets when connected\r
2894                to some switches.\r
2895 \r
2896       Cause: Phy register 0x18 (aux. ctrl) shadow 0 not set up\r
2897              properly. This bug was introduced when adding\r
2898              external loop back function in v6.2.18.\r
2899 \r
2900       Change: Fixed the phy register setting.\r
2901 \r
2902       Impact: None.\r
2903 \r
2904    Enhancements:\r
2905    -------------\r
2906    1. Problem: Not setting up dma mask (pci_set_dma_mask) according to\r
2907       Documentation/DMA-mapping.txt.\r
2908 \r
2909       Change: Made the required changes when calling pci_set_dma_mask.\r
2910 \r
2911       Impact: None.\r
2912 \r
2913    2. Problem: Driver does not restore line speed settings after\r
2914                external loopback.\r
2915 \r
2916       Change: Added code to save line_speed settings before ext.\r
2917               loopback and to restore the settings afterward.\r
2918 \r
2919       Impact: None.\r
2920 \r
2921    3. Problem: Makefile does not compile driver properly on 2.5+ kernels.\r
2922 \r
2923       Change: Modified Makefile to support 2.4 anf 2.5+ kernels\r
2924               transparently. (More work needs to be done)\r
2925 \r
2926       Impact: None.\r
2927 \r
2928 v6.2.18 (July 25, 2003)\r
2929 =======================\r
2930 \r
2931    Fixes:\r
2932    ------\r
2933    1. Problem: TSO doesn't work on ia64 and big endian machines.\r
2934 \r
2935       Cause: U32 typedef as unsigned long and TSO firmware was not\r
2936              downloaded properly on big endian machines.\r
2937 \r
2938       Change: Fixed U32 typedef and big endian code for firmware\r
2939               downloading. Also made additional cleanup and testing\r
2940               on the big endian code.\r
2941 \r
2942       Impact: None.\r
2943 \r
2944    Enhancements:\r
2945    -------------\r
2946    1. Problem: TSO performance slightly below (< 10%) non-TSO\r
2947                performance on 5703/5704.\r
2948 \r
2949       Change: Optimized firmware to narrow the performance gap.\r
2950 \r
2951       Impact: None.\r
2952 \r
2953    2. Problem: (CQ #8184) Driver limits the number of Multicast addresses\r
2954                to 32.\r
2955 \r
2956       Change: Changed scheme to allow unlimited Multicast addresses by\r
2957               by just keeping the Hash values.\r
2958 \r
2959       Impact: None.\r
2960 \r
2961    3. Problem: (CQ #7822) Driver does not support ETHTOOL_GSTRINGS,\r
2962                ETHTOOL_GSTATS, ETHTOOL_GREGS, ETHTOOL_PHYS_ID ioctls.\r
2963 \r
2964       Change: Added these ioctls.\r
2965 \r
2966       Impact: None.\r
2967 \r
2968    4. Problem: Driver does not support 5704 B0.\r
2969 \r
2970       Change: Added support for 5704 B0.\r
2971 \r
2972       Impact: None.\r
2973 \r
2974 v6.2.17 (July 14, 2003)\r
2975 =======================\r
2976 \r
2977    Fixes:\r
2978    ------\r
2979    1. Problem: (CQ8125) ethtool -e hangs system\r
2980 \r
2981       Cause: ethtool tries to read 1Mbytes of data from the slow\r
2982              nvram.\r
2983 \r
2984       Change: Changed maximum size of nvram to 128K and added a 1K\r
2985               limit to ETHTOOL_GEEPROM ioctl.\r
2986 \r
2987       Impact: None.\r
2988 \r
2989    2. Problem: Driver does not work properly on the latest 2.5 kernels\r
2990                and generates "irq xx: nobody cared!" message.\r
2991 \r
2992       Cause: Interrupt service routine needs to return value to indicate\r
2993              whether interrupt was serviced or not in the latest 2.5\r
2994              kernels.\r
2995 \r
2996       Change: Made the necessary change in the ISR.\r
2997 \r
2998       Impact: None. Still compatible with 2.4 and older kernels.\r
2999 \r
3000 v6.2.16 (July 11, 2003)\r
3001 =======================\r
3002 \r
3003    Enhancements:\r
3004    -------------\r
3005    1. Problem: Link polling interval for 5703S NICs is too long.\r
3006 \r
3007       Change: Decreased the link polling interval to 1/4 second.\r
3008 \r
3009       Impact: None.\r
3010 \r
3011 v6.2.15 (July 10, 2003)\r
3012 =======================\r
3013 \r
3014    Fixes:\r
3015    ------\r
3016    1. Problem: (CQ7987) Blade NIC link toggles up and down under network\r
3017                stress.\r
3018 \r
3019       Cause: PCS SYNC signal appears to be unstable in some cases\r
3020              under stress.\r
3021 \r
3022       Change: Changed driver to poll for link changes instead of using\r
3023               interrupts. Also added code to proceed with PHY setup\r
3024               only if PCS SYNC or SIGNAL DETECT are down. These changes\r
3025               allow the NIC to run with minimal interruption when the NIC\r
3026               occasionally loses PCS SYNC for short periods of time.\r
3027 \r
3028       Impact: May slightly affect link change/autoneg behavior.\r
3029 \r
3030 v6.2.14 (July 01, 2003)\r
3031 =======================\r
3032 \r
3033    Fixes:\r
3034    ------\r
3035    1. Problem: Driver panics when loading on 2.4.20-18.7 RH kernel.\r
3036 \r
3037       Cause: Makefile compiles driver with kgcc, making the driver\r
3038              incompatible with the kernel that was compiled with gcc.\r
3039 \r
3040       Change: Modified Makefile to choose kgcc only if the kernel\r
3041               was compiled with kgcc.\r
3042 \r
3043       Impact: None.\r
3044 \r
3045    2. Problem: Link error when compiling driver into kernel with\r
3046                CONFIG_HOTPLUG not defined.\r
3047 \r
3048       Cause: __devexit_p not used in the bcm5700_remove_one pointer.\r
3049 \r
3050       Change: Added __devexit_p for the bcm5700_remove_one pointer.\r
3051 \r
3052       Impact: None.\r
3053 \r
3054 v6.2.11 (May 16, 2003)\r
3055 ======================\r
3056 \r
3057    Fixes:\r
3058    ------\r
3059    1. Problem: CQ#7791 Driver cannot consistently lease DHCP address.\r
3060 \r
3061       Cause: The Broadcom NICs sometimes takes longer to link up\r
3062              when connected to certain switches. This may cause\r
3063              the ifup script to conclude that link is down and not\r
3064              proceed to obtain an IP address using DHCP.\r
3065 \r
3066       Change: The workaround is done in the driver to return error when the\r
3067               mii-tool or ethtool getlink ioctl interfaces are called during\r
3068               the first 6 seconds after driver reset. When the driver returns\r
3069               error, the ifup script will assume link is up and proceed with\r
3070               the DHCP request. After 6 seconds, these ioctl interfaces will\r
3071               return the true link states at the time they are called.\r
3072 \r
3073       Impact: ifup always proceeds with DHCP request whether link is up\r
3074               or down.\r
3075 \r
3076 v6.2.7 (May 14, 2003)\r
3077 =====================\r
3078 \r
3079    Enhancements:\r
3080    -------------\r
3081    1. Problem: Driver does not have OEM strings for some 5703 B0 NICs.\r
3082 \r
3083       Change: Added OEM sub IDs and description strings.\r
3084 \r
3085 \r
3086 v6.2.6 (May 09, 2003)\r
3087 =======================\r
3088 \r
3089    Enhancements:\r
3090    -------------\r
3091    1. Problem: Driver does not support 5901 A2/A3.\r
3092 \r
3093       Change: Added support for 5901 A2/A3.\r
3094 \r
3095 \r
3096 v6.2.5 (May 05, 2003)\r
3097 =======================\r
3098 \r
3099    Fixes:\r
3100    ------\r
3101    1. Problem: Driver intermittently won't load when ASF is enabled.\r
3102 \r
3103       Cause: Driver's init function's PHY routines contend with ASF.\r
3104 \r
3105       Change: Removed PHY access routines in init function when ASF is\r
3106               enabled. Using the latest firmware (2.33) will guarantee\r
3107               that the proper PHY ID will be obtained by the driver.\r
3108 \r
3109    Enhancements:\r
3110    -------------\r
3111    1. Problem: Driver does not support 5901.\r
3112 \r
3113       Change: Added support for 5901.\r
3114 \r
3115 v6.2.4 (April 29, 2003)\r
3116 =======================\r
3117 \r
3118    Fixes:\r
3119    ------\r
3120    1. Problem: The PHY lockup problem described in v6.2.3 Fix #4 below\r
3121                theoretically can affect other PHY cores in 5703 and 5705.\r
3122 \r
3123       Cause: Hardware bug in the PHY core. Probability of lockup is\r
3124              extremely small.\r
3125 \r
3126       Change: Expanded the lockup detection and recovery code to 5703,\r
3127               5704, and 5705. Also changed the driver to do a PHY reset\r
3128               on link down on all versions of 5705. Also added PHY reset\r
3129               before restart autoneg in ethtool for 5703, 04, and 05.\r
3130 \r
3131 v6.2.3 (April 18, 2003)\r
3132 =======================\r
3133 \r
3134    Fixes:\r
3135    ------\r
3136    1. Problem: (CQ #7518) Using ethtool to set speed before ifup crashes\r
3137                the system when using fiber NICs.\r
3138 \r
3139       Cause: ethtool ioctl may access the status block which is not\r
3140              initialized before ifup.\r
3141 \r
3142       Change: Added check before proceeding with some ethtool ioctls.\r
3143 \r
3144       Impact: Only impact certain ethtool commands.\r
3145 \r
3146 \r
3147    2. Problem: (CQ #7577) Cannot receive traffic in some rare situations\r
3148                after loading the driver.\r
3149 \r
3150       Cause: In some rare situations when running in NAPI mode, the chip\r
3151              generates a receive interrupt before the interface state is\r
3152              up. The driver then disables rx interrupt and schedules the\r
3153              polling function which fails because the interface is not up.\r
3154              This polling function will not be called and no rx packets\r
3155              will be processed.\r
3156 \r
3157       Change: Added check for the return value of netif_rx_schedule_prep()\r
3158               and will only disable rx interrupt if it returns success.\r
3159 \r
3160       Impact: Receive code path in NAPI mode.\r
3161 \r
3162 \r
3163    3. Problem: ethtool -r (restart autoneg) does not work on 5704S.\r
3164 \r
3165       Cause: LM_SetupPhy does not restart autoneg if autoneg is already\r
3166              set for 5704S.\r
3167 \r
3168       Change: Added code to first disable autoneg and then reneable it.\r
3169 \r
3170       Impact: Only affects ethtool -r for fiber NICs.\r
3171 \r
3172 \r
3173    4. Problem: In some extremely rare situations, 5704 Copper NICs\r
3174                may not link up after a PHY reset.\r
3175 \r
3176       Cause: On some 5704 PHY cores, there is a small probability of\r
3177              lock up after a PHY reset.\r
3178 \r
3179       Change: Added code to detect PHY lock up after a PHY reset and\r
3180               reset again if lock up is detected.\r
3181 \r
3182       Impact: The added lock up detection and recovery code affects\r
3183               driver reset and link down events where PHY resets are\r
3184               performed.\r
3185 \r
3186 \r
3187 v6.2.2 (04/09/03)\r
3188 \r
3189 - Fixed the problem of intermittently using a MAC address of all zeros.\r
3190 - Added support for BASP in NAPI mode.\r
3191 - Added polling mode to support netdump.\r
3192 \r
3193 v6.2.1 (03/25/03)\r
3194 \r
3195 - Added NAPI.\r
3196 \r
3197 v6.2.0 (03/18/03)\r
3198 \r
3199 - Added support for 5788.\r
3200 - Changed locking functions into macros to avoid passing the flags.\r
3201 \r
3202 v6.0.3 (02/25/03)\r
3203 \r
3204 - Fixed the problem of 5704S not linking when it is set to autoneg. and the\r
3205   link partner has autoneg. disabled.\r
3206 \r
3207 v6.0.2 (02/14/03)\r
3208 \r
3209 - Fixed the problem of T3_CHIP_ID_5705_A2 not defined in tigon3.h\r
3210 \r
3211 v6.0.1 (02/11/03)\r
3212 \r
3213 - Fixed some minor bugs in the adaptive coalescing logic.\r
3214 \r
3215 v6.0.0 (02/10/03)\r
3216 \r
3217 - Fixed another ASF problem that occurred when WOL was disabled in firmware\r
3218   but enabled in the driver.\r
3219 \r
3220 - Added new device IDs for 5705 A2/A3 and made necessary changes to support\r
3221   5705 A3.\r
3222 \r
3223 v5.0.22 (02/07/03)\r
3224 \r
3225 - Fixed the problem of ASF malfunction when the device is shutdown.\r
3226 \r
3227 v5.0.21 (02/06/03)\r
3228 \r
3229 - Fixed the problem of ifup (mii-tool) always detecting link down on 5704S.\r
3230 - Fixed the problem of high CPU utilization when receiving line-rate traffic\r
3231   from Smartbits or Ixia by limiting the number of buffers allocated in the ISR.\r
3232 \r
3233 v5.0.20 (02/05/03)\r
3234 \r
3235 - Fixed a bad IP checksum problem in the 5702/03/04 TSO firmware.\r
3236 \r
3237 v5.0.19 (01/23/03)\r
3238 \r
3239 - Changed Makefile to include proper compiler switches for x86_64 architectures.\r
3240 - Fixed a bug in the adaptive coalescing function. Some variables were not\r
3241   properly initialized after ifdown and ifup and this bug may cause\r
3242   low performance especially when using jumbo frames.\r
3243 - Tweaked the adaptive coalescing parameters slightly to improve netperf\r
3244   performance.\r
3245 \r
3246 v5.0.17 (01/10/03)\r
3247 \r
3248 - Made changes for 5705 A2.\r
3249 - Added autoneg. workaround for 5704S.\r
3250 \r
3251 v5.0.16 (01/03/03)\r
3252 \r
3253 - Fixed the hang problem on 5700 during ifdown.\r
3254 \r
3255 v5.0.15 (01/03/03)\r
3256 \r
3257 - Fixed some WOL issues.\r
3258 - Fixed TSO problems on 5702/03/04.\r
3259 - Fixed problems with the network_install dd images.\r
3260 \r
3261 v5.0.14 (12/19/02)\r
3262 \r
3263 - Made flow control work better.\r
3264 - Added 10Mbps limit for 5704 WOL.\r
3265 - Removed 5901 and 5705MFE support.\r
3266 \r
3267 v5.0.12 (12/12/02)\r
3268 \r
3269 - Added diagnostics ioctls.\r
3270 - Enabled flow control by default.\r
3271 \r
3272 v5.0.11 (12/06/02)\r
3273 \r
3274 - Fixed data corruption problem on 5705 with TSO enabled.\r
3275 - Fixed 5701 lockup during initialization.\r
3276 \r
3277 v5.0.10 (11/20/02)\r
3278 \r
3279 - Added support for 5705MFE and 5901.\r
3280 - Added TSO for 5705 A1.\r
3281 - Fixed ifconfig hang on Intel McKinley.\r
3282 \r
3283 v5.0.9  (11/08/02)\r
3284 \r
3285 - Made changes for 5705 A1 chips.\r
3286 \r
3287 v5.0.8  (11/05/02)\r
3288 \r
3289 - Fixed ASF problem on 5705.\r
3290 - Fixed problem with changing MAC address.\r
3291 - Added MTU change using ifconfig.\r
3292 - Fixed problem running on AMD X86_64 machines.\r
3293 \r
3294 v5.0.7  (10/11/02)\r
3295 \r
3296 - Fixed 5704S link related problems.\r
3297 - Improved performance slightly on some PCIX machines.\r
3298 - Fixed GEEPROM to allow full access to NVRAM.\r
3299 \r
3300 v5.0.6  (10/03/02)\r
3301 \r
3302 - Fixed problem of 5704S not linking up.\r
3303 - Added code to support autoneg in 5704S hardware.\r
3304 \r
3305 v5.0.5  (09/24/02)\r
3306 \r
3307 - Fine-tuned some parameters for improved performance.\r
3308 - Added TSO.\r
3309 - Fixed WOL problems on 5704.\r
3310 - Fixed the problem of not enabling ASF on the fly.\r
3311 - Fixed incorrect PCIX speed in proc file.\r
3312 - Added 5704S support.\r
3313 - Fixed incorrect PCIX speed in proc file.\r
3314 - Fixed the initialization failure on 5701 LOMs.\r
3315 \r
3316 v3.0.12 (08/22/02)\r
3317 \r
3318 - Fixed the problem of not loading on CIOBE A1.\r
3319 - Fixed intermittent hang problem when configuring 802.1q VLAN.\r
3320 \r
3321 v3.0.11 (08/21/02)\r
3322 \r
3323 - Added DIAG_SUSPEND/DIAG_RESUME ioctls.\r
3324 - Added some workarounds for 5705.\r
3325 - Added vlan tag size adjustment when receiving vlan tagged packets.\r
3326 \r
3327 v3.0.10 (08/07/02)\r
3328 \r
3329 - Fixed NVRAM write corruption.\r
3330 - Added check to not allow jumbo MTUs on 5705.\r
3331 - Added WOL on OEM 5703 Fiber LOM.\r
3332 \r
3333 v3.0.9 (08/05/02)\r
3334 \r
3335 - Added support for 5705.\r
3336 \r
3337 v3.0.8 (07/25/02)\r
3338 \r
3339 - Fixed VLAN problem with BASP.\r
3340 - Added new 5704 IDs.\r
3341 - Added support for 5702FE.\r
3342 \r
3343 v3.0.7 (07/17/02)\r
3344 \r
3345 - Changed to enable VLAN tag stripping only when VLAN or BASP is registered.\r
3346 - Fixed problem of sending bad zero-copy packets.\r
3347 - Added additional workaround for systems with AMD762.\r
3348 - Adjusted EEPROM delay loop.\r
3349 \r
3350 v3.0.6 (06/25/02)\r
3351 \r
3352 - Fixed an ASF failure.\r
3353 - Added 802.1Q VLAN\r
3354 - Added a locking scheme for PHY access.\r
3355 - Fixed an intermittent crash problem with fiber NICs.\r
3356 - Adjusted fiber autoneg. logic to work with 3Com 4900SX switch.\r
3357 - Added netif_carrier_on and netif_carrier_off.\r
3358 \r
3359 v3.0.5 (05/30/02)\r
3360 \r
3361 - Fixed occasional hang during load and unload.\r
3362 - Fixed non-zero statistics when stats_coalesce_ticks is 0.\r
3363 \r
3364 v3.0.4 (05/15/02)\r
3365 \r
3366 - Fixed 10Mbps line speed setting bug.\r
3367 - Fixed problem with jumbo packets.\r
3368 - Fixed a compile warning on Red Hat 7.3\r
3369 \r
3370 v3.0.3 (05/13/02)\r
3371 \r
3372 - Added support for ASF.\r
3373 - Added 64-bit counters for 64-bit machines.\r
3374 - Reduced code size.\r
3375 - Fixed intermittent VPD failures.\r
3376 \r
3377 v3.0.2 (05/03/02)\r
3378 \r
3379 - Fixed a bug on PCIX systems.\r
3380 \r
3381 v3.0.1 (05/02/02)\r
3382 \r
3383 - Added workaround for Intel ICH and ICH0 chipsets.\r
3384 - Fixed 5704 related problems.\r
3385 \r
3386 v3.0.0 (04/22/02)\r
3387 \r
3388 - Added 5704 support\r
3389 - Reduced some overhead in the upper/lower driver interface.\r
3390 \r
3391 v2.2.19 (04/10/02)\r
3392 \r
3393 - Fixed a panic problem on 5700 under heavy traffic on certain machines.\r
3394 - Reduced code size slightly.\r
3395 - Added necessary delays after changes to GPIO.\r
3396 \r
3397 v2.2.18 (04/03/02)\r
3398 \r
3399 - Added new OEM subsystem IDs.\r
3400 - Fixed some ethtool problems.\r
3401 \r
3402 v2.2.17 (04/02/02)\r
3403 \r
3404 - Adjusted some delay loops to avoid hangs during intermittent failures.\r
3405 \r
3406 v2.3.0 (03/29/02)\r
3407 \r
3408 - Special version with external memory and Mini ring support.\r
3409 \r
3410 v2.2.12 (03/27/02)\r
3411 \r
3412 - Minor fix for some fiber related issues.\r
3413 \r
3414 v2.2.11 (03/23/02)\r
3415 \r
3416 - Adjusted fiber autoneg scheme to be consistent with other Broadcom\r
3417   drivers.\r
3418 \r
3419 v2.2.10 (03/21/02)\r
3420 \r
3421 - Changed Fiber LED to software control.\r
3422 - Fixed 4 GByte boundary check for 5700.\r
3423 \r
3424 v2.2.9 (03/13/02)\r
3425 \r
3426 - Fixed a hang problem on 5703S with cable disconnected.\r
3427 \r
3428 v2.2.8 (03/07/02)\r
3429 \r
3430 - More changes to fiber autonegotiation - interrupt with polling backup\r
3431   for fiber link changes.\r
3432 \r
3433 v2.2.7 (03/06/02)\r
3434 \r
3435 - Made some changes to autonegotiation of fiber.\r
3436 \r
3437 v2.2.6 (03/05/02)\r
3438 \r
3439 - Added fix for 5703S.\r
3440 - Improved adaptive interrupt coalescing.\r
3441 - Fixed a problem in WOL.\r
3442 \r
3443 v2.2.5 (02/27/02)\r
3444 \r
3445 - Fixed a big endian problem.\r
3446 \r
3447 v2.2.4 (02/27/02)\r
3448 \r
3449 - Added new device IDs for 5703/5702.\r
3450 - Fixed parity error NMIs with 5703 on PCIX systems.\r
3451 - Added Ethernet@WireSpeed.\r
3452 \r
3453 v2.2.3 (02/07/02)\r
3454 \r
3455 - Fixed EEPROM corruption during repeated load/unload of the driver.\r
3456 - Changed driver to use polling for fiber link changes.\r
3457 \r
3458 v2.2.1 (01/23/02)\r
3459 \r
3460 - Increased eeprom timing delays for slower clocks.\r
3461 \r
3462 v2.2.0 (01/22/02)\r
3463 \r
3464 - First release for 5702/5703 A1.\r
3465 \r
3466 v2.0.34 (01/04/02)\r
3467 \r
3468 - Fixed data corruption problem on PCIX systems under heavy traffic.\r
3469 \r
3470 v2.0.32 (01/02/02)\r
3471 \r
3472 - No change.\r
3473 \r
3474 v2.0.31 (12/14/01)\r
3475 \r
3476 - Changed i/o accesses to use writel/readl macros.\r
3477 - Fixed problem when loading driver on an OEM LOM with no cable attached.\r
3478 - Fixed problem of setting IFF_ALLMULTI.\r
3479 - Changed to use pci_map_page to map the zero copy transmit fragments.\r
3480 \r
3481 v2.0.28 (11/05/01)\r
3482 \r
3483 - Added SIOCETHTOOL ioctl support.\r
3484 \r
3485 v2.0.27 (10/26/01)\r
3486 \r
3487 - Fixed a link up problem for an OEM LOM.\r
3488 \r
3489 v2.0.26 (10/25/01)\r
3490 \r
3491 - Added 5702 support.\r
3492 \r
3493 v2.0.25 (10/22/01)\r
3494 \r
3495 - Added Rx_Short_Fragments and other counters.\r
3496 - Added code to detect AMD762 Northbridge and enable PCI ordering on that chip.\r
3497 \r
3498 v2.0.24 (09/19/01)\r
3499 \r
3500 - Fixed intermittent link failures.\r
3501 \r
3502 v2.0.21 (09/14/01)\r
3503 \r
3504 - Fixed zero copy failure.\r
3505 \r
3506 v2.0.19 (09/11/01)\r
3507 \r
3508 - Fixed the problem of over reporting CRC errors.\r
3509 - Fixed the problem of late collisions in 1000Mbps half duplex.\r
3510 \r
3511 v2.0.18 (08/24/01)\r
3512 \r
3513 - Added same fix in 2.0.17 for the latest A3 chips.\r
3514 \r
3515 v2.0.17 (08/22/01)\r
3516 \r
3517 - Fixed a lock-up problem when loading fibre card with no cable attached.\r
3518 \r
3519 v2.0.16 (08/18/01)\r
3520 \r
3521 - Fixed a panic caused by an interrupt before the NIC is fully initialized.\r
3522 \r
3523 v2.0.15 (08/14/01)\r
3524 \r
3525 - Fixed a problem that caused unnecessary resets to the chip during\r
3526 heavy traffic.\r
3527 \r
3528 v2.0.14 (08/09/01)\r
3529 \r
3530 - Lowered core clock freq. in latest 5701 chip in 100Mbps WOL mode.\r
3531 \r
3532 v2.0.12 (08/02/01)\r
3533 \r
3534 - Fixed a 100Mbps fixed speed problem.\r
3535 - Fixed the accidental clearing of RX stats during link changes.\r
3536 - Added reentrancy protection in tasklet so that it will work on RH7.2 beta3.\r
3537 \r
3538 v2.0.11 (07/19/01)\r
3539 \r
3540 - Fixed some fiber autonegotiation problems.\r
3541 \r
3542 v2.0.10 (07/13/01)\r
3543 \r
3544 - Added promiscuous mode support.\r
3545 - Improved performance, especially on 5700 chips.\r
3546 \r
3547 v2.0.9 (07/04/01)\r
3548 \r
3549 - Fixed IA64 DMA alignment problem.\r
3550 \r
3551 v2.0.8 (07/03/01)\r
3552 \r
3553 - Fixed panic during ifdown.\r
3554 \r
3555 v2.0.7 (07/01/01)\r
3556 \r
3557 - Fixed problems with fibre cards.\r
3558 - Added 100Mbps WOL for 5701 B2 chip.\r
3559 \r
3560 v2.0.6 (06/22/01)\r
3561 \r
3562 - Improved adaptive receive interrupt coalescing.\r
3563 - Added LED blinking ioctl.\r
3564 - Added support for new boards.\r
3565 - Fixed hang problem when cable is not attached.\r
3566 \r
3567 v2.0.5 (06/18/01)\r
3568 \r
3569 - Some performance improvements.\r
3570 - Added adaptive receive interrupt coalescing.\r
3571 - Preliminary release for IA64.\r
3572 \r
3573 v2.0.4 (06/01/01)\r
3574 \r
3575 - Fixed a problem with multiple cards using jumbo frames.\r
3576 \r
3577 v2.0.3 (05/22/01)\r
3578 \r
3579 - Fixed panic during hotplug.\r
3580 - Fixed RPM error on Mandrake.\r
3581 \r
3582 v2.0.2 (05/21/01)\r
3583 \r
3584 - Fixed a spin lock problem.\r
3585 \r
3586 v2.0.1 (05/18/01)\r
3587 \r
3588 - Fixed memory leak when unloading driver.\r
3589 \r
3590 v1.5.6 (05/11/01)\r
3591 \r
3592 - Added additional OEM support.\r
3593 - Added Wake-On-LAN support.\r
3594 \r
3595 v1.5.4 (05/04/01)\r
3596 \r
3597 - Fixed interrupt and TX hung problem on 5701.\r
3598 - Added OEM strings.\r
3599 \r
3600 v1.5.3 (04/26/01)\r
3601 \r
3602 - Fixed parameter defaults.\r
3603 - Added /proc filesystem reporting.\r
3604 \r
3605 v1.5.2 (04/18/01)\r
3606 \r
3607 - Fixed bug in transmit IP checksum.\r
3608 \r
3609 v1.5.1 (04/15/01)\r
3610 \r
3611 - Added scatter/gather, HIGHMEM DMA, and IP transmit checksum offload for the\r
3612   TUX kernel.\r
3613 - Added support of BCM5701.\r
3614 \r
3615 v1.5.0 (03/14/01)\r
3616 \r
3617 - Added Fibre transceiver support.\r
3618 \r
3619 v1.4.6 (02/14/01)\r
3620 \r
3621 - Fixed the problem of dropping VLAN tagged 802.2/802.3 frames.\r
3622 - Fixed Makefile to work in non Red Hat environments.\r
3623 - Fixed the problem of over-counting receive errors.\r
3624 \r
3625 v1.4.5 (01/31/01)\r
3626 \r
3627 - Added PCI-X support for BCM5700.\r
3628 - Fixed Jumbo frame problems by modifying some thresholds and increased\r
3629 Jumbo frame size to 9K.\r
3630 \r
3631 v1.4.4 (01/18/01)\r
3632 \r
3633 - Fixed the problem of transmit congestion during very heavy traffic in pre-\r
3634 2.4.0 kernels.\r
3635 \r
3636 v1.4.3 (01/10/01)\r
3637 \r
3638 - Changed driver to use new PCI DMA functions in 2.4 kernel.\r
3639 \r
3640 v1.4.2 (01/03/01)\r
3641 \r
3642 - Changed driver to use spin locks for SMP machines.\r
3643 - Added spin locks around PRIVATE ioctls for MII registers .\r
3644 \r
3645 v1.4.1 (12/26/00)\r
3646 \r
3647 - Made changes for B1 chips.\r
3648 \r
3649 v1.4.0 (12/19/00)\r
3650 \r
3651 - Made changes for 2.4.0 kernel.\r
3652 \r
3653 v1.3.8 (12/13/00)\r
3654 \r
3655 - Fixed the problem of setting a user assigned MAC address.\r
3656 - Added VLAN support for BASP.\r
3657 \r
3658 v1.3.7 (12/01/00)\r
3659 \r
3660 - Added code to handle BCM5401 B0 phy chips.\r
3661 \r
3662 v1.3.6 (11/22/00)\r
3663 \r
3664 - Fixed LED problems.\r
3665 \r
3666 v1.3.5 (11/21/00)\r
3667 \r
3668 - Fixed some flow control auto negotiation problems.\r
3669 \r
3670 v1.3.4 (11/17/00)\r
3671 \r
3672 - Fixed a problem of missing interrupts.\r
3673 - Resolved all fixed speed related problems.\r
3674 \r
3675 v1.3.3 (11/13/00)\r
3676 \r
3677 - Fixed the problem of memory allocation failure in some machines.\r
3678 \r
3679 v1.3.2 (11/09/00)\r
3680 \r
3681 - Made more changes regarding fixed speeds. Also removed manual selection\r
3682   of 1000 Mbps.\r
3683 - Made a SRPM package.\r
3684 \r
3685 v1.03b (10/31/00)\r
3686 \r
3687 - Fixed problems #452, #441, #364, and other speed related problems in the\r
3688   Lower Module.\r
3689 \r
3690 v1.03 (10/30/00)\r
3691 \r
3692 - Released Lower Module as tigon3.o.\r
3693 \r
3694 v1.02c (10/27/00)\r
3695 \r
3696 - Fixed the fixed speed problem in Lower Module.\r
3697 \r
3698 v1.02b (10/24/00)\r
3699 \r
3700 - Added new parameters for flow control settings.\r
3701 - Fixed problem with uninitialized statistics counters (problem #338).\r
3702 \r
3703 v1.02  (10/16/00)\r
3704 \r
3705 - Modified for B0 chips, should also work for other chips.\r
3706 - Reenabled TCP/UDP receive hardware checksums.\r
3707 \r
3708 v1.01b (10/09/00)\r
3709 \r
3710 - Changed driver to use pci* routines instead of pcibios* routines to obtain\r
3711   the correct IRQ on some MP machines.\r
3712 - Resolved Problems #253, #257.\r
3713 \r
3714 v1.01 (09/27/00)\r
3715 \r
3716 - Added statistics collection function.\r
3717 - Added jumbo frames support.\r
3718 - Added MII related ioctl calls.\r
3719 - Disabled UDP/TCP receive checksum offload to workaround a memory corruption\r
3720   problem in A1 chips.\r
3721 - Fixed interrupt sharing problem.\r
3722 \r
3723 v1.00 (09/13/00)\r
3724 \r
3725 -First release of the driver for BCM5700 A1 chips.\r
3726 \r