Commit Graph

626 Commits

Author SHA1 Message Date
vanjeff d12a2ecb2a Updated GCD implementation to consume the correct EFI Resources Attributes(Capabilities) instead of the wrong EFI Resources Attributes(Settings).
ASSERT() if memory resource HOB includes protect memory setting but not included the corresponding protect memory capabilities

Signed-off-by: vanjeff
Reviewed-by: rsun3
Reviewed-by: mdkinney

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12158 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-18 02:05:46 +00:00
rsun3 495797c557 1. Add two performance measurement points for SMM performance measurement;
2. Introduce SmmCorePlatformHookLib library class defining two platform hook points. Update PI Smm Core to call the hook points before and after invoking registered SMI handlers. A NULL instance of this library class is implemented.

Note that after this check in, DSC files consuming the PiSmmCore.inf need to be updated to add a library instance for SmmCorePlatformHookLib library class.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12140 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-16 02:58:20 +00:00
oliviermartin f75316c3ab MdeModulePkg/Dxe: Move assertions inside CoreInsertGcdMapEntry()
CoreInsertGcdMapEntry() does not assume the new region could overlap two existing GCDs.
In this case, we need to call this function twice and the TopEntry or BottomEntry could
have been updated by the previous call.

Reviewed by: rsun3
Reviewed by: lgao4




git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12097 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-08 18:16:22 +00:00
andrewfish d042796c1a MdeModulePkg: Fix VS2008 warning.
This looks amlost like a bug in VS2008, please verify that the warning is fixed as I don't ahve a copy of VS2008.

signed-off-by: andrewfish



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12020 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-15 15:19:05 +00:00
andrewfish e47f0da408 MdeModulePkg: Add PcdDxeIplBuildPageTables for DxeIpl X64 to optionally not rebuild the page tables.
signed-off-by: andrewfish
reviewed-by: rsun3



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12016 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-14 02:31:02 +00:00
rsun3 c4c085a2a6 Fix an issue that there may be an infinite loop in the CoreInitializeMemoryServices() in Gcd.c of the DXE Core. Also update logic to use continue statements to reduce the level of nesting in the two loops that search the HOB lists. More comment are added.
Signed-off-by: rsun3
Reviewed-by: mdkinney
Reviewed-by: lgao4

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12015 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-13 08:40:55 +00:00
lgao4 619b3e0e8d Correct the status code value to EFI_SW_PC_INIT_END after PEIM returns control to PeiCore.
Signed-off-by: lgao4
Reviewed-by: rsun3

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12010 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-12 09:03:36 +00:00
niruiyu 284ee2e829 Fix the comments to follow UEFI Spec regarding how to check an EFI_HANDLE is valid/invalid.
Signed-off-by: niruiyu
Reviewed-by: lgao4

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11987 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-06 03:55:36 +00:00
jljusten 54cd17e984 MdeModulePkg DXE Core: Add Idle event during BootServices WaitForEvent
Signal an Idle event during BootServices WaitForEvent.

