mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-27 15:44:04 +02:00
EmulatorPkg/MiscSubClassPlatformDxe: Remove this unused module
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=1953 For commit 63f9b9b9312f3e08c92a2ea3cdbe01e723ef653b, the use of module EmulatorPkg/MiscSubClassPlatformDxe/MiscSubClassDriver.inf was replaced by: EmulatorPkg/PlatformSmbiosDxe/PlatformSmbiosDxe.inf in platform DSC/FDF files. This commit will remove this unused module from EmulatorPkg. Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Andrew Fish <afish@apple.com> Reviewed-by: Ray Ni <ray.ni@intel.com> Signed-off-by: Hao A Wu <hao.a.wu@intel.com>
This commit is contained in:
parent
21902410ad
commit
e53303ca05
@ -1,19 +0,0 @@
|
|||||||
// *++
|
|
||||||
//
|
|
||||||
// Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
|
|
||||||
//
|
|
||||||
// SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
||||||
//
|
|
||||||
// --*/
|
|
||||||
|
|
||||||
/=#
|
|
||||||
|
|
||||||
#langdef en-US "English"
|
|
||||||
|
|
||||||
#string STR_MISC_BASE_BOARD_MANUFACTURER #language en-US "Base Board Manufacturer"
|
|
||||||
#string STR_MISC_BASE_BOARD_PRODUCT_NAME #language en-US "Base Board Product Name"
|
|
||||||
#string STR_MISC_BASE_BOARD_VERSION #language en-US "Base Board Version"
|
|
||||||
#string STR_MISC_BASE_BOARD_SERIAL_NUMBER #language en-US "Base Board Serial Number"
|
|
||||||
#string STR_MISC_BASE_BOARD_ASSET_TAG #language en-US "Base Board Asset Tag"
|
|
||||||
#string STR_MISC_BASE_BOARD_CHASSIS_LOCATION #language en-US "Base Board Chassis Location"
|
|
||||||
|
|
@ -1,51 +0,0 @@
|
|||||||
/*++
|
|
||||||
|
|
||||||
Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
|
|
||||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
||||||
|
|
||||||
Module Name:
|
|
||||||
|
|
||||||
MiscBaseBoardManufacturerData.c
|
|
||||||
|
|
||||||
Abstract:
|
|
||||||
|
|
||||||
This driver parses the mMiscSubclassDataTable structure and reports
|
|
||||||
any generated data to the DataHub.
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
#include "MiscSubClassDriver.h"
|
|
||||||
|
|
||||||
//
|
|
||||||
// Static (possibly build generated) Bios Vendor data.
|
|
||||||
//
|
|
||||||
MISC_SMBIOS_TABLE_DATA(EFI_MISC_BASE_BOARD_MANUFACTURER_DATA, MiscBaseBoardManufacturer) = {
|
|
||||||
STRING_TOKEN(STR_MISC_BASE_BOARD_MANUFACTURER),
|
|
||||||
STRING_TOKEN(STR_MISC_BASE_BOARD_PRODUCT_NAME),
|
|
||||||
STRING_TOKEN(STR_MISC_BASE_BOARD_VERSION),
|
|
||||||
STRING_TOKEN(STR_MISC_BASE_BOARD_SERIAL_NUMBER),
|
|
||||||
STRING_TOKEN(STR_MISC_BASE_BOARD_ASSET_TAG),
|
|
||||||
STRING_TOKEN(STR_MISC_BASE_BOARD_CHASSIS_LOCATION),
|
|
||||||
{ // BaseBoardFeatureFlags
|
|
||||||
1, // Motherboard
|
|
||||||
0, // RequiresDaughterCard
|
|
||||||
0, // Removable
|
|
||||||
1, // Replaceable,
|
|
||||||
0, // HotSwappable
|
|
||||||
0, // Reserved
|
|
||||||
},
|
|
||||||
EfiBaseBoardTypeUnknown, // BaseBoardType
|
|
||||||
{ // BaseBoardChassisLink
|
|
||||||
EFI_MISC_SUBCLASS_GUID, // ProducerName
|
|
||||||
1, // Instance
|
|
||||||
1, // SubInstance
|
|
||||||
},
|
|
||||||
0, // BaseBoardNumberLinks
|
|
||||||
{ // LinkN
|
|
||||||
EFI_MISC_SUBCLASS_GUID, // ProducerName
|
|
||||||
1, // Instance
|
|
||||||
1, // SubInstance
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
/* eof - MiscBaseBoardManufacturerData.c */
|
|
@ -1,155 +0,0 @@
|
|||||||
/** @file
|
|
||||||
BaseBoard manufacturer information boot time changes.
|
|
||||||
SMBIOS type 2.
|
|
||||||
|
|
||||||
Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>
|
|
||||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
#include "MiscSubClassDriver.h"
|
|
||||||
/**
|
|
||||||
This function makes boot time changes to the contents of the
|
|
||||||
MiscBaseBoardManufacturer (Type 2).
|
|
||||||
|
|
||||||
@param RecordData Pointer to copy of RecordData from the Data Table.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS All parameters were valid.
|
|
||||||
@retval EFI_UNSUPPORTED Unexpected RecordType value.
|
|
||||||
@retval EFI_INVALID_PARAMETER Invalid parameter was found.
|
|
||||||
|
|
||||||
**/
|
|
||||||
MISC_SMBIOS_TABLE_FUNCTION(MiscBaseBoardManufacturer)
|
|
||||||
{
|
|
||||||
CHAR8 *OptionalStrStart;
|
|
||||||
UINTN ManuStrLen;
|
|
||||||
UINTN ProductStrLen;
|
|
||||||
UINTN VerStrLen;
|
|
||||||
UINTN AssertTagStrLen;
|
|
||||||
UINTN SerialNumStrLen;
|
|
||||||
UINTN ChassisStrLen;
|
|
||||||
EFI_STATUS Status;
|
|
||||||
EFI_STRING Manufacturer;
|
|
||||||
EFI_STRING Product;
|
|
||||||
EFI_STRING Version;
|
|
||||||
EFI_STRING SerialNumber;
|
|
||||||
EFI_STRING AssertTag;
|
|
||||||
EFI_STRING Chassis;
|
|
||||||
STRING_REF TokenToGet;
|
|
||||||
EFI_SMBIOS_HANDLE SmbiosHandle;
|
|
||||||
SMBIOS_TABLE_TYPE2 *SmbiosRecord;
|
|
||||||
EFI_MISC_BASE_BOARD_MANUFACTURER *ForType2InputData;
|
|
||||||
|
|
||||||
ForType2InputData = (EFI_MISC_BASE_BOARD_MANUFACTURER *)RecordData;
|
|
||||||
|
|
||||||
//
|
|
||||||
// First check for invalid parameters.
|
|
||||||
//
|
|
||||||
if (RecordData == NULL) {
|
|
||||||
return EFI_INVALID_PARAMETER;
|
|
||||||
}
|
|
||||||
|
|
||||||
TokenToGet = STRING_TOKEN (STR_MISC_BASE_BOARD_MANUFACTURER);
|
|
||||||
Manufacturer = HiiGetPackageString(&gEfiCallerIdGuid, TokenToGet, NULL);
|
|
||||||
ManuStrLen = StrLen(Manufacturer);
|
|
||||||
if (ManuStrLen > SMBIOS_STRING_MAX_LENGTH) {
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
TokenToGet = STRING_TOKEN (STR_MISC_BASE_BOARD_PRODUCT_NAME);
|
|
||||||
Product = HiiGetPackageString(&gEfiCallerIdGuid, TokenToGet, NULL);
|
|
||||||
ProductStrLen = StrLen(Product);
|
|
||||||
if (ProductStrLen > SMBIOS_STRING_MAX_LENGTH) {
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
TokenToGet = STRING_TOKEN (STR_MISC_BASE_BOARD_VERSION);
|
|
||||||
Version = HiiGetPackageString(&gEfiCallerIdGuid, TokenToGet, NULL);
|
|
||||||
VerStrLen = StrLen(Version);
|
|
||||||
if (VerStrLen > SMBIOS_STRING_MAX_LENGTH) {
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
TokenToGet = STRING_TOKEN (STR_MISC_BASE_BOARD_SERIAL_NUMBER);
|
|
||||||
SerialNumber = HiiGetPackageString(&gEfiCallerIdGuid, TokenToGet, NULL);
|
|
||||||
SerialNumStrLen = StrLen(SerialNumber);
|
|
||||||
if (SerialNumStrLen > SMBIOS_STRING_MAX_LENGTH) {
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
TokenToGet = STRING_TOKEN (STR_MISC_BASE_BOARD_ASSET_TAG);
|
|
||||||
AssertTag = HiiGetPackageString(&gEfiCallerIdGuid, TokenToGet, NULL);
|
|
||||||
AssertTagStrLen = StrLen(AssertTag);
|
|
||||||
if (AssertTagStrLen > SMBIOS_STRING_MAX_LENGTH) {
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
TokenToGet = STRING_TOKEN (STR_MISC_BASE_BOARD_CHASSIS_LOCATION);
|
|
||||||
Chassis = HiiGetPackageString(&gEfiCallerIdGuid, TokenToGet, NULL);
|
|
||||||
ChassisStrLen = StrLen(Chassis);
|
|
||||||
if (ChassisStrLen > SMBIOS_STRING_MAX_LENGTH) {
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// Two zeros following the last string.
|
|
||||||
//
|
|
||||||
SmbiosRecord = AllocatePool(sizeof (SMBIOS_TABLE_TYPE3) + ManuStrLen + 1 + ProductStrLen + 1 + VerStrLen + 1 + SerialNumStrLen + 1 + AssertTagStrLen + 1 + ChassisStrLen +1 + 1);
|
|
||||||
ZeroMem(SmbiosRecord, sizeof (SMBIOS_TABLE_TYPE3) + ManuStrLen + 1 + ProductStrLen + 1 + VerStrLen + 1 + SerialNumStrLen + 1 + AssertTagStrLen + 1 + ChassisStrLen +1 + 1);
|
|
||||||
|
|
||||||
SmbiosRecord->Hdr.Type = EFI_SMBIOS_TYPE_BASEBOARD_INFORMATION;
|
|
||||||
SmbiosRecord->Hdr.Length = sizeof (SMBIOS_TABLE_TYPE2);
|
|
||||||
//
|
|
||||||
// Make handle chosen by smbios protocol.add automatically.
|
|
||||||
//
|
|
||||||
SmbiosRecord->Hdr.Handle = 0;
|
|
||||||
//
|
|
||||||
// Manu will be the 1st optional string following the formatted structure.
|
|
||||||
//
|
|
||||||
SmbiosRecord->Manufacturer = 1;
|
|
||||||
//
|
|
||||||
// ProductName will be the 2st optional string following the formatted structure.
|
|
||||||
//
|
|
||||||
SmbiosRecord->ProductName = 2;
|
|
||||||
//
|
|
||||||
// Version will be the 3rd optional string following the formatted structure.
|
|
||||||
//
|
|
||||||
SmbiosRecord->Version = 3;
|
|
||||||
//
|
|
||||||
// SerialNumber will be the 4th optional string following the formatted structure.
|
|
||||||
//
|
|
||||||
SmbiosRecord->SerialNumber = 4;
|
|
||||||
//
|
|
||||||
// AssertTag will be the 5th optional string following the formatted structure.
|
|
||||||
//
|
|
||||||
SmbiosRecord->AssetTag = 5;
|
|
||||||
|
|
||||||
//
|
|
||||||
// LocationInChassis will be the 6th optional string following the formatted structure.
|
|
||||||
//
|
|
||||||
SmbiosRecord->LocationInChassis = 6;
|
|
||||||
SmbiosRecord->FeatureFlag = (*(BASE_BOARD_FEATURE_FLAGS*)&(ForType2InputData->BaseBoardFeatureFlags));
|
|
||||||
SmbiosRecord->ChassisHandle = 0;
|
|
||||||
SmbiosRecord->BoardType = (UINT8)ForType2InputData->BaseBoardType;
|
|
||||||
SmbiosRecord->NumberOfContainedObjectHandles = 0;
|
|
||||||
|
|
||||||
OptionalStrStart = (CHAR8 *)(SmbiosRecord + 1);
|
|
||||||
//
|
|
||||||
// Since we fill NumberOfContainedObjectHandles = 0 for simple, just after this filed to fill string
|
|
||||||
//
|
|
||||||
OptionalStrStart -= 2;
|
|
||||||
UnicodeStrToAsciiStr(Manufacturer, OptionalStrStart);
|
|
||||||
UnicodeStrToAsciiStr(Product, OptionalStrStart + ManuStrLen + 1);
|
|
||||||
UnicodeStrToAsciiStr(Version, OptionalStrStart + ManuStrLen + 1 + ProductStrLen + 1);
|
|
||||||
UnicodeStrToAsciiStr(SerialNumber, OptionalStrStart + ManuStrLen + 1 + ProductStrLen + 1 + VerStrLen + 1);
|
|
||||||
UnicodeStrToAsciiStr(AssertTag, OptionalStrStart + ManuStrLen + 1 + ProductStrLen + 1 + VerStrLen + 1 + SerialNumStrLen + 1);
|
|
||||||
UnicodeStrToAsciiStr(Chassis, OptionalStrStart + ManuStrLen + 1 + ProductStrLen + 1 + VerStrLen + 1 + SerialNumStrLen + 1 + AssertTagStrLen + 1);
|
|
||||||
//
|
|
||||||
// Now we have got the full smbios record, call smbios protocol to add this record.
|
|
||||||
//
|
|
||||||
Status = AddSmbiosRecord (Smbios, &SmbiosHandle, (EFI_SMBIOS_TABLE_HEADER *) SmbiosRecord);
|
|
||||||
|
|
||||||
FreePool(SmbiosRecord);
|
|
||||||
return Status;
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
// *++
|
|
||||||
//
|
|
||||||
// Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
|
|
||||||
//
|
|
||||||
// SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
||||||
//
|
|
||||||
// --*/
|
|
||||||
|
|
||||||
/=#
|
|
||||||
|
|
||||||
#langdef en-US "English"
|
|
||||||
|
|
||||||
#string STR_MISC_BIOS_VENDOR #language en-US "Bios Vendor"
|
|
||||||
#string STR_MISC_BIOS_VERSION #language en-US "Bios Version"
|
|
||||||
#string STR_MISC_BIOS_RELEASE_DATE #language en-US "Bios Release Date"
|
|
@ -1,82 +0,0 @@
|
|||||||
/*++
|
|
||||||
|
|
||||||
Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
|
|
||||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
||||||
|
|
||||||
Module Name:
|
|
||||||
|
|
||||||
MiscBiosVendorData.c
|
|
||||||
|
|
||||||
Abstract:
|
|
||||||
|
|
||||||
This driver parses the mMiscSubclassDataTable structure and reports
|
|
||||||
any generated data to the DataHub.
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
#include "MiscSubClassDriver.h"
|
|
||||||
|
|
||||||
//
|
|
||||||
// Static (possibly build generated) Bios Vendor data.
|
|
||||||
//
|
|
||||||
MISC_SMBIOS_TABLE_DATA(EFI_MISC_BIOS_VENDOR_DATA, MiscBiosVendor) = {
|
|
||||||
STRING_TOKEN(STR_MISC_BIOS_VENDOR), // BiosVendor
|
|
||||||
STRING_TOKEN(STR_MISC_BIOS_VERSION), // BiosVersion
|
|
||||||
STRING_TOKEN(STR_MISC_BIOS_RELEASE_DATE), // BiosReleaseDate
|
|
||||||
0xBABE, // BiosStartingAddress
|
|
||||||
{ // BiosPhysicalDeviceSize
|
|
||||||
2, // Value
|
|
||||||
3, // Exponent
|
|
||||||
},
|
|
||||||
{ // BiosCharacteristics1
|
|
||||||
0, // Reserved1 :2
|
|
||||||
0, // Unknown :1
|
|
||||||
1, // BiosCharacteristicsNotSupported :1
|
|
||||||
0, // IsaIsSupported :1
|
|
||||||
0, // McaIsSupported :1
|
|
||||||
0, // EisaIsSupported :1
|
|
||||||
0, // PciIsSupported :1
|
|
||||||
0, // PcmciaIsSupported :1
|
|
||||||
0, // PlugAndPlayIsSupported :1
|
|
||||||
0, // ApmIsSupported :1
|
|
||||||
0, // BiosIsUpgradable :1
|
|
||||||
0, // BiosShadowingAllowed :1
|
|
||||||
0, // VlVesaIsSupported :1
|
|
||||||
0, // EscdSupportIsAvailable :1
|
|
||||||
0, // BootFromCdIsSupported :1
|
|
||||||
0, // SelectableBootIsSupported :1
|
|
||||||
0, // RomBiosIsSocketed :1
|
|
||||||
0, // BootFromPcmciaIsSupported :1
|
|
||||||
0, // EDDSpecificationIsSupported :1
|
|
||||||
0, // JapaneseNecFloppyIsSupported :1
|
|
||||||
0, // JapaneseToshibaFloppyIsSupported :1
|
|
||||||
0, // Floppy525_360IsSupported :1
|
|
||||||
0, // Floppy525_12IsSupported :1
|
|
||||||
0, // Floppy35_720IsSupported :1
|
|
||||||
0, // Floppy35_288IsSupported :1
|
|
||||||
0, // PrintScreenIsSupported :1
|
|
||||||
0, // Keyboard8042IsSupported :1
|
|
||||||
0, // SerialIsSupported :1
|
|
||||||
0, // PrinterIsSupported :1
|
|
||||||
0, // CgaMonoIsSupported :1
|
|
||||||
0, // NecPc98 :1
|
|
||||||
0, // AcpiIsSupported :1
|
|
||||||
0, // UsbLegacyIsSupported :1
|
|
||||||
0, // AgpIsSupported :1
|
|
||||||
0, // I20BootIsSupported :1
|
|
||||||
0, // Ls120BootIsSupported :1
|
|
||||||
0, // AtapiZipDriveBootIsSupported :1
|
|
||||||
0, // Boot1394IsSupported :1
|
|
||||||
0, // SmartBatteryIsSupported :1
|
|
||||||
0, // BiosBootSpecIsSupported :1
|
|
||||||
0, // FunctionKeyNetworkBootIsSupported :1
|
|
||||||
0 // Reserved :22
|
|
||||||
},
|
|
||||||
{ // BiosCharacteristics2
|
|
||||||
0, // BiosReserved :16
|
|
||||||
0, // SystemReserved :16
|
|
||||||
0 // Reserved :32
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
/* eof - MiscBiosVendorData.c */
|
|
@ -1,190 +0,0 @@
|
|||||||
/** @file
|
|
||||||
BIOS vendor information boot time changes.
|
|
||||||
Misc. subclass type 2.
|
|
||||||
SMBIOS type 0.
|
|
||||||
|
|
||||||
Copyright (c) 2009, Intel Corporation. All rights reserved.<BR>
|
|
||||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
#include "MiscSubClassDriver.h"
|
|
||||||
|
|
||||||
/**
|
|
||||||
This function returns the value & exponent to Base2 for a given
|
|
||||||
Hex value. This is used to calculate the BiosPhysicalDeviceSize.
|
|
||||||
|
|
||||||
@param Value The hex value which is to be converted into value-exponent form
|
|
||||||
@param Exponent The exponent out of the conversion
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS All parameters were valid and *Value & *Exponent have been set.
|
|
||||||
@retval EFI_INVALID_PARAMETER Invalid parameter was found.
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
GetValueExponentBase2(
|
|
||||||
IN OUT UINTN *Value,
|
|
||||||
OUT UINTN *Exponent
|
|
||||||
)
|
|
||||||
{
|
|
||||||
if ((Value == NULL) || (Exponent == NULL)) {
|
|
||||||
return EFI_INVALID_PARAMETER;
|
|
||||||
}
|
|
||||||
|
|
||||||
while ((*Value % 2) == 0) {
|
|
||||||
*Value=*Value/2;
|
|
||||||
(*Exponent)++;
|
|
||||||
}
|
|
||||||
|
|
||||||
return EFI_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
Field Filling Function. Transform an EFI_EXP_BASE2_DATA to a byte, with '64k'
|
|
||||||
as the unit.
|
|
||||||
|
|
||||||
@param Base2Data Pointer to Base2_Data
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS Transform successfully.
|
|
||||||
@retval EFI_INVALID_PARAMETER Invalid parameter was found.
|
|
||||||
|
|
||||||
**/
|
|
||||||
UINT16
|
|
||||||
Base2ToByteWith64KUnit (
|
|
||||||
IN EFI_EXP_BASE2_DATA *Base2Data
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UINT16 Value;
|
|
||||||
UINT16 Exponent;
|
|
||||||
|
|
||||||
Value = Base2Data->Value;
|
|
||||||
Exponent = Base2Data->Exponent;
|
|
||||||
Exponent -= 16;
|
|
||||||
Value <<= Exponent;
|
|
||||||
|
|
||||||
return Value;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
This function makes boot time changes to the contents of the
|
|
||||||
MiscBiosVendor (Type 0).
|
|
||||||
|
|
||||||
@param RecordData Pointer to copy of RecordData from the Data Table.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS All parameters were valid.
|
|
||||||
@retval EFI_UNSUPPORTED Unexpected RecordType value.
|
|
||||||
@retval EFI_INVALID_PARAMETER Invalid parameter was found.
|
|
||||||
|
|
||||||
**/
|
|
||||||
MISC_SMBIOS_TABLE_FUNCTION(MiscBiosVendor)
|
|
||||||
{
|
|
||||||
CHAR8 *OptionalStrStart;
|
|
||||||
UINTN VendorStrLen;
|
|
||||||
UINTN VerStrLen;
|
|
||||||
UINTN DateStrLen;
|
|
||||||
CHAR16 *Version;
|
|
||||||
CHAR16 *ReleaseDate;
|
|
||||||
EFI_STATUS Status;
|
|
||||||
EFI_STRING Char16String;
|
|
||||||
STRING_REF TokenToGet;
|
|
||||||
STRING_REF TokenToUpdate;
|
|
||||||
SMBIOS_TABLE_TYPE0 *SmbiosRecord;
|
|
||||||
EFI_SMBIOS_HANDLE SmbiosHandle;
|
|
||||||
EFI_MISC_BIOS_VENDOR *ForType0InputData;
|
|
||||||
|
|
||||||
ForType0InputData = (EFI_MISC_BIOS_VENDOR *)RecordData;
|
|
||||||
|
|
||||||
//
|
|
||||||
// First check for invalid parameters.
|
|
||||||
//
|
|
||||||
if (RecordData == NULL) {
|
|
||||||
return EFI_INVALID_PARAMETER;
|
|
||||||
}
|
|
||||||
|
|
||||||
Version = (CHAR16 *) PcdGetPtr (PcdFirmwareVersionString);
|
|
||||||
if (StrLen (Version) > 0) {
|
|
||||||
TokenToUpdate = STRING_TOKEN (STR_MISC_BIOS_VERSION);
|
|
||||||
HiiSetString (mHiiHandle, TokenToUpdate, Version, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
ReleaseDate = (CHAR16 *) PcdGetPtr (PcdFirmwareReleaseDateString);
|
|
||||||
if (StrLen(ReleaseDate) > 0) {
|
|
||||||
TokenToUpdate = STRING_TOKEN (STR_MISC_BIOS_RELEASE_DATE);
|
|
||||||
HiiSetString (mHiiHandle, TokenToUpdate, ReleaseDate, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
TokenToGet = STRING_TOKEN (STR_MISC_BIOS_VENDOR);
|
|
||||||
Char16String = HiiGetPackageString(&gEfiCallerIdGuid, TokenToGet, NULL);
|
|
||||||
VendorStrLen = StrLen(Char16String);
|
|
||||||
if (VendorStrLen > SMBIOS_STRING_MAX_LENGTH) {
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
TokenToGet = STRING_TOKEN (STR_MISC_BIOS_VERSION);
|
|
||||||
Version = HiiGetPackageString(&gEfiCallerIdGuid, TokenToGet, NULL);
|
|
||||||
VerStrLen = StrLen(Version);
|
|
||||||
if (VerStrLen > SMBIOS_STRING_MAX_LENGTH) {
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
TokenToGet = STRING_TOKEN (STR_MISC_BIOS_RELEASE_DATE);
|
|
||||||
ReleaseDate = HiiGetPackageString(&gEfiCallerIdGuid, TokenToGet, NULL);
|
|
||||||
DateStrLen = StrLen(ReleaseDate);
|
|
||||||
if (DateStrLen > SMBIOS_STRING_MAX_LENGTH) {
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Two zeros following the last string.
|
|
||||||
//
|
|
||||||
SmbiosRecord = AllocatePool(sizeof (SMBIOS_TABLE_TYPE0) + VendorStrLen + 1 + VerStrLen + 1 + DateStrLen + 1 + 1);
|
|
||||||
ZeroMem(SmbiosRecord, sizeof (SMBIOS_TABLE_TYPE0) + VendorStrLen + 1 + VerStrLen + 1 + DateStrLen + 1 + 1);
|
|
||||||
|
|
||||||
SmbiosRecord->Hdr.Type = EFI_SMBIOS_TYPE_BIOS_INFORMATION;
|
|
||||||
SmbiosRecord->Hdr.Length = sizeof (SMBIOS_TABLE_TYPE0);
|
|
||||||
//
|
|
||||||
// Make handle chosen by smbios protocol.add automatically.
|
|
||||||
//
|
|
||||||
SmbiosRecord->Hdr.Handle = 0;
|
|
||||||
//
|
|
||||||
// Vendor will be the 1st optional string following the formatted structure.
|
|
||||||
//
|
|
||||||
SmbiosRecord->Vendor = 1;
|
|
||||||
//
|
|
||||||
// Version will be the 2nd optional string following the formatted structure.
|
|
||||||
//
|
|
||||||
SmbiosRecord->BiosVersion = 2;
|
|
||||||
SmbiosRecord->BiosSegment = (UINT16)ForType0InputData->BiosStartingAddress;
|
|
||||||
//
|
|
||||||
// ReleaseDate will be the 3rd optional string following the formatted structure.
|
|
||||||
//
|
|
||||||
SmbiosRecord->BiosReleaseDate = 3;
|
|
||||||
//
|
|
||||||
// Nt32 has no PCD value to indicate BIOS Size, just fill 0 for simply.
|
|
||||||
//
|
|
||||||
SmbiosRecord->BiosSize = 0;
|
|
||||||
SmbiosRecord->BiosCharacteristics = *(MISC_BIOS_CHARACTERISTICS*)(&ForType0InputData->BiosCharacteristics1);
|
|
||||||
//
|
|
||||||
// CharacterExtensionBytes also store in ForType0InputData->BiosCharacteristics1 later two bytes to save size.
|
|
||||||
//
|
|
||||||
SmbiosRecord->BIOSCharacteristicsExtensionBytes[0] = *((UINT8 *) &ForType0InputData->BiosCharacteristics1 + 4);
|
|
||||||
SmbiosRecord->BIOSCharacteristicsExtensionBytes[1] = *((UINT8 *) &ForType0InputData->BiosCharacteristics1 + 5);
|
|
||||||
|
|
||||||
SmbiosRecord->SystemBiosMajorRelease = ForType0InputData->BiosMajorRelease;
|
|
||||||
SmbiosRecord->SystemBiosMinorRelease = ForType0InputData->BiosMinorRelease;
|
|
||||||
SmbiosRecord->EmbeddedControllerFirmwareMajorRelease = ForType0InputData->BiosEmbeddedFirmwareMajorRelease;
|
|
||||||
SmbiosRecord->EmbeddedControllerFirmwareMinorRelease = ForType0InputData->BiosEmbeddedFirmwareMinorRelease;
|
|
||||||
|
|
||||||
OptionalStrStart = (CHAR8 *)(SmbiosRecord + 1);
|
|
||||||
UnicodeStrToAsciiStr(Char16String, OptionalStrStart);
|
|
||||||
UnicodeStrToAsciiStr(Version, OptionalStrStart + VendorStrLen + 1);
|
|
||||||
UnicodeStrToAsciiStr(ReleaseDate, OptionalStrStart + VendorStrLen + 1 + VerStrLen + 1);
|
|
||||||
//
|
|
||||||
// Now we have got the full smbios record, call smbios protocol to add this record.
|
|
||||||
//
|
|
||||||
Status = AddSmbiosRecord (Smbios, &SmbiosHandle, (EFI_SMBIOS_TABLE_HEADER *) SmbiosRecord);
|
|
||||||
|
|
||||||
FreePool(SmbiosRecord);
|
|
||||||
return Status;
|
|
||||||
}
|
|
@ -1,27 +0,0 @@
|
|||||||
/*++
|
|
||||||
|
|
||||||
Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
|
|
||||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
||||||
|
|
||||||
Module Name:
|
|
||||||
|
|
||||||
MiscBootInformationData.c
|
|
||||||
|
|
||||||
Abstract:
|
|
||||||
|
|
||||||
This driver parses the mMiscSubclassDataTable structure and reports
|
|
||||||
any generated data to the DataHub.
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
#include "MiscSubClassDriver.h"
|
|
||||||
|
|
||||||
//
|
|
||||||
// Static (possibly build generated) Bios Vendor data.
|
|
||||||
//
|
|
||||||
MISC_SMBIOS_TABLE_DATA(EFI_MISC_BOOT_INFORMATION_STATUS_DATA, BootInformationStatus) = {
|
|
||||||
EfiBootInformationStatusNoError, // BootInformationStatus
|
|
||||||
{0} // BootInformationData
|
|
||||||
};
|
|
||||||
|
|
||||||
/* eof - MiscBootInformationData.c */
|
|
@ -1,62 +0,0 @@
|
|||||||
/** @file
|
|
||||||
boot information boot time changes.
|
|
||||||
SMBIOS type 32.
|
|
||||||
|
|
||||||
Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>
|
|
||||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
#include "MiscSubClassDriver.h"
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
This function makes boot time changes to the contents of the
|
|
||||||
MiscBootInformation (Type 32).
|
|
||||||
|
|
||||||
@param RecordData Pointer to copy of RecordData from the Data Table.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS All parameters were valid.
|
|
||||||
@retval EFI_UNSUPPORTED Unexpected RecordType value.
|
|
||||||
@retval EFI_INVALID_PARAMETER Invalid parameter was found.
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
MISC_SMBIOS_TABLE_FUNCTION(BootInformationStatus)
|
|
||||||
{
|
|
||||||
EFI_STATUS Status;
|
|
||||||
EFI_SMBIOS_HANDLE SmbiosHandle;
|
|
||||||
SMBIOS_TABLE_TYPE32 *SmbiosRecord;
|
|
||||||
EFI_MISC_BOOT_INFORMATION_STATUS* ForType32InputData;
|
|
||||||
|
|
||||||
ForType32InputData = (EFI_MISC_BOOT_INFORMATION_STATUS *)RecordData;
|
|
||||||
|
|
||||||
//
|
|
||||||
// First check for invalid parameters.
|
|
||||||
//
|
|
||||||
if (RecordData == NULL) {
|
|
||||||
return EFI_INVALID_PARAMETER;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Two zeros following the last string.
|
|
||||||
//
|
|
||||||
SmbiosRecord = AllocatePool(sizeof (SMBIOS_TABLE_TYPE32) + 1 + 1);
|
|
||||||
ZeroMem(SmbiosRecord, sizeof (SMBIOS_TABLE_TYPE32) + 1 + 1);
|
|
||||||
|
|
||||||
SmbiosRecord->Hdr.Type = EFI_SMBIOS_TYPE_SYSTEM_BOOT_INFORMATION;
|
|
||||||
SmbiosRecord->Hdr.Length = sizeof (SMBIOS_TABLE_TYPE32);
|
|
||||||
//
|
|
||||||
// Make handle chosen by smbios protocol.add automatically.
|
|
||||||
//
|
|
||||||
SmbiosRecord->Hdr.Handle = 0;
|
|
||||||
SmbiosRecord->BootStatus = (UINT8)ForType32InputData->BootInformationStatus;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Now we have got the full smbios record, call smbios protocol to add this record.
|
|
||||||
//
|
|
||||||
Status = AddSmbiosRecord (Smbios, &SmbiosHandle, (EFI_SMBIOS_TABLE_HEADER *) SmbiosRecord);
|
|
||||||
|
|
||||||
FreePool(SmbiosRecord);
|
|
||||||
return Status;
|
|
||||||
}
|
|
@ -1,16 +0,0 @@
|
|||||||
// *++
|
|
||||||
//
|
|
||||||
// Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
|
|
||||||
//
|
|
||||||
// SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
||||||
//
|
|
||||||
// --*/
|
|
||||||
|
|
||||||
/=#
|
|
||||||
|
|
||||||
#langdef en-US "English"
|
|
||||||
|
|
||||||
#string STR_MISC_CHASSIS_MANUFACTURER #language en-US "Chassis Manufacturer"
|
|
||||||
#string STR_MISC_CHASSIS_VERSION #language en-US "Chassis Version"
|
|
||||||
#string STR_MISC_CHASSIS_SERIAL_NUMBER #language en-US "Chassis Serial Number"
|
|
||||||
#string STR_MISC_CHASSIS_ASSET_TAG #language en-US "Chassis Asset Tag"
|
|
@ -1,39 +0,0 @@
|
|||||||
/*++
|
|
||||||
|
|
||||||
Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
|
|
||||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
||||||
|
|
||||||
Module Name:
|
|
||||||
|
|
||||||
MiscChassisManufacturerData.c
|
|
||||||
|
|
||||||
Abstract:
|
|
||||||
|
|
||||||
This driver parses the mMiscSubclassDataTable structure and reports
|
|
||||||
any generated data to the DataHub.
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
#include "MiscSubClassDriver.h"
|
|
||||||
|
|
||||||
//
|
|
||||||
// Static (possibly build generated) Chassis Manufacturer data.
|
|
||||||
//
|
|
||||||
MISC_SMBIOS_TABLE_DATA(EFI_MISC_CHASSIS_MANUFACTURER_DATA, MiscChassisManufacturer) = {
|
|
||||||
STRING_TOKEN(STR_MISC_CHASSIS_MANUFACTURER), // ChassisManufactrurer
|
|
||||||
STRING_TOKEN(STR_MISC_CHASSIS_VERSION), // ChassisVersion
|
|
||||||
STRING_TOKEN(STR_MISC_CHASSIS_SERIAL_NUMBER), // ChassisSerialNumber
|
|
||||||
STRING_TOKEN(STR_MISC_CHASSIS_ASSET_TAG), // ChassisAssetTag
|
|
||||||
{ // ChassisTypeStatus
|
|
||||||
EfiMiscChassisTypeOther, // ChassisType
|
|
||||||
0, // ChassisLockPresent
|
|
||||||
0 // Reserved
|
|
||||||
},
|
|
||||||
EfiChassisStateOther, // ChassisBootupState
|
|
||||||
EfiChassisStateOther, // ChassisPowerSupplyState
|
|
||||||
EfiChassisStateOther, // ChassisThermalState
|
|
||||||
EfiChassisSecurityStatusOther, // ChassisSecurityState
|
|
||||||
0 // ChassisOemDefined
|
|
||||||
};
|
|
||||||
|
|
||||||
/* eof - MiscChassisManufacaturerData.c */
|
|
@ -1,125 +0,0 @@
|
|||||||
/** @file
|
|
||||||
Chassis manufacturer information boot time changes.
|
|
||||||
SMBIOS type 3.
|
|
||||||
|
|
||||||
Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>
|
|
||||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
#include "MiscSubClassDriver.h"
|
|
||||||
|
|
||||||
/**
|
|
||||||
This function makes boot time changes to the contents of the
|
|
||||||
MiscChassisManufacturer (Type 3).
|
|
||||||
|
|
||||||
@param RecordData Pointer to copy of RecordData from the Data Table.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS All parameters were valid.
|
|
||||||
@retval EFI_UNSUPPORTED Unexpected RecordType value.
|
|
||||||
@retval EFI_INVALID_PARAMETER Invalid parameter was found.
|
|
||||||
|
|
||||||
**/
|
|
||||||
MISC_SMBIOS_TABLE_FUNCTION(MiscChassisManufacturer)
|
|
||||||
{
|
|
||||||
CHAR8 *OptionalStrStart;
|
|
||||||
UINTN ManuStrLen;
|
|
||||||
UINTN VerStrLen;
|
|
||||||
UINTN AssertTagStrLen;
|
|
||||||
UINTN SerialNumStrLen;
|
|
||||||
EFI_STATUS Status;
|
|
||||||
EFI_STRING Manufacturer;
|
|
||||||
EFI_STRING Version;
|
|
||||||
EFI_STRING SerialNumber;
|
|
||||||
EFI_STRING AssertTag;
|
|
||||||
STRING_REF TokenToGet;
|
|
||||||
EFI_SMBIOS_HANDLE SmbiosHandle;
|
|
||||||
SMBIOS_TABLE_TYPE3 *SmbiosRecord;
|
|
||||||
EFI_MISC_CHASSIS_MANUFACTURER *ForType3InputData;
|
|
||||||
|
|
||||||
ForType3InputData = (EFI_MISC_CHASSIS_MANUFACTURER *)RecordData;
|
|
||||||
|
|
||||||
//
|
|
||||||
// First check for invalid parameters.
|
|
||||||
//
|
|
||||||
if (RecordData == NULL) {
|
|
||||||
return EFI_INVALID_PARAMETER;
|
|
||||||
}
|
|
||||||
|
|
||||||
TokenToGet = STRING_TOKEN (STR_MISC_CHASSIS_MANUFACTURER);
|
|
||||||
Manufacturer = HiiGetPackageString(&gEfiCallerIdGuid, TokenToGet, NULL);
|
|
||||||
ManuStrLen = StrLen(Manufacturer);
|
|
||||||
if (ManuStrLen > SMBIOS_STRING_MAX_LENGTH) {
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
TokenToGet = STRING_TOKEN (STR_MISC_CHASSIS_VERSION);
|
|
||||||
Version = HiiGetPackageString(&gEfiCallerIdGuid, TokenToGet, NULL);
|
|
||||||
VerStrLen = StrLen(Version);
|
|
||||||
if (VerStrLen > SMBIOS_STRING_MAX_LENGTH) {
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
TokenToGet = STRING_TOKEN (STR_MISC_CHASSIS_SERIAL_NUMBER);
|
|
||||||
SerialNumber = HiiGetPackageString(&gEfiCallerIdGuid, TokenToGet, NULL);
|
|
||||||
SerialNumStrLen = StrLen(SerialNumber);
|
|
||||||
if (SerialNumStrLen > SMBIOS_STRING_MAX_LENGTH) {
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
TokenToGet = STRING_TOKEN (STR_MISC_CHASSIS_ASSET_TAG);
|
|
||||||
AssertTag = HiiGetPackageString(&gEfiCallerIdGuid, TokenToGet, NULL);
|
|
||||||
AssertTagStrLen = StrLen(AssertTag);
|
|
||||||
if (AssertTagStrLen > SMBIOS_STRING_MAX_LENGTH) {
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Two zeros following the last string.
|
|
||||||
//
|
|
||||||
SmbiosRecord = AllocatePool(sizeof (SMBIOS_TABLE_TYPE3) + ManuStrLen + 1 + VerStrLen + 1 + SerialNumStrLen + 1 + AssertTagStrLen + 1 + 1);
|
|
||||||
ZeroMem(SmbiosRecord, sizeof (SMBIOS_TABLE_TYPE3) + ManuStrLen + 1 + VerStrLen + 1 + SerialNumStrLen + 1 + AssertTagStrLen + 1 + 1);
|
|
||||||
|
|
||||||
SmbiosRecord->Hdr.Type = EFI_SMBIOS_TYPE_SYSTEM_ENCLOSURE;
|
|
||||||
SmbiosRecord->Hdr.Length = sizeof (SMBIOS_TABLE_TYPE3);
|
|
||||||
//
|
|
||||||
// Make handle chosen by smbios protocol.add automatically.
|
|
||||||
//
|
|
||||||
SmbiosRecord->Hdr.Handle = 0;
|
|
||||||
//
|
|
||||||
// Manu will be the 1st optional string following the formatted structure.
|
|
||||||
//
|
|
||||||
SmbiosRecord->Manufacturer = 1;
|
|
||||||
SmbiosRecord->Type = (UINT8)ForType3InputData->ChassisType.ChassisType;
|
|
||||||
//
|
|
||||||
// Version will be the 2nd optional string following the formatted structure.
|
|
||||||
//
|
|
||||||
SmbiosRecord->Version = 2;
|
|
||||||
//
|
|
||||||
// SerialNumber will be the 3rd optional string following the formatted structure.
|
|
||||||
//
|
|
||||||
SmbiosRecord->SerialNumber = 3;
|
|
||||||
//
|
|
||||||
// AssertTag will be the 4th optional string following the formatted structure.
|
|
||||||
//
|
|
||||||
SmbiosRecord->AssetTag = 4;
|
|
||||||
SmbiosRecord->BootupState = (UINT8)ForType3InputData->ChassisBootupState;
|
|
||||||
SmbiosRecord->PowerSupplyState = (UINT8)ForType3InputData->ChassisPowerSupplyState;
|
|
||||||
SmbiosRecord->ThermalState = (UINT8)ForType3InputData->ChassisThermalState;
|
|
||||||
SmbiosRecord->SecurityStatus = (UINT8)ForType3InputData->ChassisSecurityState;
|
|
||||||
CopyMem (SmbiosRecord->OemDefined,(UINT8*)&ForType3InputData->ChassisOemDefined, 4);
|
|
||||||
|
|
||||||
OptionalStrStart = (CHAR8 *)(SmbiosRecord + 1);
|
|
||||||
UnicodeStrToAsciiStr(Manufacturer, OptionalStrStart);
|
|
||||||
UnicodeStrToAsciiStr(Version, OptionalStrStart + ManuStrLen + 1);
|
|
||||||
UnicodeStrToAsciiStr(SerialNumber, OptionalStrStart + ManuStrLen + 1 + VerStrLen + 1);
|
|
||||||
UnicodeStrToAsciiStr(AssertTag, OptionalStrStart + ManuStrLen + 1 + VerStrLen + 1 + SerialNumStrLen + 1);
|
|
||||||
|
|
||||||
//
|
|
||||||
// Now we have got the full smbios record, call smbios protocol to add this record.
|
|
||||||
//
|
|
||||||
Status = AddSmbiosRecord (Smbios, &SmbiosHandle, (EFI_SMBIOS_TABLE_HEADER *) SmbiosRecord);
|
|
||||||
|
|
||||||
FreePool(SmbiosRecord);
|
|
||||||
return Status;
|
|
||||||
}
|
|
@ -1,169 +0,0 @@
|
|||||||
/*++
|
|
||||||
|
|
||||||
Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
|
||||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
||||||
|
|
||||||
Module Name:
|
|
||||||
|
|
||||||
MiscDevicePath.h
|
|
||||||
|
|
||||||
Abstract:
|
|
||||||
|
|
||||||
Misc class required EFI Device Path definitions (Ports, slots &
|
|
||||||
onboard devices)
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
#ifndef _MISC_DEVICE_PATH_H
|
|
||||||
#define _MISC_DEVICE_PATH_H
|
|
||||||
|
|
||||||
|
|
||||||
#pragma pack(1)
|
|
||||||
//
|
|
||||||
// USB
|
|
||||||
//
|
|
||||||
|
|
||||||
/* For reference:
|
|
||||||
#define USB1_1_STR "ACPI(PNP0A03,0)/PCI(1D,0)."
|
|
||||||
#define USB1_2_STR "ACPI(PNP0A03,0)/PCI(1D,1)."
|
|
||||||
#define USB1_3_STR "ACPI(PNP0A03,0)/PCI(1D,2)."
|
|
||||||
#define USB2_1_STR "ACPI(PNP0A03,0)/PCI(1D,7)."
|
|
||||||
*/
|
|
||||||
|
|
||||||
//
|
|
||||||
// #define acpi { 0x02, 0x01, 0x00, 0x0C, 0x0a0341d0, 0x00000000 }
|
|
||||||
// #define pci( device,function) { 0x01, 0x01, 0x00, 0x06, device, function }
|
|
||||||
// #define end { 0xFF, 0xFF, 0x00, 0x04 }
|
|
||||||
//
|
|
||||||
#define DP_ACPI \
|
|
||||||
{ \
|
|
||||||
{ACPI_DEVICE_PATH, ACPI_DP, {(UINT8) (sizeof (ACPI_HID_DEVICE_PATH)), (UINT8) \
|
|
||||||
((sizeof (ACPI_HID_DEVICE_PATH)) >> 8)}}, EISA_PNP_ID (0x0A03), 0 \
|
|
||||||
}
|
|
||||||
#define DP_PCI(device, function) \
|
|
||||||
{ \
|
|
||||||
{HARDWARE_DEVICE_PATH, HW_PCI_DP, {(UINT8) (sizeof (PCI_DEVICE_PATH)), (UINT8) \
|
|
||||||
((sizeof (PCI_DEVICE_PATH)) >> 8)}}, function, device \
|
|
||||||
}
|
|
||||||
#define DP_END \
|
|
||||||
{ \
|
|
||||||
END_DEVICE_PATH_TYPE, END_ENTIRE_DEVICE_PATH_SUBTYPE, {END_DEVICE_PATH_LENGTH, 0} \
|
|
||||||
}
|
|
||||||
|
|
||||||
#define DP_LPC(eisaid, function) \
|
|
||||||
{ \
|
|
||||||
{ACPI_DEVICE_PATH, ACPI_DP, {(UINT8) (sizeof (ACPI_HID_DEVICE_PATH)), (UINT8) \
|
|
||||||
((sizeof (ACPI_HID_DEVICE_PATH)) >> 8)}}, EISA_PNP_ID (eisaid), function \
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Shanmu >> moved to TianoDevicePath.h
|
|
||||||
//
|
|
||||||
|
|
||||||
/*
|
|
||||||
typedef struct _USB_PORT_DEVICE_PATH
|
|
||||||
{
|
|
||||||
ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;
|
|
||||||
PCI_DEVICE_PATH PciBusDevicePath;
|
|
||||||
EFI_DEVICE_PATH_PROTOCOL EndDevicePath;
|
|
||||||
} USB_PORT_DEVICE_PATH;
|
|
||||||
|
|
||||||
|
|
||||||
//IDE ??I am not sure. Should this be ATAPI_DEVICE_PATH
|
|
||||||
typedef struct _IDE_DEVICE_PATH
|
|
||||||
{
|
|
||||||
ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;
|
|
||||||
PCI_DEVICE_PATH PciBusDevicePath;
|
|
||||||
EFI_DEVICE_PATH_PROTOCOL EndDevicePath;
|
|
||||||
} IDE_DEVICE_PATH;
|
|
||||||
|
|
||||||
//RMC Connector
|
|
||||||
typedef struct _RMC_CONN_DEVICE_PATH
|
|
||||||
{
|
|
||||||
ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;
|
|
||||||
PCI_DEVICE_PATH PciBridgeDevicePath;
|
|
||||||
PCI_DEVICE_PATH PciBusDevicePath;
|
|
||||||
EFI_DEVICE_PATH_PROTOCOL EndDevicePath;
|
|
||||||
} RMC_CONN_DEVICE_PATH;
|
|
||||||
|
|
||||||
//static RMC_CONN_DEVICE_PATH mRmcConnDevicePath = { acpi, pci( 0x1E,0x00 ),pci( 0x0A,0x00 ), end };
|
|
||||||
|
|
||||||
//RIDE
|
|
||||||
typedef struct _RIDE_DEVICE_PATH
|
|
||||||
{
|
|
||||||
ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;
|
|
||||||
PCI_DEVICE_PATH PciBridgeDevicePath;
|
|
||||||
PCI_DEVICE_PATH PciBusDevicePath;
|
|
||||||
EFI_DEVICE_PATH_PROTOCOL EndDevicePath;
|
|
||||||
} RIDE_DEVICE_PATH;
|
|
||||||
|
|
||||||
//static RIDE_DEVICE_PATH mRideDevicePath = { acpi, pci( 0x1E,0x00 ),pci( 0x02,0x00 ), end };
|
|
||||||
|
|
||||||
//Gigabit NIC
|
|
||||||
//typedef struct _GB_NIC_DEVICE_PATH
|
|
||||||
//{
|
|
||||||
// ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;
|
|
||||||
// PCI_DEVICE_PATH PciBridgeDevicePath;
|
|
||||||
// PCI_DEVICE_PATH PciXBridgeDevicePath;
|
|
||||||
// PCI_DEVICE_PATH PciXBusDevicePath;
|
|
||||||
// EFI_DEVICE_PATH_PROTOCOL EndDevicePath;
|
|
||||||
//} GB_NIC_DEVICE_PATH;
|
|
||||||
|
|
||||||
//static GB_NIC_DEVICE_PATH mGbNicDevicePath = { acpi, pci( 0x03,0x00 ),pci( 0x1F,0x00 ),pci( 0x07,0x00 ), end };
|
|
||||||
|
|
||||||
|
|
||||||
//P/S2 Connector
|
|
||||||
typedef struct _PS2_CONN_DEVICE_PATH
|
|
||||||
{
|
|
||||||
ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;
|
|
||||||
PCI_DEVICE_PATH LpcBridgeDevicePath;
|
|
||||||
ACPI_HID_DEVICE_PATH LpcBusDevicePath;
|
|
||||||
EFI_DEVICE_PATH_PROTOCOL EndDevicePath;
|
|
||||||
} PS2_CONN_DEVICE_PATH;
|
|
||||||
|
|
||||||
//static PS2_CONN_DEVICE_PATH mPs2KeyboardDevicePath = { acpi, pci( 0x1F,0x00 ),lpc( 0x0303,0 ), end };
|
|
||||||
//static PS2_CONN_DEVICE_PATH mPs2MouseDevicePath = { acpi, pci( 0x1F,0x00 ),lpc( 0x0303,1 ), end };
|
|
||||||
|
|
||||||
//Serial Port Connector
|
|
||||||
typedef struct _SERIAL_CONN_DEVICE_PATH
|
|
||||||
{
|
|
||||||
ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;
|
|
||||||
PCI_DEVICE_PATH LpcBridgeDevicePath;
|
|
||||||
ACPI_HID_DEVICE_PATH LpcBusDevicePath;
|
|
||||||
EFI_DEVICE_PATH_PROTOCOL EndDevicePath;
|
|
||||||
} SERIAL_CONN_DEVICE_PATH;
|
|
||||||
|
|
||||||
//static SERIAL_CONN_DEVICE_PATH mCom1DevicePath = { acpi, pci( 0x1F,0x00 ),lpc( 0x0501,0 ), end };
|
|
||||||
//static SERIAL_CONN_DEVICE_PATH mCom2DevicePath = { acpi, pci( 0x1F,0x00 ),lpc( 0x0501,1 ), end };
|
|
||||||
|
|
||||||
//Parallel Port Connector
|
|
||||||
typedef struct _PARALLEL_CONN_DEVICE_PATH
|
|
||||||
{
|
|
||||||
ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;
|
|
||||||
PCI_DEVICE_PATH LpcBridgeDevicePath;
|
|
||||||
ACPI_HID_DEVICE_PATH LpcBusDevicePath;
|
|
||||||
EFI_DEVICE_PATH_PROTOCOL EndDevicePath;
|
|
||||||
} PARALLEL_CONN_DEVICE_PATH;
|
|
||||||
|
|
||||||
//static PARALLEL_CONN_DEVICE_PATH mLpt1DevicePath = { acpi, pci( 0x1F,0x00 ),lpc( 0x0401,0 ), end };
|
|
||||||
|
|
||||||
//Floopy Connector
|
|
||||||
typedef struct _FLOOPY_CONN_DEVICE_PATH
|
|
||||||
{
|
|
||||||
ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;
|
|
||||||
PCI_DEVICE_PATH LpcBridgeDevicePath;
|
|
||||||
ACPI_HID_DEVICE_PATH LpcBusDevicePath;
|
|
||||||
EFI_DEVICE_PATH_PROTOCOL EndDevicePath;
|
|
||||||
} FLOOPY_CONN_DEVICE_PATH;
|
|
||||||
|
|
||||||
//static FLOOPY_CONN_DEVICE_PATH mFloopyADevicePath = { acpi, pci( 0x1F,0x00 ),lpc( 0x0604,0 ), end };
|
|
||||||
//static FLOOPY_CONN_DEVICE_PATH mFloopyBDevicePath = { acpi, pci( 0x1F,0x00 ),lpc( 0x0604,1 ), end };
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
//
|
|
||||||
// End Shanmu
|
|
||||||
//
|
|
||||||
#pragma pack()
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,32 +0,0 @@
|
|||||||
/*++
|
|
||||||
|
|
||||||
Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
|
|
||||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
||||||
|
|
||||||
Module Name:
|
|
||||||
|
|
||||||
MiscNumberOfInstallableLanguagesData.c
|
|
||||||
|
|
||||||
Abstract:
|
|
||||||
|
|
||||||
This driver parses the mMiscSubclassDataTable structure and reports
|
|
||||||
any generated data to the DataHub.
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
#include "MiscSubClassDriver.h"
|
|
||||||
|
|
||||||
//
|
|
||||||
// Static (possibly build generated) Bios Vendor data.
|
|
||||||
//
|
|
||||||
MISC_SMBIOS_TABLE_DATA(EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES_DATA, NumberOfInstallableLanguages)
|
|
||||||
= {
|
|
||||||
1, // NumberOfInstallableLanguages
|
|
||||||
{ // LanguageFlags
|
|
||||||
0, // AbbreviatedLanguageFormat
|
|
||||||
0 // Reserved
|
|
||||||
},
|
|
||||||
0, // CurrentLanguageNumber
|
|
||||||
};
|
|
||||||
|
|
||||||
/* eof - MiscNumberOfInstallableLanguagesData.c */
|
|
@ -1,227 +0,0 @@
|
|||||||
/** @file
|
|
||||||
This driver parses the mSmbiosMiscDataTable structure and reports
|
|
||||||
any generated data.
|
|
||||||
|
|
||||||
Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>
|
|
||||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
#include "MiscSubClassDriver.h"
|
|
||||||
/*++
|
|
||||||
Check whether the language is supported for given HII handle
|
|
||||||
|
|
||||||
@param HiiHandle The HII package list handle.
|
|
||||||
@param Offset The offest of current lanague in the supported languages.
|
|
||||||
@param CurrentLang The language code.
|
|
||||||
|
|
||||||
@retval TRUE Supported.
|
|
||||||
@retval FALSE Not Supported.
|
|
||||||
|
|
||||||
**/
|
|
||||||
VOID
|
|
||||||
EFIAPI
|
|
||||||
CurrentLanguageMatch (
|
|
||||||
IN EFI_HII_HANDLE HiiHandle,
|
|
||||||
OUT UINT16 *Offset,
|
|
||||||
OUT CHAR8 *CurrentLang
|
|
||||||
)
|
|
||||||
{
|
|
||||||
CHAR8 *DefaultLang;
|
|
||||||
CHAR8 *BestLanguage;
|
|
||||||
CHAR8 *Languages;
|
|
||||||
CHAR8 *MatchLang;
|
|
||||||
CHAR8 *EndMatchLang;
|
|
||||||
UINTN CompareLength;
|
|
||||||
|
|
||||||
Languages = HiiGetSupportedLanguages (HiiHandle);
|
|
||||||
if (Languages == NULL) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
CurrentLang = GetEfiGlobalVariable (L"PlatformLang");
|
|
||||||
DefaultLang = (CHAR8 *) PcdGetPtr (PcdUefiVariableDefaultPlatformLang);
|
|
||||||
BestLanguage = GetBestLanguage (
|
|
||||||
Languages,
|
|
||||||
FALSE,
|
|
||||||
(CurrentLang != NULL) ? CurrentLang : "",
|
|
||||||
DefaultLang,
|
|
||||||
NULL
|
|
||||||
);
|
|
||||||
if (BestLanguage != NULL) {
|
|
||||||
//
|
|
||||||
// Find the best matching RFC 4646 language, compute the offset.
|
|
||||||
//
|
|
||||||
CompareLength = AsciiStrLen (BestLanguage);
|
|
||||||
for (MatchLang = Languages, (*Offset) = 0; MatchLang != '\0'; (*Offset)++) {
|
|
||||||
//
|
|
||||||
// Seek to the end of current match language.
|
|
||||||
//
|
|
||||||
for (EndMatchLang = MatchLang; *EndMatchLang != '\0' && *EndMatchLang != ';'; EndMatchLang++);
|
|
||||||
|
|
||||||
if ((EndMatchLang == MatchLang + CompareLength) && AsciiStrnCmp(MatchLang, BestLanguage, CompareLength) == 0) {
|
|
||||||
//
|
|
||||||
// Find the current best Language in the supported languages
|
|
||||||
//
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// best language match be in the supported language.
|
|
||||||
//
|
|
||||||
ASSERT (*EndMatchLang == ';');
|
|
||||||
MatchLang = EndMatchLang + 1;
|
|
||||||
}
|
|
||||||
FreePool (BestLanguage);
|
|
||||||
}
|
|
||||||
|
|
||||||
FreePool (Languages);
|
|
||||||
if (CurrentLang != NULL) {
|
|
||||||
FreePool (CurrentLang);
|
|
||||||
}
|
|
||||||
return ;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Get next language from language code list (with separator ';').
|
|
||||||
|
|
||||||
@param LangCode Input: point to first language in the list. On
|
|
||||||
Otput: point to next language in the list, or
|
|
||||||
NULL if no more language in the list.
|
|
||||||
@param Lang The first language in the list.
|
|
||||||
|
|
||||||
**/
|
|
||||||
VOID
|
|
||||||
EFIAPI
|
|
||||||
GetNextLanguage (
|
|
||||||
IN OUT CHAR8 **LangCode,
|
|
||||||
OUT CHAR8 *Lang
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UINTN Index;
|
|
||||||
CHAR8 *StringPtr;
|
|
||||||
|
|
||||||
ASSERT (LangCode != NULL);
|
|
||||||
ASSERT (*LangCode != NULL);
|
|
||||||
ASSERT (Lang != NULL);
|
|
||||||
|
|
||||||
Index = 0;
|
|
||||||
StringPtr = *LangCode;
|
|
||||||
while (StringPtr[Index] != 0 && StringPtr[Index] != ';') {
|
|
||||||
Index++;
|
|
||||||
}
|
|
||||||
|
|
||||||
CopyMem (Lang, StringPtr, Index);
|
|
||||||
Lang[Index] = 0;
|
|
||||||
|
|
||||||
if (StringPtr[Index] == ';') {
|
|
||||||
Index++;
|
|
||||||
}
|
|
||||||
*LangCode = StringPtr + Index;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
This function returns the number of supported languages on HiiHandle.
|
|
||||||
|
|
||||||
@param HiiHandle The HII package list handle.
|
|
||||||
|
|
||||||
@retval The number of supported languages.
|
|
||||||
|
|
||||||
**/
|
|
||||||
UINT16
|
|
||||||
EFIAPI
|
|
||||||
GetSupportedLanguageNumber (
|
|
||||||
IN EFI_HII_HANDLE HiiHandle
|
|
||||||
)
|
|
||||||
{
|
|
||||||
CHAR8 *Lang;
|
|
||||||
CHAR8 *Languages;
|
|
||||||
CHAR8 *LanguageString;
|
|
||||||
UINT16 LangNumber;
|
|
||||||
|
|
||||||
Languages = HiiGetSupportedLanguages (HiiHandle);
|
|
||||||
if (Languages == NULL) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
LangNumber = 0;
|
|
||||||
Lang = AllocatePool (AsciiStrSize (Languages));
|
|
||||||
if (Lang != NULL) {
|
|
||||||
LanguageString = Languages;
|
|
||||||
while (*LanguageString != 0) {
|
|
||||||
GetNextLanguage (&LanguageString, Lang);
|
|
||||||
LangNumber++;
|
|
||||||
}
|
|
||||||
FreePool (Lang);
|
|
||||||
}
|
|
||||||
FreePool (Languages);
|
|
||||||
return LangNumber;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
This function makes boot time changes to the contents of the
|
|
||||||
MiscNumberOfInstallableLanguages (Type 13).
|
|
||||||
|
|
||||||
@param RecordData Pointer to copy of RecordData from the Data Table.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS All parameters were valid.
|
|
||||||
@retval EFI_UNSUPPORTED Unexpected RecordType value.
|
|
||||||
@retval EFI_INVALID_PARAMETER Invalid parameter was found.
|
|
||||||
|
|
||||||
**/
|
|
||||||
MISC_SMBIOS_TABLE_FUNCTION(NumberOfInstallableLanguages)
|
|
||||||
{
|
|
||||||
UINTN LangStrLen;
|
|
||||||
CHAR8 CurrentLang[SMBIOS_STRING_MAX_LENGTH + 1];
|
|
||||||
CHAR8 *OptionalStrStart;
|
|
||||||
UINT16 Offset;
|
|
||||||
EFI_STATUS Status;
|
|
||||||
EFI_SMBIOS_HANDLE SmbiosHandle;
|
|
||||||
SMBIOS_TABLE_TYPE13 *SmbiosRecord;
|
|
||||||
EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES *ForType13InputData;
|
|
||||||
|
|
||||||
ForType13InputData = (EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES *)RecordData;
|
|
||||||
|
|
||||||
//
|
|
||||||
// First check for invalid parameters.
|
|
||||||
//
|
|
||||||
if (RecordData == NULL) {
|
|
||||||
return EFI_INVALID_PARAMETER;
|
|
||||||
}
|
|
||||||
|
|
||||||
ForType13InputData->NumberOfInstallableLanguages = GetSupportedLanguageNumber (mHiiHandle);
|
|
||||||
|
|
||||||
//
|
|
||||||
// Try to check if current langcode matches with the langcodes in installed languages
|
|
||||||
//
|
|
||||||
ZeroMem(CurrentLang, SMBIOS_STRING_MAX_LENGTH + 1);
|
|
||||||
CurrentLanguageMatch (mHiiHandle, &Offset, CurrentLang);
|
|
||||||
LangStrLen = AsciiStrLen(CurrentLang);
|
|
||||||
|
|
||||||
//
|
|
||||||
// Two zeros following the last string.
|
|
||||||
//
|
|
||||||
SmbiosRecord = AllocatePool(sizeof (SMBIOS_TABLE_TYPE13) + LangStrLen + 1 + 1);
|
|
||||||
ZeroMem(SmbiosRecord, sizeof (SMBIOS_TABLE_TYPE13) + LangStrLen + 1 + 1);
|
|
||||||
|
|
||||||
SmbiosRecord->Hdr.Type = EFI_SMBIOS_TYPE_BIOS_LANGUAGE_INFORMATION;
|
|
||||||
SmbiosRecord->Hdr.Length = sizeof (SMBIOS_TABLE_TYPE13);
|
|
||||||
//
|
|
||||||
// Make handle chosen by smbios protocol.add automatically.
|
|
||||||
//
|
|
||||||
SmbiosRecord->Hdr.Handle = 0;
|
|
||||||
|
|
||||||
SmbiosRecord->InstallableLanguages = (UINT8)ForType13InputData->NumberOfInstallableLanguages;
|
|
||||||
SmbiosRecord->Flags = (UINT8)ForType13InputData->LanguageFlags.AbbreviatedLanguageFormat;
|
|
||||||
SmbiosRecord->CurrentLanguages = 1;
|
|
||||||
OptionalStrStart = (CHAR8 *)(SmbiosRecord + 1);
|
|
||||||
AsciiStrCpy(OptionalStrStart, CurrentLang);
|
|
||||||
//
|
|
||||||
// Now we have got the full smbios record, call smbios protocol to add this record.
|
|
||||||
//
|
|
||||||
Status = AddSmbiosRecord (Smbios, &SmbiosHandle, (EFI_SMBIOS_TABLE_HEADER *) SmbiosRecord);
|
|
||||||
|
|
||||||
FreePool(SmbiosRecord);
|
|
||||||
return Status;
|
|
||||||
}
|
|
@ -1,13 +0,0 @@
|
|||||||
// *++
|
|
||||||
//
|
|
||||||
// Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
|
|
||||||
//
|
|
||||||
// SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
||||||
//
|
|
||||||
// --*/
|
|
||||||
|
|
||||||
/=#
|
|
||||||
|
|
||||||
#langdef en-US "English"
|
|
||||||
|
|
||||||
#string STR_MISC_OEM_STRING #language en-US "System Language String"
|
|
@ -1,26 +0,0 @@
|
|||||||
/*++
|
|
||||||
|
|
||||||
Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
|
|
||||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
||||||
|
|
||||||
Module Name:
|
|
||||||
|
|
||||||
MiscOemStringData.c
|
|
||||||
|
|
||||||
Abstract:
|
|
||||||
|
|
||||||
This driver parses the mMiscSubclassDataTable structure and reports
|
|
||||||
any generated data to the DataHub.
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
#include "MiscSubClassDriver.h"
|
|
||||||
|
|
||||||
//
|
|
||||||
// Static (possibly build generated) Bios Vendor data.
|
|
||||||
//
|
|
||||||
MISC_SMBIOS_TABLE_DATA(EFI_MISC_OEM_STRING_DATA, OemString) = {
|
|
||||||
{ STRING_TOKEN(STR_MISC_OEM_STRING) }
|
|
||||||
};
|
|
||||||
|
|
||||||
/* eof - MiscOemStringData.c */
|
|
@ -1,69 +0,0 @@
|
|||||||
/** @file
|
|
||||||
boot information boot time changes.
|
|
||||||
SMBIOS type 11.
|
|
||||||
|
|
||||||
Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>
|
|
||||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
#include "MiscSubClassDriver.h"
|
|
||||||
/**
|
|
||||||
This function makes boot time changes to the contents of the
|
|
||||||
MiscOemString (Type 11).
|
|
||||||
|
|
||||||
@param RecordData Pointer to copy of RecordData from the Data Table.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS All parameters were valid.
|
|
||||||
@retval EFI_UNSUPPORTED Unexpected RecordType value.
|
|
||||||
@retval EFI_INVALID_PARAMETER Invalid parameter was found.
|
|
||||||
|
|
||||||
**/
|
|
||||||
MISC_SMBIOS_TABLE_FUNCTION(OemString)
|
|
||||||
{
|
|
||||||
UINTN OemStrLen;
|
|
||||||
CHAR8 *OptionalStrStart;
|
|
||||||
EFI_STATUS Status;
|
|
||||||
EFI_STRING OemStr;
|
|
||||||
STRING_REF TokenToGet;
|
|
||||||
EFI_SMBIOS_HANDLE SmbiosHandle;
|
|
||||||
SMBIOS_TABLE_TYPE11 *SmbiosRecord;
|
|
||||||
|
|
||||||
//
|
|
||||||
// First check for invalid parameters.
|
|
||||||
//
|
|
||||||
if (RecordData == NULL) {
|
|
||||||
return EFI_INVALID_PARAMETER;
|
|
||||||
}
|
|
||||||
|
|
||||||
TokenToGet = STRING_TOKEN (STR_MISC_OEM_STRING);
|
|
||||||
OemStr = HiiGetPackageString(&gEfiCallerIdGuid, TokenToGet, NULL);
|
|
||||||
OemStrLen = StrLen(OemStr);
|
|
||||||
if (OemStrLen > SMBIOS_STRING_MAX_LENGTH) {
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Two zeros following the last string.
|
|
||||||
//
|
|
||||||
SmbiosRecord = AllocatePool(sizeof (SMBIOS_TABLE_TYPE11) + OemStrLen + 1 + 1);
|
|
||||||
ZeroMem(SmbiosRecord, sizeof (SMBIOS_TABLE_TYPE11) + OemStrLen + 1 + 1);
|
|
||||||
|
|
||||||
SmbiosRecord->Hdr.Type = EFI_SMBIOS_TYPE_OEM_STRINGS;
|
|
||||||
SmbiosRecord->Hdr.Length = sizeof (SMBIOS_TABLE_TYPE11);
|
|
||||||
//
|
|
||||||
// Make handle chosen by smbios protocol.add automatically.
|
|
||||||
//
|
|
||||||
SmbiosRecord->Hdr.Handle = 0;
|
|
||||||
SmbiosRecord->StringCount = 1;
|
|
||||||
OptionalStrStart = (CHAR8 *)(SmbiosRecord + 1);
|
|
||||||
UnicodeStrToAsciiStr(OemStr, OptionalStrStart);
|
|
||||||
|
|
||||||
//
|
|
||||||
// Now we have got the full smbios record, call smbios protocol to add this record.
|
|
||||||
//
|
|
||||||
Status = AddSmbiosRecord (Smbios, &SmbiosHandle, (EFI_SMBIOS_TABLE_HEADER *) SmbiosRecord);
|
|
||||||
|
|
||||||
FreePool(SmbiosRecord);
|
|
||||||
return Status;
|
|
||||||
}
|
|
@ -1,68 +0,0 @@
|
|||||||
// *++
|
|
||||||
//
|
|
||||||
// Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
|
|
||||||
//
|
|
||||||
// SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
||||||
//
|
|
||||||
// --*/
|
|
||||||
|
|
||||||
/=#
|
|
||||||
|
|
||||||
#langdef en-US "English"
|
|
||||||
|
|
||||||
#string STR_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR #language en-US "Port Internal Connector"
|
|
||||||
#string STR_MISC_PORT_EXTERNAL_CONNECTOR_DESIGNATOR #language en-US "Port External Connector"
|
|
||||||
#string STR_MISC_PORT_INTERNAL_KEYBOARD #language en-US "J1A1"
|
|
||||||
#string STR_MISC_PORT_EXTERNAL_KEYBOARD #language en-US "Keyboard"
|
|
||||||
#string STR_MISC_PORT_INTERNAL_MOUSE #language en-US "J1A1"
|
|
||||||
#string STR_MISC_PORT_EXTERNAL_MOUSE #language en-US "Mouse"
|
|
||||||
#string STR_MISC_PORT_INTERNAL_COM1 #language en-US "J2A1"
|
|
||||||
#string STR_MISC_PORT_EXTERNAL_COM1 #language en-US "COM 1"
|
|
||||||
#string STR_MISC_PORT_INTERNAL_LPT1 #language en-US "J4A2"
|
|
||||||
#string STR_MISC_PORT_EXTERNAL_LPT1 #language en-US "LPT 1"
|
|
||||||
#string STR_MISC_PORT_INTERNAL_EXTENSION_POWER #language en-US "J5C1"
|
|
||||||
#string STR_MISC_PORT_EXTERNAL_EXTENSION_POWER #language en-US "Extension Power Header"
|
|
||||||
#string STR_MISC_PORT_INTERNAL_USB1 #language en-US "JA5A1"
|
|
||||||
#string STR_MISC_PORT_EXTERNAL_USB1 #language en-US "USB"
|
|
||||||
#string STR_MISC_PORT_INTERNAL_USB2 #language en-US "J2A2"
|
|
||||||
#string STR_MISC_PORT_EXTERNAL_USB2 #language en-US "USB"
|
|
||||||
#string STR_MISC_PORT_INTERNAL_NETWORK #language en-US "JA5A1"
|
|
||||||
#string STR_MISC_PORT_EXTERNAL_NETWORK #language en-US "RJ-45 Type"
|
|
||||||
#string STR_MISC_PORT_INTERNAL_MIC #language en-US "J6A1"
|
|
||||||
#string STR_MISC_PORT_EXTERNAL_MIC #language en-US "Audio Mic In"
|
|
||||||
#string STR_MISC_PORT_INTERNAL_LINE_IN #language en-US "J6A1"
|
|
||||||
#string STR_MISC_PORT_EXTERNAL_LINE_IN #language en-US "Audio Line In"
|
|
||||||
#string STR_MISC_PORT_INTERNAL_LINE_OUT #language en-US "J6A1"
|
|
||||||
#string STR_MISC_PORT_EXTERNAL_LINE_OUT #language en-US "Audio Line Out"
|
|
||||||
#string STR_MISC_PORT_INTERNAL_FLOPPY #language en-US "J4H1"
|
|
||||||
#string STR_MISC_PORT_EXTERNAL_FLOPPY #language en-US "OnBoard Floppy Type"
|
|
||||||
#string STR_MISC_PORT_INTERNAL_IDE1 #language en-US "J6H2"
|
|
||||||
#string STR_MISC_PORT_EXTERNAL_IDE1 #language en-US "OnBoard Primary IDE"
|
|
||||||
#string STR_MISC_PORT_INTERNAL_IDE2 #language en-US "J6H1"
|
|
||||||
#string STR_MISC_PORT_EXTERNAL_IDE2 #language en-US "OnBoard Secondary IDE"
|
|
||||||
#string STR_MISC_PORT_INTERNAL_SOUND_IN1 #language en-US "J8B1"
|
|
||||||
#string STR_MISC_PORT_EXTERNAL_SOUND_IN1 #language en-US "OnBoard Sound Input Type"
|
|
||||||
#string STR_MISC_PORT_INTERNAL_SOUND_IN2 #language en-US "J6B1"
|
|
||||||
#string STR_MISC_PORT_EXTERNAL_SOUND_IN2 #language en-US "OnBoard Sound Input Type"
|
|
||||||
#string STR_MISC_PORT_INTERNAL_FRONT_PANEL #language en-US "J9G1"
|
|
||||||
#string STR_MISC_PORT_EXTERNAL_FRONT_PANEL #language en-US "Front Panel Header Type"
|
|
||||||
#string STR_MISC_PORT_INTERNAL_CPU_FAN #language en-US "J2F1"
|
|
||||||
#string STR_MISC_PORT_EXTERNAL_CPU_FAN #language en-US "CPU Fan Header"
|
|
||||||
#string STR_MISC_PORT_INTERNAL_FRONT_FAN #language en-US "J9H3"
|
|
||||||
#string STR_MISC_PORT_EXTERNAL_FRONT_FAN #language en-US "Front Chassis Fan"
|
|
||||||
#string STR_MISC_PORT_INTERNAL_REAR_FAN #language en-US "J1B1"
|
|
||||||
#string STR_MISC_PORT_EXTERNAL_REAR_FAN #language en-US "Rear Chassis Fan"
|
|
||||||
#string STR_MISC_PORT_INTERNAL_CONFIG_JUMPER #language en-US "J9H2"
|
|
||||||
#string STR_MISC_PORT_EXTERNAL_CONFIG_JUMPER #language en-US "Configuration Jumper"
|
|
||||||
#string STR_MISC_PORT_INTERNAL_AUDIO_PANEL #language en-US "J8A1"
|
|
||||||
#string STR_MISC_PORT_EXTERNAL_AUDIO_PANEL #language en-US "Audio Front Panel Header"
|
|
||||||
#string STR_MISC_PORT_INTERNAL_USB_PANEL #language en-US "J9F1"
|
|
||||||
#string STR_MISC_PORT_EXTERNAL_USB_PANEL #language en-US "USB Front Panel Header"
|
|
||||||
#string STR_MISC_PORT_INTERNAL_ATX_POWER #language en-US "J2H1"
|
|
||||||
#string STR_MISC_PORT_EXTERNAL_ATX_POWER #language en-US "ATX Power Header"
|
|
||||||
#string STR_MISC_PORT_INTERNAL_COM2 #language en-US "J5A1"
|
|
||||||
#string STR_MISC_PORT_EXTERNAL_COM2 #language en-US "COM 2"
|
|
||||||
#string STR_MISC_PORT_INTERNAL_USB3 #language en-US "J1D3"
|
|
||||||
#string STR_MISC_PORT_EXTERNAL_USB3 #language en-US "USB"
|
|
||||||
|
|
||||||
|
|
@ -1,93 +0,0 @@
|
|||||||
/*++
|
|
||||||
|
|
||||||
Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
|
|
||||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
||||||
|
|
||||||
Module Name:
|
|
||||||
|
|
||||||
MiscPortInternalConnectorDesignatorData.c
|
|
||||||
|
|
||||||
Abstract:
|
|
||||||
|
|
||||||
This driver parses the mMiscSubclassDataTable structure and reports
|
|
||||||
any generated data to the DataHub.
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
#include "MiscSubClassDriver.h"
|
|
||||||
|
|
||||||
//
|
|
||||||
// Static (possibly build generated) Bios Vendor data.
|
|
||||||
//
|
|
||||||
MISC_SMBIOS_TABLE_DATA(EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA, MiscPortInternalConnectorDesignator) = {
|
|
||||||
STRING_TOKEN(STR_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR), // PortInternalConnectorDesignator
|
|
||||||
STRING_TOKEN(STR_MISC_PORT_EXTERNAL_CONNECTOR_DESIGNATOR), // PortExternalConnectorDesignator
|
|
||||||
EfiPortConnectorTypeOther, // PortInternalConnectorType
|
|
||||||
EfiPortConnectorTypeOther, // PortExternalConnectorType
|
|
||||||
EfiPortTypeNone, // PortType
|
|
||||||
{{{{0, 0, {0, 0}}, 0, 0}, {{0, 0, {0, 0}}, 0, 0}, {0, 0, {0, 0}}}} // PortPath
|
|
||||||
};
|
|
||||||
|
|
||||||
//
|
|
||||||
// Static (possibly build generated) Bios Vendor data.
|
|
||||||
//
|
|
||||||
MISC_SMBIOS_TABLE_DATA(EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA, MiscPortKeyboard) = {
|
|
||||||
STRING_TOKEN (STR_MISC_PORT_INTERNAL_KEYBOARD), // PortInternalConnectorDesignator
|
|
||||||
STRING_TOKEN (STR_MISC_PORT_EXTERNAL_KEYBOARD), // PortExternalConnectorDesignator
|
|
||||||
EfiPortConnectorTypeNone, // PortInternalConnectorType
|
|
||||||
EfiPortConnectorTypePS2, // PortExternalConnectorType
|
|
||||||
EfiPortTypeKeyboard, // PortType
|
|
||||||
// mPs2KbyboardDevicePath // PortPath
|
|
||||||
//
|
|
||||||
{{{{0, 0, {0, 0}}, 0, 0}, {{0, 0, {0, 0}}, 0, 0}, {0, 0, {0, 0}}}} // PortPath
|
|
||||||
};
|
|
||||||
|
|
||||||
MISC_SMBIOS_TABLE_DATA(EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA, MiscPortMouse) = {
|
|
||||||
STRING_TOKEN (STR_MISC_PORT_INTERNAL_MOUSE), // PortInternalConnectorDesignator
|
|
||||||
STRING_TOKEN (STR_MISC_PORT_EXTERNAL_MOUSE), // PortExternalConnectorDesignator
|
|
||||||
EfiPortConnectorTypeNone, // PortInternalConnectorType
|
|
||||||
EfiPortConnectorTypePS2, // PortExternalConnectorType
|
|
||||||
EfiPortTypeMouse, // PortType
|
|
||||||
// mPs2MouseDevicePath // PortPath
|
|
||||||
//
|
|
||||||
{{{{0, 0, {0, 0}}, 0, 0}, {{0, 0, {0, 0}}, 0, 0}, {0, 0, {0, 0}}}} // PortPath
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
MISC_SMBIOS_TABLE_DATA(EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA, MiscPortCom1) = {
|
|
||||||
STRING_TOKEN(STR_MISC_PORT_INTERNAL_COM1),
|
|
||||||
STRING_TOKEN(STR_MISC_PORT_EXTERNAL_COM1),
|
|
||||||
EfiPortConnectorTypeNone,
|
|
||||||
EfiPortConnectorTypeDB9Female,
|
|
||||||
EfiPortTypeSerial16550ACompatible,
|
|
||||||
{{{{0, 0, {0, 0}}, 0, 0}, {{0, 0, {0, 0}}, 0, 0}, {0, 0, {0, 0}}}} // PortPath
|
|
||||||
};
|
|
||||||
|
|
||||||
MISC_SMBIOS_TABLE_DATA(EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA, MiscPortCom2) = {
|
|
||||||
STRING_TOKEN(STR_MISC_PORT_INTERNAL_COM2),
|
|
||||||
STRING_TOKEN(STR_MISC_PORT_EXTERNAL_COM2),
|
|
||||||
EfiPortConnectorTypeNone,
|
|
||||||
EfiPortConnectorTypeDB9Female,
|
|
||||||
EfiPortTypeSerial16550ACompatible,
|
|
||||||
{{{{0, 0, {0, 0}}, 0, 0}, {{0, 0, {0, 0}}, 0, 0}, {0, 0, {0, 0}}}} // PortPath
|
|
||||||
};
|
|
||||||
|
|
||||||
MISC_SMBIOS_TABLE_DATA(EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA, MiscPortExtensionPower) = {
|
|
||||||
STRING_TOKEN(STR_MISC_PORT_INTERNAL_EXTENSION_POWER),
|
|
||||||
STRING_TOKEN(STR_MISC_PORT_EXTERNAL_EXTENSION_POWER),
|
|
||||||
EfiPortConnectorTypeOther,
|
|
||||||
EfiPortConnectorTypeNone,
|
|
||||||
EfiPortTypeOther,
|
|
||||||
{{{{0, 0, {0, 0}}, 0, 0}, {{0, 0, {0, 0}}, 0, 0}, {0, 0, {0, 0}}}} // PortPath
|
|
||||||
};
|
|
||||||
|
|
||||||
MISC_SMBIOS_TABLE_DATA(EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA, MiscPortFloppy) = {
|
|
||||||
STRING_TOKEN(STR_MISC_PORT_INTERNAL_FLOPPY),
|
|
||||||
STRING_TOKEN(STR_MISC_PORT_EXTERNAL_FLOPPY),
|
|
||||||
EfiPortConnectorTypeOnboardFloppy,
|
|
||||||
EfiPortConnectorTypeNone,
|
|
||||||
EfiPortTypeOther,
|
|
||||||
{{{{0, 0, {0, 0}}, 0, 0}, {{0, 0, {0, 0}}, 0, 0}, {0, 0, {0, 0}}}} // PortPath
|
|
||||||
};
|
|
||||||
|
|
||||||
/* eof - MiscPortInternalConnectorDesignatorData.c */
|
|
@ -1,166 +0,0 @@
|
|||||||
/*++
|
|
||||||
|
|
||||||
Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
|
|
||||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
||||||
|
|
||||||
Module Name:
|
|
||||||
|
|
||||||
MiscPortInternalConnectorDesignatorFunction.c
|
|
||||||
|
|
||||||
Abstract:
|
|
||||||
|
|
||||||
This driver parses the mMiscSubclassDataTable structure and reports
|
|
||||||
any generated data to the DataHub.
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
#include "MiscSubClassDriver.h"
|
|
||||||
|
|
||||||
|
|
||||||
MISC_SMBIOS_TABLE_FUNCTION (
|
|
||||||
MiscPortInternalConnectorDesignator
|
|
||||||
)
|
|
||||||
/*++
|
|
||||||
Description:
|
|
||||||
|
|
||||||
This function makes boot time changes to the contents of the
|
|
||||||
MiscPortConnectorInformation (Type 8).
|
|
||||||
|
|
||||||
Parameters:
|
|
||||||
|
|
||||||
RecordType
|
|
||||||
Type of record to be processed from the Data Table.
|
|
||||||
mMiscSubclassDataTable[].RecordType
|
|
||||||
|
|
||||||
RecordLen
|
|
||||||
Size of static RecordData from the Data Table.
|
|
||||||
mMiscSubclassDataTable[].RecordLen
|
|
||||||
|
|
||||||
RecordData
|
|
||||||
Pointer to copy of RecordData from the Data Table. Changes made
|
|
||||||
to this copy will be written to the Data Hub but will not alter
|
|
||||||
the contents of the static Data Table.
|
|
||||||
|
|
||||||
LogRecordData
|
|
||||||
Set *LogRecordData to TRUE to log RecordData to Data Hub.
|
|
||||||
Set *LogRecordData to FALSE when there is no more data to log.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
EFI_SUCCESS
|
|
||||||
All parameters were valid and *RecordData and *LogRecordData have
|
|
||||||
been set.
|
|
||||||
|
|
||||||
EFI_UNSUPPORTED
|
|
||||||
Unexpected RecordType value.
|
|
||||||
|
|
||||||
EFI_INVALID_PARAMETER
|
|
||||||
One of the following parameter conditions was true:
|
|
||||||
RecordLen was zero.
|
|
||||||
RecordData was NULL.
|
|
||||||
LogRecordData was NULL.
|
|
||||||
**/
|
|
||||||
{
|
|
||||||
CHAR8 *OptionalStrStart;
|
|
||||||
UINTN InternalRefStrLen;
|
|
||||||
UINTN ExternalRefStrLen;
|
|
||||||
EFI_STRING InternalRef;
|
|
||||||
EFI_STRING ExternalRef;
|
|
||||||
STRING_REF TokenForInternal;
|
|
||||||
STRING_REF TokenForExternal;
|
|
||||||
EFI_STATUS Status;
|
|
||||||
SMBIOS_TABLE_TYPE8 *SmbiosRecord;
|
|
||||||
EFI_SMBIOS_HANDLE SmbiosHandle;
|
|
||||||
EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR *ForType8InputData;
|
|
||||||
|
|
||||||
ForType8InputData = (EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR *)RecordData;
|
|
||||||
//
|
|
||||||
// First check for invalid parameters.
|
|
||||||
//
|
|
||||||
if (RecordData == NULL) {
|
|
||||||
return EFI_INVALID_PARAMETER;
|
|
||||||
}
|
|
||||||
|
|
||||||
TokenForInternal = 0;
|
|
||||||
TokenForExternal = 0;
|
|
||||||
|
|
||||||
switch (ForType8InputData->PortInternalConnectorDesignator) {
|
|
||||||
|
|
||||||
case STR_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR:
|
|
||||||
TokenForInternal = STRING_TOKEN (STR_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR);
|
|
||||||
TokenForExternal = STRING_TOKEN(STR_MISC_PORT_EXTERNAL_CONNECTOR_DESIGNATOR);
|
|
||||||
break;
|
|
||||||
case STR_MISC_PORT_INTERNAL_KEYBOARD:
|
|
||||||
TokenForInternal = STRING_TOKEN (STR_MISC_PORT_INTERNAL_KEYBOARD);
|
|
||||||
TokenForExternal = STRING_TOKEN(STR_MISC_PORT_EXTERNAL_KEYBOARD);
|
|
||||||
break;
|
|
||||||
case STR_MISC_PORT_INTERNAL_MOUSE:
|
|
||||||
TokenForInternal = STRING_TOKEN (STR_MISC_PORT_INTERNAL_MOUSE);
|
|
||||||
TokenForExternal = STRING_TOKEN(STR_MISC_PORT_EXTERNAL_MOUSE);
|
|
||||||
break;
|
|
||||||
case STR_MISC_PORT_INTERNAL_COM1:
|
|
||||||
TokenForInternal = STRING_TOKEN (STR_MISC_PORT_INTERNAL_COM1);
|
|
||||||
TokenForExternal = STRING_TOKEN(STR_MISC_PORT_EXTERNAL_COM1);
|
|
||||||
break;
|
|
||||||
case STR_MISC_PORT_INTERNAL_COM2:
|
|
||||||
TokenForInternal = STRING_TOKEN (STR_MISC_PORT_INTERNAL_COM2);
|
|
||||||
TokenForExternal = STRING_TOKEN(STR_MISC_PORT_EXTERNAL_COM2);
|
|
||||||
break;
|
|
||||||
case STR_MISC_PORT_INTERNAL_EXTENSION_POWER:
|
|
||||||
TokenForInternal = STRING_TOKEN (STR_MISC_PORT_INTERNAL_EXTENSION_POWER);
|
|
||||||
TokenForExternal = STRING_TOKEN(STR_MISC_PORT_EXTERNAL_EXTENSION_POWER);
|
|
||||||
break;
|
|
||||||
case STR_MISC_PORT_INTERNAL_FLOPPY:
|
|
||||||
TokenForInternal = STRING_TOKEN (STR_MISC_PORT_INTERNAL_FLOPPY);
|
|
||||||
TokenForExternal = STRING_TOKEN(STR_MISC_PORT_EXTERNAL_FLOPPY);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
InternalRef = HiiGetPackageString(&gEfiCallerIdGuid, TokenForInternal, NULL);
|
|
||||||
InternalRefStrLen = StrLen(InternalRef);
|
|
||||||
if (InternalRefStrLen > SMBIOS_STRING_MAX_LENGTH) {
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
ExternalRef = HiiGetPackageString(&gEfiCallerIdGuid, TokenForExternal, NULL);
|
|
||||||
ExternalRefStrLen = StrLen(ExternalRef);
|
|
||||||
if (ExternalRefStrLen > SMBIOS_STRING_MAX_LENGTH) {
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Two zeros following the last string.
|
|
||||||
//
|
|
||||||
SmbiosRecord = AllocatePool(sizeof (SMBIOS_TABLE_TYPE8) + InternalRefStrLen + 1 + ExternalRefStrLen + 1 + 1);
|
|
||||||
ZeroMem(SmbiosRecord, sizeof (SMBIOS_TABLE_TYPE8) + InternalRefStrLen + 1 + ExternalRefStrLen + 1 + 1);
|
|
||||||
|
|
||||||
SmbiosRecord->Hdr.Type = EFI_SMBIOS_TYPE_PORT_CONNECTOR_INFORMATION;
|
|
||||||
SmbiosRecord->Hdr.Length = sizeof (SMBIOS_TABLE_TYPE8);
|
|
||||||
//
|
|
||||||
// Make handle chosen by smbios protocol.add automatically.
|
|
||||||
//
|
|
||||||
SmbiosRecord->Hdr.Handle = 0;
|
|
||||||
SmbiosRecord->InternalReferenceDesignator = 1;
|
|
||||||
SmbiosRecord->InternalConnectorType = (UINT8)ForType8InputData->PortInternalConnectorType;
|
|
||||||
SmbiosRecord->ExternalReferenceDesignator = 2;
|
|
||||||
SmbiosRecord->ExternalConnectorType = (UINT8)ForType8InputData->PortExternalConnectorType;
|
|
||||||
SmbiosRecord->PortType = (UINT8)ForType8InputData->PortType;
|
|
||||||
|
|
||||||
OptionalStrStart = (CHAR8 *)(SmbiosRecord + 1);
|
|
||||||
UnicodeStrToAsciiStr(InternalRef, OptionalStrStart);
|
|
||||||
UnicodeStrToAsciiStr(ExternalRef, OptionalStrStart + InternalRefStrLen + 1);
|
|
||||||
|
|
||||||
//
|
|
||||||
// Now we have got the full smbios record, call smbios protocol to add this record.
|
|
||||||
//
|
|
||||||
Status = AddSmbiosRecord (Smbios, &SmbiosHandle, (EFI_SMBIOS_TABLE_HEADER *) SmbiosRecord);
|
|
||||||
|
|
||||||
FreePool(SmbiosRecord);
|
|
||||||
return Status;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* eof - MiscSystemManufacturerFunction.c */
|
|
@ -1,36 +0,0 @@
|
|||||||
/*++
|
|
||||||
|
|
||||||
Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
|
|
||||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
||||||
|
|
||||||
Module Name:
|
|
||||||
|
|
||||||
MiscResetCapabilitiesData.c
|
|
||||||
|
|
||||||
Abstract:
|
|
||||||
|
|
||||||
This driver parses the mMiscSubclassDataTable structure and reports
|
|
||||||
any generated data to the DataHub.
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
#include "MiscSubClassDriver.h"
|
|
||||||
|
|
||||||
//
|
|
||||||
// Static (possibly build generated) Bios Vendor data.
|
|
||||||
//
|
|
||||||
MISC_SMBIOS_TABLE_DATA(EFI_MISC_RESET_CAPABILITIES, MiscResetCapabilities) = {
|
|
||||||
{ // ResetCapabilities
|
|
||||||
0, // Status
|
|
||||||
0, // BootOption
|
|
||||||
0, // BootOptionOnLimit
|
|
||||||
0, // WatchdogTimerPresent
|
|
||||||
0 // Reserved
|
|
||||||
},
|
|
||||||
0, // ResetCount
|
|
||||||
0, // ResetLimit
|
|
||||||
0, // ResetTimerInterval
|
|
||||||
0 // ResetTimeout
|
|
||||||
};
|
|
||||||
|
|
||||||
/* eof - MiscResetCapabilities.c */
|
|
@ -1,65 +0,0 @@
|
|||||||
/** @file
|
|
||||||
ResetCapabilities.
|
|
||||||
SMBIOS type 23.
|
|
||||||
|
|
||||||
Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>
|
|
||||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
#include "MiscSubClassDriver.h"
|
|
||||||
/**
|
|
||||||
This function makes boot time changes to the contents of the
|
|
||||||
MiscOemString (Type 11).
|
|
||||||
|
|
||||||
@param RecordData Pointer to copy of RecordData from the Data Table.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS All parameters were valid.
|
|
||||||
@retval EFI_UNSUPPORTED Unexpected RecordType value.
|
|
||||||
@retval EFI_INVALID_PARAMETER Invalid parameter was found.
|
|
||||||
|
|
||||||
**/
|
|
||||||
MISC_SMBIOS_TABLE_FUNCTION(MiscResetCapabilities)
|
|
||||||
{
|
|
||||||
EFI_STATUS Status;
|
|
||||||
EFI_SMBIOS_HANDLE SmbiosHandle;
|
|
||||||
SMBIOS_TABLE_TYPE23 *SmbiosRecord;
|
|
||||||
EFI_MISC_RESET_CAPABILITIES *ForType23InputData;
|
|
||||||
|
|
||||||
ForType23InputData = (EFI_MISC_RESET_CAPABILITIES *)RecordData;
|
|
||||||
|
|
||||||
//
|
|
||||||
// First check for invalid parameters.
|
|
||||||
//
|
|
||||||
if (RecordData == NULL) {
|
|
||||||
return EFI_INVALID_PARAMETER;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// Two zeros following the last string.
|
|
||||||
//
|
|
||||||
SmbiosRecord = AllocatePool(sizeof (SMBIOS_TABLE_TYPE23) + 1 + 1);
|
|
||||||
ZeroMem(SmbiosRecord, sizeof (SMBIOS_TABLE_TYPE23) + 1 + 1);
|
|
||||||
|
|
||||||
SmbiosRecord->Hdr.Type = EFI_SMBIOS_TYPE_SYSTEM_RESET;
|
|
||||||
SmbiosRecord->Hdr.Length = sizeof (SMBIOS_TABLE_TYPE23);
|
|
||||||
//
|
|
||||||
// Make handle chosen by smbios protocol.add automatically.
|
|
||||||
//
|
|
||||||
SmbiosRecord->Hdr.Handle = 0;
|
|
||||||
SmbiosRecord->Capabilities = *(UINT8*)&(ForType23InputData->ResetCapabilities);
|
|
||||||
SmbiosRecord->ResetCount = (UINT16)ForType23InputData->ResetCount;
|
|
||||||
SmbiosRecord->ResetLimit = (UINT16)ForType23InputData->ResetLimit;
|
|
||||||
SmbiosRecord->TimerInterval = (UINT16)ForType23InputData->ResetTimerInterval;
|
|
||||||
SmbiosRecord->Timeout = (UINT16)ForType23InputData->ResetTimeout;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Now we have got the full smbios record, call smbios protocol to add this record.
|
|
||||||
//
|
|
||||||
Status = AddSmbiosRecord (Smbios, &SmbiosHandle, (EFI_SMBIOS_TABLE_HEADER *) SmbiosRecord);
|
|
||||||
|
|
||||||
FreePool(SmbiosRecord);
|
|
||||||
return Status;
|
|
||||||
}
|
|
||||||
|
|
@ -1,126 +0,0 @@
|
|||||||
/*++
|
|
||||||
|
|
||||||
Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
|
|
||||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
||||||
|
|
||||||
Module Name:
|
|
||||||
|
|
||||||
MiscSubclassDriver.h
|
|
||||||
|
|
||||||
Abstract:
|
|
||||||
|
|
||||||
Header file for MiscSubclass Driver.
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
#ifndef _MISC_SUBCLASS_DRIVER_H
|
|
||||||
#define _MISC_SUBCLASS_DRIVER_H
|
|
||||||
|
|
||||||
#include <FrameworkDxe.h>
|
|
||||||
|
|
||||||
#include <Guid/DataHubRecords.h>
|
|
||||||
#include <IndustryStandard/SmBios.h>
|
|
||||||
#include <Protocol/Smbios.h>
|
|
||||||
#include <Protocol/EmuIoThunk.h>
|
|
||||||
|
|
||||||
#include <Library/BaseLib.h>
|
|
||||||
#include <Library/DebugLib.h>
|
|
||||||
#include <Library/HiiLib.h>
|
|
||||||
#include <Library/UefiLib.h>
|
|
||||||
#include <Library/UefiDriverEntryPoint.h>
|
|
||||||
#include <Library/BaseMemoryLib.h>
|
|
||||||
#include <Library/MemoryAllocationLib.h>
|
|
||||||
#include <Library/UefiBootServicesTableLib.h>
|
|
||||||
#include <Library/DevicePathLib.h>
|
|
||||||
#include <Library/PcdLib.h>
|
|
||||||
|
|
||||||
|
|
||||||
#include <MiscDevicePath.h>
|
|
||||||
#include <Protocol/FrameworkHii.h>
|
|
||||||
#include <Library/HiiLib.h>
|
|
||||||
|
|
||||||
//
|
|
||||||
// Data table entry update function.
|
|
||||||
//
|
|
||||||
typedef EFI_STATUS (EFIAPI EFI_MISC_SMBIOS_DATA_FUNCTION) (
|
|
||||||
IN VOID *RecordData,
|
|
||||||
IN EFI_SMBIOS_PROTOCOL *Smbios
|
|
||||||
);
|
|
||||||
|
|
||||||
//
|
|
||||||
// Data table entry definition.
|
|
||||||
//
|
|
||||||
typedef struct {
|
|
||||||
//
|
|
||||||
// intermediat input data for SMBIOS record
|
|
||||||
//
|
|
||||||
VOID *RecordData;
|
|
||||||
EFI_MISC_SMBIOS_DATA_FUNCTION *Function;
|
|
||||||
} EFI_MISC_SMBIOS_DATA_TABLE;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Data Table extern definitions.
|
|
||||||
//
|
|
||||||
#define MISC_SMBIOS_TABLE_EXTERNS(NAME1, NAME2, NAME3) \
|
|
||||||
extern NAME1 NAME2 ## Data; \
|
|
||||||
extern EFI_MISC_SMBIOS_DATA_FUNCTION NAME3 ## Function
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// Data Table entries
|
|
||||||
//
|
|
||||||
#define MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(NAME1, NAME2) \
|
|
||||||
{ \
|
|
||||||
& NAME1 ## Data, \
|
|
||||||
& NAME2 ## Function \
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Global definition macros.
|
|
||||||
//
|
|
||||||
#define MISC_SMBIOS_TABLE_DATA(NAME1, NAME2) \
|
|
||||||
NAME1 NAME2 ## Data
|
|
||||||
|
|
||||||
#define MISC_SMBIOS_TABLE_FUNCTION(NAME2) \
|
|
||||||
EFI_STATUS EFIAPI NAME2 ## Function( \
|
|
||||||
IN VOID *RecordData, \
|
|
||||||
IN EFI_SMBIOS_PROTOCOL *Smbios \
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// Data Table Array
|
|
||||||
//
|
|
||||||
extern EFI_MISC_SMBIOS_DATA_TABLE mMiscSubclassDataTable[];
|
|
||||||
|
|
||||||
//
|
|
||||||
// Data Table Array Entries
|
|
||||||
//
|
|
||||||
extern UINTN mMiscSubclassDataTableEntries;
|
|
||||||
extern UINT8 MiscSubclassStrings[];
|
|
||||||
extern EFI_HII_HANDLE mHiiHandle;
|
|
||||||
|
|
||||||
/**
|
|
||||||
Add an SMBIOS record.
|
|
||||||
|
|
||||||
@param Smbios The EFI_SMBIOS_PROTOCOL instance.
|
|
||||||
@param SmbiosHandle A unique handle will be assigned to the SMBIOS record.
|
|
||||||
@param Record The data for the fixed portion of the SMBIOS record. The format of the record is
|
|
||||||
determined by EFI_SMBIOS_TABLE_HEADER.Type. The size of the formatted area is defined
|
|
||||||
by EFI_SMBIOS_TABLE_HEADER.Length and either followed by a double-null (0x0000) or
|
|
||||||
a set of null terminated strings and a null.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS Record was added.
|
|
||||||
@retval EFI_OUT_OF_RESOURCES Record was not added due to lack of system resources.
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
AddSmbiosRecord (
|
|
||||||
IN EFI_SMBIOS_PROTOCOL *Smbios,
|
|
||||||
OUT EFI_SMBIOS_HANDLE *SmbiosHandle,
|
|
||||||
IN EFI_SMBIOS_TABLE_HEADER *Record
|
|
||||||
);
|
|
||||||
|
|
||||||
#endif /* _MISC_SUBCLASS_DRIVER_H */
|
|
||||||
|
|
||||||
/* eof - MiscSubclassDriver.h */
|
|
@ -1,98 +0,0 @@
|
|||||||
## @file
|
|
||||||
# Misc Sub class driver
|
|
||||||
#
|
|
||||||
# Parses the MiscSubclassDataTable and reports any generated data to the DataHub.
|
|
||||||
# All .uni file who tagged with "ToolCode="DUMMY"" in following file list is included by
|
|
||||||
# MiscSubclassDriver.uni file, the StrGather tool will expand MiscSubclassDriver.uni file
|
|
||||||
# and parse all .uni file.
|
|
||||||
# Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
|
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
||||||
#
|
|
||||||
#
|
|
||||||
##
|
|
||||||
|
|
||||||
[Defines]
|
|
||||||
INF_VERSION = 0x00010005
|
|
||||||
BASE_NAME = MiscSubclass
|
|
||||||
FILE_GUID = f2fbd108-8985-11db-b06a-0040d02b1835
|
|
||||||
MODULE_TYPE = DXE_DRIVER
|
|
||||||
VERSION_STRING = 1.0
|
|
||||||
ENTRY_POINT = MiscSubclassDriverEntryPoint
|
|
||||||
|
|
||||||
#
|
|
||||||
# The following information is for reference only and not required by the build tools.
|
|
||||||
#
|
|
||||||
# VALID_ARCHITECTURES = IA32 X64 EBC
|
|
||||||
#
|
|
||||||
|
|
||||||
[Sources]
|
|
||||||
MiscBaseBoardManufacturer.uni
|
|
||||||
MiscBaseBoardManufacturerData.c
|
|
||||||
MiscBaseBoardManufacturerFunction.c
|
|
||||||
MiscBiosVendor.uni
|
|
||||||
MiscBiosVendorData.c
|
|
||||||
MiscBiosVendorFunction.c
|
|
||||||
MiscBootInformationData.c
|
|
||||||
MiscBootInformationFunction.c
|
|
||||||
MiscChassisManufacturer.uni
|
|
||||||
MiscChassisManufacturerData.c
|
|
||||||
MiscChassisManufacturerFunction.c
|
|
||||||
MiscNumberOfInstallableLanguagesData.c
|
|
||||||
MiscNumberOfInstallableLanguagesFunction.c
|
|
||||||
MiscOemString.uni
|
|
||||||
MiscOemStringData.c
|
|
||||||
MiscOemStringFunction.c
|
|
||||||
MiscPortInternalConnectorDesignator.uni
|
|
||||||
MiscPortInternalConnectorDesignatorData.c
|
|
||||||
MiscPortInternalConnectorDesignatorFunction.c
|
|
||||||
MiscResetCapabilitiesData.c
|
|
||||||
MiscResetCapabilitiesFunction.c
|
|
||||||
MiscSystemLanguageString.uni
|
|
||||||
MiscSystemLanguageStringData.c
|
|
||||||
MiscSystemLanguageStringFunction.c
|
|
||||||
MiscSystemManufacturer.uni
|
|
||||||
MiscSystemManufacturerData.c
|
|
||||||
MiscSystemManufacturerFunction.c
|
|
||||||
MiscSystemOptionString.uni
|
|
||||||
MiscSystemOptionStringData.c
|
|
||||||
MiscSystemOptionStringFunction.c
|
|
||||||
MiscSystemSlotDesignation.uni
|
|
||||||
MiscSystemSlotDesignationData.c
|
|
||||||
MiscSystemSlotDesignationFunction.c
|
|
||||||
MiscDevicePath.h
|
|
||||||
MiscSubClassDriver.h
|
|
||||||
MiscSubClassDriver.uni
|
|
||||||
MiscSubclassDriverDataTable.c
|
|
||||||
MiscSubclassDriverEntryPoint.c
|
|
||||||
|
|
||||||
[Packages]
|
|
||||||
MdePkg/MdePkg.dec
|
|
||||||
MdeModulePkg/MdeModulePkg.dec
|
|
||||||
IntelFrameworkPkg/IntelFrameworkPkg.dec
|
|
||||||
EmulatorPkg/EmulatorPkg.dec
|
|
||||||
|
|
||||||
[LibraryClasses]
|
|
||||||
DevicePathLib
|
|
||||||
UefiBootServicesTableLib
|
|
||||||
MemoryAllocationLib
|
|
||||||
BaseMemoryLib
|
|
||||||
UefiDriverEntryPoint
|
|
||||||
UefiLib
|
|
||||||
HiiLib
|
|
||||||
DebugLib
|
|
||||||
BaseLib
|
|
||||||
PcdLib
|
|
||||||
|
|
||||||
[Protocols]
|
|
||||||
gEfiSmbiosProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
|
||||||
|
|
||||||
[Pcd]
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareReleaseDateString
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString
|
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultPlatformLang
|
|
||||||
gEmulatorPkgTokenSpaceGuid.PcdEmuMemorySize
|
|
||||||
|
|
||||||
|
|
||||||
[Depex]
|
|
||||||
gEfiSmbiosProtocolGuid
|
|
@ -1,24 +0,0 @@
|
|||||||
// *++
|
|
||||||
//
|
|
||||||
// Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
|
|
||||||
//
|
|
||||||
// SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
||||||
//
|
|
||||||
// --*/
|
|
||||||
|
|
||||||
/=#
|
|
||||||
|
|
||||||
#langdef en-US "English"
|
|
||||||
|
|
||||||
#string STR_MISC_SUBCLASS_DRIVER_TITLE #language en-US "Not used"
|
|
||||||
|
|
||||||
#include "MiscBaseBoardManufacturer.uni"
|
|
||||||
#include "MiscBiosVendor.uni"
|
|
||||||
#include "MiscChassisManufacturer.uni"
|
|
||||||
#include "MiscOemString.uni"
|
|
||||||
#include "MiscPortInternalConnectorDesignator.uni"
|
|
||||||
#include "MiscSystemLanguageString.uni"
|
|
||||||
#include "MiscSystemManufacturer.uni"
|
|
||||||
#include "MiscSystemOptionString.uni"
|
|
||||||
#include "MiscSystemSlotDesignation.uni"
|
|
||||||
|
|
@ -1,72 +0,0 @@
|
|||||||
/*++
|
|
||||||
|
|
||||||
Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
|
|
||||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
||||||
|
|
||||||
Module Name:
|
|
||||||
|
|
||||||
MiscSubclassDriverDataTable.c
|
|
||||||
|
|
||||||
Abstract:
|
|
||||||
|
|
||||||
This driver parses the mMiscSubclassDataTable structure and reports
|
|
||||||
any generated data to the DataHub.
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
#include "MiscSubClassDriver.h"
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// External definitions referenced by Data Table entries.
|
|
||||||
//
|
|
||||||
MISC_SMBIOS_TABLE_EXTERNS ( EFI_MISC_BASE_BOARD_MANUFACTURER_DATA, MiscBaseBoardManufacturer, MiscBaseBoardManufacturer);
|
|
||||||
MISC_SMBIOS_TABLE_EXTERNS ( EFI_MISC_BIOS_VENDOR_DATA, MiscBiosVendor,MiscBiosVendor );
|
|
||||||
MISC_SMBIOS_TABLE_EXTERNS ( EFI_MISC_BOOT_INFORMATION_STATUS_DATA, BootInformationStatus, BootInformationStatus);
|
|
||||||
MISC_SMBIOS_TABLE_EXTERNS ( EFI_MISC_CHASSIS_MANUFACTURER_DATA, MiscChassisManufacturer, MiscChassisManufacturer);
|
|
||||||
MISC_SMBIOS_TABLE_EXTERNS ( EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES_DATA,NumberOfInstallableLanguages, NumberOfInstallableLanguages);
|
|
||||||
MISC_SMBIOS_TABLE_EXTERNS ( EFI_MISC_OEM_STRING_DATA,OemString, OemString);
|
|
||||||
MISC_SMBIOS_TABLE_EXTERNS ( EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA, MiscPortInternalConnectorDesignator, MiscPortInternalConnectorDesignator);
|
|
||||||
MISC_SMBIOS_TABLE_EXTERNS ( EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA, MiscPortKeyboard, MiscPortInternalConnectorDesignator);
|
|
||||||
MISC_SMBIOS_TABLE_EXTERNS ( EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA, MiscPortMouse, MiscPortInternalConnectorDesignator);
|
|
||||||
MISC_SMBIOS_TABLE_EXTERNS ( EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA, MiscPortCom1, MiscPortInternalConnectorDesignator);
|
|
||||||
MISC_SMBIOS_TABLE_EXTERNS ( EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA, MiscPortCom2, MiscPortInternalConnectorDesignator);
|
|
||||||
MISC_SMBIOS_TABLE_EXTERNS ( EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA, MiscPortExtensionPower, MiscPortInternalConnectorDesignator);
|
|
||||||
MISC_SMBIOS_TABLE_EXTERNS ( EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA, MiscPortFloppy, MiscPortInternalConnectorDesignator);
|
|
||||||
MISC_SMBIOS_TABLE_EXTERNS ( EFI_MISC_RESET_CAPABILITIES, MiscResetCapabilities, MiscResetCapabilities);
|
|
||||||
MISC_SMBIOS_TABLE_EXTERNS ( EFI_MISC_SYSTEM_LANGUAGE_STRING_DATA,SystemLanguageString, SystemLanguageString);
|
|
||||||
MISC_SMBIOS_TABLE_EXTERNS ( EFI_MISC_SYSTEM_MANUFACTURER_DATA, MiscSystemManufacturer, MiscSystemManufacturer);
|
|
||||||
MISC_SMBIOS_TABLE_EXTERNS ( EFI_MISC_SYSTEM_OPTION_STRING_DATA, SystemOptionString, SystemOptionString);
|
|
||||||
MISC_SMBIOS_TABLE_EXTERNS ( EFI_MISC_SYSTEM_SLOT_DESIGNATION_DATA, MiscSystemSlotDesignation, MiscSystemSlotDesignation);
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// Data Table.
|
|
||||||
//
|
|
||||||
EFI_MISC_SMBIOS_DATA_TABLE mMiscSubclassDataTable[] = {
|
|
||||||
MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION( MiscBaseBoardManufacturer, MiscBaseBoardManufacturer),
|
|
||||||
MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION( MiscBiosVendor,MiscBiosVendor ),
|
|
||||||
MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION( BootInformationStatus, BootInformationStatus),
|
|
||||||
MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION( MiscChassisManufacturer, MiscChassisManufacturer),
|
|
||||||
MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(NumberOfInstallableLanguages, NumberOfInstallableLanguages),
|
|
||||||
MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(OemString, OemString),
|
|
||||||
MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION( MiscPortInternalConnectorDesignator, MiscPortInternalConnectorDesignator),
|
|
||||||
MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION( MiscPortKeyboard, MiscPortInternalConnectorDesignator),
|
|
||||||
MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION( MiscPortMouse, MiscPortInternalConnectorDesignator),
|
|
||||||
MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION( MiscPortCom1, MiscPortInternalConnectorDesignator),
|
|
||||||
MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION( MiscPortCom2, MiscPortInternalConnectorDesignator),
|
|
||||||
MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION( MiscPortExtensionPower, MiscPortInternalConnectorDesignator),
|
|
||||||
MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION( MiscPortFloppy, MiscPortInternalConnectorDesignator),
|
|
||||||
MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION( MiscResetCapabilities, MiscResetCapabilities),
|
|
||||||
MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(SystemLanguageString, SystemLanguageString),
|
|
||||||
MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION( MiscSystemManufacturer, MiscSystemManufacturer),
|
|
||||||
MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION( SystemOptionString, SystemOptionString),
|
|
||||||
MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION( MiscSystemSlotDesignation, MiscSystemSlotDesignation),
|
|
||||||
};
|
|
||||||
|
|
||||||
//
|
|
||||||
// Number of Data Table entries.
|
|
||||||
//
|
|
||||||
UINTN mMiscSubclassDataTableEntries = (sizeof mMiscSubclassDataTable) / sizeof (EFI_MISC_SMBIOS_DATA_TABLE);
|
|
||||||
|
|
||||||
/* eof - MiscSubclassDriverDataTable.c */
|
|
@ -1,194 +0,0 @@
|
|||||||
/*++
|
|
||||||
|
|
||||||
Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
|
|
||||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
||||||
|
|
||||||
Module Name:
|
|
||||||
|
|
||||||
MiscSubclassDriverEntryPoint.c
|
|
||||||
|
|
||||||
Abstract:
|
|
||||||
|
|
||||||
This driver parses the mMiscSubclassDataTable structure and reports
|
|
||||||
any generated data to the DataHub.
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
#include "MiscSubClassDriver.h"
|
|
||||||
|
|
||||||
EFI_HII_HANDLE mHiiHandle;
|
|
||||||
|
|
||||||
/**
|
|
||||||
This is the standard EFI driver point that detects whether there is a
|
|
||||||
MemoryConfigurationData Variable and, if so, reports memory configuration info
|
|
||||||
to the DataHub.
|
|
||||||
|
|
||||||
@param ImageHandle Handle for the image of this driver
|
|
||||||
@param SystemTable Pointer to the EFI System Table
|
|
||||||
|
|
||||||
@return EFI_SUCCESS if the data is successfully reported
|
|
||||||
@return EFI_NOT_FOUND if the HOB list could not be located.
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
LogMemorySmbiosRecord (
|
|
||||||
VOID
|
|
||||||
)
|
|
||||||
{
|
|
||||||
EFI_STATUS Status;
|
|
||||||
UINT64 TotalMemorySize;
|
|
||||||
UINT8 NumSlots;
|
|
||||||
SMBIOS_TABLE_TYPE19 *Type19Record;
|
|
||||||
EFI_SMBIOS_HANDLE MemArrayMappedAddrSmbiosHandle;
|
|
||||||
EFI_SMBIOS_PROTOCOL *Smbios;
|
|
||||||
CHAR16 *MemString;
|
|
||||||
|
|
||||||
Status = gBS->LocateProtocol (&gEfiSmbiosProtocolGuid, NULL, (VOID**)&Smbios);
|
|
||||||
ASSERT_EFI_ERROR (Status);
|
|
||||||
|
|
||||||
NumSlots = 1;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Process Memory String in form size!size ...
|
|
||||||
// So 64!64 is 128 MB
|
|
||||||
//
|
|
||||||
MemString = (CHAR16 *)PcdGetPtr (PcdEmuMemorySize);
|
|
||||||
for (TotalMemorySize = 0; *MemString != '\0';) {
|
|
||||||
TotalMemorySize += StrDecimalToUint64 (MemString);
|
|
||||||
while (*MemString != '\0') {
|
|
||||||
if (*MemString == '!') {
|
|
||||||
MemString++;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
MemString++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Convert Total Memory Size to based on KiloByte
|
|
||||||
//
|
|
||||||
TotalMemorySize = LShiftU64 (TotalMemorySize, 20);
|
|
||||||
//
|
|
||||||
// Generate Memory Array Mapped Address info
|
|
||||||
//
|
|
||||||
Type19Record = AllocateZeroPool(sizeof (SMBIOS_TABLE_TYPE19) + 2);
|
|
||||||
Type19Record->Hdr.Type = EFI_SMBIOS_TYPE_MEMORY_ARRAY_MAPPED_ADDRESS;
|
|
||||||
Type19Record->Hdr.Length = sizeof(SMBIOS_TABLE_TYPE19);
|
|
||||||
Type19Record->Hdr.Handle = 0;
|
|
||||||
Type19Record->StartingAddress = 0;
|
|
||||||
Type19Record->EndingAddress = (UINT32)RShiftU64(TotalMemorySize, 10) - 1;
|
|
||||||
Type19Record->MemoryArrayHandle = 0;
|
|
||||||
Type19Record->PartitionWidth = (UINT8)(NumSlots);
|
|
||||||
|
|
||||||
//
|
|
||||||
// Generate Memory Array Mapped Address info (TYPE 19)
|
|
||||||
//
|
|
||||||
Status = AddSmbiosRecord (Smbios, &MemArrayMappedAddrSmbiosHandle, (EFI_SMBIOS_TABLE_HEADER*) Type19Record);
|
|
||||||
|
|
||||||
FreePool(Type19Record);
|
|
||||||
ASSERT_EFI_ERROR (Status);
|
|
||||||
|
|
||||||
return Status;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
MiscSubclassDriverEntryPoint (
|
|
||||||
IN EFI_HANDLE ImageHandle,
|
|
||||||
IN EFI_SYSTEM_TABLE *SystemTable
|
|
||||||
)
|
|
||||||
/*++
|
|
||||||
Description:
|
|
||||||
|
|
||||||
Standard EFI driver point. This driver parses the mMiscSubclassDataTable
|
|
||||||
structure and reports any generated data to the DataHub.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
ImageHandle
|
|
||||||
Handle for the image of this driver
|
|
||||||
|
|
||||||
SystemTable
|
|
||||||
Pointer to the EFI System Table
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
EFI_SUCCESS
|
|
||||||
The data was successfully reported to the Data Hub.
|
|
||||||
|
|
||||||
**/
|
|
||||||
{
|
|
||||||
UINTN Index;
|
|
||||||
EFI_STATUS EfiStatus;
|
|
||||||
EFI_SMBIOS_PROTOCOL *Smbios;
|
|
||||||
|
|
||||||
EfiStatus = gBS->LocateProtocol(&gEfiSmbiosProtocolGuid, NULL, (VOID**)&Smbios);
|
|
||||||
|
|
||||||
if (EFI_ERROR(EfiStatus)) {
|
|
||||||
DEBUG((EFI_D_ERROR, "Could not locate SMBIOS protocol. %r\n", EfiStatus));
|
|
||||||
return EfiStatus;
|
|
||||||
}
|
|
||||||
|
|
||||||
mHiiHandle = HiiAddPackages (
|
|
||||||
&gEfiCallerIdGuid,
|
|
||||||
NULL,
|
|
||||||
MiscSubclassStrings,
|
|
||||||
NULL
|
|
||||||
);
|
|
||||||
ASSERT (mHiiHandle != NULL);
|
|
||||||
|
|
||||||
for (Index = 0; Index < mMiscSubclassDataTableEntries; ++Index) {
|
|
||||||
//
|
|
||||||
// If the entry have a function pointer, just log the data.
|
|
||||||
//
|
|
||||||
if (mMiscSubclassDataTable[Index].Function != NULL) {
|
|
||||||
EfiStatus = (*mMiscSubclassDataTable[Index].Function)(
|
|
||||||
mMiscSubclassDataTable[Index].RecordData,
|
|
||||||
Smbios
|
|
||||||
);
|
|
||||||
|
|
||||||
if (EFI_ERROR(EfiStatus)) {
|
|
||||||
DEBUG((EFI_D_ERROR, "Misc smbios store error. Index=%d, ReturnStatus=%r\n", Index, EfiStatus));
|
|
||||||
return EfiStatus;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Log Memory SMBIOS Record
|
|
||||||
//
|
|
||||||
EfiStatus = LogMemorySmbiosRecord();
|
|
||||||
return EfiStatus;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
Add an SMBIOS record.
|
|
||||||
|
|
||||||
@param Smbios The EFI_SMBIOS_PROTOCOL instance.
|
|
||||||
@param SmbiosHandle A unique handle will be assigned to the SMBIOS record.
|
|
||||||
@param Record The data for the fixed portion of the SMBIOS record. The format of the record is
|
|
||||||
determined by EFI_SMBIOS_TABLE_HEADER.Type. The size of the formatted area is defined
|
|
||||||
by EFI_SMBIOS_TABLE_HEADER.Length and either followed by a double-null (0x0000) or
|
|
||||||
a set of null terminated strings and a null.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS Record was added.
|
|
||||||
@retval EFI_OUT_OF_RESOURCES Record was not added due to lack of system resources.
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
AddSmbiosRecord (
|
|
||||||
IN EFI_SMBIOS_PROTOCOL *Smbios,
|
|
||||||
OUT EFI_SMBIOS_HANDLE *SmbiosHandle,
|
|
||||||
IN EFI_SMBIOS_TABLE_HEADER *Record
|
|
||||||
)
|
|
||||||
{
|
|
||||||
*SmbiosHandle = SMBIOS_HANDLE_PI_RESERVED;
|
|
||||||
return Smbios->Add (
|
|
||||||
Smbios,
|
|
||||||
NULL,
|
|
||||||
SmbiosHandle,
|
|
||||||
Record
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
|||||||
// *++
|
|
||||||
//
|
|
||||||
// Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
|
|
||||||
//
|
|
||||||
// SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
||||||
//
|
|
||||||
// --*/
|
|
||||||
|
|
||||||
/=#
|
|
||||||
|
|
||||||
#langdef en-US "English"
|
|
||||||
|
|
||||||
#string STR_MISC_SYSTEM_LANGUAGE_STRING #language en-US "System Language String"
|
|
@ -1,27 +0,0 @@
|
|||||||
/*++
|
|
||||||
|
|
||||||
Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
|
|
||||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
||||||
|
|
||||||
Module Name:
|
|
||||||
|
|
||||||
MiscSystemLanguageStringData.c
|
|
||||||
|
|
||||||
Abstract:
|
|
||||||
|
|
||||||
This driver parses the mMiscSubclassDataTable structure and reports
|
|
||||||
any generated data to the DataHub.
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
#include "MiscSubClassDriver.h"
|
|
||||||
|
|
||||||
//
|
|
||||||
// Static (possibly build generated) Bios Vendor data.
|
|
||||||
//
|
|
||||||
MISC_SMBIOS_TABLE_DATA(EFI_MISC_SYSTEM_LANGUAGE_STRING_DATA, SystemLanguageString) = {
|
|
||||||
0,
|
|
||||||
STRING_TOKEN(STR_MISC_SYSTEM_LANGUAGE_STRING)
|
|
||||||
};
|
|
||||||
|
|
||||||
/* eof - MiscSystemLanguageStringData.c */
|
|
@ -1,74 +0,0 @@
|
|||||||
/** @file
|
|
||||||
ResetCapabilities.
|
|
||||||
SMBIOS type 23.
|
|
||||||
|
|
||||||
Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>
|
|
||||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
#include "MiscSubClassDriver.h"
|
|
||||||
/**
|
|
||||||
This function makes boot time changes to the contents of the
|
|
||||||
MiscOemString (Type 11).
|
|
||||||
|
|
||||||
@param RecordData Pointer to copy of RecordData from the Data Table.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS All parameters were valid.
|
|
||||||
@retval EFI_UNSUPPORTED Unexpected RecordType value.
|
|
||||||
@retval EFI_INVALID_PARAMETER Invalid parameter was found.
|
|
||||||
|
|
||||||
**/
|
|
||||||
MISC_SMBIOS_TABLE_FUNCTION(SystemLanguageString)
|
|
||||||
{
|
|
||||||
EFI_STATUS Status;
|
|
||||||
EFI_SMBIOS_HANDLE SmbiosHandle;
|
|
||||||
SMBIOS_TABLE_TYPE13 *SmbiosRecord;
|
|
||||||
UINTN StrLeng;
|
|
||||||
CHAR8 *OptionalStrStart;
|
|
||||||
EFI_STRING Str;
|
|
||||||
STRING_REF TokenToGet;
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// First check for invalid parameters.
|
|
||||||
//
|
|
||||||
if (RecordData == NULL) {
|
|
||||||
return EFI_INVALID_PARAMETER;
|
|
||||||
}
|
|
||||||
|
|
||||||
TokenToGet = STRING_TOKEN (STR_MISC_SYSTEM_LANGUAGE_STRING);
|
|
||||||
Str = HiiGetPackageString(&gEfiCallerIdGuid, TokenToGet, NULL);
|
|
||||||
StrLeng = StrLen(Str);
|
|
||||||
if (StrLeng > SMBIOS_STRING_MAX_LENGTH) {
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Two zeros following the last string.
|
|
||||||
//
|
|
||||||
SmbiosRecord = AllocatePool(sizeof (SMBIOS_TABLE_TYPE13) + StrLeng + 1 + 1);
|
|
||||||
ZeroMem(SmbiosRecord, sizeof (SMBIOS_TABLE_TYPE13) + StrLeng + 1 + 1);
|
|
||||||
|
|
||||||
SmbiosRecord->Hdr.Type = EFI_SMBIOS_TYPE_BIOS_LANGUAGE_INFORMATION;
|
|
||||||
SmbiosRecord->Hdr.Length = sizeof (SMBIOS_TABLE_TYPE13);
|
|
||||||
//
|
|
||||||
// Make handle chosen by smbios protocol.add automatically.
|
|
||||||
//
|
|
||||||
SmbiosRecord->Hdr.Handle = 0;
|
|
||||||
SmbiosRecord->InstallableLanguages = 1;
|
|
||||||
SmbiosRecord->Flags = 1;
|
|
||||||
SmbiosRecord->CurrentLanguages = 1;
|
|
||||||
OptionalStrStart = (CHAR8 *)(SmbiosRecord + 1);
|
|
||||||
UnicodeStrToAsciiStr(Str, OptionalStrStart);
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// Now we have got the full smbios record, call smbios protocol to add this record.
|
|
||||||
//
|
|
||||||
Status = AddSmbiosRecord (Smbios, &SmbiosHandle, (EFI_SMBIOS_TABLE_HEADER *) SmbiosRecord);
|
|
||||||
|
|
||||||
FreePool(SmbiosRecord);
|
|
||||||
return Status;
|
|
||||||
}
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
|||||||
// *++
|
|
||||||
//
|
|
||||||
// Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
|
|
||||||
//
|
|
||||||
// SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
||||||
//
|
|
||||||
// --*/
|
|
||||||
|
|
||||||
/=#
|
|
||||||
|
|
||||||
#langdef en-US "English"
|
|
||||||
|
|
||||||
#string STR_MISC_SYSTEM_MANUFACTURER #language en-US "System Manufacturer"
|
|
||||||
#string STR_MISC_SYSTEM_PRODUCT_NAME #language en-US "System Product Name"
|
|
||||||
#string STR_MISC_SYSTEM_VERSION #language en-US "System Version"
|
|
||||||
#string STR_MISC_SYSTEM_SERIAL_NUMBER #language en-US "System Serial Number"
|
|
@ -1,51 +0,0 @@
|
|||||||
/*++
|
|
||||||
|
|
||||||
Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
|
|
||||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
||||||
|
|
||||||
Module Name:
|
|
||||||
|
|
||||||
MiscSystemManufacturerData.c
|
|
||||||
|
|
||||||
Abstract:
|
|
||||||
|
|
||||||
This driver parses the mMiscSubclassDataTable structure and reports
|
|
||||||
any generated data to the DataHub.
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
#include "MiscSubClassDriver.h"
|
|
||||||
|
|
||||||
//
|
|
||||||
// Static (possibly build generated) System Manufacturer data.
|
|
||||||
//
|
|
||||||
MISC_SMBIOS_TABLE_DATA(EFI_MISC_SYSTEM_MANUFACTURER_DATA, MiscSystemManufacturer)
|
|
||||||
= {
|
|
||||||
STRING_TOKEN(STR_MISC_SYSTEM_MANUFACTURER),
|
|
||||||
// SystemManufactrurer
|
|
||||||
STRING_TOKEN(STR_MISC_SYSTEM_PRODUCT_NAME),
|
|
||||||
// SystemProductName
|
|
||||||
STRING_TOKEN(STR_MISC_SYSTEM_VERSION),
|
|
||||||
// SystemVersion
|
|
||||||
STRING_TOKEN(STR_MISC_SYSTEM_SERIAL_NUMBER),
|
|
||||||
// SystemSerialNumber
|
|
||||||
{
|
|
||||||
0xbadfaced,
|
|
||||||
0xdead,
|
|
||||||
0xbeef,
|
|
||||||
{
|
|
||||||
0x13,
|
|
||||||
0x13,
|
|
||||||
0x13,
|
|
||||||
0x13,
|
|
||||||
0x13,
|
|
||||||
0x13,
|
|
||||||
0x13,
|
|
||||||
0x13
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// SystemUuid
|
|
||||||
EfiSystemWakeupTypePowerSwitch // SystemWakeupType
|
|
||||||
};
|
|
||||||
|
|
||||||
/* eof - MiscSystemManufacturerData.c */
|
|
@ -1,129 +0,0 @@
|
|||||||
/*++
|
|
||||||
|
|
||||||
Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
|
|
||||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
||||||
|
|
||||||
Module Name:
|
|
||||||
|
|
||||||
MiscSystemManufacturerFunction.c
|
|
||||||
|
|
||||||
Abstract:
|
|
||||||
|
|
||||||
This driver parses the mMiscSubclassDataTable structure and reports
|
|
||||||
any generated data to the DataHub.
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
#include "MiscSubClassDriver.h"
|
|
||||||
|
|
||||||
/**
|
|
||||||
This function makes boot time changes to the contents of the
|
|
||||||
MiscSystemManufacturer (Type 1).
|
|
||||||
|
|
||||||
@param RecordData Pointer to copy of RecordData from the Data Table.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS All parameters were valid.
|
|
||||||
@retval EFI_UNSUPPORTED Unexpected RecordType value.
|
|
||||||
@retval EFI_INVALID_PARAMETER Invalid parameter was found.
|
|
||||||
|
|
||||||
**/
|
|
||||||
MISC_SMBIOS_TABLE_FUNCTION(MiscSystemManufacturer)
|
|
||||||
{
|
|
||||||
CHAR8 *OptionalStrStart;
|
|
||||||
UINTN ManuStrLen;
|
|
||||||
UINTN VerStrLen;
|
|
||||||
UINTN PdNameStrLen;
|
|
||||||
UINTN SerialNumStrLen;
|
|
||||||
EFI_STATUS Status;
|
|
||||||
EFI_STRING Manufacturer;
|
|
||||||
EFI_STRING ProductName;
|
|
||||||
EFI_STRING Version;
|
|
||||||
EFI_STRING SerialNumber;
|
|
||||||
STRING_REF TokenToGet;
|
|
||||||
EFI_SMBIOS_HANDLE SmbiosHandle;
|
|
||||||
SMBIOS_TABLE_TYPE1 *SmbiosRecord;
|
|
||||||
EFI_MISC_SYSTEM_MANUFACTURER *ForType1InputData;
|
|
||||||
|
|
||||||
ForType1InputData = (EFI_MISC_SYSTEM_MANUFACTURER *)RecordData;
|
|
||||||
|
|
||||||
//
|
|
||||||
// First check for invalid parameters.
|
|
||||||
//
|
|
||||||
if (RecordData == NULL) {
|
|
||||||
return EFI_INVALID_PARAMETER;
|
|
||||||
}
|
|
||||||
|
|
||||||
TokenToGet = STRING_TOKEN (STR_MISC_SYSTEM_MANUFACTURER);
|
|
||||||
Manufacturer = HiiGetPackageString(&gEfiCallerIdGuid, TokenToGet, NULL);
|
|
||||||
ManuStrLen = StrLen(Manufacturer);
|
|
||||||
if (ManuStrLen > SMBIOS_STRING_MAX_LENGTH) {
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
TokenToGet = STRING_TOKEN (STR_MISC_SYSTEM_PRODUCT_NAME);
|
|
||||||
ProductName = HiiGetPackageString(&gEfiCallerIdGuid, TokenToGet, NULL);
|
|
||||||
PdNameStrLen = StrLen(ProductName);
|
|
||||||
if (PdNameStrLen > SMBIOS_STRING_MAX_LENGTH) {
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
TokenToGet = STRING_TOKEN (STR_MISC_SYSTEM_VERSION);
|
|
||||||
Version = HiiGetPackageString(&gEfiCallerIdGuid, TokenToGet, NULL);
|
|
||||||
VerStrLen = StrLen(Version);
|
|
||||||
if (VerStrLen > SMBIOS_STRING_MAX_LENGTH) {
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
TokenToGet = STRING_TOKEN (STR_MISC_SYSTEM_SERIAL_NUMBER);
|
|
||||||
SerialNumber = HiiGetPackageString(&gEfiCallerIdGuid, TokenToGet, NULL);
|
|
||||||
SerialNumStrLen = StrLen(SerialNumber);
|
|
||||||
if (SerialNumStrLen > SMBIOS_STRING_MAX_LENGTH) {
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Two zeros following the last string.
|
|
||||||
//
|
|
||||||
SmbiosRecord = AllocatePool(sizeof (SMBIOS_TABLE_TYPE1) + ManuStrLen + 1 + PdNameStrLen + 1 + VerStrLen + 1 + SerialNumStrLen + 1 + 1);
|
|
||||||
ZeroMem(SmbiosRecord, sizeof (SMBIOS_TABLE_TYPE1) + ManuStrLen + 1 + PdNameStrLen + 1 + VerStrLen + 1 + SerialNumStrLen + 1 + 1);
|
|
||||||
|
|
||||||
SmbiosRecord->Hdr.Type = EFI_SMBIOS_TYPE_SYSTEM_INFORMATION;
|
|
||||||
SmbiosRecord->Hdr.Length = sizeof (SMBIOS_TABLE_TYPE1);
|
|
||||||
//
|
|
||||||
// Make handle chosen by smbios protocol.add automatically.
|
|
||||||
//
|
|
||||||
SmbiosRecord->Hdr.Handle = 0;
|
|
||||||
//
|
|
||||||
// Manu will be the 1st optional string following the formatted structure.
|
|
||||||
//
|
|
||||||
SmbiosRecord->Manufacturer = 1;
|
|
||||||
//
|
|
||||||
// ProductName will be the 2nd optional string following the formatted structure.
|
|
||||||
//
|
|
||||||
SmbiosRecord->ProductName = 2;
|
|
||||||
//
|
|
||||||
// Version will be the 3rd optional string following the formatted structure.
|
|
||||||
//
|
|
||||||
SmbiosRecord->Version = 3;
|
|
||||||
//
|
|
||||||
// Version will be the 4th optional string following the formatted structure.
|
|
||||||
//
|
|
||||||
SmbiosRecord->SerialNumber = 4;
|
|
||||||
CopyMem ((UINT8 *) (&SmbiosRecord->Uuid),&ForType1InputData->SystemUuid,16);
|
|
||||||
SmbiosRecord->WakeUpType = (UINT8)ForType1InputData->SystemWakeupType;
|
|
||||||
|
|
||||||
OptionalStrStart = (CHAR8 *)(SmbiosRecord + 1);
|
|
||||||
UnicodeStrToAsciiStr(Manufacturer, OptionalStrStart);
|
|
||||||
UnicodeStrToAsciiStr(ProductName, OptionalStrStart + ManuStrLen + 1);
|
|
||||||
UnicodeStrToAsciiStr(Version, OptionalStrStart + ManuStrLen + 1 + PdNameStrLen + 1);
|
|
||||||
UnicodeStrToAsciiStr(SerialNumber, OptionalStrStart + ManuStrLen + 1 + PdNameStrLen + 1 + VerStrLen + 1);
|
|
||||||
|
|
||||||
//
|
|
||||||
// Now we have got the full smbios record, call smbios protocol to add this record.
|
|
||||||
//
|
|
||||||
Status = AddSmbiosRecord (Smbios, &SmbiosHandle, (EFI_SMBIOS_TABLE_HEADER *) SmbiosRecord);
|
|
||||||
|
|
||||||
FreePool(SmbiosRecord);
|
|
||||||
return Status;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* eof - MiscSystemManufacturerFunction.c */
|
|
@ -1,13 +0,0 @@
|
|||||||
// *++
|
|
||||||
//
|
|
||||||
// Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
|
|
||||||
//
|
|
||||||
// SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
||||||
//
|
|
||||||
// --*/
|
|
||||||
|
|
||||||
/=#
|
|
||||||
|
|
||||||
#langdef en-US "English"
|
|
||||||
|
|
||||||
#string STR_MISC_SYSTEM_OPTION_STRING #language en-US "System Option String"
|
|
@ -1,26 +0,0 @@
|
|||||||
/*++
|
|
||||||
|
|
||||||
Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
|
|
||||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
||||||
|
|
||||||
Module Name:
|
|
||||||
|
|
||||||
MiscSystemOptionStringData.c
|
|
||||||
|
|
||||||
Abstract:
|
|
||||||
|
|
||||||
This driver parses the mMiscSubclassDataTable structure and reports
|
|
||||||
any generated data to the DataHub.
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
#include "MiscSubClassDriver.h"
|
|
||||||
|
|
||||||
//
|
|
||||||
// Static (possibly build generated) Bios Vendor data.
|
|
||||||
//
|
|
||||||
MISC_SMBIOS_TABLE_DATA(EFI_MISC_SYSTEM_OPTION_STRING_DATA, SystemOptionString) = {
|
|
||||||
{STRING_TOKEN(STR_MISC_SYSTEM_OPTION_STRING)}
|
|
||||||
};
|
|
||||||
|
|
||||||
/* eof - MiscSystemOptionStringData.c */
|
|
@ -1,71 +0,0 @@
|
|||||||
/** @file
|
|
||||||
BIOS system option string boot time changes.
|
|
||||||
SMBIOS type 12.
|
|
||||||
|
|
||||||
Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>
|
|
||||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
#include "MiscSubClassDriver.h"
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
This function makes boot time changes to the contents of the
|
|
||||||
MiscSystemOptionString (Type 12).
|
|
||||||
|
|
||||||
@param RecordData Pointer to copy of RecordData from the Data Table.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS All parameters were valid.
|
|
||||||
@retval EFI_UNSUPPORTED Unexpected RecordType value.
|
|
||||||
@retval EFI_INVALID_PARAMETER Invalid parameter was found.
|
|
||||||
|
|
||||||
**/
|
|
||||||
MISC_SMBIOS_TABLE_FUNCTION(SystemOptionString)
|
|
||||||
{
|
|
||||||
CHAR8 *OptionalStrStart;
|
|
||||||
UINTN OptStrLen;
|
|
||||||
EFI_STRING OptionString;
|
|
||||||
EFI_STATUS Status;
|
|
||||||
STRING_REF TokenToGet;
|
|
||||||
EFI_SMBIOS_HANDLE SmbiosHandle;
|
|
||||||
SMBIOS_TABLE_TYPE12 *SmbiosRecord;
|
|
||||||
|
|
||||||
//
|
|
||||||
// First check for invalid parameters.
|
|
||||||
//
|
|
||||||
if (RecordData == NULL) {
|
|
||||||
return EFI_INVALID_PARAMETER;
|
|
||||||
}
|
|
||||||
|
|
||||||
TokenToGet = STRING_TOKEN (STR_MISC_SYSTEM_OPTION_STRING);
|
|
||||||
OptionString = HiiGetPackageString(&gEfiCallerIdGuid, TokenToGet, NULL);
|
|
||||||
OptStrLen = StrLen(OptionString);
|
|
||||||
if (OptStrLen > SMBIOS_STRING_MAX_LENGTH) {
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Two zeros following the last string.
|
|
||||||
//
|
|
||||||
SmbiosRecord = AllocatePool(sizeof (SMBIOS_TABLE_TYPE12) + OptStrLen + 1 + 1);
|
|
||||||
ZeroMem(SmbiosRecord, sizeof (SMBIOS_TABLE_TYPE12) + OptStrLen + 1 + 1);
|
|
||||||
|
|
||||||
SmbiosRecord->Hdr.Type = EFI_SMBIOS_TYPE_SYSTEM_CONFIGURATION_OPTIONS;
|
|
||||||
SmbiosRecord->Hdr.Length = sizeof (SMBIOS_TABLE_TYPE12);
|
|
||||||
//
|
|
||||||
// Make handle chosen by smbios protocol.add automatically.
|
|
||||||
//
|
|
||||||
SmbiosRecord->Hdr.Handle = 0;
|
|
||||||
|
|
||||||
SmbiosRecord->StringCount = 1;
|
|
||||||
OptionalStrStart = (CHAR8*) (SmbiosRecord + 1);
|
|
||||||
UnicodeStrToAsciiStr(OptionString, OptionalStrStart);
|
|
||||||
//
|
|
||||||
// Now we have got the full smbios record, call smbios protocol to add this record.
|
|
||||||
//
|
|
||||||
Status = AddSmbiosRecord (Smbios, &SmbiosHandle, (EFI_SMBIOS_TABLE_HEADER *) SmbiosRecord);
|
|
||||||
|
|
||||||
FreePool(SmbiosRecord);
|
|
||||||
return Status;
|
|
||||||
}
|
|
@ -1,14 +0,0 @@
|
|||||||
// *++
|
|
||||||
//
|
|
||||||
// Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
|
|
||||||
//
|
|
||||||
// SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
||||||
//
|
|
||||||
// --*/
|
|
||||||
|
|
||||||
/=#
|
|
||||||
|
|
||||||
#langdef en-US "English"
|
|
||||||
|
|
||||||
#string STR_MISC_SYSTEM_SLOT_DESIGNATION #language en-US "System Slot Designation"
|
|
||||||
|
|
@ -1,46 +0,0 @@
|
|||||||
/*++
|
|
||||||
|
|
||||||
Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
|
|
||||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
||||||
|
|
||||||
Module Name:
|
|
||||||
|
|
||||||
MiscSystemSlotDesignationData.c
|
|
||||||
|
|
||||||
Abstract:
|
|
||||||
|
|
||||||
This driver parses the mMiscSubclassDataTable structure and reports
|
|
||||||
any generated data to the DataHub.
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
#include "MiscSubClassDriver.h"
|
|
||||||
|
|
||||||
//
|
|
||||||
// Static (possibly build generated) Bios Vendor data.
|
|
||||||
//
|
|
||||||
MISC_SMBIOS_TABLE_DATA(EFI_MISC_SYSTEM_SLOT_DESIGNATION_DATA, MiscSystemSlotDesignation) = {
|
|
||||||
STRING_TOKEN(STR_MISC_SYSTEM_SLOT_DESIGNATION), // SlotDesignation
|
|
||||||
EfiSlotTypeOther, // SlotType
|
|
||||||
EfiSlotDataBusWidthOther, // SlotDataBusWidth
|
|
||||||
EfiSlotUsageOther, // SlotUsage
|
|
||||||
EfiSlotLengthOther, // SlotLength
|
|
||||||
0, // SlotId
|
|
||||||
{ // SlotCharacteristics
|
|
||||||
0, // CharacteristicsUnknown :1;
|
|
||||||
0, // Provides50Volts :1;
|
|
||||||
0, // Provides33Volts :1;
|
|
||||||
0, // SharedSlot :1;
|
|
||||||
0, // PcCard16Supported :1;
|
|
||||||
0, // CardBusSupported :1;
|
|
||||||
0, // ZoomVideoSupported :1;
|
|
||||||
0, // ModemRingResumeSupported:1;
|
|
||||||
0, // PmeSignalSupported :1;
|
|
||||||
0, // HotPlugDevicesSupported :1;
|
|
||||||
0, // SmbusSignalSupported :1;
|
|
||||||
0 // Reserved :21;
|
|
||||||
},
|
|
||||||
{0, 0, {0, 0}} // SlotDevicePath
|
|
||||||
};
|
|
||||||
|
|
||||||
/* eof - MiscSystemSlotsData.c */
|
|
@ -1,86 +0,0 @@
|
|||||||
/** @file
|
|
||||||
BIOS system slot designator information boot time changes.
|
|
||||||
SMBIOS type 9.
|
|
||||||
|
|
||||||
Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>
|
|
||||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
#include "MiscSubClassDriver.h"
|
|
||||||
/**
|
|
||||||
This function makes boot time changes to the contents of the
|
|
||||||
MiscSystemSlotDesignator structure (Type 9).
|
|
||||||
|
|
||||||
@param RecordData Pointer to copy of RecordData from the Data Table.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS All parameters were valid.
|
|
||||||
@retval EFI_UNSUPPORTED Unexpected RecordType value.
|
|
||||||
@retval EFI_INVALID_PARAMETER Invalid parameter was found.
|
|
||||||
|
|
||||||
**/
|
|
||||||
MISC_SMBIOS_TABLE_FUNCTION(MiscSystemSlotDesignation)
|
|
||||||
{
|
|
||||||
CHAR8 *OptionalStrStart;
|
|
||||||
UINTN SlotDesignationStrLen;
|
|
||||||
EFI_STATUS Status;
|
|
||||||
EFI_STRING SlotDesignation;
|
|
||||||
STRING_REF TokenToGet;
|
|
||||||
SMBIOS_TABLE_TYPE9 *SmbiosRecord;
|
|
||||||
EFI_SMBIOS_HANDLE SmbiosHandle;
|
|
||||||
EFI_MISC_SYSTEM_SLOT_DESIGNATION* ForType9InputData;
|
|
||||||
|
|
||||||
ForType9InputData = (EFI_MISC_SYSTEM_SLOT_DESIGNATION *)RecordData;
|
|
||||||
|
|
||||||
//
|
|
||||||
// First check for invalid parameters.
|
|
||||||
//
|
|
||||||
if (RecordData == NULL) {
|
|
||||||
return EFI_INVALID_PARAMETER;
|
|
||||||
}
|
|
||||||
|
|
||||||
TokenToGet = 0;
|
|
||||||
switch (ForType9InputData->SlotDesignation) {
|
|
||||||
case STR_MISC_SYSTEM_SLOT_DESIGNATION:
|
|
||||||
TokenToGet = STRING_TOKEN (STR_MISC_SYSTEM_SLOT_DESIGNATION);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
SlotDesignation = HiiGetPackageString(&gEfiCallerIdGuid, TokenToGet, NULL);
|
|
||||||
SlotDesignationStrLen = StrLen(SlotDesignation);
|
|
||||||
if (SlotDesignationStrLen > SMBIOS_STRING_MAX_LENGTH) {
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Two zeros following the last string.
|
|
||||||
//
|
|
||||||
SmbiosRecord = AllocatePool(sizeof (SMBIOS_TABLE_TYPE9) + SlotDesignationStrLen + 1 + 1);
|
|
||||||
ZeroMem(SmbiosRecord, sizeof (SMBIOS_TABLE_TYPE9) +SlotDesignationStrLen + 1 + 1);
|
|
||||||
|
|
||||||
SmbiosRecord->Hdr.Type = EFI_SMBIOS_TYPE_SYSTEM_SLOTS;
|
|
||||||
SmbiosRecord->Hdr.Length = sizeof (SMBIOS_TABLE_TYPE9);
|
|
||||||
SmbiosRecord->Hdr.Handle = 0;
|
|
||||||
SmbiosRecord->SlotDesignation = 1;
|
|
||||||
SmbiosRecord->SlotType = ForType9InputData->SlotType;
|
|
||||||
SmbiosRecord->SlotDataBusWidth = ForType9InputData->SlotDataBusWidth;
|
|
||||||
SmbiosRecord->CurrentUsage = ForType9InputData->SlotUsage;
|
|
||||||
SmbiosRecord->SlotLength = ForType9InputData->SlotLength;
|
|
||||||
SmbiosRecord->SlotID = ForType9InputData->SlotId;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Slot Characteristics
|
|
||||||
//
|
|
||||||
CopyMem ((UINT8 *) &SmbiosRecord->SlotCharacteristics1,(UINT8 *) &ForType9InputData->SlotCharacteristics,2);
|
|
||||||
OptionalStrStart = (CHAR8 *)(SmbiosRecord + 1);
|
|
||||||
UnicodeStrToAsciiStr(SlotDesignation, OptionalStrStart);
|
|
||||||
//
|
|
||||||
// Now we have got the full smbios record, call smbios protocol to add this record.
|
|
||||||
//
|
|
||||||
Status = AddSmbiosRecord (Smbios, &SmbiosHandle, (EFI_SMBIOS_TABLE_HEADER *) SmbiosRecord);
|
|
||||||
|
|
||||||
FreePool(SmbiosRecord);
|
|
||||||
return Status;
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user