diff options
author | Star Zeng <star.zeng@intel.com> | 2015-11-18 08:06:21 +0000 |
---|---|---|
committer | vanjeff <vanjeff@Edk2> | 2015-11-18 08:06:21 +0000 |
commit | f295c2f6be7acef091e06582095c8d3f0811ea8c (patch) | |
tree | 70b6c6ec3dea61a22db5cdd3da470ce10a2d06b6 /IntelFrameworkPkg | |
parent | 65a512014904ce251bb183f41812595c0f8b256f (diff) | |
download | edk2-platforms-f295c2f6be7acef091e06582095c8d3f0811ea8c.tar.xz |
MdeModulePkg PeiCore: PEI dispatcher need retry to process NOT_DISPATCHED FV
A corner case like below will cause a NOT_DISPATCHED FV has no opportunity to
be dispatched.
1. FV_RECOVERY has SecCore, PeiCore and some other PEI modules, a module will
report FVMAIN_COMPACT and FV_RECOVERY2 in sequence.
2. FVMAIN_COMPACT has a FV image file with GUIDED FV image section in it.
3. FV_RECOVERY2 has DxeIpl and other PEI modules, the DxeIpl will install
SectionExtractionPpi
If ALL the PEIMs in FV_RECOVERY and FV_RECOVERY2 have DEPEX satisfied and
executed in one loop, PeimNeedingDispatch will be always FALSE, FVMAIN_COMPACT
will have no opportunity to be decompressed and dispatched as DxeIpl executes
after the first processing to FVMAIN_COMPACT.
The patch is to set PeimNeedingDispatch to TRUE when ProcessFvFile() not successfully,
then the NOT_DISPATCHED FV could have another opportunity to be processed.
(Sync patch r18781 from main trunk.)
Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Eugene Cohen <eugene@hp.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/branches/UDK2015@18872 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'IntelFrameworkPkg')
0 files changed, 0 insertions, 0 deletions