Commit | Line | Data |
---|---|---|
3273c2e8 BH |
1 | /**************************************************************************** |
2 | * Driver for Solarflare Solarstorm network controllers and boards | |
3 | * Copyright 2005-2006 Fen Systems Ltd. | |
4 | * Copyright 2006-2008 Solarflare Communications Inc. | |
5 | * | |
6 | * This program is free software; you can redistribute it and/or modify it | |
7 | * under the terms of the GNU General Public License version 2 as published | |
8 | * by the Free Software Foundation, incorporated herein by reference. | |
9 | */ | |
10 | ||
11 | #ifndef EFX_SELFTEST_H | |
12 | #define EFX_SELFTEST_H | |
13 | ||
14 | #include "net_driver.h" | |
15 | ||
16 | /* | |
17 | * Self tests | |
18 | */ | |
19 | ||
20 | struct efx_loopback_self_tests { | |
60ac1065 BH |
21 | int tx_sent[EFX_TX_QUEUE_COUNT]; |
22 | int tx_done[EFX_TX_QUEUE_COUNT]; | |
3273c2e8 BH |
23 | int rx_good; |
24 | int rx_bad; | |
25 | }; | |
26 | ||
1796721a BH |
27 | #define EFX_MAX_PHY_TESTS 20 |
28 | ||
3273c2e8 BH |
29 | /* Efx self test results |
30 | * For fields which are not counters, 1 indicates success and -1 | |
31 | * indicates failure. | |
32 | */ | |
33 | struct efx_self_tests { | |
8c8661e4 | 34 | /* online tests */ |
68e7f45e | 35 | int mdio; |
8c8661e4 | 36 | int nvram; |
3273c2e8 BH |
37 | int interrupt; |
38 | int eventq_dma[EFX_MAX_CHANNELS]; | |
39 | int eventq_int[EFX_MAX_CHANNELS]; | |
40 | int eventq_poll[EFX_MAX_CHANNELS]; | |
8c8661e4 BH |
41 | /* offline tests */ |
42 | int registers; | |
1796721a | 43 | int phy[EFX_MAX_PHY_TESTS]; |
8c8661e4 | 44 | struct efx_loopback_self_tests loopback[LOOPBACK_TEST_MAX + 1]; |
3273c2e8 BH |
45 | }; |
46 | ||
47 | extern void efx_loopback_rx_packet(struct efx_nic *efx, | |
48 | const char *buf_ptr, int pkt_len); | |
2ef3068e BH |
49 | extern int efx_selftest(struct efx_nic *efx, |
50 | struct efx_self_tests *tests, | |
51 | unsigned flags); | |
3273c2e8 BH |
52 | |
53 | #endif /* EFX_SELFTEST_H */ |