Remove asm code used for payload entry.
Use patchable PCD instead a fixed PCD PcdPayloadStackTop to avoid
potential conflict.
Based on the removal, use same HobLib regardless UNIVERSAL_PAYLOAD.
Use same PlatformHookLib regardless UNIVERSAL_PAYLOAD. The original
PlatformHookLib was removed and UniversalPayloadPlatformHookLib was
rename to new PlatformHookLib.
Cc: Ray Ni <ray.ni@intel.com>
Cc: Maurice Ma <maurice.ma@intel.com>
Cc: Benjamin You <benjamin.you@intel.com>
Signed-off-by: Guo Dong <guo.dong@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
This library will parse the coreboot table in memory and extract those required\r
information.\r
\r
- Copyright (c) 2014 - 2020, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2014 - 2021, Intel Corporation. All rights reserved.<BR>\r
SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
#ifndef __BOOTLOADER_PARSE_LIB__\r
#define __BOOTLOADER_PARSE_LIB__\r
\r
-#define GET_BOOTLOADER_PARAMETER() (*(UINTN *)(UINTN)(PcdGet32(PcdPayloadStackTop) - sizeof(UINT64)))\r
-#define SET_BOOTLOADER_PARAMETER(Value) GET_BOOTLOADER_PARAMETER()=Value\r
+#define GET_BOOTLOADER_PARAMETER() PcdGet64 (PcdBootloaderParameter)\r
\r
typedef RETURN_STATUS \\r
(*BL_MEM_INFO_CALLBACK) (MEMROY_MAP_ENTRY *MemoryMapEntry, VOID *Param);\r
This library will parse the coreboot table in memory and extract those required\r
information.\r
\r
- Copyright (c) 2014 - 2016, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2014 - 2021, Intel Corporation. All rights reserved.<BR>\r
SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
UINT8 *TmpPtr;\r
UINT8 *CbTablePtr;\r
UINTN Idx;\r
+ EFI_STATUS Status;\r
\r
//\r
// coreboot could pass coreboot table to UEFI payload\r
return NULL;\r
}\r
\r
- SET_BOOTLOADER_PARAMETER ((UINT32)(UINTN)CbTablePtr);\r
+ PcdSet64S (PcdBootloaderParameter, (UINTN)CbTablePtr);\r
+ ASSERT_EFI_STATUS (Status);\r
\r
return CbTablePtr;\r
}\r
## @file\r
# Coreboot Table Parse Library.\r
#\r
-# Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2014 - 2021, Intel Corporation. All rights reserved.<BR>\r
# SPDX-License-Identifier: BSD-2-Clause-Patent\r
#\r
##\r
PcdLib\r
\r
[Pcd]\r
- gUefiPayloadPkgTokenSpaceGuid.PcdPayloadStackTop\r
+ gUefiPayloadPkgTokenSpaceGuid.PcdBootloaderParameter\r
/** @file\r
Platform Hook Library instance for UART device.\r
\r
- Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>\r
SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
\r
#include <Base.h>\r
-#include <Uefi/UefiBaseType.h>\r
-#include <Library/PciLib.h>\r
+#include <PiDxe.h>\r
+#include <UniversalPayload/SerialPortInfo.h>\r
#include <Library/PlatformHookLib.h>\r
-#include <Library/BlParseLib.h>\r
#include <Library/PcdLib.h>\r
+#include <Library/HobLib.h>\r
\r
-typedef struct {\r
- UINT16 VendorId; ///< Vendor ID to match the PCI device. The value 0xFFFF terminates the list of entries.\r
- UINT16 DeviceId; ///< Device ID to match the PCI device\r
- UINT32 ClockRate; ///< UART clock rate. Set to 0 for default clock rate of 1843200 Hz\r
- UINT64 Offset; ///< The byte offset into to the BAR\r
- UINT8 BarIndex; ///< Which BAR to get the UART base address\r
- UINT8 RegisterStride; ///< UART register stride in bytes. Set to 0 for default register stride of 1 byte.\r
- UINT16 ReceiveFifoDepth; ///< UART receive FIFO depth in bytes. Set to 0 for a default FIFO depth of 16 bytes.\r
- UINT16 TransmitFifoDepth; ///< UART transmit FIFO depth in bytes. Set to 0 for a default FIFO depth of 16 bytes.\r
- UINT8 Reserved[2];\r
-} PCI_SERIAL_PARAMETER;\r
+\r
+/** Library Constructor\r
+\r
+ @retval RETURN_SUCCESS Success.\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+PlatformHookSerialPortConstructor (\r
+ VOID\r
+ )\r
+{\r
+ // Nothing to do here. This constructor is added to\r
+ // enable the chain of constructor invocation for\r
+ // dependent libraries.\r
+ return RETURN_SUCCESS;\r
+}\r
\r
/**\r
Performs platform specific initialization required for the CPU to access\r
VOID\r
)\r
{\r
- RETURN_STATUS Status;\r
- UINT32 DeviceVendor;\r
- PCI_SERIAL_PARAMETER *SerialParam;\r
- SERIAL_PORT_INFO SerialPortInfo;\r
-\r
- Status = ParseSerialInfo (&SerialPortInfo);\r
- if (RETURN_ERROR (Status)) {\r
- return Status;\r
- }\r
+ RETURN_STATUS Status;\r
+ UNIVERSAL_PAYLOAD_SERIAL_PORT_INFO *SerialPortInfo;\r
+ UINT8 *GuidHob;\r
+ UNIVERSAL_PAYLOAD_GENERIC_HEADER *GenericHeader;\r
\r
- if (SerialPortInfo.Type == PLD_SERIAL_TYPE_MEMORY_MAPPED) {\r
- Status = PcdSetBoolS (PcdSerialUseMmio, TRUE);\r
- } else { //IO\r
- Status = PcdSetBoolS (PcdSerialUseMmio, FALSE);\r
- }\r
- if (RETURN_ERROR (Status)) {\r
- return Status;\r
- }\r
- Status = PcdSet64S (PcdSerialRegisterBase, SerialPortInfo.BaseAddr);\r
- if (RETURN_ERROR (Status)) {\r
- return Status;\r
+ GuidHob = GetFirstGuidHob (&gUniversalPayloadSerialPortInfoGuid);\r
+ if (GuidHob == NULL) {\r
+ return EFI_NOT_FOUND;\r
}\r
\r
- Status = PcdSet32S (PcdSerialRegisterStride, SerialPortInfo.RegWidth);\r
- if (RETURN_ERROR (Status)) {\r
- return Status;\r
+ GenericHeader = (UNIVERSAL_PAYLOAD_GENERIC_HEADER *) GET_GUID_HOB_DATA (GuidHob);\r
+ if ((sizeof (UNIVERSAL_PAYLOAD_GENERIC_HEADER) > GET_GUID_HOB_DATA_SIZE (GuidHob)) || (GenericHeader->Length > GET_GUID_HOB_DATA_SIZE (GuidHob))) {\r
+ return EFI_NOT_FOUND;\r
}\r
\r
- Status = PcdSet32S (PcdSerialBaudRate, SerialPortInfo.Baud);\r
- if (RETURN_ERROR (Status)) {\r
- return Status;\r
- }\r
+ if (GenericHeader->Revision == UNIVERSAL_PAYLOAD_SERIAL_PORT_INFO_REVISION) {\r
+ SerialPortInfo = (UNIVERSAL_PAYLOAD_SERIAL_PORT_INFO *) GET_GUID_HOB_DATA (GuidHob);\r
+ if (GenericHeader->Length < UNIVERSAL_PAYLOAD_SIZEOF_THROUGH_FIELD (UNIVERSAL_PAYLOAD_SERIAL_PORT_INFO, RegisterBase)) {\r
+ //\r
+ // Return if can't find the Serial Port Info Hob with enough length\r
+ //\r
+ return EFI_NOT_FOUND;\r
+ }\r
\r
- Status = PcdSet32S (PcdSerialClockRate, SerialPortInfo.InputHertz);\r
- if (RETURN_ERROR (Status)) {\r
- return Status;\r
- }\r
+ Status = PcdSetBoolS (PcdSerialUseMmio, SerialPortInfo->UseMmio);\r
+ if (RETURN_ERROR (Status)) {\r
+ return Status;\r
+ }\r
+ Status = PcdSet64S (PcdSerialRegisterBase, SerialPortInfo->RegisterBase);\r
+ if (RETURN_ERROR (Status)) {\r
+ return Status;\r
+ }\r
+ Status = PcdSet32S (PcdSerialRegisterStride, SerialPortInfo->RegisterStride);\r
+ if (RETURN_ERROR (Status)) {\r
+ return Status;\r
+ }\r
+ Status = PcdSet32S (PcdSerialBaudRate, SerialPortInfo->BaudRate);\r
+ if (RETURN_ERROR (Status)) {\r
+ return Status;\r
+ }\r
\r
- if (SerialPortInfo.UartPciAddr >= 0x80000000) {\r
- DeviceVendor = PciRead32 (SerialPortInfo.UartPciAddr & 0x0ffff000);\r
- SerialParam = PcdGetPtr(PcdPciSerialParameters);\r
- SerialParam->VendorId = (UINT16)DeviceVendor;\r
- SerialParam->DeviceId = DeviceVendor >> 16;\r
- SerialParam->ClockRate = SerialPortInfo.InputHertz;\r
- SerialParam->RegisterStride = (UINT8)SerialPortInfo.RegWidth;\r
+ return RETURN_SUCCESS;\r
}\r
\r
- return RETURN_SUCCESS;\r
+ return EFI_NOT_FOUND;\r
}\r
## @file\r
-# Platform Hook Library instance for UART device.\r
+# Platform Hook Library instance for UART device for Universal Payload.\r
#\r
-# Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>\r
#\r
# SPDX-License-Identifier: BSD-2-Clause-Patent\r
#\r
[Defines]\r
INF_VERSION = 0x00010005\r
BASE_NAME = PlatformHookLib\r
- FILE_GUID = 40A2CBC6-CFB8-447b-A90E-198E88FD345E\r
+ FILE_GUID = 807E05AB-9411-429F-97F0-FE425BF6B094\r
MODULE_TYPE = BASE\r
VERSION_STRING = 1.0\r
LIBRARY_CLASS = PlatformHookLib\r
- CONSTRUCTOR = PlatformHookSerialPortInitialize\r
+ CONSTRUCTOR = PlatformHookSerialPortConstructor\r
\r
[Sources]\r
PlatformHookLib.c\r
\r
[LibraryClasses]\r
- BlParseLib\r
PcdLib\r
- PciLib\r
+ BaseLib\r
+ HobLib\r
+ DxeHobListLib\r
\r
[Packages]\r
MdePkg/MdePkg.dec\r
MdeModulePkg/MdeModulePkg.dec\r
UefiPayloadPkg/UefiPayloadPkg.dec\r
\r
+[Guids]\r
+ gUniversalPayloadSerialPortInfoGuid\r
+\r
[Pcd]\r
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialUseMmio ## PRODUCES\r
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase ## PRODUCES\r
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialBaudRate ## PRODUCES\r
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterStride ## PRODUCES\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdSerialClockRate ## PRODUCES\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdPciSerialParameters ## PRODUCES\r
## @file\r
# Slim Bootloader parse library.\r
#\r
-# Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2019 - 2021, Intel Corporation. All rights reserved.<BR>\r
# SPDX-License-Identifier: BSD-2-Clause-Patent\r
#\r
##\r
gEfiGraphicsDeviceInfoHobGuid\r
\r
[Pcd]\r
- gUefiPayloadPkgTokenSpaceGuid.PcdPayloadStackTop\r
+ gUefiPayloadPkgTokenSpaceGuid.PcdBootloaderParameter\r
+++ /dev/null
-/** @file\r
- Platform Hook Library instance for UART device.\r
-\r
- Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>\r
- SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-**/\r
-\r
-#include <Base.h>\r
-#include <PiDxe.h>\r
-#include <UniversalPayload/SerialPortInfo.h>\r
-#include <Library/PlatformHookLib.h>\r
-#include <Library/PcdLib.h>\r
-#include <Library/HobLib.h>\r
-\r
-\r
-/** Library Constructor\r
-\r
- @retval RETURN_SUCCESS Success.\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-PlatformHookSerialPortConstructor (\r
- VOID\r
- )\r
-{\r
- // Nothing to do here. This constructor is added to\r
- // enable the chain of constructor invocation for\r
- // dependent libraries.\r
- return RETURN_SUCCESS;\r
-}\r
-\r
-/**\r
- Performs platform specific initialization required for the CPU to access\r
- the hardware associated with a SerialPortLib instance. This function does\r
- not initialize the serial port hardware itself. Instead, it initializes\r
- hardware devices that are required for the CPU to access the serial port\r
- hardware. This function may be called more than once.\r
-\r
- @retval RETURN_SUCCESS The platform specific initialization succeeded.\r
- @retval RETURN_DEVICE_ERROR The platform specific initialization could not be completed.\r
-\r
-**/\r
-RETURN_STATUS\r
-EFIAPI\r
-PlatformHookSerialPortInitialize (\r
- VOID\r
- )\r
-{\r
- RETURN_STATUS Status;\r
- UNIVERSAL_PAYLOAD_SERIAL_PORT_INFO *SerialPortInfo;\r
- UINT8 *GuidHob;\r
- UNIVERSAL_PAYLOAD_GENERIC_HEADER *GenericHeader;\r
-\r
- GuidHob = GetFirstGuidHob (&gUniversalPayloadSerialPortInfoGuid);\r
- if (GuidHob == NULL) {\r
- return EFI_NOT_FOUND;\r
- }\r
-\r
- GenericHeader = (UNIVERSAL_PAYLOAD_GENERIC_HEADER *) GET_GUID_HOB_DATA (GuidHob);\r
- if ((sizeof (UNIVERSAL_PAYLOAD_GENERIC_HEADER) > GET_GUID_HOB_DATA_SIZE (GuidHob)) || (GenericHeader->Length > GET_GUID_HOB_DATA_SIZE (GuidHob))) {\r
- return EFI_NOT_FOUND;\r
- }\r
-\r
- if (GenericHeader->Revision == UNIVERSAL_PAYLOAD_SERIAL_PORT_INFO_REVISION) {\r
- SerialPortInfo = (UNIVERSAL_PAYLOAD_SERIAL_PORT_INFO *) GET_GUID_HOB_DATA (GuidHob);\r
- if (GenericHeader->Length < UNIVERSAL_PAYLOAD_SIZEOF_THROUGH_FIELD (UNIVERSAL_PAYLOAD_SERIAL_PORT_INFO, RegisterBase)) {\r
- //\r
- // Return if can't find the Serial Port Info Hob with enough length\r
- //\r
- return EFI_NOT_FOUND;\r
- }\r
-\r
- Status = PcdSetBoolS (PcdSerialUseMmio, SerialPortInfo->UseMmio);\r
- if (RETURN_ERROR (Status)) {\r
- return Status;\r
- }\r
- Status = PcdSet64S (PcdSerialRegisterBase, SerialPortInfo->RegisterBase);\r
- if (RETURN_ERROR (Status)) {\r
- return Status;\r
- }\r
- Status = PcdSet32S (PcdSerialRegisterStride, SerialPortInfo->RegisterStride);\r
- if (RETURN_ERROR (Status)) {\r
- return Status;\r
- }\r
- Status = PcdSet32S (PcdSerialBaudRate, SerialPortInfo->BaudRate);\r
- if (RETURN_ERROR (Status)) {\r
- return Status;\r
- }\r
-\r
- return RETURN_SUCCESS;\r
- }\r
-\r
- return EFI_NOT_FOUND;\r
-}\r
+++ /dev/null
-## @file\r
-# Platform Hook Library instance for UART device for Universal Payload.\r
-#\r
-# Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>\r
-#\r
-# SPDX-License-Identifier: BSD-2-Clause-Patent\r
-#\r
-##\r
-\r
-[Defines]\r
- INF_VERSION = 0x00010005\r
- BASE_NAME = PlatformHookLib\r
- FILE_GUID = 807E05AB-9411-429F-97F0-FE425BF6B094\r
- MODULE_TYPE = BASE\r
- VERSION_STRING = 1.0\r
- LIBRARY_CLASS = PlatformHookLib\r
- CONSTRUCTOR = PlatformHookSerialPortConstructor\r
-\r
-[Sources]\r
- PlatformHookLib.c\r
-\r
-[LibraryClasses]\r
- PcdLib\r
- BaseLib\r
- HobLib\r
- DxeHobListLib\r
-\r
-[Packages]\r
- MdePkg/MdePkg.dec\r
- MdeModulePkg/MdeModulePkg.dec\r
- UefiPayloadPkg/UefiPayloadPkg.dec\r
-\r
-[Guids]\r
- gUniversalPayloadSerialPortInfoGuid\r
-\r
-[Pcd]\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdSerialUseMmio ## PRODUCES\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase ## PRODUCES\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdSerialBaudRate ## PRODUCES\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterStride ## PRODUCES\r
+++ /dev/null
-;------------------------------------------------------------------------------\r
-;*\r
-;* Copyright (c) 2006 - 2020, Intel Corporation. All rights reserved.<BR>\r
-;* SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-;------------------------------------------------------------------------------\r
-\r
-#include <Base.h>\r
-\r
-SECTION .text\r
-\r
-extern ASM_PFX(PayloadEntry)\r
-extern ASM_PFX(PcdGet32 (PcdPayloadStackTop))\r
-\r
-;\r
-; SecCore Entry Point\r
-;\r
-; Processor is in flat protected mode\r
-\r
-global ASM_PFX(_ModuleEntryPoint)\r
-ASM_PFX(_ModuleEntryPoint):\r
-\r
- ;\r
- ; Disable all the interrupts\r
- ;\r
- cli\r
-\r
- ;\r
- ; Save the bootloader parameter base address\r
- ;\r
- mov eax, [esp + 4]\r
-\r
- mov esp, FixedPcdGet32 (PcdPayloadStackTop)\r
-\r
- ;\r
- ; Push the bootloader parameter address onto new stack\r
- ;\r
- push 0\r
- push eax\r
-\r
- ;\r
- ; Call into C code\r
- ;\r
- call ASM_PFX(PayloadEntry)\r
- jmp $\r
-\r
**/\r
EFI_STATUS\r
EFIAPI\r
-PayloadEntry (\r
+_ModuleEntryPoint (\r
IN UINTN BootloaderParameter\r
)\r
{\r
UINTN HobMemBase;\r
UINTN HobMemTop;\r
EFI_PEI_HOB_POINTERS Hob;\r
+ SERIAL_PORT_INFO SerialPortInfo;\r
+ UNIVERSAL_PAYLOAD_SERIAL_PORT_INFO *UniversalSerialPort;\r
\r
- // Call constructor for all libraries\r
- ProcessLibraryConstructorList ();\r
-\r
- DEBUG ((DEBUG_INFO, "GET_BOOTLOADER_PARAMETER() = 0x%lx\n", GET_BOOTLOADER_PARAMETER()));\r
- DEBUG ((DEBUG_INFO, "sizeof(UINTN) = 0x%x\n", sizeof(UINTN)));\r
-\r
+ PcdSet64S (PcdBootloaderParameter, BootloaderParameter);\r
// Initialize floating point operating environment to be compliant with UEFI spec.\r
InitializeFloatingPointUnits ();\r
\r
\r
HobConstructor ((VOID *)MemBase, (VOID *)HobMemTop, (VOID *)HobMemBase, (VOID *)HobMemTop);\r
\r
+ //\r
+ // Build serial port info\r
+ //\r
+ Status = ParseSerialInfo (&SerialPortInfo);\r
+ if (!EFI_ERROR (Status)) {\r
+ UniversalSerialPort = BuildGuidHob (&gUniversalPayloadSerialPortInfoGuid, sizeof (UNIVERSAL_PAYLOAD_SERIAL_PORT_INFO));\r
+ ASSERT (UniversalSerialPort != NULL);\r
+ UniversalSerialPort->Header.Revision = UNIVERSAL_PAYLOAD_SERIAL_PORT_INFO_REVISION;\r
+ UniversalSerialPort->Header.Length = sizeof (UNIVERSAL_PAYLOAD_SERIAL_PORT_INFO);\r
+ UniversalSerialPort->UseMmio = (SerialPortInfo.Type == 1)?FALSE:TRUE;\r
+ UniversalSerialPort->RegisterBase = SerialPortInfo.BaseAddr;\r
+ UniversalSerialPort->BaudRate = SerialPortInfo.Baud;\r
+ UniversalSerialPort->RegisterStride = (UINT8)SerialPortInfo.RegWidth;\r
+ }\r
+\r
+ // The library constructors might depend on serial port, so call it after serial port hob\r
+ ProcessLibraryConstructorList ();\r
+ DEBUG ((DEBUG_INFO, "sizeof(UINTN) = 0x%x\n", sizeof(UINTN)));\r
+\r
// Build HOB based on information from Bootloader\r
Status = BuildHobFromBl ();\r
if (EFI_ERROR (Status)) {\r
#include <UniversalPayload/AcpiTable.h>\r
#include <UniversalPayload/UniversalPayload.h>\r
#include <UniversalPayload/ExtraData.h>\r
+#include <UniversalPayload/SerialPortInfo.h>\r
#include <Guid/PcdDataBaseSignatureGuid.h>\r
\r
#define LEGACY_8259_MASK_REGISTER_MASTER 0x21\r
X64/VirtualMemory.c\r
Ia32/DxeLoadFunc.c\r
Ia32/IdtVectorAsm.nasm\r
- Ia32/SecEntry.nasm\r
\r
[Sources.X64]\r
X64/VirtualMemory.h\r
X64/VirtualMemory.c\r
X64/DxeLoadFunc.c\r
- X64/SecEntry.nasm\r
\r
[Packages]\r
MdePkg/MdePkg.dec\r
gUefiAcpiBoardInfoGuid\r
gUniversalPayloadSmbiosTableGuid\r
gUniversalPayloadAcpiTableGuid\r
+ gUniversalPayloadSerialPortInfoGuid\r
\r
[FeaturePcd.IA32]\r
gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode ## CONSUMES\r
\r
gUefiPayloadPkgTokenSpaceGuid.PcdPayloadFdMemBase\r
gUefiPayloadPkgTokenSpaceGuid.PcdPayloadFdMemSize\r
- gUefiPayloadPkgTokenSpaceGuid.PcdPayloadStackTop\r
+ gUefiPayloadPkgTokenSpaceGuid.PcdBootloaderParameter\r
gUefiPayloadPkgTokenSpaceGuid.PcdSystemMemoryUefiRegionSize\r
\r
gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack ## SOMETIMES_CONSUMES\r
\r
gUefiPayloadPkgTokenSpaceGuid.PcdPayloadFdMemBase\r
gUefiPayloadPkgTokenSpaceGuid.PcdPayloadFdMemSize\r
- gUefiPayloadPkgTokenSpaceGuid.PcdPayloadStackTop\r
gUefiPayloadPkgTokenSpaceGuid.PcdSystemMemoryUefiRegionSize\r
\r
gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack ## SOMETIMES_CONSUMES\r
+++ /dev/null
-;------------------------------------------------------------------------------\r
-;*\r
-;* Copyright (c) 2006 - 2020, Intel Corporation. All rights reserved.<BR>\r
-;* SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-;------------------------------------------------------------------------------\r
-\r
-#include <Base.h>\r
-\r
-DEFAULT REL\r
-SECTION .text\r
-\r
-extern ASM_PFX(PayloadEntry)\r
-extern ASM_PFX(PcdGet32 (PcdPayloadStackTop))\r
-\r
-;\r
-; SecCore Entry Point\r
-;\r
-; Processor is in flat protected mode\r
-\r
-global ASM_PFX(_ModuleEntryPoint)\r
-ASM_PFX(_ModuleEntryPoint):\r
-\r
- ;\r
- ; Disable all the interrupts\r
- ;\r
- cli\r
-\r
-\r
- mov rsp, FixedPcdGet32 (PcdPayloadStackTop)\r
-\r
- ;\r
- ; Push the bootloader parameter address onto new stack\r
- ;\r
- push rcx\r
- mov rax, 0\r
- push rax ; shadow space\r
- push rax\r
- push rax\r
- push rax\r
-\r
- ;\r
- ; Call into C code\r
- ;\r
- call ASM_PFX(PayloadEntry)\r
- jmp $\r
-\r
gUefiPayloadPkgTokenSpaceGuid.PcdPayloadFdMemBase|0|UINT32|0x10000001\r
## Provides the size of the payload binary in memory\r
gUefiPayloadPkgTokenSpaceGuid.PcdPayloadFdMemSize|0|UINT32|0x10000002\r
-## Payload stack top\r
-gUefiPayloadPkgTokenSpaceGuid.PcdPayloadStackTop|0x90000|UINT32|0x10000004\r
+## Save bootloader parameter\r
+gUefiPayloadPkgTokenSpaceGuid.PcdBootloaderParameter|0|UINT64|0x10000004\r
\r
## FFS filename to find the shell application.\r
gUefiPayloadPkgTokenSpaceGuid.PcdShellFile|{ 0x83, 0xA5, 0x04, 0x7C, 0x3E, 0x9E, 0x1c, 0x4f, 0xAD, 0x65, 0xE0, 0x52, 0x68, 0xD0, 0xB4, 0xD1 }|VOID*|0x10000005\r
IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf\r
OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf\r
RngLib|MdePkg/Library/BaseRngLib/BaseRngLib.inf\r
-\r
-!if $(UNIVERSAL_PAYLOAD) == TRUE\r
HobLib|UefiPayloadPkg/Library/DxeHobLib/DxeHobLib.inf\r
-!else\r
- HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf\r
-!endif\r
\r
#\r
# UEFI & PI\r
TimerLib|UefiPayloadPkg/Library/AcpiTimerLib/AcpiTimerLib.inf\r
ResetSystemLib|UefiPayloadPkg/Library/ResetSystemLib/ResetSystemLib.inf\r
SerialPortLib|MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.inf\r
-!if $(UNIVERSAL_PAYLOAD) == TRUE\r
- PlatformHookLib|UefiPayloadPkg/Library/UniversalPayloadPlatformHookLib/PlatformHookLib.inf\r
-!else\r
PlatformHookLib|UefiPayloadPkg/Library/PlatformHookLib/PlatformHookLib.inf\r
-!endif\r
PlatformBootManagerLib|UefiPayloadPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf\r
IoApicLib|PcAtChipsetPkg/Library/BaseIoApicLib/BaseIoApicLib.inf\r
\r
\r
gUefiCpuPkgTokenSpaceGuid.PcdCpuMaxLogicalProcessorNumber|$(MAX_LOGICAL_PROCESSORS)\r
gUefiCpuPkgTokenSpaceGuid.PcdCpuNumberOfReservedVariableMtrrs|0\r
+ gUefiPayloadPkgTokenSpaceGuid.PcdBootloaderParameter|0\r
\r
################################################################################\r
#\r