/** @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