linux/drivers/net/ethernet/intel/e1000e/defines.h

/* SPDX-License-Identifier: GPL-2.0 */
/* Copyright(c) 1999 - 2018 Intel Corporation. */

#ifndef _E1000_DEFINES_H_
#define _E1000_DEFINES_H_

/* Number of Transmit and Receive Descriptors must be a multiple of 8 */
#define REQ_TX_DESCRIPTOR_MULTIPLE
#define REQ_RX_DESCRIPTOR_MULTIPLE

/* Definitions for power management and wakeup registers */
/* Wake Up Control */
#define E1000_WUC_APME
#define E1000_WUC_PME_EN
#define E1000_WUC_PME_STATUS
#define E1000_WUC_APMPME
#define E1000_WUC_PHY_WAKE

/* Wake Up Filter Control */
#define E1000_WUFC_LNKC
#define E1000_WUFC_MAG
#define E1000_WUFC_EX
#define E1000_WUFC_MC
#define E1000_WUFC_BC
#define E1000_WUFC_ARP

/* Wake Up Status */
#define E1000_WUS_LNKC
#define E1000_WUS_MAG
#define E1000_WUS_EX
#define E1000_WUS_MC
#define E1000_WUS_BC

/* Extended Device Control */
#define E1000_CTRL_EXT_LPCD
#define E1000_CTRL_EXT_SDP3_DATA
#define E1000_CTRL_EXT_FORCE_SMBUS
#define E1000_CTRL_EXT_EE_RST
#define E1000_CTRL_EXT_SPD_BYPS
#define E1000_CTRL_EXT_RO_DIS
#define E1000_CTRL_EXT_DMA_DYN_CLK_EN
#define E1000_CTRL_EXT_LINK_MODE_MASK
#define E1000_CTRL_EXT_LINK_MODE_PCIE_SERDES
#define E1000_CTRL_EXT_EIAME
#define E1000_CTRL_EXT_DRV_LOAD
#define E1000_CTRL_EXT_IAME
#define E1000_CTRL_EXT_PBA_CLR
#define E1000_CTRL_EXT_LSECCK
#define E1000_CTRL_EXT_PHYPDEN

/* Receive Descriptor bit definitions */
#define E1000_RXD_STAT_DD
#define E1000_RXD_STAT_EOP
#define E1000_RXD_STAT_IXSM
#define E1000_RXD_STAT_VP
#define E1000_RXD_STAT_UDPCS
#define E1000_RXD_STAT_TCPCS
#define E1000_RXD_ERR_CE
#define E1000_RXD_ERR_SE
#define E1000_RXD_ERR_SEQ
#define E1000_RXD_ERR_CXE
#define E1000_RXD_ERR_TCPE
#define E1000_RXD_ERR_IPE
#define E1000_RXD_ERR_RXE
#define E1000_RXD_SPC_VLAN_MASK

#define E1000_RXDEXT_STATERR_TST
#define E1000_RXDEXT_STATERR_CE
#define E1000_RXDEXT_STATERR_SE
#define E1000_RXDEXT_STATERR_SEQ
#define E1000_RXDEXT_STATERR_CXE
#define E1000_RXDEXT_STATERR_RXE

/* mask to determine if packets should be dropped due to frame errors */
#define E1000_RXD_ERR_FRAME_ERR_MASK

/* Same mask, but for extended and packet split descriptors */
#define E1000_RXDEXT_ERR_FRAME_ERR_MASK

#define E1000_MRQC_RSS_FIELD_MASK
#define E1000_MRQC_RSS_FIELD_IPV4_TCP
#define E1000_MRQC_RSS_FIELD_IPV4
#define E1000_MRQC_RSS_FIELD_IPV6_TCP_EX
#define E1000_MRQC_RSS_FIELD_IPV6
#define E1000_MRQC_RSS_FIELD_IPV6_TCP

#define E1000_RXDPS_HDRSTAT_HDRSP

