[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>
Cc: kern-bug-people%NetBSD.org@localhost, tsutsui%ceres.dti.ne.jp@localhost
Subject: Re: kern/46961: Please support BCM57762 Ethernet arapter
Date: Mon, 17 Sep 2012 00:13:24 +0900
> Please see new patches.
> 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.
BGE_RCB_MAXLEN_FLAGS(512, ETHER_VLAN_MAX_LEN << 2);
> Linux's tg3 identifies 0x57766 as ASIC_REV_57766.
> > (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.
Main Index |
Thread Index |