README revision 080575042aba2197b425ebfd52061dea061a9aa1
641cb23141f2238ed09e3b9fa79189225f8a2bcbrbb# This file is provided under a CDDLv1 license. When using or
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj# redistributing this file, you may do so under this license.
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj# In redistributing this file this license must be included
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj# and no other modification of this header file is permitted.
09bd86d0db1114ee23eda0a6eb76ca055877a1cftrawick# CDDL LICENSE SUMMARY
bd929c73ef04789b7183b840d8db6e01d03a4d86rbb# Copyright(c) 1999 - 2007 Intel Corporation. All rights reserved.
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj# The contents of this file are subject to the terms of Version
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj# 1.0 of the Common Development and Distribution License (the "License").
91a71946d0fb28c0866139edef3dd59f36ba5b9cstoddard# You should have received a copy of the License with this software.
91a71946d0fb28c0866139edef3dd59f36ba5b9cstoddard# You can obtain a copy of the License at
91a71946d0fb28c0866139edef3dd59f36ba5b9cstoddard# See the License for the specific language governing permissions
bd929c73ef04789b7183b840d8db6e01d03a4d86rbb# and limitations under the License.
bd929c73ef04789b7183b840d8db6e01d03a4d86rbb# Copyright 2007 Sun Microsystems, Inc. All rights reserved.
632b0b53511f3bb9c32aa2869fbc73ee35081b38rbb# Use is subject to license terms of the CDDLv1.
14cccaddba3a9263cf0d0ddc311e18f3e3dc9b0fgstein# ident "%Z%%M% %I% %E% SMI"
b7663b97a437dc089ac7a1a9ebd42e0c372a48b6gstein4.0.4 code drop from Intel on 1/30/2003
b7663b97a437dc089ac7a1a9ebd42e0c372a48b6gstein=======================================
14cccaddba3a9263cf0d0ddc311e18f3e3dc9b0fgstein This version is used as the base for putback into both s10 and
369edcdd0a9c5516c61e736ec2a6fc8fb0d92fe2manoj Following changes were done to this code base before putting
369edcdd0a9c5516c61e736ec2a6fc8fb0d92fe2manoj back into solaris trees (S10 & S9U4):
85cbdc16ac57fa68ce1358a308269abcd417f4d9stoddard 1) Changes to e1000_hw.c to remove build warnings
85cbdc16ac57fa68ce1358a308269abcd417f4d9stoddard + diff /home/naroori/grizzly/sources/e1000g/1_4.0.4/e1000_hw.c .
d208bda4a893cc81ed5d3ed1cdd7d706e012bd42stoddard < phy_info->downshift = hw->speed_downgraded;
d208bda4a893cc81ed5d3ed1cdd7d706e012bd42stoddard > phy_info->downshift = (int)hw->speed_downgraded;
10b386767f6c87b45937244371cb751f0b454d16wrowe < phy_info->downshift = hw->speed_downgraded;
75960f20f88dad6bc67892c711c429946063d133stoddard > phy_info->downshift = (int)hw->speed_downgraded;
75960f20f88dad6bc67892c711c429946063d133stoddard 2) Changes to e1000g_dlpi.c for ipv6 plumbing problem and
75960f20f88dad6bc67892c711c429946063d133stoddard problem with default MTU size of 2024.
75960f20f88dad6bc67892c711c429946063d133stoddard + diff /home/naroori/grizzly/sources/e1000g/1_4.0.4/e1000g_dlpi.c .
10b386767f6c87b45937244371cb751f0b454d16wrowe > /* the following causes problem with ipv6 plumbing...
10b386767f6c87b45937244371cb751f0b454d16wrowe 628c630,632
10b386767f6c87b45937244371cb751f0b454d16wrowe < if (Adapter->Shared.max_frame_size == FRAME_SIZE_UPTO_16K)
10b386767f6c87b45937244371cb751f0b454d16wrowe > if (Adapter->Shared.max_frame_size == ETHERMTU) {
10b386767f6c87b45937244371cb751f0b454d16wrowe > else if (Adapter->Shared.max_frame_size == FRAME_SIZE_UPTO_16K) {
10b386767f6c87b45937244371cb751f0b454d16wrowe 630c634,635
641cb23141f2238ed09e3b9fa79189225f8a2bcbrbb 3) Changes to e1000g_main.c for version string modification,
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj removing console messages on bootup and problems with default
8bed76428f56e5c643174a2d6807c3f18016af5cbjh MTU size of 2024.
8bed76428f56e5c643174a2d6807c3f18016af5cbjh + diff /home/naroori/grizzly/sources/e1000g/1_4.0.4/e1000g_main.c .
8bed76428f56e5c643174a2d6807c3f18016af5cbjh < static char e1000g_version[]="Driver Ver. 4.0.4-beta";
cfc020d6d6fc9b31d8945915e65a8787a796eb73stoddard > static char e1000g_version[]="Driver Ver. 4.0.4";
f824925ac58ff729289c017235eeb3bdd21ec3a2stoddard < e1000g_log(Adapter,CE_CONT,"\n%s, %s\n",AdapterName,e1000g_version);
f824925ac58ff729289c017235eeb3bdd21ec3a2stoddard > cmn_err(CE_CONT,"!%s, %s\n",AdapterName,e1000g_version);
2aae6faee508221efbeaba5547ca79b7a20ef047stoddard < Adapter->Shared.max_frame_size = FRAME_SIZE_UPTO_2K;
10b386767f6c87b45937244371cb751f0b454d16wrowe > Adapter->Shared.max_frame_size = ETHERMTU;
10b386767f6c87b45937244371cb751f0b454d16wrowe < Adapter->Shared.max_frame_size = FRAME_SIZE_UPTO_2K;
10b386767f6c87b45937244371cb751f0b454d16wrowe > Adapter->Shared.max_frame_size = ETHERMTU;
75960f20f88dad6bc67892c711c429946063d133stoddardBug fixes to 4.0.4:
a5ed555df952c85bc1b179f5981e8a6c54ba16e6stoddard===================
a5ed555df952c85bc1b179f5981e8a6c54ba16e6stoddard 1) bug#4829398 code cleanup for ethernet bootup messages
a5ed555df952c85bc1b179f5981e8a6c54ba16e6stoddard4.0.12 code drop from Intel on 3/18/2003
56ca30c968906053ae61acb218420667bb58d996rbb========================================
56ca30c968906053ae61acb218420667bb58d996rbb This drop had extensive changes from 4.0.4. Many changes after
56ca30c968906053ae61acb218420667bb58d996rbb 4.0.4 were realted to new hardware (a.k.a. BayCity chipset),
70f6f32765cfaadd6da8de6f0fea97ddd72d8fadmanoj not relevant to Grizzly.After looking at the changelog from Intel,
70f6f32765cfaadd6da8de6f0fea97ddd72d8fadmanoj we decided not to do a putback but rather take only high priority
70f6f32765cfaadd6da8de6f0fea97ddd72d8fadmanoj fixes from this drop and generate a new version 4.0.4.1.
0bff2f28ef945280c17099c142126178a78e1e54manoj Here is the changelog supplied by Intel for this drop:
0bff2f28ef945280c17099c142126178a78e1e54manoj ________________________________________________________________________
1e585ba09ea32272e63c4c39c35491e975d21d98stoddard Component Name: Unix-Solaris_8254x_BayCity_Intel
1e585ba09ea32272e63c4c39c35491e975d21d98stoddard Description: Bay City software component for gigabit products
1e585ba09ea32272e63c4c39c35491e975d21d98stoddard ________________________________________________________________________
1e585ba09ea32272e63c4c39c35491e975d21d98stoddard ---Version: 4.0.13 Date: 3/14/2003 5:00:00 PM---
1e585ba09ea32272e63c4c39c35491e975d21d98stoddard Added transmit mutex locking to the 82547 workaround code.
9c09943bad734ebd5c7cc10bd6d63b75c4c6e056stoddard ---Version: 4.0.12 Date: 3/10/2003 8:01:00 PM---
9c09943bad734ebd5c7cc10bd6d63b75c4c6e056stoddard Added new shared code with LED link speed fix
0bff2f28ef945280c17099c142126178a78e1e54manoj ---Version: 4.0.11 Date: 3/7/2003 5:57:00 PM---
0bff2f28ef945280c17099c142126178a78e1e54manoj Updated the Tanacross FIFO hang workaround to reset FIFO pointers instead of sending autonomous packets.
75960f20f88dad6bc67892c711c429946063d133stoddard ---Version: 4.0.10 Date: 3/4/2003 2:39:00 PM---
1e585ba09ea32272e63c4c39c35491e975d21d98stoddard Removed an extra sdu adjustment that was left in by accident
aa1faea36e4ae357bc603a2337b6adc54f5daec1manoj ---Version: 4.0.9 Date: 3/4/2003 11:13:00 AM---
bd929c73ef04789b7183b840d8db6e01d03a4d86rbb Removed the first call to adapter_stop. This was called before the HW struct was properly initialized, and could cause hangs.
302dc1f7b3feee23a91ad8f3cf3cb2edd95a557bmanoj Changed reported ethernet sdu from 2024 to 1500, as driver could be configured for invalid frame MTU sizes in Solaris 9.
302dc1f7b3feee23a91ad8f3cf3cb2edd95a557bmanoj Added Tanacross workaround for FIFO hang.
ff849e4163ed879288f0df15f78b6c9d278ec804fanf ---Version: 4.0.8 Date: 2/25/2003 2:27:00 PM---
ff849e4163ed879288f0df15f78b6c9d278ec804fanf Shared code update including Phy init script.
9805ac88e1befa6dea11d8513023f150d8f8e807fanf Smartspeed workaround added. e1000g_smartspeed called from LocalTimer function every two seconds when link is down.
9805ac88e1befa6dea11d8513023f150d8f8e807fanf ---Version: 4.0.7 Date: 2/18/2003 11:41:00 AM---
9805ac88e1befa6dea11d8513023f150d8f8e807fanf Updated to include bug fixes from the shared code.
c03566fa0156d3a1500a42e4fe539e3e0fc8a11dgstein ---Version: 4.0.5 Date: 1/31/2003 10:13:00 AM---
c03566fa0156d3a1500a42e4fe539e3e0fc8a11dgstein Support for new hardware changes
c03566fa0156d3a1500a42e4fe539e3e0fc8a11dgstein Removed the extra ack sent at the end of the attach_req routine. This extra ack previously made IPv6 plumbing on Solaris 9 fail.
db3ccce11afac4fc1d4f51a65424412f7480c46cgstein This version is not an Intel drop but 4.0.4 merged with two
db3ccce11afac4fc1d4f51a65424412f7480c46cgstein high priority fixes from 4.0.12. We will give back the 4.0.4.1
db3ccce11afac4fc1d4f51a65424412f7480c46cgstein driver back to Intel, per their request, so they have the exact
db3ccce11afac4fc1d4f51a65424412f7480c46cgstein code that we are releasing through Solaris.
93c5cba06b623ebe8e4372e886eece12d9a80c3egstein The following are the two fixes selected for inclusion from
93c5cba06b623ebe8e4372e886eece12d9a80c3egstein 4.0.12 codebase:
93c5cba06b623ebe8e4372e886eece12d9a80c3egstein 1) Removing the first call to adapter_stop as discussed in
93c5cba06b623ebe8e4372e886eece12d9a80c3egstein 4.0.12 changelog.
93c5cba06b623ebe8e4372e886eece12d9a80c3egstein 2) Corrections to MTU size calculations first introduced
be386cf0beed1c3331e47f0736d92b9744a21f3agstein in our 4.0.4 putback to bring them into sync with 4.0.12
be386cf0beed1c3331e47f0736d92b9744a21f3agstein MTU size calculations.
14cccaddba3a9263cf0d0ddc311e18f3e3dc9b0fgstein We also added README file (current file you are reading) during
14cccaddba3a9263cf0d0ddc311e18f3e3dc9b0fgstein this putback.
14cccaddba3a9263cf0d0ddc311e18f3e3dc9b0fgstein This version has the following fixes:
eb3def494ba5580320dfe1dd47b4d8b05519cb74gstein 1) bug#4857098: e1000g driver assumes another intel card as its own.
eb3def494ba5580320dfe1dd47b4d8b05519cb74gstein The fix involved eliminating 1009, 1012, 1015, 1016, 1017
eb3def494ba5580320dfe1dd47b4d8b05519cb74gstein device-ids from e1000g nodelist so that they do not conflict
eb3def494ba5580320dfe1dd47b4d8b05519cb74gstein with iprb's subsystem-ids.
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj This fix has to be reverted later once we have a proper fix for
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj bug#4859426.
d5defd5a0c5cdbaf74b85939484dc2b6c8317d19manoj 2) bug#4853683: e1000g lacks a large number of expected kstats
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj The fix involved three steps: a) Renaming some of the existing
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj kstats to comply with WDD documentation b) Computing some of
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj those which are not being tracked c) Supplying zero for the rest
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj the error stats which are not being tracked.
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj This fix has to be revisited to improvise the statistics in
0bff2f28ef945280c17099c142126178a78e1e54manoj 3) bug#4862529: System panics during configuring devices on a Dell 4-way
d6b3cb141f0667101c1bca883ad15b383402c93bfielding servers. The fix involved removing all the devic-ids from nodelist
09bd86d0db1114ee23eda0a6eb76ca055877a1cftrawick except for 1010. This means that we support now only the grizzly
09bd86d0db1114ee23eda0a6eb76ca055877a1cftrawick on-board gigabit chipset and "Intel Pro/1000 MT Dual Server Adapter".
09bd86d0db1114ee23eda0a6eb76ca055877a1cftrawick This fix has to be reverted later once we have a proper fix for
09bd86d0db1114ee23eda0a6eb76ca055877a1cftrawick bug#4859426.
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj This version has the following fixes:
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj 1) bug#4874857: ipv6 ping fails on bootup for e1000g.
40a5b7189dbbb28e107bf008ee625f2f0142c2ccdgaudet The fix involved implementing multicast tables both at per stream
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj level and per device level.
dbf0c7bef06259486cd2748a2d0e82f27e099d6efielding 2) bug#4875743: null pointer dereference in ddi_dma_addr_bind_handle.
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj The fix involved adding LastTxDescriptorBuf to struct e1000g and
bd929c73ef04789b7183b840d8db6e01d03a4d86rbb handling consequent proper calculations for LastTxDescriptor.
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj 3) bug#4882541: setting up ethernet address causes machine to panic.
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj The fix involved removing a spurious log message which was causing
f6a6245816cd866361da8c576b1f47c7a54b6610fanf 4) bug#4883302: Reinstate the removed device-ids - phase 2.
f6a6245816cd866361da8c576b1f47c7a54b6610fanf The fix involved some chip initializations to handle 1000 id.
f6a6245816cd866361da8c576b1f47c7a54b6610fanf 5) bug#4919285: device id 8086,100e needs to be added
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj The fix needed for the Intel Precision 350 workstation
d6b3cb141f0667101c1bca883ad15b383402c93bfieldingWe need to sync up with the latest Intel code base for e1000g driver.
d6b3cb141f0667101c1bca883ad15b383402c93bfieldingIntel is currently at version 4.2.11 while we are on 4.0.4 branch.
d6b3cb141f0667101c1bca883ad15b383402c93bfieldingThe exact version under 4.0.4 branch is 4.0.4.3. Since we are on
d6b3cb141f0667101c1bca883ad15b383402c93bfieldingthe branch while Intel is working on the main trunk, we have had
d6b3cb141f0667101c1bca883ad15b383402c93bfieldinglot of friction in getting timely fixes from Intel. The current
2a6c49cfaef5979a5a06098f3ce987cd76769409manojsyncing up with their main trunk lets us a smooth migration path.
2a6c49cfaef5979a5a06098f3ce987cd76769409manojThe new code base also would provide us with support for additional
2a6c49cfaef5979a5a06098f3ce987cd76769409manojcards including Quad port cards (See bugs: 4921433, 4914460).
2a6c49cfaef5979a5a06098f3ce987cd76769409manojIn our old 4.0.4 branch, we had to drop support for a lot of cards
2a6c49cfaef5979a5a06098f3ce987cd76769409manojfor various problems; with the current syncing up, we would be able
2a6c49cfaef5979a5a06098f3ce987cd76769409manojto support so many various cards except for the cards clashing with
2a6c49cfaef5979a5a06098f3ce987cd76769409manojiprb driver.
2a6c49cfaef5979a5a06098f3ce987cd76769409manojThe new code base also has support for additional new chipsets. The code
2a6c49cfaef5979a5a06098f3ce987cd76769409manojbase also benefits from any fixes to the shared code base with other
2a6c49cfaef5979a5a06098f3ce987cd76769409manojoperating system drivers.
d6b3cb141f0667101c1bca883ad15b383402c93bfieldingThe new codebase also has lot of cleanups in terms of various #ifdefs
d6b3cb141f0667101c1bca883ad15b383402c93bfieldingand should be much simpler to maintain.
5037062 strings have crept back in e1000g/adpu320 related mutex_init()s
5010052 The stress load/unload test of Intel PWLA8494MT Quad Port NIC causes system hung
5050369 E1000g locks the system if plumb/unplumb under heavy workload and snoop.
4921433 e1000g: Should not probe by using VID/DID table to identify adapters
6207682 e1000g needs link up/down support
6212810 e1000g caught sending unsolicited M_PROTO/M_PCPROTO messages
6313609 2-port Intel NIC (part# 370-6687) performs poorly compared to 1-port Intel NIC (part# 370-6685)
6319100 Tier0 Ontario machine does not boot net with sparc e1000g driver substitution for sparc ipge driver
6333461 panic[cpu0]/thread=d63f4de0: assertion failed: !dma->dp_inuse, file: ../../i86pc/io/rootnex.c
6339377 e1000g.conf needs to be simplified
6412153 ndd force speed is not consistent with e1000g.conf and e1000g(7D)
6428883 NEM e1000g drive netlbtest intermittent failed when running Sunvts FUNC test with cputest,vmemtest..
6430731 e1000g.conf file removed on upgrade
6445239 assertion failed: cookie_count == 1, file: ../../common/io/e1000g/e1000g_alloc.c, line: 422
6467860 e1000g configured/used as cluster interconnect goes up and down when connected back to back
6505360 e1000g Makefile should not include "-N drv/dld" in the LDFLAGS