OpenSolaris

Printable Version Enter a New Search
Bug ID 6574580
Synopsis dnet doesn't work for 21143 based nic card in 100Mbps
State 10-Fix Delivered (Fix available in build)
Category:Subcategory driver:dnet
Keywords opensolaris | oss-request | oss-sponsor
Sponsor Garrett Damore
Submitter khf04453
Responsible Engineer Garrett Damore
Reported Against snv_48
Duplicate Of
Introduced In solaris_2.5
Commit to Fix snv_82
Fixed In snv_82
Release Fixed solaris_nevada(snv_82)
Related Bugs 4019246
Submit Date 27-June-2007
Last Update Date 31-January-2008
Description
Category
   driver
Sub-Category
   dnet
Description
   dnet driver didn't work for 21143 based DE500B nic card in
forced 100Mbps mode. It still worked in forced 10Mbps mode.
Revieing the source code of dnet, I found a bug in parsing type 4
of SROM media block.
In function parse_media_block():
                case 4: /* SYM Media: 4.5.2.1.3 */
                        block->media_code = *vi++ & 0x3f;
                        /* Treat GP control and data as a GPR sequence */
                        block->gprseqlen = 2;
                        block->gprseq[0] = *vi++;
                        block->gprseq[0] |= *vi++ << 8;
                        block->gprseq[0] |= GPR_CONTROL_WRITE;
                        block->gprseq[1]  = *vi++;
                        block->gprseq[1] |= *vi++ << 8;
                        block->command = *vi++;
                        block->command = *vi++ << 8;   <=== BUG!
                        break;
The line above should be:
                        block->command |= *vi++ << 8; 
After I fixed the line, dnet worked with forced 100M mode.
Frequency
   Always
Regression
   No
Steps to Reproduce
   (1) add following into /kernel/drv/dnet.conf
print-srom=1;
full-duplex=1;
speed=100;
(2) install DE500B card and reboot the system
(3) setup network address for dnet device
(4) do ping command through the dnet device
Expected Result
   ping should work
Actual Result
   ping didn't get any reply from a host in the same network segment.
Error Message(s)
   
Test Case
   
Workaround
   use 10M bps instead of 100Mbps
Submitter wants to work on bug
   Yes
Additional configuration information
   output of prtconf -pv for the ethernet device node:
        Node 0x000014
            assigned-addresses:  81005010.00000000.0000dc00.00000000.00000080.82005014.00000000.febf3400.00000000.00000080
            reg:  00005000.00000000.00000000.00000000.00000000.01005010.00000000.00000000.00000000.00000080.02005014.00000000.00000000.00000000.00000080
            compatible: 'pci1011,19.1011.500b.30' + 'pci1011,19.1011.500b' + 'pci1011,500b' + 'pci1011,19.30' + 'pci1011,19' + 'pciclass,020000' + 'pciclass,0200'
            model:  'Ethernet controller'
            power-consumption:  00000001.00000001
            fast-back-to-back:
            devsel-speed:  00000001
            interrupts:  00000001
            max-latency:  00000028
            min-grant:  00000014
            subsystem-vendor-id:  00001011
            subsystem-id:  0000500b
            unit-address:  'a'
            class-code:  00020000
            revision-id:  00000030
            vendor-id:  00001011
            device-id:  00000019
            name:  'pci1011,500b'
Work Around
N/A
Comments
N/A