/* Management Control */
#define E1000_MANC_SMBUS_EN
#define E1000_MANC_ASF_EN
#define E1000_MANC_ARP_EN
#define E1000_MANC_RCV_TCO_EN
#define E1000_MANC_BLK_PHY_RST_ON_IDE
/* Enable MAC address filtering */
#define E1000_MANC_EN_MAC_ADDR_FILTER
/* Enable MNG packets to host memory */
#define E1000_MANC_EN_MNG2HOST

#define E1000_MANC2H_PORT_623
#define E1000_MANC2H_PORT_664
#define E1000_MDEF_PORT_623
#define E1000_MDEF_PORT_664

/* Receive Control */
#define E1000_RCTL_EN
#define E1000_RCTL_SBP
#define E1000_RCTL_UPE
#define E1000_RCTL_MPE
#define E1000_RCTL_LPE
#define E1000_RCTL_LBM_NO
#define E1000_RCTL_LBM_MAC
#define E1000_RCTL_LBM_TCVR
#define E1000_RCTL_DTYP_PS
#define E1000_RCTL_RDMTS_HALF
#define E1000_RCTL_RDMTS_HEX
#define E1000_RCTL_MO_SHIFT
#define E1000_RCTL_MO_3
#define E1000_RCTL_BAM
/* these buffer sizes are valid if E1000_RCTL_BSEX is 0 */
#define E1000_RCTL_SZ_2048
#define E1000_RCTL_SZ_1024
#define E1000_RCTL_SZ_512
#define E1000_RCTL_SZ_256
/* these buffer sizes are valid if E1000_RCTL_BSEX is 1 */
#define E1000_RCTL_SZ_16384
#define E1000_RCTL_SZ_8192
#define E1000_RCTL_SZ_4096
#define E1000_RCTL_VFE
#define E1000_RCTL_CFIEN
#define E1000_RCTL_CFI
#define E1000_RCTL_DPF
#define E1000_RCTL_PMCF
#define E1000_RCTL_BSEX
#define E1000_RCTL_SECRC

/* Use byte values for the following shift parameters
 * Usage:
 *     psrctl |= (((ROUNDUP(value0, 128) >> E1000_PSRCTL_BSIZE0_SHIFT) &
 *                  E1000_PSRCTL_BSIZE0_MASK) |
 *                ((ROUNDUP(value1, 1024) >> E1000_PSRCTL_BSIZE1_SHIFT) &
 *                  E1000_PSRCTL_BSIZE1_MASK) |
 *                ((ROUNDUP(value2, 1024) << E1000_PSRCTL_BSIZE2_SHIFT) &
 *                  E1000_PSRCTL_BSIZE2_MASK) |
 *                ((ROUNDUP(value3, 1024) << E1000_PSRCTL_BSIZE3_SHIFT) |;
 *                  E1000_PSRCTL_BSIZE3_MASK))
 * where value0 = [128..16256],  default=256
 *       value1 = [1024..64512], default=4096
 *       value2 = [0..64512],    default=4096
 *       value3 = [0..64512],    default=0
 */

#define E1000_PSRCTL_BSIZE0_MASK
#define E1000_PSRCTL_BSIZE1_MASK
#define E1000_PSRCTL_BSIZE2_MASK
#define E1000_PSRCTL_BSIZE3_MASK

#define E1000_PSRCTL_BSIZE0_SHIFT
#define E1000_PSRCTL_BSIZE1_SHIFT
#define E1000_PSRCTL_BSIZE2_SHIFT
#define E1000_PSRCTL_BSIZE3_SHIFT

/* SWFW_SYNC Definitions */
#define E1000_SWFW_EEP_SM
#define E1000_SWFW_PHY0_SM
#define E1000_SWFW_PHY1_SM
#define E1000_SWFW_CSR_SM

