/** @file
@copyright
Copyright 2008 - 2021 Intel Corporation.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef _PLATFORM_OPTION_ROM_UPDATE_LIB_
#define _PLATFORM_OPTION_ROM_UPDATE_LIB_
#include
#include
#include
#include
#include "OnboardNicStructs.h"
#define PLATFORM_OPTION_ROM_UPDATE_SIGNATURE SIGNATURE_32 ('P', 'B', 'D', 'S')
#define PLATFORM_OPTION_ROM_UPDATE_VERSION 01
// {371BD79C-DE79-4c5f-AA2B-BC9EBEFA988F}
STATIC EFI_GUID gPlatformOptionRomUpdateConfigDataGuid =
{ 0x371bd79c, 0xde79, 0x4c5f, { 0xaa, 0x2b, 0xbc, 0x9e, 0xbe, 0xfa, 0x98, 0x8f } };
typedef struct {
EFI_GUID FileName;
UINTN Segment;
UINTN Bus;
UINTN Device;
UINTN Function;
UINT16 VendorId;
UINT16 DeviceId;
} PC_PCI_OPTION_ROM_TABLE;
typedef
BOOLEAN
(*PLATFORM_PCIE_ROOT_PORT_CHECK_CALLBACK) (
IN UINTN Bus,
IN UINT32 PcieSlotOpromBitMap
);
typedef
EFI_STATUS
(*PLATFORM_GET_OPTIONROM_TABLE) (
IN PC_PCI_OPTION_ROM_TABLE **OptionRomTable
);
typedef
EFI_STATUS
(*PLATFORM_GET_NIC_SETUP_CONFIG) (
IN NIC_SETUP_CONFIGURATION_STUCT **NicSetupConfigTable,
IN UINTN *NumOfConfig
);
typedef
EFI_STATUS
(*PLATFORM_GET_NIC_CAPABILITY_TABLE) (
IN NIC_OPTIONROM_CAPBILITY_STRUCT **NicCapabilityTable,
IN UINTN *NumOfNicCapTable
);
typedef
EFI_STATUS
(*PLATFORM_SETUP_PCIE_SLOT_NUMBER ) (
OUT UINT8 *PcieSlotItemCtrl
);
typedef struct
{
UINT32 Signature;
UINT32 Version;
PLATFORM_PCIE_ROOT_PORT_CHECK_CALLBACK CallCheckRootPort;
PLATFORM_GET_OPTIONROM_TABLE GetOptionRomTable;
PLATFORM_GET_NIC_SETUP_CONFIG GetNicSetupConfigTable;
PLATFORM_GET_NIC_CAPABILITY_TABLE GetNicCapabilityTable;
PLATFORM_SETUP_PCIE_SLOT_NUMBER SetupSlotNumber;
} PLATFORM_OPTION_ROM_UPDATE_DATA;
BOOLEAN
PlatformCheckPcieRootPort (
IN UINTN Bus,
IN UINT32 PcieSlotOpromBitMap
);
EFI_STATUS
PlatformGetOptionRomTable (
IN PC_PCI_OPTION_ROM_TABLE **OptionRomTable
);
EFI_STATUS
PlatformGetNicSetupConfigTable (
IN NIC_SETUP_CONFIGURATION_STUCT **NicSetupConfigTable,
IN UINTN *NumOfConfig
);
EFI_STATUS
PlatformGetNicCapabilityTable (
IN NIC_OPTIONROM_CAPBILITY_STRUCT **NicCapabilityTable,
IN UINTN *NumOfNicCapTable
);
EFI_STATUS
PlatformSetupPcieSlotNumber (
OUT UINT8 *PcieSlotItemCtrl
);
#endif //_PLATFORM_OPTION_ROM_UPDATE_LIB_