|
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'
|