49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/*
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * Copyright (c) 2012-2015 Solarflare Communications Inc.
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * All rights reserved.
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore *
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * Redistribution and use in source and binary forms, with or without
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * modification, are permitted provided that the following conditions are met:
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore *
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * 1. Redistributions of source code must retain the above copyright notice,
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * this list of conditions and the following disclaimer.
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * 2. Redistributions in binary form must reproduce the above copyright notice,
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * this list of conditions and the following disclaimer in the documentation
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * and/or other materials provided with the distribution.
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore *
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore *
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * The views and conclusions contained in the software and documentation are
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * those of the authors and should not be interpreted as representing official
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * policies, either expressed or implied, of the FreeBSD Project.
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#ifndef _SYS_EFX_CHECK_H
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#define _SYS_EFX_CHECK_H
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#include "efsys.h"
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/*
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * Check that the efsys.h header in client code has a valid combination of
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * EFSYS_OPT_xxx options.
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore *
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * NOTE: Keep checks for obsolete options here to ensure that they are removed
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore * from client code (and do not reappear in merges from other branches).
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#ifdef EFSYS_OPT_FALCON
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "FALCON is obsolete and is not supported."
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Support NVRAM based boot config */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#if EFSYS_OPT_BOOTCFG
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# if !EFSYS_OPT_NVRAM
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "BOOTCFG requires NVRAM"
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif /* EFSYS_OPT_BOOTCFG */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Verify chip implements accessed registers */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#if EFSYS_OPT_CHECK_REG
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "CHECK_REG requires SIENA or HUNTINGTON or MEDFORD"
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif /* EFSYS_OPT_CHECK_REG */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Decode fatal errors */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#if EFSYS_OPT_DECODE_INTR_FATAL
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# if !EFSYS_OPT_SIENA
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "INTR_FATAL requires SIENA"
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif /* EFSYS_OPT_DECODE_INTR_FATAL */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Support diagnostic hardware tests */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#if EFSYS_OPT_DIAG
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "DIAG requires SIENA or HUNTINGTON or MEDFORD"
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif /* EFSYS_OPT_DIAG */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Support optimized EVQ data access */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#if EFSYS_OPT_EV_PREFETCH
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "EV_PREFETCH requires SIENA or HUNTINGTON or MEDFORD"
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif /* EFSYS_OPT_EV_PREFETCH */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#ifdef EFSYS_OPT_FALCON_NIC_CFG_OVERRIDE
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "FALCON_NIC_CFG_OVERRIDE is obsolete and is not supported."
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Support hardware packet filters */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#if EFSYS_OPT_FILTER
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "FILTER requires SIENA or HUNTINGTON or MEDFORD"
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif /* EFSYS_OPT_FILTER */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#if (EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# if !EFSYS_OPT_FILTER
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "HUNTINGTON or MEDFORD requires FILTER"
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif /* EFSYS_OPT_HUNTINGTON */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Support hardware loopback modes */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#if EFSYS_OPT_LOOPBACK
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "LOOPBACK requires SIENA or HUNTINGTON or MEDFORD"
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif /* EFSYS_OPT_LOOPBACK */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#ifdef EFSYS_OPT_MAC_FALCON_GMAC
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "MAC_FALCON_GMAC is obsolete and is not supported."
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#ifdef EFSYS_OPT_MAC_FALCON_XMAC
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "MAC_FALCON_XMAC is obsolete and is not supported."
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Support MAC statistics */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#if EFSYS_OPT_MAC_STATS
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "MAC_STATS requires SIENA or HUNTINGTON or MEDFORD"
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif /* EFSYS_OPT_MAC_STATS */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Support management controller messages */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#if EFSYS_OPT_MCDI
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "MCDI requires SIENA or HUNTINGTON or MEDFORD"
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif /* EFSYS_OPT_MCDI */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#if (EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# if !EFSYS_OPT_MCDI
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "SIENA or HUNTINGTON or MEDFORD requires MCDI"
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Support MCDI logging */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#if EFSYS_OPT_MCDI_LOGGING
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# if !EFSYS_OPT_MCDI
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "MCDI_LOGGING requires MCDI"
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif /* EFSYS_OPT_MCDI_LOGGING */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Support MCDI proxy authorization */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#if EFSYS_OPT_MCDI_PROXY_AUTH
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# if !EFSYS_OPT_MCDI
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "MCDI_PROXY_AUTH requires MCDI"
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif /* EFSYS_OPT_MCDI_PROXY_AUTH */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#ifdef EFSYS_OPT_MON_LM87
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "MON_LM87 is obsolete and is not supported."
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#ifdef EFSYS_OPT_MON_MAX6647
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "MON_MAX6647 is obsolete and is not supported."
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#ifdef EFSYS_OPT_MON_NULL
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "MON_NULL is obsolete and is not supported."
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#ifdef EFSYS_OPT_MON_SIENA
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "MON_SIENA is obsolete (replaced by MON_MCDI)."
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#ifdef EFSYS_OPT_MON_HUNTINGTON
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "MON_HUNTINGTON is obsolete (replaced by MON_MCDI)."
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Support monitor statistics (voltage/temperature) */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#if EFSYS_OPT_MON_STATS
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "MON_STATS requires SIENA or HUNTINGTON or MEDFORD"
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif /* EFSYS_OPT_MON_STATS */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Support Monitor via mcdi */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#if EFSYS_OPT_MON_MCDI
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "MON_MCDI requires SIENA or HUNTINGTON or MEDFORD"
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif /* EFSYS_OPT_MON_MCDI*/
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Support printable names for statistics */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#if EFSYS_OPT_NAMES
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# if !(EFSYS_OPT_LOOPBACK || EFSYS_OPT_MAC_STATS || EFSYS_OPT_MCDI || \
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore EFSYS_MON_STATS || EFSYS_OPT_PHY_STATS || EFSYS_OPT_QSTATS)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "NAMES requires LOOPBACK or xxxSTATS or MCDI"
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif /* EFSYS_OPT_NAMES */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Support non volatile configuration */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#if EFSYS_OPT_NVRAM
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "NVRAM requires SIENA or HUNTINGTON or MEDFORD"
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif /* EFSYS_OPT_NVRAM */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#ifdef EFSYS_OPT_NVRAM_FALCON_BOOTROM
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "NVRAM_FALCON_BOOTROM is obsolete and is not supported."
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#ifdef EFSYS_OPT_NVRAM_SFT9001
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "NVRAM_SFT9001 is obsolete and is not supported."
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#ifdef EFSYS_OPT_NVRAM_SFX7101
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "NVRAM_SFX7101 is obsolete and is not supported."
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#ifdef EFSYS_OPT_PCIE_TUNE
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "PCIE_TUNE is obsolete and is not supported."
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#ifdef EFSYS_OPT_PHY_BIST
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "PHY_BIST is obsolete (replaced by BIST)."
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Support PHY flags */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#if EFSYS_OPT_PHY_FLAGS
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# if !EFSYS_OPT_SIENA
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "PHY_FLAGS requires SIENA"
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif /* EFSYS_OPT_PHY_FLAGS */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Support for PHY LED control */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#if EFSYS_OPT_PHY_LED_CONTROL
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# if !EFSYS_OPT_SIENA
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "PHY_LED_CONTROL requires SIENA"
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif /* EFSYS_OPT_PHY_LED_CONTROL */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#ifdef EFSYS_OPT_PHY_NULL
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "PHY_NULL is obsolete and is not supported."
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#ifdef EFSYS_OPT_PHY_PM8358
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "PHY_PM8358 is obsolete and is not supported."
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#ifdef EFSYS_OPT_PHY_PROPS
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "PHY_PROPS is obsolete and is not supported."
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#ifdef EFSYS_OPT_PHY_QT2022C2
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "PHY_QT2022C2 is obsolete and is not supported."
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#ifdef EFSYS_OPT_PHY_QT2025C
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "PHY_QT2025C is obsolete and is not supported."
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#ifdef EFSYS_OPT_PHY_SFT9001
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "PHY_SFT9001 is obsolete and is not supported."
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#ifdef EFSYS_OPT_PHY_SFX7101
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "PHY_SFX7101 is obsolete and is not supported."
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Support PHY statistics */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#if EFSYS_OPT_PHY_STATS
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# if !EFSYS_OPT_SIENA
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "PHY_STATS requires SIENA"
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif /* EFSYS_OPT_PHY_STATS */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#ifdef EFSYS_OPT_PHY_TXC43128
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "PHY_TXC43128 is obsolete and is not supported."
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Support EVQ/RXQ/TXQ statistics */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#if EFSYS_OPT_QSTATS
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "QSTATS requires SIENA or HUNTINGTON or MEDFORD"
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif /* EFSYS_OPT_QSTATS */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#ifdef EFSYS_OPT_RX_HDR_SPLIT
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "RX_HDR_SPLIT is obsolete and is not supported"
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Support receive scaling (RSS) */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#if EFSYS_OPT_RX_SCALE
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "RX_SCALE requires SIENA or HUNTINGTON or MEDFORD"
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif /* EFSYS_OPT_RX_SCALE */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Support receive scatter DMA */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#if EFSYS_OPT_RX_SCATTER
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "RX_SCATTER requires SIENA or HUNTINGTON or MEDFORD"
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif /* EFSYS_OPT_RX_SCATTER */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#ifdef EFSYS_OPT_STAT_NAME
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "STAT_NAME is obsolete (replaced by NAMES)."
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Support PCI Vital Product Data (VPD) */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#if EFSYS_OPT_VPD
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "VPD requires SIENA or HUNTINGTON or MEDFORD"
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif /* EFSYS_OPT_VPD */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Support Wake on LAN */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#if EFSYS_OPT_WOL
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# if !EFSYS_OPT_SIENA
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "WOL requires SIENA"
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif /* EFSYS_OPT_WOL */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#ifdef EFSYS_OPT_MCAST_FILTER_LIST
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "MCAST_FILTER_LIST is obsolete and is not supported"
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Support BIST */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#if EFSYS_OPT_BIST
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# if !(EFSYS_OPT_SIENA || EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD)
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "BIST requires SIENA or HUNTINGTON or MEDFORD"
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif /* EFSYS_OPT_BIST */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore/* Support MCDI licensing API */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#if EFSYS_OPT_LICENSING
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# if !EFSYS_OPT_MCDI
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "LICENSING requires MCDI"
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# if !EFSYS_HAS_UINT64
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# error "LICENSING requires UINT64"
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore# endif
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif /* EFSYS_OPT_LICENSING */
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore
49ef7e0638c8b771d8a136eae78b1c0f99acc8e0Garrett D'Amore#endif /* _SYS_EFX_CHECK_H */