/* Device Control */
#define E1000_CTRL_FD
#define E1000_CTRL_GIO_MASTER_DISABLE
#define E1000_CTRL_LRST
#define E1000_CTRL_ASDE
#define E1000_CTRL_SLU
#define E1000_CTRL_ILOS
#define E1000_CTRL_SPD_SEL
#define E1000_CTRL_SPD_10
#define E1000_CTRL_SPD_100
#define E1000_CTRL_SPD_1000
#define E1000_CTRL_FRCSPD
#define E1000_CTRL_FRCDPX
#define E1000_CTRL_LANPHYPC_OVERRIDE
#define E1000_CTRL_LANPHYPC_VALUE
#define E1000_CTRL_MEHE
#define E1000_CTRL_SWDPIN0
#define E1000_CTRL_SWDPIN1
#define E1000_CTRL_ADVD3WUC
#define E1000_CTRL_EN_PHY_PWR_MGMT
#define E1000_CTRL_SWDPIO0
#define E1000_CTRL_RST
#define E1000_CTRL_RFCE
#define E1000_CTRL_TFCE
#define E1000_CTRL_VME
#define E1000_CTRL_PHY_RST

#define E1000_PCS_LCTL_FORCE_FCTRL

#define E1000_PCS_LSTS_AN_COMPLETE

/* Device Status */
#define E1000_STATUS_FD
#define E1000_STATUS_LU
#define E1000_STATUS_FUNC_MASK
#define E1000_STATUS_FUNC_SHIFT
#define E1000_STATUS_FUNC_1
#define E1000_STATUS_TXOFF
#define E1000_STATUS_SPEED_MASK
#define E1000_STATUS_SPEED_10
#define E1000_STATUS_SPEED_100
#define E1000_STATUS_SPEED_1000
#define E1000_STATUS_LAN_INIT_DONE
#define E1000_STATUS_PHYRA
#define E1000_STATUS_GIO_MASTER_ENABLE

/* PCIm function state */
#define E1000_STATUS_PCIM_STATE

#define HALF_DUPLEX
#define FULL_DUPLEX

#define ADVERTISE_10_HALF
#define ADVERTISE_10_FULL
#define ADVERTISE_100_HALF
#define ADVERTISE_100_FULL
#define ADVERTISE_1000_HALF
#define ADVERTISE_1000_FULL

/* 1000/H is not supported, nor spec-compliant. */
#define E1000_ALL_SPEED_DUPLEX
#define E1000_ALL_NOT_GIG
#define E1000_ALL_100_SPEED
#define E1000_ALL_10_SPEED
#define E1000_ALL_HALF_DUPLEX

#define AUTONEG_ADVERTISE_SPEED_DEFAULT

/* LED Control */
#define E1000_PHY_LED0_MODE_MASK
#define E1000_PHY_LED0_IVRT
#define E1000_PHY_LED0_MASK

#define E1000_LEDCTL_LED0_MODE_MASK
#define E1000_LEDCTL_LED0_MODE_SHIFT
#define E1000_LEDCTL_LED0_IVRT
#define E1000_LEDCTL_LED0_BLINK

#define E1000_LEDCTL_MODE_LINK_UP
#define E1000_LEDCTL_MODE_LED_ON
#define E1000_LEDCTL_MODE_LED_OFF

/* Transmit Descriptor bit definitions */
#define E1000_TXD_DTYP_D
#define E1000_TXD_POPTS_IXSM
#define E1000_TXD_POPTS_TXSM
#define E1000_TXD_CMD_EOP
#define E1000_TXD_CMD_IFCS
#define E1000_TXD_CMD_IC
#define E1000_TXD_CMD_RS
#define E1000_TXD_CMD_RPS
#define E1000_TXD_CMD_DEXT
#define E1000_TXD_CMD_VLE
#define E1000_TXD_CMD_IDE
#define E1000_TXD_STAT_DD
#define E1000_TXD_STAT_EC
#define E1000_TXD_STAT_LC
#define E1000_TXD_STAT_TU
#define E1000_TXD_CMD_TCP
#define E1000_TXD_CMD_IP
#define E1000_TXD_CMD_TSE
#define E1000_TXD_STAT_TC
#define E1000_TXD_EXTCMD_TSTAMP

/* Transmit Control */
#define E1000_TCTL_EN
#define E1000_TCTL_PSP
#define E1000_TCTL_CT
#define E1000_TCTL_COLD
#define E1000_TCTL_RTLC
#define E1000_TCTL_MULR