Signed-off-by: jljusten
Reviewed-by: mdkinney
Reviewed-by: rsun3

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11841 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-16 23:28:02 +00:00
lgao4 2b2f353371 Remove the unused TimerLib from PeiCore.
Signed-off-by: lgao4
Reviewed-by: rsun3


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11832 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-16 06:44:21 +00:00
niruiyu 31222776db Set *ImageHandle to NULL when LoadImage() returns EFI_ACCESS_DENIED.
Signed-off-by: niruiyu
Reviewed-by: jljusten

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11783 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-10 03:05:40 +00:00
niruiyu 772cba0943 Add assertion in PeiAllocatePool when out of resource.
Signed-off-by: niruiyu
Reviewed-by: mdkinney

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11776 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-09 02:52:35 +00:00
niruiyu 10fe0d814a Fix crash in GetMemoryMap() when memory type 0x80000000-0xFFFFFFFF was allocated by OS loader
Signed-off-by: niruiyu
Reviewed-by: lgao4
Reviewed-by: hhtian

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11774 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-09 02:01:19 +00:00
andrewfish 63e78d5254 Fix X64 clang warnings.
Reviewed by: Rui Sun
Approved by: Rui Sun



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11753 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-04 22:27:37 +00:00
niruiyu 9f72ced4c5 Update the comments of InstallConfigurationTable to follow UEFI Spec.
Signed-off-by: niruiyu
Reviewed-by: lgao4

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11716 6f19259b-4bc3-4df7-8a09-765794883524
2011-05-31 03:15:58 +00:00
li-elvin 3d0a23854e Add more status code in drivers.
Signed-off-by: li-elvin
Reviewed-by: jyao1
Reviewed-by: lgao4
Reviewed-by: erictian

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11706 6f19259b-4bc3-4df7-8a09-765794883524
2011-05-26 06:29:30 +00:00
erictian e439df5074 Make sure the return value of MapKey is correct by moving the assignment into memory lock protection region
Signed-off-by: erictian
Reviewed-by: rsun3

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11700 6f19259b-4bc3-4df7-8a09-765794883524
2011-05-25 03:04:31 +00:00
niruiyu 396e9039ae Add the DriverFamilyOverride support in DxeCore.
Signed-off-by: niruiyu
Reviewed-by: lgao4

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11698 6f19259b-4bc3-4df7-8a09-765794883524
2011-05-24 03:32:42 +00:00
lzeng14 deff65a4fd CalculateSum8() and CalculateSum16() defined in BaseLib are used to calculate checksum.
Signed-off-by: lzeng14
Reviewed-by: rsun3

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11674 6f19259b-4bc3-4df7-8a09-765794883524
2011-05-17 12:13:35 +00:00
rsun3 2c0f06f0b8 Add more checks to skip allocated SMRAM regions when searching for a largest free SMRAM region.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11514 6f19259b-4bc3-4df7-8a09-765794883524
2011-04-08 05:29:22 +00:00
mdkinney a36a9b3794 Fix LocateDevicePath() to return proper error status code. It was returning EFI_INVALID_PARAMETER if Device was NULL even if not handles matched the search criteria. The proper behavior is to return EFI_NOT_FOUND if not handles match the search criteria, and only return EFI_INVALID_PARAMETER if at least one match is found and Device is NULL.
Also update function header comment block for LocateDevicePath() to match UEFI Specification.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11406 6f19259b-4bc3-4df7-8a09-765794883524
2011-03-16 16:17:09 +00:00
ydong10 639710791a Enhance inf and dec file to follow specs.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11392 6f19259b-4bc3-4df7-8a09-765794883524
2011-03-14 08:43:59 +00:00
erictian f6dbfa544b add gEfiPeiMasterBootModeGuid dependency for getting right boot mode
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11388 6f19259b-4bc3-4df7-8a09-765794883524
2011-03-14 05:55:12 +00:00
vanjeff d0a3ead235 Changed TEMPORARY_RAM_SUPPORT_PPI to EFI_PEI_TEMPORARY_RAM_SUPPORT_PPI.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11385 6f19259b-4bc3-4df7-8a09-765794883524
2011-03-14 02:03:35 +00:00
lgao4 89cd8129f7 Update PeiCore and DxeCore to verify FFS data checksum.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11332 6f19259b-4bc3-4df7-8a09-765794883524
2011-02-23 03:09:55 +00:00
lgao4 9a33a65e58 Update DEBUG log information to specify SMM driver to be loaded in SmmCore
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11308 6f19259b-4bc3-4df7-8a09-765794883524
2011-02-12 01:46:33 +00:00
lgao4 d613c2a88b Correct typo in word in DxeCore.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11307 6f19259b-4bc3-4df7-8a09-765794883524
2011-02-12 01:34:05 +00:00
lgao4 b695e7ff4a Updates function description per UEFI2.3d. No impact is for functionality. The main changes include:
1. For LoadImage() service, EFI_ACCESS_DENIED return status is added, and EFI_SECURITY_VIOLATION return status description is updated. Meanwhile, EFI_PE32_IMAGE_PROTOCOL. LoadPeImage() in MdeModulePkg is also updated to match LoadImage() service.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11306 6f19259b-4bc3-4df7-8a09-765794883524
2011-02-12 01:29:17 +00:00
mdkinney 5d1cf216ed Fix bounds check on parameter of type EFI_GCD_IO_TYPE to use EfiGcdIoTypeMaximum instead of EfiGcdMemoryTypeMaximum. Also fix typo in DEBUG() message string for gDS->AllocateIoSpace() calls.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11268 6f19259b-4bc3-4df7-8a09-765794883524
2011-01-21 18:49:36 +00:00
mdkinney aa927cae81 Clean up GCD DEBUG() macros so DEBUG_CODE() is only used to enable/disable the DBG MMIO and GCD I/O map dumps
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11243 6f19259b-4bc3-4df7-8a09-765794883524
2011-01-11 23:11:23 +00:00
mdkinney f9d1f97c45 Add DEBUG() macros to all GCD services to monitor all changes to the GCD Memory and GCD I/O maps when DEBUG_GCD is set in PcdDebugPrintErrorLevel.
If DEBUG_PROPERTY_DEBUG_CODE_ENABLED is also set in PcdDebugPropertyMask, then the GCD Memory and I/O Maps will be dumped every time there is a GCD change.







git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11230 6f19259b-4bc3-4df7-8a09-765794883524
2011-01-06 02:51:08 +00:00
rsun3 96756716c0 when SMM Communication Protocol.Communicate() is called from within SMM, SMRAM is accessible so it is not necessary to check the SMRAM open/lock state via SMM ACCESS Protocol.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11142 6f19259b-4bc3-4df7-8a09-765794883524
2010-12-09 08:02:34 +00:00
mdkinney fa542a1e77 1) Change location of DEBUG() macro that prints the name of the FFS file being evaluated by the DXE Dispatcher to eliminate a duplicate print.
2) Change location of DEBUG() macro that prints the name of the FFS file being evaluated by the SMM Dispatcher to eliminate a duplicate print.
3) Remove all references and processing of SOR from the PiSmmCore.  Treat use of SOR in the dependency expression of an SMM Driver as an invalid depex opcode.
4) Remove all references for an SMM Driver being in the "Untrusted" state from the PiSmmCore.





