1) PcdFlashNvStorageFtwWorkingSize, PcdFlashNvStorageFtwWorkingBase, PcdFlashNvStorageFtwSpareSize, PcdFlashNvStorageFtwSpareBase, PcdFlashNvStorageVariableSize PcdFlashNvStorageVariableBase should in gEfiMdeModulePkgTokenSpaceGuid.

2) Use FlashMapHob to get the address and length of FV instead of using PCD. 
3) Use hard code environment in WinNtBusDriver but not dynamic PCD.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3106 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
klu2 2007-07-06 08:08:57 +00:00
parent 9c8403b3f8
commit e15fbaf473
11 changed files with 130 additions and 73 deletions

View File

@ -139,29 +139,29 @@
PcdMaxSizePopulateCapsule|0x0001001e|gEfiEdkModulePkgTokenSpaceGuid|UINT32|0x0 PcdMaxSizePopulateCapsule|0x0001001e|gEfiEdkModulePkgTokenSpaceGuid|UINT32|0x0
PcdMaxSizeNonPopulateCapsule|0x0001001f|gEfiEdkModulePkgTokenSpaceGuid|UINT32|0x0 PcdMaxSizeNonPopulateCapsule|0x0001001f|gEfiEdkModulePkgTokenSpaceGuid|UINT32|0x0
PcdMaxPeiPerformanceLogEntries|0x0001002f|gEfiEdkModulePkgTokenSpaceGuid|UINT8|28 PcdMaxPeiPerformanceLogEntries|0x0001002f|gEfiEdkModulePkgTokenSpaceGuid|UINT8|28
PcdFlashNvStorageVariableBase|0x30000001|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0 PcdFlashNvStorageVariableBase|0x30000001|gEfiMdeModulePkgTokenSpaceGuid|UINT32|0x0
PcdFlashNvStorageVariableSize|0x30000002|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0 PcdFlashNvStorageVariableSize|0x30000002|gEfiMdeModulePkgTokenSpaceGuid|UINT32|0x0
PcdFlashNvStorageFtwSpareBase|0x30000013|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0 PcdFlashNvStorageFtwSpareBase|0x30000013|gEfiMdeModulePkgTokenSpaceGuid|UINT32|0x0
PcdFlashNvStorageFtwSpareSize|0x30000014|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0 PcdFlashNvStorageFtwSpareSize|0x30000014|gEfiMdeModulePkgTokenSpaceGuid|UINT32|0x0
PcdFlashNvStorageFtwWorkingBase|0x30000010|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0 PcdFlashNvStorageFtwWorkingBase|0x30000010|gEfiMdeModulePkgTokenSpaceGuid|UINT32|0x0
PcdFlashNvStorageFtwWorkingSize|0x30000011|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0 PcdFlashNvStorageFtwWorkingSize|0x30000011|gEfiMdeModulePkgTokenSpaceGuid|UINT32|0x0
[PcdsDynamic.common] [PcdsDynamic.common]
PcdFlashNvStorageVariableBase|0x30000001|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0 PcdFlashNvStorageVariableBase|0x30000001|gEfiMdeModulePkgTokenSpaceGuid|UINT32|0x0
PcdFlashNvStorageVariableSize|0x30000002|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0 PcdFlashNvStorageVariableSize|0x30000002|gEfiMdeModulePkgTokenSpaceGuid|UINT32|0x0
PcdFlashNvStorageFtwSpareBase|0x30000013|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0 PcdFlashNvStorageFtwSpareBase|0x30000013|gEfiMdeModulePkgTokenSpaceGuid|UINT32|0x0
PcdFlashNvStorageFtwSpareSize|0x30000014|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0 PcdFlashNvStorageFtwSpareSize|0x30000014|gEfiMdeModulePkgTokenSpaceGuid|UINT32|0x0
PcdFlashNvStorageFtwWorkingBase|0x30000010|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0 PcdFlashNvStorageFtwWorkingBase|0x30000010|gEfiMdeModulePkgTokenSpaceGuid|UINT32|0x0
PcdFlashNvStorageFtwWorkingSize|0x30000011|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0 PcdFlashNvStorageFtwWorkingSize|0x30000011|gEfiMdeModulePkgTokenSpaceGuid|UINT32|0x0
[PcdsPatchableInModule.common] [PcdsPatchableInModule.common]
PcdMaxPeiPerformanceLogEntries|0x0001002f|gEfiEdkModulePkgTokenSpaceGuid|UINT8|28 PcdMaxPeiPerformanceLogEntries|0x0001002f|gEfiEdkModulePkgTokenSpaceGuid|UINT8|28
PcdFlashNvStorageVariableBase|0x30000001|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0 PcdFlashNvStorageVariableBase|0x30000001|gEfiMdeModulePkgTokenSpaceGuid|UINT32|0x0
PcdFlashNvStorageVariableSize|0x30000002|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0 PcdFlashNvStorageVariableSize|0x30000002|gEfiMdeModulePkgTokenSpaceGuid|UINT32|0x0
PcdFlashNvStorageFtwSpareBase|0x30000013|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0 PcdFlashNvStorageFtwSpareBase|0x30000013|gEfiMdeModulePkgTokenSpaceGuid|UINT32|0x0
PcdFlashNvStorageFtwSpareSize|0x30000014|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0 PcdFlashNvStorageFtwSpareSize|0x30000014|gEfiMdeModulePkgTokenSpaceGuid|UINT32|0x0
PcdFlashNvStorageFtwWorkingBase|0x30000010|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0 PcdFlashNvStorageFtwWorkingBase|0x30000010|gEfiMdeModulePkgTokenSpaceGuid|UINT32|0x0
PcdFlashNvStorageFtwWorkingSize|0x30000011|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0 PcdFlashNvStorageFtwWorkingSize|0x30000011|gEfiMdeModulePkgTokenSpaceGuid|UINT32|0x0
[PcdsFeatureFlag.IA32] [PcdsFeatureFlag.IA32]

