From cba9012a92bf97754d09acafb572fb9990f1b636 Mon Sep 17 00:00:00 2001 From: klu2 Date: Tue, 10 Jul 2007 08:57:25 +0000 Subject: [PATCH 1/1] Enable dynamic PCD for windowBusDriver git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3167 6f19259b-4bc3-4df7-8a09-765794883524 --- .../Library/PcdDriverPcdLibNull/PcdLib.c | 3 ++ MdeModulePkg/Universal/PCD/Dxe/Pcd.inf | 3 +- Nt32Pkg/Nt32Pkg.dsc | 29 +++++------- Nt32Pkg/WinNtBusDriverDxe/WinNtBusDriver.c | 47 +++++-------------- 4 files changed, 28 insertions(+), 54 deletions(-) diff --git a/MdeModulePkg/Library/PcdDriverPcdLibNull/PcdLib.c b/MdeModulePkg/Library/PcdDriverPcdLibNull/PcdLib.c index f3e8b513b4..b7d4408123 100644 --- a/MdeModulePkg/Library/PcdDriverPcdLibNull/PcdLib.c +++ b/MdeModulePkg/Library/PcdDriverPcdLibNull/PcdLib.c @@ -14,6 +14,9 @@ **/ #include +#include +#include +#include /** diff --git a/MdeModulePkg/Universal/PCD/Dxe/Pcd.inf b/MdeModulePkg/Universal/PCD/Dxe/Pcd.inf index f5502e5028..db828ac8d7 100644 --- a/MdeModulePkg/Universal/PCD/Dxe/Pcd.inf +++ b/MdeModulePkg/Universal/PCD/Dxe/Pcd.inf @@ -75,12 +75,11 @@ UefiBootServicesTableLib MemoryAllocationLib HobLib - PcdLib UefiDriverEntryPoint UefiLib DebugLib BaseLib - + PcdLib ################################################################################ # diff --git a/Nt32Pkg/Nt32Pkg.dsc b/Nt32Pkg/Nt32Pkg.dsc index 5443406cb8..53390ab5bf 100644 --- a/Nt32Pkg/Nt32Pkg.dsc +++ b/Nt32Pkg/Nt32Pkg.dsc @@ -106,22 +106,19 @@ UefiBootServicesTableLib|$(WORKSPACE)/MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf HobLib|$(WORKSPACE)/MdePkg/Library/DxeHobLib/DxeHobLib.inf DevicePathLib|$(WORKSPACE)/MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf - # After tools enable the dynamic PCD, please uncomment follows library instances mapping. - #PcdLib|$(WORKSPACE)/MdePkg/Library/DxePcdLib/DxePcdLib.inf + PcdLib|$(WORKSPACE)/MdePkg/Library/DxePcdLib/DxePcdLib.inf MemoryAllocationLib|$(WORKSPACE)/MdePkg/Library/DxeMemoryAllocationLib/DxeMemoryAllocationLib.inf UefiLib|$(WORKSPACE)/MdePkg/Library/UefiLib/UefiLib.inf ReportStatusCodeLib|$(WORKSPACE)/IntelFrameworkPkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf UefiRuntimeServicesTableLib|$(WORKSPACE)/MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf WinNtLib|$(WORKSPACE)/Nt32Pkg/Library/DxeWinNtLib/DxeWinNtLib.inf OemHookStatusCodeLib|$(WORKSPACE)/Nt32Pkg/Library/DxeNt32OemHookStatusCodeLib/DxeNt32OemHookStatusCodeLib.inf - # After tools enable the dynamic PCD, please uncomment follows library instances mapping. - #PcdLib|$(WORKSPACE)/MdePkg/Library/DxePcdLib/DxePcdLib.inf + PcdLib|$(WORKSPACE)/MdePkg/Library/DxePcdLib/DxePcdLib.inf DebugLib|$(WORKSPACE)/MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf [LibraryClasses.common.PEIM] HobLib|$(WORKSPACE)/MdePkg/Library/PeiHobLib/PeiHobLib.inf - # After tools enable the dynamic PCD, please uncomment follows library instances mapping. - #PcdLib|$(WORKSPACE)/MdePkg/Library/PeiPcdLib/PeiPcdLib.inf + PcdLib|$(WORKSPACE)/MdePkg/Library/PeiPcdLib/PeiPcdLib.inf IoLib|$(WORKSPACE)/MdePkg/Library/PeiIoLibCpuIo/PeiIoLibCpuIo.inf PeimEntryPoint|$(WORKSPACE)/MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf PeiServicesLib|$(WORKSPACE)/MdePkg/Library/PeiServicesLib/PeiServicesLib.inf @@ -143,15 +140,13 @@ OldPeiCoreEntryPoint|$(WORKSPACE)/MdePkg/Library/OldPeiCoreEntryPoint/OldPeiCoreEntryPoint.inf ReportStatusCodeLib|$(WORKSPACE)/IntelFrameworkPkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf PeCoffGetEntryPointLib|$(WORKSPACE)/Nt32Pkg/Library/Nt32PeiPeCoffGetEntryPointLib/Nt32PeiPeCoffGetEntryPointLib.inf - # After tools enable the dynamic PCD, please uncomment follows library instances mapping. - #PcdLib|$(WORKSPACE)/MdePkg/Library/PeiPcdLib/PeiPcdLib.inf + PcdLib|$(WORKSPACE)/MdePkg/Library/PeiPcdLib/PeiPcdLib.inf DebugLib|$(WORKSPACE)/IntelFrameworkPkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf [LibraryClasses.common.DXE_RUNTIME_DRIVER] UefiRuntimeServicesTableLib|$(WORKSPACE)/MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf HobLib|$(WORKSPACE)/MdePkg/Library/DxeHobLib/DxeHobLib.inf - # After tools enable the dynamic PCD, please uncomment follows library instances mapping. - #PcdLib|$(WORKSPACE)/MdePkg/Library/DxePcdLib/DxePcdLib.inf + PcdLib|$(WORKSPACE)/MdePkg/Library/DxePcdLib/DxePcdLib.inf MemoryAllocationLib|$(WORKSPACE)/MdePkg/Library/DxeMemoryAllocationLib/DxeMemoryAllocationLib.inf UefiLib|$(WORKSPACE)/MdePkg/Library/UefiLib/UefiLib.inf UefiDriverEntryPoint|$(WORKSPACE)/MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf @@ -171,8 +166,7 @@ [LibraryClasses.common.UEFI_DRIVER] UefiRuntimeServicesTableLib|$(WORKSPACE)/MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf HobLib|$(WORKSPACE)/MdePkg/Library/DxeHobLib/DxeHobLib.inf - # After tools enable the dynamic PCD, please uncomment follows library instances mapping. - #PcdLib|$(WORKSPACE)/MdePkg/Library/DxePcdLib/DxePcdLib.inf + PcdLib|$(WORKSPACE)/MdePkg/Library/DxePcdLib/DxePcdLib.inf MemoryAllocationLib|$(WORKSPACE)/MdePkg/Library/DxeMemoryAllocationLib/DxeMemoryAllocationLib.inf UefiLib|$(WORKSPACE)/MdePkg/Library/UefiLib/UefiLib.inf UefiDriverEntryPoint|$(WORKSPACE)/MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf @@ -191,8 +185,7 @@ [LibraryClasses.common.DXE_DRIVER] UefiRuntimeServicesTableLib|$(WORKSPACE)/MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf HobLib|$(WORKSPACE)/MdePkg/Library/DxeHobLib/DxeHobLib.inf - # After tools enable the dynamic PCD, please uncomment follows library instances mapping. - #PcdLib|$(WORKSPACE)/MdePkg/Library/DxePcdLib/DxePcdLib.inf + PcdLib|$(WORKSPACE)/MdePkg/Library/DxePcdLib/DxePcdLib.inf MemoryAllocationLib|$(WORKSPACE)/MdePkg/Library/DxeMemoryAllocationLib/DxeMemoryAllocationLib.inf UefiLib|$(WORKSPACE)/MdePkg/Library/UefiLib/UefiLib.inf UefiDriverEntryPoint|$(WORKSPACE)/MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf @@ -219,8 +212,7 @@ HobLib|$(WORKSPACE)/MdePkg/Library/DxeHobLib/DxeHobLib.inf DevicePathLib|$(WORKSPACE)/MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf EdkIfrSupportLib|$(WORKSPACE)/MdeModulePkg/Library/EdkIfrSupportLib/EdkIfrSupportLib.inf - # After tools enable the dynamic PCD, please uncomment follows library instances mapping. - #PcdLib|$(WORKSPACE)/MdePkg/Library/DxePcdLib/DxePcdLib.inf + PcdLib|$(WORKSPACE)/MdePkg/Library/DxePcdLib/DxePcdLib.inf MemoryAllocationLib|$(WORKSPACE)/MdePkg/Library/DxeMemoryAllocationLib/DxeMemoryAllocationLib.inf UefiLib|$(WORKSPACE)/MdePkg/Library/UefiLib/UefiLib.inf ReportStatusCodeLib|$(WORKSPACE)/IntelFrameworkPkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf @@ -376,7 +368,10 @@ # DXE Phase modules ## $(WORKSPACE)/MdeModulePkg/Core/Dxe/DxeMain.inf - $(WORKSPACE)/MdeModulePkg/Universal/PCD/Dxe/Pcd.inf + $(WORKSPACE)/MdeModulePkg/Universal/PCD/Dxe/Pcd.inf { + + PcdLib|$(WORKSPACE)/MdeModulePkg/Library/PcdDriverPcdLibNull/PcdLib.inf + } $(WORKSPACE)/Nt32Pkg/MetronomeDxe/Metronome.inf $(WORKSPACE)/Nt32Pkg/RealTimeClockRuntimeDxe/RealTimeClock.inf $(WORKSPACE)/Nt32Pkg/ResetRuntimeDxe/Reset.inf diff --git a/Nt32Pkg/WinNtBusDriverDxe/WinNtBusDriver.c b/Nt32Pkg/WinNtBusDriverDxe/WinNtBusDriver.c index a0baa751e6..999fb0cc5d 100644 --- a/Nt32Pkg/WinNtBusDriverDxe/WinNtBusDriver.c +++ b/Nt32Pkg/WinNtBusDriverDxe/WinNtBusDriver.c @@ -138,44 +138,22 @@ EFI_DRIVER_BINDING_PROTOCOL gWinNtBusDriverBinding = { NULL }; -#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. -// +#define NT_PCD_ARRAY_SIZE (sizeof(mPcdEnvironment)/sizeof(NT_PCD_ENTRY)) // // Table to map NT Environment variable to the GUID that should be in // device path. // -//static NT_PCD_ENTRY mPcdEnvironment[] = { -// PcdToken(PcdWinNtConsole), &gEfiWinNtConsoleGuid, -// PcdToken(PcdWinNtGop), &gEfiWinNtGopGuid, -// PcdToken(PcdWinNtSerialPort), &gEfiWinNtSerialPortGuid, -// PcdToken(PcdWinNtFileSystem), &gEfiWinNtFileSystemGuid, -// PcdToken(PcdWinNtVirtualDisk), &gEfiWinNtVirtualDisksGuid, -// PcdToken(PcdWinNtPhysicalDisk), &gEfiWinNtPhysicalDisksGuid, -// PcdToken(PcdWinNtCpuModel), &gEfiWinNtCPUModelGuid, -// PcdToken(PcdWinNtCpuSpeed), &gEfiWinNtCPUSpeedGuid, -// 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 +static NT_PCD_ENTRY mPcdEnvironment[] = { + PcdToken(PcdWinNtConsole), &gEfiWinNtConsoleGuid, + PcdToken(PcdWinNtGop), &gEfiWinNtGopGuid, + PcdToken(PcdWinNtSerialPort), &gEfiWinNtSerialPortGuid, + PcdToken(PcdWinNtFileSystem), &gEfiWinNtFileSystemGuid, + PcdToken(PcdWinNtVirtualDisk), &gEfiWinNtVirtualDisksGuid, + PcdToken(PcdWinNtPhysicalDisk), &gEfiWinNtPhysicalDisksGuid, + PcdToken(PcdWinNtCpuModel), &gEfiWinNtCPUModelGuid, + PcdToken(PcdWinNtCpuSpeed), &gEfiWinNtCPUSpeedGuid, + PcdToken(PcdWinNtMemorySize), &gEfiWinNtMemoryGuid }; /** @@ -452,8 +430,7 @@ Returns: // InstallStatus = EFI_NOT_FOUND; for (Index = 0; Index < NT_PCD_ARRAY_SIZE; Index++) { - //PcdTempStr = (VOID *)LibPcdGetPtr (mPcdEnvironment[Index].Token); - PcdTempStr = mPcdEnvironment[Index].Variable; + PcdTempStr = (VOID *)LibPcdGetPtr (mPcdEnvironment[Index].Token); ASSERT (PcdTempStr != NULL); TempStrSize = StrLen (PcdTempStr); -- 2.39.2