/** @file @copyright Copyright 2015 - 2021 Intel Corporation.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _ONBOARD_NIC_STRUCTS_H #define _ONBOARD_NIC_STRUCTS_H #include #pragma pack(1) typedef struct { NIC_TYPE NicType; //Onboard or IO modue? UINT8 NicIndex; //Nic index in setup page, 1 for Nic 1, 2 for Nic 2..... // //Parent // UINT8 RootPortBusNo; //Who is connected to? UINT8 RootPortDevNo; UINT8 RootPortFunNo; // //Nic controller for Onboard Nic // UINT16 NicVID; //Vendor ID UINT16 NicDID; //Device ID UINT8 PortNumbers; //How many ports inside NIC? UINT8 DescriptionIndex; //Index to Nic description list // //Disable Method for Onboard Nic // UINT8 IsGpioCtrl; //Disable by Gpio? UINT32 GpioForDev; //Ctrl Gpio Pin number for device UINT8 GpioForDevValue; //what value is used to enable? UINT32 PortEnableGPIO[4]; //Ctrl Gpio Pin number for this port UINT8 PortEnableGPIOValue[4];//what value is used to enable the port UINT8 IsPchNIC; } NIC_SETUP_CONFIGURATION_STUCT; typedef struct { UINT16 NicDID; // Device ID UINT16 SubDID; // Subsystem ID, if preset to 0xFFFF, then negore this field during detection UINT8 NIC10Gb; // 10Gbe Pxe Seupported UINT8 PXE_Support; // Pxe supported? UINT8 iSCSI_Support; // iScsi supported? UINT8 FCoE_Support; // FCoe supported? UINT8 InfB_Support; // InfiniBand supported? UINT8 PchNIC; //PCH integrated NIC? } NIC_OPTIONROM_CAPBILITY_STRUCT; typedef struct { UINT16 IOM1DID; //Device ID for IOM1 UINT16 IOM1SubDID; //Subsystem ID for IOM1 UINT16 IOM2DID; //Device ID for IOM2 UINT16 IOM2SubDID; //Subsystem ID for IOM2 UINT16 IOM3DID; //Device ID for IOM3 UINT16 IOM3SubDID; //Subsystem ID for IOM3 UINT16 IOM4DID; //Device ID for IOM4 UINT16 IOM4SubDID; //Subsystem ID for IOM4 } IOMS_NV_VARIABLE; typedef struct { UINT8 PXE10GPreValue; UINT8 PXE1GPreValue; UINT8 Reserved[6]; } PXE_PREVIOUS_SETTINGS; #pragma pack() #define NIC_CHARACTER_NUMBER_FOR_VALUE 30 #define CPU0_IIO_BUS 0x00 #define IIO_PCIE_PORT_1A_DEV 0x1 #define IIO_PCIE_PORT_1A_FUN 0x0 #define IIO_PCIE_PORT_1B_DEV 0x1 #define IIO_PCIE_PORT_1B_FUN 0x1 #define IIO_PCIE_PORT_2A_DEV 0x2 #define IIO_PCIE_PORT_2A_FUN 0x0 #define IIO_PCIE_PORT_3A_DEV 0x3 #define IIO_PCIE_PORT_3A_FUN 0x0 #define IIO_PCIE_PORT_3C_DEV 0x3 #define IIO_PCIE_PORT_3C_FUN 0x2 #define OB_NIC_POWERVILLE_DID 0x1521 #define INTEL_MAC_ADDRESS_REG 0x5400 #define VENDOR_ID_MELLANOX 0x15B3 #define DEVICE_ID_MELLANOX 0x1003 #endif