#\r
# This is the Emu Emulation Environment Platform\r
#\r
-# Copyright (c) 2008 - 2019, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2008 - 2022, Intel Corporation. All rights reserved.<BR>\r
# Portions copyright (c) 2011, Apple Inc. All rights reserved.\r
# (C) Copyright 2020 Hewlett Packard Enterprise Development LP<BR>\r
#\r
# The user ID and password are fixed as below.\r
gEmulatorPkgTokenSpaceGuid.PcdRedfishServieUserId|"admin"|VOID*|0x00001022\r
gEmulatorPkgTokenSpaceGuid.PcdRedfishServiePassword|"pwd123456"|VOID*|0x00001023\r
+ gEmulatorPkgTokenSpaceGuid.PcdPersistentMemorySize|0x4000000|UINT32|0x00001024\r
\r
[PcdsFixedAtBuild, PcdsPatchableInModule]\r
gEmulatorPkgTokenSpaceGuid.PcdEmuBootMode|1|UINT32|0x00001006\r
Emulator Thunk to abstract OS services from pure EFI code\r
\r
Copyright (c) 2008 - 2011, Apple Inc. All rights reserved.<BR>\r
-\r
+ Copyright (c) 2022, Intel Corporation. All rights reserved.<BR>\r
SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
EMU_PEI_AUTOSCAN MemoryAutoScan;\r
EMU_PEI_FD_INFORMATION FirmwareDevices;\r
EMU_PEI_THUNK_INTERFACE Thunk;\r
+ UINTN PersistentMemorySize;\r
+ UINT8 PersistentMemory[0];\r
} EMU_THUNK_PPI;\r
\r
extern EFI_GUID gEmuThunkPpiGuid;\r
/*++ @file\r
\r
-Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2006 - 2022, Intel Corporation. All rights reserved.<BR>\r
Portions copyright (c) 2008 - 2011, Apple Inc. All rights reserved.<BR>\r
SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
CHAR16 *FirmwareVolumesStr;\r
UINTN *StackPointer;\r
FILE *GdbTempFile;\r
+ EMU_THUNK_PPI *SecEmuThunkPpi;\r
\r
//\r
// Xcode does not support sourcing gdb scripts directly, so the Xcode XML\r
//\r
// PPIs pased into PEI_CORE\r
//\r
- AddThunkPpi (EFI_PEI_PPI_DESCRIPTOR_PPI, &gEmuThunkPpiGuid, &mSecEmuThunkPpi);\r
+ SecEmuThunkPpi = AllocateZeroPool (sizeof (EMU_THUNK_PPI) + FixedPcdGet32 (PcdPersistentMemorySize));\r
+ if (SecEmuThunkPpi == NULL) {\r
+ printf ("ERROR : Can not allocate memory for SecEmuThunkPpi. Exiting.\n");\r
+ exit (1);\r
+ }\r
+\r
+ CopyMem (SecEmuThunkPpi, &mSecEmuThunkPpi, sizeof (EMU_THUNK_PPI));\r
+ SecEmuThunkPpi->PersistentMemorySize = FixedPcdGet32 (PcdPersistentMemorySize);\r
+ AddThunkPpi (EFI_PEI_PPI_DESCRIPTOR_PPI, &gEmuThunkPpiGuid, SecEmuThunkPpi);\r
\r
SecInitThunkProtocol ();\r
\r
# Entry Point of Emu Emulator\r
#\r
# Main executable file of Unix Emulator that loads PEI core after initialization finished.\r
-# Copyright (c) 2008 - 2019, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2008 - 2022, Intel Corporation. All rights reserved.<BR>\r
# Portions copyright (c) 2008 - 2011, Apple Inc. All rights reserved.<BR>\r
#\r
# SPDX-License-Identifier: BSD-2-Clause-Patent\r
gEmulatorPkgTokenSpaceGuid.PcdEmuFlashNvStorageFtwSpareBase\r
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize\r
gEmulatorPkgTokenSpaceGuid.PcdPeiServicesTablePage\r
+ gEmulatorPkgTokenSpaceGuid.PcdPersistentMemorySize\r
\r
[FeaturePcd]\r
gEmulatorPkgTokenSpaceGuid.PcdEmulatorLazyLoadSymbols\r
UINTN SystemAffinityMask;\r
INT32 LowBit;\r
UINTN ResetJumpCode;\r
+ EMU_THUNK_PPI *SecEmuThunkPpi;\r
\r
//\r
// Enable the privilege so that RTC driver can successfully run SetTime()\r
//\r
// PPIs pased into PEI_CORE\r
//\r
- AddThunkPpi (EFI_PEI_PPI_DESCRIPTOR_PPI, &gEmuThunkPpiGuid, &mSecEmuThunkPpi);\r
+ SecEmuThunkPpi = AllocateZeroPool (sizeof (EMU_THUNK_PPI) + FixedPcdGet32 (PcdPersistentMemorySize));\r
+ if (SecEmuThunkPpi == NULL) {\r
+ SecPrint ("ERROR : Can not allocate memory for SecEmuThunkPpi. Exiting.\n");\r
+ exit (1);\r
+ }\r
+\r
+ CopyMem (SecEmuThunkPpi, &mSecEmuThunkPpi, sizeof (EMU_THUNK_PPI));\r
+ SecEmuThunkPpi->PersistentMemorySize = FixedPcdGet32 (PcdPersistentMemorySize);\r
+ AddThunkPpi (EFI_PEI_PPI_DESCRIPTOR_PPI, &gEmuThunkPpiGuid, SecEmuThunkPpi);\r
AddThunkPpi (EFI_PEI_PPI_DESCRIPTOR_PPI, &gEfiPeiReset2PpiGuid, &mEmuReset2Ppi);\r
\r
//\r
\r
[Pcd]\r
gEfiMdeModulePkgTokenSpaceGuid.PcdInitValueInTempStack\r
-\r
+ gEmulatorPkgTokenSpaceGuid.PcdPersistentMemorySize\r
gEmulatorPkgTokenSpaceGuid.PcdEmuBootMode\r
gEmulatorPkgTokenSpaceGuid.PcdEmuFirmwareVolume\r
gEmulatorPkgTokenSpaceGuid.PcdEmuMemorySize\r