EasyManua.ls Logo

Broadcom BCM5722 - Page 234

Broadcom BCM5722
593 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
BCM5722 Programmer’s Guide
10/15/07
Broadcom Corporation
Page 175 Flow Control Document 5722-PG101-R
Driver_Flow_Capability = FLOW_CONTROL_RECEIVE_PAUSE
}
Else
{
Driver_Flow_Capability = NONE
}
}
//The local physical layer was not configured to advertise Asymmetric
pause
Else
{
If (Auto_Neg_Link_Partner_Ability_Reg.Pause_Capable == ENABLED)
Then
{
Driver_Flow_Capability = FLOW_CONTROL_TRANSMIT_PAUSE \
| FLOW_CONTROL_RECEIVE_PAUSE
}
Else
{
Driver_Flow_Capability = NONE
}
}
}
// The local physical layer was not configured to advertise Pause capability
Else If (Auto_Neg_Advertise_Reg.Asymetric_Pause == ENABLED) Then
{
If (Auto_Neg_Link_Partner_Ability_Reg.Pause_Capable == ENABLED) Then
{
Driver_Flow_Capability = FLOW_CONTROL_TRANSMIT_PAUSE
}
Else
{
Driver_Flow_Capability = NONE
}
}
} //Link Status is up
} // Auto negotiation was not disabled && Speed Duplex was not forced
Else
{
// The use forced speed/duplex, so the partner's flow control capabilities are
// indeterminate - software cannot use the Link_Partner_Abitity
// registers.
Driver_Flow_Capability= DISABLED
}
} //The current link is full-duplex at 10/100/1000 wire speeds
Else
{
//Full-Duplex mode is not available or forced half-duplex
//Flow control is not available in half-duplex mode.
Driver_Flow_Capability = NONE
}
//Configure MAC Flow Control Registers
if ( Driver_Flow_Capability & FLOW_CONTROL_RECEIVE_PAUSE )
{
Receive_MAC_Mode_Control_Register.Enable_Flow_Control = ENABLED
}

Table of Contents