From: klu2 Date: Thu, 28 Jun 2007 02:39:52 +0000 (+0000) Subject: Change Peim postfix to Pei for WinNtAutoScanPeim driver. X-Git-Tag: edk2-stable201903~23131 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=36c5c3aea494588c5cb97d42067e1afda08d07fc;ds=sidebyside Change Peim postfix to Pei for WinNtAutoScanPeim driver. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2824 6f19259b-4bc3-4df7-8a09-765794883524 --- diff --git a/Nt32Pkg/WinNtAutoScanPei/WinNtAutoScan.c b/Nt32Pkg/WinNtAutoScanPei/WinNtAutoScan.c new file mode 100644 index 0000000000..99b12b2f17 --- /dev/null +++ b/Nt32Pkg/WinNtAutoScanPei/WinNtAutoScan.c @@ -0,0 +1,149 @@ +/*++ + +Copyright (c) 2006, Intel Corporation +All rights reserved. This program and the accompanying materials +are licensed and made available under the terms and conditions of the BSD License +which accompanies this distribution. The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +Module Name: + WinNtAutoscan.c + +Abstract: + This PEIM to abstract memory auto-scan in a Windows NT environment. + +Revision History + +--*/ + +// +// The package level header files this module uses +// +#include +#include +// +// The protocols, PPI and GUID defintions for this module +// +#include +#include +// +// The Library classes this module consumes +// +#include +#include +#include + +EFI_STATUS +EFIAPI +PeimInitializeWinNtAutoScan ( + IN EFI_FFS_FILE_HEADER *FfsHeader, + IN EFI_PEI_SERVICES **PeiServices + ) +/*++ + +Routine Description: + Perform a call-back into the SEC simulator to get a memory value + +Arguments: + FfsHeader - General purpose data available to every PEIM + PeiServices - General purpose services available to every PEIM. + +Returns: + None + +--*/ +{ + EFI_STATUS Status; + EFI_PEI_PPI_DESCRIPTOR *PpiDescriptor; + PEI_NT_AUTOSCAN_PPI *PeiNtService; + UINT64 MemorySize; + EFI_PHYSICAL_ADDRESS MemoryBase; + PEI_BASE_MEMORY_TEST_PPI *MemoryTestPpi; + EFI_PHYSICAL_ADDRESS ErrorAddress; + UINTN Index; + EFI_RESOURCE_ATTRIBUTE_TYPE Attributes; + + + DEBUG ((EFI_D_ERROR, "NT 32 Autoscan PEIM Loaded\n")); + + // + // Get the PEI NT Autoscan PPI + // + Status = (**PeiServices).LocatePpi ( + PeiServices, + &gPeiNtAutoScanPpiGuid, // GUID + 0, // INSTANCE + &PpiDescriptor, // EFI_PEI_PPI_DESCRIPTOR + &PeiNtService // PPI + ); + ASSERT_EFI_ERROR (Status); + + // + // Get the Memory Test PPI + // + Status = (**PeiServices).LocatePpi ( + PeiServices, + &gPeiBaseMemoryTestPpiGuid, + 0, + NULL, + &MemoryTestPpi + ); + ASSERT_EFI_ERROR (Status); + + Index = 0; + do { + Status = PeiNtService->NtAutoScan (Index, &MemoryBase, &MemorySize); + if (!EFI_ERROR (Status)) { + Attributes = + ( + EFI_RESOURCE_ATTRIBUTE_PRESENT | + EFI_RESOURCE_ATTRIBUTE_INITIALIZED | + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE | + EFI_RESOURCE_ATTRIBUTE_WRITE_COMBINEABLE | + EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE | + EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE + ); + + if (Index == 0) { + // + // For the first area register it as PEI tested memory + // + Status = MemoryTestPpi->BaseMemoryTest ( + PeiServices, + MemoryTestPpi, + MemoryBase, + MemorySize, + Quick, + &ErrorAddress + ); + ASSERT_EFI_ERROR (Status); + + // + // Register the "tested" memory with the PEI Core + // + Status = (**PeiServices).InstallPeiMemory (PeiServices, MemoryBase, MemorySize); + ASSERT_EFI_ERROR (Status); + + Attributes |= EFI_RESOURCE_ATTRIBUTE_TESTED; + } + + BuildResourceDescriptorHob ( + EFI_RESOURCE_SYSTEM_MEMORY, + Attributes, + MemoryBase, + MemorySize + ); + } + Index++; + } while (!EFI_ERROR (Status)); + + // + // Build the CPU hob with 36-bit addressing and 16-bits of IO space. + // + BuildCpuHob (36, 16); + + return Status; +} diff --git a/Nt32Pkg/WinNtAutoScanPei/WinNtAutoScan.dxs b/Nt32Pkg/WinNtAutoScanPei/WinNtAutoScan.dxs new file mode 100644 index 0000000000..ac2c065c5f --- /dev/null +++ b/Nt32Pkg/WinNtAutoScanPei/WinNtAutoScan.dxs @@ -0,0 +1,33 @@ +/*++ + +Copyright (c) 2006, Intel Corporation +All rights reserved. This program and the accompanying materials +are licensed and made available under the terms and conditions of the BSD License +which accompanies this distribution. The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +Module Name: + + WinNtAutoscan.dxs + +Abstract: + + Dependency expression file for WinNtAutoscan. + +--*/ + +// +// Include common header file for this module. +// +#include "CommonHeader.h" + +#include + +DEPENDENCY_START + PEI_NT_AUTOSCAN_PPI_GUID AND EFI_PEI_MASTER_BOOT_MODE_PEIM_PPI AND PEI_BASE_MEMORY_TEST_GUID +DEPENDENCY_END + + diff --git a/Nt32Pkg/WinNtAutoScanPei/WinNtAutoScan.inf b/Nt32Pkg/WinNtAutoScanPei/WinNtAutoScan.inf new file mode 100644 index 0000000000..3b305081a6 --- /dev/null +++ b/Nt32Pkg/WinNtAutoScanPei/WinNtAutoScan.inf @@ -0,0 +1,95 @@ +#/** @file +# Component description file for WinNtAutoScan module +# +# This module abstracts memory auto-scan in a Windows NT environment. +# Copyright (c) 2006 - 2007, Intel Corporation +# +# All rights reserved. This program and the accompanying materials +# are licensed and made available under the terms and conditions of the BSD License +# which accompanies this distribution. The full text of the license may be found at +# http://opensource.org/licenses/bsd-license.php +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# +# +#**/ + +################################################################################ +# +# Defines Section - statements that will be processed to create a Makefile. +# +################################################################################ +[Defines] + INF_VERSION = 0x00010005 + BASE_NAME = WinNtAutoScan + FILE_GUID = BE0FEABA-3443-4919-9F3A-2D4216329EA9 + MODULE_TYPE = PEIM + VERSION_STRING = 1.0 + EDK_RELEASE_VERSION = 0x00020000 + EFI_SPECIFICATION_VERSION = 0x00020000 + + ENTRY_POINT = PeimInitializeWinNtAutoScan + +# +# The following information is for reference only and not required by the build tools. +# +# VALID_ARCHITECTURES = IA32 +# + +################################################################################ +# +# Sources Section - list of files that are required for the build to succeed. +# +################################################################################ + +[Sources.common] + WinNtAutoscan.dxs + WinntAutoscan.c + +################################################################################ +# +# Includes Section - list of Include locations that are required for +# this module. +# +################################################################################ + +[Includes] + $(WORKSPACE)/MdePkg/Include/Library + +################################################################################ +# +# Package Dependency Section - list of Package files that are required for +# this module. +# +################################################################################ + +[Packages] + Nt32Pkg/Nt32Pkg.dec + MdeModulePkg/MdeModulePkg.dec + MdePkg/MdePkg.dec + + +################################################################################ +# +# Library Class Section - list of Library Classes that are required for +# this module. +# +################################################################################ + +[LibraryClasses] + HobLib + PeimEntryPoint + DebugLib + + +################################################################################ +# +# PPI C Name Section - list of PPI and PPI Notify C Names that this module +# uses or produces. +# +################################################################################ + +[Ppis] + gPeiBaseMemoryTestPpiGuid # PPI ALWAYS_CONSUMED + gPeiNtAutoScanPpiGuid # PPI ALWAYS_CONSUMED + diff --git a/Nt32Pkg/WinNtAutoScanPei/WinNtAutoScan.msa b/Nt32Pkg/WinNtAutoScanPei/WinNtAutoScan.msa new file mode 100644 index 0000000000..8a0beea1ca --- /dev/null +++ b/Nt32Pkg/WinNtAutoScanPei/WinNtAutoScan.msa @@ -0,0 +1,59 @@ + + + + WinNtAutoScan + PEIM + BE0FEABA-3443-4919-9F3A-2D4216329EA9 + 1.0 + Component description file for WinNtAutoScan module + This module abstracts memory auto-scan in a Windows NT environment. + Copyright (c) 2006 - 2007, Intel Corporation + All rights reserved. This program and the accompanying materials + are licensed and made available under the terms and conditions of the BSD License + which accompanies this distribution. The full text of the license may be found at + http://opensource.org/licenses/bsd-license.php + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052 + + + IA32 + false + WinNtAutoScan + + + + DebugLib + + + PeimEntryPoint + + + HobLib + + + + WinntAutoscan.c + WinNtAutoscan.dxs + + + + + + + + + gPeiNtAutoScanPpiGuid + + + gPeiBaseMemoryTestPpiGuid + + + + EFI_SPECIFICATION_VERSION 0x00020000 + EDK_RELEASE_VERSION 0x00020000 + + PeimInitializeWinNtAutoScan + + + \ No newline at end of file diff --git a/Nt32Pkg/WinNtAutoScanPeim/WinNtAutoScan.c b/Nt32Pkg/WinNtAutoScanPeim/WinNtAutoScan.c deleted file mode 100644 index 99b12b2f17..0000000000 --- a/Nt32Pkg/WinNtAutoScanPeim/WinNtAutoScan.c +++ /dev/null @@ -1,149 +0,0 @@ -/*++ - -Copyright (c) 2006, Intel Corporation -All rights reserved. This program and the accompanying materials -are licensed and made available under the terms and conditions of the BSD License -which accompanies this distribution. The full text of the license may be found at -http://opensource.org/licenses/bsd-license.php - -THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - -Module Name: - WinNtAutoscan.c - -Abstract: - This PEIM to abstract memory auto-scan in a Windows NT environment. - -Revision History - ---*/ - -// -// The package level header files this module uses -// -#include -#include -// -// The protocols, PPI and GUID defintions for this module -// -#include -#include -// -// The Library classes this module consumes -// -#include -#include -#include - -EFI_STATUS -EFIAPI -PeimInitializeWinNtAutoScan ( - IN EFI_FFS_FILE_HEADER *FfsHeader, - IN EFI_PEI_SERVICES **PeiServices - ) -/*++ - -Routine Description: - Perform a call-back into the SEC simulator to get a memory value - -Arguments: - FfsHeader - General purpose data available to every PEIM - PeiServices - General purpose services available to every PEIM. - -Returns: - None - ---*/ -{ - EFI_STATUS Status; - EFI_PEI_PPI_DESCRIPTOR *PpiDescriptor; - PEI_NT_AUTOSCAN_PPI *PeiNtService; - UINT64 MemorySize; - EFI_PHYSICAL_ADDRESS MemoryBase; - PEI_BASE_MEMORY_TEST_PPI *MemoryTestPpi; - EFI_PHYSICAL_ADDRESS ErrorAddress; - UINTN Index; - EFI_RESOURCE_ATTRIBUTE_TYPE Attributes; - - - DEBUG ((EFI_D_ERROR, "NT 32 Autoscan PEIM Loaded\n")); - - // - // Get the PEI NT Autoscan PPI - // - Status = (**PeiServices).LocatePpi ( - PeiServices, - &gPeiNtAutoScanPpiGuid, // GUID - 0, // INSTANCE - &PpiDescriptor, // EFI_PEI_PPI_DESCRIPTOR - &PeiNtService // PPI - ); - ASSERT_EFI_ERROR (Status); - - // - // Get the Memory Test PPI - // - Status = (**PeiServices).LocatePpi ( - PeiServices, - &gPeiBaseMemoryTestPpiGuid, - 0, - NULL, - &MemoryTestPpi - ); - ASSERT_EFI_ERROR (Status); - - Index = 0; - do { - Status = PeiNtService->NtAutoScan (Index, &MemoryBase, &MemorySize); - if (!EFI_ERROR (Status)) { - Attributes = - ( - EFI_RESOURCE_ATTRIBUTE_PRESENT | - EFI_RESOURCE_ATTRIBUTE_INITIALIZED | - EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE | - EFI_RESOURCE_ATTRIBUTE_WRITE_COMBINEABLE | - EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE | - EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE - ); - - if (Index == 0) { - // - // For the first area register it as PEI tested memory - // - Status = MemoryTestPpi->BaseMemoryTest ( - PeiServices, - MemoryTestPpi, - MemoryBase, - MemorySize, - Quick, - &ErrorAddress - ); - ASSERT_EFI_ERROR (Status); - - // - // Register the "tested" memory with the PEI Core - // - Status = (**PeiServices).InstallPeiMemory (PeiServices, MemoryBase, MemorySize); - ASSERT_EFI_ERROR (Status); - - Attributes |= EFI_RESOURCE_ATTRIBUTE_TESTED; - } - - BuildResourceDescriptorHob ( - EFI_RESOURCE_SYSTEM_MEMORY, - Attributes, - MemoryBase, - MemorySize - ); - } - Index++; - } while (!EFI_ERROR (Status)); - - // - // Build the CPU hob with 36-bit addressing and 16-bits of IO space. - // - BuildCpuHob (36, 16); - - return Status; -} diff --git a/Nt32Pkg/WinNtAutoScanPeim/WinNtAutoScan.dxs b/Nt32Pkg/WinNtAutoScanPeim/WinNtAutoScan.dxs deleted file mode 100644 index ac2c065c5f..0000000000 --- a/Nt32Pkg/WinNtAutoScanPeim/WinNtAutoScan.dxs +++ /dev/null @@ -1,33 +0,0 @@ -/*++ - -Copyright (c) 2006, Intel Corporation -All rights reserved. This program and the accompanying materials -are licensed and made available under the terms and conditions of the BSD License -which accompanies this distribution. The full text of the license may be found at -http://opensource.org/licenses/bsd-license.php - -THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - -Module Name: - - WinNtAutoscan.dxs - -Abstract: - - Dependency expression file for WinNtAutoscan. - ---*/ - -// -// Include common header file for this module. -// -#include "CommonHeader.h" - -#include - -DEPENDENCY_START - PEI_NT_AUTOSCAN_PPI_GUID AND EFI_PEI_MASTER_BOOT_MODE_PEIM_PPI AND PEI_BASE_MEMORY_TEST_GUID -DEPENDENCY_END - - diff --git a/Nt32Pkg/WinNtAutoScanPeim/WinNtAutoScan.inf b/Nt32Pkg/WinNtAutoScanPeim/WinNtAutoScan.inf deleted file mode 100644 index 3b305081a6..0000000000 --- a/Nt32Pkg/WinNtAutoScanPeim/WinNtAutoScan.inf +++ /dev/null @@ -1,95 +0,0 @@ -#/** @file -# Component description file for WinNtAutoScan module -# -# This module abstracts memory auto-scan in a Windows NT environment. -# Copyright (c) 2006 - 2007, Intel Corporation -# -# All rights reserved. This program and the accompanying materials -# are licensed and made available under the terms and conditions of the BSD License -# which accompanies this distribution. The full text of the license may be found at -# http://opensource.org/licenses/bsd-license.php -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -# -# -#**/ - -################################################################################ -# -# Defines Section - statements that will be processed to create a Makefile. -# -################################################################################ -[Defines] - INF_VERSION = 0x00010005 - BASE_NAME = WinNtAutoScan - FILE_GUID = BE0FEABA-3443-4919-9F3A-2D4216329EA9 - MODULE_TYPE = PEIM - VERSION_STRING = 1.0 - EDK_RELEASE_VERSION = 0x00020000 - EFI_SPECIFICATION_VERSION = 0x00020000 - - ENTRY_POINT = PeimInitializeWinNtAutoScan - -# -# The following information is for reference only and not required by the build tools. -# -# VALID_ARCHITECTURES = IA32 -# - -################################################################################ -# -# Sources Section - list of files that are required for the build to succeed. -# -################################################################################ - -[Sources.common] - WinNtAutoscan.dxs - WinntAutoscan.c - -################################################################################ -# -# Includes Section - list of Include locations that are required for -# this module. -# -################################################################################ - -[Includes] - $(WORKSPACE)/MdePkg/Include/Library - -################################################################################ -# -# Package Dependency Section - list of Package files that are required for -# this module. -# -################################################################################ - -[Packages] - Nt32Pkg/Nt32Pkg.dec - MdeModulePkg/MdeModulePkg.dec - MdePkg/MdePkg.dec - - -################################################################################ -# -# Library Class Section - list of Library Classes that are required for -# this module. -# -################################################################################ - -[LibraryClasses] - HobLib - PeimEntryPoint - DebugLib - - -################################################################################ -# -# PPI C Name Section - list of PPI and PPI Notify C Names that this module -# uses or produces. -# -################################################################################ - -[Ppis] - gPeiBaseMemoryTestPpiGuid # PPI ALWAYS_CONSUMED - gPeiNtAutoScanPpiGuid # PPI ALWAYS_CONSUMED - diff --git a/Nt32Pkg/WinNtAutoScanPeim/WinNtAutoScan.msa b/Nt32Pkg/WinNtAutoScanPeim/WinNtAutoScan.msa deleted file mode 100644 index 8a0beea1ca..0000000000 --- a/Nt32Pkg/WinNtAutoScanPeim/WinNtAutoScan.msa +++ /dev/null @@ -1,59 +0,0 @@ - - - - WinNtAutoScan - PEIM - BE0FEABA-3443-4919-9F3A-2D4216329EA9 - 1.0 - Component description file for WinNtAutoScan module - This module abstracts memory auto-scan in a Windows NT environment. - Copyright (c) 2006 - 2007, Intel Corporation - All rights reserved. This program and the accompanying materials - are licensed and made available under the terms and conditions of the BSD License - which accompanies this distribution. The full text of the license may be found at - http://opensource.org/licenses/bsd-license.php - THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, - WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052 - - - IA32 - false - WinNtAutoScan - - - - DebugLib - - - PeimEntryPoint - - - HobLib - - - - WinntAutoscan.c - WinNtAutoscan.dxs - - - - - - - - - gPeiNtAutoScanPpiGuid - - - gPeiBaseMemoryTestPpiGuid - - - - EFI_SPECIFICATION_VERSION 0x00020000 - EDK_RELEASE_VERSION 0x00020000 - - PeimInitializeWinNtAutoScan - - - \ No newline at end of file