efx_check.h revision 299320
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 299320 2016-05-10 07:01:06Z 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_FALCON_NIC_CFG_OVERRIDE (0) 51299253Sarybchik 52299253Sarybchik#define EFSYS_OPT_MAC_FALCON_GMAC (0) 53299253Sarybchik#define EFSYS_OPT_MAC_FALCON_XMAC (0) 54299253Sarybchik 55299253Sarybchik#define EFSYS_OPT_MON_LM87 (0) 56299253Sarybchik#define EFSYS_OPT_MON_MAX6647 (0) 57299253Sarybchik#define EFSYS_OPT_MON_NULL (0) 58299253Sarybchik 59299253Sarybchik#define EFSYS_OPT_NVRAM_FALCON_BOOTROM (0) 60299253Sarybchik#define EFSYS_OPT_NVRAM_SFT9001 (0) 61299253Sarybchik#define EFSYS_OPT_NVRAM_SFX7101 (0) 62299253Sarybchik 63299253Sarybchik#define EFSYS_OPT_PHY_NULL (0) 64299253Sarybchik#define EFSYS_OPT_PHY_QT2022C2 (0) 65299253Sarybchik#define EFSYS_OPT_PHY_QT2025C (0) 66299253Sarybchik#define EFSYS_OPT_PHY_SFT9001 (0) 67299253Sarybchik#define EFSYS_OPT_PHY_SFX7101 (0) 68299253Sarybchik#define EFSYS_OPT_PHY_TXC43128 (0) 69299253Sarybchik#endif 70299253Sarybchik 71283514Sarybchik/* Support NVRAM based boot config */ 72283514Sarybchik#if EFSYS_OPT_BOOTCFG 73283514Sarybchik# if !EFSYS_OPT_NVRAM 74283514Sarybchik# error "BOOTCFG requires NVRAM" 75283514Sarybchik# endif 76283514Sarybchik#endif /* EFSYS_OPT_BOOTCFG */ 77283514Sarybchik 78283514Sarybchik/* Verify chip implements accessed registers */ 79283514Sarybchik#if EFSYS_OPT_CHECK_REG 80299320Sarybchik# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD) 81299320Sarybchik# error "CHECK_REG requires SIENA or HUNTINGTON or MEDFORD" 82283514Sarybchik# endif 83283514Sarybchik#endif /* EFSYS_OPT_CHECK_REG */ 84283514Sarybchik 85283514Sarybchik/* Decode fatal errors */ 86283514Sarybchik#if EFSYS_OPT_DECODE_INTR_FATAL 87299320Sarybchik# if !EFSYS_OPT_SIENA 88299320Sarybchik# error "INTR_FATAL requires SIENA" 89283514Sarybchik# endif 90283514Sarybchik#endif /* EFSYS_OPT_DECODE_INTR_FATAL */ 91283514Sarybchik 92283514Sarybchik/* Support diagnostic hardware tests */ 93283514Sarybchik#if EFSYS_OPT_DIAG 94299320Sarybchik# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD) 95299320Sarybchik# error "DIAG requires SIENA or HUNTINGTON or MEDFORD" 96283514Sarybchik# endif 97283514Sarybchik#endif /* EFSYS_OPT_DIAG */ 98283514Sarybchik 99283514Sarybchik/* Support optimized EVQ data access */ 100283514Sarybchik#if EFSYS_OPT_EV_PREFETCH 101299320Sarybchik# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD) 102299320Sarybchik# error "EV_PREFETCH requires SIENA or HUNTINGTON or MEDFORD" 103283514Sarybchik# endif 104283514Sarybchik#endif /* EFSYS_OPT_EV_PREFETCH */ 105283514Sarybchik 106283514Sarybchik/* Support overriding the NVRAM and VPD configuration */ 107283514Sarybchik#if EFSYS_OPT_FALCON_NIC_CFG_OVERRIDE 108283514Sarybchik# if !EFSYS_OPT_FALCON 109283514Sarybchik# error "FALCON_NIC_CFG_OVERRIDE requires FALCON" 110283514Sarybchik# endif 111283514Sarybchik#endif /* EFSYS_OPT_FALCON_NIC_CFG_OVERRIDE */ 112283514Sarybchik 113283514Sarybchik/* Support hardware packet filters */ 114283514Sarybchik#if EFSYS_OPT_FILTER 115299320Sarybchik# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD) 116299320Sarybchik# error "FILTER requires SIENA or HUNTINGTON or MEDFORD" 117283514Sarybchik# endif 118283514Sarybchik#endif /* EFSYS_OPT_FILTER */ 119283514Sarybchik 120293730Sarybchik#if (EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD) 121283514Sarybchik# if !EFSYS_OPT_FILTER 122293730Sarybchik# error "HUNTINGTON or MEDFORD requires FILTER" 123283514Sarybchik# endif 124283514Sarybchik#endif /* EFSYS_OPT_HUNTINGTON */ 125283514Sarybchik 126283514Sarybchik/* Support hardware loopback modes */ 127283514Sarybchik#if EFSYS_OPT_LOOPBACK 128299320Sarybchik# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD) 129299320Sarybchik# error "LOOPBACK requires SIENA or HUNTINGTON or MEDFORD" 130283514Sarybchik# endif 131283514Sarybchik#endif /* EFSYS_OPT_LOOPBACK */ 132283514Sarybchik 133283514Sarybchik/* Support Falcon GMAC */ 134283514Sarybchik#if EFSYS_OPT_MAC_FALCON_GMAC 135283514Sarybchik# if !EFSYS_OPT_FALCON 136283514Sarybchik# error "MAC_FALCON_GMAC requires FALCON" 137283514Sarybchik# endif 138283514Sarybchik#endif /* EFSYS_OPT_MAC_FALCON_GMAC */ 139283514Sarybchik 140283514Sarybchik/* Support Falcon XMAC */ 141283514Sarybchik#if EFSYS_OPT_MAC_FALCON_XMAC 142283514Sarybchik# if !EFSYS_OPT_FALCON 143283514Sarybchik# error "MAC_FALCON_XMAC requires FALCON" 144283514Sarybchik# endif 145283514Sarybchik#endif /* EFSYS_OPT_MAC_FALCON_XMAC */ 146283514Sarybchik 147283514Sarybchik/* Support MAC statistics */ 148283514Sarybchik#if EFSYS_OPT_MAC_STATS 149299320Sarybchik# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD) 150299320Sarybchik# error "MAC_STATS requires SIENA or HUNTINGTON or MEDFORD" 151283514Sarybchik# endif 152283514Sarybchik#endif /* EFSYS_OPT_MAC_STATS */ 153283514Sarybchik 154283514Sarybchik/* Support management controller messages */ 155283514Sarybchik#if EFSYS_OPT_MCDI 156293730Sarybchik# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD) 157293730Sarybchik# error "MCDI requires SIENA or HUNTINGTON or MEDFORD" 158283514Sarybchik# endif 159283514Sarybchik#endif /* EFSYS_OPT_MCDI */ 160283514Sarybchik 161293730Sarybchik#if (EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD) 162293730Sarybchik# if !EFSYS_OPT_MCDI 163293730Sarybchik# error "SIENA or HUNTINGTON or MEDFORD requires MCDI" 164293730Sarybchik# endif 165283514Sarybchik#endif 166283514Sarybchik 167291677Sarybchik/* Support MCDI logging */ 168291677Sarybchik#if EFSYS_OPT_MCDI_LOGGING 169291677Sarybchik# if !EFSYS_OPT_MCDI 170291677Sarybchik# error "MCDI_LOGGING requires MCDI" 171291677Sarybchik# endif 172291677Sarybchik#endif /* EFSYS_OPT_MCDI_LOGGING */ 173291677Sarybchik 174291927Sarybchik/* Support MCDI proxy authorization */ 175291927Sarybchik#if EFSYS_OPT_MCDI_PROXY_AUTH 176291927Sarybchik# if !EFSYS_OPT_MCDI 177291927Sarybchik# error "MCDI_PROXY_AUTH requires MCDI" 178291927Sarybchik# endif 179291927Sarybchik#endif /* EFSYS_OPT_MCDI_PROXY_AUTH */ 180291927Sarybchik 181283514Sarybchik/* Support LM87 monitor */ 182283514Sarybchik#if EFSYS_OPT_MON_LM87 183283514Sarybchik# if !EFSYS_OPT_FALCON 184283514Sarybchik# error "MON_LM87 requires FALCON" 185283514Sarybchik# endif 186283514Sarybchik#endif /* EFSYS_OPT_MON_LM87 */ 187283514Sarybchik 188283514Sarybchik/* Support MAX6647 monitor */ 189283514Sarybchik#if EFSYS_OPT_MON_MAX6647 190283514Sarybchik# if !EFSYS_OPT_FALCON 191283514Sarybchik# error "MON_MAX6647 requires FALCON" 192283514Sarybchik# endif 193283514Sarybchik#endif /* EFSYS_OPT_MON_MAX6647 */ 194283514Sarybchik 195283514Sarybchik/* Support null monitor */ 196283514Sarybchik#if EFSYS_OPT_MON_NULL 197283514Sarybchik# if !EFSYS_OPT_FALCON 198283514Sarybchik# error "MON_NULL requires FALCON" 199283514Sarybchik# endif 200283514Sarybchik#endif /* EFSYS_OPT_MON_NULL */ 201283514Sarybchik 202293767Sarybchik/* Obsolete option */ 203283514Sarybchik#ifdef EFSYS_OPT_MON_SIENA 204293767Sarybchik# error "MON_SIENA is obsolete (replaced by MON_MCDI)." 205283514Sarybchik#endif /* EFSYS_OPT_MON_SIENA*/ 206283514Sarybchik 207293767Sarybchik/* Obsolete option */ 208283514Sarybchik#ifdef EFSYS_OPT_MON_HUNTINGTON 209293767Sarybchik# error "MON_HUNTINGTON is obsolete (replaced by MON_MCDI)." 210283514Sarybchik#endif /* EFSYS_OPT_MON_HUNTINGTON*/ 211283514Sarybchik 212283514Sarybchik/* Support monitor statistics (voltage/temperature) */ 213283514Sarybchik#if EFSYS_OPT_MON_STATS 214299320Sarybchik# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD) 215299320Sarybchik# error "MON_STATS requires SIENA or HUNTINGTON or MEDFORD" 216283514Sarybchik# endif 217283514Sarybchik#endif /* EFSYS_OPT_MON_STATS */ 218283514Sarybchik 219283514Sarybchik/* Support Monitor via mcdi */ 220283514Sarybchik#if EFSYS_OPT_MON_MCDI 221293730Sarybchik# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD) 222293730Sarybchik# error "MON_MCDI requires SIENA or HUNTINGTON or MEDFORD" 223283514Sarybchik# endif 224283514Sarybchik#endif /* EFSYS_OPT_MON_MCDI*/ 225283514Sarybchik 226283514Sarybchik/* Support printable names for statistics */ 227283514Sarybchik#if EFSYS_OPT_NAMES 228283514Sarybchik# if !(EFSYS_OPT_LOOPBACK || EFSYS_OPT_MAC_STATS || EFSYS_OPT_MCDI || \ 229283514Sarybchik EFSYS_MON_STATS || EFSYS_OPT_PHY_PROPS || EFSYS_OPT_PHY_STATS || \ 230283514Sarybchik EFSYS_OPT_QSTATS) 231283514Sarybchik# error "NAMES requires LOOPBACK or xxxSTATS or MCDI or PHY_PROPS" 232283514Sarybchik# endif 233283514Sarybchik#endif /* EFSYS_OPT_NAMES */ 234283514Sarybchik 235283514Sarybchik/* Support non volatile configuration */ 236283514Sarybchik#if EFSYS_OPT_NVRAM 237299320Sarybchik# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD) 238299320Sarybchik# error "NVRAM requires SIENA or HUNTINGTON or MEDFORD" 239283514Sarybchik# endif 240283514Sarybchik#endif /* EFSYS_OPT_NVRAM */ 241283514Sarybchik 242283514Sarybchik/* Support Falcon bootrom */ 243283514Sarybchik#if EFSYS_OPT_NVRAM_FALCON_BOOTROM 244283514Sarybchik# if !EFSYS_OPT_NVRAM 245283514Sarybchik# error "NVRAM_FALCON_BOOTROM requires NVRAM" 246283514Sarybchik# endif 247283514Sarybchik# if !EFSYS_OPT_FALCON 248283514Sarybchik# error "NVRAM_FALCON_BOOTROM requires FALCON" 249283514Sarybchik# endif 250283514Sarybchik#endif /* EFSYS_OPT_NVRAM_FALCON_BOOTROM */ 251283514Sarybchik 252283514Sarybchik/* Support NVRAM config for SFT9001 */ 253283514Sarybchik#if EFSYS_OPT_NVRAM_SFT9001 254283514Sarybchik# if !EFSYS_OPT_NVRAM 255283514Sarybchik# error "NVRAM_SFT9001 requires NVRAM" 256283514Sarybchik# endif 257283514Sarybchik# if !EFSYS_OPT_FALCON 258283514Sarybchik# error "NVRAM_SFT9001 requires FALCON" 259283514Sarybchik# endif 260283514Sarybchik#endif /* EFSYS_OPT_NVRAM_SFT9001 */ 261283514Sarybchik 262283514Sarybchik/* Support NVRAM config for SFX7101 */ 263283514Sarybchik#if EFSYS_OPT_NVRAM_SFX7101 264283514Sarybchik# if !EFSYS_OPT_NVRAM 265283514Sarybchik# error "NVRAM_SFX7101 requires NVRAM" 266283514Sarybchik# endif 267283514Sarybchik# if !EFSYS_OPT_FALCON 268283514Sarybchik# error "NVRAM_SFX7101 requires FALCON" 269283514Sarybchik# endif 270283514Sarybchik#endif /* EFSYS_OPT_NVRAM_SFX7101 */ 271283514Sarybchik 272299254Sarybchik#ifdef EFSYS_OPT_PCIE_TUNE 273299254Sarybchik# error "PCIE_TUNE is obsolete and is not supported." 274299254Sarybchik#endif 275283514Sarybchik 276293767Sarybchik/* Obsolete option */ 277299252Sarybchik#ifdef EFSYS_OPT_PHY_BIST 278299252Sarybchik# error "PHY_BIST is obsolete (replaced by BIST)." 279299252Sarybchik#endif 280283514Sarybchik 281283514Sarybchik/* Support PHY flags */ 282283514Sarybchik#if EFSYS_OPT_PHY_FLAGS 283299320Sarybchik# if !EFSYS_OPT_SIENA 284299320Sarybchik# error "PHY_FLAGS requires SIENA" 285283514Sarybchik# endif 286283514Sarybchik#endif /* EFSYS_OPT_PHY_FLAGS */ 287283514Sarybchik 288283514Sarybchik/* Support for PHY LED control */ 289283514Sarybchik#if EFSYS_OPT_PHY_LED_CONTROL 290299320Sarybchik# if !EFSYS_OPT_SIENA 291299320Sarybchik# error "PHY_LED_CONTROL requires SIENA" 292283514Sarybchik# endif 293283514Sarybchik#endif /* EFSYS_OPT_PHY_LED_CONTROL */ 294283514Sarybchik 295283514Sarybchik/* Support NULL PHY */ 296283514Sarybchik#if EFSYS_OPT_PHY_NULL 297283514Sarybchik# if !EFSYS_OPT_FALCON 298283514Sarybchik# error "PHY_NULL requires FALCON" 299283514Sarybchik# endif 300283514Sarybchik#endif /* EFSYS_OPT_PHY_NULL */ 301283514Sarybchik 302283514Sarybchik/* Obsolete option */ 303283514Sarybchik#ifdef EFSYS_OPT_PHY_PM8358 304283514Sarybchik# error "EFSYS_OPT_PHY_PM8358 is obsolete and is not supported." 305283514Sarybchik#endif 306283514Sarybchik 307283514Sarybchik/* Support PHY properties */ 308283514Sarybchik#if EFSYS_OPT_PHY_PROPS 309299320Sarybchik# if !EFSYS_OPT_SIENA 310299320Sarybchik# error "PHY_PROPS requires SIENA" 311283514Sarybchik# endif 312283514Sarybchik#endif /* EFSYS_OPT_PHY_PROPS */ 313283514Sarybchik 314283514Sarybchik/* Support QT2022C2 PHY */ 315283514Sarybchik#if EFSYS_OPT_PHY_QT2022C2 316283514Sarybchik# if !EFSYS_OPT_FALCON 317283514Sarybchik# error "PHY_QT2022C2 requires FALCON" 318283514Sarybchik# endif 319283514Sarybchik#endif /* EFSYS_OPT_PHY_QT2022C2 */ 320283514Sarybchik 321283514Sarybchik/* Support QT2025C PHY (Wakefield NIC) */ 322283514Sarybchik#if EFSYS_OPT_PHY_QT2025C 323283514Sarybchik# if !EFSYS_OPT_FALCON 324283514Sarybchik# error "PHY_QT2025C requires FALCON" 325283514Sarybchik# endif 326283514Sarybchik#endif /* EFSYS_OPT_PHY_QT2025C */ 327283514Sarybchik 328283514Sarybchik/* Support SFT9001 PHY (Starbolt NIC) */ 329283514Sarybchik#if EFSYS_OPT_PHY_SFT9001 330283514Sarybchik# if !EFSYS_OPT_FALCON 331283514Sarybchik# error "PHY_SFT9001 requires FALCON" 332283514Sarybchik# endif 333283514Sarybchik#endif /* EFSYS_OPT_PHY_SFT9001 */ 334283514Sarybchik 335283514Sarybchik/* Support SFX7101 PHY (SFE4001 NIC) */ 336283514Sarybchik#if EFSYS_OPT_PHY_SFX7101 337283514Sarybchik# if !EFSYS_OPT_FALCON 338283514Sarybchik# error "PHY_SFX7101 requires FALCON" 339283514Sarybchik# endif 340283514Sarybchik#endif /* EFSYS_OPT_PHY_SFX7101 */ 341283514Sarybchik 342283514Sarybchik/* Support PHY statistics */ 343283514Sarybchik#if EFSYS_OPT_PHY_STATS 344299320Sarybchik# if !EFSYS_OPT_SIENA 345299320Sarybchik# error "PHY_STATS requires SIENA" 346283514Sarybchik# endif 347283514Sarybchik#endif /* EFSYS_OPT_PHY_STATS */ 348283514Sarybchik 349283514Sarybchik/* Support TXC43128 PHY (SFE4003 NIC) */ 350283514Sarybchik#if EFSYS_OPT_PHY_TXC43128 351283514Sarybchik# if !EFSYS_OPT_FALCON 352283514Sarybchik# error "PHY_TXC43128 requires FALCON" 353283514Sarybchik# endif 354283514Sarybchik#endif /* EFSYS_OPT_PHY_TXC43128 */ 355283514Sarybchik 356283514Sarybchik/* Support EVQ/RXQ/TXQ statistics */ 357283514Sarybchik#if EFSYS_OPT_QSTATS 358299320Sarybchik# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD) 359299320Sarybchik# error "QSTATS requires SIENA or HUNTINGTON or MEDFORD" 360283514Sarybchik# endif 361283514Sarybchik#endif /* EFSYS_OPT_QSTATS */ 362283514Sarybchik 363293806Sarybchik/* Obsolete option */ 364293806Sarybchik#ifdef EFSYS_OPT_RX_HDR_SPLIT 365293806Sarybchik# error "RX_HDR_SPLIT is obsolete and is not supported" 366283514Sarybchik#endif /* EFSYS_OPT_RX_HDR_SPLIT */ 367283514Sarybchik 368283514Sarybchik/* Support receive scaling (RSS) */ 369283514Sarybchik#if EFSYS_OPT_RX_SCALE 370299320Sarybchik# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD) 371299320Sarybchik# error "RX_SCALE requires SIENA or HUNTINGTON or MEDFORD" 372283514Sarybchik# endif 373283514Sarybchik#endif /* EFSYS_OPT_RX_SCALE */ 374283514Sarybchik 375283514Sarybchik/* Support receive scatter DMA */ 376283514Sarybchik#if EFSYS_OPT_RX_SCATTER 377299320Sarybchik# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD) 378299320Sarybchik# error "RX_SCATTER requires SIENA or HUNTINGTON or MEDFORD" 379283514Sarybchik# endif 380283514Sarybchik#endif /* EFSYS_OPT_RX_SCATTER */ 381283514Sarybchik 382283514Sarybchik/* Obsolete option */ 383283514Sarybchik#ifdef EFSYS_OPT_STAT_NAME 384293767Sarybchik# error "STAT_NAME is obsolete (replaced by NAMES)." 385283514Sarybchik#endif 386283514Sarybchik 387283514Sarybchik/* Support PCI Vital Product Data (VPD) */ 388283514Sarybchik#if EFSYS_OPT_VPD 389299320Sarybchik# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD) 390299320Sarybchik# error "VPD requires SIENA or HUNTINGTON or MEDFORD" 391283514Sarybchik# endif 392283514Sarybchik#endif /* EFSYS_OPT_VPD */ 393283514Sarybchik 394283514Sarybchik/* Support Wake on LAN */ 395283514Sarybchik#if EFSYS_OPT_WOL 396283514Sarybchik# if !EFSYS_OPT_SIENA 397283514Sarybchik# error "WOL requires SIENA" 398283514Sarybchik# endif 399283514Sarybchik#endif /* EFSYS_OPT_WOL */ 400283514Sarybchik 401293758Sarybchik/* Obsolete option */ 402293758Sarybchik#ifdef EFSYS_OPT_MCAST_FILTER_LIST 403293767Sarybchik# error "MCAST_FILTER_LIST is obsolete and is not supported" 404283514Sarybchik#endif /* EFSYS_OPT_MCAST_FILTER_LIST */ 405283514Sarybchik 406283514Sarybchik/* Support BIST */ 407283514Sarybchik#if EFSYS_OPT_BIST 408299320Sarybchik# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD) 409299320Sarybchik# error "BIST requires SIENA or HUNTINGTON or MEDFORD" 410283514Sarybchik# endif 411283514Sarybchik#endif /* EFSYS_OPT_BIST */ 412283514Sarybchik 413293901Sarybchik/* Support MCDI licensing API */ 414293901Sarybchik#if EFSYS_OPT_LICENSING 415293901Sarybchik# if !EFSYS_OPT_MCDI 416293901Sarybchik# error "LICENSING requires MCDI" 417293901Sarybchik# endif 418293901Sarybchik# if !EFSYS_HAS_UINT64 419293901Sarybchik# error "LICENSING requires UINT64" 420293901Sarybchik# endif 421293901Sarybchik#endif /* EFSYS_OPT_LICENSING */ 422293901Sarybchik 423293901Sarybchik 424283514Sarybchik#endif /* _SYS_EFX_CHECK_H */ 425