mirror_edk2.git
5 years agoMdePkg: Add TPM TIS definition.
Yao, Jiewen [Tue, 26 Jan 2016 01:26:58 +0000 (01:26 +0000)]
MdePkg: Add TPM TIS definition.

TPM TIS (TPM Interface Specification) is TCG standard.
Add definition here.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: "Yao, Jiewen" <jiewen.yao@intel.com>
Reviewed-by: "Zhang, Chao B" <chao.b.zhang@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19739 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoMdePkg: Add TPM PTP definition.
Yao, Jiewen [Tue, 26 Jan 2016 01:26:45 +0000 (01:26 +0000)]
MdePkg: Add TPM PTP definition.

TPM PTP (Platform TPM Profile) is TCG standard.
Add definition here.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: "Yao, Jiewen" <jiewen.yao@intel.com>
Reviewed-by: "Zhang, Chao B" <chao.b.zhang@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19738 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoMdeModulePkg/.../IdeMode: correctly report length of returned data
Paolo Bonzini [Mon, 25 Jan 2016 11:33:37 +0000 (11:33 +0000)]
MdeModulePkg/.../IdeMode: correctly report length of returned data

For some SCSI commands, notably INQUIRY, it's relatively common for
the device to provide less data than we intended to read, and for
this reason EFI_EXT_SCSI_PASS_THRU_SCSI_REQUEST_PACKET makes
InTransferLength and OutTransferLength read-write.  Make ATAPI
aware of this.

This makes it possible to handle EFI_NOT_READY always, not just
for read as done in r19685.

I've chosen to use a break statement instead of calling
CheckStatusRegister directly; the break statement reaches a
pre-existing call the CheckStatusRegister function.  This
ensures that the assignment to *ByteCount is not missed, and
adds a further sanity check to DRQClear.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19737 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoNt32Pkg: Fix asserts from running Nt32 64-bit on Win8
Cinnamon Shia [Mon, 25 Jan 2016 04:45:55 +0000 (04:45 +0000)]
Nt32Pkg: Fix asserts from running Nt32 64-bit on Win8

On Windows 8, 64-bit NT32 images are loaded above 4GB.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Cinnamon Shia <cinnamon.shia@hpe.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19736 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoMdeModulePkg: HiiDatabase: Refine the code to make it more safely.
Eric Dong [Mon, 25 Jan 2016 03:38:19 +0000 (03:38 +0000)]
MdeModulePkg: HiiDatabase: Refine the code to make it more safely.

Refine the code to avoid potential buffer overflow or use NULL pointer.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19735 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoSourceLevelDebugPkg: DebugCommunicationLibUsb3: Update local variable type.
Eric Dong [Mon, 25 Jan 2016 03:33:45 +0000 (03:33 +0000)]
SourceLevelDebugPkg: DebugCommunicationLibUsb3: Update local variable type.

Update the local variable type to avoid potential data overflow.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Hao Wu <hao.wu@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19734 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoSecurityPkg: Update TCG PPI "1.3" for TCG2.
Yao, Jiewen [Fri, 22 Jan 2016 06:30:08 +0000 (06:30 +0000)]
SecurityPkg: Update TCG PPI "1.3" for TCG2.

The Tcg2Smm follows TCG PPI 1.3 specification.
This patch updates the ASL code string to 1.3.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: "Yao, Jiewen" <jiewen.yao@intel.com>
Reviewed-by: "Zhang, Chao B" <chao.b.zhang@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19733 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoQuarkPlatformPkg: Add MEASURED_BOOT_ENABLE feature
Michael Kinney [Thu, 21 Jan 2016 19:30:43 +0000 (19:30 +0000)]
QuarkPlatformPkg: Add MEASURED_BOOT_ENABLE feature

Add MEASURED_BOOT_ENABLE flag
Add TPM_12_HARDWARE flag
Add TrEEConfigPei to detect TPM 1.2 hardware device
Use Tpm12DeviceLib instance for Atmel I2C TPM
Use Tpm12DeviceLib instance for Infineon I2C TPM
Add TcgPei and TcgDxe modules for TPM 1.2 support
Clean up TpmMeasurementLib mappings

Cc: Kelly Steele <kelly.steele@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>
Reviewed-by: Kelly Steele <kelly.steele@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19732 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoQuarkPlatformPkg: Add Tpm12DeviceLib instance for Infineon I2C TPM
Michael Kinney [Thu, 21 Jan 2016 19:30:36 +0000 (19:30 +0000)]
QuarkPlatformPkg: Add Tpm12DeviceLib instance for Infineon I2C TPM

Add Tpm12DeviceLib instance for Infineon I2C TPM

Cc: Kelly Steele <kelly.steele@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>
Reviewed-by: Kelly Steele <kelly.steele@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19731 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoQuarkPlatformPkg: Add Tpm12DeviceLib instance for Atmel I2C TPM
Michael Kinney [Thu, 21 Jan 2016 19:30:29 +0000 (19:30 +0000)]
QuarkPlatformPkg: Add Tpm12DeviceLib instance for Atmel I2C TPM

Add new Tpm12DeviceLib instance for an Atmel I2C TPM

Cc: Kelly Steele <kelly.steele@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>
Reviewed-by: Kelly Steele <kelly.steele@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19730 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoSecurityPkg/TcgDxe: Use updated Tpm12CommandLib APIs
Michael Kinney [Thu, 21 Jan 2016 19:30:21 +0000 (19:30 +0000)]
SecurityPkg/TcgDxe: Use updated Tpm12CommandLib APIs

Use the following new APIs in Tpm12CommandLib and remove duplicate
code from TcgPei and TcgDxe:
  Tpm12Extend()
  Tpm12PhysicalPresence()
  Tpm12ContinueSelfTest()
  Tpm12GetCapabilityFlagPermanent()
  Tpm12GetCapabilityFlagVolatile()

Cc: Chao Zhang <chao.b.zhang@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>
Reviewed-by: Chao Zhang <chao.b.zhang@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19729 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoSecurityPkg/TcgPei: Use updated Tpm12CommandLib APIs
Michael Kinney [Thu, 21 Jan 2016 19:30:14 +0000 (19:30 +0000)]
SecurityPkg/TcgPei: Use updated Tpm12CommandLib APIs

Use the following new APIs in Tpm12CommandLib and remove duplicate
code from TcgPei and TcgDxe:
  Tpm12Extend()
  Tpm12PhysicalPresence()
  Tpm12ContinueSelfTest()
  Tpm12GetCapabilityFlagPermanent()
  Tpm12GetCapabilityFlagVolatile()

Cc: Chao Zhang <chao.b.zhang@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>
Reviewed-by: Chao Zhang <chao.b.zhang@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19728 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoSecurityPkg/Tpm12CommandLib: Add TPM 1.2 commands used by TCG modules
Michael Kinney [Thu, 21 Jan 2016 19:30:05 +0000 (19:30 +0000)]
SecurityPkg/Tpm12CommandLib: Add TPM 1.2 commands used by TCG modules

Add the following APIs that are required by TcgPei and/or TcgDxe to
the Tpm12CommandLib instance:
  Tpm12Extend()
  Tpm12PhysicalPresence()
  Tpm12ContinueSelfTest()
  Tpm12GetCapabilityFlagPermanent()
  Tpm12GetCapabilityFlagVolatile()

