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