From 2e7a663de426c941c1f309423484b7729ddcdfb4 Mon Sep 17 00:00:00 2001 From: klu2 Date: Thu, 5 Jul 2007 09:41:22 +0000 Subject: [PATCH] Enable Nt32 platform boot to DXE phase. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3073 6f19259b-4bc3-4df7-8a09-765794883524 --- MdeModulePkg/Core/Pei/PeiMain.inf | 2 +- MdePkg/Include/Library/OldPeiCoreEntryPoint.h | 93 +++++++++++++++++++ .../OldPeiCoreEntryPoint.inf | 59 ++++++++++++ .../OldPeiCoreEntryPoint/PeiCoreEntryPoint.c | 92 ++++++++++++++++++ .../PeiCoreEntryPoint.msa | 39 ++++++++ MdePkg/MdePkg.dec | 3 +- Nt32Pkg/Nt32Pkg.dsc | 7 +- Nt32Pkg/Nt32Pkg.fdf | 6 +- 8 files changed, 294 insertions(+), 7 deletions(-) create mode 100644 MdePkg/Include/Library/OldPeiCoreEntryPoint.h create mode 100644 MdePkg/Library/OldPeiCoreEntryPoint/OldPeiCoreEntryPoint.inf create mode 100644 MdePkg/Library/OldPeiCoreEntryPoint/PeiCoreEntryPoint.c create mode 100644 MdePkg/Library/OldPeiCoreEntryPoint/PeiCoreEntryPoint.msa diff --git a/MdeModulePkg/Core/Pei/PeiMain.inf b/MdeModulePkg/Core/Pei/PeiMain.inf index 61641e3526..c55682300c 100644 --- a/MdeModulePkg/Core/Pei/PeiMain.inf +++ b/MdeModulePkg/Core/Pei/PeiMain.inf @@ -114,7 +114,7 @@ PerformanceLib HobLib BaseLib - PeiCoreEntryPoint + OldPeiCoreEntryPoint DebugLib diff --git a/MdePkg/Include/Library/OldPeiCoreEntryPoint.h b/MdePkg/Include/Library/OldPeiCoreEntryPoint.h new file mode 100644 index 0000000000..b9d2ac7233 --- /dev/null +++ b/MdePkg/Include/Library/OldPeiCoreEntryPoint.h @@ -0,0 +1,93 @@ +/** @file + Entry point to the PEI Core + +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. + +**/ + +#ifndef __MODULE_ENTRY_POINT_H__ +#define __MODULE_ENTRY_POINT_H__ + +/** + + Enrty point to PEI core. + + @param SecCoreData Points to a data structure containing + information about the PEI core's + operating environment, such as the size + and location of temporary RAM, the stack + location and the BFV location. The type + EFI_SEC_PEI_HAND_OFF is + + @param PpiList Points to a list of one or more PPI + descriptors to be installed initially by + the PEI core. An empty PPI list consists + of a single descriptor with the end-tag + EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST. + As part of its initialization phase, the + PEI Foundation will add these SEC-hosted + PPIs to its PPI database such that both + the PEI Foundation and any modules can + leverage the associated service calls + and/or code in these early PPIs. + +**/ +EFI_STATUS +EFIAPI +_ModuleEntryPoint ( + IN EFI_PEI_STARTUP_DESCRIPTOR *PeiStartupDescriptor + ); + +/** + Wrapper of enrty point to PEI core. + + @param PeiStartupDescriptor Pointer of start up information. + + @return Status returned by entry points of core and drivers. + +**/ +EFI_STATUS +EFIAPI +EfiMain ( + IN EFI_PEI_STARTUP_DESCRIPTOR *PeiStartupDescriptor + ); + +/** + Call constructs for all libraries. Automatics Generated by tool. + + @param FfsHeader Pointer to header of FFS. + @param PeiServices Pointer to the PEI Services Table. + +**/ +VOID +EFIAPI +ProcessLibraryConstructorList ( + IN EFI_FFS_FILE_HEADER *FfsHeader, + IN EFI_PEI_SERVICES **PeiServices + ); + + +/** + Call the list of driver entry points. Automatics Generated by tool. + + @param PeiStartupDescriptor Pointer to startup information . + @param OldCoreData Pointer to Original startup information. + + @return Status returned by entry points of drivers. + +**/ +EFI_STATUS +EFIAPI +ProcessModuleEntryPointList ( + IN EFI_PEI_STARTUP_DESCRIPTOR *PeiStartupDescriptor, + IN VOID *OldCoreData + ); + +#endif diff --git a/MdePkg/Library/OldPeiCoreEntryPoint/OldPeiCoreEntryPoint.inf b/MdePkg/Library/OldPeiCoreEntryPoint/OldPeiCoreEntryPoint.inf new file mode 100644 index 0000000000..3078f5e271 --- /dev/null +++ b/MdePkg/Library/OldPeiCoreEntryPoint/OldPeiCoreEntryPoint.inf @@ -0,0 +1,59 @@ +#/** @file +# Entry point to a the PEI Core +# +# The library contains the entry point to a PEI core Module Type. +# Copyright (c) 2007 - 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 = PeiCoreEntryPoint + FILE_GUID = b3b0654a-969d-4096-86cb-27e262a02083 + MODULE_TYPE = PEI_CORE + VERSION_STRING = 1.0 + LIBRARY_CLASS = PeiCoreEntryPoint|PEI_CORE + EDK_RELEASE_VERSION = 0x00020000 + EFI_SPECIFICATION_VERSION = 0x00020000 + + +# +# The following information is for reference only and not required by the build tools. +# +# VALID_ARCHITECTURES = IA32 X64 IPF EBC +# + +################################################################################ +# +# Sources Section - list of files that are required for the build to succeed. +# +################################################################################ + +[Sources.common] + PeiCoreEntryPoint.c + + + +################################################################################ +# +# Package Dependency Section - list of Package files that are required for +# this module. +# +################################################################################ + +[Packages] + MdePkg/MdePkg.dec + diff --git a/MdePkg/Library/OldPeiCoreEntryPoint/PeiCoreEntryPoint.c b/MdePkg/Library/OldPeiCoreEntryPoint/PeiCoreEntryPoint.c new file mode 100644 index 0000000000..c18284a6df --- /dev/null +++ b/MdePkg/Library/OldPeiCoreEntryPoint/PeiCoreEntryPoint.c @@ -0,0 +1,92 @@ +/** @file + Entry point to a the PEI Core. + +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. + +**/ + +// +// The package level header files this module uses +// +#include +// +// The protocols, PPI and GUID defintions for this module +// +// +// The Library classes this module produced +// +#include + +/** + + Enrty point to PEI core. + + @param SecCoreData Points to a data structure containing + information about the PEI core's + operating environment, such as the size + and location of temporary RAM, the stack + location and the BFV location. The type + EFI_SEC_PEI_HAND_OFF is + + @param PpiList Points to a list of one or more PPI + descriptors to be installed initially by + the PEI core. An empty PPI list consists + of a single descriptor with the end-tag + EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST. + As part of its initialization phase, the + PEI Foundation will add these SEC-hosted + PPIs to its PPI database such that both + the PEI Foundation and any modules can + leverage the associated service calls + and/or code in these early PPIs. + +**/ +EFI_STATUS +EFIAPI +_ModuleEntryPoint( + IN EFI_PEI_STARTUP_DESCRIPTOR *PeiStartupDescriptor +) +{ + return ProcessModuleEntryPointList (PeiStartupDescriptor, NULL); +} + + +/** + + Wrapper of enrty point to PEI core. + + @param SecCoreData Points to a data structure containing + information about the PEI core's + operating environment, such as the size + and location of temporary RAM, the stack + location and the BFV location. The type + EFI_SEC_PEI_HAND_OFF is + + @param PpiList Points to a list of one or more PPI + descriptors to be installed initially by + the PEI core. An empty PPI list consists + of a single descriptor with the end-tag + EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST. + As part of its initialization phase, the + PEI Foundation will add these SEC-hosted + PPIs to its PPI database such that both + the PEI Foundation and any modules can + leverage the associated service calls + and/or code in these early PPIs. + +**/ +EFI_STATUS +EFIAPI +EfiMain ( + IN EFI_PEI_STARTUP_DESCRIPTOR *PeiStartupDescriptor + ) +{ + return _ModuleEntryPoint (PeiStartupDescriptor); +} diff --git a/MdePkg/Library/OldPeiCoreEntryPoint/PeiCoreEntryPoint.msa b/MdePkg/Library/OldPeiCoreEntryPoint/PeiCoreEntryPoint.msa new file mode 100644 index 0000000000..cd1015bc3b --- /dev/null +++ b/MdePkg/Library/OldPeiCoreEntryPoint/PeiCoreEntryPoint.msa @@ -0,0 +1,39 @@ + + + + PeiCoreEntryPoint + PEI_CORE + b3b0654a-969d-4096-86cb-27e262a02083 + 1.0 + Entry point to a the PEI Core + The library contains the entry point to a PEI core Module Type. + 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 X64 IPF EBC + false + PeiCoreEntryPoint + + + + PeiCoreEntryPoint + + + + PeiCoreEntryPoint.c + + + + + + EFI_SPECIFICATION_VERSION 0x00020000 + EDK_RELEASE_VERSION 0x00020000 + + \ No newline at end of file diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec index df224e89c2..53f114d9b5 100644 --- a/MdePkg/MdePkg.dec +++ b/MdePkg/MdePkg.dec @@ -82,6 +82,7 @@ PeiServicesLib|Include/Library/PeiServicesLib.h PeimEntryPoint|Include/Library/PeimEntryPoint.h PeiCoreEntryPoint|Include/Library/PeiCoreEntryPoint.h + OldPeiCoreEntryPoint|Include/Library/OldPeiCoreEntryPoint.h PeCoffLib|Include/Library/PeCoffLib.h PeCoffGetEntryPointLib|Include/Library/PeCoffGetEntryPointLib.h PciSegmentLib|Include/Library/PciSegmentLib.h @@ -105,7 +106,7 @@ BaseMemoryLib|Include/Library/BaseMemoryLib.h BaseLib|Include/Library/BaseLib.h BasePeCoffLib|Include/Library/PeCoffLib.h - + ################################################################################ # # Global Guid Definition section - list of Global Guid C Name Data Structures diff --git a/Nt32Pkg/Nt32Pkg.dsc b/Nt32Pkg/Nt32Pkg.dsc index e9d0a2d039..80846fefc5 100644 --- a/Nt32Pkg/Nt32Pkg.dsc +++ b/Nt32Pkg/Nt32Pkg.dsc @@ -130,6 +130,7 @@ PeiServicesLib|$(WORKSPACE)/MdePkg/Library/PeiServicesLib/PeiServicesLib.inf MemoryAllocationLib|$(WORKSPACE)/MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf PeiCoreEntryPoint|$(WORKSPACE)/MdePkg/Library/PeiCoreEntryPoint/PeiCoreEntryPoint.inf + OldPeiCoreEntryPoint|$(WORKSPACE)/MdePkg/Library/OldPeiCoreEntryPoint/OldPeiCoreEntryPoint.inf ReportStatusCodeLib|$(WORKSPACE)/IntelFrameworkPkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf PeCoffGetEntryPointLib|$(WORKSPACE)/Nt32Pkg/Library/EdkNt32PeiPeCoffGetEntryPointLib/EdkNt32PeiPeCoffGetEntryPointLib.inf PcdLib|$(WORKSPACE)/MdePkg/Library/PeiPcdLib/PeiPcdLib.inf @@ -301,7 +302,7 @@ # ################################################################################ -[PcdsDynamicDefault.common.DEFAULT] +[PcdsDynamic.common.DEFAULT] PcdFlashNvStorageFtwSpareBase|gEfiGenericPlatformTokenSpaceGuid|0x0 PcdFlashNvStorageVariableSize|gEfiGenericPlatformTokenSpaceGuid|0x0 PcdWinNtCpuSpeed|gEfiNt32PkgTokenSpaceGuid|L"3000"|8 @@ -365,7 +366,7 @@ $(WORKSPACE)/MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDisk.inf # $(WORKSPACE)/MdeModulePkg/Universal/PCD/Dxe/Pcd.inf # $(WORKSPACE)/MdeModulePkg/Universal/PCD/Pei/Pcd.inf - $(WORKSPACE)/IntelFrameworkModulePkg/Bus/Pci/PciBus/Dxe/PciBus.inf +# $(WORKSPACE)/IntelFrameworkModulePkg/Bus/Pci/PciBus/Dxe/PciBus.inf $(WORKSPACE)/IntelFrameworkModulePkg/Bus/Pci/IdeBus/Dxe/IdeBus.inf $(WORKSPACE)/IntelFrameworkModulePkg/Universal/DataHub/DataHub/Dxe/DataHub.inf $(WORKSPACE)/IntelFrameworkModulePkg/Universal/DataHub/DataHubStdErr/Dxe/DataHubStdErr.inf @@ -383,4 +384,4 @@ ${WORKSPACE}/MdeModulePkg/Universal/DevicePathDxe/DevicePath.inf ${WORKSPACE}/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.inf ${WORKSPACE}/MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf - ${WORKSPACE}/MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsole.inf \ No newline at end of file + ${WORKSPACE}/MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsole.inf diff --git a/Nt32Pkg/Nt32Pkg.fdf b/Nt32Pkg/Nt32Pkg.fdf index 41fc4fc116..6b6a62205d 100644 --- a/Nt32Pkg/Nt32Pkg.fdf +++ b/Nt32Pkg/Nt32Pkg.fdf @@ -147,7 +147,7 @@ INF $(WORKSPACE)/MdeModulePkg/Universal/VariablePei/Variable.inf INF $(WORKSPACE)/MdeModulePkg/Universal/VariableRuntimeDxe/Variable.inf INF $(WORKSPACE)/MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBus.inf INF $(WORKSPACE)/MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDisk.inf -INF $(WORKSPACE)/IntelFrameworkModulePkg/Bus/Pci/PciBus/Dxe/PciBus.inf +#INF $(WORKSPACE)/IntelFrameworkModulePkg/Bus/Pci/PciBus/Dxe/PciBus.inf INF $(WORKSPACE)/IntelFrameworkModulePkg/Bus/Pci/IdeBus/Dxe/IdeBus.inf INF $(WORKSPACE)/IntelFrameworkModulePkg/Universal/DataHub/DataHub/Dxe/DataHub.inf INF $(WORKSPACE)/IntelFrameworkModulePkg/Universal/DataHub/DataHubStdErr/Dxe/DataHubStdErr.inf @@ -155,9 +155,11 @@ INF $(WORKSPACE)/IntelFrameworkModulePkg/Universal/StatusCode/Dxe/DxeStatusCode INF $(WORKSPACE)/IntelFrameworkModulePkg/Universal/StatusCode/Pei/PeiStatusCode.inf INF $(WORKSPACE)/IntelFrameworkModulePkg/Universal/HiiDataBaseDxe/HiiDatabase.inf INF $(WORKSPACE)/IntelFrameworkModulePkg/Universal/SetupBrowserDxe/SetupBrowser.inf -#INF $(WORKSPACE)/IntelFrameworkModulePkg/Universal/DriverSampleDxe/DriverSample.inf +INF $(WORKSPACE)/IntelFrameworkModulePkg/Universal/DriverSampleDxe/DriverSample.inf INF $(WORKSPACE)/MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBus.inf ##This driver follows UEFI specification definition INF $(WORKSPACE)/MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDisk.inf ##This driver follows UEFI specification definition +INF $(WORKSPACE)/MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf +INF $(WORKSPACE)/MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsole.inf ################################################################################ # -- 2.39.2