Cc: Chao Zhang <chao.b.zhang@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>
Reviewed-by: Chao Zhang <chao.b.zhang@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19727 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoSecurityPkg/Tpm12CommandLib.h: Add TPM 1.2 commands used by TCG modules
Michael Kinney [Thu, 21 Jan 2016 19:29:56 +0000 (19:29 +0000)]
SecurityPkg/Tpm12CommandLib.h: Add TPM 1.2 commands used by TCG modules

Add the following APIs that are required by TcgPei and/or TcgDxe:
  Tpm12Extend()
  Tpm12PhysicalPresence()
  Tpm12ContinueSelfTest()
  Tpm12GetCapabilityFlagPermanent()
  Tpm12GetCapabilityFlagVolatile()

Cc: Chao Zhang <chao.b.zhang@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>
Reviewed-by: Chao Zhang <chao.b.zhang@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19726 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoSecurityPkg/Tcg2Config: Remove use of IoLib
Michael Kinney [Thu, 21 Jan 2016 19:29:50 +0000 (19:29 +0000)]
SecurityPkg/Tcg2Config: Remove use of IoLib

Remove the use of the IoLib and Mmioxx() calls to detect dTPM.
This module calls the Tpm12DeviceLib to detect a TPM and the
implementation of the Tpm12DeviceLib for dTPM performs the same
Mmioxx() calls to detect a dTPM.  This change makes this module
more generic and portable by maximizing the use of the Tpm12DeviceLib
abstraction for TPM detection.

Cc: Chao Zhang <chao.b.zhang@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>
Reviewed-by: Chao Zhang <chao.b.zhang@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19725 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoSecurityPkg/TrEEConfig: Remove use of IoLib
Michael Kinney [Thu, 21 Jan 2016 19:29:43 +0000 (19:29 +0000)]
SecurityPkg/TrEEConfig: Remove use of IoLib

Remove the use of the IoLib and Mmioxx() calls to detect dTPM.
This module calls the Tpm12DeviceLib to detect a TPM and the
implementation of the Tpm12DeviceLib for dTPM performs the same
Mmioxx() calls to detect a dTPM.  This change makes this module
more generic and portable by maximizing the use of the Tpm12DeviceLib
abstraction for TPM detection.

Cc: Chao Zhang <chao.b.zhang@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>
Reviewed-by: Chao Zhang <chao.b.zhang@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19724 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoSecurityPkg/TcgConfigDxe: Replace TpmCommLib with Tpm12DeviceLib
Michael Kinney [Thu, 21 Jan 2016 19:29:35 +0000 (19:29 +0000)]
SecurityPkg/TcgConfigDxe: Replace TpmCommLib with Tpm12DeviceLib

Update TCG drivers for TPM 1.2 devices to use Tpm12DeviceLib instead
of TpmCommLib.  This is required to support TPM 1.2 hardware devices
that are not on LPC bus.

Cc: Chao Zhang <chao.b.zhang@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>
Reviewed-by: Chao Zhang <chao.b.zhang@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19723 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoSecurityPkg/TcgDxe: Replace TpmCommLib with Tpm12DeviceLib
Michael Kinney [Thu, 21 Jan 2016 19:29:28 +0000 (19:29 +0000)]
SecurityPkg/TcgDxe: Replace TpmCommLib with Tpm12DeviceLib

Update TCG drivers for TPM 1.2 devices to use Tpm12DeviceLib instead
of TpmCommLib.  This is required to support TPM 1.2 hardware devices
that are not on LPC bus.

The current versions of the TCG PEIM and DXE driver contain
MMIO reads/writes to a TPM attached to an LPC bus.  In order
to support TPMs that are connected to other bus types, the
TGC PEIM and DXE drivers must be updated to not perform any
direct register accesses to any TPMs.

Cc: Chao Zhang <chao.b.zhang@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>
Reviewed-by: Chao Zhang <chao.b.zhang@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19722 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoSecurityPkg/TcgPei: Replace TpmCommLib with Tpm12DeviceLib
Michael Kinney [Thu, 21 Jan 2016 19:29:19 +0000 (19:29 +0000)]
SecurityPkg/TcgPei: Replace TpmCommLib with Tpm12DeviceLib

Update TCG drivers for TPM 1.2 devices to use Tpm12DeviceLib instead
of TpmCommLib.  This is required to support TPM 1.2 hardware devices
that are not on LPC bus.

The current versions of the TCG PEIM and DXE driver contain
MMIO reads/writes to a TPM attached to an LPC bus.  In order
to support TPMs that are connected to other bus types, the
TGC PEIM and DXE drivers must be updated to not perform any
direct register accesses to any TPMs.

Cc: Chao Zhang <chao.b.zhang@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>
Reviewed-by: Chao Zhang <chao.b.zhang@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19721 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoQuarkPlatformPkg/Quark.dsc: Update for rename of UI libraries
Michael Kinney [Thu, 21 Jan 2016 18:41:59 +0000 (18:41 +0000)]
QuarkPlatformPkg/Quark.dsc: Update for rename of UI libraries

Rename the Ui libraries,so need to update the QuarkPlatformPkg.dsc file.

Cc: Kelly Steele <kelly.steele@intel.com>
Cc: Dandan Bi <dandan.bi@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>
Reviewed-by: Kelly Steele <kelly.steele@intel.com>
Reviewed-by: Dandan Bi <dandan.bi@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19720 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoShellPkg: UefiShellBcfgCommandLib: bump VERSION_STRING
Laszlo Ersek [Thu, 21 Jan 2016 18:40:48 +0000 (18:40 +0000)]
ShellPkg: UefiShellBcfgCommandLib: bump VERSION_STRING

The changes due to the previous patches should be reflected in a higher
minor version number.

Cc: Jaben Carsey <jaben.carsey@intel.com>
Cc: Ryan Harkin <ryan.harkin@linaro.org>
Suggested-by: Jaben Carsey <jaben.carsey@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19719 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoShellPkg: BcfgDisplayDump(): print optional data with DumpHex()
Laszlo Ersek [Thu, 21 Jan 2016 18:40:44 +0000 (18:40 +0000)]
ShellPkg: BcfgDisplayDump(): print optional data with DumpHex()

The DumpHex() function produces very friendly output (known from DMPSTORE,
for example); let's use it with "BCFG -v" as well.

Cc: Jaben Carsey <jaben.carsey@intel.com>
Cc: Ryan Harkin <ryan.harkin@linaro.org>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19718 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoShellPkg: elevate DumpHex() from Debug1-internal to generic-internal
Laszlo Ersek [Thu, 21 Jan 2016 18:40:40 +0000 (18:40 +0000)]
ShellPkg: elevate DumpHex() from Debug1-internal to generic-internal

The UEFI Shell specification classifies shell commands into various shell
levels / profiles.

Currently the DumpHex() internal function is only used by commands that
belong to the Debug1 profile exclusively (i.e., they are not required to
be present in other than Debug1 profiles):
- SMBIOSVIEW
- PCI
- DMPSTORE
- DMEM
- DBLK

In the next patch, we'd like to call DumpHex() from BCFG as well. However,
BCFG is not only required to be present in the Debug1 profile; the
Install1 profile contains BCFG as well. For this reason, move DumpHex()
from UefiShellDebug1CommandsLib to the more generic UefiShellCommandLib,
which "Provides interface to shell internal functions for shell commands".
The matching header file is "ShellPkg/Include/Library/ShellCommandLib.h".

Cc: Jaben Carsey <jaben.carsey@intel.com>
Cc: Ryan Harkin <ryan.harkin@linaro.org>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19717 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoShellPkg: BcfgDisplayDump(): fix ShellPrintEx() call site
Laszlo Ersek [Thu, 21 Jan 2016 18:40:35 +0000 (18:40 +0000)]
ShellPkg: BcfgDisplayDump(): fix ShellPrintEx() call site

