1*49ef7e06SGarrett D'Amore /* 2*49ef7e06SGarrett D'Amore * Copyright (c) 2012-2015 Solarflare Communications Inc. 3*49ef7e06SGarrett D'Amore * All rights reserved. 4*49ef7e06SGarrett D'Amore * 5*49ef7e06SGarrett D'Amore * Redistribution and use in source and binary forms, with or without 6*49ef7e06SGarrett D'Amore * modification, are permitted provided that the following conditions are met: 7*49ef7e06SGarrett D'Amore * 8*49ef7e06SGarrett D'Amore * 1. Redistributions of source code must retain the above copyright notice, 9*49ef7e06SGarrett D'Amore * this list of conditions and the following disclaimer. 10*49ef7e06SGarrett D'Amore * 2. Redistributions in binary form must reproduce the above copyright notice, 11*49ef7e06SGarrett D'Amore * this list of conditions and the following disclaimer in the documentation 12*49ef7e06SGarrett D'Amore * and/or other materials provided with the distribution. 13*49ef7e06SGarrett D'Amore * 14*49ef7e06SGarrett D'Amore * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 15*49ef7e06SGarrett D'Amore * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 16*49ef7e06SGarrett D'Amore * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 17*49ef7e06SGarrett D'Amore * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 18*49ef7e06SGarrett D'Amore * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 19*49ef7e06SGarrett D'Amore * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 20*49ef7e06SGarrett D'Amore * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 21*49ef7e06SGarrett D'Amore * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 22*49ef7e06SGarrett D'Amore * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 23*49ef7e06SGarrett D'Amore * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 24*49ef7e06SGarrett D'Amore * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25*49ef7e06SGarrett D'Amore * 26*49ef7e06SGarrett D'Amore * The views and conclusions contained in the software and documentation are 27*49ef7e06SGarrett D'Amore * those of the authors and should not be interpreted as representing official 28*49ef7e06SGarrett D'Amore * policies, either expressed or implied, of the FreeBSD Project. 29*49ef7e06SGarrett D'Amore */ 30*49ef7e06SGarrett D'Amore 31*49ef7e06SGarrett D'Amore #ifndef _SYS_EFX_CHECK_H 32*49ef7e06SGarrett D'Amore #define _SYS_EFX_CHECK_H 33*49ef7e06SGarrett D'Amore 34*49ef7e06SGarrett D'Amore #include "efsys.h" 35*49ef7e06SGarrett D'Amore 36*49ef7e06SGarrett D'Amore /* 37*49ef7e06SGarrett D'Amore * Check that the efsys.h header in client code has a valid combination of 38*49ef7e06SGarrett D'Amore * EFSYS_OPT_xxx options. 39*49ef7e06SGarrett D'Amore * 40*49ef7e06SGarrett D'Amore * NOTE: Keep checks for obsolete options here to ensure that they are removed 41*49ef7e06SGarrett D'Amore * from client code (and do not reappear in merges from other branches). 42*49ef7e06SGarrett D'Amore */ 43*49ef7e06SGarrett D'Amore 44*49ef7e06SGarrett D'Amore #ifdef EFSYS_OPT_FALCON 45*49ef7e06SGarrett D'Amore # error "FALCON is obsolete and is not supported." 46*49ef7e06SGarrett D'Amore #endif 47*49ef7e06SGarrett D'Amore 48*49ef7e06SGarrett D'Amore /* Support NVRAM based boot config */ 49*49ef7e06SGarrett D'Amore #if EFSYS_OPT_BOOTCFG 50*49ef7e06SGarrett D'Amore # if !EFSYS_OPT_NVRAM 51*49ef7e06SGarrett D'Amore # error "BOOTCFG requires NVRAM" 52*49ef7e06SGarrett D'Amore # endif 53*49ef7e06SGarrett D'Amore #endif /* EFSYS_OPT_BOOTCFG */ 54*49ef7e06SGarrett D'Amore 55*49ef7e06SGarrett D'Amore /* Verify chip implements accessed registers */ 56*49ef7e06SGarrett D'Amore #if EFSYS_OPT_CHECK_REG 57*49ef7e06SGarrett D'Amore # if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD) 58*49ef7e06SGarrett D'Amore # error "CHECK_REG requires SIENA or HUNTINGTON or MEDFORD" 59*49ef7e06SGarrett D'Amore # endif 60*49ef7e06SGarrett D'Amore #endif /* EFSYS_OPT_CHECK_REG */ 61*49ef7e06SGarrett D'Amore 62*49ef7e06SGarrett D'Amore /* Decode fatal errors */ 63*49ef7e06SGarrett D'Amore #if EFSYS_OPT_DECODE_INTR_FATAL 64*49ef7e06SGarrett D'Amore # if !EFSYS_OPT_SIENA 65*49ef7e06SGarrett D'Amore # error "INTR_FATAL requires SIENA" 66*49ef7e06SGarrett D'Amore # endif 67*49ef7e06SGarrett D'Amore #endif /* EFSYS_OPT_DECODE_INTR_FATAL */ 68*49ef7e06SGarrett D'Amore 69*49ef7e06SGarrett D'Amore /* Support diagnostic hardware tests */ 70*49ef7e06SGarrett D'Amore #if EFSYS_OPT_DIAG 71*49ef7e06SGarrett D'Amore # if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD) 72*49ef7e06SGarrett D'Amore # error "DIAG requires SIENA or HUNTINGTON or MEDFORD" 73*49ef7e06SGarrett D'Amore # endif 74*49ef7e06SGarrett D'Amore #endif /* EFSYS_OPT_DIAG */ 75*49ef7e06SGarrett D'Amore 76*49ef7e06SGarrett D'Amore /* Support optimized EVQ data access */ 77*49ef7e06SGarrett D'Amore #if EFSYS_OPT_EV_PREFETCH 78*49ef7e06SGarrett D'Amore # if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD) 79*49ef7e06SGarrett D'Amore # error "EV_PREFETCH requires SIENA or HUNTINGTON or MEDFORD" 80*49ef7e06SGarrett D'Amore # endif 81*49ef7e06SGarrett D'Amore #endif /* EFSYS_OPT_EV_PREFETCH */ 82*49ef7e06SGarrett D'Amore 83*49ef7e06SGarrett D'Amore #ifdef EFSYS_OPT_FALCON_NIC_CFG_OVERRIDE 84*49ef7e06SGarrett D'Amore # error "FALCON_NIC_CFG_OVERRIDE is obsolete and is not supported." 85*49ef7e06SGarrett D'Amore #endif 86*49ef7e06SGarrett D'Amore 87*49ef7e06SGarrett D'Amore /* Support hardware packet filters */ 88*49ef7e06SGarrett D'Amore #if EFSYS_OPT_FILTER 89*49ef7e06SGarrett D'Amore # if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD) 90*49ef7e06SGarrett D'Amore # error "FILTER requires SIENA or HUNTINGTON or MEDFORD" 91*49ef7e06SGarrett D'Amore # endif 92*49ef7e06SGarrett D'Amore #endif /* EFSYS_OPT_FILTER */ 93*49ef7e06SGarrett D'Amore 94*49ef7e06SGarrett D'Amore #if (EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD) 95*49ef7e06SGarrett D'Amore # if !EFSYS_OPT_FILTER 96*49ef7e06SGarrett D'Amore # error "HUNTINGTON or MEDFORD requires FILTER" 97*49ef7e06SGarrett D'Amore # endif 98*49ef7e06SGarrett D'Amore #endif /* EFSYS_OPT_HUNTINGTON */ 99*49ef7e06SGarrett D'Amore 100*49ef7e06SGarrett D'Amore /* Support hardware loopback modes */ 101*49ef7e06SGarrett D'Amore #if EFSYS_OPT_LOOPBACK 102*49ef7e06SGarrett D'Amore # if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD) 103*49ef7e06SGarrett D'Amore # error "LOOPBACK requires SIENA or HUNTINGTON or MEDFORD" 104*49ef7e06SGarrett D'Amore # endif 105*49ef7e06SGarrett D'Amore #endif /* EFSYS_OPT_LOOPBACK */ 106*49ef7e06SGarrett D'Amore 107*49ef7e06SGarrett D'Amore #ifdef EFSYS_OPT_MAC_FALCON_GMAC 108*49ef7e06SGarrett D'Amore # error "MAC_FALCON_GMAC is obsolete and is not supported." 109*49ef7e06SGarrett D'Amore #endif 110*49ef7e06SGarrett D'Amore 111*49ef7e06SGarrett D'Amore #ifdef EFSYS_OPT_MAC_FALCON_XMAC 112*49ef7e06SGarrett D'Amore # error "MAC_FALCON_XMAC is obsolete and is not supported." 113*49ef7e06SGarrett D'Amore #endif 114*49ef7e06SGarrett D'Amore 115*49ef7e06SGarrett D'Amore /* Support MAC statistics */ 116*49ef7e06SGarrett D'Amore #if EFSYS_OPT_MAC_STATS 117*49ef7e06SGarrett D'Amore # if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD) 118*49ef7e06SGarrett D'Amore # error "MAC_STATS requires SIENA or HUNTINGTON or MEDFORD" 119*49ef7e06SGarrett D'Amore # endif 120*49ef7e06SGarrett D'Amore #endif /* EFSYS_OPT_MAC_STATS */ 121*49ef7e06SGarrett D'Amore 122*49ef7e06SGarrett D'Amore /* Support management controller messages */ 123*49ef7e06SGarrett D'Amore #if EFSYS_OPT_MCDI 124*49ef7e06SGarrett D'Amore # if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD) 125*49ef7e06SGarrett D'Amore # error "MCDI requires SIENA or HUNTINGTON or MEDFORD" 126*49ef7e06SGarrett D'Amore # endif 127*49ef7e06SGarrett D'Amore #endif /* EFSYS_OPT_MCDI */ 128*49ef7e06SGarrett D'Amore 129*49ef7e06SGarrett D'Amore #if (EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD) 130*49ef7e06SGarrett D'Amore # if !EFSYS_OPT_MCDI 131*49ef7e06SGarrett D'Amore # error "SIENA or HUNTINGTON or MEDFORD requires MCDI" 132*49ef7e06SGarrett D'Amore # endif 133*49ef7e06SGarrett D'Amore #endif 134*49ef7e06SGarrett D'Amore 135*49ef7e06SGarrett D'Amore /* Support MCDI logging */ 136*49ef7e06SGarrett D'Amore #if EFSYS_OPT_MCDI_LOGGING 137*49ef7e06SGarrett D'Amore # if !EFSYS_OPT_MCDI 138*49ef7e06SGarrett D'Amore # error "MCDI_LOGGING requires MCDI" 139*49ef7e06SGarrett D'Amore # endif 140*49ef7e06SGarrett D'Amore #endif /* EFSYS_OPT_MCDI_LOGGING */ 141*49ef7e06SGarrett D'Amore 142*49ef7e06SGarrett D'Amore /* Support MCDI proxy authorization */ 143*49ef7e06SGarrett D'Amore #if EFSYS_OPT_MCDI_PROXY_AUTH 144*49ef7e06SGarrett D'Amore # if !EFSYS_OPT_MCDI 145*49ef7e06SGarrett D'Amore # error "MCDI_PROXY_AUTH requires MCDI" 146*49ef7e06SGarrett D'Amore # endif 147*49ef7e06SGarrett D'Amore #endif /* EFSYS_OPT_MCDI_PROXY_AUTH */ 148*49ef7e06SGarrett D'Amore 149*49ef7e06SGarrett D'Amore #ifdef EFSYS_OPT_MON_LM87 150*49ef7e06SGarrett D'Amore # error "MON_LM87 is obsolete and is not supported." 151*49ef7e06SGarrett D'Amore #endif 152*49ef7e06SGarrett D'Amore 153*49ef7e06SGarrett D'Amore #ifdef EFSYS_OPT_MON_MAX6647 154*49ef7e06SGarrett D'Amore # error "MON_MAX6647 is obsolete and is not supported." 155*49ef7e06SGarrett D'Amore #endif 156*49ef7e06SGarrett D'Amore 157*49ef7e06SGarrett D'Amore #ifdef EFSYS_OPT_MON_NULL 158*49ef7e06SGarrett D'Amore # error "MON_NULL is obsolete and is not supported." 159*49ef7e06SGarrett D'Amore #endif 160*49ef7e06SGarrett D'Amore 161*49ef7e06SGarrett D'Amore #ifdef EFSYS_OPT_MON_SIENA 162*49ef7e06SGarrett D'Amore # error "MON_SIENA is obsolete (replaced by MON_MCDI)." 163*49ef7e06SGarrett D'Amore #endif 164*49ef7e06SGarrett D'Amore 165*49ef7e06SGarrett D'Amore #ifdef EFSYS_OPT_MON_HUNTINGTON 166*49ef7e06SGarrett D'Amore # error "MON_HUNTINGTON is obsolete (replaced by MON_MCDI)." 167*49ef7e06SGarrett D'Amore #endif 168*49ef7e06SGarrett D'Amore 169*49ef7e06SGarrett D'Amore /* Support monitor statistics (voltage/temperature) */ 170*49ef7e06SGarrett D'Amore #if EFSYS_OPT_MON_STATS 171*49ef7e06SGarrett D'Amore # if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD) 172*49ef7e06SGarrett D'Amore # error "MON_STATS requires SIENA or HUNTINGTON or MEDFORD" 173*49ef7e06SGarrett D'Amore # endif 174*49ef7e06SGarrett D'Amore #endif /* EFSYS_OPT_MON_STATS */ 175*49ef7e06SGarrett D'Amore 176*49ef7e06SGarrett D'Amore /* Support Monitor via mcdi */ 177*49ef7e06SGarrett D'Amore #if EFSYS_OPT_MON_MCDI 178*49ef7e06SGarrett D'Amore # if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD) 179*49ef7e06SGarrett D'Amore # error "MON_MCDI requires SIENA or HUNTINGTON or MEDFORD" 180*49ef7e06SGarrett D'Amore # endif 181*49ef7e06SGarrett D'Amore #endif /* EFSYS_OPT_MON_MCDI*/ 182*49ef7e06SGarrett D'Amore 183*49ef7e06SGarrett D'Amore /* Support printable names for statistics */ 184*49ef7e06SGarrett D'Amore #if EFSYS_OPT_NAMES 185*49ef7e06SGarrett D'Amore # if !(EFSYS_OPT_LOOPBACK || EFSYS_OPT_MAC_STATS || EFSYS_OPT_MCDI || \ 186*49ef7e06SGarrett D'Amore EFSYS_MON_STATS || EFSYS_OPT_PHY_STATS || EFSYS_OPT_QSTATS) 187*49ef7e06SGarrett D'Amore # error "NAMES requires LOOPBACK or xxxSTATS or MCDI" 188*49ef7e06SGarrett D'Amore # endif 189*49ef7e06SGarrett D'Amore #endif /* EFSYS_OPT_NAMES */ 190*49ef7e06SGarrett D'Amore 191*49ef7e06SGarrett D'Amore /* Support non volatile configuration */ 192*49ef7e06SGarrett D'Amore #if EFSYS_OPT_NVRAM 193*49ef7e06SGarrett D'Amore # if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD) 194*49ef7e06SGarrett D'Amore # error "NVRAM requires SIENA or HUNTINGTON or MEDFORD" 195*49ef7e06SGarrett D'Amore # endif 196*49ef7e06SGarrett D'Amore #endif /* EFSYS_OPT_NVRAM */ 197*49ef7e06SGarrett D'Amore 198*49ef7e06SGarrett D'Amore #ifdef EFSYS_OPT_NVRAM_FALCON_BOOTROM 199*49ef7e06SGarrett D'Amore # error "NVRAM_FALCON_BOOTROM is obsolete and is not supported." 200*49ef7e06SGarrett D'Amore #endif 201*49ef7e06SGarrett D'Amore 202*49ef7e06SGarrett D'Amore #ifdef EFSYS_OPT_NVRAM_SFT9001 203*49ef7e06SGarrett D'Amore # error "NVRAM_SFT9001 is obsolete and is not supported." 204*49ef7e06SGarrett D'Amore #endif 205*49ef7e06SGarrett D'Amore 206*49ef7e06SGarrett D'Amore #ifdef EFSYS_OPT_NVRAM_SFX7101 207*49ef7e06SGarrett D'Amore # error "NVRAM_SFX7101 is obsolete and is not supported." 208*49ef7e06SGarrett D'Amore #endif 209*49ef7e06SGarrett D'Amore 210*49ef7e06SGarrett D'Amore #ifdef EFSYS_OPT_PCIE_TUNE 211*49ef7e06SGarrett D'Amore # error "PCIE_TUNE is obsolete and is not supported." 212*49ef7e06SGarrett D'Amore #endif 213*49ef7e06SGarrett D'Amore 214*49ef7e06SGarrett D'Amore #ifdef EFSYS_OPT_PHY_BIST 215*49ef7e06SGarrett D'Amore # error "PHY_BIST is obsolete (replaced by BIST)." 216*49ef7e06SGarrett D'Amore #endif 217*49ef7e06SGarrett D'Amore 218*49ef7e06SGarrett D'Amore /* Support PHY flags */ 219*49ef7e06SGarrett D'Amore #if EFSYS_OPT_PHY_FLAGS 220*49ef7e06SGarrett D'Amore # if !EFSYS_OPT_SIENA 221*49ef7e06SGarrett D'Amore # error "PHY_FLAGS requires SIENA" 222*49ef7e06SGarrett D'Amore # endif 223*49ef7e06SGarrett D'Amore #endif /* EFSYS_OPT_PHY_FLAGS */ 224*49ef7e06SGarrett D'Amore 225*49ef7e06SGarrett D'Amore /* Support for PHY LED control */ 226*49ef7e06SGarrett D'Amore #if EFSYS_OPT_PHY_LED_CONTROL 227*49ef7e06SGarrett D'Amore # if !EFSYS_OPT_SIENA 228*49ef7e06SGarrett D'Amore # error "PHY_LED_CONTROL requires SIENA" 229*49ef7e06SGarrett D'Amore # endif 230*49ef7e06SGarrett D'Amore #endif /* EFSYS_OPT_PHY_LED_CONTROL */ 231*49ef7e06SGarrett D'Amore 232*49ef7e06SGarrett D'Amore #ifdef EFSYS_OPT_PHY_NULL 233*49ef7e06SGarrett D'Amore # error "PHY_NULL is obsolete and is not supported." 234*49ef7e06SGarrett D'Amore #endif 235*49ef7e06SGarrett D'Amore 236*49ef7e06SGarrett D'Amore #ifdef EFSYS_OPT_PHY_PM8358 237*49ef7e06SGarrett D'Amore # error "PHY_PM8358 is obsolete and is not supported." 238*49ef7e06SGarrett D'Amore #endif 239*49ef7e06SGarrett D'Amore 240*49ef7e06SGarrett D'Amore #ifdef EFSYS_OPT_PHY_PROPS 241*49ef7e06SGarrett D'Amore # error "PHY_PROPS is obsolete and is not supported." 242*49ef7e06SGarrett D'Amore #endif 243*49ef7e06SGarrett D'Amore 244*49ef7e06SGarrett D'Amore #ifdef EFSYS_OPT_PHY_QT2022C2 245*49ef7e06SGarrett D'Amore # error "PHY_QT2022C2 is obsolete and is not supported." 246*49ef7e06SGarrett D'Amore #endif 247*49ef7e06SGarrett D'Amore 248*49ef7e06SGarrett D'Amore #ifdef EFSYS_OPT_PHY_QT2025C 249*49ef7e06SGarrett D'Amore # error "PHY_QT2025C is obsolete and is not supported." 250*49ef7e06SGarrett D'Amore #endif 251*49ef7e06SGarrett D'Amore 252*49ef7e06SGarrett D'Amore #ifdef EFSYS_OPT_PHY_SFT9001 253*49ef7e06SGarrett D'Amore # error "PHY_SFT9001 is obsolete and is not supported." 254*49ef7e06SGarrett D'Amore #endif 255*49ef7e06SGarrett D'Amore 256*49ef7e06SGarrett D'Amore #ifdef EFSYS_OPT_PHY_SFX7101 257*49ef7e06SGarrett D'Amore # error "PHY_SFX7101 is obsolete and is not supported." 258*49ef7e06SGarrett D'Amore #endif 259*49ef7e06SGarrett D'Amore 260*49ef7e06SGarrett D'Amore /* Support PHY statistics */ 261*49ef7e06SGarrett D'Amore #if EFSYS_OPT_PHY_STATS 262*49ef7e06SGarrett D'Amore # if !EFSYS_OPT_SIENA 263*49ef7e06SGarrett D'Amore # error "PHY_STATS requires SIENA" 264*49ef7e06SGarrett D'Amore # endif 265*49ef7e06SGarrett D'Amore #endif /* EFSYS_OPT_PHY_STATS */ 266*49ef7e06SGarrett D'Amore 267*49ef7e06SGarrett D'Amore #ifdef EFSYS_OPT_PHY_TXC43128 268*49ef7e06SGarrett D'Amore # error "PHY_TXC43128 is obsolete and is not supported." 269*49ef7e06SGarrett D'Amore #endif 270*49ef7e06SGarrett D'Amore 271*49ef7e06SGarrett D'Amore /* Support EVQ/RXQ/TXQ statistics */ 272*49ef7e06SGarrett D'Amore #if EFSYS_OPT_QSTATS 273*49ef7e06SGarrett D'Amore # if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD) 274*49ef7e06SGarrett D'Amore # error "QSTATS requires SIENA or HUNTINGTON or MEDFORD" 275*49ef7e06SGarrett D'Amore # endif 276*49ef7e06SGarrett D'Amore #endif /* EFSYS_OPT_QSTATS */ 277*49ef7e06SGarrett D'Amore 278*49ef7e06SGarrett D'Amore #ifdef EFSYS_OPT_RX_HDR_SPLIT 279*49ef7e06SGarrett D'Amore # error "RX_HDR_SPLIT is obsolete and is not supported" 280*49ef7e06SGarrett D'Amore #endif 281*49ef7e06SGarrett D'Amore 282*49ef7e06SGarrett D'Amore /* Support receive scaling (RSS) */ 283*49ef7e06SGarrett D'Amore #if EFSYS_OPT_RX_SCALE 284*49ef7e06SGarrett D'Amore # if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD) 285*49ef7e06SGarrett D'Amore # error "RX_SCALE requires SIENA or HUNTINGTON or MEDFORD" 286*49ef7e06SGarrett D'Amore # endif 287*49ef7e06SGarrett D'Amore #endif /* EFSYS_OPT_RX_SCALE */ 288*49ef7e06SGarrett D'Amore 289*49ef7e06SGarrett D'Amore /* Support receive scatter DMA */ 290*49ef7e06SGarrett D'Amore #if EFSYS_OPT_RX_SCATTER 291*49ef7e06SGarrett D'Amore # if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD) 292*49ef7e06SGarrett D'Amore # error "RX_SCATTER requires SIENA or HUNTINGTON or MEDFORD" 293*49ef7e06SGarrett D'Amore # endif 294*49ef7e06SGarrett D'Amore #endif /* EFSYS_OPT_RX_SCATTER */ 295*49ef7e06SGarrett D'Amore 296*49ef7e06SGarrett D'Amore #ifdef EFSYS_OPT_STAT_NAME 297*49ef7e06SGarrett D'Amore # error "STAT_NAME is obsolete (replaced by NAMES)." 298*49ef7e06SGarrett D'Amore #endif 299*49ef7e06SGarrett D'Amore 300*49ef7e06SGarrett D'Amore /* Support PCI Vital Product Data (VPD) */ 301*49ef7e06SGarrett D'Amore #if EFSYS_OPT_VPD 302*49ef7e06SGarrett D'Amore # if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD) 303*49ef7e06SGarrett D'Amore # error "VPD requires SIENA or HUNTINGTON or MEDFORD" 304*49ef7e06SGarrett D'Amore # endif 305*49ef7e06SGarrett D'Amore #endif /* EFSYS_OPT_VPD */ 306*49ef7e06SGarrett D'Amore 307*49ef7e06SGarrett D'Amore /* Support Wake on LAN */ 308*49ef7e06SGarrett D'Amore #if EFSYS_OPT_WOL 309*49ef7e06SGarrett D'Amore # if !EFSYS_OPT_SIENA 310*49ef7e06SGarrett D'Amore # error "WOL requires SIENA" 311*49ef7e06SGarrett D'Amore # endif 312*49ef7e06SGarrett D'Amore #endif /* EFSYS_OPT_WOL */ 313*49ef7e06SGarrett D'Amore 314*49ef7e06SGarrett D'Amore #ifdef EFSYS_OPT_MCAST_FILTER_LIST 315*49ef7e06SGarrett D'Amore # error "MCAST_FILTER_LIST is obsolete and is not supported" 316*49ef7e06SGarrett D'Amore #endif 317*49ef7e06SGarrett D'Amore 318*49ef7e06SGarrett D'Amore /* Support BIST */ 319*49ef7e06SGarrett D'Amore #if EFSYS_OPT_BIST 320*49ef7e06SGarrett D'Amore # if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD) 321*49ef7e06SGarrett D'Amore # error "BIST requires SIENA or HUNTINGTON or MEDFORD" 322*49ef7e06SGarrett D'Amore # endif 323*49ef7e06SGarrett D'Amore #endif /* EFSYS_OPT_BIST */ 324*49ef7e06SGarrett D'Amore 325*49ef7e06SGarrett D'Amore /* Support MCDI licensing API */ 326*49ef7e06SGarrett D'Amore #if EFSYS_OPT_LICENSING 327*49ef7e06SGarrett D'Amore # if !EFSYS_OPT_MCDI 328*49ef7e06SGarrett D'Amore # error "LICENSING requires MCDI" 329*49ef7e06SGarrett D'Amore # endif 330*49ef7e06SGarrett D'Amore # if !EFSYS_HAS_UINT64 331*49ef7e06SGarrett D'Amore # error "LICENSING requires UINT64" 332*49ef7e06SGarrett D'Amore # endif 333*49ef7e06SGarrett D'Amore #endif /* EFSYS_OPT_LICENSING */ 334*49ef7e06SGarrett D'Amore 335*49ef7e06SGarrett D'Amore 336*49ef7e06SGarrett D'Amore #endif /* _SYS_EFX_CHECK_H */ 337