/** @file\r
\r
-Copyright (c) 2006 - 2007, Intel Corporation \r
+Copyright (c) 2006 - 2010, Intel Corporation \r
All rights reserved. This program and the accompanying materials \r
are licensed and made available under the terms and conditions of the BSD License \r
which accompanies this distribution. The full text of the license may be found at \r
**/\r
\r
#include "DataHubGen.h"\r
+EFI_HII_DATABASE_PROTOCOL *gHiiDatabase;\r
\r
-EFI_HII_PROTOCOL *gHii;\r
extern UINT8 DataHubGenDxeStrings[];\r
\r
EFI_DATA_HUB_PROTOCOL *gDataHub;\r
VOID\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_HOB_HANDOFF_INFO_TABLE *HobList;\r
EFI_PHYSICAL_ADDRESS *Table;\r
-\r
+ EFI_PEI_HOB_POINTERS GuidHob;\r
//\r
// Get Hob List\r
//\r
- \r
- Status = EfiGetSystemConfigurationTable (&gEfiHobListGuid, (VOID *) &HobList);\r
- if (EFI_ERROR (Status)) {\r
- return NULL;\r
- }\r
-\r
- //\r
- // If there is a SMBIOS table in the HOB add it to the EFI System table\r
- //\r
- Table = GetNextGuidHob (&gEfiSmbiosTableGuid, &HobList);\r
-\r
- if (!EFI_ERROR (Status)) {\r
- return (VOID *)(UINTN)*Table;\r
+ GuidHob.Raw = GetFirstGuidHob (&gEfiSmbiosTableGuid);\r
+ if (GuidHob.Raw != NULL) {\r
+ Table = GET_GUID_HOB_DATA (GuidHob.Guid);\r
+ if (Table != NULL) {\r
+ return (VOID *)(UINTN)*Table;\r
+ }\r
}\r
\r
return NULL;\r
}\r
\r
-EFI_STATUS\r
-PrepareHiiPackage (\r
- VOID\r
- )\r
-{\r
- EFI_HII_PACKAGES *PackageList;\r
- EFI_STATUS Status;\r
-\r
- PackageList = PreparePackages (1, &gEfiMiscProducerGuid, DataHubGenDxeStrings);\r
- Status = gHii->NewPack (gHii, PackageList, &gStringHandle);\r
-\r
- return Status;\r
-}\r
-\r
EFI_SUBCLASS_TYPE1_HEADER mCpuDataRecordHeader = {\r
EFI_PROCESSOR_SUBCLASS_VERSION, // Version\r
sizeof (EFI_SUBCLASS_TYPE1_HEADER), // Header Size\r
Status = gDataHub->LogData (\r
gDataHub,\r
&gEfiProcessorSubClassGuid,\r
- &gEfiMiscProducerGuid,\r
+ &gEfiCallerIdGuid,\r
EFI_DATA_RECORD_CLASS_DATA,\r
&DataRecord,\r
sizeof (DataRecord.DataRecordHeader) + sizeof (DataRecord.VariableRecord.ProcessorCoreFrequency)\r
);\r
+ ASSERT_EFI_ERROR (Status);\r
//\r
// Record Type 3\r
//\r
ASSERT (UString != NULL);\r
AsciiStrToUnicodeStr (AString, UString);\r
\r
- Token = 0;\r
- Status = gHii->NewString (gHii, NULL, gStringHandle, &Token, UString);\r
-\r
- if (EFI_ERROR (Status)) {\r
+ Token = HiiSetString (gStringHandle, 0, UString, NULL);\r
+ if (Token == 0) {\r
gBS->FreePool (UString);\r
return ;\r
}\r
Status = gDataHub->LogData (\r
gDataHub,\r
&gEfiProcessorSubClassGuid,\r
- &gEfiMiscProducerGuid,\r
+ &gEfiCallerIdGuid,\r
EFI_DATA_RECORD_CLASS_DATA,\r
&DataRecord,\r
sizeof (DataRecord.DataRecordHeader) + sizeof (DataRecord.VariableRecord.ProcessorVersion)\r
);\r
-\r
+ ASSERT_EFI_ERROR (Status);\r
return ;\r
}\r
\r
IN VOID *Smbios\r
)\r
{\r
- EFI_STATUS Status;\r
SMBIOS_STRUCTURE_POINTER SmbiosTable;\r
EFI_MEMORY_SUBCLASS_DRIVER_DATA DataRecord;\r
\r
DataRecord.Record.ArrayStartAddress.MemoryArrayStartAddress = LShiftU64(SmbiosTable.Type19->StartingAddress, 10);\r
DataRecord.Record.ArrayStartAddress.MemoryArrayEndAddress = LShiftU64((UINT64) SmbiosTable.Type19->EndingAddress + 1, 10) - 1;\r
\r
- DataRecord.Record.ArrayStartAddress.PhysicalMemoryArrayLink.ProducerName = gEfiMemoryProducerGuid;\r
+ CopyGuid (&DataRecord.Record.ArrayStartAddress.PhysicalMemoryArrayLink.ProducerName, &gEfiCallerIdGuid);\r
DataRecord.Record.ArrayStartAddress.PhysicalMemoryArrayLink.Instance = 0;\r
DataRecord.Record.ArrayStartAddress.PhysicalMemoryArrayLink.SubInstance = EFI_SUBCLASS_INSTANCE_NON_APPLICABLE;\r
DataRecord.Record.ArrayStartAddress.MemoryArrayPartitionWidth = (UINT16)(SmbiosTable.Type19->PartitionWidth); \r
\r
- Status = gDataHub->LogData (\r
+ gDataHub->LogData (\r
gDataHub,\r
&gEfiMemorySubClassGuid,\r
- &gEfiMiscProducerGuid,\r
+ &gEfiCallerIdGuid,\r
EFI_DATA_RECORD_CLASS_DATA,\r
&DataRecord,\r
sizeof (DataRecord.Header) + sizeof (DataRecord.Record.ArrayStartAddress)\r
CopyMem (UString, FIRMWARE_BIOS_VERSIONE, sizeof(FIRMWARE_BIOS_VERSIONE));\r
AsciiStrToUnicodeStr (AString, UString + sizeof(FIRMWARE_BIOS_VERSIONE) / sizeof(CHAR16) - 1);\r
\r
- Token = 0;\r
- Status = gHii->NewString (gHii, NULL, gStringHandle, &Token, UString);\r
-\r
- if (EFI_ERROR (Status)) {\r
+ Token = HiiSetString (gStringHandle, 0, UString, NULL);\r
+ if (Token == 0) {\r
gBS->FreePool (UString);\r
return ;\r
}\r
Status = gDataHub->LogData (\r
gDataHub,\r
&gEfiMiscSubClassGuid,\r
- &gEfiMiscProducerGuid,\r
+ &gEfiCallerIdGuid,\r
EFI_DATA_RECORD_CLASS_DATA,\r
&DataRecord,\r
sizeof (DataRecord.Header) + sizeof (DataRecord.Record.MiscBiosVendor)\r
);\r
+ ASSERT_EFI_ERROR (Status);\r
\r
//\r
// System information (TYPE 1)\r
CopyMem (UString, FIRMWARE_PRODUCT_NAME, sizeof(FIRMWARE_PRODUCT_NAME));\r
AsciiStrToUnicodeStr (AString, UString + sizeof(FIRMWARE_PRODUCT_NAME) / sizeof(CHAR16) - 1);\r
\r
-#if (EFI_SPECIFICATION_VERSION >= 0x0002000A)\r
- Status = IfrLibNewString (gStringHandle, &Token, UString);\r
-#else\r
- Token = 0;\r
- Status = gHii->NewString (gHii, NULL, gStringHandle, &Token, UString);\r
-#endif\r
- if (EFI_ERROR (Status)) {\r
+ Token = HiiSetString (gStringHandle, 0, UString, NULL);\r
+ if (Token == 0) {\r
gBS->FreePool (UString);\r
return ;\r
}\r
DataRecord.Record.MiscSystemManufacturer.SystemVersion = 0;\r
DataRecord.Record.MiscSystemManufacturer.SystemSerialNumber = 0;\r
// DataRecord.Record.MiscSystemManufacturer.SystemUuid = {0};\r
- DataRecord.Record.MiscSystemManufacturer.SystemWakeupType = 0;\r
+ DataRecord.Record.MiscSystemManufacturer.SystemWakeupType = EfiSystemWakeupTypeReserved;\r
DataRecord.Record.MiscSystemManufacturer.SystemSKUNumber = 0;\r
DataRecord.Record.MiscSystemManufacturer.SystemFamily = 0;\r
\r
Status = gDataHub->LogData (\r
gDataHub,\r
&gEfiMiscSubClassGuid,\r
- &gEfiMiscProducerGuid,\r
+ &gEfiCallerIdGuid,\r
EFI_DATA_RECORD_CLASS_DATA,\r
&DataRecord,\r
sizeof (DataRecord.Header) + sizeof (DataRecord.Record.MiscSystemManufacturer)\r
);\r
+ ASSERT_EFI_ERROR (Status);\r
\r
return ;\r
}\r
EFI_STATUS Status;\r
VOID *Smbios;\r
\r
-\r
Smbios = GetSmbiosTablesFromHob ();\r
if (Smbios == NULL) {\r
return EFI_NOT_FOUND;\r
Status = gBS->LocateProtocol (\r
&gEfiDataHubProtocolGuid,\r
NULL,\r
- &gDataHub\r
+ (VOID**)&gDataHub\r
);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
\r
-#if (EFI_SPECIFICATION_VERSION >= 0x0002000A)\r
Status = gBS->LocateProtocol (\r
&gEfiHiiDatabaseProtocolGuid,\r
NULL,\r
- &gHiiDatabase\r
- );\r
-#else\r
- Status = gBS->LocateProtocol (\r
- &gEfiHiiProtocolGuid,\r
- NULL,\r
- &gHii\r
+ (VOID**)&gHiiDatabase\r
);\r
-#endif\r
+\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
-\r
- PrepareHiiPackage ();\r
+ \r
+ gStringHandle = HiiAddPackages (\r
+ &gEfiCallerIdGuid,\r
+ NULL,\r
+ DataHubGenDxeStrings,\r
+ NULL\r
+ );\r
+ ASSERT (gStringHandle != NULL);\r
\r
InstallProcessorDataHub (Smbios);\r
InstallCacheDataHub (Smbios);\r