/* SerDes Control */
#define E1000_SCTL_DISABLE_SERDES_LOOPBACK
#define E1000_SCTL_ENABLE_SERDES_LOOPBACK

/* Receive Checksum Control */
#define E1000_RXCSUM_TUOFL
#define E1000_RXCSUM_IPPCSE
#define E1000_RXCSUM_PCSD

/* Header split receive */
#define E1000_RFCTL_NFSW_DIS
#define E1000_RFCTL_NFSR_DIS
#define E1000_RFCTL_ACK_DIS
#define E1000_RFCTL_EXTEN
#define E1000_RFCTL_IPV6_EX_DIS
#define E1000_RFCTL_NEW_IPV6_EXT_DIS

/* Collision related configuration parameters */
#define E1000_COLLISION_THRESHOLD
#define E1000_CT_SHIFT
#define E1000_COLLISION_DISTANCE
#define E1000_COLD_SHIFT

/* Default values for the transmit IPG register */
#define DEFAULT_82543_TIPG_IPGT_COPPER

#define E1000_TIPG_IPGT_MASK

#define DEFAULT_82543_TIPG_IPGR1
#define E1000_TIPG_IPGR1_SHIFT

#define DEFAULT_82543_TIPG_IPGR2
#define DEFAULT_80003ES2LAN_TIPG_IPGR2
#define E1000_TIPG_IPGR2_SHIFT

#define MAX_JUMBO_FRAME_SIZE
#define E1000_TX_PTR_GAP

/* Extended Configuration Control and Size */
#define E1000_EXTCNF_CTRL_MDIO_SW_OWNERSHIP
#define E1000_EXTCNF_CTRL_LCD_WRITE_ENABLE
#define E1000_EXTCNF_CTRL_OEM_WRITE_ENABLE
#define E1000_EXTCNF_CTRL_SWFLAG
#define E1000_EXTCNF_CTRL_GATE_PHY_CFG
#define E1000_EXTCNF_SIZE_EXT_PCIE_LENGTH_MASK
#define E1000_EXTCNF_SIZE_EXT_PCIE_LENGTH_SHIFT
#define E1000_EXTCNF_CTRL_EXT_CNF_POINTER_MASK
#define E1000_EXTCNF_CTRL_EXT_CNF_POINTER_SHIFT

#define E1000_PHY_CTRL_D0A_LPLU
#define E1000_PHY_CTRL_NOND0A_LPLU
#define E1000_PHY_CTRL_NOND0A_GBE_DISABLE
#define E1000_PHY_CTRL_GBE_DISABLE

#define E1000_KABGTXD_BGSQLBIAS

/* Low Power IDLE Control */
#define E1000_LPIC_LPIET_SHIFT

/* PBA constants */
#define E1000_PBA_8K
#define E1000_PBA_16K

#define E1000_PBA_RXA_MASK

#define E1000_PBS_16K

/* Uncorrectable/correctable ECC Error counts and enable bits */
#define E1000_PBECCSTS_CORR_ERR_CNT_MASK
#define E1000_PBECCSTS_UNCORR_ERR_CNT_MASK
#define E1000_PBECCSTS_UNCORR_ERR_CNT_SHIFT
#define E1000_PBECCSTS_ECC_ENABLE

#define IFS_MAX
#define IFS_MIN
#define IFS_RATIO
#define IFS_STEP
#define MIN_NUM_XMITS

/* SW Semaphore Register */
#define E1000_SWSM_SMBI
#define E1000_SWSM_SWESMBI
#define E1000_SWSM_DRV_LOAD

#define E1000_SWSM2_LOCK

/* Interrupt Cause Read */
#define E1000_ICR_TXDW
#define E1000_ICR_LSC
#define E1000_ICR_RXSEQ
#define E1000_ICR_RXDMT0
#define E1000_ICR_RXO
#define E1000_ICR_RXT0
#define E1000_ICR_MDAC
#define E1000_ICR_SRPD
#define E1000_ICR_ACK
#define E1000_ICR_MNG
#define E1000_ICR_ECCER
/* If this bit asserted, the driver should claim the interrupt */
#define E1000_ICR_INT_ASSERTED
#define E1000_ICR_RXQ0
#define E1000_ICR_RXQ1
#define E1000_ICR_TXQ0
#define E1000_ICR_TXQ1
#define E1000_ICR_OTHER