This is likely a copy & paste error from the preceding ShellPrintHiiEx()
function call. ShellPrintEx() takes no Language parameter, so remove the
NULL argument, which is currently misinterpreted as a format string.

This bug prevents the hexdump of optional data even when -v is passed to
BCFG, and optional data exist.

Cc: Jaben Carsey <jaben.carsey@intel.com>
Cc: Ryan Harkin <ryan.harkin@linaro.org>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19716 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoShellPkg: BcfgDisplayDump(): fix reporting of OptionalData
Laszlo Ersek [Thu, 21 Jan 2016 18:40:30 +0000 (18:40 +0000)]
ShellPkg: BcfgDisplayDump(): fix reporting of OptionalData

In this cleaned up form of BcfgDisplayDump(), it is easier to see that the

  OptionalDataOffset <= BufferSize

expression, used to report whether optional data are *absent*, is
incorrect. For any well-formed EFI_LOAD_OPTION, this inequality always
holds.

Optional data are present exactly if

  OptionalDataOffset < BufferSize

therefore the absence condition is the negation of the above,

  OptionalDataOffset >= BufferSize

This patch fixes the bug where BCFG always reports "Optional- N", even if
optional data exist.

Cc: Jaben Carsey <jaben.carsey@intel.com>
Cc: Ryan Harkin <ryan.harkin@linaro.org>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19715 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoShellPkg: BcfgDisplayDump(): calculate OptionalDataOffset explicitly
Laszlo Ersek [Thu, 21 Jan 2016 18:40:26 +0000 (18:40 +0000)]
ShellPkg: BcfgDisplayDump(): calculate OptionalDataOffset explicitly

Eliminate some more repeated pointer arithmetic.

This patch too is only refactoring.

Cc: Jaben Carsey <jaben.carsey@intel.com>
Cc: Ryan Harkin <ryan.harkin@linaro.org>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19714 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoShellPkg: BcfgDisplayDump(): eliminate FilePathList duplication
Laszlo Ersek [Thu, 21 Jan 2016 18:40:22 +0000 (18:40 +0000)]
ShellPkg: BcfgDisplayDump(): eliminate FilePathList duplication

Copying and releasing each EFI_LOAD_OPTION.FilePathList under the name
DevPath is wasteful -- we only need FilePathList for a single conversion
to text. Do it directly from the EFI_LOAD_OPTION object.

This patch is not supposed to change observable behavior.

Cc: Jaben Carsey <jaben.carsey@intel.com>
Cc: Ryan Harkin <ryan.harkin@linaro.org>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19713 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoShellPkg: BcfgDisplayDump(): call Description[Size] by name
Laszlo Ersek [Thu, 21 Jan 2016 18:40:17 +0000 (18:40 +0000)]
ShellPkg: BcfgDisplayDump(): call Description[Size] by name

Introduce two more helper variables to avoid repeated pointer arithmetic.

This patch is not supposed to change behavior.

Cc: Jaben Carsey <jaben.carsey@intel.com>
Cc: Ryan Harkin <ryan.harkin@linaro.org>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19712 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoShellPkg: BcfgDisplayDump(): address FilePathListLength by name
Laszlo Ersek [Thu, 21 Jan 2016 18:40:13 +0000 (18:40 +0000)]
ShellPkg: BcfgDisplayDump(): address FilePathListLength by name

The Buffer variable points at the beginning of an EFI_LOAD_OPTION
structure. We might as well address the "FilePathListLength" member by
name, rather than with *(UINT16*)(Buffer+4).

This patch is not supposed to change behavior.

Cc: Jaben Carsey <jaben.carsey@intel.com>
Cc: Ryan Harkin <ryan.harkin@linaro.org>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19711 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoShellPkg: BcfgDisplayDump(): enforce minimum size for Boot#### and co.
Laszlo Ersek [Thu, 21 Jan 2016 18:40:09 +0000 (18:40 +0000)]
ShellPkg: BcfgDisplayDump(): enforce minimum size for Boot#### and co.

"3.1.1 Boot Manager Programming" in the UEFI 2.5 spec mandates that
Boot#### and similar options contain EFI_LOAD_OPTION structures. The
EFI_LOAD_OPTION structure encodes the fixed initial part of the payload,
and we can (and should) use it to enforce a minimum size for variable
contents.

This patch is meant as a safety improvement.

Cc: Jaben Carsey <jaben.carsey@intel.com>
Cc: Ryan Harkin <ryan.harkin@linaro.org>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19710 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoShellPkg: BcfgDisplayDump(): accumulate errors
Laszlo Ersek [Thu, 21 Jan 2016 18:40:05 +0000 (18:40 +0000)]
ShellPkg: BcfgDisplayDump(): accumulate errors

Don't exit the command immediately when a variable access fails; continue
processing after printing the error message. Let the final return status
reflect any encountered errors.

This patch is intended as a functional improvement.

Cc: Jaben Carsey <jaben.carsey@intel.com>
Cc: Ryan Harkin <ryan.harkin@linaro.org>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19709 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoShellPkg: BcfgDisplayDump(): hoist NULL-init of DevPath[String]
Laszlo Ersek [Thu, 21 Jan 2016 18:40:00 +0000 (18:40 +0000)]
ShellPkg: BcfgDisplayDump(): hoist NULL-init of DevPath[String]

It will help with error handling if we move these initializations near the
top of the loop body.

This patch is not supposed to change behavior.

Cc: Jaben Carsey <jaben.carsey@intel.com>
Cc: Ryan Harkin <ryan.harkin@linaro.org>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19708 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoShellPkg: UefiShellBcfgCommandLib: drop unused string tokens
Laszlo Ersek [Thu, 21 Jan 2016 18:39:56 +0000 (18:39 +0000)]
ShellPkg: UefiShellBcfgCommandLib: drop unused string tokens

STR_GEN_PROBLEM_VAL, STR_GEN_TOO_MANY, and STR_BCFG_LOCATION_RANGE are not
used in the C source code. Remove them to decrease clutter.

Cc: Jaben Carsey <jaben.carsey@intel.com>
Cc: Ryan Harkin <ryan.harkin@linaro.org>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19707 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoShellPkg: BcfgDisplayDump(): update whitespace & layout
Laszlo Ersek [Thu, 21 Jan 2016 18:39:52 +0000 (18:39 +0000)]
ShellPkg: BcfgDisplayDump(): update whitespace & layout

This patch incurs no functional changes, it just modifies some whitespace,
so we can separate these non-functional changes from the functional
changes in the next patches.

Cc: Jaben Carsey <jaben.carsey@intel.com>
Cc: Ryan Harkin <ryan.harkin@linaro.org>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19706 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoBaseTools: make build report tolerant of FVs specified by name
Eugene Cohen [Thu, 21 Jan 2016 09:10:55 +0000 (09:10 +0000)]
BaseTools: make build report tolerant of FVs specified by name

Check if the FV name is in the FV dictionary before using it which fixes
a crash during build report generation when FVs are specified by path in
the FDF.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eugene Cohen <eugene@hp.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19705 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoIntelFspWrapperPkg: Add NOOPT target in IntelFspWrapperPkg.dsc
Hao Wu [Thu, 21 Jan 2016 02:15:02 +0000 (02:15 +0000)]
IntelFspWrapperPkg: Add NOOPT target in IntelFspWrapperPkg.dsc

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19703 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoIntelFspPkg: Add NOOPT target in IntelFspPkg.dsc
Hao Wu [Thu, 21 Jan 2016 02:14:43 +0000 (02:14 +0000)]
IntelFspPkg: Add NOOPT target in IntelFspPkg.dsc

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19702 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoMdeModulePkg: TerminalDxe: select the UART's default receive FIFO depth
Laszlo Ersek [Thu, 21 Jan 2016 00:29:12 +0000 (00:29 +0000)]
MdeModulePkg: TerminalDxe: select the UART's default receive FIFO depth