View File

@ -339,12 +339,12 @@
PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320 PcdUefiLibMaxPrintBufferSize|gEfiMdePkgTokenSpaceGuid|320
PcdMaxSizeNonPopulateCapsule|gEfiEdkModulePkgTokenSpaceGuid|0x0 PcdMaxSizeNonPopulateCapsule|gEfiEdkModulePkgTokenSpaceGuid|0x0
PcdMaxSizePopulateCapsule|gEfiEdkModulePkgTokenSpaceGuid|0x0 PcdMaxSizePopulateCapsule|gEfiEdkModulePkgTokenSpaceGuid|0x0
PcdFlashNvStorageFtwSpareBase|gEfiGenericPlatformTokenSpaceGuid|0x0 PcdFlashNvStorageFtwSpareBase|gEfiMdeModulePkgTokenSpaceGuid|0x0
PcdFlashNvStorageFtwSpareSize|gEfiGenericPlatformTokenSpaceGuid|0x0 PcdFlashNvStorageFtwSpareSize|gEfiMdeModulePkgTokenSpaceGuid|0x0
PcdFlashNvStorageFtwWorkingBase|gEfiGenericPlatformTokenSpaceGuid|0x0 PcdFlashNvStorageFtwWorkingBase|gEfiMdeModulePkgTokenSpaceGuid|0x0
PcdFlashNvStorageFtwWorkingSize|gEfiGenericPlatformTokenSpaceGuid|0x0 PcdFlashNvStorageFtwWorkingSize|gEfiMdeModulePkgTokenSpaceGuid|0x0
PcdFlashNvStorageVariableBase|gEfiGenericPlatformTokenSpaceGuid|0x0 PcdFlashNvStorageVariableBase|gEfiMdeModulePkgTokenSpaceGuid|0x0
PcdFlashNvStorageVariableSize|gEfiGenericPlatformTokenSpaceGuid|0x0 PcdFlashNvStorageVariableSize|gEfiMdeModulePkgTokenSpaceGuid|0x0
PcdMaxPeiPerformanceLogEntries|gEfiEdkModulePkgTokenSpaceGuid|28 PcdMaxPeiPerformanceLogEntries|gEfiEdkModulePkgTokenSpaceGuid|28
PcdVpdBaseAddress|gEfiEdkModulePkgTokenSpaceGuid|0x0 PcdVpdBaseAddress|gEfiEdkModulePkgTokenSpaceGuid|0x0
PcdMaxPeiPcdCallBackNumberPerPcdEntry|gEfiMdeModulePkgTokenSpaceGuid|0x08 PcdMaxPeiPcdCallBackNumberPerPcdEntry|gEfiMdeModulePkgTokenSpaceGuid|0x08

View File