git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11127 6f19259b-4bc3-4df7-8a09-765794883524
2010-12-06 21:55:14 +00:00
mdkinney 6a55eea3eb Update PEI/DXE/SMM dispatchers to include DEBUG ((DEBUG_DISPATCH, )) macros to log the evaluation of all dependency expressions.
This logging can be enabled by setting the DEBUG_DISPATCH bit(0x80) of the PCD gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel.





git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11117 6f19259b-4bc3-4df7-8a09-765794883524
2010-12-04 20:05:09 +00:00
lgao4 6eea8eaeef Add new PCD gEfiMdeModulePkgTokenSpaceGuid.PcdMaxEfiSystemTablePointerAddress for the MdeModulePkg that allows the platform DSC file to specify the address below which the EFI_SYSTEM_TABLE_POINTER structure is allocated.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11018 6f19259b-4bc3-4df7-8a09-765794883524
2010-11-09 07:54:53 +00:00
rsun3 0a6c090521 Complement fix for revision #10998 (Remove PI SMM IPL's dependency on CPU AP).
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11001 6f19259b-4bc3-4df7-8a09-765794883524
2010-11-04 05:27:23 +00:00
vanjeff 785b5f5a50 swaps the order of timer disable and memory map termination to make sure memory map unchanged.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10999 6f19259b-4bc3-4df7-8a09-765794883524
2010-11-03 03:21:29 +00:00
rsun3 07d9dc83f4 Remove PI SMM IPL's dependency on CPU AP so that PI SMM IPL can be dispatched before the CPU AP is installed.
If PI SMM IPL will be dispatched before the CPU AP is installed for a platform, the platform developer is expected to set cache-ability of SMRAM to WB earlier to improve performance of SMM initialization.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10998 6f19259b-4bc3-4df7-8a09-765794883524
2010-11-03 01:14:51 +00:00
ydong10 fbe12b79ae Refine code to make code run more safely.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10955 6f19259b-4bc3-4df7-8a09-765794883524
2010-10-18 11:33:26 +00:00
ydong10 cd7bfc2c63 Refine code to make code run safely.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10880 6f19259b-4bc3-4df7-8a09-765794883524
2010-09-16 04:51:25 +00:00
ydong10 c9325700d0 Refine soma code to make code run safely.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10877 6f19259b-4bc3-4df7-8a09-765794883524
2010-09-15 07:48:11 +00:00
pgao2 9a43bc39a9 Avoid DxeCore to reclaim PEI stack as IDT may be on it (like 32-bit OVMF).
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10825 6f19259b-4bc3-4df7-8a09-765794883524
2010-08-26 08:26:14 +00:00
mdkinney d0d41b52e0 Move registration of DXE Core with PeCoffExtraActionLib after the lib constructors have been executed.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10778 6f19259b-4bc3-4df7-8a09-765794883524
2010-08-06 23:09:49 +00:00
mdkinney b43619d0cd Update DXE Core so its own PE/COFF image is passed to the PeCoffExtraActionLib
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10769 6f19259b-4bc3-4df7-8a09-765794883524
2010-08-03 05:20:15 +00:00
lgao4 1d6ee65f82 Enhance FV2.ReadSection() to read GUIDED section raw data when its extraction guided protocol doesn’t exist.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10702 6f19259b-4bc3-4df7-8a09-765794883524
2010-07-28 01:12:18 +00:00
vanjeff 4cf7e0380e 1. Add init flag DEBUG_AGENT_INIT_DXE_AP.
2. Add definition DEBUG_AGENT_CONTINUE.
3. Update the definition of InitializeDebugAgent() more comments.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10660 6f19259b-4bc3-4df7-8a09-765794883524
2010-07-19 02:26:09 +00:00
andrewfish 635021c594 Fix 64-bit bug in DxeIpl. You can't cast an & UINT64 to a UINT32 *, as the upper 32-bits do not get updated. In my case there was data on the stack for the upper 32-bits and it caused the size to be greater than 4GB.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10659 6f19259b-4bc3-4df7-8a09-765794883524
2010-07-18 17:56:06 +00:00
andrewfish 1c8029e3aa Update the previous fix to only shadow the function for supported processor architectrues. The old way required non supported processor architectures to opt out.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10637 6f19259b-4bc3-4df7-8a09-765794883524
2010-07-07 23:27:08 +00:00
andrewfish 27172c0f36 Fix issue with ARM port. Image.c shadow code is not ANSI C and crashes on ARM. So I did the same thing that is done on Itanium and skipped the shadow for ARM architecture in all cases.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10636 6f19259b-4bc3-4df7-8a09-765794883524
2010-07-07 23:10:14 +00:00
mdkinney 6b22483ffb 1) Call ProcessNotifyList() to process all Dispatch Notifications after the Memory Discovered PPI is installed.
2) Add ProcessLibraryConstructorList() call when OldCoreData != NULL and OldCoreData->ShadowedPeiCore == NULL.
3) Make sure no lib functions are used prior to the ProcessLibraryConstructorList() call.
4) Clean up comments



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10611 6f19259b-4bc3-4df7-8a09-765794883524
2010-06-29 06:08:14 +00:00
rsun3 35f9e94ed4 Add a missing parameter description in the function header for CoreFindFreePagesI().
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10589 6f19259b-4bc3-4df7-8a09-765794883524
2010-06-17 07:18:53 +00:00
mdkinney 2345e7d4a4 1) Improve how memory usage is tracked in DXE Core
2) Update GetMemoryMap() to merge adjacent memory descriptors with identical types and attributes.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10579 6f19259b-4bc3-4df7-8a09-765794883524
2010-06-14 23:21:26 +00:00
lgao4 0e4483bc69 Fix DxeCore Dispatch Issue that DXE drivers may not be dispatched if they depend on the protocols produced by SMM driver.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10491 6f19259b-4bc3-4df7-8a09-765794883524
2010-05-14 08:27:28 +00:00
mdkinney ef05e06350 1) Fix IPF ICC 11.1 issue when /Ox is used related to the use of local variables and parameter across the transition when TEMP RAM is disabled.
2) Update the logic that computes the offset of the heap and stack from TEMP RAM to Permanent RAM to handle all possible offsets values.
3) Minor cleanups to the PEI_CORE_INSTANCE structure
4) Simplify the logic that manages the TEMP RAM to PERM RAM transition and clean up the related DEBUG() messages.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10481 6f19259b-4bc3-4df7-8a09-765794883524
2010-05-11 22:11:31 +00:00
xdu2 c16f9cc33d Minor comment update.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10477 6f19259b-4bc3-4df7-8a09-765794883524
2010-05-10 02:49:38 +00:00
mdkinney 4da3058929 Fix ICC 11.1 build break
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10467 6f19259b-4bc3-4df7-8a09-765794883524
2010-05-07 23:25:20 +00:00
lgao4 d7aaf1dcb5 Use new API GetSectionFromAnyFvByFileType() of MdePkg DxeServicesLib library to get PE data of SMM_CORE driver.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10457 6f19259b-4bc3-4df7-8a09-765794883524
2010-05-05 01:58:36 +00:00
hhtian cd5ebaa06d Update the copyright notice format
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10420 6f19259b-4bc3-4df7-8a09-765794883524
2010-04-24 09:49:11 +00:00
niruiyu 3140ceda76 Fix a bug that FV->ReadSection cannot get the EFI_SECTION_GUID_DEFINED type section data.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10384 6f19259b-4bc3-4df7-8a09-765794883524
2010-04-21 02:40:36 +00:00
klu2 c5d00b30c1 Fix the issue that GCC treat enum type as unsigned int which incompatible with UEFI spec's INT32.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10347 6f19259b-4bc3-4df7-8a09-765794883524
2010-04-07 02:33:16 +00:00
jljusten b295dfd486 MdeModulePkg: Fix warning with VS2005 toolchain on IA32
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10338 6f19259b-4bc3-4df7-8a09-765794883524
2010-04-05 03:43:36 +00:00
jgong5 38c7df9848 Avoid DEBUG_CLEAR_MEMORY clearing MemoryMap internal structure.
In CoreFreePages(), the following sequence might break the MemoryMap internal structure:
CoreConvertPages() -> CoreFreeMemoryMapStack() -> AllocateMemoryMapEntry() -> CoreAllocatePoolPages() -> DEBUG_CLEAR_MEMORY()

