|
View:
New views
4 Messages
—
Rating Filter:
Alert me
|
|
|
[PATCH] Link state change with BCM5709Hi,
Link state change interrupt was not generated due to a missing bit in the MAC event register. This fixes at least carp and ifstated for 5709 chip (eg. in Dell R610). Note that Broadcom Linux driver also sets STATUS_ATTN_BITS_TIMER_ABORT on the same go which I is detection for a hung pci bus. Code for this interrupt is missing in the bnx_phy_intr() handler, so I left it out for now. If you have any ideas how to test it, I can try porting the handler code. --- sys/dev/pci/if_bnx.c Fri Oct 30 21:04:04 2009 +++ sys/dev/pci/if_bnx.c Fri Oct 30 21:05:56 2009 @@ -3461,6 +3461,7 @@ /* Set up link change interrupt generation. */ REG_WR(sc, BNX_EMAC_ATTENTION_ENA, BNX_EMAC_ATTENTION_ENA_LINK); + REG_WR(sc, BNX_HC_ATTN_BITS_ENABLE, STATUS_ATTN_BITS_LINK_STATE); /* Program the physical address of the status block. */ REG_WR(sc, BNX_HC_STATUS_ADDR_L, (u_int32_t)(sc->status_block_paddr)); -- Atte Peltomdki atte.peltomaki@... <> http://kameli.org "Your effort to remain what you are is what limits you" |
|
|
Re: [PATCH] Link state change with BCM5709On Fri, Oct 30, 2009 at 09:50:34PM +0200, Atte Peltom?ki wrote:
> Hi, > > Link state change interrupt was not generated due to a missing bit in > the MAC event register. This fixes at least carp and ifstated for 5709 > chip (eg. in Dell R610). i have verified this on the 5709. i dont have a box with older versions of bnx in it to test on them though. have you been able to try this on a 2950 or r200? > Note that Broadcom Linux driver also sets STATUS_ATTN_BITS_TIMER_ABORT > on the same go which I is detection for a hung pci bus. Code for this > interrupt is missing in the bnx_phy_intr() handler, so I left it out > for now. If you have any ideas how to test it, I can try porting the > handler code. > > > --- sys/dev/pci/if_bnx.c Fri Oct 30 21:04:04 2009 > +++ sys/dev/pci/if_bnx.c Fri Oct 30 21:05:56 2009 > @@ -3461,6 +3461,7 @@ > > /* Set up link change interrupt generation. */ > REG_WR(sc, BNX_EMAC_ATTENTION_ENA, BNX_EMAC_ATTENTION_ENA_LINK); > + REG_WR(sc, BNX_HC_ATTN_BITS_ENABLE, STATUS_ATTN_BITS_LINK_STATE); > > /* Program the physical address of the status block. */ > REG_WR(sc, BNX_HC_STATUS_ADDR_L, (u_int32_t)(sc->status_block_paddr)); > > -- > Atte Peltomdki > atte.peltomaki@... <> http://kameli.org > "Your effort to remain what you are is what limits you" |
|
|
Re: [PATCH] Link state change with BCM5709On Mon, Nov 09, 2009 at 10:12:48PM +1000, David Gwynne wrote:
> On Fri, Oct 30, 2009 at 09:50:34PM +0200, Atte Peltom?ki wrote: > > Link state change interrupt was not generated due to a missing bit in > > the MAC event register. This fixes at least carp and ifstated for 5709 > > chip (eg. in Dell R610). > > i have verified this on the 5709. i dont have a box with older > versions of bnx in it to test on them though. have you been able > to try this on a 2950 or r200? Unfortunately not, these R610 are only OpenBSD boxes we have so far. However, judging from both the Broadcom tech docs for opensource developers and their own linux driver source, this patch is needed for all chips using the bnx(4) driver. Since carp and ifstated use routing socket to determine link status, it is possible that they work without this patch if something else updates the socket. For example with 5709, using ifconfig that talks via ioctl interface in the driver that polls link status from MII. On the same go the routing socket status is updated and this is when carp and ifstated notice it, too. -- Atte Peltomdki atte.peltomaki@... <> http://kameli.org "Your effort to remain what you are is what limits you" |
|
|
Re: [PATCH] Link state change with BCM5709On 2009/11/09 15:14, Atte Peltomdki wrote:
> On Mon, Nov 09, 2009 at 10:12:48PM +1000, David Gwynne wrote: > > On Fri, Oct 30, 2009 at 09:50:34PM +0200, Atte Peltom?ki wrote: > > > Link state change interrupt was not generated due to a missing bit in > > > the MAC event register. This fixes at least carp and ifstated for 5709 > > > chip (eg. in Dell R610). it quite possibly hits trunk(4) too. > > i have verified this on the 5709. i dont have a box with older > > versions of bnx in it to test on them though. have you been able > > to try this on a 2950 or r200? R200 has bge(4). Dell 1950 and HP DL360 G5 have BCM5708. |
| Free embeddable forum powered by Nabble | Forum Help |