Commit Graph

328 Commits

Author SHA1 Message Date
Star Zeng 201d2d21bd IntelFrameworkModulePkg GenericBdsLib: Do not assume perf entry count has no change
Current implementation assumes the performance entry count has no change from
multiple GetPerformanceMeasurement() while loops, it may cause the allocated buffer
for PerfEntriesAsDxeHandle at the first loop to be overflowed if the following loop has
the count changed.

This patch is also to sync the change at
commit R18417 "MdeModulePkg: Fix a performance data buffer overrun issue".

Cc: Ruiyu Ni <ruiyu.ni@intel.com>
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: Ruiyu Ni <ruiyu.ni@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18562 6f19259b-4bc3-4df7-8a09-765794883524
2015-09-30 04:30:34 +00:00
Liming Gao c91c8ba803 IntelFrameworkModulePkg: Ad the missing module UNI files.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Jeff Fan <jeff.fan@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18343 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-28 02:47:31 +00:00
Eric Dong 3d4d81310d IntelFrameworkModulePkg: Fix mixed Dos and Linux end of line format issue.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <eric.dong@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18322 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-27 01:00:37 +00:00
Eric Dong 1b30c2e61e Fixed build error for VS2008 toolchain.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <eric.dong@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18250 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-20 08:05:27 +00:00
Dandan Bi fa6c39dbfb IntelFrameworkModulePkg:Refine the code in LegacyBootMaintUiLib
Refine the code in LegacyBootMaintUiLib to prevent the potential risk.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Dandan Bi <dandan.bi@intel.com>

Reviewed-by: Qiu Shumin <shumin.qiu@intel.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18215 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-13 00:56:09 +00:00
Eric Dong 67b55c92fe LegacyBootMaintUi: Update copyright info, cover old code existed in old BdsDxe driver.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18162 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-05 07:08:02 +00:00
Dandan Bi 8ca1489ba6 IntelFrameworkModulePkg:Refine the code comments in LegacyBootMaintUiLib
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18152 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-04 09:13:47 +00:00
Eric Dong 3af6a17f64 Fixed GCC49 build fail issue.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <eric.dong@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18126 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-03 03:22:49 +00:00
Eric Dong e5632f3d86 Fixed GCC tool chain build fail.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <eric.dong@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18119 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-31 01:21:50 +00:00
Eric Dong 5a673ab299 Legacy Boot Maintenance UI part code split from IntelFrameworkModulePkg/Universal/BdsDxe driver.
This is the legacy part of the old BdsDxe driver.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18112 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-30 03:43:14 +00:00
Laszlo Ersek 1999fb3180 IntelFrameworkModulePkg: GenericBdsLib: set Status before use
The recent patch titled

  IntelFrameworkModulePkg/GenericBdsLib: remove AcpiS3->S3Save() call

has exposed a preexistent bug in the BdsLibBootViaBootOption() function,
and now the IA32 build of OVMF fails with:

  In function 'BdsLibBootViaBootOption':
  error: 'Status' may be used uninitialized in this function

