efx_check.h revision 299322
1283514Sarybchik/*-
2283514Sarybchik * Copyright (c) 2012-2015 Solarflare Communications Inc.
3283514Sarybchik * All rights reserved.
4283514Sarybchik *
5283514Sarybchik * Redistribution and use in source and binary forms, with or without
6283514Sarybchik * modification, are permitted provided that the following conditions are met:
7283514Sarybchik *
8283514Sarybchik * 1. Redistributions of source code must retain the above copyright notice,
9283514Sarybchik *    this list of conditions and the following disclaimer.
10283514Sarybchik * 2. Redistributions in binary form must reproduce the above copyright notice,
11283514Sarybchik *    this list of conditions and the following disclaimer in the documentation
12283514Sarybchik *    and/or other materials provided with the distribution.
13283514Sarybchik *
14283514Sarybchik * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
15283514Sarybchik * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
16283514Sarybchik * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17283514Sarybchik * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
18283514Sarybchik * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
19283514Sarybchik * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
20283514Sarybchik * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
21283514Sarybchik * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
22283514Sarybchik * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
23283514Sarybchik * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
24283514Sarybchik * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25283514Sarybchik *
26283514Sarybchik * The views and conclusions contained in the software and documentation are
27283514Sarybchik * those of the authors and should not be interpreted as representing official
28283514Sarybchik * policies, either expressed or implied, of the FreeBSD Project.
29283514Sarybchik *
30283514Sarybchik * $FreeBSD: head/sys/dev/sfxge/common/efx_check.h 299322 2016-05-10 07:06:44Z arybchik $
31283514Sarybchik */
32283514Sarybchik
33283514Sarybchik#ifndef _SYS_EFX_CHECK_H
34283514Sarybchik#define	_SYS_EFX_CHECK_H
35283514Sarybchik
36283514Sarybchik#include "efsys.h"
37283514Sarybchik
38283514Sarybchik/*
39283514Sarybchik * Check that the efsys.h header in client code has a valid combination of
40283514Sarybchik * EFSYS_OPT_xxx options.
41283514Sarybchik *
42283514Sarybchik * NOTE: Keep checks for obsolete options here to ensure that they are removed
43283514Sarybchik * from client code (and do not reappear in merges from other branches).
44283514Sarybchik */
45283514Sarybchik
46299253Sarybchik#ifdef EFSYS_OPT_FALCON
47299253Sarybchik# error "FALCON is obsolete and is not supported."
48299253Sarybchik#else
49299253Sarybchik/* FIXME: remove this after Falcon support has been removed */
50299253Sarybchik#define	EFSYS_OPT_MAC_FALCON_XMAC		(0)
51299253Sarybchik
52299253Sarybchik#define	EFSYS_OPT_MON_LM87			(0)
53299253Sarybchik#define	EFSYS_OPT_MON_MAX6647			(0)
54299253Sarybchik#define	EFSYS_OPT_MON_NULL			(0)
55299253Sarybchik
56299253Sarybchik#define	EFSYS_OPT_NVRAM_FALCON_BOOTROM		(0)
57299253Sarybchik#define	EFSYS_OPT_NVRAM_SFT9001			(0)
58299253Sarybchik#define	EFSYS_OPT_NVRAM_SFX7101			(0)
59299253Sarybchik
60299253Sarybchik#define	EFSYS_OPT_PHY_NULL			(0)
61299253Sarybchik#define	EFSYS_OPT_PHY_QT2022C2			(0)
62299253Sarybchik#define	EFSYS_OPT_PHY_QT2025C			(0)
63299253Sarybchik#define	EFSYS_OPT_PHY_SFT9001			(0)
64299253Sarybchik#define	EFSYS_OPT_PHY_SFX7101			(0)
65299253Sarybchik#define	EFSYS_OPT_PHY_TXC43128			(0)
66299253Sarybchik#endif
67299253Sarybchik
68283514Sarybchik/* Support NVRAM based boot config */
69283514Sarybchik#if EFSYS_OPT_BOOTCFG
70283514Sarybchik# if !EFSYS_OPT_NVRAM
71283514Sarybchik#  error "BOOTCFG requires NVRAM"
72283514Sarybchik# endif
73283514Sarybchik#endif /* EFSYS_OPT_BOOTCFG */
74283514Sarybchik
75283514Sarybchik/* Verify chip implements accessed registers */
76283514Sarybchik#if EFSYS_OPT_CHECK_REG
77299320Sarybchik# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD)
78299320Sarybchik#  error "CHECK_REG requires SIENA or HUNTINGTON or MEDFORD"
79283514Sarybchik# endif
80283514Sarybchik#endif /* EFSYS_OPT_CHECK_REG */
81283514Sarybchik
82283514Sarybchik/* Decode fatal errors */
83283514Sarybchik#if EFSYS_OPT_DECODE_INTR_FATAL
84299320Sarybchik# if !EFSYS_OPT_SIENA
85299320Sarybchik#  error "INTR_FATAL requires SIENA"
86283514Sarybchik# endif
87283514Sarybchik#endif /* EFSYS_OPT_DECODE_INTR_FATAL */
88283514Sarybchik
89283514Sarybchik/* Support diagnostic hardware tests */
90283514Sarybchik#if EFSYS_OPT_DIAG
91299320Sarybchik# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD)
92299320Sarybchik#  error "DIAG requires SIENA or HUNTINGTON or MEDFORD"
93283514Sarybchik# endif
94283514Sarybchik#endif /* EFSYS_OPT_DIAG */
95283514Sarybchik
96283514Sarybchik/* Support optimized EVQ data access */
97283514Sarybchik#if EFSYS_OPT_EV_PREFETCH
98299320Sarybchik# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD)
99299320Sarybchik#  error "EV_PREFETCH requires SIENA or HUNTINGTON or MEDFORD"
100283514Sarybchik# endif
101283514Sarybchik#endif /* EFSYS_OPT_EV_PREFETCH */
102283514Sarybchik
103299321Sarybchik#ifdef EFSYS_OPT_FALCON_NIC_CFG_OVERRIDE
104299321Sarybchik# error "FALCON_NIC_CFG_OVERRIDE is obsolete and is not supported."
105299321Sarybchik#endif
106283514Sarybchik
107283514Sarybchik/* Support hardware packet filters */
108283514Sarybchik#if EFSYS_OPT_FILTER
109299320Sarybchik# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD)
110299320Sarybchik#  error "FILTER requires SIENA or HUNTINGTON or MEDFORD"
111283514Sarybchik# endif
112283514Sarybchik#endif /* EFSYS_OPT_FILTER */
113283514Sarybchik
114293730Sarybchik#if (EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD)
115283514Sarybchik# if !EFSYS_OPT_FILTER
116293730Sarybchik#  error "HUNTINGTON or MEDFORD requires FILTER"
117283514Sarybchik# endif
118283514Sarybchik#endif /* EFSYS_OPT_HUNTINGTON */
119283514Sarybchik
120283514Sarybchik/* Support hardware loopback modes */
121283514Sarybchik#if EFSYS_OPT_LOOPBACK
122299320Sarybchik# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD)
123299320Sarybchik#  error "LOOPBACK requires SIENA or HUNTINGTON or MEDFORD"
124283514Sarybchik# endif
125283514Sarybchik#endif /* EFSYS_OPT_LOOPBACK */
126283514Sarybchik
127299322Sarybchik#ifdef EFSYS_OPT_MAC_FALCON_GMAC
128299322Sarybchik# error "MAC_FALCON_GMAC is obsolete and is not supported."
129299322Sarybchik#endif
130283514Sarybchik
131283514Sarybchik/* Support Falcon XMAC */
132283514Sarybchik#if EFSYS_OPT_MAC_FALCON_XMAC
133283514Sarybchik# if !EFSYS_OPT_FALCON
134283514Sarybchik#  error "MAC_FALCON_XMAC requires FALCON"
135283514Sarybchik# endif
136283514Sarybchik#endif /* EFSYS_OPT_MAC_FALCON_XMAC */
137283514Sarybchik
138283514Sarybchik/* Support MAC statistics */
139283514Sarybchik#if EFSYS_OPT_MAC_STATS
140299320Sarybchik# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD)
141299320Sarybchik#  error "MAC_STATS requires SIENA or HUNTINGTON or MEDFORD"
142283514Sarybchik# endif
143283514Sarybchik#endif /* EFSYS_OPT_MAC_STATS */
144283514Sarybchik
145283514Sarybchik/* Support management controller messages */
146283514Sarybchik#if EFSYS_OPT_MCDI
147293730Sarybchik# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD)
148293730Sarybchik#  error "MCDI requires SIENA or HUNTINGTON or MEDFORD"
149283514Sarybchik# endif
150283514Sarybchik#endif /* EFSYS_OPT_MCDI */
151283514Sarybchik
152293730Sarybchik#if (EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD)
153293730Sarybchik# if !EFSYS_OPT_MCDI
154293730Sarybchik#  error "SIENA or HUNTINGTON or MEDFORD requires MCDI"
155293730Sarybchik# endif
156283514Sarybchik#endif
157283514Sarybchik
158291677Sarybchik/* Support MCDI logging */
159291677Sarybchik#if EFSYS_OPT_MCDI_LOGGING
160291677Sarybchik# if !EFSYS_OPT_MCDI
161291677Sarybchik#  error "MCDI_LOGGING requires MCDI"
162291677Sarybchik# endif
163291677Sarybchik#endif /* EFSYS_OPT_MCDI_LOGGING */
164291677Sarybchik
165291927Sarybchik/* Support MCDI proxy authorization */
166291927Sarybchik#if EFSYS_OPT_MCDI_PROXY_AUTH
167291927Sarybchik# if !EFSYS_OPT_MCDI
168291927Sarybchik#  error "MCDI_PROXY_AUTH requires MCDI"
169291927Sarybchik# endif
170291927Sarybchik#endif /* EFSYS_OPT_MCDI_PROXY_AUTH */
171291927Sarybchik
172283514Sarybchik/* Support LM87 monitor */
173283514Sarybchik#if EFSYS_OPT_MON_LM87
174283514Sarybchik# if !EFSYS_OPT_FALCON
175283514Sarybchik#  error "MON_LM87 requires FALCON"
176283514Sarybchik# endif
177283514Sarybchik#endif /* EFSYS_OPT_MON_LM87 */
178283514Sarybchik
179283514Sarybchik/* Support MAX6647 monitor */
180283514Sarybchik#if EFSYS_OPT_MON_MAX6647
181283514Sarybchik# if !EFSYS_OPT_FALCON
182283514Sarybchik#  error "MON_MAX6647 requires FALCON"
183283514Sarybchik# endif
184283514Sarybchik#endif /* EFSYS_OPT_MON_MAX6647 */
185283514Sarybchik
186283514Sarybchik/* Support null monitor */
187283514Sarybchik#if EFSYS_OPT_MON_NULL
188283514Sarybchik# if !EFSYS_OPT_FALCON
189283514Sarybchik#  error "MON_NULL requires FALCON"
190283514Sarybchik# endif
191283514Sarybchik#endif /* EFSYS_OPT_MON_NULL */
192283514Sarybchik
193293767Sarybchik/* Obsolete option */
194283514Sarybchik#ifdef EFSYS_OPT_MON_SIENA
195293767Sarybchik#  error "MON_SIENA is obsolete (replaced by MON_MCDI)."
196283514Sarybchik#endif /* EFSYS_OPT_MON_SIENA*/
197283514Sarybchik
198293767Sarybchik/* Obsolete option */
199283514Sarybchik#ifdef EFSYS_OPT_MON_HUNTINGTON
200293767Sarybchik#  error "MON_HUNTINGTON is obsolete (replaced by MON_MCDI)."
201283514Sarybchik#endif /* EFSYS_OPT_MON_HUNTINGTON*/
202283514Sarybchik
203283514Sarybchik/* Support monitor statistics (voltage/temperature) */
204283514Sarybchik#if EFSYS_OPT_MON_STATS
205299320Sarybchik# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD)
206299320Sarybchik#  error "MON_STATS requires SIENA or HUNTINGTON or MEDFORD"
207283514Sarybchik# endif
208283514Sarybchik#endif /* EFSYS_OPT_MON_STATS */
209283514Sarybchik
210283514Sarybchik/* Support Monitor via mcdi */
211283514Sarybchik#if EFSYS_OPT_MON_MCDI
212293730Sarybchik# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD)
213293730Sarybchik#  error "MON_MCDI requires SIENA or HUNTINGTON or MEDFORD"
214283514Sarybchik# endif
215283514Sarybchik#endif /* EFSYS_OPT_MON_MCDI*/
216283514Sarybchik
217283514Sarybchik/* Support printable names for statistics */
218283514Sarybchik#if EFSYS_OPT_NAMES
219283514Sarybchik# if !(EFSYS_OPT_LOOPBACK || EFSYS_OPT_MAC_STATS || EFSYS_OPT_MCDI || \
220283514Sarybchik	EFSYS_MON_STATS || EFSYS_OPT_PHY_PROPS || EFSYS_OPT_PHY_STATS || \
221283514Sarybchik	EFSYS_OPT_QSTATS)
222283514Sarybchik#  error "NAMES requires LOOPBACK or xxxSTATS or MCDI or PHY_PROPS"
223283514Sarybchik# endif
224283514Sarybchik#endif /* EFSYS_OPT_NAMES */
225283514Sarybchik
226283514Sarybchik/* Support non volatile configuration */
227283514Sarybchik#if EFSYS_OPT_NVRAM
228299320Sarybchik# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD)
229299320Sarybchik#  error "NVRAM requires SIENA or HUNTINGTON or MEDFORD"
230283514Sarybchik# endif
231283514Sarybchik#endif /* EFSYS_OPT_NVRAM */
232283514Sarybchik
233283514Sarybchik/* Support Falcon bootrom */
234283514Sarybchik#if EFSYS_OPT_NVRAM_FALCON_BOOTROM
235283514Sarybchik# if !EFSYS_OPT_NVRAM
236283514Sarybchik#  error "NVRAM_FALCON_BOOTROM requires NVRAM"
237283514Sarybchik# endif
238283514Sarybchik# if !EFSYS_OPT_FALCON
239283514Sarybchik#  error "NVRAM_FALCON_BOOTROM requires FALCON"
240283514Sarybchik# endif
241283514Sarybchik#endif /* EFSYS_OPT_NVRAM_FALCON_BOOTROM */
242283514Sarybchik
243283514Sarybchik/* Support NVRAM config for SFT9001 */
244283514Sarybchik#if EFSYS_OPT_NVRAM_SFT9001
245283514Sarybchik# if !EFSYS_OPT_NVRAM
246283514Sarybchik#  error "NVRAM_SFT9001 requires NVRAM"
247283514Sarybchik# endif
248283514Sarybchik# if !EFSYS_OPT_FALCON
249283514Sarybchik#  error "NVRAM_SFT9001 requires FALCON"
250283514Sarybchik# endif
251283514Sarybchik#endif /* EFSYS_OPT_NVRAM_SFT9001 */
252283514Sarybchik
253283514Sarybchik/* Support NVRAM config for SFX7101 */
254283514Sarybchik#if EFSYS_OPT_NVRAM_SFX7101
255283514Sarybchik# if !EFSYS_OPT_NVRAM
256283514Sarybchik#  error "NVRAM_SFX7101 requires NVRAM"
257283514Sarybchik# endif
258283514Sarybchik# if !EFSYS_OPT_FALCON
259283514Sarybchik#  error "NVRAM_SFX7101 requires FALCON"
260283514Sarybchik# endif
261283514Sarybchik#endif /* EFSYS_OPT_NVRAM_SFX7101 */
262283514Sarybchik
263299254Sarybchik#ifdef EFSYS_OPT_PCIE_TUNE
264299254Sarybchik# error "PCIE_TUNE is obsolete and is not supported."
265299254Sarybchik#endif
266283514Sarybchik
267293767Sarybchik/* Obsolete option */
268299252Sarybchik#ifdef EFSYS_OPT_PHY_BIST
269299252Sarybchik# error "PHY_BIST is obsolete (replaced by BIST)."
270299252Sarybchik#endif
271283514Sarybchik
272283514Sarybchik/* Support PHY flags */
273283514Sarybchik#if EFSYS_OPT_PHY_FLAGS
274299320Sarybchik# if !EFSYS_OPT_SIENA
275299320Sarybchik#  error "PHY_FLAGS requires SIENA"
276283514Sarybchik# endif
277283514Sarybchik#endif /* EFSYS_OPT_PHY_FLAGS */
278283514Sarybchik
279283514Sarybchik/* Support for PHY LED control */
280283514Sarybchik#if EFSYS_OPT_PHY_LED_CONTROL
281299320Sarybchik# if !EFSYS_OPT_SIENA
282299320Sarybchik#  error "PHY_LED_CONTROL requires SIENA"
283283514Sarybchik# endif
284283514Sarybchik#endif /* EFSYS_OPT_PHY_LED_CONTROL */
285283514Sarybchik
286283514Sarybchik/* Support NULL PHY */
287283514Sarybchik#if EFSYS_OPT_PHY_NULL
288283514Sarybchik# if !EFSYS_OPT_FALCON
289283514Sarybchik#  error "PHY_NULL requires FALCON"
290283514Sarybchik# endif
291283514Sarybchik#endif /* EFSYS_OPT_PHY_NULL */
292283514Sarybchik
293283514Sarybchik/* Obsolete option */
294283514Sarybchik#ifdef EFSYS_OPT_PHY_PM8358
295283514Sarybchik# error "EFSYS_OPT_PHY_PM8358 is obsolete and is not supported."
296283514Sarybchik#endif
297283514Sarybchik
298283514Sarybchik/* Support PHY properties */
299283514Sarybchik#if EFSYS_OPT_PHY_PROPS
300299320Sarybchik# if !EFSYS_OPT_SIENA
301299320Sarybchik#  error "PHY_PROPS requires SIENA"
302283514Sarybchik# endif
303283514Sarybchik#endif /* EFSYS_OPT_PHY_PROPS */
304283514Sarybchik
305283514Sarybchik/* Support QT2022C2 PHY */
306283514Sarybchik#if EFSYS_OPT_PHY_QT2022C2
307283514Sarybchik# if !EFSYS_OPT_FALCON
308283514Sarybchik#  error "PHY_QT2022C2 requires FALCON"
309283514Sarybchik# endif
310283514Sarybchik#endif /* EFSYS_OPT_PHY_QT2022C2 */
311283514Sarybchik
312283514Sarybchik/* Support QT2025C PHY (Wakefield NIC) */
313283514Sarybchik#if EFSYS_OPT_PHY_QT2025C
314283514Sarybchik# if !EFSYS_OPT_FALCON
315283514Sarybchik#  error "PHY_QT2025C requires FALCON"
316283514Sarybchik# endif
317283514Sarybchik#endif /* EFSYS_OPT_PHY_QT2025C */
318283514Sarybchik
319283514Sarybchik/* Support SFT9001 PHY (Starbolt NIC) */
320283514Sarybchik#if EFSYS_OPT_PHY_SFT9001
321283514Sarybchik# if !EFSYS_OPT_FALCON
322283514Sarybchik#  error "PHY_SFT9001 requires FALCON"
323283514Sarybchik# endif
324283514Sarybchik#endif /* EFSYS_OPT_PHY_SFT9001 */
325283514Sarybchik
326283514Sarybchik/* Support SFX7101 PHY (SFE4001 NIC) */
327283514Sarybchik#if EFSYS_OPT_PHY_SFX7101
328283514Sarybchik# if !EFSYS_OPT_FALCON
329283514Sarybchik#  error "PHY_SFX7101 requires FALCON"
330283514Sarybchik# endif
331283514Sarybchik#endif /* EFSYS_OPT_PHY_SFX7101 */
332283514Sarybchik
333283514Sarybchik/* Support PHY statistics */
334283514Sarybchik#if EFSYS_OPT_PHY_STATS
335299320Sarybchik# if !EFSYS_OPT_SIENA
336299320Sarybchik#  error "PHY_STATS requires SIENA"
337283514Sarybchik# endif
338283514Sarybchik#endif /* EFSYS_OPT_PHY_STATS */
339283514Sarybchik
340283514Sarybchik/* Support TXC43128 PHY (SFE4003 NIC) */
341283514Sarybchik#if EFSYS_OPT_PHY_TXC43128
342283514Sarybchik# if !EFSYS_OPT_FALCON
343283514Sarybchik#  error "PHY_TXC43128 requires FALCON"
344283514Sarybchik# endif
345283514Sarybchik#endif /* EFSYS_OPT_PHY_TXC43128 */
346283514Sarybchik
347283514Sarybchik/* Support EVQ/RXQ/TXQ statistics */
348283514Sarybchik#if EFSYS_OPT_QSTATS
349299320Sarybchik# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD)
350299320Sarybchik#  error "QSTATS requires SIENA or HUNTINGTON or MEDFORD"
351283514Sarybchik# endif
352283514Sarybchik#endif /* EFSYS_OPT_QSTATS */
353283514Sarybchik
354293806Sarybchik/* Obsolete option */
355293806Sarybchik#ifdef EFSYS_OPT_RX_HDR_SPLIT
356293806Sarybchik# error "RX_HDR_SPLIT is obsolete and is not supported"
357283514Sarybchik#endif /* EFSYS_OPT_RX_HDR_SPLIT */
358283514Sarybchik
359283514Sarybchik/* Support receive scaling (RSS) */
360283514Sarybchik#if EFSYS_OPT_RX_SCALE
361299320Sarybchik# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD)
362299320Sarybchik#  error "RX_SCALE requires SIENA or HUNTINGTON or MEDFORD"
363283514Sarybchik# endif
364283514Sarybchik#endif /* EFSYS_OPT_RX_SCALE */
365283514Sarybchik
366283514Sarybchik/* Support receive scatter DMA */
367283514Sarybchik#if EFSYS_OPT_RX_SCATTER
368299320Sarybchik# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD)
369299320Sarybchik#  error "RX_SCATTER requires SIENA or HUNTINGTON or MEDFORD"
370283514Sarybchik# endif
371283514Sarybchik#endif /* EFSYS_OPT_RX_SCATTER */
372283514Sarybchik
373283514Sarybchik/* Obsolete option */
374283514Sarybchik#ifdef EFSYS_OPT_STAT_NAME
375293767Sarybchik# error "STAT_NAME is obsolete (replaced by NAMES)."
376283514Sarybchik#endif
377283514Sarybchik
378283514Sarybchik/* Support PCI Vital Product Data (VPD) */
379283514Sarybchik#if EFSYS_OPT_VPD
380299320Sarybchik# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD)
381299320Sarybchik#  error "VPD requires SIENA or HUNTINGTON or MEDFORD"
382283514Sarybchik# endif
383283514Sarybchik#endif /* EFSYS_OPT_VPD */
384283514Sarybchik
385283514Sarybchik/* Support Wake on LAN */
386283514Sarybchik#if EFSYS_OPT_WOL
387283514Sarybchik# if !EFSYS_OPT_SIENA
388283514Sarybchik#  error "WOL requires SIENA"
389283514Sarybchik# endif
390283514Sarybchik#endif /* EFSYS_OPT_WOL */
391283514Sarybchik
392293758Sarybchik/* Obsolete option */
393293758Sarybchik#ifdef EFSYS_OPT_MCAST_FILTER_LIST
394293767Sarybchik#  error "MCAST_FILTER_LIST is obsolete and is not supported"
395283514Sarybchik#endif /* EFSYS_OPT_MCAST_FILTER_LIST */
396283514Sarybchik
397283514Sarybchik/* Support BIST */
398283514Sarybchik#if EFSYS_OPT_BIST
399299320Sarybchik# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD)
400299320Sarybchik#  error "BIST requires SIENA or HUNTINGTON or MEDFORD"
401283514Sarybchik# endif
402283514Sarybchik#endif /* EFSYS_OPT_BIST */
403283514Sarybchik
404293901Sarybchik/* Support MCDI licensing API */
405293901Sarybchik#if EFSYS_OPT_LICENSING
406293901Sarybchik# if !EFSYS_OPT_MCDI
407293901Sarybchik#  error "LICENSING requires MCDI"
408293901Sarybchik# endif
409293901Sarybchik# if !EFSYS_HAS_UINT64
410293901Sarybchik#  error "LICENSING requires UINT64"
411293901Sarybchik# endif
412293901Sarybchik#endif /* EFSYS_OPT_LICENSING */
413293901Sarybchik
414293901Sarybchik
415283514Sarybchik#endif /* _SYS_EFX_CHECK_H */
416