/* PBA ECC Register */
#define E1000_PBA_ECC_COUNTER_MASK
#define E1000_PBA_ECC_COUNTER_SHIFT
#define E1000_PBA_ECC_CORR_EN
#define E1000_PBA_ECC_STAT_CLR
#define E1000_PBA_ECC_INT_EN

/* This defines the bits that are set in the Interrupt Mask
 * Set/Read Register.  Each bit is documented below:
 *   o RXT0   = Receiver Timer Interrupt (ring 0)
 *   o TXDW   = Transmit Descriptor Written Back
 *   o RXDMT0 = Receive Descriptor Minimum Threshold hit (ring 0)
 *   o RXSEQ  = Receive Sequence Error
 *   o LSC    = Link Status Change
 */
#define IMS_ENABLE_MASK

/* These are all of the events related to the OTHER interrupt.
 */
#define IMS_OTHER_MASK

/* Interrupt Mask Set */
#define E1000_IMS_TXDW
#define E1000_IMS_LSC
#define E1000_IMS_RXSEQ
#define E1000_IMS_RXDMT0
#define E1000_IMS_RXO
#define E1000_IMS_RXT0
#define E1000_IMS_MDAC
#define E1000_IMS_SRPD
#define E1000_IMS_ACK
#define E1000_IMS_MNG
#define E1000_IMS_ECCER
#define E1000_IMS_RXQ0
#define E1000_IMS_RXQ1
#define E1000_IMS_TXQ0
#define E1000_IMS_TXQ1
#define E1000_IMS_OTHER

/* Interrupt Cause Set */
#define E1000_ICS_LSC
#define E1000_ICS_RXSEQ
#define E1000_ICS_RXDMT0
#define E1000_ICS_OTHER

/* Transmit Descriptor Control */
#define E1000_TXDCTL_PTHRESH
#define E1000_TXDCTL_HTHRESH
#define E1000_TXDCTL_WTHRESH
#define E1000_TXDCTL_GRAN
#define E1000_TXDCTL_FULL_TX_DESC_WB
#define E1000_TXDCTL_MAX_TX_DESC_PREFETCH
/* Enable the counting of desc. still to be processed. */
#define E1000_TXDCTL_COUNT_DESC

/* Flow Control Constants */
#define FLOW_CONTROL_ADDRESS_LOW
#define FLOW_CONTROL_ADDRESS_HIGH
#define FLOW_CONTROL_TYPE

/* 802.1q VLAN Packet Size */
#define E1000_VLAN_FILTER_TBL_SIZE

/* Receive Address
 * Number of high/low register pairs in the RAR. The RAR (Receive Address
 * Registers) holds the directed and multicast addresses that we monitor.
 * Technically, we have 16 spots.  However, we reserve one of these spots
 * (RAR[15]) for our directed address used by controllers with
 * manageability enabled, allowing us room for 15 multicast addresses.
 */
#define E1000_RAR_ENTRIES
#define E1000_RAH_AV
#define E1000_RAL_MAC_ADDR_LEN
#define E1000_RAH_MAC_ADDR_LEN

/* Error Codes */
#define E1000_ERR_NVM
#define E1000_ERR_PHY
#define E1000_ERR_CONFIG
#define E1000_ERR_PARAM
#define E1000_ERR_MAC_INIT
#define E1000_ERR_PHY_TYPE
#define E1000_ERR_RESET
#define E1000_ERR_MASTER_REQUESTS_PENDING
#define E1000_ERR_HOST_INTERFACE_COMMAND
#define E1000_BLK_PHY_RESET
#define E1000_ERR_SWFW_SYNC
#define E1000_NOT_IMPLEMENTED
#define E1000_ERR_INVALID_ARGUMENT
#define E1000_ERR_NO_SPACE
#define E1000_ERR_NVM_PBA_SECTION