The Serial IO protocol instances provided by SerialDxe and consumed by
TerminalDxe come with a Mode.ReceiveFifoDepth=1 default setting, as
required by UEFI 2.5.

Although TerminalDxe calls EFI_SERIAL_IO_PROTOCOL.SetAttributes() in the
TerminalDriverBindingStart() and TerminalConInTimerHandler() functions, it
only does so to change the Mode.Timeout member. Other members of Mode,
including Mode.ReceiveFifoDepth, are preserved.

On some platforms this causes the UART that underlies TerminalDxe not to
have enough room for bursts of scan codes, which translates to broken
parsing of escape sequences, e.g. cursor movement keys.

According to the UEFI spec, passing ReceiveFifoDepth=0 to
EFI_SERIAL_IO_PROTOCOL.SetAttributes() "will use the device's default FIFO
depth". While TerminalDxe could try to configure a receive FIFO depth that
matches the longest escape sequence it wishes to parse, in practice the
device-specific default FIFO depth -- which may well differ from the
spec-mandated SerialIo->Mode.ReceiveFifoDepth=1 default -- seems to work.
Hence let's just set that.

This issue was exposed by SVN r18971 / git commit 921e987b2b
("ArmPlatformPkg: Use SerialDxe in MdeModulePkg instead of EmbeddedPkg").
In that conversion, MdeModulePkg's SerialDxe started to initialize
Mode.ReceiveFifoDepth to 1 (in conformance with the spec), unlike the
prior, non-conformant initialization to 0 in EmbeddedPkg's SerialDxe.

Since TerminalDxe would never change ReceiveFifoDepth from the new default
value 1, and the ArmPlatformPkg/Drivers/PL011Uart library instance,
underlying SerialDxe through SerialPortLib, would obey it too, they would
collectively effect a receive queue depth of 1, rather than the default 16
or 32. This broke cursor keys on the ARM FVP and Juno platforms.

It is the client of EFI_SERIAL_IO_PROTOCOL that is responsible for
modifying the attributes, if the defaults are not appropriate, hence this
patch modifies TerminalDxe.

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Ryan Harkin <ryan.harkin@linaro.org>
Cc: Leif Lindholm <leif.lindholm@linaro.org>
Cc: Star Zeng <star.zeng@intel.com>
Reported-by: Ryan Harkin <ryan.harkin@linaro.org>
Reference: http://thread.gmane.org/gmane.comp.bios.edk2.devel/4779/focus=6553
Reference: http://thread.gmane.org/gmane.comp.bios.edk2.devel/6594
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Tested-by: Ryan Harkin <ryan.harkin@linaro.org>
Reviewed-by: Star Zeng <star.zeng@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19701 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoMdeModulePkg: SerialDxe: sync EFI_SERIAL_IO_MODE.Timeout with the spec
Laszlo Ersek [Thu, 21 Jan 2016 00:29:07 +0000 (00:29 +0000)]
MdeModulePkg: SerialDxe: sync EFI_SERIAL_IO_MODE.Timeout with the spec

In "11.8 Serial I/O Protocol", UEFI 2.5 requires:

  The default attributes for all UART-style serial device interfaces are:
  (a) 115,200 baud,
  (b) a 1 byte receive FIFO,
  (c) a 1,000,000 microsecond timeout per character,
  (d) no parity,
  (e) 8 data bits,
  (f) and 1 stop bit.

It also says, about the EFI_SERIAL_IO_MODE.ControlMask member:

  (g) A mask of the Control bits that the device supports. The device must
      always support the Input Buffer Empty control bit.

SerialDxe complies with requirement (b) via hard-coded constants. It
complies with requirements (a), (d), (e) and (f) through PCD defaults (see
MdePkg/MdePkg.dec):

(a) 115,200 baud:
  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|115200|UINT64|0x00000020

(d) no parity:
  # 1 - No Parity.<BR>
  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity|1|UINT8|0x00000022

(e) 8 data bits:
  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultDataBits|8|UINT8|0x00000021

(f) 1 stop bit:
  # 1 - One Stop Bit.<BR>
  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultStopBits|1|UINT8|0x00000023

SerialDxe does not comply with requirements (c) and (g). In this patch, we
fix (c), and leave (g) for later.

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Ryan Harkin <ryan.harkin@linaro.org>
Cc: Leif Lindholm <leif.lindholm@linaro.org>
Cc: Star Zeng <star.zeng@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Tested-by: Ryan Harkin <ryan.harkin@linaro.org>
Reviewed-by: Star Zeng <star.zeng@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19700 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoMdeModulePkg: SerialDxe: lay out mSerialIoMode initializer more nicely
Laszlo Ersek [Thu, 21 Jan 2016 00:29:03 +0000 (00:29 +0000)]
MdeModulePkg: SerialDxe: lay out mSerialIoMode initializer more nicely

This patch doesn't change behavior; it only modifies whitespace and
comments.

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Ryan Harkin <ryan.harkin@linaro.org>
Cc: Leif Lindholm <leif.lindholm@linaro.org>
Cc: Star Zeng <star.zeng@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Tested-by: Ryan Harkin <ryan.harkin@linaro.org>
Reviewed-by: Star Zeng <star.zeng@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19699 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoArmPkg: LinuxLoader: fix typo in help string
Ryan Harkin [Wed, 20 Jan 2016 14:55:58 +0000 (14:55 +0000)]
ArmPkg: LinuxLoader: fix typo in help string

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19698 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoBaseTools: Improve LzmaF86Compress wrapper
Charles Duffy [Wed, 20 Jan 2016 05:15:55 +0000 (05:15 +0000)]
BaseTools: Improve LzmaF86Compress wrapper

- Remove test usage declared obsolescent by POSIX
- Pass argv array through as literal rather than forming into a string, then
  string-splitting and glob-expanding same.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Charles Duffy <chaduffy@cisco.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19697 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoBaseTools: Use python2 if available in Tests/GNUmakefile
Charles Duffy [Wed, 20 Jan 2016 05:14:10 +0000 (05:14 +0000)]
BaseTools: Use python2 if available in Tests/GNUmakefile

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Charles Duffy <chaduffy@cisco.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19696 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoBaseTools: Improve shell wrapper for C build commands
Charles Duffy [Wed, 20 Jan 2016 05:12:02 +0000 (05:12 +0000)]
BaseTools: Improve shell wrapper for C build commands

