[thunderx] Fix hardware deinitialization
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>
This commit is contained in:
parent
4a4da573dd
commit
ed864feb3a
|
@ -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 );
|
||||
|
||||
|
|
Reference in New Issue