Skip to content

Commit

Permalink
[thunderx] Fix hardware deinitialization
Browse files Browse the repository at this point in the history
It is required to reset BGX context state for the LMAC using
BGX_CMR_CONFIG register.

This solves problem with network connectivity in Linux booted from
iPXE.

Signed-off-by: Bartosz Szczepanek <bartosz.szczepanek@cavium.com>
Modified-by: Michael Brown <mcb30@ipxe.org>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
  • Loading branch information
Bartosz Szczepanek authored and mcb30 committed Feb 7, 2017
1 parent 4a4da57 commit ed864fe
Showing 1 changed file with 7 additions and 0 deletions.
7 changes: 7 additions & 0 deletions src/drivers/net/thunderx.c
Expand Up @@ -1146,10 +1146,17 @@ static int txnic_lmac_probe ( struct txnic_lmac *lmac ) {
* @v lmac Logical MAC
*/
static void txnic_lmac_remove ( struct txnic_lmac *lmac ) {
uint64_t config;

/* Sanity check */
assert ( lmac->vnic != NULL );

/* Disable packet receive and transmit */
config = readq ( lmac->regs + BGX_CMR_CONFIG );
config &= ~( BGX_CMR_CONFIG_DATA_PKT_TX_EN |
BGX_CMR_CONFIG_DATA_PKT_RX_EN );
writeq ( config, ( lmac->regs + BGX_CMR_CONFIG ) );

/* Unregister network device */
unregister_netdev ( lmac->vnic->netdev );

Expand Down

0 comments on commit ed864fe

Please sign in to comment.