- Avoid obsolescent forms of test builtin (`-a` and `-o`; see APPLICATION USAGE
  section of http://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html).
- Quote all expansions to prevent string-splitting and globbing.
- Avoid unspecified "exit -1" (only single-byte integers are valid); instead,
  use identical exit status to shell command-not-found.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Charles Duffy <chaduffy@cisco.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19695 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoBaseTools: Improve shell wrappers for Python build commands
Charles Duffy [Wed, 20 Jan 2016 05:09:06 +0000 (05:09 +0000)]
BaseTools: Improve shell wrappers for Python build commands

- Use `python2` executable if it exists, to avoid breakage on systems (such as
  Arch Linux) where `python` is Python 3.
- Quote all references to `$0`, for safety when located in a directory
  containing spaces in its name.
- Use the `exec` shell command to avoid leaving the shell wrapper in the
  process table when invoking the actual build tool.
- Use `"$@"` rather than `$*` to pass arguments through directly rather than
  concatenating to a string, and then string-splitting and glob-expanding its
  contents.
- Use `$BASH_SOURCE` in preference to `$0` (which is only guaranteed to be
  process name, *not* source path).

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Charles Duffy <chaduffy@cisco.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19694 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoMaintainers.txt: Update maintainers for SourceLevelDebugPkg
Hao Wu [Wed, 20 Jan 2016 04:38:14 +0000 (04:38 +0000)]
Maintainers.txt: Update maintainers for SourceLevelDebugPkg

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-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@19693 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoMaintainers.txt: Update maintainers for CryptoPkg and NetworkPkg
Jiaxin Wu [Wed, 20 Jan 2016 00:39:14 +0000 (00:39 +0000)]
Maintainers.txt: Update maintainers for CryptoPkg and NetworkPkg

This patch is used to update the CryptoPkg and NetworkPkg
maintainer list.

Cc: Long Qin <qin.long@intel.com>
Cc: Fu Siyuan <siyuan.fu@intel.com>
Cc: Tian Hot <hot.tian@intel.com>
Cc: Li Ruth <ruth.li@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiaxin Wu <jiaxin.wu@intel.com>
Reviewed-by: Qin Long <qin.long@intel.com>
Reviewed-by: Siyuan Fu <siyuan.fu@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19692 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoSecurityPkg: Mark MorLock module deprecated.
Yao, Jiewen [Tue, 19 Jan 2016 13:23:30 +0000 (13:23 +0000)]
SecurityPkg: Mark MorLock module deprecated.

This module only handles MOR lock v1.
Now MOR lock V2 solution is published and added in variable driver. So this module can be deprecated.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: "Yao, Jiewen" <jiewen.yao@intel.com>
Reviewed-by: "Zhang, Chao B" <chao.b.zhang@intel.com>
Reviewed-by: "Zeng, Star" <star.zeng@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19691 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoMdeModulePkg: Add MorLock to variable driver.
Yao, Jiewen [Tue, 19 Jan 2016 13:22:05 +0000 (13:22 +0000)]
MdeModulePkg: Add MorLock to variable driver.

This patch adds MorLock function to Variable main function.
It also updates corresponding INF file to pass build.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: "Yao, Jiewen" <jiewen.yao@intel.com>
Reviewed-by: "Zhang, Chao B" <chao.b.zhang@intel.com>
Reviewed-by: "Zeng, Star" <star.zeng@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19690 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoMdeModulePkg: Add MorLockDxe to variable driver.
Yao, Jiewen [Tue, 19 Jan 2016 13:21:18 +0000 (13:21 +0000)]
MdeModulePkg: Add MorLockDxe to variable driver.

Per secure MOR implementation document, it is not proper to add MOR lock in non-SMM version, because DXE version can not provide protection.

This patch add standalone TcgMorLockDxe implementation.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: "Yao, Jiewen" <jiewen.yao@intel.com>
Reviewed-by: "Zhang, Chao B" <chao.b.zhang@intel.com>
Reviewed-by: "Zeng, Star" <star.zeng@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19689 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoMdeModulePkg: Add MorLockSmm to variable driver.
Yao, Jiewen [Tue, 19 Jan 2016 13:20:50 +0000 (13:20 +0000)]
MdeModulePkg: Add MorLockSmm to variable driver.

Microsoft published secure MOR implementation at https://msdn.microsoft.com/en-us/library/windows/hardware/mt270973(v=vs.85).aspx
with revision 2 update. See URL for tech detail.
Previous revision 1 is handled in SecurityPkg\Tcg\ MemoryOverwriteRequestControlLock.
But the VarCheck API can not satisfy revision 2 requirement.
So we decide include MOR lock control into variable driver directly.

This patch add standalone TcgMorLockSmm implementation.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: "Yao, Jiewen" <jiewen.yao@intel.com>
Reviewed-by: "Zhang, Chao B" <chao.b.zhang@intel.com>
Reviewed-by: "Zeng, Star" <star.zeng@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19688 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoMdePkg: Update MorLock comment to latest doc.
Yao, Jiewen [Tue, 19 Jan 2016 13:17:10 +0000 (13:17 +0000)]
MdePkg: Update MorLock comment to latest doc.

Microsoft updated secure MOR lock document with version 2.
So we update comment here.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: "Yao, Jiewen" <jiewen.yao@intel.com>
Reviewed: "Zhang, Chao B" <chao.b.zhang@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19687 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoBaseTools: process the files by the priority in BUILDRULEORDER
Yonghong Zhu [Tue, 19 Jan 2016 12:58:52 +0000 (12:58 +0000)]
BaseTools: process the files by the priority in BUILDRULEORDER

By the BUILDRULEORDER feature to process files listed in INF [Sources]
sections in priority order, if a filename is listed with multiple
extensions, the tools will use only the file that matches the first
extension in the space separated list.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19686 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoMdeModulePkg/.../IdeMode: report early finish of packet read as success
Laszlo Ersek [Tue, 19 Jan 2016 10:46:39 +0000 (10:46 +0000)]
MdeModulePkg/.../IdeMode: report early finish of packet read as success

SVN r19611 (git commit 7cac240163), "MdeModulePkg/Ide: return correct
status when DRQ is not ready for ATAPI", changed the behavior of
AtaPacketReadWrite(), when DRQReady2() reported an error. The previous
logic had been to:

(a) terminate the transfer loop,
(b) check the status register with CheckStatusRegister(), and determine
    AtaPacketReadWrite()'s return code directly from that.

Action (a) had been correct, but action (b) had masked genuine errors.

For example, when DRQReady2() reported EFI_TIMEOUT -- because the BSY bit
had not been cleared within the allotted time --, CheckStatusRegister()
would report EFI_SUCCESS, simply *because* BSY was still set, and the rest
of the status bits could not be evaluated.

SVN r19611 (git commit 7cac240163) intended to fix action (b) by directly
propagating the error code of DRQReady2() from AtaPacketReadWrite(),
eliminating the CheckStatusRegister() call. This was the right thing for
most of the errors reported by DRQReady2() -- timeout, command abort,
other device error --, but there was one exception: the "read" sub-case of
EFI_NOT_READY, which stands for "'read' complete, with less data available
than the requested amount".

Regarding the "write" sub-case of EFI_NOT_READY: the
AtaPacketCommandExecute() function programs the full transfer length into
the IDE device before it calls AtaPacketReadWrite(), and
AtaPacketReadWrite() only uses CylinderLsb and CylinderMsb for "chunking"
(as requested by the device). Therefore the device cannot justifiedly
clear DRQ earlier than seeing the entire data, when writing.

However, when reading from the device, a "short read" is a successful
operation. (The actual read length will be decoded by the higher level
protocols.) And "short reads" had been handled correctly by the logic
before git 7cac240163. Namely, when DRQReady2() returns EFI_NOT_READY, the
BSY bit is already clear, and we can call CheckStatusRegister() to
investigate all the other bits it cares about.

Therefore restore the logic from before git 7cac240163, but only for the
"read" sub-case of EFI_NOT_READY.

This problem was encountered with OVMF running on QEMU's i440fx IDE
emulation. Many thanks to John Snow for analyzing QEMU's behavior, and
pointing out that it adhered to the relevant specs.

Cc: Feng Tian <feng.tian@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: John Snow <jsnow@redhat.com>
Reference: https://github.com/tianocore/edk2/issues/43
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19685 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoMdeModulePkg/.../IdeMode: actualize DRQReady*() comment blocks
Laszlo Ersek [Tue, 19 Jan 2016 10:46:34 +0000 (10:46 +0000)]
MdeModulePkg/.../IdeMode: actualize DRQReady*() comment blocks

The DRQReady() and DRQReady2() functions only differ in that they poll
different status registers for BSY, ERR, and DRQ: the former looks at the
Status Register (clearing interrupt status), while the latter looks at the
Alternate Status Register (not clearing interrupt status).

They both correctly return a unique status code, EFI_NOT_READY, for the

  BSY==0 && ERR==0 && DRQ==0

case; that is, when the device reports "command complete".

However, the functions' leading comments don't explain this case, so it's
easy to miss in callers. Update the comments.

Cc: Feng Tian <feng.tian@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: John Snow <jsnow@redhat.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19684 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoShellPkg UefiDpLib: Use Image->FilePath to get name for SMM drivers
Star Zeng [Tue, 19 Jan 2016 09:19:37 +0000 (09:19 +0000)]
ShellPkg UefiDpLib: Use Image->FilePath to get name for SMM drivers

This enhancement is to use the FilePath field in the loaded image
protocol to find the name of an image as a fallback for when the
loaded image device path protocol is not installed on the image handle.
This is necessary because the SMM core does not install the loaded
image device path protocol, so DP was displaying "Unknown Driver Name"
for every SMM driver.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Jaben Carsey <jaben.carsey@intel.com>
Cc: Shumin Qiu <shumin.qiu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19683 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoPerformancePkg Dp_App: Use Image->FilePath to get name for SMM drivers
Star Zeng [Tue, 19 Jan 2016 09:19:28 +0000 (09:19 +0000)]
PerformancePkg Dp_App: Use Image->FilePath to get name for SMM drivers

This enhancement is to use the FilePath field in the loaded image
protocol to find the name of an image as a fallback for when the
loaded image device path protocol is not installed on the image handle.
This is necessary because the SMM core does not install the loaded
image device path protocol, so DP was displaying "Unknown Driver Name"
for every SMM driver.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Daryl McDaniel <edk2-lists@mc2research.org>
Cc: Jaben Carsey <jaben.carsey@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19682 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoUefiCpuPkg: Add NOOPT target in UefiCpuPkg.dsc
Hao Wu [Tue, 19 Jan 2016 04:08:09 +0000 (04:08 +0000)]
UefiCpuPkg: Add NOOPT target in UefiCpuPkg.dsc

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19681 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoSourceLevelDebugPkg: Add NOOPT target in SourceLevelDebugPkg.dsc
Hao Wu [Tue, 19 Jan 2016 04:07:52 +0000 (04:07 +0000)]
SourceLevelDebugPkg: Add NOOPT target in SourceLevelDebugPkg.dsc

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19680 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoShellPkg: Add NOOPT target in ShellPkg.dsc
Hao Wu [Tue, 19 Jan 2016 04:07:34 +0000 (04:07 +0000)]
ShellPkg: Add NOOPT target in ShellPkg.dsc

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: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19679 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoSecurityPkg: Add NOOPT target in SecurityPkg.dsc
Hao Wu [Tue, 19 Jan 2016 04:07:17 +0000 (04:07 +0000)]
SecurityPkg: Add NOOPT target in SecurityPkg.dsc

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19678 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoPerformancePkg: Add NOOPT target in PerformancePkg.dsc
Hao Wu [Tue, 19 Jan 2016 04:06:59 +0000 (04:06 +0000)]
PerformancePkg: Add NOOPT target in PerformancePkg.dsc

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19677 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoPcAtChipsetPkg: Add NOOPT target in PcAtChipsetPkg.dsc
Hao Wu [Tue, 19 Jan 2016 04:06:42 +0000 (04:06 +0000)]
PcAtChipsetPkg: Add NOOPT target in PcAtChipsetPkg.dsc

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19676 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoNetworkPkg: Add NOOPT target in NetworkPkg.dsc
Hao Wu [Tue, 19 Jan 2016 04:06:24 +0000 (04:06 +0000)]
NetworkPkg: Add NOOPT target in NetworkPkg.dsc

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19675 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoMdePkg: Add NOOPT target in MdePkg.dsc
Hao Wu [Tue, 19 Jan 2016 04:06:07 +0000 (04:06 +0000)]
MdePkg: Add NOOPT target in MdePkg.dsc

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19674 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoMdeModulePkg: Add NOOPT target in MdeModulePkg.dsc
Hao Wu [Tue, 19 Jan 2016 04:05:51 +0000 (04:05 +0000)]
MdeModulePkg: Add NOOPT target in MdeModulePkg.dsc

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19673 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoIntelFrameworkPkg: Add NOOPT target in IntelFrameworkPkg.dsc
Hao Wu [Tue, 19 Jan 2016 04:05:29 +0000 (04:05 +0000)]
IntelFrameworkPkg: Add NOOPT target in IntelFrameworkPkg.dsc

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19672 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoIntelFrameworkModulePkg: Add NOOPT target in IntelFrameworkModulePkg.dsc
Hao Wu [Tue, 19 Jan 2016 04:05:12 +0000 (04:05 +0000)]
IntelFrameworkModulePkg: Add NOOPT target in IntelFrameworkModulePkg.dsc

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19671 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoCryptoPkg: Add NOOPT target in CryptoPkg.dsc
Hao Wu [Tue, 19 Jan 2016 04:04:54 +0000 (04:04 +0000)]
CryptoPkg: Add NOOPT target in CryptoPkg.dsc

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19670 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoNt32Pkg:Modify the dsc file because of the rename action
Dandan Bi [Tue, 19 Jan 2016 03:31:34 +0000 (03:31 +0000)]
Nt32Pkg:Modify the dsc file because of the rename action

Rename the Ui libraries,so need to update the Nt32Pkg.dsc file.

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@19669 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoMdeModulePkg:Modify the dsc file because of the rename action
Dandan Bi [Tue, 19 Jan 2016 03:31:15 +0000 (03:31 +0000)]
MdeModulePkg:Modify the dsc file because of the rename action

Rename the Ui libraries,so need to update the MdeModulePkg.dsc file.

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@19668 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoMdeModulePkg:Modify related files because of rename action
Dandan Bi [Tue, 19 Jan 2016 03:30:57 +0000 (03:30 +0000)]
MdeModulePkg:Modify related files because of rename action

Rename DeviceManagerLib,need to modify these files.

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@19667 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoMdeModulePkg:Rename DeviceManagerLib to DeviceManagerUiLib
Dandan Bi [Tue, 19 Jan 2016 03:30:33 +0000 (03:30 +0000)]
MdeModulePkg:Rename DeviceManagerLib to DeviceManagerUiLib

Avoid any confusion,add the keyword "Ui",
user can understand the use of the library clearly.

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@19666 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoMdeModulePkg:Modify relative files because of rename action
Dandan Bi [Tue, 19 Jan 2016 03:30:02 +0000 (03:30 +0000)]
MdeModulePkg:Modify relative files because of rename action

Rename BootManagerLib,need to modify these files.

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@19665 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoMdeModulePkg:Rename BootManagerLib to BootManagerUiLib
Dandan Bi [Tue, 19 Jan 2016 03:29:40 +0000 (03:29 +0000)]
MdeModulePkg:Rename BootManagerLib to BootManagerUiLib

Avoid any confusion,add the keyword "Ui",
user can understand the use of the library clearly.

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@19664 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoMdeModulePkg:Modify the inf file and c file because of the rename action
Dandan Bi [Tue, 19 Jan 2016 03:29:10 +0000 (03:29 +0000)]
MdeModulePkg:Modify the inf file and c file because of the rename action

Rename BootMaintenanceManagerLib,need to modify these files.

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@19663 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoMdeModulePkg:Rename BootMaintenanceManagerLib to BootMaintenanceManagerUiLib
Dandan Bi [Tue, 19 Jan 2016 03:28:46 +0000 (03:28 +0000)]
MdeModulePkg:Rename BootMaintenanceManagerLib to BootMaintenanceManagerUiLib

Avoid any confusion,add the keyword "Ui",
user can understand the use of the library clearly.

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@19662 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoSecurityPkg: Update final event log calculation.
Yao, Jiewen [Mon, 18 Jan 2016 05:51:18 +0000 (05:51 +0000)]
SecurityPkg: Update final event log calculation.

This patch updated final event log calculation based on
TCG EFI PROTOCOL rev9, 7.1.2 "All options implementation".
The previous logic is to save event to final event log
once GetEventLog() is called. 7.1.1 shows that we should
save event log to both normal even log area and final event
log area after GetEventLog() is called.
And there is no need to record TCG12 format log to final
event log area, and normal event log area can be BootServices
memory because OS will not access it directly.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: "Yao, Jiewen" <jiewen.yao@intel.com>
Reviewed-by: "Zhang, Chao B" <chao.b.zhang@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19661 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoSecurityPkg: Correct NumberOfPCRBanks calculation.
Yao, Jiewen [Mon, 18 Jan 2016 05:49:39 +0000 (05:49 +0000)]
SecurityPkg: Correct NumberOfPCRBanks calculation.

Previously, NumberOfPCRBanks is calculated based on TPM
capability. However, there might be a case that TPM hardware
support 1 algorithm, but BIOS does not support and BIOS
mask it via PCD. This causes the conflict between
HashAlgorithmBitmap and NumberOfPCRBanks.
So we move the NumberOfPCRBanks calculation based on
HashAlgorithmBitmap to make sure the data is consistent.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: "Yao, Jiewen" <jiewen.yao@intel.com>
Reviewed-by: "Zhang, Chao B" <chao.b.zhang@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19660 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoSecurityPkg: Replace TREE macro with TCG2.
Yao, Jiewen [Mon, 18 Jan 2016 05:48:32 +0000 (05:48 +0000)]
SecurityPkg: Replace TREE macro with TCG2.

Since Tcg2Dxe driver follows TCG spec, we should use
TCG2 MACRO, instead of TREE macro.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: "Yao, Jiewen" <jiewen.yao@intel.com>
Reviewed-by: "Zhang, Chao B" <chao.b.zhang@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19659 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoMdeModulePkg: Add generic PciHostBridgeDxe driver.
Ruiyu Ni [Mon, 18 Jan 2016 04:50:18 +0000 (04:50 +0000)]
MdeModulePkg: Add generic PciHostBridgeDxe driver.

This driver links to PciHostBridgeLib provided by platform/silicon to
produce PciRootBridgeIo and PciHostBridgeResourceAllocation protocol.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19658 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoMdePkg: Add PciSegmentLib instance based on PciLib
Ruiyu Ni [Mon, 18 Jan 2016 04:50:04 +0000 (04:50 +0000)]
MdePkg: Add PciSegmentLib instance based on PciLib

This PciSegmentLib instance only supports Segment 0 access.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19657 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoMdeModulePkg: Add PciHostBridgeLibNull
Ruiyu Ni [Mon, 18 Jan 2016 04:49:54 +0000 (04:49 +0000)]
MdeModulePkg: Add PciHostBridgeLibNull

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19656 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoMdeModulePkg: Add new library class PciHostBridgeLib
Ruiyu Ni [Mon, 18 Jan 2016 04:49:22 +0000 (04:49 +0000)]
MdeModulePkg: Add new library class PciHostBridgeLib

PciHostBridgeDxe driver needs PciHostBridgeLib implemented by platform
to provide the root bridge related information and may call into
PciHostBridgeLib when resource conflicts happen.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19655 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoEdkCompatibilityPkg: Fix wrong guid value of gEfiManagedNetworkProtocolGuid
Liming Gao [Mon, 18 Jan 2016 03:03:19 +0000 (03:03 +0000)]
EdkCompatibilityPkg: Fix wrong guid value of gEfiManagedNetworkProtocolGuid

UEFI2.1B corrects the guid value of gEfiManagedNetworkProtocolGuid.
ECP package updates its value in ManagedNetwork.h, but miss the one
in EdkIIGlueLib.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19654 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoNetworkPkg: Fix SPD entry edit policy issue in IPSecConfig.
Jiaxin Wu [Mon, 18 Jan 2016 01:59:41 +0000 (01:59 +0000)]
NetworkPkg: Fix SPD entry edit policy issue in IPSecConfig.

The current implementation doesn't handle the relationship
between SPD and SAD well, which may introduce some security
and connection issue after SPD updated.
For SPD entry edit policy, if one SPD entry is edited/updated,
the original SAs list should be discard. Current IPSecConfig
tool does not dealt properly with those rules.

Cc: Ye Ting <ting.ye@intel.com>
Cc: Fu Siyuan <siyuan.fu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiaxin Wu <jiaxin.wu@intel.com>
Reviewed-by: Ye Ting <ting.ye@intel.com>
Reviewed-by: Fu Siyuan <siyuan.fu@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19653 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoNetworkPkg: Fix IpSec SPD and SAD mapping issue when SPD is updated
Jiaxin Wu [Mon, 18 Jan 2016 01:59:16 +0000 (01:59 +0000)]
NetworkPkg: Fix IpSec SPD and SAD mapping issue when SPD is updated

The current implementation doesn't handle the relationship between
SPD and SAD well, which may introduce some security and connection
issue after SPD updated.
For SPD SetData policy:
 A) When delete the existed SPD entry, its related SAs also should be