CoreConvertPages() will call CoreFreeMemoryMapStack() after it adds the freed memory range, so the latter might use the just freed memory range when calling AllocateMemoryMapEntry(). But CoreFreePages() will call DEBUG_CLEAR_MEMORY() after CoreConvertPages(). This might clear up the memory map entry structure.

The fix calls DEBUG_CLEAR_MEMORY() just after freed memory range is added in CoreConvertPages(), which is safe.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10335 6f19259b-4bc3-4df7-8a09-765794883524
2010-04-03 05:34:16 +00:00
jyao1 ab780ebf90 Change BufferSize from UINTN * to UINTN to eliminate pointer to pointer in SmmCore for security consideration.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10299 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-21 04:17:16 +00:00
jgong5 a5ca8fa772 Hold Memory Lock until DEBUG_CLEAR_MEMORY called in CoreFreePages().
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10284 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-19 04:22:35 +00:00
vanjeff 213fecefbb 1. update the definitions in debug agent library, rename DEBUG_AGENT_INIT_DXE to DEBUG_AGENT_INIT_DXE_CORE and add DEBUG_AGENT_INIT_S3.
2. disable debug timer interrupt in ExitBootServices().

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10239 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-13 16:52:46 +00:00
jchen20 b7250b714a Fixed a bug in LMFA code
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10233 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-12 04:35:00 +00:00
vanjeff df7aaeb998 roll back IDT_ENTRY counter to 32
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10229 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-11 02:04:04 +00:00
jchen20 9bfb494096 The patch attached is to fix the issue that LMFA feature is failed on OVMF. The root cause is that OVMF platform reserved 128k top memory range for EMU variable range before PEI memory range re-locate to specified memory range, which is quite different from real platform. The original implementation has an assumption that AllocatePage will NOT be invoked until PEI memory range is re-located to preassigned memory range, , which is TRUE in most real platform, but FALSE on OVMF platform. So This patch is to enhanced the memory resource HOB re-organization algorithm to eliminate the assumption.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10225 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-10 02:47:05 +00:00
qhuang8 4237d40b77 Minor update comment to remove unprintable character in source file.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10214 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-09 05:58:00 +00:00
jgong5 40e8cca588 Fix the SMRAM caching range base and size. The original code uses the biggest SMRAM range base and size to set the cache attribute by gDS->SetMemorySpaceAttributes(). This is not correct because the platform code might split the TSEG into several ranges. The fix searches and joins all the adjacent ranges to the biggest SMRAM range into a cacheable range so that TSEG can be cached as a whole.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10213 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-09 05:47:41 +00:00
rsun3 2d5ac15435 Fix a bug that a NULL pointer may be dereferenced.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10178 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-04 05:42:44 +00:00
jchen20 def75b5dad Fix a bug in load modules at fixed address which may potentially impact OS S3.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10175 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-04 03:16:55 +00:00
jchen20 f73b3df815 Fix a bug in LMFA which may potentially impact OS S3.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10174 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-04 03:10:41 +00:00
hhuan13 1fc17d768f Remove Size==0 branch in SmmAllocatePool()
The background is :