@ -634,7 +634,8 @@ InitializeFtwLite (
UINTN Offset; UINTN Offset;
EFI_FV_BLOCK_MAP_ENTRY *FvbMapEntry; EFI_FV_BLOCK_MAP_ENTRY *FvbMapEntry;
UINT32 LbaIndex; UINT32 LbaIndex;
EFI_PEI_HOB_POINTERS FvHob;
EFI_FLASH_MAP_ENTRY_DATA *FlashMapEntry;
// //
// Allocate Private data of this driver, // Allocate Private data of this driver,
// INCLUDING THE FtwWorkSpace[FTW_WORK_SPACE_SIZE]. // INCLUDING THE FtwWorkSpace[FTW_WORK_SPACE_SIZE].
@ -665,12 +666,34 @@ InitializeFtwLite (
FtwLiteDevice->FtwWorkSpaceHeader = (EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER *) FtwLiteDevice->FtwWorkSpace; FtwLiteDevice->FtwWorkSpaceHeader = (EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER *) FtwLiteDevice->FtwWorkSpace;
FtwLiteDevice->FtwLastRecord = NULL; FtwLiteDevice->FtwLastRecord = NULL;
//
// BUGBUG: Here should use Pcd after build tool support dynamic PCD
//
FtwLiteDevice->SpareAreaLength = 0;
FtwLiteDevice->WorkSpaceLength = 0;
FvHob.Raw = GetHobList ();
while ((FvHob.Raw = GetNextGuidHob (&gEfiFlashMapHobGuid, FvHob.Raw)) != NULL) {
FtwLiteDevice->WorkSpaceAddress = (EFI_PHYSICAL_ADDRESS) PcdGet32 (PcdFlashNvStorageFtwWorkingBase); FlashMapEntry = (EFI_FLASH_MAP_ENTRY_DATA *) GET_GUID_HOB_DATA (FvHob.Guid);
FtwLiteDevice->WorkSpaceLength = (UINTN) PcdGet32 (PcdFlashNvStorageFtwWorkingSize);
//
FtwLiteDevice->SpareAreaAddress = (EFI_PHYSICAL_ADDRESS) PcdGet32 (PcdFlashNvStorageFtwSpareBase); // Get the FTW work space Flash Map SUB area
FtwLiteDevice->SpareAreaLength = (UINTN) PcdGet32 (PcdFlashNvStorageFtwSpareSize); //
if ((FlashMapEntry->AreaType == EFI_FLASH_AREA_FTW_STATE) && (FlashMapEntry->NumEntries == 1)) {
FtwLiteDevice->WorkSpaceAddress = FlashMapEntry->Entries[0].Base;
FtwLiteDevice->WorkSpaceLength = (UINTN) FlashMapEntry->Entries[0].Length;
}
//
// Get the FTW backup SUB area
//
if ((FlashMapEntry->AreaType == EFI_FLASH_AREA_FTW_BACKUP) && (FlashMapEntry->NumEntries == 1)) {
FtwLiteDevice->SpareAreaAddress = FlashMapEntry->Entries[0].Base;
FtwLiteDevice->SpareAreaLength = (UINTN) FlashMapEntry->Entries[0].Length;
}
FvHob.Raw = GET_NEXT_HOB (FvHob);
}
ASSERT ((FtwLiteDevice->WorkSpaceLength != 0) && (FtwLiteDevice->SpareAreaLength != 0)); ASSERT ((FtwLiteDevice->WorkSpaceLength != 0) && (FtwLiteDevice->SpareAreaLength != 0));

View File

@ -38,6 +38,7 @@ Abstract:
// //
#include <Protocol/PciRootBridgeIo.h> #include <Protocol/PciRootBridgeIo.h>
#include <Guid/SystemNvDataGuid.h> #include <Guid/SystemNvDataGuid.h>
#include <Guid/FlashMapHob.h>
#include <Protocol/FaultTolerantWriteLite.h> #include <Protocol/FaultTolerantWriteLite.h>
#include <Protocol/FirmwareVolumeBlock.h> #include <Protocol/FirmwareVolumeBlock.h>
// //
@ -49,8 +50,10 @@ Abstract:
#include <Library/BaseMemoryLib.h> #include <Library/BaseMemoryLib.h>
#include <Library/MemoryAllocationLib.h> #include <Library/MemoryAllocationLib.h>
#include <Library/UefiBootServicesTableLib.h> #include <Library/UefiBootServicesTableLib.h>
#include <Library/HobLib.h>
#include <Common/WorkingBlockHeader.h> #include <Common/WorkingBlockHeader.h>
#include <Common/FlashMap.h>
#define EFI_D_FTW_LITE EFI_D_ERROR #define EFI_D_FTW_LITE EFI_D_ERROR
#define EFI_D_FTW_INFO EFI_D_INFO #define EFI_D_FTW_INFO EFI_D_INFO

View File

@ -88,7 +88,7 @@
UefiDriverEntryPoint UefiDriverEntryPoint
DebugLib DebugLib
PcdLib PcdLib
HobLib
################################################################################ ################################################################################
# #
@ -98,7 +98,7 @@
[Guids] [Guids]
gEfiSystemNvDataFvGuid # ALWAYS_CONSUMED gEfiSystemNvDataFvGuid # ALWAYS_CONSUMED
gEfiFlashMapHobGuid
################################################################################ ################################################################################
# #
@ -125,10 +125,10 @@
################################################################################ ################################################################################
[PcdsDynamic.common] [PcdsDynamic.common]
PcdFlashNvStorageFtwWorkingSize|gEfiGenericPlatformTokenSpaceGuid PcdFlashNvStorageFtwWorkingSize|gEfiMdeModulePkgTokenSpaceGuid
PcdFlashNvStorageFtwWorkingBase|gEfiGenericPlatformTokenSpaceGuid PcdFlashNvStorageFtwWorkingBase|gEfiMdeModulePkgTokenSpaceGuid
PcdFlashNvStorageFtwSpareSize|gEfiGenericPlatformTokenSpaceGuid PcdFlashNvStorageFtwSpareSize|gEfiMdeModulePkgTokenSpaceGuid
PcdFlashNvStorageFtwSpareBase|gEfiGenericPlatformTokenSpaceGuid PcdFlashNvStorageFtwSpareBase|gEfiMdeModulePkgTokenSpaceGuid
################################################################################ ################################################################################
# #

View File

@ -63,7 +63,7 @@
gEfiPeiReadOnlyVariable2PpiGuid # PPI ALWAYS_CONSUMED gEfiPeiReadOnlyVariable2PpiGuid # PPI ALWAYS_CONSUMED
[PcdsDynamic.common] [PcdsDynamic.common]
PcdFlashNvStorageVariableBase|gEfiGenericPlatformTokenSpaceGuid PcdFlashNvStorageVariableBase|gEfiMdeModulePkgTokenSpaceGuid
[Depex] [Depex]
TRUE TRUE

View File

@ -105,8 +105,8 @@
################################################################################ ################################################################################
[PcdsDynamic.common] [PcdsDynamic.common]
PcdFlashNvStorageVariableSize|gEfiGenericPlatformTokenSpaceGuid PcdFlashNvStorageVariableSize|gEfiMdeModulePkgTokenSpaceGuid
PcdFlashNvStorageVariableBase|gEfiGenericPlatformTokenSpaceGuid PcdFlashNvStorageVariableBase|gEfiMdeModulePkgTokenSpaceGuid
################################################################################ ################################################################################

View File

@ -106,19 +106,22 @@
UefiBootServicesTableLib|$(WORKSPACE)/MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf UefiBootServicesTableLib|$(WORKSPACE)/MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
HobLib|$(WORKSPACE)/MdePkg/Library/DxeHobLib/DxeHobLib.inf HobLib|$(WORKSPACE)/MdePkg/Library/DxeHobLib/DxeHobLib.inf
DevicePathLib|$(WORKSPACE)/MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf DevicePathLib|$(WORKSPACE)/MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
PcdLib|$(WORKSPACE)/MdePkg/Library/DxePcdLib/DxePcdLib.inf # After tools enable the dynamic PCD, please uncomment follows library instances mapping.
#PcdLib|$(WORKSPACE)/MdePkg/Library/DxePcdLib/DxePcdLib.inf
MemoryAllocationLib|$(WORKSPACE)/MdePkg/Library/DxeMemoryAllocationLib/DxeMemoryAllocationLib.inf MemoryAllocationLib|$(WORKSPACE)/MdePkg/Library/DxeMemoryAllocationLib/DxeMemoryAllocationLib.inf
UefiLib|$(WORKSPACE)/MdePkg/Library/UefiLib/UefiLib.inf UefiLib|$(WORKSPACE)/MdePkg/Library/UefiLib/UefiLib.inf
ReportStatusCodeLib|$(WORKSPACE)/IntelFrameworkPkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf ReportStatusCodeLib|$(WORKSPACE)/IntelFrameworkPkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
UefiRuntimeServicesTableLib|$(WORKSPACE)/MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf UefiRuntimeServicesTableLib|$(WORKSPACE)/MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
WinNtLib|$(WORKSPACE)/Nt32Pkg/Library/DxeWinNtLib/DxeWinNtLib.inf WinNtLib|$(WORKSPACE)/Nt32Pkg/Library/DxeWinNtLib/DxeWinNtLib.inf
OemHookStatusCodeLib|$(WORKSPACE)/Nt32Pkg/Library/DxeNt32OemHookStatusCodeLib/DxeNt32OemHookStatusCodeLib.inf OemHookStatusCodeLib|$(WORKSPACE)/Nt32Pkg/Library/DxeNt32OemHookStatusCodeLib/DxeNt32OemHookStatusCodeLib.inf
PcdLib|$(WORKSPACE)/MdePkg/Library/DxePcdLib/DxePcdLib.inf # After tools enable the dynamic PCD, please uncomment follows library instances mapping.
#PcdLib|$(WORKSPACE)/MdePkg/Library/DxePcdLib/DxePcdLib.inf
DebugLib|$(WORKSPACE)/MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf DebugLib|$(WORKSPACE)/MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
[LibraryClasses.common.PEIM] [LibraryClasses.common.PEIM]
HobLib|$(WORKSPACE)/MdePkg/Library/PeiHobLib/PeiHobLib.inf HobLib|$(WORKSPACE)/MdePkg/Library/PeiHobLib/PeiHobLib.inf
PcdLib|$(WORKSPACE)/MdePkg/Library/PeiPcdLib/PeiPcdLib.inf # After tools enable the dynamic PCD, please uncomment follows library instances mapping.
#PcdLib|$(WORKSPACE)/MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
IoLib|$(WORKSPACE)/MdePkg/Library/PeiIoLibCpuIo/PeiIoLibCpuIo.inf IoLib|$(WORKSPACE)/MdePkg/Library/PeiIoLibCpuIo/PeiIoLibCpuIo.inf
PeimEntryPoint|$(WORKSPACE)/MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf PeimEntryPoint|$(WORKSPACE)/MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf
PeiServicesLib|$(WORKSPACE)/MdePkg/Library/PeiServicesLib/PeiServicesLib.inf PeiServicesLib|$(WORKSPACE)/MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
@ -140,13 +143,15 @@
OldPeiCoreEntryPoint|$(WORKSPACE)/MdePkg/Library/OldPeiCoreEntryPoint/OldPeiCoreEntryPoint.inf OldPeiCoreEntryPoint|$(WORKSPACE)/MdePkg/Library/OldPeiCoreEntryPoint/OldPeiCoreEntryPoint.inf
ReportStatusCodeLib|$(WORKSPACE)/IntelFrameworkPkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf ReportStatusCodeLib|$(WORKSPACE)/IntelFrameworkPkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf
PeCoffGetEntryPointLib|$(WORKSPACE)/Nt32Pkg/Library/EdkNt32PeiPeCoffGetEntryPointLib/EdkNt32PeiPeCoffGetEntryPointLib.inf PeCoffGetEntryPointLib|$(WORKSPACE)/Nt32Pkg/Library/EdkNt32PeiPeCoffGetEntryPointLib/EdkNt32PeiPeCoffGetEntryPointLib.inf
PcdLib|$(WORKSPACE)/MdePkg/Library/PeiPcdLib/PeiPcdLib.inf # After tools enable the dynamic PCD, please uncomment follows library instances mapping.
#PcdLib|$(WORKSPACE)/MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
DebugLib|$(WORKSPACE)/IntelFrameworkPkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf DebugLib|$(WORKSPACE)/IntelFrameworkPkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
[LibraryClasses.common.DXE_RUNTIME_DRIVER] [LibraryClasses.common.DXE_RUNTIME_DRIVER]
UefiRuntimeServicesTableLib|$(WORKSPACE)/MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf UefiRuntimeServicesTableLib|$(WORKSPACE)/MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
HobLib|$(WORKSPACE)/MdePkg/Library/DxeHobLib/DxeHobLib.inf HobLib|$(WORKSPACE)/MdePkg/Library/DxeHobLib/DxeHobLib.inf
PcdLib|$(WORKSPACE)/MdePkg/Library/DxePcdLib/DxePcdLib.inf # After tools enable the dynamic PCD, please uncomment follows library instances mapping.
#PcdLib|$(WORKSPACE)/MdePkg/Library/DxePcdLib/DxePcdLib.inf
MemoryAllocationLib|$(WORKSPACE)/MdePkg/Library/DxeMemoryAllocationLib/DxeMemoryAllocationLib.inf MemoryAllocationLib|$(WORKSPACE)/MdePkg/Library/DxeMemoryAllocationLib/DxeMemoryAllocationLib.inf
UefiLib|$(WORKSPACE)/MdePkg/Library/UefiLib/UefiLib.inf UefiLib|$(WORKSPACE)/MdePkg/Library/UefiLib/UefiLib.inf
UefiDriverEntryPoint|$(WORKSPACE)/MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf UefiDriverEntryPoint|$(WORKSPACE)/MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
@ -166,7 +171,8 @@
[LibraryClasses.common.UEFI_DRIVER] [LibraryClasses.common.UEFI_DRIVER]
UefiRuntimeServicesTableLib|$(WORKSPACE)/MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf UefiRuntimeServicesTableLib|$(WORKSPACE)/MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
HobLib|$(WORKSPACE)/MdePkg/Library/DxeHobLib/DxeHobLib.inf HobLib|$(WORKSPACE)/MdePkg/Library/DxeHobLib/DxeHobLib.inf
PcdLib|$(WORKSPACE)/MdePkg/Library/DxePcdLib/DxePcdLib.inf # After tools enable the dynamic PCD, please uncomment follows library instances mapping.
#PcdLib|$(WORKSPACE)/MdePkg/Library/DxePcdLib/DxePcdLib.inf
MemoryAllocationLib|$(WORKSPACE)/MdePkg/Library/DxeMemoryAllocationLib/DxeMemoryAllocationLib.inf MemoryAllocationLib|$(WORKSPACE)/MdePkg/Library/DxeMemoryAllocationLib/DxeMemoryAllocationLib.inf
UefiLib|$(WORKSPACE)/MdePkg/Library/UefiLib/UefiLib.inf UefiLib|$(WORKSPACE)/MdePkg/Library/UefiLib/UefiLib.inf
UefiDriverEntryPoint|$(WORKSPACE)/MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf UefiDriverEntryPoint|$(WORKSPACE)/MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
@ -185,7 +191,8 @@
[LibraryClasses.common.DXE_DRIVER] [LibraryClasses.common.DXE_DRIVER]
UefiRuntimeServicesTableLib|$(WORKSPACE)/MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf UefiRuntimeServicesTableLib|$(WORKSPACE)/MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
HobLib|$(WORKSPACE)/MdePkg/Library/DxeHobLib/DxeHobLib.inf HobLib|$(WORKSPACE)/MdePkg/Library/DxeHobLib/DxeHobLib.inf
PcdLib|$(WORKSPACE)/MdePkg/Library/DxePcdLib/DxePcdLib.inf # After tools enable the dynamic PCD, please uncomment follows library instances mapping.
#PcdLib|$(WORKSPACE)/MdePkg/Library/DxePcdLib/DxePcdLib.inf
MemoryAllocationLib|$(WORKSPACE)/MdePkg/Library/DxeMemoryAllocationLib/DxeMemoryAllocationLib.inf MemoryAllocationLib|$(WORKSPACE)/MdePkg/Library/DxeMemoryAllocationLib/DxeMemoryAllocationLib.inf
UefiLib|$(WORKSPACE)/MdePkg/Library/UefiLib/UefiLib.inf UefiLib|$(WORKSPACE)/MdePkg/Library/UefiLib/UefiLib.inf
UefiDriverEntryPoint|$(WORKSPACE)/MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf UefiDriverEntryPoint|$(WORKSPACE)/MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
@ -212,7 +219,8 @@
HobLib|$(WORKSPACE)/MdePkg/Library/DxeHobLib/DxeHobLib.inf HobLib|$(WORKSPACE)/MdePkg/Library/DxeHobLib/DxeHobLib.inf
DevicePathLib|$(WORKSPACE)/MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf DevicePathLib|$(WORKSPACE)/MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
EdkIfrSupportLib|$(WORKSPACE)/MdeModulePkg/Library/EdkIfrSupportLib/EdkIfrSupportLib.inf EdkIfrSupportLib|$(WORKSPACE)/MdeModulePkg/Library/EdkIfrSupportLib/EdkIfrSupportLib.inf
PcdLib|$(WORKSPACE)/MdePkg/Library/DxePcdLib/DxePcdLib.inf # After tools enable the dynamic PCD, please uncomment follows library instances mapping.
#PcdLib|$(WORKSPACE)/MdePkg/Library/DxePcdLib/DxePcdLib.inf
MemoryAllocationLib|$(WORKSPACE)/MdePkg/Library/DxeMemoryAllocationLib/DxeMemoryAllocationLib.inf MemoryAllocationLib|$(WORKSPACE)/MdePkg/Library/DxeMemoryAllocationLib/DxeMemoryAllocationLib.inf
UefiLib|$(WORKSPACE)/MdePkg/Library/UefiLib/UefiLib.inf UefiLib|$(WORKSPACE)/MdePkg/Library/UefiLib/UefiLib.inf
ReportStatusCodeLib|$(WORKSPACE)/IntelFrameworkPkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf ReportStatusCodeLib|$(WORKSPACE)/IntelFrameworkPkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
@ -262,6 +270,12 @@
PcdMaxSizeNonPopulateCapsule|gEfiEdkModulePkgTokenSpaceGuid|0x0 PcdMaxSizeNonPopulateCapsule|gEfiEdkModulePkgTokenSpaceGuid|0x0
PcdMaxSizePopulateCapsule|gEfiEdkModulePkgTokenSpaceGuid|0x0 PcdMaxSizePopulateCapsule|gEfiEdkModulePkgTokenSpaceGuid|0x0
PcdPciIncompatibleDeviceSupportMask|gEfiIntelFrameworkModulePkgTokenSpaceGuid|0 PcdPciIncompatibleDeviceSupportMask|gEfiIntelFrameworkModulePkgTokenSpaceGuid|0
PcdFlashNvStorageFtwSpareBase|gEfiMdeModulePkgTokenSpaceGuid|0x0
PcdFlashNvStorageFtwSpareSize|gEfiMdeModulePkgTokenSpaceGuid|0x280000
PcdFlashNvStorageFtwWorkingBase|gEfiMdeModulePkgTokenSpaceGuid|0x28e000
PcdFlashNvStorageFtwWorkingSize|gEfiMdeModulePkgTokenSpaceGuid|0x2000
PcdFlashNvStorageVariableBase|gEfiMdeModulePkgTokenSpaceGuid|0x280000
PcdFlashNvStorageVariableSize|gEfiMdeModulePkgTokenSpaceGuid|0x00c000
[PcdsFeatureFlag.IA32] [PcdsFeatureFlag.IA32]
PcdPeiPcdDatabaseTraverseEnabled|gEfiEdkModulePkgTokenSpaceGuid|TRUE PcdPeiPcdDatabaseTraverseEnabled|gEfiEdkModulePkgTokenSpaceGuid|TRUE
@ -315,21 +329,15 @@
################################################################################ ################################################################################
[PcdsDynamicDefault.common.DEFAULT] [PcdsDynamicDefault.common.DEFAULT]
PcdFlashNvStorageFtwSpareBase|gEfiGenericPlatformTokenSpaceGuid|0x0
PcdFlashNvStorageVariableSize|gEfiGenericPlatformTokenSpaceGuid|0x0
PcdWinNtCpuSpeed|gEfiNt32PkgTokenSpaceGuid|L"3000"|8 PcdWinNtCpuSpeed|gEfiNt32PkgTokenSpaceGuid|L"3000"|8
PcdFlashNvStorageVariableBase|gEfiGenericPlatformTokenSpaceGuid|0x0
PcdWinNtSerialPort|gEfiNt32PkgTokenSpaceGuid|L"COM1!COM2"|18 PcdWinNtSerialPort|gEfiNt32PkgTokenSpaceGuid|L"COM1!COM2"|18
PcdWinNtFileSystem|gEfiNt32PkgTokenSpaceGuid|L".!..\\..\\..\\..\\EdkShellBinPkg\\bin\\ia32\\Apps"|106 PcdWinNtFileSystem|gEfiNt32PkgTokenSpaceGuid|L".!..\\..\\..\\..\\EdkShellBinPkg\\bin\\ia32\\Apps"|106
PcdFlashNvStorageFtwWorkingSize|gEfiGenericPlatformTokenSpaceGuid|0x0
PcdWinNtGop|gEfiNt32PkgTokenSpaceGuid|L"UGA Window 1!UGA Window 2"|50 PcdWinNtGop|gEfiNt32PkgTokenSpaceGuid|L"UGA Window 1!UGA Window 2"|50
PcdWinNtConsole|gEfiNt32PkgTokenSpaceGuid|L"Bus Driver Console Window"|50 PcdWinNtConsole|gEfiNt32PkgTokenSpaceGuid|L"Bus Driver Console Window"|50
PcdFlashNvStorageFtwWorkingBase|gEfiGenericPlatformTokenSpaceGuid|0x0
PcdWinNtMemorySize|gEfiNt32PkgTokenSpaceGuid|L"64!64"|10 PcdWinNtMemorySize|gEfiNt32PkgTokenSpaceGuid|L"64!64"|10
PcdWinNtVirtualDisk|gEfiNt32PkgTokenSpaceGuid|L"FW;40960;512"|24 PcdWinNtVirtualDisk|gEfiNt32PkgTokenSpaceGuid|L"FW;40960;512"|24
PcdWinNtCpuModel|gEfiNt32PkgTokenSpaceGuid|L"Intel(R) Processor Model"|48 PcdWinNtCpuModel|gEfiNt32PkgTokenSpaceGuid|L"Intel(R) Processor Model"|48
PcdWinNtPhysicalDisk|gEfiNt32PkgTokenSpaceGuid|L"E:RW;245760;512"|30 PcdWinNtPhysicalDisk|gEfiNt32PkgTokenSpaceGuid|L"E:RW;245760;512"|30
PcdFlashNvStorageFtwSpareSize|gEfiGenericPlatformTokenSpaceGuid|0x0
PcdWinNtUga|gEfiNt32PkgTokenSpaceGuid|L"UGA Window 1!UGA Window 2"|50 PcdWinNtUga|gEfiNt32PkgTokenSpaceGuid|L"UGA Window 1!UGA Window 2"|50
################################################################################ ################################################################################
@ -365,11 +373,11 @@
$(WORKSPACE)/MdeModulePkg/Universal/Capsule/RuntimeDxe/CapsuleRuntime.inf $(WORKSPACE)/MdeModulePkg/Universal/Capsule/RuntimeDxe/CapsuleRuntime.inf
$(WORKSPACE)/MdeModulePkg/Universal/Ebc/Dxe/Ebc.inf $(WORKSPACE)/MdeModulePkg/Universal/Ebc/Dxe/Ebc.inf
$(WORKSPACE)/MdeModulePkg/Universal/GenericMemoryTest/Dxe/NullMemoryTest.inf $(WORKSPACE)/MdeModulePkg/Universal/GenericMemoryTest/Dxe/NullMemoryTest.inf
$(WORKSPACE)/MdeModulePkg/Universal/RuntimeDxe/Runtime.inf
$(WORKSPACE)/MdeModulePkg/Universal/FirmwareVolume/FaultTolerantWriteLite/Dxe/FtwLite.inf $(WORKSPACE)/MdeModulePkg/Universal/FirmwareVolume/FaultTolerantWriteLite/Dxe/FtwLite.inf
$(WORKSPACE)/MdeModulePkg/Universal/BaseMemoryTestPei/BaseMemoryTest.inf $(WORKSPACE)/MdeModulePkg/Universal/BaseMemoryTestPei/BaseMemoryTest.inf
$(WORKSPACE)/MdeModulePkg/Universal/FirmwareVolume/GuidedSectionExtraction/Crc32SectionExtract/Dxe/Crc32SectionExtract.inf $(WORKSPACE)/MdeModulePkg/Universal/FirmwareVolume/GuidedSectionExtraction/Crc32SectionExtract/Dxe/Crc32SectionExtract.inf
$(WORKSPACE)/MdeModulePkg/Universal/VariableRuntimeDxe/Variable.inf $(WORKSPACE)/MdeModulePkg/Universal/VariableRuntimeDxe/Variable.inf
$(WORKSPACE)/MdeModulePkg/Universal/RuntimeDxe/Runtime.inf
$(WORKSPACE)/MdeModulePkg/Bus/Pci/AtapiPassThruDxe/AtapiPassThru.inf $(WORKSPACE)/MdeModulePkg/Bus/Pci/AtapiPassThruDxe/AtapiPassThru.inf
$(WORKSPACE)/MdeModulePkg/Universal/WatchDogTimerDxe/WatchDogTimer.inf $(WORKSPACE)/MdeModulePkg/Universal/WatchDogTimerDxe/WatchDogTimer.inf
$(WORKSPACE)/MdeModulePkg/Universal/VariablePei/Variable.inf $(WORKSPACE)/MdeModulePkg/Universal/VariablePei/Variable.inf

View File

@ -137,11 +137,11 @@ INF $(WORKSPACE)/MdeModulePkg/Universal/SecurityStubDxe/SecurityStub.inf
INF $(WORKSPACE)/MdeModulePkg/Universal/Capsule/RuntimeDxe/CapsuleRuntime.inf INF $(WORKSPACE)/MdeModulePkg/Universal/Capsule/RuntimeDxe/CapsuleRuntime.inf
INF $(WORKSPACE)/MdeModulePkg/Universal/Ebc/Dxe/Ebc.inf INF $(WORKSPACE)/MdeModulePkg/Universal/Ebc/Dxe/Ebc.inf
INF $(WORKSPACE)/MdeModulePkg/Universal/GenericMemoryTest/Dxe/NullMemoryTest.inf INF $(WORKSPACE)/MdeModulePkg/Universal/GenericMemoryTest/Dxe/NullMemoryTest.inf
INF $(WORKSPACE)/MdeModulePkg/Universal/RuntimeDxe/Runtime.inf
INF $(WORKSPACE)/MdeModulePkg/Universal/FirmwareVolume/FaultTolerantWriteLite/Dxe/FtwLite.inf INF $(WORKSPACE)/MdeModulePkg/Universal/FirmwareVolume/FaultTolerantWriteLite/Dxe/FtwLite.inf
INF $(WORKSPACE)/MdeModulePkg/Universal/BaseMemoryTestPei/BaseMemoryTest.inf INF $(WORKSPACE)/MdeModulePkg/Universal/BaseMemoryTestPei/BaseMemoryTest.inf
INF $(WORKSPACE)/MdeModulePkg/Universal/FirmwareVolume/GuidedSectionExtraction/Crc32SectionExtract/Dxe/Crc32SectionExtract.inf INF $(WORKSPACE)/MdeModulePkg/Universal/FirmwareVolume/GuidedSectionExtraction/Crc32SectionExtract/Dxe/Crc32SectionExtract.inf
INF $(WORKSPACE)/MdeModulePkg/Universal/VariableRuntimeDxe/Variable.inf INF $(WORKSPACE)/MdeModulePkg/Universal/VariableRuntimeDxe/Variable.inf
INF $(WORKSPACE)/MdeModulePkg/Universal/RuntimeDxe/Runtime.inf
INF $(WORKSPACE)/MdeModulePkg/Bus/Pci/AtapiPassThruDxe/AtapiPassThru.inf INF $(WORKSPACE)/MdeModulePkg/Bus/Pci/AtapiPassThruDxe/AtapiPassThru.inf
INF $(WORKSPACE)/MdeModulePkg/Universal/WatchDogTimerDxe/WatchDogTimer.inf INF $(WORKSPACE)/MdeModulePkg/Universal/WatchDogTimerDxe/WatchDogTimer.inf
INF $(WORKSPACE)/MdeModulePkg/Universal/VariablePei/Variable.inf INF $(WORKSPACE)/MdeModulePkg/Universal/VariablePei/Variable.inf

View File

@ -138,22 +138,44 @@ EFI_DRIVER_BINDING_PROTOCOL gWinNtBusDriverBinding = {
NULL NULL
}; };
#define NT_PCD_ARRAY_SIZE (sizeof(mPcdEnvironment)/sizeof(NT_PCD_ENTRY)) #define NT_PCD_ARRAY_SIZE (sizeof(mPcdEnvironment)/sizeof(NT_ENVIRONMENT_VARIABLE_ENTRY))
//
// BUGBUG: Because currently the new build tools does not support dynamic PCD
// following dynamic PCd will be hard code. After tools ready, we should
// use dynmanic PCD AQAP.
//
// //
// Table to map NT Environment variable to the GUID that should be in // Table to map NT Environment variable to the GUID that should be in
// device path. // device path.
// //
static NT_PCD_ENTRY mPcdEnvironment[] = { //static NT_PCD_ENTRY mPcdEnvironment[] = {
PcdToken(PcdWinNtConsole), &gEfiWinNtConsoleGuid, // PcdToken(PcdWinNtConsole), &gEfiWinNtConsoleGuid,
PcdToken(PcdWinNtGop), &gEfiWinNtGopGuid, // PcdToken(PcdWinNtGop), &gEfiWinNtGopGuid,
PcdToken(PcdWinNtSerialPort), &gEfiWinNtSerialPortGuid, // PcdToken(PcdWinNtSerialPort), &gEfiWinNtSerialPortGuid,
PcdToken(PcdWinNtFileSystem), &gEfiWinNtFileSystemGuid, // PcdToken(PcdWinNtFileSystem), &gEfiWinNtFileSystemGuid,
PcdToken(PcdWinNtVirtualDisk), &gEfiWinNtVirtualDisksGuid, // PcdToken(PcdWinNtVirtualDisk), &gEfiWinNtVirtualDisksGuid,
PcdToken(PcdWinNtPhysicalDisk), &gEfiWinNtPhysicalDisksGuid, // PcdToken(PcdWinNtPhysicalDisk), &gEfiWinNtPhysicalDisksGuid,
PcdToken(PcdWinNtCpuModel), &gEfiWinNtCPUModelGuid, // PcdToken(PcdWinNtCpuModel), &gEfiWinNtCPUModelGuid,
PcdToken(PcdWinNtCpuSpeed), &gEfiWinNtCPUSpeedGuid, // PcdToken(PcdWinNtCpuSpeed), &gEfiWinNtCPUSpeedGuid,
PcdToken(PcdWinNtMemorySize), &gEfiWinNtMemoryGuid // PcdToken(PcdWinNtMemorySize), &gEfiWinNtMemoryGuid
//};
typedef struct {
CHAR16 *Variable;
EFI_GUID *DevicePathGuid;
} NT_ENVIRONMENT_VARIABLE_ENTRY;
static NT_ENVIRONMENT_VARIABLE_ENTRY mPcdEnvironment[] = {
L"Bus Driver Console Window", &gEfiWinNtConsoleGuid,
L"UGA Window 1!UGA Window 2", &gEfiWinNtGopGuid,
L"COM1!COM2", &gEfiWinNtSerialPortGuid,
L".!..\\..\\..\\..\\EdkShellBinPkg\\bin\\ia32\\Apps", &gEfiWinNtFileSystemGuid,
L"FW;40960;512", &gEfiWinNtVirtualDisksGuid,
L"E:RW;245760;512", &gEfiWinNtPhysicalDisksGuid,
L"Intel(R) Processor Model", &gEfiWinNtCPUModelGuid,
L"3000", &gEfiWinNtCPUSpeedGuid,
L"64!64", &gEfiWinNtMemoryGuid
}; };
/** /**
@ -430,7 +452,8 @@ Returns:
// //
InstallStatus = EFI_NOT_FOUND; InstallStatus = EFI_NOT_FOUND;
for (Index = 0; Index < NT_PCD_ARRAY_SIZE; Index++) { for (Index = 0; Index < NT_PCD_ARRAY_SIZE; Index++) {
PcdTempStr = (VOID *)LibPcdGetPtr (mPcdEnvironment[Index].Token); //PcdTempStr = (VOID *)LibPcdGetPtr (mPcdEnvironment[Index].Token);
PcdTempStr = mPcdEnvironment[Index].Variable;
ASSERT (PcdTempStr != NULL); ASSERT (PcdTempStr != NULL);
TempStrSize = StrLen (PcdTempStr); TempStrSize = StrLen (PcdTempStr);

View File

@ -126,10 +126,10 @@
################################################################################ ################################################################################
[PcdsDynamic.common] [PcdsDynamic.common]
PcdFlashNvStorageFtwWorkingSize|gEfiGenericPlatformTokenSpaceGuid PcdFlashNvStorageFtwWorkingSize|gEfiMdeModulePkgTokenSpaceGuid
PcdFlashNvStorageFtwWorkingBase|gEfiGenericPlatformTokenSpaceGuid PcdFlashNvStorageFtwWorkingBase|gEfiMdeModulePkgTokenSpaceGuid
PcdFlashNvStorageFtwSpareSize|gEfiGenericPlatformTokenSpaceGuid PcdFlashNvStorageFtwSpareSize|gEfiMdeModulePkgTokenSpaceGuid
PcdFlashNvStorageFtwSpareBase|gEfiGenericPlatformTokenSpaceGuid PcdFlashNvStorageFtwSpareBase|gEfiMdeModulePkgTokenSpaceGuid
PcdFlashNvStorageVariableSize|gEfiGenericPlatformTokenSpaceGuid PcdFlashNvStorageVariableSize|gEfiMdeModulePkgTokenSpaceGuid
PcdFlashNvStorageVariableBase|gEfiGenericPlatformTokenSpaceGuid PcdFlashNvStorageVariableBase|gEfiMdeModulePkgTokenSpaceGuid