removed from its Sas list(SadEntry->BySpd). If the SA entry is
established by IKE, we can remove it from global SAD list(SadEntry->List)
and then free it directly since its SpdEntry will be freed later.
 B) SPD SetData operation should do some setting date validity-check.
For example, whether the SaId specified by setting Data is valid. If
the setting date is invalid, EFI_INVALID_PARAMETER should be returned.

Cc: Ye Ting <ting.ye@intel.com>
Cc: Fu Siyuan <siyuan.fu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiaxin Wu <jiaxin.wu@intel.com>
Reviewed-by: Ye Ting <ting.ye@intel.com>
Reviewed-by: Fu Siyuan <siyuan.fu@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19652 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoBaseTools: VPD Tool to allocate VPD region be aligned based on value type
Yonghong Zhu [Mon, 18 Jan 2016 01:47:50 +0000 (01:47 +0000)]
BaseTools: VPD Tool to allocate VPD region be aligned based on value type

Base on build spec update, ASCII strings(“string”), will be byte aligned,
Unicode strings(L”string”) will be two-byte aligned, Byte arrays,
{0x00, 0x01} will be 8-byte aligned.
This patch is going to update VPD Tool to allocate VOID* PCDs to an offset
value that is aligned based in syntax of the PCD value.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19651 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoBaseTools: VOID* PCDs in VPD region must be aligned based on value type
Yonghong Zhu [Mon, 18 Jan 2016 01:46:25 +0000 (01:46 +0000)]
BaseTools: VOID* PCDs in VPD region must be aligned based on value type

