Btw, I scrounged an older SMC 21040 (single port), and I can get access
to a cogent multiport (4x) card. (Not sure but I think it is a 21142.)

-- Garrett

Steven Stallion wrote:
> Masa Murayama wrote:
>   
>> I struggled with gld3 version of dnet for two days.
>> During that, I found several issues in dnet and fixed.
>> Now dnet passed test08 of nicdrv in PITIN mode. But after test08
>> was completed successfully, the windows system hanged, why? 
>>     
>
> Was this with my patch applied? If you were testing on the same host you
> were running X, it sounds like you may have encountered a panic during
> testing.
>
>   
>> At the first time, dnet didn't work with my two cards.
>> I fixed following bugs, then  dnet worked with my 21142 w/ MII PHY.
>>     
>
> Interesting. I haven't had any issues with a single-port 21143 and
> multi-port 21140.
>
>   
>> In dnet_mii_link_cb():
>>  need to call mii_getspeed() to get correct speed and duplexmode
>> before calling setup_block().
>>
>> In dnet_alloc_bufs()
>> Added following line after dnetp->rx_buf_vaddr[i] = rp->rbuf_vaddr;
>>   dnetp->rx_buf_paddr[i] = rp->rbuf_paddr;
>>
>>
>> Test08:
>> I think following three issues are important to pass test8 of nicdrv.
>>
>> Need to fix alloc_descriptor() and its callers. I modified
>> alloc_descriptor() to return the index of the allocated tx
>> descriptor, which is determined while dnetp->txlock is held.
>> Currently the index is determined by the callers without holding
>> the txlock.
>>
>> mac_tx_update() should be called after enough time from the
>> no resource event happen. It will avoid race conditions against
>> dnet_m_tx() returning with non-zero.
>>  To do this, I modified dnet_m_tx(), dnet_send(), dnet_intr(), 
>> dnet_reclaim_Tx_desc().
>> This issue is very difficult and I considered it for long time
>> last year.
>>
>>
>> The number of descriptors used for a tx packet should be limited
>> by a constant number enough smaller than tx descriptor ring size.
>> I modified dnet_m_tx() and dnet_send().
>>
>>
>> Test9 is not passed yet. I found following operation caused to
>> hang the nic. I partially fixed it, but not completed.
>>
>>  # ifconfig dnet0 plumb $hostname up
>>   # ifconfig dnet0 unplumb
>>   # ifconfig dnet0 plumb $hostname up   (here, the nic hangs)
>>
>>
>> the modified source code is here:
>> http://homepage2.nifty.com/mrym3/taiyodo/dnet-0.0.3.tar.gz
>>     
>
> Should I fold these changes into my patch or should this be left as an
> additional Bug ID ?
>
> Steve
>   

_______________________________________________
driver-discuss mailing list
driver-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/driver-discuss

Reply via email to