/* Loop limit on how long we wait for auto-negotiation to complete */
#define FIBER_LINK_UP_LIMIT
#define COPPER_LINK_UP_LIMIT
#define PHY_AUTO_NEG_LIMIT
#define PHY_FORCE_LIMIT
/* Number of 100 microseconds we wait for PCI Express master disable */
#define MASTER_DISABLE_TIMEOUT
/* Number of milliseconds we wait for PHY configuration done after MAC reset */
#define PHY_CFG_TIMEOUT
/* Number of 2 milliseconds we wait for acquiring MDIO ownership. */
#define MDIO_OWNERSHIP_TIMEOUT
/* Number of milliseconds for NVM auto read done after MAC reset. */
#define AUTO_READ_DONE_TIMEOUT

/* Flow Control */
#define E1000_FCRTH_RTH
#define E1000_FCRTL_RTL
#define E1000_FCRTL_XONE

/* Transmit Configuration Word */
#define E1000_TXCW_FD
#define E1000_TXCW_PAUSE
#define E1000_TXCW_ASM_DIR
#define E1000_TXCW_PAUSE_MASK
#define E1000_TXCW_ANE

/* Receive Configuration Word */
#define E1000_RXCW_CW
#define E1000_RXCW_IV
#define E1000_RXCW_C
#define E1000_RXCW_SYNCH

/* HH Time Sync */
#define E1000_TSYNCTXCTL_MAX_ALLOWED_DLY_MASK
#define E1000_TSYNCTXCTL_SYNC_COMP
#define E1000_TSYNCTXCTL_START_SYNC

#define E1000_TSYNCTXCTL_VALID
#define E1000_TSYNCTXCTL_ENABLED

#define E1000_TSYNCRXCTL_VALID
#define E1000_TSYNCRXCTL_TYPE_MASK
#define E1000_TSYNCRXCTL_TYPE_L2_V2
#define E1000_TSYNCRXCTL_TYPE_L4_V1
#define E1000_TSYNCRXCTL_TYPE_L2_L4_V2
#define E1000_TSYNCRXCTL_TYPE_ALL
#define E1000_TSYNCRXCTL_TYPE_EVENT_V2
#define E1000_TSYNCRXCTL_ENABLED
#define E1000_TSYNCRXCTL_SYSCFI

#define E1000_RXMTRL_PTP_V1_SYNC_MESSAGE
#define E1000_RXMTRL_PTP_V1_DELAY_REQ_MESSAGE

#define E1000_RXMTRL_PTP_V2_SYNC_MESSAGE
#define E1000_RXMTRL_PTP_V2_DELAY_REQ_MESSAGE

#define E1000_TIMINCA_INCPERIOD_SHIFT
#define E1000_TIMINCA_INCVALUE_MASK

/* PCI Express Control */
#define E1000_GCR_RXD_NO_SNOOP
#define E1000_GCR_RXDSCW_NO_SNOOP
#define E1000_GCR_RXDSCR_NO_SNOOP
#define E1000_GCR_TXD_NO_SNOOP
#define E1000_GCR_TXDSCW_NO_SNOOP
#define E1000_GCR_TXDSCR_NO_SNOOP

#define PCIE_NO_SNOOP_ALL

/* NVM Control */
#define E1000_EECD_SK
#define E1000_EECD_CS
#define E1000_EECD_DI
#define E1000_EECD_DO
#define E1000_EECD_REQ
#define E1000_EECD_GNT
#define E1000_EECD_PRES
#define E1000_EECD_SIZE
/* NVM Addressing bits based on type (0-small, 1-large) */
#define E1000_EECD_ADDR_BITS
#define E1000_NVM_GRANT_ATTEMPTS
#define E1000_EECD_AUTO_RD
#define E1000_EECD_SIZE_EX_MASK
#define E1000_EECD_SIZE_EX_SHIFT
#define E1000_EECD_FLUPD
#define E1000_EECD_AUPDEN
#define E1000_EECD_SEC1VAL
#define E1000_EECD_SEC1VAL_VALID_MASK