The SmmMemoryAllocationLib of one of the instance of MemoryAllocation library class. As in MdePkg comment for AllocatePool() : “If AllocationSize is 0, then a valid buffer of 0 size is returned.”,the SMM library implements AllocatePool by SMST service SmmAllocatePool which does NOT support the zero size.




git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10171 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-04 01:48:52 +00:00
rsun3 60cf9cfc14 Minor bug fix and robustness check improvement.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10168 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-03 09:40:16 +00:00
jchen20 3c447c2760 Enable "Load Module At fixed Address" feature in SMM Core
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10166 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-03 05:45:50 +00:00
jyao1 06b07ce37c Change the minimal SMM core size from 1MB to 256KB-4K.
Some platforms only enable 1MB, after reserve 1 page for SMM S3. There is at most 1MB-4KB for SMM core.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10158 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-03 02:04:37 +00:00
hhuan13 52c0d06b94 Fix K8 scan issues
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10151 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-02 02:58:03 +00:00
klu2 ccf0f68d73 Add checking whether FvCount is overflow when new unknown FvInfoPpi is dispatched.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10146 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-01 08:59:00 +00:00
rsun3 2292758d5c Minor coding style fix.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10145 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-01 08:38:46 +00:00
jchen20 77215d10c0 update DxeIpl to use EFI_S3_RESUME2_PPI instead of EFI_S3_RESUME_PPI
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10138 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-01 07:11:28 +00:00
mdkinney 3df4b6e7e9 Update PI SMM Core to ignore memory ranges from SMRAM Descriptors that are already allocated or not tested or not ECC initialized yet
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10132 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-01 05:32:59 +00:00
hhuan13 3c5963cf29 Update PiSmmCore:
1. Update PiSmmIpl.c DoCommunicate() to prevent exception in case call SmiManage directly if SMRAM is closed or locked. That case causes exception.
2. Update PiSmmCore.c SmmEntryPoint(). It is not required to save/restore InSmm. Because SMM is non-reentrant.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10131 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-01 04:29:21 +00:00
vanjeff e7af83aece 1. Refine debug agent library.
2. DxeCore and DxeIpl consume debug agent library. 

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10119 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-27 17:04:12 +00:00
geekboy15a 3978f5d92b Fixed GCC build issue caused by converting a pointer to an integer of a larger size.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10115 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-26 19:17:16 +00:00
xli24 64ca68027b Add parameter checking for PEI service AllocatePages(), according to PI1.2 errata A.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10112 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-26 09:26:52 +00:00
rsun3 d2fbaaab17 Add more code robustness check for modules under MdeModulePkg.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10108 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-26 08:53:27 +00:00
jchen20 4fb720763c Fix a bug in "Load module At fixed address" to enable it on IPF platform
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10106 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-26 07:43:00 +00:00
hhuan13 5b422a7bbd Clean up PiSmmCore to pass K8 scan
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10098 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-26 04:35:23 +00:00
jgong5 34f60e4d77 Add EfiCpuArchProtocol dependency for PiSmmIpl module. The reason to add this is PiSmmIpl will call gDS->SetMemorySpaceAttributes() which will locate CPU Arch Protocol to set MTRRs. Without this dependency, the locate might fail and MTRRs are never set in this case.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10097 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-26 03:35:47 +00:00
mdkinney e42e94041f Add PI SMM IPL and PI SMM Core
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10094 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-25 23:41:19 +00:00
klu2 8976547970 Clean up EFI_SPECIFICATION_VERSION and PI_SPECIFICATION_VERSION.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10072 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-25 16:31:22 +00:00
vanjeff b6d539c869 roll back changing on save and restore interrupt status, it needn't doing.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10060 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-24 08:30:53 +00:00
rsun3 12fbc893e4 Minor comment fix.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10058 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-24 08:09:39 +00:00
jgong5 f505090909 Avoid shadowing PE image read function on IPF
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10057 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-24 07:00:37 +00:00
lgao4 6bfbb5f0e0 1. Correct File header to ## @file
2. Remove unnecessary .common] postfix on section.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10052 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-24 00:21:16 +00:00
mdkinney cd539d485d Fix comment
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10048 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-23 17:59:48 +00:00
jgong5 25973fc3ea Enhance memory copy logic for PEI core image read. The change uses CopyMem() library function for unshadowed version and uses inline implementation for a shadowed version. This reduces PE image reading time to 1/5 - 1/10 when code cache is disabled. The change also fixed a memory leak when allocating shadow space for image read function.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10038 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-22 05:48:06 +00:00
andrewfish 3351d21fe1 Cleanup HOB DEBUG prints
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10020 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-17 01:12:55 +00:00
mdkinney 74e44290e2 1) Fix build issues
2) Change ARCHITECTURAL_PROTOCOL_ENTRY name to EFI_CORE_PROTOCOL_NOTIFY_ENTRY so it can be used for both Architectural Protocols and optional protocols that the DXE Core may use.  Also remove BOOLEAN ArchitecturalProtocol field, so it is back to its original form.
3) Put mArchProtocols[] back to its original form, but add a NULL entry at the end so the end of the table can be easily detected in loops
4) Add mOptionalProtocols[] that at this time only has the SMM Base 2 Protocol in it.
5) Add NULL entry to mMissingProtocols[] so the end of the table can be easily detected.
6) Update all loops on mArchProtocols[], mOptionalProtocols, and mMissingProtocols[] to remove Index(s) and simply looks for a NULL ProtocolGuid to find the end of the table.
7) Update protocol notify events to pass the associated EFI_CORE_PROTOCOL_NOTIFY_ENTRY * as the Context parameter.   This simplifies GenericProtocolNotify() by completely eliminating the search loop.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10016 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-16 20:59:57 +00:00
andrewfish 8e90dd6b54 Clean up HOB debug prints
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10012 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-16 03:05:59 +00:00
andrewfish b33339fa64 Fix crash in UnixPkg and BeagleBoard caused by gSmmBase2 getting added to the now incorectly named mARchProtocols list. CoreDispatchMissingArchProtocols() did to check to see if the element was an AP (not all are now). Also Missing entry was not bounds checked, it was assumed to be <= Index witch is no longer true. So in both UnixPkg and BeagleBoard the loop was blowing past the end and garbage data caused page faults. Also add m prefix to global.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10011 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-16 02:52:15 +00:00
mdkinney 0803854bc1 Update DXE Core to be compatible with PI 1.2 SMM Drivers.
PI 1.2 SMM Drivers are allowed to call UEFI/DXE services and Protocols from the entry point of the PI 1.2 SMM Driver.  These UEFI/DXE services and Protocols may directly or indirectly calls the UEFI Boot Services RaiseTPL() and RestoreTPL().  These UEFI Boot Services use the CPU Architectural Protocol to enable interrupts if the TPL level is below TPL_HIGH_LEVEL and enable interrupts of the TPL is at TPL_HIGH_LEVEL.  Interrupts should be masked while executing SMM drivers, so if a direct or indirect call to the UEFI Boot Service RestoreTPL() would enable interrupts, then an interrupt could be incorrectly delivered in SMM context.  