Base on build spec update, ASCII strings(“string”), will be byte aligned,
Unicode strings(L”string”) will be two-byte aligned, Byte arrays,
{0x00, 0x01} will be 8-byte aligned.
This patch is going to halt with an error message if a VOID* PCD has an
offset value that is not aligned based on the syntax of the PCD value.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19650 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoBaseTools: Fix GenPatchPcdTable to support '-' characters in file names
Yonghong Zhu [Mon, 18 Jan 2016 01:42:20 +0000 (01:42 +0000)]
BaseTools: Fix GenPatchPcdTable to support '-' characters in file names

The Regular Expression parsing of lines in MAP files does not currently
support the use of '-' in the column for the filename the symbol is
sources from, it cause a build break from the GenPatchPcdTable.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19649 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoShellPkg: Update 'dh' command to reflect correct driver handle information
Tapan Shah [Fri, 15 Jan 2016 17:05:18 +0000 (17:05 +0000)]
ShellPkg: Update 'dh' command to reflect correct driver handle information

'dh' command shows Supported EFI Specification Version value as DriverVersion. Changing it to 'SupportedEfiSpecVersion' to provide more accurate information.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Tapan Shah <tapandshah@hpe.com>
Reviewed-by: Samer El-Haj-Mahmoud <elhaj@hpe.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19648 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoMdeModulePkg:Fix the potential memory leak issue in Display Engine
Dandan Bi [Fri, 15 Jan 2016 09:50:40 +0000 (09:50 +0000)]
MdeModulePkg:Fix the potential memory leak issue in Display Engine

