3 Broadcom BCM5700 Linux Driver
\r
9 Irvine, CA 92619-7013
\r
11 Copyright (c) 2000-2006 Broadcom Corporation
\r
15 v8.3.17b (February 21 2006)
\r
16 =========================
\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
25 Change : Updated trans_start with jiffies before calling
\r
26 netif_stop_queue to prevent false NETDEV WATCHDOG
\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
35 v8.3.16 (January 10 2006)
\r
36 =========================
\r
39 ECD13216 complete workaround for 5714/5715 fiber:
\r
40 During chip init set:
\r
43 To check link status read:
\r
44 0x460 bit 3 is set when link is established.
\r
47 v8.3.15 (December 16, 2005)
\r
48 ===========================
\r
51 Added support for 5714S and 5715S.
\r
54 v8.3.14 (November 02, 2005)
\r
55 ===========================
\r
58 1. Problem : (CQ14546) Montara A2 devices cannot write to ST flash
\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
69 Impact : This fix only impacts 5714 family of devices.
\r
72 v8.3.13 (October 28, 2005)
\r
73 ==========================
\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
86 v8.3.11 (October 20, 2005)
\r
87 ==========================
\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
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
133 v8.3.11 (October 18, 2005)
\r
134 ==========================
\r
136 Note: Removal of support for 5714S, 5715S, 5755, 5787 controllers.
\r
140 v8.3.10 (October 14, 2005)
\r
141 ==========================
\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
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
161 Impact : This change applies specifically to Redhat and Fedora OS's, and
\r
162 is independent of the device type.
\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
186 v8.3.9 (September 30, 2005)
\r
187 ===========================
\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
199 v8.3.8 (September 29, 2005)
\r
200 ===========================
\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
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
213 Note: Removed support for 5903F that was introducd in v8.3.2.
\r
215 v8.3.7 (September 27, 2005)
\r
216 ===========================
\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
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
248 v8.3.6 (September 22, 2005)
\r
249 ===========================
\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
256 Change :The 5714/5715 will not switch to VAUX power.
\r
257 Impact :5714/5715 controllers.
\r
259 2. Problem :CQ14119 Using 5714 fiber a linking loop occurs when restrictive
\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
268 v8.3.5 (September 19, 2005)
\r
269 ==========================
\r
272 1. Problem :CQ14063 parameter nic_tx_bd not getting set.
\r
273 Cause :5705 and later controllers do not support this
\r
275 Change :README.TXT was updated to include the description
\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
284 Impact :5780 SERDES only.
\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
292 v8.3.4 (September 15, 2005)
\r
293 ==========================
\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
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
324 v8.3.3 (September 7, 2005)
\r
325 ==========================
\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
337 2. Problem : 5714, 5715, and 5780 devices do not work with ST flash
\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
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
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
363 v8.3.2 (August 26, 2005)
\r
364 =======================
\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
370 Change : Changed code to allow fiber to be forced to 1000Mbs.
\r
371 Impact : All Serdes adapters.
\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
378 Change : Added missing include.
\r
383 Added support for 5903M and 5903F adapters.
\r
387 v8.3.1 (August 23, 2005)
\r
388 =======================
\r
391 1. Problem : CQ13369 Kernel panic occurs under stress with large 802.3ad
\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
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
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
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
446 Change : The driver checks the speed input correctly.
\r
447 Impact : All legacy serdes adapters can now be forced to 1000.
\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
452 Change : The driver does not display the jumbo packets counter.
\r
453 Impact : 5705 and new adapters will not display the counter.
\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
459 Change : A delay was put in the driver to allow better autonegotiation.
\r
460 Impact : 5780 Serdes only.
\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
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
477 v8.2.18 (August 1, 2005)
\r
478 ========================
\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
491 v8.2.17 (July 29, 2005)
\r
492 ======================
\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
504 v8.2.16 (July 27, 2005)
\r
505 ======================
\r
508 Added the skb_cloned_header check for tco support in 2.6.12 kernels.
\r
511 v8.2.15 (July 26, 2005)
\r
512 =======================
\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
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
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
533 v8.2.14 (July 21, 2005)
\r
534 =======================
\r
536 This version does not have support for 5714/5715 controllers.
\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
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
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
566 Impact : All msi supported drivers.
\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
573 v8.2.12 (July 20, 2005)
\r
574 =======================
\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
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
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
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
603 Max Read Byte Count Allowable DMA Read Watermark Values
\r
604 ------------------- -----------------------------------
\r
606 01 = 1024 bytes 0-5
\r
607 10 = 2048 bytes 0-7
\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
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
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
630 Enhancement: Added loopback mode support for testing.
\r
633 v8.2.11 (July 01, 2005)
\r
634 =======================
\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
644 v8.2.10 (July 01, 2005)
\r
645 =======================
\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
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
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
667 Change : Add code to properly construct speed advertisement
\r
668 strings for the 5780.
\r
672 v8.2.9 (June 28, 2005)
\r
673 =======================
\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
688 v8.2.8 (June 24, 2005)
\r
689 =======================
\r
693 1. Problem : CQ13202 Shasta C1 fails ethtool -t test and stops
\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
702 2. Problem : CQ13205 5714 fiber boards repeatedly display message
\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
711 v8.2.7 (June 21, 2005)
\r
712 =======================
\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
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
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
734 Impact : 5714s/5715s
\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
749 v8.2.6 (June 13, 2005)
\r
750 =======================
\r
754 1. Problem : CQ10262 iThe /proc/net/nicinfo filename does
\r
755 not match the device name in the output of
\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
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
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
780 Change : Detect if the status block pointer is NULL. If so,
\r
781 forgo any packet ring cleanups.
\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
797 Change : Modify the MM_IndicateStatus() function to only toggle
\r
798 the kernel queues if we are not suspended.
\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
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
816 Impact : Ldiag application only.
\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
825 v8.2.5 (May 20, 2005)
\r
826 =======================
\r
830 1. Problem : CQ12806 Random kernel panics with 5714A1
\r
832 CQ12827 Load/Unload with MSI enabled causes
\r
833 "nobody cared! (screaming interrupt)"
\r
835 Cause : MSI enable bit in MSI capability block
\r
836 is cleared during GRC reset.
\r
838 Change : Added software work-around to restore
\r
839 the state of this bit after a GRC reset
\r
844 v8.2.4 (May 16, 2005)
\r
845 =======================
\r
849 1. Change : Added support for new HP NC32Xi products.
\r
853 v8.2.3 (May 13, 2005)
\r
854 =======================
\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
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
887 v8.2.2 (May 10, 2005)
\r
888 =======================
\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
898 2.Problem : CQ12785 NMI seen using 5714.
\r
899 Cause : Same as above.
\r
901 3.Problem : CQ12786 5715 cannot get link.
\r
902 Cause : Sambe as above.
\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
910 Added msi support for 5780.
\r
913 v8.2.1 (April 29, 2005)
\r
914 =======================
\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
928 Impact : 5714/5715 should function as expected.
\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
937 v8.2.0 (April 22, 2005)
\r
938 ========================
\r
942 1. Change : Added support for 5714
\r
944 2. Change : CQ12081 Added MSI support for 5714.
\r
945 Impact : Only 5714.
\r
947 3. Change : Added support in Makefile for PPC and SuSE.
\r
948 Impact : Only in PPC machines.
\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
958 v8.1.55 (April 8, 2005)
\r
959 ========================
\r
961 Enhancement: Using the updated GPHY BIAS for 5752.
\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
968 Impact : 5752 has no noticable impact.
\r
971 v8.1.54 (April 8, 2005)
\r
972 =======================
\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
988 v8.1.53 (April 6, 2005)
\r
989 =======================
\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
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
1007 Impact : May no longer build on older PPC64 kernels.
\r
1010 v8.1.52 (April 1, 2005)
\r
1011 ============================
\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
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
1027 v8.1.51 (March 29, 2005)
\r
1028 ============================
\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
1037 Removed support for that 5714 ASIC revision.
\r
1039 v8.1.50 (March 16, 2005)
\r
1040 ============================
\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
1050 Added support for ASIC revisions 5752, 5714.
\r
1053 v8.1.11 (March 11, 2005)
\r
1054 ============================
\r
1058 Problem : CQ12400 Removing driver causes a kernel panic
\r
1059 Cause : The statistics timer was not being disabled at
\r
1061 Change : Disable statistics timer at shutdown.
\r
1065 v8.1.10 (March 10, 2005)
\r
1066 ============================
\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
1083 1. Problem : Users want command line parameters.
\r
1085 Change : All the parameters are accessible on the command line.
\r
1086 The code uses MODULE_PARAM for new kernels.
\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
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
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
1101 5. Change : Added mmiowb() in tx/rx paths.
\r
1103 6. Change : Changed makefile for netdump service build to not
\r
1104 rely on #define RED_HAT_LINUX_KERNEL.
\r
1106 7. Change : Added code to better scale the timer intervals
\r
1107 dependent on device.
\r
1110 v8.1.9 (March 1, 2005)
\r
1111 ============================
\r
1113 Support for ASIC revisions 5752, 5714 and 5715 was taken out of
\r
1117 v8.1.8 (February 28, 2005)
\r
1118 ============================
\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
1129 2. Problem : CQ12273 "MODULE_PARM is deprecated" messages are
\r
1130 displayed when compiling on Red Hat 4.0.
\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
1137 Change : The driver now uses ethtool for passing most parameters.
\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
1144 The only parameters accepted from the command line in
\r
1145 kernel versions 2.6.5 and later are:
\r
1152 3. Problem : CQ12278 Make driver errors on Suse 9.
\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
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
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
1171 The only parameters accepted from the command line in
\r
1172 kernel versions 2.6.5 and later are:
\r
1181 v8.1.7 (February 25, 2005)
\r
1182 ============================
\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
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
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
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
1216 5. Problem : CQ12209 5714 Fiber would not pass traffic with IPMI
\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
1224 6. Problem : CQ12166 Running ethtool -t fails register and memory
\r
1226 Cause : Test was performing tests for this device.
\r
1227 Change : Change code to use 5705 register and memory tests.
\r
1232 v8.1.6 (February 23, 2005)
\r
1233 ============================
\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
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
1252 1. Problem : CQ11650 Driver does not show ASF / IPMI version.
\r
1253 Change : Added code to extract ASF / IPMI version info from
\r
1259 v8.1.5 (February 18, 2005)
\r
1260 ============================
\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
1270 2. Problem : CQ11807 Driver will not pass traffic with
\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
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
1286 v8.1.4 (February 16, 2005)
\r
1287 ============================
\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
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
1310 v8.1.3 (February 15, 2005)
\r
1311 ============================
\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
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
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
1349 2. Problem : (CQ10828) The driver needs a way to isolate
\r
1351 Change : Added a NICE command to invoke loopback tests.
\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
1361 4. Problem : Added changed asic revs for 5714 family.
\r
1365 v8.1.2 (February 1, 2005)
\r
1366 ============================
\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
1373 Change : The disable_msi switch is declared within the same defines
\r
1374 as where it is used.
\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
1384 Enhancment: Added support for the 5751_C0.
\r
1387 v8.1.1 (February 1, 2005)
\r
1388 ============================
\r
1391 Change: MAC address is read from NVRAM on 5714s for now.
\r
1396 v8.1.0.5 (January 28, 2005)
\r
1397 ============================
\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
1406 Note: This is a preliminary driver for internal testing only.
\r
1409 8.1.0.4.msi (January 1, 2005)
\r
1410 ============================
\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
1419 Note: This is still a preliminary driver release for internal
\r
1424 v8.1.0.2 (December 16, 2004)
\r
1425 ============================
\r
1428 Change: PCI IDs were added to support the 5752
\r
1432 Note: This is a very preliminary and internal release for internal
\r
1437 v8.1.0.1 (December 14, 2004)
\r
1438 ============================
\r
1441 Change: PCI IDs were added to support the 5714 and 1515.
\r
1445 Note: This is an alpha release for support of the 5714 & 5715
\r
1448 v7.4.10 (December 3, 2004)
\r
1449 =========================
\r
1451 1. Problem : (CQ11042)ASF IP Monitoring cannot update config table.
\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
1457 Change : The driver now correctly uses the write protection
\r
1458 capabilities of the 5750 LOM NVRAM.
\r
1460 Impact : The driver can write to the NVRAM for 5750 LOMs.
\r
1464 v7.4.9 (December 1, 2004)
\r
1465 =========================
\r
1467 1. Problem : EEPROM_ExecuteCommand warnings showing up on the console.
\r
1469 Cause : Code incorrectly uses old EEPROM routines.
\r
1471 Change : Use new nvram routines when available.
\r
1473 Impact : Flash works as expected.
\r
1475 2. Problem : (CQ11472)Add PLL workaround.
\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
1481 Change : Added the workaroud to code, which is to keep the
\r
1482 power clks ticking when transitioning to d3 cold/hot.
\r
1484 Impact : D3 transition is robust.
\r
1487 v7.4.8 (November 24, 2004)
\r
1488 =========================
\r
1490 1. Problem : Vpd cannot be read on 5704 and other legacy devices.
\r
1492 Cause : Code incorrectly identifies flash type.
\r
1494 Change : Ignore bits 24 and 25 on Config1 for legacy devices.
\r
1496 Impact : Flash works as expected.
\r
1499 2. Problem : (CQ11402) Driver crashes while obtaining chip size on 5701.
\r
1501 Cause : Code uses incorrect read routine. Chipsize was not
\r
1502 initialized which caused a divide by zero.
\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
1508 Impact : EEPROM works as expected.
\r
1511 3. Problem : Firmware version not correct for 5721 devices.
\r
1513 Cause : Offset calculation error for Atmel parts.
\r
1515 Change : Fix calculation error.
\r
1517 Impact : Firmware version correct.
\r
1520 v7.4.7 (November 18, 2004)
\r
1521 =========================
\r
1523 1. Problem : Firmware version not displaying on BCM5753 devices.
\r
1525 Cause : Reads being performed before the NVRAM is locked.
\r
1527 Change : Lock the NVRAM before performing any reads.
\r
1532 2. Problem : (CQ11142) OOPS occuring on PPC750
\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
1538 Change : Reset pointers to zero after shutdown.
\r
1543 3. Problem : (CQ11115) Driver allows for invalid user adminstered
\r
1546 Cause : Driver did not check for valid address.
\r
1548 Change : Driver checks for valid MAC address.
\r
1553 4. Problem : (CQ10598) Driver occasionally cannot get link on certain
\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
1560 Change : The ISR was modified to ensure the interrupt being cleared
\r
1561 has been serviced properly.
\r
1566 5. Problem : (CQ11117) Need SERDES pre-emphasis support.
\r
1568 Cause : Certain 5704 designs have requested that certain bits be
\r
1569 set in SERDES configuration registers.
\r
1571 Change : Changes made use presupplied value for SERDES configuration.
\r
1579 1. Change : GPIO2 will not have an output for the 5753 family.
\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
1588 v7.4.6 (October 25, 2004)
\r
1589 =========================
\r
1591 1. Problem : (CQ11088) Remove the ability to set speed & duplex on the 150T
\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
1597 Change : Added code in b57um.c line 4316 to check for this nic and
\r
1598 always set it to auto.
\r
1603 2. Problem : (CQ11102) NMI occurs during load/unload w/ASF enabled.
\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
1608 Change : The driver does not driver GPIO2.
\r
1613 v7.4.5 (October 11, 2004)
\r
1614 ========================
\r
1617 Change: PCI IDs were added to support the 5753, 5753M, 5753F and 5789.
\r
1622 v7.4.4 (October 4, 2004)
\r
1623 =======================
\r
1625 1. Problem : (CQ10955) DELL 6650 kernel panic during negotiation
\r
1628 Cause : Spinlock deadlock during reset & link up.
\r
1630 Change : Removed the spinlock contention.
\r
1635 2. Problem : (CQ10436)Man page needs update.
\r
1637 Cause : bcm5700.ko was not noted in man page.
\r
1639 Change : Modified man page.
\r
1644 3. Problem : (CQ10396) Cannot ping when Dell PowerEdge 6650(#459)
\r
1645 is configured for 10half forced.
\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
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
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
1666 Change : Removed unnecessary PHY reset for 5411 PHY.
\r
1668 Impact : Forcing 5411 PHY to 10 half will function as expected.
\r
1672 v7.4.3 (August 26, 2004)
\r
1673 ======================
\r
1676 1. Problem : (CQ10437) Driver is installed in a directory other
\r
1677 than the directory noted in the README.TXT file.
\r
1679 Cause : Note omission.
\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
1686 Impact : Problem resolved.
\r
1688 2. Problem : (CQ10396) Cannot ping when Dell PowerEdge 6650(#459)
\r
1689 is configured for 10half forced.
\r
1691 Cause : 5411 PHY does not require a PHY reset before being
\r
1692 forced to 10 half.
\r
1694 Change : Removed unnecessary PHY reset for 5411 PHY.
\r
1696 Impact : Forcing 5411 PHY to 10 half will function as expected.
\r
1699 3. Problem : (CQ10540)Max value for "stats_coalesce_ticks" is
\r
1700 rejected in 2.6 kernels.
\r
1702 Cause : 2.6 kernels are using a different parameter interface
\r
1703 that limits the value range.
\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
1711 4. Problem : (CQ9804)5751 freezes in certain platforms under heavy
\r
1714 Cause : A logic bug in clearing interrupts caused this to occur.
\r
1715 See previous entry for CQ9804.
\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
1723 Enhancement: (CQ10355) Ethtool -i shows no value for "firmware-version"
\r
1725 Change : Added bootcode version value to Ethtool driver info structure.
\r
1732 v7.4.2 (July 29, 2004)
\r
1733 ======================
\r
1736 1. Problem:(CQ10695) System screen froze after third port.
\r
1738 Cause: Third port was pci and driver was treating it
\r
1739 as a pciexpress. Bug introduced v7.4.1.
\r
1741 Change:Driver checks for PCIE or PCI and then executes
\r
1742 PCIE code only on PCIE adapter.
\r
1744 Impact:Problem resolved.
\r
1746 2. Problem:(CQ10627)Remove 5751-A0 support.
\r
1748 Cause: 5751-A0 is not shipping.
\r
1750 Change:Driver checks for 5751 A0 then fails if found.
\r
1752 Impact:Driver will not load on 5751-A0
\r
1755 v7.4.1 (July 27, 2004)
\r
1756 ======================
\r
1759 1. Problem:(CQ10602) FSC 1899 system may freeze/reboot when bringing the
\r
1760 initerface up/down with ASF enabled.
\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
1766 Change: Delay was moved to immediately before enabling D3.
\r
1768 Impact: Driver will not freeze or reboot system.
\r
1770 2. Problem:(CQ10481)Driver displays gigabit speed on adapter
\r
1771 that only supports 10/100.
\r
1773 Cause: The Driver displayed support for 10/100/1000 link
\r
1774 do to an error in the code.
\r
1776 Change: Code changed to display correct link support
\r
1779 Impact: Driver displays correct supported link speeds.
\r
1782 v7.4.0 (July 12, 2004)
\r
1783 ======================
\r
1786 Change: Added extra delay after GRC reset to make the
\r
1787 firmware D3hot workaround in 3.29i effective.
\r
1793 1. Problem: (CQ10549) "BCM_DRV: command not found" when compiling
\r
1796 Cause: $(BCM_DRV) not substituted properly.
\r
1798 Change: Changed all $(BCM_DRV) to $BCM_DRV in bcm5700.spec.
\r
1802 2. Problem: (CQ10468) Driver not working properly in bridging environment
\r
1803 after changing mtu.
\r
1805 Cause: Promiscuous mode not preserved after changing mtu.
\r
1807 Change: Fixed by setting the rx mode after mtu change.
\r
1811 3. Problem: (CQ10557) Kernel panics with 17 or more devices installed.
\r
1813 Cause: Driver parameters checking logic assumes maximum of 16
\r
1816 Change: Added logic to skip parameter processing if the device
\r
1817 index is higher than or equal to 16.
\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
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
1826 Cause: Calling kmalloc with GFP_KERNEL from invalid context.
\r
1828 Change: Changed to GFP_ATOMIC.
\r
1832 v7.3.5 (June 23, 2004)
\r
1833 ======================
\r
1836 1. Problem: (CQ10407) Linux 2.6 kernel fails to get IP address using DHCP
\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
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
1859 v7.3.4 (June 18, 2004)
\r
1860 ======================
\r
1863 1. Problem: (CQ10312) System Hangs when loading and unloading the driver
\r
1864 continuously with 5705.
\r
1866 Cause: Hang was caused by infinite retry soon after writing to register
\r
1867 0x74 to speed up the core clock.
\r
1869 Change: Implemented a 2-step sequence to speed up the core clock on
\r
1870 5705 and shasta devices.
\r
1874 2. Problem: System crashes occasionally when loading and unloading the
\r
1877 Cause: System may be unable to map memory.
\r
1879 Change: Added error check on memory mapping and gracefully fail
\r
1884 3. Problem: (CQ10364) System hangs when issuing reset from b57ldiag.
\r
1886 Cause: Deadlock when trying to get a spinlock.
\r
1888 Change: Removed the deadlock.
\r
1892 4. Problem: (CQ10379) Driver allows jumbo frames on 5751/5721 devices
\r
1895 Cause: Missing validity check for mtu on shasta devices.
\r
1897 Change: Added checks.
\r
1901 5. Problem: (CQ#10110) ethtool -d still hangs on some systems.
\r
1903 Cause: Chip does not respond to reserved registers, causing
\r
1904 some machines to hang.
\r
1906 Change: More changes to only dump the valid registers in the
\r
1913 1. Change: Added Capacitive coupling phy support.
\r
1915 v7.3.3 (June 03, 2004)
\r
1916 ======================
\r
1919 1. Change: Added support for 5789.
\r
1923 1. Problem: 5704 may run on Vaux during normal operations.
\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
1929 Change: Corrected the GPIO programming sequence to take
\r
1930 both ports of the 5704 into account.
\r
1934 2. Problem: NC150T not identified.
\r
1936 Change: Added OEM string.
\r
1940 3. Problem: (CQ #10340) NC1020 identified as NC7722.
\r
1942 Cause: String not updated.
\r
1944 Change: Updated OEM string.
\r
1948 v7.3.2 (June 03, 2004)
\r
1949 ======================
\r
1952 1. Change: Added support for 5751F.
\r
1956 1. Problem: (CQ #10145) IBM PPC64 PBlade crashes after many hours.
\r
1958 Cause: Speculative execution path reading an old descriptor, causing
\r
1959 the wrong buffer to be freed.
\r
1961 Change: Added read memory barriers to prevent this.
\r
1965 2. Problem: 5701 does not link up intermittently.
\r
1967 Cause: Concurrent register writes when adding multicast address and
\r
1968 sevicing link change interrupt. This is a chip bug.
\r
1970 Change: Added locking to prevent this one case of concurrent register
\r
1975 v7.3.1 (May 27, 2004)
\r
1976 =====================
\r
1979 1. Change: Added workaround for 5750 A3 to disable the CPU after
\r
1984 v7.3.0 (May 21, 2004)
\r
1985 =====================
\r
1988 1. Change: Added support for 5751M devices.
\r
1992 1. Problem: (CQ#10109) CIOBE hangs machine after many hours of heavy traffic.
\r
1994 Cause: New hw errata on 5704 PCIX multi-split mode.
\r
1996 Change: Disabled multi-split on CIOBE.
\r
2000 2. Problem: (CQ#10110) ethtool -d hangs on some systems.
\r
2002 Cause: Chip does not respond to reserved registers, causing
\r
2003 some machines to hang.
\r
2005 Change: Changed code to only dump the valis registers in the
\r
2010 3. Problem: Driver contains unresolved genapic symbol when compiled
\r
2013 Cause: genapic may be referenced by hard_smp_processor_id.
\r
2015 Change: Removed hard_smp_processor_id which is purely for
\r
2016 debugging and not needed.
\r
2020 3. Problem: (CQ#9959) ethtool returns wrong flow control settings.
\r
2026 v7.2.24 (April 23, 2004)
\r
2027 ========================
\r
2030 1. Change: (CQ #9955) Remove support for 5751M devices.
\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
2041 1. Problem: ASF doesn't run properly after ifdown on 5750 chips.
\r
2043 Cause: Driver sets device to run on slow core clock during
\r
2044 shutdown. ASF cannot run on slow clock.
\r
2046 Change: Added check to skip slowing the core clock if ASF
\r
2047 is running on 5750 chips.
\r
2051 2. Problem: TSO doesn't work on non-x86 architectures.
\r
2053 Cause: U32 misdefined.
\r
2057 v7.2.23 (April 19, 2004)
\r
2058 ========================
\r
2061 1. Problem: (CQ #9782) ethtool link test fails on 5703 intermittently.
\r
2063 Cause: Not waiting long enough for link up.
\r
2065 Change: Added 3 more seconds if copper link is still down.
\r
2071 1. Change: Added PHY workaround for 5705/5750 to improve bit error rate.
\r
2075 v7.2.22 (April 14, 2004)
\r
2076 ========================
\r
2079 1. Problem: (CQ #9804) PCIE system freezes under heavy stress.
\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
2085 Change: Made changes to the logic that reenables rx interrupt
\r
2086 in the poll routine. Fixed the tx timeout reset routine.
\r
2090 2. Problem: (CQ #9836) 5700 LOMs not recognising link down.
\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
2098 Change: Simple change in the reset logic.
\r
2103 v7.2.21 (April 08, 2004)
\r
2104 =======================
\r
2107 1. Problem: (CQ #9645) Unable to pass traffic on 5701 with long cable.
\r
2109 Cause: Phy register 0x18 shadow 0 not set correctly.
\r
2111 Change: Changed the code to do read-modify-write on that register
\r
2112 to preserve the contents of that register.
\r
2116 v7.2.20 (Mar. 31, 2004)
\r
2117 =======================
\r
2120 1. Problem: Poor performance in NAPI mode in certain test cases.
\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
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
2134 2. Problem: Driver unable to identify the PHY intermittently.
\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
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
2147 3. Problem: LEDs not working perfectly on shasta devices.
\r
2149 Cause: Some new shasta LED modes require driver to update
\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
2158 3. Problem: Driver does not compile on kernels not supporting
\r
2161 Cause: Minor syntax error.
\r
2165 1. Change: Added a new OEM ID and string.
\r
2167 v7.2.19 (Mar. 11, 2004)
\r
2168 =======================
\r
2171 1. Problem: (CQ9188) Gigabit link light still does not work on 5751.
\r
2173 Cause: bug in implementation.
\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
2180 2. Problem: CRC errors reported on 5700 using 5411 PHYs.
\r
2182 Cause: PHY register 0x18 shadow register 0 not programmed
\r
2185 Change: Fixed code to use the same setting as 5401.
\r
2189 3. Change: Enabled hw bug fix for 5703/04 PCI-X write DMA bug.
\r
2193 4. Problem: ethtool -t fails nvram test in big endian systems.
\r
2195 Cause: Endian bug in calculating CRC in nvram.
\r
2197 Change: Simple fix by swapping data.
\r
2203 1. Change: (CQ8586) Added some missing stats counters to
\r
2208 v7.2.18 (Feb. 24, 2004)
\r
2209 =======================
\r
2212 1. Change: Changed driver for 5751 A1 by disabling PCIE reset
\r
2217 2. Change: Changed driver for 5751 A1 by enabing PCIE data
\r
2218 fifo bug fix in the chip.
\r
2222 v7.2.16 (Feb. 20, 2004)
\r
2223 =======================
\r
2226 1. Problem: (CQ9188) Gigabit link light does not work on 5751.
\r
2228 Cause: Driver did not support the new shasta LED modes.
\r
2230 Change: Added support for the new shasta LED modes.
\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
2238 Cause: The 5401 PHY requires a long delay after PHY reset
\r
2239 before the PHY can be confiured.
\r
2241 Change: Changed code to skip PHY reset if it is 5401.
\r
2245 3. Problem: (CQ9430) RPM build errors occur on 2.6.x kernels.
\r
2247 Cause: spec file was not handling 2.6 kernels with the new
\r
2248 kernel build mechanism properly.
\r
2250 Change: Modified the spec file.
\r
2254 4. Problem: (CQ9410 & CQ9393) Delayed link report to MII and
\r
2255 ETHTOOL ioctls causing problems.
\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
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
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
2269 v7.2.15 (Feb. 12, 2004)
\r
2270 =======================
\r
2273 1. Change: Added diagnostics functions to support ethtool -t.
\r
2277 v7.2.12 (Feb. 05, 2004)
\r
2278 =======================
\r
2281 1. Problem: Tx timeout reset may crash when hardware is unreliable.
\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
2287 Change: Changed logic to not rely on the hw rx consumer index.
\r
2291 2. Problem: Driver not running in NAPI mode
\r
2293 Cause: see Problem #1 fixed in 7.2.10.
\r
2295 Change: Fixed NAPI code so that it will also run in single-threaded
\r
2299 3. Problem: (CQ 9293) Driver hangs intermittently during ifdown.
\r
2301 Cause: Writing to Nic's memory when memory arbiter is disabled.
\r
2303 Change: Changed code to write firmware mailbox signatures before
\r
2304 memory arbiter is disabled.
\r
2308 4. Problem: PHY's extended packet length bit not set when using
\r
2311 Change: Added change to always set this bit on NICs that
\r
2312 support jumbo frames.
\r
2314 Impact: None, but testing required.
\r
2316 5. Problem: Posted writes not flushed before delay loop, causing
\r
2317 the delay to be less than intended in duration.
\r
2319 Change: Added register read back to flush the writes before delay
\r
2320 loop, where appropriate.
\r
2324 6. Problem: (CQ 9263) ethtool -a returning wrong autonegotiation
\r
2329 Change: Minor change.
\r
2335 1. Change: Implemented TSO for 5788 and changed name to NetLink
\r
2339 v7.2.11 (Jan. 21, 2004)
\r
2340 =======================
\r
2343 1. Problem: (CQ#9207) ASF does not work when driver is loaded on 5751.
\r
2345 Cause: Driver/ASF handshake problem caused by a long delay after
\r
2348 Change: Added the new Driver/ASF handshake mechanism.
\r
2352 2. Problem: (CQ#9179) Driver allows jumbo frames on 575x.
\r
2354 Change: Minor change to disallow setting jumbo frames on 575x.
\r
2358 v7.2.10 (Jan. 13, 2004)
\r
2359 =======================
\r
2362 1. Problem: (CQ#9181) Panic on IBM PCIE system running chariot.
\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
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
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
2382 2. Problem: ASF does not run on 5751.
\r
2384 Cause: FTQ reset after chip reset.
\r
2386 Change: Removed FTQ reset.
\r
2388 Impact: Should be none, but need to be tested on all 570x chips.
\r
2390 3. Problem: (CQ#9170) NMI occurs intermittently when doing ifconfig down.
\r
2392 Cause: HW bug when programming 5751 to low power mode.
\r
2394 Change: Removed low power mode setting for 5751.
\r
2396 Impact: Wol will not work on 5751.
\r
2398 4. Change: Changed delay after GRC reset to 500 msec.
\r
2400 5. Change: Changed shasta_smp_fix to 1 (enabled) be default.
\r
2402 v7.2.9 (Jan. 09, 2004)
\r
2403 ======================
\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
2412 v7.2.8 (Jan. 05, 2004)
\r
2413 ======================
\r
2416 1. Problem: (CQ#9096) Data corruption with large ping packets.
\r
2418 Cause: Mbuf pool start and length registers overwritten by
\r
2421 Change: Fixed code so that the 2 mbuf registers will not be
\r
2422 overwritten for the 5750.
\r
2426 2. Change: Added register read back and single-threaded workaround
\r
2429 Impact: Lower performance.
\r
2431 v7.2.7 (Dec. 24, 2003)
\r
2432 ======================
\r
2435 1. Change: Changed delay to 300msec after GRC reset for 5751/5721 A0 PCI
\r
2440 v7.2.6 (Dec. 10, 2003)
\r
2441 ======================
\r
2444 1. Problem: Driver does not receive interrupts on some PCI
\r
2447 Cause: A register bit could not be set using config. cycles.
\r
2449 Change: Changed to memory write cycle to write the register.
\r
2453 v7.2.5 (Dec. 02, 2003)
\r
2454 ======================
\r
2457 1. Problem: Driver crashes during transmit timeout reset.
\r
2459 Cause: Driver was calling schedule_timeout which is a
\r
2460 blocking function and cannot be called in interrupt
\r
2463 Change: Changed to udelay.
\r
2467 v7.2.4 (Nov. 24, 2003)
\r
2468 ======================
\r
2471 1. Problem: (CQ #8908) System freezes when 5751 PCI Express device
\r
2474 Cause: PCI Express device was not detected properly.
\r
2476 Change: Corrected the PCI Express detection logic.
\r
2480 2. Problem: (CQ #8910) PCI_Bus_Speed is misreported for PCI Express
\r
2483 Cause: Old logic did not take PCI Express into account.
\r
2485 Change: Made simple change to account for PCI Express device.
\r
2489 v7.2.1 (Nov. 18, 2003)
\r
2490 ======================
\r
2494 1. Change: Made some changes to make 5751 work on PCIE 1.0 systems.
\r
2496 v7.2.0 (Nov. 17, 2003)
\r
2497 ======================
\r
2501 1. Change: Added support for 575x and 572x PCI and PCIE chips.
\r
2503 v7.1.21 (Jan. 05, 2004)
\r
2504 =======================
\r
2507 1. Problem: ASF stops working after driver is loaded if PXE ran
\r
2508 and did not shutdown properly.
\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
2517 Change: Changed the wait time to cover the worst case
\r
2518 serial eprom boot code load time plus a safety margin.
\r
2522 2. Problem: (CQ#8890) Receive errors on 5700 NICs.
\r
2524 Cause: Incorrect PHY settings on the 5401 introduced in 6.2.18
\r
2525 when PHY loopback was implemented.
\r
2527 Change: Fixed the PHY settings.
\r
2531 3. Problem: Driver does not compile on some 2.4 kernels.
\r
2533 Cause: Driver not compatible with some older ethtool.h files.
\r
2535 Change: Added #ifdef to fix the problem.
\r
2539 v7.1.20 (Dec. 24, 2003)
\r
2540 ======================
\r
2544 1. Problem: ASF stops working after driver is loaded if PXE is enabled.
\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
2550 Change: Fixed the flawed logic.
\r
2554 v7.1.19 (Dec. 10, 2003)
\r
2555 ======================
\r
2559 1. Problem: (CQ #8961) Interrupt test fails intermitently.
\r
2561 Cause: A race condition between the ioctl and interrupt
\r
2562 service routine can cause the interrupt test to fail.
\r
2564 Change: Added code to regenerate the interrupt in the loop
\r
2565 that waits for interrupt to complete.
\r
2571 1. Change: Changed Makefile to use ppc64 compiler and linker
\r
2572 if compiling on ppc64 environment.
\r
2576 v7.1.18 (Nov. 21, 2003)
\r
2577 ======================
\r
2581 1. Problem: IPMI firmware receiving VLAN tagged packets stops working
\r
2582 after ifconfig up.
\r
2584 Cause: Driver sets NIC to keep VLAN tags by default.
\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
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
2594 2. Problem: IPMI firmware stops working after ifconfig up on PPC64 machine.
\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
2600 Change: Rearranged some code in LM_ResetAdapter to get around the problem.
\r
2604 3. Problem: Driver does not load if PXE ran previously and did not shutdown
\r
2607 Cause: Driver does not work properly as it expects the chip to be
\r
2608 disabled during reset.
\r
2610 Change: Added code to check if the chip is enabled and reset it
\r
2611 if necessary before setup.
\r
2615 4. Problem: Driver takes a long time to reset if the bootcode is
\r
2616 disabled on the PPC.
\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
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
2629 1. Change: Added ETHTOOL_GRINGPARAM ioctl
\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
2638 v7.1.11 (Nov. 05, 2003)
\r
2639 ======================
\r
2643 1. Problem: Running b57ldiag on PPC system crashes after a while.
\r
2645 Cause: PCI addresses not properly unmapped during diagnostics
\r
2646 suspend operation.
\r
2648 Change: Added code to unmap PCI addresses in rx buffers during
\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
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
2663 Change: Changed code to allow driver to load with warnings when
\r
2664 even when NVRAM cannot be accessed.
\r
2666 Impact: When boot code is blank, driver will load with a bogus
\r
2669 2. Problem: Driver cannot reliably read/write NVRAM when NVRAM
\r
2670 is corrupted or blank.
\r
2672 Cause: When bootcode is not running, the NVRAM interface state
\r
2673 machines will get locked up.
\r
2675 Change: Added code to reset the NVRAM interfaces of both
\r
2680 3. Change: Added ioctl to get and clear statistics block.
\r
2684 v7.1.9 (Nov. 03, 2003)
\r
2685 ======================
\r
2689 1. Problem: Driver does not load on 5704S devices if the eeprom is
\r
2692 Cause: 5704S defaults to an unsupported device ID when eeprom
\r
2695 Change: Added the default 5704S device ID.
\r
2700 v7.1.8 (Oct. 31, 2003)
\r
2701 ======================
\r
2705 1. Problem: ASF/IPMI stops passing traffic after driver is loaded.
\r
2707 Cause: GRC mode control register overwritten when driver loads.
\r
2709 Change: Changed driver to preserve the relevant bit in the GRC
\r
2710 mode control register during driver load.
\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
2723 v7.1.6 (Oct. 27, 2003)
\r
2724 ======================
\r
2728 1. Problem: (CQ #8732) Unloading bcm5700.ko in 2.6 kernels causes
\r
2729 segmentation fault.
\r
2731 Cause: Driver uses init_etherdev which has been deprecated by
\r
2732 alloc_etherdev and register_netdev.
\r
2734 Change: Changed to use the new APIs in 2.6 kernels.
\r
2738 v7.1.5 (Oct. 21, 2003)
\r
2739 ======================
\r
2743 1. Problem: Driver does not compile on 2.5+ kernels.
\r
2745 Cause: mem_map_reserve/mem_unmap_reserve no longer defined in 2.5+
\r
2748 Change: Changed to SetPageReserved/ClearPageReserved (More testing
\r
2749 is needed to make sure this works on 2.5+ kernels)
\r
2751 Impact: No impact on normal driver operations. The memory
\r
2752 allocation ioctl that supports diagnostics may be impacted.
\r
2754 v7.1.4 (Oct. 17, 2003)
\r
2755 ======================
\r
2759 1. Change: Added memory allocation ioctl to allow user apps to mmap it
\r
2766 1. Problem: Driver does not load on ia64 with register_ioctl32_conversion
\r
2769 Cause: register_ioctl32_conversion not defined for ia64.
\r
2771 Change: Removed this routine for ia64.
\r
2775 v7.1.2 (Oct. 13, 2003)
\r
2776 ======================
\r
2780 1. Change: Added OEM string.
\r
2784 v7.1.1 (Oct. 07, 2003)
\r
2785 ======================
\r
2789 1. Change: Added a few more diagnostics ioctl commands.
\r
2793 2. Change: (CQ #8428) Added nic_tx_bd parameter.
\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
2803 4. Problem: (CQ #8469) Mandrake 9.1 has new module path.
\r
2805 Change: Modified Makefile to install driver in the new 3rdparty path.
\r
2809 5. Problem: (CQ #8438) Some parameters do not assume default values
\r
2812 Cause: When running in NAPI mode, some coalescing parameters have
\r
2813 different default values.
\r
2815 Change: Updated documentation and man page.
\r
2820 v7.1.0 (Sep. 22, 2003)
\r
2821 ======================
\r
2825 1. Problem: SIOCNICE ioctl does not work in 64-bit systems when
\r
2826 the calling application is 32-bit.
\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
2831 Change: Added 32-bit ioctl conversion routine to handle the
\r
2832 proper conversion.
\r
2838 1. Problem: Ethtool -e does not output the same data on big
\r
2839 and little endian systems.
\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
2847 2. Change: Added support for 5705F.
\r
2851 v7.0.0 (Aug. 14, 2003)
\r
2852 ======================
\r
2856 1. Problem: Phy ADC and gamma fix not applied properly to all
\r
2857 relevant PHY cores.
\r
2859 Change: Made appropriate changes to apply the fix to the
\r
2860 relevant PHYs after PHY reset.
\r
2862 2. Problem: 5704 SerDes drive transmission level not set properly.
\r
2864 Change: Changed 5704 SerDes' drive transmission level to 1.2V.
\r
2866 v6.2.20 (Aug. 08, 2003)
\r
2867 =======================
\r
2871 1. Problem: (CQ #8275) 5704B0 NICs not working properly on HP rx2600
\r
2874 Cause: Problem in one of the hardware fixes in 5704 B0.
\r
2876 Change: Disable the h/w fix.
\r
2880 v6.2.19 (July 31, 2003)
\r
2881 =======================
\r
2885 1. Problem: Repeated ifup/ifdown hangs systems using iommu's.
\r
2887 Cause: Rx buffers not properly unmapped during ifdown.
\r
2889 Change: Fixed driver to unmap all buffers during ifdown.
\r
2893 2. Problem: (CQ# 8232) Copper NICs drop packets when connected
\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
2900 Change: Fixed the phy register setting.
\r
2906 1. Problem: Not setting up dma mask (pci_set_dma_mask) according to
\r
2907 Documentation/DMA-mapping.txt.
\r
2909 Change: Made the required changes when calling pci_set_dma_mask.
\r
2913 2. Problem: Driver does not restore line speed settings after
\r
2914 external loopback.
\r
2916 Change: Added code to save line_speed settings before ext.
\r
2917 loopback and to restore the settings afterward.
\r
2921 3. Problem: Makefile does not compile driver properly on 2.5+ kernels.
\r
2923 Change: Modified Makefile to support 2.4 anf 2.5+ kernels
\r
2924 transparently. (More work needs to be done)
\r
2928 v6.2.18 (July 25, 2003)
\r
2929 =======================
\r
2933 1. Problem: TSO doesn't work on ia64 and big endian machines.
\r
2935 Cause: U32 typedef as unsigned long and TSO firmware was not
\r
2936 downloaded properly on big endian machines.
\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
2946 1. Problem: TSO performance slightly below (< 10%) non-TSO
\r
2947 performance on 5703/5704.
\r
2949 Change: Optimized firmware to narrow the performance gap.
\r
2953 2. Problem: (CQ #8184) Driver limits the number of Multicast addresses
\r
2956 Change: Changed scheme to allow unlimited Multicast addresses by
\r
2957 by just keeping the Hash values.
\r
2961 3. Problem: (CQ #7822) Driver does not support ETHTOOL_GSTRINGS,
\r
2962 ETHTOOL_GSTATS, ETHTOOL_GREGS, ETHTOOL_PHYS_ID ioctls.
\r
2964 Change: Added these ioctls.
\r
2968 4. Problem: Driver does not support 5704 B0.
\r
2970 Change: Added support for 5704 B0.
\r
2974 v6.2.17 (July 14, 2003)
\r
2975 =======================
\r
2979 1. Problem: (CQ8125) ethtool -e hangs system
\r
2981 Cause: ethtool tries to read 1Mbytes of data from the slow
\r
2984 Change: Changed maximum size of nvram to 128K and added a 1K
\r
2985 limit to ETHTOOL_GEEPROM ioctl.
\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
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
2996 Change: Made the necessary change in the ISR.
\r
2998 Impact: None. Still compatible with 2.4 and older kernels.
\r
3000 v6.2.16 (July 11, 2003)
\r
3001 =======================
\r
3005 1. Problem: Link polling interval for 5703S NICs is too long.
\r
3007 Change: Decreased the link polling interval to 1/4 second.
\r
3011 v6.2.15 (July 10, 2003)
\r
3012 =======================
\r
3016 1. Problem: (CQ7987) Blade NIC link toggles up and down under network
\r
3019 Cause: PCS SYNC signal appears to be unstable in some cases
\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
3028 Impact: May slightly affect link change/autoneg behavior.
\r
3030 v6.2.14 (July 01, 2003)
\r
3031 =======================
\r
3035 1. Problem: Driver panics when loading on 2.4.20-18.7 RH kernel.
\r
3037 Cause: Makefile compiles driver with kgcc, making the driver
\r
3038 incompatible with the kernel that was compiled with gcc.
\r
3040 Change: Modified Makefile to choose kgcc only if the kernel
\r
3041 was compiled with kgcc.
\r
3045 2. Problem: Link error when compiling driver into kernel with
\r
3046 CONFIG_HOTPLUG not defined.
\r
3048 Cause: __devexit_p not used in the bcm5700_remove_one pointer.
\r
3050 Change: Added __devexit_p for the bcm5700_remove_one pointer.
\r
3054 v6.2.11 (May 16, 2003)
\r
3055 ======================
\r
3059 1. Problem: CQ#7791 Driver cannot consistently lease DHCP address.
\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
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
3073 Impact: ifup always proceeds with DHCP request whether link is up
\r
3076 v6.2.7 (May 14, 2003)
\r
3077 =====================
\r
3081 1. Problem: Driver does not have OEM strings for some 5703 B0 NICs.
\r
3083 Change: Added OEM sub IDs and description strings.
\r
3086 v6.2.6 (May 09, 2003)
\r
3087 =======================
\r
3091 1. Problem: Driver does not support 5901 A2/A3.
\r
3093 Change: Added support for 5901 A2/A3.
\r
3096 v6.2.5 (May 05, 2003)
\r
3097 =======================
\r
3101 1. Problem: Driver intermittently won't load when ASF is enabled.
\r
3103 Cause: Driver's init function's PHY routines contend with ASF.
\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
3111 1. Problem: Driver does not support 5901.
\r
3113 Change: Added support for 5901.
\r
3115 v6.2.4 (April 29, 2003)
\r
3116 =======================
\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
3123 Cause: Hardware bug in the PHY core. Probability of lockup is
\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
3131 v6.2.3 (April 18, 2003)
\r
3132 =======================
\r
3136 1. Problem: (CQ #7518) Using ethtool to set speed before ifup crashes
\r
3137 the system when using fiber NICs.
\r
3139 Cause: ethtool ioctl may access the status block which is not
\r
3140 initialized before ifup.
\r
3142 Change: Added check before proceeding with some ethtool ioctls.
\r
3144 Impact: Only impact certain ethtool commands.
\r
3147 2. Problem: (CQ #7577) Cannot receive traffic in some rare situations
\r
3148 after loading the driver.
\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
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
3160 Impact: Receive code path in NAPI mode.
\r
3163 3. Problem: ethtool -r (restart autoneg) does not work on 5704S.
\r
3165 Cause: LM_SetupPhy does not restart autoneg if autoneg is already
\r
3168 Change: Added code to first disable autoneg and then reneable it.
\r
3170 Impact: Only affects ethtool -r for fiber NICs.
\r
3173 4. Problem: In some extremely rare situations, 5704 Copper NICs
\r
3174 may not link up after a PHY reset.
\r
3176 Cause: On some 5704 PHY cores, there is a small probability of
\r
3177 lock up after a PHY reset.
\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
3182 Impact: The added lock up detection and recovery code affects
\r
3183 driver reset and link down events where PHY resets are
\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
3199 - Added support for 5788.
\r
3200 - Changed locking functions into macros to avoid passing the flags.
\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
3209 - Fixed the problem of T3_CHIP_ID_5705_A2 not defined in tigon3.h
\r
3213 - Fixed some minor bugs in the adaptive coalescing logic.
\r
3217 - Fixed another ASF problem that occurred when WOL was disabled in firmware
\r
3218 but enabled in the driver.
\r
3220 - Added new device IDs for 5705 A2/A3 and made necessary changes to support
\r
3223 v5.0.22 (02/07/03)
\r
3225 - Fixed the problem of ASF malfunction when the device is shutdown.
\r
3227 v5.0.21 (02/06/03)
\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
3233 v5.0.20 (02/05/03)
\r
3235 - Fixed a bad IP checksum problem in the 5702/03/04 TSO firmware.
\r
3237 v5.0.19 (01/23/03)
\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
3246 v5.0.17 (01/10/03)
\r
3248 - Made changes for 5705 A2.
\r
3249 - Added autoneg. workaround for 5704S.
\r
3251 v5.0.16 (01/03/03)
\r
3253 - Fixed the hang problem on 5700 during ifdown.
\r
3255 v5.0.15 (01/03/03)
\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
3261 v5.0.14 (12/19/02)
\r
3263 - Made flow control work better.
\r
3264 - Added 10Mbps limit for 5704 WOL.
\r
3265 - Removed 5901 and 5705MFE support.
\r
3267 v5.0.12 (12/12/02)
\r
3269 - Added diagnostics ioctls.
\r
3270 - Enabled flow control by default.
\r
3272 v5.0.11 (12/06/02)
\r
3274 - Fixed data corruption problem on 5705 with TSO enabled.
\r
3275 - Fixed 5701 lockup during initialization.
\r
3277 v5.0.10 (11/20/02)
\r
3279 - Added support for 5705MFE and 5901.
\r
3280 - Added TSO for 5705 A1.
\r
3281 - Fixed ifconfig hang on Intel McKinley.
\r
3285 - Made changes for 5705 A1 chips.
\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
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
3302 - Fixed problem of 5704S not linking up.
\r
3303 - Added code to support autoneg in 5704S hardware.
\r
3307 - Fine-tuned some parameters for improved performance.
\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
3316 v3.0.12 (08/22/02)
\r
3318 - Fixed the problem of not loading on CIOBE A1.
\r
3319 - Fixed intermittent hang problem when configuring 802.1q VLAN.
\r
3321 v3.0.11 (08/21/02)
\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
3327 v3.0.10 (08/07/02)
\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
3335 - Added support for 5705.
\r
3339 - Fixed VLAN problem with BASP.
\r
3340 - Added new 5704 IDs.
\r
3341 - Added support for 5702FE.
\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
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
3361 - Fixed occasional hang during load and unload.
\r
3362 - Fixed non-zero statistics when stats_coalesce_ticks is 0.
\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
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
3379 - Fixed a bug on PCIX systems.
\r
3383 - Added workaround for Intel ICH and ICH0 chipsets.
\r
3384 - Fixed 5704 related problems.
\r
3388 - Added 5704 support
\r
3389 - Reduced some overhead in the upper/lower driver interface.
\r
3391 v2.2.19 (04/10/02)
\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
3397 v2.2.18 (04/03/02)
\r
3399 - Added new OEM subsystem IDs.
\r
3400 - Fixed some ethtool problems.
\r
3402 v2.2.17 (04/02/02)
\r
3404 - Adjusted some delay loops to avoid hangs during intermittent failures.
\r
3408 - Special version with external memory and Mini ring support.
\r
3410 v2.2.12 (03/27/02)
\r
3412 - Minor fix for some fiber related issues.
\r
3414 v2.2.11 (03/23/02)
\r
3416 - Adjusted fiber autoneg scheme to be consistent with other Broadcom
\r
3419 v2.2.10 (03/21/02)
\r
3421 - Changed Fiber LED to software control.
\r
3422 - Fixed 4 GByte boundary check for 5700.
\r
3426 - Fixed a hang problem on 5703S with cable disconnected.
\r
3430 - More changes to fiber autonegotiation - interrupt with polling backup
\r
3431 for fiber link changes.
\r
3435 - Made some changes to autonegotiation of fiber.
\r
3439 - Added fix for 5703S.
\r
3440 - Improved adaptive interrupt coalescing.
\r
3441 - Fixed a problem in WOL.
\r
3445 - Fixed a big endian problem.
\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
3455 - Fixed EEPROM corruption during repeated load/unload of the driver.
\r
3456 - Changed driver to use polling for fiber link changes.
\r
3460 - Increased eeprom timing delays for slower clocks.
\r
3464 - First release for 5702/5703 A1.
\r
3466 v2.0.34 (01/04/02)
\r
3468 - Fixed data corruption problem on PCIX systems under heavy traffic.
\r
3470 v2.0.32 (01/02/02)
\r
3474 v2.0.31 (12/14/01)
\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
3481 v2.0.28 (11/05/01)
\r
3483 - Added SIOCETHTOOL ioctl support.
\r
3485 v2.0.27 (10/26/01)
\r
3487 - Fixed a link up problem for an OEM LOM.
\r
3489 v2.0.26 (10/25/01)
\r
3491 - Added 5702 support.
\r
3493 v2.0.25 (10/22/01)
\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
3498 v2.0.24 (09/19/01)
\r
3500 - Fixed intermittent link failures.
\r
3502 v2.0.21 (09/14/01)
\r
3504 - Fixed zero copy failure.
\r
3506 v2.0.19 (09/11/01)
\r
3508 - Fixed the problem of over reporting CRC errors.
\r
3509 - Fixed the problem of late collisions in 1000Mbps half duplex.
\r
3511 v2.0.18 (08/24/01)
\r
3513 - Added same fix in 2.0.17 for the latest A3 chips.
\r
3515 v2.0.17 (08/22/01)
\r
3517 - Fixed a lock-up problem when loading fibre card with no cable attached.
\r
3519 v2.0.16 (08/18/01)
\r
3521 - Fixed a panic caused by an interrupt before the NIC is fully initialized.
\r
3523 v2.0.15 (08/14/01)
\r
3525 - Fixed a problem that caused unnecessary resets to the chip during
\r
3528 v2.0.14 (08/09/01)
\r
3530 - Lowered core clock freq. in latest 5701 chip in 100Mbps WOL mode.
\r
3532 v2.0.12 (08/02/01)
\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
3538 v2.0.11 (07/19/01)
\r
3540 - Fixed some fiber autonegotiation problems.
\r
3542 v2.0.10 (07/13/01)
\r
3544 - Added promiscuous mode support.
\r
3545 - Improved performance, especially on 5700 chips.
\r
3549 - Fixed IA64 DMA alignment problem.
\r
3553 - Fixed panic during ifdown.
\r
3557 - Fixed problems with fibre cards.
\r
3558 - Added 100Mbps WOL for 5701 B2 chip.
\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
3569 - Some performance improvements.
\r
3570 - Added adaptive receive interrupt coalescing.
\r
3571 - Preliminary release for IA64.
\r
3575 - Fixed a problem with multiple cards using jumbo frames.
\r
3579 - Fixed panic during hotplug.
\r
3580 - Fixed RPM error on Mandrake.
\r
3584 - Fixed a spin lock problem.
\r
3588 - Fixed memory leak when unloading driver.
\r
3592 - Added additional OEM support.
\r
3593 - Added Wake-On-LAN support.
\r
3597 - Fixed interrupt and TX hung problem on 5701.
\r
3598 - Added OEM strings.
\r
3602 - Fixed parameter defaults.
\r
3603 - Added /proc filesystem reporting.
\r
3607 - Fixed bug in transmit IP checksum.
\r
3611 - Added scatter/gather, HIGHMEM DMA, and IP transmit checksum offload for the
\r
3613 - Added support of BCM5701.
\r
3617 - Added Fibre transceiver support.
\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
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
3633 - Fixed the problem of transmit congestion during very heavy traffic in pre-
\r
3638 - Changed driver to use new PCI DMA functions in 2.4 kernel.
\r
3642 - Changed driver to use spin locks for SMP machines.
\r
3643 - Added spin locks around PRIVATE ioctls for MII registers .
\r
3647 - Made changes for B1 chips.
\r
3651 - Made changes for 2.4.0 kernel.
\r
3655 - Fixed the problem of setting a user assigned MAC address.
\r
3656 - Added VLAN support for BASP.
\r
3660 - Added code to handle BCM5401 B0 phy chips.
\r
3664 - Fixed LED problems.
\r
3668 - Fixed some flow control auto negotiation problems.
\r
3672 - Fixed a problem of missing interrupts.
\r
3673 - Resolved all fixed speed related problems.
\r
3677 - Fixed the problem of memory allocation failure in some machines.
\r
3681 - Made more changes regarding fixed speeds. Also removed manual selection
\r
3683 - Made a SRPM package.
\r
3687 - Fixed problems #452, #441, #364, and other speed related problems in the
\r
3692 - Released Lower Module as tigon3.o.
\r
3696 - Fixed the fixed speed problem in Lower Module.
\r
3700 - Added new parameters for flow control settings.
\r
3701 - Fixed problem with uninitialized statistics counters (problem #338).
\r
3705 - Modified for B0 chips, should also work for other chips.
\r
3706 - Reenabled TCP/UDP receive hardware checksums.
\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
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
3725 -First release of the driver for BCM5700 A1 chips.
\r