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: releng/10.2/sys/dev/sfxge/common/efx_check.h 284555 2015-06-18 15:46:39Z 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
46283514Sarybchik/* Support NVRAM based boot config */
47283514Sarybchik#if EFSYS_OPT_BOOTCFG
48283514Sarybchik# if !EFSYS_OPT_NVRAM
49283514Sarybchik#  error "BOOTCFG requires NVRAM"
50283514Sarybchik# endif
51283514Sarybchik#endif /* EFSYS_OPT_BOOTCFG */
52283514Sarybchik
53283514Sarybchik/* Verify chip implements accessed registers */
54283514Sarybchik#if EFSYS_OPT_CHECK_REG
55283514Sarybchik# if !(EFSYS_OPT_FALCON || EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON)
56283514Sarybchik#  error "CHECK_REG requires FALCON or SIENA or HUNTINGTON"
57283514Sarybchik# endif
58283514Sarybchik#endif /* EFSYS_OPT_CHECK_REG */
59283514Sarybchik
60283514Sarybchik/* Decode fatal errors */
61283514Sarybchik#if EFSYS_OPT_DECODE_INTR_FATAL
62283514Sarybchik# if !(EFSYS_OPT_FALCON || EFSYS_OPT_SIENA)
63283514Sarybchik#  if EFSYS_OPT_HUNTINGTON
64283514Sarybchik#   error "INTR_FATAL not supported on HUNTINGTON"
65283514Sarybchik#  endif
66283514Sarybchik#  error "INTR_FATAL requires FALCON or SIENA"
67283514Sarybchik# endif
68283514Sarybchik#endif /* EFSYS_OPT_DECODE_INTR_FATAL */
69283514Sarybchik
70283514Sarybchik/* Support diagnostic hardware tests */
71283514Sarybchik#if EFSYS_OPT_DIAG
72283514Sarybchik# if !(EFSYS_OPT_FALCON || EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON)
73283514Sarybchik#  error "DIAG requires FALCON or SIENA or HUNTINGTON"
74283514Sarybchik# endif
75283514Sarybchik#endif /* EFSYS_OPT_DIAG */
76283514Sarybchik
77283514Sarybchik/* Support optimized EVQ data access */
78283514Sarybchik#if EFSYS_OPT_EV_PREFETCH
79283514Sarybchik# if !(EFSYS_OPT_FALCON || EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON)
80283514Sarybchik#  error "EV_PREFETCH requires FALCON or SIENA or HUNTINGTON"
81283514Sarybchik# endif
82283514Sarybchik#endif /* EFSYS_OPT_EV_PREFETCH */
83283514Sarybchik
84283514Sarybchik/* Support overriding the NVRAM and VPD configuration */
85283514Sarybchik#if EFSYS_OPT_FALCON_NIC_CFG_OVERRIDE
86283514Sarybchik# if !EFSYS_OPT_FALCON
87283514Sarybchik#  error "FALCON_NIC_CFG_OVERRIDE requires FALCON"
88283514Sarybchik# endif
89283514Sarybchik#endif /* EFSYS_OPT_FALCON_NIC_CFG_OVERRIDE */
90283514Sarybchik
91283514Sarybchik/* Support hardware packet filters */
92283514Sarybchik#if EFSYS_OPT_FILTER
93283514Sarybchik# if !(EFSYS_OPT_FALCON || EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON)
94283514Sarybchik#  error "FILTER requires FALCON or SIENA or HUNTINGTON"
95283514Sarybchik# endif
96283514Sarybchik#endif /* EFSYS_OPT_FILTER */
97283514Sarybchik
98283514Sarybchik#if EFSYS_OPT_HUNTINGTON
99283514Sarybchik# if !EFSYS_OPT_FILTER
100283514Sarybchik#  error "HUNTINGTON requires FILTER"
101283514Sarybchik# endif
102283514Sarybchik#endif /* EFSYS_OPT_HUNTINGTON */
103283514Sarybchik
104283514Sarybchik/* Support hardware loopback modes */
105283514Sarybchik#if EFSYS_OPT_LOOPBACK
106283514Sarybchik# if !(EFSYS_OPT_FALCON || EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON)
107283514Sarybchik#  error "LOOPBACK requires FALCON or SIENA or HUNTINGTON"
108283514Sarybchik# endif
109283514Sarybchik#endif /* EFSYS_OPT_LOOPBACK */
110283514Sarybchik
111283514Sarybchik/* Support Falcon GMAC */
112283514Sarybchik#if EFSYS_OPT_MAC_FALCON_GMAC
113283514Sarybchik# if !EFSYS_OPT_FALCON
114283514Sarybchik#  error "MAC_FALCON_GMAC requires FALCON"
115283514Sarybchik# endif
116283514Sarybchik#endif /* EFSYS_OPT_MAC_FALCON_GMAC */
117283514Sarybchik
118283514Sarybchik/* Support Falcon XMAC */
119283514Sarybchik#if EFSYS_OPT_MAC_FALCON_XMAC
120283514Sarybchik# if !EFSYS_OPT_FALCON
121283514Sarybchik#  error "MAC_FALCON_XMAC requires FALCON"
122283514Sarybchik# endif
123283514Sarybchik#endif /* EFSYS_OPT_MAC_FALCON_XMAC */
124283514Sarybchik
125283514Sarybchik/* Support MAC statistics */
126283514Sarybchik#if EFSYS_OPT_MAC_STATS
127283514Sarybchik# if !(EFSYS_OPT_FALCON || EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON)
128283514Sarybchik#  error "MAC_STATS requires FALCON or SIENA or HUNTINGTON"
129283514Sarybchik# endif
130283514Sarybchik#endif /* EFSYS_OPT_MAC_STATS */
131283514Sarybchik
132283514Sarybchik/* Support management controller messages */
133283514Sarybchik#if EFSYS_OPT_MCDI
134283514Sarybchik# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON)
135283514Sarybchik#  if EFSYS_OPT_FALCON
136283514Sarybchik#   error "MCDI not supported on FALCON"
137283514Sarybchik#  endif
138283514Sarybchik#  error "MCDI requires SIENA or HUNTINGTON"
139283514Sarybchik# endif
140283514Sarybchik#endif /* EFSYS_OPT_MCDI */
141283514Sarybchik
142283514Sarybchik#if EFSYS_OPT_SIENA && !EFSYS_OPT_MCDI
143283514Sarybchik# error "SIENA requires MCDI"
144283514Sarybchik#endif
145283514Sarybchik#if EFSYS_OPT_HUNTINGTON && !EFSYS_OPT_MCDI
146283514Sarybchik# error "HUNTINGTON requires MCDI"
147283514Sarybchik#endif
148283514Sarybchik
149283514Sarybchik/* Support LM87 monitor */
150283514Sarybchik#if EFSYS_OPT_MON_LM87
151283514Sarybchik# if !EFSYS_OPT_FALCON
152283514Sarybchik#  error "MON_LM87 requires FALCON"
153283514Sarybchik# endif
154283514Sarybchik#endif /* EFSYS_OPT_MON_LM87 */
155283514Sarybchik
156283514Sarybchik/* Support MAX6647 monitor */
157283514Sarybchik#if EFSYS_OPT_MON_MAX6647
158283514Sarybchik# if !EFSYS_OPT_FALCON
159283514Sarybchik#  error "MON_MAX6647 requires FALCON"
160283514Sarybchik# endif
161283514Sarybchik#endif /* EFSYS_OPT_MON_MAX6647 */
162283514Sarybchik
163283514Sarybchik/* Support null monitor */
164283514Sarybchik#if EFSYS_OPT_MON_NULL
165283514Sarybchik# if !EFSYS_OPT_FALCON
166283514Sarybchik#  error "MON_NULL requires FALCON"
167283514Sarybchik# endif
168283514Sarybchik#endif /* EFSYS_OPT_MON_NULL */
169283514Sarybchik
170283514Sarybchik/* Support Siena monitor */
171283514Sarybchik#ifdef EFSYS_OPT_MON_SIENA
172283514Sarybchik#  error "MON_SIENA is obsolete use MON_MCDI"
173283514Sarybchik#endif /* EFSYS_OPT_MON_SIENA*/
174283514Sarybchik
175283514Sarybchik/* Support Huntington monitor */
176283514Sarybchik#ifdef EFSYS_OPT_MON_HUNTINGTON
177283514Sarybchik#  error "MON_HUNTINGTON is obsolete use MON_MCDI"
178283514Sarybchik#endif /* EFSYS_OPT_MON_HUNTINGTON*/
179283514Sarybchik
180283514Sarybchik/* Support monitor statistics (voltage/temperature) */
181283514Sarybchik#if EFSYS_OPT_MON_STATS
182283514Sarybchik# if !(EFSYS_OPT_FALCON || EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON)
183283514Sarybchik#  error "MON_STATS requires FALCON or SIENA or HUNTINGTON"
184283514Sarybchik# endif
185283514Sarybchik#endif /* EFSYS_OPT_MON_STATS */
186283514Sarybchik
187283514Sarybchik/* Support Monitor via mcdi */
188283514Sarybchik#if EFSYS_OPT_MON_MCDI
189283514Sarybchik# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON)
190283514Sarybchik#  error "MON_MCDI requires SIENA or HUNTINGTON"
191283514Sarybchik# endif
192283514Sarybchik#endif /* EFSYS_OPT_MON_MCDI*/
193283514Sarybchik
194283514Sarybchik/* Support printable names for statistics */
195283514Sarybchik#if EFSYS_OPT_NAMES
196283514Sarybchik# if !(EFSYS_OPT_LOOPBACK || EFSYS_OPT_MAC_STATS || EFSYS_OPT_MCDI || \
197283514Sarybchik	EFSYS_MON_STATS || EFSYS_OPT_PHY_PROPS || EFSYS_OPT_PHY_STATS || \
198283514Sarybchik	EFSYS_OPT_QSTATS)
199283514Sarybchik#  error "NAMES requires LOOPBACK or xxxSTATS or MCDI or PHY_PROPS"
200283514Sarybchik# endif
201283514Sarybchik#endif /* EFSYS_OPT_NAMES */
202283514Sarybchik
203283514Sarybchik/* Support non volatile configuration */
204283514Sarybchik#if EFSYS_OPT_NVRAM
205283514Sarybchik# if !(EFSYS_OPT_FALCON || EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON)
206283514Sarybchik#  error "NVRAM requires FALCON or SIENA or HUNTINGTON"
207283514Sarybchik# endif
208283514Sarybchik#endif /* EFSYS_OPT_NVRAM */
209283514Sarybchik
210283514Sarybchik/* Support Falcon bootrom */
211283514Sarybchik#if EFSYS_OPT_NVRAM_FALCON_BOOTROM
212283514Sarybchik# if !EFSYS_OPT_NVRAM
213283514Sarybchik#  error "NVRAM_FALCON_BOOTROM requires NVRAM"
214283514Sarybchik# endif
215283514Sarybchik# if !EFSYS_OPT_FALCON
216283514Sarybchik#  error "NVRAM_FALCON_BOOTROM requires FALCON"
217283514Sarybchik# endif
218283514Sarybchik#endif /* EFSYS_OPT_NVRAM_FALCON_BOOTROM */
219283514Sarybchik
220283514Sarybchik/* Support NVRAM config for SFT9001 */
221283514Sarybchik#if EFSYS_OPT_NVRAM_SFT9001
222283514Sarybchik# if !EFSYS_OPT_NVRAM
223283514Sarybchik#  error "NVRAM_SFT9001 requires NVRAM"
224283514Sarybchik# endif
225283514Sarybchik# if !EFSYS_OPT_FALCON
226283514Sarybchik#  error "NVRAM_SFT9001 requires FALCON"
227283514Sarybchik# endif
228283514Sarybchik#endif /* EFSYS_OPT_NVRAM_SFT9001 */
229283514Sarybchik
230283514Sarybchik/* Support NVRAM config for SFX7101 */
231283514Sarybchik#if EFSYS_OPT_NVRAM_SFX7101
232283514Sarybchik# if !EFSYS_OPT_NVRAM
233283514Sarybchik#  error "NVRAM_SFX7101 requires NVRAM"
234283514Sarybchik# endif
235283514Sarybchik# if !EFSYS_OPT_FALCON
236283514Sarybchik#  error "NVRAM_SFX7101 requires FALCON"
237283514Sarybchik# endif
238283514Sarybchik#endif /* EFSYS_OPT_NVRAM_SFX7101 */
239283514Sarybchik
240283514Sarybchik/* Support PCIe interface tuning */
241283514Sarybchik#if EFSYS_OPT_PCIE_TUNE
242283514Sarybchik# if !(EFSYS_OPT_FALCON || EFSYS_OPT_SIENA)
243283514Sarybchik#  error "PCIE_TUNE requires FALCON or SIENA"
244283514Sarybchik# endif
245283514Sarybchik#endif /* EFSYS_OPT_PCIE_TUNE */
246283514Sarybchik
247283514Sarybchik/* Support PHY BIST diagnostics */
248283514Sarybchik#if EFSYS_OPT_PHY_BIST
249283514Sarybchik#  error "PHY_BIST is obsolete. It has been replaced by the BIST option."
250283514Sarybchik#endif /* EFSYS_OPT_PHY_BIST */
251283514Sarybchik
252283514Sarybchik/* Support PHY flags */
253283514Sarybchik#if EFSYS_OPT_PHY_FLAGS
254283514Sarybchik# if !(EFSYS_OPT_FALCON || EFSYS_OPT_SIENA)
255283514Sarybchik#  error "PHY_FLAGS requires FALCON or SIENA"
256283514Sarybchik# endif
257283514Sarybchik#endif /* EFSYS_OPT_PHY_FLAGS */
258283514Sarybchik
259283514Sarybchik/* Support for PHY LED control */
260283514Sarybchik#if EFSYS_OPT_PHY_LED_CONTROL
261283514Sarybchik# if !(EFSYS_OPT_FALCON || EFSYS_OPT_SIENA)
262283514Sarybchik#  error "PHY_LED_CONTROL requires FALCON or SIENA"
263283514Sarybchik# endif
264283514Sarybchik#endif /* EFSYS_OPT_PHY_LED_CONTROL */
265283514Sarybchik
266283514Sarybchik/* Support NULL PHY */
267283514Sarybchik#if EFSYS_OPT_PHY_NULL
268283514Sarybchik# if !EFSYS_OPT_FALCON
269283514Sarybchik#  error "PHY_NULL requires FALCON"
270283514Sarybchik# endif
271283514Sarybchik#endif /* EFSYS_OPT_PHY_NULL */
272283514Sarybchik
273283514Sarybchik/* Obsolete option */
274283514Sarybchik#ifdef EFSYS_OPT_PHY_PM8358
275283514Sarybchik# error "EFSYS_OPT_PHY_PM8358 is obsolete and is not supported."
276283514Sarybchik#endif
277283514Sarybchik
278283514Sarybchik/* Support PHY properties */
279283514Sarybchik#if EFSYS_OPT_PHY_PROPS
280283514Sarybchik# if !(EFSYS_OPT_FALCON || EFSYS_OPT_SIENA)
281283514Sarybchik#  error "PHY_PROPS requires FALCON or SIENA"
282283514Sarybchik# endif
283283514Sarybchik#endif /* EFSYS_OPT_PHY_PROPS */
284283514Sarybchik
285283514Sarybchik/* Support QT2022C2 PHY */
286283514Sarybchik#if EFSYS_OPT_PHY_QT2022C2
287283514Sarybchik# if !EFSYS_OPT_FALCON
288283514Sarybchik#  error "PHY_QT2022C2 requires FALCON"
289283514Sarybchik# endif
290283514Sarybchik#endif /* EFSYS_OPT_PHY_QT2022C2 */
291283514Sarybchik
292283514Sarybchik/* Support QT2025C PHY (Wakefield NIC) */
293283514Sarybchik#if EFSYS_OPT_PHY_QT2025C
294283514Sarybchik# if !EFSYS_OPT_FALCON
295283514Sarybchik#  error "PHY_QT2025C requires FALCON"
296283514Sarybchik# endif
297283514Sarybchik#endif /* EFSYS_OPT_PHY_QT2025C */
298283514Sarybchik
299283514Sarybchik/* Support SFT9001 PHY (Starbolt NIC) */
300283514Sarybchik#if EFSYS_OPT_PHY_SFT9001
301283514Sarybchik# if !EFSYS_OPT_FALCON
302283514Sarybchik#  error "PHY_SFT9001 requires FALCON"
303283514Sarybchik# endif
304283514Sarybchik#endif /* EFSYS_OPT_PHY_SFT9001 */
305283514Sarybchik
306283514Sarybchik/* Support SFX7101 PHY (SFE4001 NIC) */
307283514Sarybchik#if EFSYS_OPT_PHY_SFX7101
308283514Sarybchik# if !EFSYS_OPT_FALCON
309283514Sarybchik#  error "PHY_SFX7101 requires FALCON"
310283514Sarybchik# endif
311283514Sarybchik#endif /* EFSYS_OPT_PHY_SFX7101 */
312283514Sarybchik
313283514Sarybchik/* Support PHY statistics */
314283514Sarybchik#if EFSYS_OPT_PHY_STATS
315283514Sarybchik# if !(EFSYS_OPT_FALCON || EFSYS_OPT_SIENA)
316283514Sarybchik#  error "PHY_STATS requires FALCON or SIENA"
317283514Sarybchik# endif
318283514Sarybchik#endif /* EFSYS_OPT_PHY_STATS */
319283514Sarybchik
320283514Sarybchik/* Support TXC43128 PHY (SFE4003 NIC) */
321283514Sarybchik#if EFSYS_OPT_PHY_TXC43128
322283514Sarybchik# if !EFSYS_OPT_FALCON
323283514Sarybchik#  error "PHY_TXC43128 requires FALCON"
324283514Sarybchik# endif
325283514Sarybchik#endif /* EFSYS_OPT_PHY_TXC43128 */
326283514Sarybchik
327283514Sarybchik/* Support EVQ/RXQ/TXQ statistics */
328283514Sarybchik#if EFSYS_OPT_QSTATS
329283514Sarybchik# if !(EFSYS_OPT_FALCON || EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON)
330283514Sarybchik#  error "QSTATS requires FALCON or SIENA or HUNTINGTON"
331283514Sarybchik# endif
332283514Sarybchik#endif /* EFSYS_OPT_QSTATS */
333283514Sarybchik
334283514Sarybchik/* Support receive header split */
335283514Sarybchik#if EFSYS_OPT_RX_HDR_SPLIT
336283514Sarybchik# if !(EFSYS_OPT_FALCON || EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON)
337283514Sarybchik#  error "RX_HDR_SPLIT requires FALCON or SIENA or HUNTINGTON"
338283514Sarybchik# endif
339283514Sarybchik#endif /* EFSYS_OPT_RX_HDR_SPLIT */
340283514Sarybchik
341283514Sarybchik/* Support receive scaling (RSS) */
342283514Sarybchik#if EFSYS_OPT_RX_SCALE
343283514Sarybchik# if !(EFSYS_OPT_FALCON || EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON)
344283514Sarybchik#  error "RX_SCALE requires FALCON or SIENA or HUNTINGTON"
345283514Sarybchik# endif
346283514Sarybchik#endif /* EFSYS_OPT_RX_SCALE */
347283514Sarybchik
348283514Sarybchik/* Support receive scatter DMA */
349283514Sarybchik#if EFSYS_OPT_RX_SCATTER
350283514Sarybchik# if !(EFSYS_OPT_FALCON || EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON)
351283514Sarybchik#  error "RX_SCATTER requires FALCON or SIENA or HUNTINGTON"
352283514Sarybchik# endif
353283514Sarybchik#endif /* EFSYS_OPT_RX_SCATTER */
354283514Sarybchik
355283514Sarybchik/* Obsolete option */
356283514Sarybchik#ifdef EFSYS_OPT_STAT_NAME
357283514Sarybchik# error "EFSYS_OPT_STAT_NAME is obsolete (replaced by EFSYS_OPT_NAMES)."
358283514Sarybchik#endif
359283514Sarybchik
360283514Sarybchik/* Support PCI Vital Product Data (VPD) */
361283514Sarybchik#if EFSYS_OPT_VPD
362283514Sarybchik# if !(EFSYS_OPT_FALCON || EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON)
363283514Sarybchik#  error "VPD requires FALCON or SIENA or HUNTINGTON"
364283514Sarybchik# endif
365283514Sarybchik#endif /* EFSYS_OPT_VPD */
366283514Sarybchik
367283514Sarybchik/* Support Wake on LAN */
368283514Sarybchik#if EFSYS_OPT_WOL
369283514Sarybchik# if !EFSYS_OPT_SIENA
370283514Sarybchik#  error "WOL requires SIENA"
371283514Sarybchik# endif
372283514Sarybchik#endif /* EFSYS_OPT_WOL */
373283514Sarybchik
374283514Sarybchik/* Support calculating multicast pktfilter in common code */
375283514Sarybchik#if EFSYS_OPT_MCAST_FILTER_LIST
376283514Sarybchik# if !(EFSYS_OPT_FALCON || EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON)
377283514Sarybchik#  error "MCAST_FILTER_LIST requires FALCON or SIENA or HUNTINGTON"
378283514Sarybchik# endif
379283514Sarybchik#endif /* EFSYS_OPT_MCAST_FILTER_LIST */
380283514Sarybchik
381283514Sarybchik/* Support BIST */
382283514Sarybchik#if EFSYS_OPT_BIST
383283514Sarybchik# if !(EFSYS_OPT_FALCON || EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON)
384283514Sarybchik#  error "BIST requires FALCON or SIENA or HUNTINGTON"
385283514Sarybchik# endif
386283514Sarybchik#endif /* EFSYS_OPT_BIST */
387283514Sarybchik
388283514Sarybchik#endif /* _SYS_EFX_CHECK_H */
389