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>
* @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 );