NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/46961: Please support BCM57762 Ethernet arapter (Apple'sThunderbolt Ethernet Adapter)



The following reply was made to PR kern/46961; it has been noted by GNATS.

From: Izumi Tsutsui <tsutsui%ceres.dti.ne.jp@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: kern-bug-people%NetBSD.org@localhost, tsutsui%ceres.dti.ne.jp@localhost
Subject: Re: kern/46961: Please support BCM57762 Ethernet arapter 
(Apple'sThunderbolt
         Ethernet Adapter)
Date: Mon, 17 Sep 2012 00:13:24 +0900

 >  Please see new patches.
 >  http://www.netbsd.org/~ryoon/120916a-bcm57762.diff
  :
 >  I think DIX Ethernet's max length is 1526.
 >  I have no idea about 1536.
 >  
 >  Anyway I will make ETHER_MAX_DIX_LEN bge local.
 
 I don't think we support any DIX Ethernet specific features
 and the possible maximum packet length is VLAN one
 (i.e. ETHER_MAX_LEN + ETHER_VLAN_ENCAP_LEN (1518 + 4) bytes),
 so it would be better to define and use ETHER_VLAN_MAX_LEN (or so),
 even if it's defined in if_bgereg.h locally.
 
 >> @@ -2383,3 +2385,10 @@
   :
 >> +
 >> +/*
 >> + * Maximum DIX frame length
 >> + * In OpenBSD's sys/netinet/if_ether.h, this is 1536,
 >> + * but it should be 1526.
 >> + */
 >> +#define ETHER_MAX_DIX_LEN  1526
 
 if_bgereg.h already has local packet lenghth definitions
 around lines 2330-2335, so it's also better to put a new local
 value in the same place.
 
 >> +       BGE_ASICREV(sc->bge_chipid) == BGE_ASICREV_BCM57766)
 >> +           rcb->bge_maxlen_flags = (BGE_RCB_MAXLEN_FLAGS(512, 0) |
 >> +                                   (ETHER_MAX_DIX_LEN << 2));
 >> +   else if (BGE_IS_5705_PLUS(sc))
 
 BGE_RCB_MAXLEN_FLAGS() macro is defined as following in if_bgereg.h:
 
 >> #define BGE_RCB_MAXLEN_FLAGS(maxlen, flags) ((maxlen) << 16 | (flags))
 
 so it's consistent to put the packet length value into the macro, i.e.
        rcb->bge_maxlen_flags =
            BGE_RCB_MAXLEN_FLAGS(512, ETHER_VLAN_MAX_LEN << 2);
 
 >  Linux's tg3 identifies 0x57766 as ASIC_REV_57766.
 >  See 
 > http://lxr.free-electrons.com/source/drivers/net/ethernet/broadcom/tg3.c#L13653
 >  .
 >  
 >  >  (existing "BGE_ASICREV_BCM57765" is "0x57785" anyway)
 >  
 >  In Linux's tg3 0x57785 is ASIC_REV_57765.
 >  
 >  In my opinion, 0x57766 should be BGE_ASICREV_57766, due to consistency
 >  between OSes.
 
 I see, then it's fine.
 
 ---
 Izumi Tsutsui
 


Home | Main Index | Thread Index | Old Index