The MenuOption insert to gMenuOption allocate memory every time,but not free.
Now add the code to free it.And for Date/Time,it will create 3 menus,but previously
the Description point to the same address,so when free the Description,it will cause
issue,now reset the Description pointer.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19647 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoSecurityPkg: SecureBootConfigDxe: Fix string typo
Chao Zhang [Fri, 15 Jan 2016 05:26:04 +0000 (05:26 +0000)]
SecurityPkg: SecureBootConfigDxe: Fix string typo

Fix secure boot mode transition string typo.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Chao Zhang <chao.b.zhang@intel.com>
Reviewed-by: Qin Long <qin.long@intel.com>
Reviewed-by: Fu Siyuan <siyuan.fu@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19646 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoSecurityPkg: SecureBootConfigDxe: Enhance secure boot string update logic
Chao Zhang [Fri, 15 Jan 2016 01:06:51 +0000 (01:06 +0000)]
SecurityPkg: SecureBootConfigDxe: Enhance secure boot string update logic

ExtractConfig is called many times, so it's not efficient to update Secure Boot STR_SECURE_BOOT_STATE_CONTENT, STR_CUR_SECURE_BOOT_MODE_CONTENT string in ExtractConfig.
As these 2 strings are displayed on one form, always update them when opening the form.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Chao Zhang <chao.b.zhang@intel.com>
Reviewed-by: Fu Siyuan <siyuan.fu@intel.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19645 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoSecurityPkg: SecureBootConfigDxe: Change KEY_TRANS_SECURE_BOOT_MODE value
Chao Zhang [Fri, 15 Jan 2016 00:58:37 +0000 (00:58 +0000)]
SecurityPkg: SecureBootConfigDxe: Change KEY_TRANS_SECURE_BOOT_MODE value

Change KEY_TRANS_SECURE_BOOT_MODE value, as it conflicts with OPTION_DEL_KEK_QUESTION_ID.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Chao Zhang <chao.b.zhang@intel.com>
Reviewed-by: Fu Siyuan <siyuan.fu@intel.com>
Reviewed-by: Qin Long <qin.long@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19644 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoNetworkPkg: Remove DNS QType and QClass definition
Jiaxin Wu [Thu, 14 Jan 2016 03:00:38 +0000 (03:00 +0000)]
NetworkPkg: Remove DNS QType and QClass definition

This patch is used to remove DNS QType and QClass definition in
DnsImpl.h since it will be exposed in NetLib.h.

Cc: Hegde Nagaraj P <nagaraj-p.hegde@hpe.com>
Cc: Ye Ting <ting.ye@intel.com>
Cc: Fu Siyuan <siyuan.fu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiaxin Wu <jiaxin.wu@intel.com>
Reviewed-by: Hegde Nagaraj P <nagaraj-p.hegde@hpe.com>
Reviewed-by: Ye Ting <ting.ye@intel.com>
Reviewed-by: Fu Siyuan <siyuan.fu@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19643 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoMdeModulePkg: Add DNS QType and QClass values definition
Jiaxin Wu [Thu, 14 Jan 2016 03:00:16 +0000 (03:00 +0000)]
MdeModulePkg: Add DNS QType and QClass values definition

This patch is used to add DNS QType and QClass values definition
in NetLib.h

Cc: Hegde Nagaraj P <nagaraj-p.hegde@hpe.com>
Cc: Ye Ting <ting.ye@intel.com>
Cc: Fu Siyuan <siyuan.fu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiaxin Wu <jiaxin.wu@intel.com>
Reviewed-by: Hegde Nagaraj P <nagaraj-p.hegde@hpe.com>
Reviewed-by: Ye Ting <ting.ye@intel.com>
Reviewed-by: Fu Siyuan <siyuan.fu@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19642 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoNetworkPkg: Fix some typos in Http boot driver.
Paulo Alcantara [Tue, 12 Jan 2016 01:37:48 +0000 (01:37 +0000)]
NetworkPkg: Fix some typos in Http boot driver.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Paulo Alcantara <paulo.alc.cavalcanti@hp.com>
Reviewed-by: Jiaxin Wu <jiaxin.wu@intel.com>
Reviewed-by: Fu Siyuan <siyuan.fu@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19640 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoSecurityPkg: TcgDxe,Tcg2Dxe,TrEEDxe: New PCD for TCG event log and TCG2 final event...
Chao Zhang [Tue, 12 Jan 2016 00:37:02 +0000 (00:37 +0000)]
SecurityPkg: TcgDxe,Tcg2Dxe,TrEEDxe: New PCD for TCG event log and TCG2 final event log area

TCG event log and TCG2 final event log area length can be configurable to meet platform event log
requirement.
PcdTcgLogAreaMinLen    : 0x10000  based on minimum requirement in TCG ACPI Spec 00.37
PcdTcg2FinalLogAreaLen : 0x8000   based on experience value

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Chao Zhang <chao.b.zhang@intel.com>
Reviewed-by: Yao Jiewen <jiewen.yao@intel.com>
Reviewed-by: Qin Long <qin.long@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19639 6f19259b-4bc3-4df7-8a09-765794883524

5 years agoBaseTools AARCH64: build XIP modules with strict alignment
Ard Biesheuvel [Mon, 11 Jan 2016 08:50:49 +0000 (08:50 +0000)]
BaseTools AARCH64: build XIP modules with strict alignment

GCC for AARCH64 recognizes byte swapping load and store sequences
and may replace them with wider loads or stores combined with rev
instructions. In some cases (i.e., with GCC version 5 and later)
this may result in unaligned accesses, which are not allowed before
we turn the MMU on.

So build any modules or static libraries that may execute with the MMU
off with -mstrict-align. Other modules don't need this switch, so we
can remove it from the CLANG35/AARCH64 common CC flags.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19638 6f19259b-4bc3-4df7-8a09-765794883524