linux_dsm_epyc7002/drivers/net/ethernet/sfc/falcon/selftest.h
Edward Cree 5a6681e22c sfc: separate out SFC4000 ("Falcon") support into new sfc-falcon driver
Rationale: The differences between Falcon and Siena are in many ways larger
 than those between Siena and EF10 (despite Siena being nominally "Falcon-
 architecture"); for instance, Falcon has no MCPU, so there is no MCDI.
 Removing Falcon support from the sfc driver should simplify the latter,
 and avoid the possibility of Falcon support being broken by changes to sfc
 (which are rarely if ever tested on Falcon, it being end-of-lifed hardware).

The sfc-falcon driver created in this changeset is essentially a copy of the
 sfc driver, but with Siena- and EF10-specific code, including MCDI, removed
 and with the "efx_" identifier prefix changed to "ef4_" (for "EFX 4000-
 series") to avoid collisions when both drivers are built-in.

This changeset removes Falcon from the sfc driver's PCI ID table; then in
 sfc I've removed obvious Falcon-related code: I removed the Falcon NIC
 functions, Falcon PHY code, and EFX_REV_FALCON_*, then fixed up everything
 that referenced them.

Also, increment minor version of both drivers (to 4.1).

For now, CONFIG_SFC selects CONFIG_SFC_FALCON, so that updating old configs
 doesn't cause Falcon support to disappear; but that should be undone at
 some point in the future.

Signed-off-by: Edward Cree <ecree@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-11-30 10:16:58 -05:00

56 lines
1.5 KiB
C

/****************************************************************************
* Driver for Solarflare network controllers and boards
* Copyright 2005-2006 Fen Systems Ltd.
* Copyright 2006-2012 Solarflare Communications Inc.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 as published
* by the Free Software Foundation, incorporated herein by reference.
*/
#ifndef EF4_SELFTEST_H
#define EF4_SELFTEST_H
#include "net_driver.h"
/*
* Self tests
*/
struct ef4_loopback_self_tests {
int tx_sent[EF4_TXQ_TYPES];
int tx_done[EF4_TXQ_TYPES];
int rx_good;
int rx_bad;
};
#define EF4_MAX_PHY_TESTS 20
/* Efx self test results
* For fields which are not counters, 1 indicates success and -1
* indicates failure; 0 indicates test could not be run.
*/
struct ef4_self_tests {
/* online tests */
int phy_alive;
int nvram;
int interrupt;
int eventq_dma[EF4_MAX_CHANNELS];
int eventq_int[EF4_MAX_CHANNELS];
/* offline tests */
int memory;
int registers;
int phy_ext[EF4_MAX_PHY_TESTS];
struct ef4_loopback_self_tests loopback[LOOPBACK_TEST_MAX + 1];
};
void ef4_loopback_rx_packet(struct ef4_nic *efx, const char *buf_ptr,
int pkt_len);
int ef4_selftest(struct ef4_nic *efx, struct ef4_self_tests *tests,
unsigned flags);
void ef4_selftest_async_start(struct ef4_nic *efx);
void ef4_selftest_async_cancel(struct ef4_nic *efx);
void ef4_selftest_async_work(struct work_struct *data);
#endif /* EF4_SELFTEST_H */