The solution is for the DXE Core to register for the PI 1.2 SMM Base2 Protocol.  If that protocol is present in the platform, then the DXE Core can use the SMM Base 2 Protocol's InSmm() function to determine if the platform is currently executing in SMM content.  If the current context is in SMM, then do not allow any requests to be forwarded to the CPU Architecture Protocol to enable interrupts.





git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9997 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-13 01:57:22 +00:00
klu2 20ead7252b Fix the issue that unknown format FV in Fvhob is installed for FvInfoPpi more than one time. The fixing is search dispatched Fv database and cached unknown Fv information for all Fv in FvHob, if Fv has been identified by PeiCore, then no need install FvInfoPpi for it again.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9984 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-11 05:49:48 +00:00
rsun3 4140a6635b Coding style fix and minor improvements.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9977 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-11 02:33:16 +00:00
vanjeff 0cf27ce078 a)Save and disable CPU interrupt before calling AsmWriteIdtr().
b)Restore CPU interrupt status after callng AsmWriteIdtr().


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9965 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-10 06:48:34 +00:00
jchen20 852081fc68 revise the debug message to add 0x in front of the HEX number for consistency
replace FixedPcdGetXX with PcdGetXX to access PcdLoadModuleAtFixAddressEnable

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9964 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-10 06:10:53 +00:00
jchen20 99ff63cf03 change the GetPcd64 to FixedGetPcd64 to pass ECC
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9957 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-09 09:52:46 +00:00
erictian 853adefc0c format uniform: move tab to blank.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9949 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-08 05:54:54 +00:00
qhuang8 58125fb3f9 Remove DEBUG_LOAD for InstallProtocolInterface() to align with PPI installation debug message in PeiCore.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9945 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-08 03:14:15 +00:00
jchen20 ebfb7bb55b modified to pass the VS2003 build
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9944 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-08 03:13:09 +00:00
jchen20 e18fa16721 modified to pass the ICC build
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9939 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-05 08:34:15 +00:00
jchen20 54ea99a798 Enable the Load Module At fixed Address feature
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9937 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-05 07:54:16 +00:00
jgong5 087e13cbe2 Enable PEI core to differentiate PEIMs in performance log by passing PEIM file handles
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9927 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-04 04:31:12 +00:00
mdkinney 188e4e8444 Remove unnecessary use of FixedPcdxxx() functions and [FixedPcd] INF sections. These should only be used for PCDs that are used to pre-init global variables, pre-init global structures, or size arrays.
Do some minor clean ups to INF files
 


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9868 6f19259b-4bc3-4df7-8a09-765794883524
2010-01-29 23:39:48 +00:00
xli24 f9876ecf8a Remove reference to PCDs of status code value. Use macros introduced in PI1.2 instead.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9833 6f19259b-4bc3-4df7-8a09-765794883524
2010-01-27 04:00:58 +00:00
lgao4 414bdfb663 Print the warning information for the image without relocation only when load it into memory.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9822 6f19259b-4bc3-4df7-8a09-765794883524
2010-01-26 06:37:15 +00:00
klu2 2e76dc7e79 Remove ASSERT() to make AllocatePool() service match PI spec.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9815 6f19259b-4bc3-4df7-8a09-765794883524
2010-01-26 04:28:30 +00:00
klu2 b4d856a6b5 Fix the issue that accessing for unaligned address break IPF
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9809 6f19259b-4bc3-4df7-8a09-765794883524
2010-01-25 09:56:20 +00:00
lgao4 341a658fca Correct PeiCore not dispatch the register for shadow image without relocation.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9796 6f19259b-4bc3-4df7-8a09-765794883524
2010-01-24 12:55:59 +00:00
rsun3 1ccdbf2a3e Improve coding style in MdeModulePkg.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9793 6f19259b-4bc3-4df7-8a09-765794883524
2010-01-19 06:42:21 +00:00
lgao4 bfd4a3f1b4 Update PeiLoadFilePpi produced by PeiCore to load only images with relocation into memory.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9775 6f19259b-4bc3-4df7-8a09-765794883524
2010-01-15 09:48:37 +00:00
rsun3 aa75dfeccd Fix some coding style issues in MdeModulePkg.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9774 6f19259b-4bc3-4df7-8a09-765794883524
2010-01-15 08:03:23 +00:00
rsun3 c11fa40c4e Fix the issue in MdeModulePkg that mismatch between PCD type and the PCD Lib API to get the PCD.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9751 6f19259b-4bc3-4df7-8a09-765794883524
2010-01-14 09:46:12 +00:00
klu2 1c738c8f97 When found the file according to given file name guid, PeiFfs2FvPpiFindFileByName() should break the searching loop and return success.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9742 6f19259b-4bc3-4df7-8a09-765794883524
2010-01-14 05:31:07 +00:00
mdkinney f4391d63e0 Update INF file to properly declare which PCDs must be Fixed, and update PCD usage that does not require the FixedPcdGetxx() access method.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9732 6f19259b-4bc3-4df7-8a09-765794883524
2010-01-14 01:59:30 +00:00
mdkinney 1427885873 Cleanup INF file for PEI Core
1) Remove references to CPU I/O PPI and PCI CFG2 PPI.  The PEI Core does have the PEI Services Table that caches a copy of these, but the PEI Core never produces a real version of these PPIs.  Instead, the PEI Core only has a null implementation of the APIs so we can catch PIEMs that call these services before they are properly installed.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9731 6f19259b-4bc3-4df7-8a09-765794883524
2010-01-14 01:40:51 +00:00
klu2 8fdcc4123b check whether FvHandle is NULL for FfsGetVolumeInfo() interface.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9664 6f19259b-4bc3-4df7-8a09-765794883524
2010-01-04 05:20:18 +00:00
klu2 8d415937c8 Add default implementation of EFI_CPU_IO_PPI and EFI_PCI_CFG2_PPI for EFI_SERVICES_TABLE.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9662 6f19259b-4bc3-4df7-8a09-765794883524
2010-01-04 04:36:37 +00:00
xli24 dc05231352 Fix ICC compiler warning.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9612 6f19259b-4bc3-4df7-8a09-765794883524
2009-12-25 08:05:53 +00:00
klu2 f335832963 Add fixing for supporting third-party FV in unknown format.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9601 6f19259b-4bc3-4df7-8a09-765794883524
2009-12-25 02:28:47 +00:00
davidhuang 202c32790f PI 1.1 SMM Feature Check-in
1. Update DxeMain to support COMBINED_DXE_SMM driver dispatch.
2. Add ReportStatusCodeRouter SMM part.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9591 6f19259b-4bc3-4df7-8a09-765794883524
2009-12-23 06:51:36 +00:00
lgao4 6320fa42c9 Produce LoadPeImage protocol only in framework compatibility mode.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9586 6f19259b-4bc3-4df7-8a09-765794883524
2009-12-22 08:02:33 +00:00
klu2 dc6f9b3542 Move the Fv updating of PeiCore's internal structure PrivateData out of the implementation of build-in Ffs2's EFI_PEI_FIRMWARE_VOLUME_PPI. Because this PPI maybe provided by other PEIM/Sec.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9510 6f19259b-4bc3-4df7-8a09-765794883524
2009-12-03 05:41:05 +00:00
klu2 7ec939170c Remove the tab characters.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9509 6f19259b-4bc3-4df7-8a09-765794883524
2009-12-03 02:51:50 +00:00
klu2 8e0e40ed3d After PeiCore is shadowed into permanent memory, the pointers to build-in Ffs2 FvPpi should be also fixed up to be pointed to the one in permanent memory.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9508 6f19259b-4bc3-4df7-8a09-765794883524
2009-12-03 02:48:05 +00:00
lgao4 a13df02ed5 Correct error status to EFI_NOT_FOUND when the image can't be got.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9502 6f19259b-4bc3-4df7-8a09-765794883524
2009-12-01 10:15:43 +00:00
klu2 595d4b4c24 The FV size in EFI_FV_INFO has been excluded the length of FV header, so no need subtract the length of FV header again when compute the length of Apriori file.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9494 6f19259b-4bc3-4df7-8a09-765794883524
2009-11-27 02:38:32 +00:00
lgao4 7748df3da9 Apply GetFileBufferByFilePath API of DxeServicesLib to replace local CoreOpenImageFile function.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9487 6f19259b-4bc3-4df7-8a09-765794883524
2009-11-26 01:08:36 +00:00
klu2 3e4c5b49e4 Add checking for VolumeHandle, if VolumeHandle is NULL, return EFI_INVALID_PARAMETER
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9482 6f19259b-4bc3-4df7-8a09-765794883524
2009-11-25 06:26:03 +00:00
xli24 5a9403b8f3 Following 3 updates are for spec update published in PI 1.2.
1. Rename EFI_PEI_NEXT_VARIABLE_NAME2 to EFI_PEI_GET_NEXT_VARIABLE_NAME2, as PI 1.2 specifies.
2. Add return status description for PEI Service FfsGetVolumeInfo.
3. Update parameter description for EFI_PEI_READ_ONLY_VARIABLE2_PPI.NextVariableName().

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9438 6f19259b-4bc3-4df7-8a09-765794883524
2009-11-17 15:00:28 +00:00
klu2 1b620adba6 Remove a typo
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9429 6f19259b-4bc3-4df7-8a09-765794883524
2009-11-16 04:53:48 +00:00
klu2 ca577976b4 Initialize the FileHandle to NULL, before search FV image file in discoveried FV
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9428 6f19259b-4bc3-4df7-8a09-765794883524
2009-11-16 04:52:29 +00:00
klu2 2f016ba866 To make backward compatiblity, if can not find corresponding the handle of FV then treat FV as build-in FFS2 format and memory mapped FV that FV handle is pointed to the address of first byte of FV.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9409 6f19259b-4bc3-4df7-8a09-765794883524
2009-11-11 05:51:45 +00:00
klu2 3b428adef9 Enabling EFI_PEI_FIRMWARE_VOLUME_PPI introduced by PI1.2.
1, Implement EFI_PEI_FIRMWARE_VOLUME_PPI for FFS2 format as build-in supporting FV format in PeiCore.
2, Reduce the assumption of memory-mapped FV in PeiCore. PeiCore should access FV via EFI_PEI_FIRMWARE_VOLUME_PPI interface but not cast FvHandle/FileHandle to EFI_FIRMWARE_VOLUME_HEADER/EFI_FV_FILE_HEADER directly.
3, Reduce AllFv[] and AllFvCount in PEI_CORE_INSTANCE structure. Original PEI_CORE_INSTANCE use AllFv[] and Fv[] array to manage discovered FV and dispatched FV. But not need to make thing too complex. Now PEI_CORE_FV_HANDLE array of Fv[] will take responsibility to manage all FV instance and status.
4, Fix the bug use PeiDispatcher use wrong index for PeiFfsFindNextVolume(), 
5, Fix the bug in PeiFfsFindNextVolume(), if instance is not found, *VolumeHandle should be set to NULL but not VolumeHandle was set to NULL.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9407 6f19259b-4bc3-4df7-8a09-765794883524
2009-11-11 03:27:39 +00:00
lgao4 6d9a0f280d Update comments on setting >= 8 bytes Fv Alignment.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9372 6f19259b-4bc3-4df7-8a09-765794883524
2009-10-26 09:14:47 +00:00
jchen20 c2a19e9235 For now PEI Core LoadImage() service to always call LoadAndRelocatePeCoffImage() even for XIP PEIMs.However the AllocatePage invoked in S3 path will make system assert. The patch is to fix it.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9368 6f19259b-4bc3-4df7-8a09-765794883524
2009-10-26 06:54:55 +00:00
jljusten 6e6971f0e2 PEI Core: Remove unused variable in PeiLoadImageLoadImage function.
The ICC compiler generated a warning due to this unused variable.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9334 6f19259b-4bc3-4df7-8a09-765794883524
2009-10-08 21:35:03 +00:00
jljusten e3d7cceb99 Fix warnings generated by GCC.
These warnings seem to have been triggered by the recent change of
EFI_STATUS from INTN to UINTN.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9329 6f19259b-4bc3-4df7-8a09-765794883524
2009-10-02 06:40:58 +00:00
mdkinney 43ada17c28 Update PEI Core LoadImage() service to always call LoadAndRelocatePeCoffImage() even for XIP PEIMs. This will guarantee that the PE/COFF Extra Action Lib will be called for all PE/COFF images, even XIP PEIMs.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9327 6f19259b-4bc3-4df7-8a09-765794883524
2009-10-01 23:49:36 +00:00