#define E1000_NVM_RW_REG_DATA
#define E1000_NVM_RW_REG_DONE
#define E1000_NVM_RW_REG_START
#define E1000_NVM_RW_ADDR_SHIFT
#define E1000_NVM_POLL_WRITE
#define E1000_NVM_POLL_READ
#define E1000_FLASH_UPDATES

/* NVM Word Offsets */
#define NVM_COMPAT
#define NVM_ID_LED_SETTINGS
#define NVM_FUTURE_INIT_WORD1
#define NVM_COMPAT_VALID_CSUM
#define NVM_FUTURE_INIT_WORD1_VALID_CSUM

#define NVM_INIT_CONTROL2_REG
#define NVM_INIT_CONTROL3_PORT_B
#define NVM_INIT_3GIO_3
#define NVM_INIT_CONTROL3_PORT_A
#define NVM_CFG
#define NVM_ALT_MAC_ADDR_PTR
#define NVM_CHECKSUM_REG

#define E1000_NVM_CFG_DONE_PORT_0
#define E1000_NVM_CFG_DONE_PORT_1

/* Mask bits for fields in Word 0x0f of the NVM */
#define NVM_WORD0F_PAUSE_MASK
#define NVM_WORD0F_PAUSE
#define NVM_WORD0F_ASM_DIR

/* Mask bits for fields in Word 0x1a of the NVM */
#define NVM_WORD1A_ASPM_MASK

/* Mask bits for fields in Word 0x03 of the EEPROM */
#define NVM_COMPAT_LOM

/* length of string needed to store PBA number */
#define E1000_PBANUM_LENGTH

/* For checksumming, the sum of all words in the NVM should equal 0xBABA. */
#define NVM_SUM

/* PBA (printed board assembly) number words */
#define NVM_PBA_OFFSET_0
#define NVM_PBA_OFFSET_1
#define NVM_PBA_PTR_GUARD
#define NVM_WORD_SIZE_BASE_SHIFT

/* NVM Commands - SPI */
#define NVM_MAX_RETRY_SPI
#define NVM_READ_OPCODE_SPI
#define NVM_WRITE_OPCODE_SPI
#define NVM_A8_OPCODE_SPI
#define NVM_WREN_OPCODE_SPI
#define NVM_RDSR_OPCODE_SPI

/* SPI NVM Status Register */
#define NVM_STATUS_RDY_SPI

/* Word definitions for ID LED Settings */
#define ID_LED_RESERVED_0000
#define ID_LED_RESERVED_FFFF
#define ID_LED_DEFAULT
#define ID_LED_DEF1_DEF2
#define ID_LED_DEF1_ON2
#define ID_LED_DEF1_OFF2
#define ID_LED_ON1_DEF2
#define ID_LED_ON1_ON2
#define ID_LED_ON1_OFF2
#define ID_LED_OFF1_DEF2
#define ID_LED_OFF1_ON2
#define ID_LED_OFF1_OFF2

#define IGP_ACTIVITY_LED_MASK
#define IGP_ACTIVITY_LED_ENABLE
#define IGP_LED3_MODE

/* PCI/PCI-X/PCI-EX Config space */
#define PCI_HEADER_TYPE_REGISTER

#define PHY_REVISION_MASK
#define MAX_PHY_REG_ADDRESS
#define MAX_PHY_MULTI_PAGE_REG

/* Bit definitions for valid PHY IDs.
 * I = Integrated
 * E = External
 */
#define M88E1000_E_PHY_ID
#define M88E1000_I_PHY_ID
#define M88E1011_I_PHY_ID
#define IGP01E1000_I_PHY_ID
#define M88E1111_I_PHY_ID
#define GG82563_E_PHY_ID
#define IGP03E1000_E_PHY_ID
#define IFE_E_PHY_ID
#define IFE_PLUS_E_PHY_ID
#define IFE_C_E_PHY_ID
#define BME1000_E_PHY_ID
#define BME1000_E_PHY_ID_R2
#define I82577_E_PHY_ID
#define I82578_E_PHY_ID
#define I82579_E_PHY_ID
#define I217_E_PHY_ID

