Commit Graph

252 Commits

Author SHA1 Message Date
lzeng14 6c85d16217 Add core FFS3 support, DxeCore.
Signed-off-by: lzeng14
Reviewed-by: lgao4

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12584 6f19259b-4bc3-4df7-8a09-765794883524
2011-10-27 09:23:19 +00:00
lgao4 f00237c1d2 Fix ICC9 build break.
Signed-off-by: lgao4

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12446 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-27 03:46:25 +00:00
lgao4 60c0073fd7 Remove ASSERT (EFI_IMAGE_MACHINE_TYPE_SUPPORTED (Image->Machine)) in StartImage.
Signed-off-by: lgao4
Reviewed-by: jyao1 rsun3


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12443 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-26 09:32:30 +00:00
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
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
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
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
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 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
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
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
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
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 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
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
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
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
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
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
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
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 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
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
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
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
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
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
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
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