Namely, we have the following (simplified) data flow:

  //
  // Status and ImageHandle both start out uninitialized
  //

  /* ... */
  ImageHandle = BdsExpandUsbShortFormDevicePath (DevicePath);
  /* ... */

  if (ImageHandle == NULL) {
    /* ... */
  }
  if ((ImageHandle == NULL) || (EFI_ERROR(Status))) {
    /* ... */
  */

If BdsExpandUsbShortFormDevicePath() returns a non-NULL value, then the
second "if" statement will check Status without the function having
initialized or assigned it.

When BdsExpandUsbShortFormDevicePath() returns non-NULL, Status should be
EFI_SUCCESS; so let us assign it that value up-front.

Note that the bug existed before the patch

  IntelFrameworkModulePkg/GenericBdsLib: remove AcpiS3->S3Save() call

That is, the bug was not introduced, only exposed, by the patch -- in the
pre-patch state, although the Status variable was set early and
unconditionally, the error code that it may have carried from the failed
gEfiAcpiS3SaveProtocolGuid lookup had nothing to do with the second "if"
statement above.

Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Jeff Fan <jeff.fan@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jeff Fan <jeff.fan@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18061 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-26 08:06:11 +00:00
Ard Biesheuvel 155f9d424c IntelFrameworkModulePkg/GenericBdsLib: remove AcpiS3->S3Save() call
The AcpiS3->S3Save() call needs to occur before the end-of-DXE event
is signalled. The end-of-DXE event needs to be signalled prior to
invoking any UEFI drivers, applications, or connecting consoles.

This means the call to S3Save() that occurs in BdsLibBootViaBootOption()
violates the ordering constraints, and should be removed. Since it is
the responsibility of the platform BDS to signal the end-of-DXE event,
it should also perform the AcpiS3->S3Save() call at an appropriate time.

Commit message update from Laszlo Ersek <lersek@redhat.com>:

Following Jiewen Yao's idea in

 http://thread.gmane.org/gmane.comp.bios.tianocore.devel/16088/focus=16146

platforms that
(1) use this exact instance of GenericBdsLib, *and*
(2) support S3

should now collect the S3 state
(3) in an End-of-Dxe callback in their AcpiS3SaveDxe drivers, *or*
(4) with an explicit AcpiS3->S3Save() call made to their AcpiS3SaveDxe
    drivers from their PlatformBdsLib instances.

OvmfPkg, which uses this GenericBdsLib instance, and has its own
AcpiS3SaveDxe fork, follows (3).

Vlv2TbltDevicePkg, which has a GenericBdsLib fork, and uses
IntelFrameworkModulePkg/Universal/Acpi/AcpiS3SaveDxe, follows (4).

There are no other platforms in the public edk2 repository that support
S3.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jiewen Yao <Jiewen.Yao@intel.com>
[lersek@redhat.com: updated commit message]
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Jeff Fan <jeff.fan@intel.com>
Cc: Jiewen Yao <Jiewen.Yao@intel.com>
Signed-off-by: Laszlo Ersek <lersek@redhat.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18036 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-26 08:02:19 +00:00
Hao Wu 885c3060c1 IntelFrameworkModulePkg GenericBdsLib: Potential read over memory boudary
This commit will resolve the issue brought by r17733.

StringBuffer1 = AllocateCopyPool (
                  MAX_STRING_LEN * sizeof (CHAR16),
                  L"Configuration changed. Reset to apply it Now."
                  );

The above using of AllocateCopyPool() will read contents out of the scope
of the constant string. Potential risk for the constant string allocated
at the boundary of memory region.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Qiu Shumin <shumin.qiu@intel.com>
Reviewed-by: Jeff Fan <jeff.fan@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17929 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-13 01:22:21 +00:00
Hao Wu cce50970ce IntelFrameworkModulePkg GenericBdsLib: Resolve array size mismatch
Match the size of array GaugeString defined in function
WriteBootToOsPerformanceData() with the size of field 'Token' defined in
struct PERF_DATA in MdeModulePkg\Include\Guid\Performance.h.

Doing so will ensure the size consistency when doing StrCpyS() between
PERF_DATA.Token and GaugeString (like here in Performance.c).

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17851 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-07 06:13:53 +00:00
Hao Wu d5cbc27b00 IntelFrameworkModulePkg PeiDxeDebugLib: Use safe string functions
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17734 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-30 06:26:20 +00:00
Hao Wu ed6d22e0f2 IntelFrameworkModulePkg GenericBdsLib: Use safe string functions
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17733 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-30 06:25:54 +00:00
Qiu Shumin 94e3eee6e8 IntelFrameworkModulePkg: Add %u and %lu support for DebugLib.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Qiu Shumin <shumin.qiu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17569 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-08 05:27:30 +00:00
Ruiyu Ni 9e3f171d81 IntelFrameworkModulePkg: Add LegacyBootManagerLib.
LegacyBootManagerLib is a NULL class library to work with UefiBootManagerLib
providing legacy boot support.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17330 6f19259b-4bc3-4df7-8a09-765794883524
2015-05-06 04:50:23 +00:00
Elvin Li c8a2836a82 IntelFrameworkModulePkg: Put report status code after event was signaled per PI spec.
For PI spec vol3, 
"EFI_SW_DXE_BS_PC_LEGACY_BOOT_EVENT   The event with GUID EFI_EVENT_LEGACY_BOOT_GUID was signaled."
"EFI_SW_DXE_BS_PC_READY_TO_BOOT_EVENT The EFI_EVENT_GROUP_READY_TO_BOOT event was signaled."
However, in current code base, they are reported before events were signaled. 

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Elvin Li <elvin.li@intel.com>
Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17124 6f19259b-4bc3-4df7-8a09-765794883524
2015-04-07 03:33:07 +00:00
Liming Gao 584ea2c8ef IntelFrameworkModulePkg: Move LzmaDecompress GUID
Move LzmaDecompress GUID definition from IntelFrameworkModulePkg to MdeModulePkg

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17110 6f19259b-4bc3-4df7-8a09-765794883524
2015-04-03 02:49:10 +00:00
Liming Gao 4569c9e655 IntelFrameworkModulePkg: Cleanup PeiDxeDebugLibReportStatusCode
Cleanup PeiDxeDebugLibReportStatusCode library instance not to depend on
IntelFrameworkPkg and IntelFrameworkModulePkg.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17109 6f19259b-4bc3-4df7-8a09-765794883524
2015-04-03 02:48:11 +00:00
Shumin Qiu 207f04793e IntelFrameworkModulePkg: Fix typo.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Shumin Qiu <shumin.qiu@intel.com>
Reviewed-by: Jeff Fan <jeff.fan@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17044 6f19259b-4bc3-4df7-8a09-765794883524
2015-03-13 08:05:02 +00:00
Liming Gao 30aba8d334 IntelFrameworkModulePkg: Update PeiDxeDebugLibReportStatusCode library
Implement new API DebugPrintLevelEnabled() to base on PCD PcdFixedDebugPrintErrorLevel.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16786 6f19259b-4bc3-4df7-8a09-765794883524
2015-02-06 06:32:49 +00:00
Shumin Qiu d8bf346886 Refine the format of GUID in INF files for IntelFrameworkModulePkg.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Shumin Qiu <shumin.qiu@intel.com>
Reviewed-by: Jeff Fan <jeff.fan@intel.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16614 6f19259b-4bc3-4df7-8a09-765794883524
2015-01-16 02:23:07 +00:00
Ruiyu Ni 32d258b5e7 Remove unnecessary RT attribute from LegacyDevOrder variable.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16545 6f19259b-4bc3-4df7-8a09-765794883524
2014-12-22 07:30:06 +00:00