/* M88E1000 Specific Registers */
#define M88E1000_PHY_SPEC_CTRL
#define M88E1000_PHY_SPEC_STATUS
#define M88E1000_EXT_PHY_SPEC_CTRL

#define M88E1000_PHY_PAGE_SELECT
#define M88E1000_PHY_GEN_CONTROL

/* M88E1000 PHY Specific Control Register */
#define M88E1000_PSCR_POLARITY_REVERSAL
#define M88E1000_PSCR_MDI_MANUAL_MODE
					       /* Manual MDI configuration */
#define M88E1000_PSCR_MDIX_MANUAL_MODE
/* 1000BASE-T: Auto crossover, 100BASE-TX/10BASE-T: MDI Mode */
#define M88E1000_PSCR_AUTO_X_1000T
/* Auto crossover enabled all speeds */
#define M88E1000_PSCR_AUTO_X_MODE
#define M88E1000_PSCR_ASSERT_CRS_ON_TX

/* M88E1000 PHY Specific Status Register */
#define M88E1000_PSSR_REV_POLARITY
#define M88E1000_PSSR_DOWNSHIFT
#define M88E1000_PSSR_MDIX
/* 0=<50M; 1=50-80M; 2=80-110M; 3=110-140M; 4=>140M */
#define M88E1000_PSSR_CABLE_LENGTH
#define M88E1000_PSSR_SPEED
#define M88E1000_PSSR_1000MBS

#define M88E1000_PSSR_CABLE_LENGTH_SHIFT

/* Number of times we will attempt to autonegotiate before downshifting if we
 * are the master
 */
#define M88E1000_EPSCR_MASTER_DOWNSHIFT_MASK
#define M88E1000_EPSCR_MASTER_DOWNSHIFT_1X
/* Number of times we will attempt to autonegotiate before downshifting if we
 * are the slave
 */
#define M88E1000_EPSCR_SLAVE_DOWNSHIFT_MASK
#define M88E1000_EPSCR_SLAVE_DOWNSHIFT_1X
#define M88E1000_EPSCR_TX_CLK_25

/* M88EC018 Rev 2 specific DownShift settings */
#define M88EC018_EPSCR_DOWNSHIFT_COUNTER_MASK
#define M88EC018_EPSCR_DOWNSHIFT_COUNTER_5X

#define I82578_EPSCR_DOWNSHIFT_ENABLE
#define I82578_EPSCR_DOWNSHIFT_COUNTER_MASK

/* BME1000 PHY Specific Control Register */
#define BME1000_PSCR_ENABLE_DOWNSHIFT

/* Bits...
 * 15-5: page
 * 4-0: register offset
 */
#define GG82563_PAGE_SHIFT
#define GG82563_REG(page, reg)
#define GG82563_MIN_ALT_REG

/* GG82563 Specific Registers */
#define GG82563_PHY_SPEC_CTRL
#define GG82563_PHY_PAGE_SELECT
#define GG82563_PHY_SPEC_CTRL_2
#define GG82563_PHY_PAGE_SELECT_ALT

#define GG82563_PHY_MAC_SPEC_CTRL

#define GG82563_PHY_DSP_DISTANCE

/* Page 193 - Port Control Registers */
#define GG82563_PHY_KMRN_MODE_CTRL
#define GG82563_PHY_PWR_MGMT_CTRL

/* Page 194 - KMRN Registers */
#define GG82563_PHY_INBAND_CTRL

/* MDI Control */
#define E1000_MDIC_REG_MASK
#define E1000_MDIC_REG_SHIFT
#define E1000_MDIC_PHY_SHIFT
#define E1000_MDIC_OP_WRITE
#define E1000_MDIC_OP_READ
#define E1000_MDIC_READY
#define E1000_MDIC_ERROR

/* SerDes Control */
#define E1000_GEN_POLL_TIMEOUT

#endif /* _E1000_DEFINES_H_ */