mirror_edk2.git
6 years agoIntelFsp2Pkg/Tools: Add BSF bit field support in GenCfgOpt tool
Maurice Ma [Wed, 25 May 2016 18:21:18 +0000 (11:21 -0700)]
IntelFsp2Pkg/Tools: Add BSF bit field support in GenCfgOpt tool

The current GenCfgOpt tool does not generate bit fields in BSF.
This change will allow bit fields to be created in BSF for a specific
FSP UPD item. The argument for the tool is also updated to be in sync
with the old usage model in IntelFspPkg.

Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Giri P Mudusuru <giri.p.mudusuru@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Maurice Ma <maurice.ma@intel.com>
Reviewed-by: Jiewen Yao <Jiewen.yao@intel.com>
Reviewed-by: Giri P Mudusuru <giri.p.mudusuru@intel.com>
6 years agoOvmfPkg/PlatformBootManagerLib: keep the logo after connecting devices
Laszlo Ersek [Wed, 25 May 2016 12:11:14 +0000 (14:11 +0200)]
OvmfPkg/PlatformBootManagerLib: keep the logo after connecting devices

OVMF (unlike ArmVirtPkg) has traditionally cleared the screen after
connecting devices. This is not really necessary, and keeping the logo up
while the progress bar is advancing at the bottom looks great. So don't
clear the screen.

Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
6 years agoOvmfPkg/PlatformBootManagerLib: bring back the progress bar
Laszlo Ersek [Wed, 25 May 2016 12:00:06 +0000 (14:00 +0200)]
OvmfPkg/PlatformBootManagerLib: bring back the progress bar

OVMF's Platform BDS used to have a nice progress bar (with
IntelFrameworkModulePkg BDS). We can restore it by copying the
PlatformBootManagerWaitCallback() function verbatim from

  Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManager.c

It can be tested by passing the following option to QEMU (5 seconds):

  -boot menu=on,splash-time=5000

Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
6 years agoOvmfPkg/PlatformBootManagerLib: rebase boot logo display to BootLogoLib
Laszlo Ersek [Wed, 25 May 2016 11:08:15 +0000 (13:08 +0200)]
OvmfPkg/PlatformBootManagerLib: rebase boot logo display to BootLogoLib

In the course of porting OvmfPkg to the MdeModulePkg BDS, commit
817fb3ac2a78

  OvmfPkg/PlatformBootManagerLib: Add EnableQuietBoot & DisableQuietBoot

open-coded the EnableQuietBoot() function (and its dependencies / friends)
from IntelFrameworkModulePkg BDS.

This code duplication can be avoided; the functionality is available from
the following three libraries in MdeModulePkg:

- BootLogoLib: provides the BootLogoEnableLogo() function. It does not
  provide the internal ConvertBmpToGopBlt() function -- that one is
  delegated to ImageDecoderLib (function DecodeImage()).

- ImageDecoderLib: a general library that registers decoder plugins for
  specific image formats, and provides the generic DecodeImage() on top.

- BmpImageDecoderLib: one of said decoder plugins, for handling BMP images
  (which is the format of our logo).

In this patch, we revert 817fb3ac2a78, and atomically incorporate the
above libraries. This is inspired by Nt32Pkg commit 859e75c4fc42:

  Nt32Pkg: Use BootLogoLib for logo and progress bar drawing.

Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
6 years agoMdeModulePkg/BootLogoLib: pull GraphicsOutput protocol into class header
Laszlo Ersek [Wed, 25 May 2016 11:19:41 +0000 (13:19 +0200)]
MdeModulePkg/BootLogoLib: pull GraphicsOutput protocol into class header

The BootLogoUpdateProgress() function uses the
EFI_GRAPHICS_OUTPUT_BLT_PIXEL type in its parameter list, but the protocol
header that defines this type is not included. This breaks dependent C
source files that don't otherwise include the GraphicsOutput protocol
header. Supply the necessary include directive.

(Similarly, BootLogoEnableLogo() uses
EDKII_PLATFORM_LOGO_DISPLAY_ATTRIBUTE in its parameter list. For that
however, the PlatformLogo protocol header is included already.)

Cc: Feng Tian <feng.tian@intel.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
6 years agoNt32Pkg/PlatformBootManagerLib: zero EFI_GRAPHICS_OUTPUT_BLT_PIXEL.Reserved
Laszlo Ersek [Wed, 25 May 2016 22:51:27 +0000 (00:51 +0200)]
Nt32Pkg/PlatformBootManagerLib: zero EFI_GRAPHICS_OUTPUT_BLT_PIXEL.Reserved

The PlatformBootManagerWaitCallback() function sets White.Reserved to
0xFF; it should be 0x00. Also, use a more compact form to assign the
component fields.

Suggested-by: Jordan Justen <jordan.l.justen@intel.com>
Cc: Andrew Fish <afish@apple.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
6 years agoMdeModulePkg: Move/Replace NvmExpressHci.h definitions to Nvme.h.
Darbin Reyes [Wed, 25 May 2016 22:28:41 +0000 (06:28 +0800)]
MdeModulePkg: Move/Replace NvmExpressHci.h definitions to Nvme.h.

Move NvmExpressHci.h definitions to a public industry standard
header in MdePkg. The NvmExpressHci.h contains definitions based
on the NVMe v1.1 specification. These definitions should be in
a public header so that clients of the NVMe passthru protocol
can use them to execute NVMe commands.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Darbin Reyes <darbin.emm.reyes@hpe.com>
Reviewed-by: Samer El-Haj-Mahmoud <samer.el-haj-mahmoud@hpe.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
6 years agoMdePkg: Add a header for NVMe v1.1 spec. definitions.
Darbin Reyes [Wed, 25 May 2016 22:28:40 +0000 (06:28 +0800)]
MdePkg: Add a header for NVMe v1.1 spec. definitions.

Adds a public header for NVMe v1.1 spec. definitions. The majority
of these definitions where copied from a private header in
MdeModulePkg/Bus/Pci/NvmExpress/NvmExpressHci.h. Additional
definitions were added e.g. the NVMe Smart Health Log and
Firmware Info. Log structures. These definitions should be
in a public header so that clients of the NVMe passthru protocol
can use them to execute NVMe commands.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Darbin Reyes <darbin.emm.reyes@hpe.com>
Reviewed-by: Samer El-Haj-Mahmoud <samer.el-haj-mahmoud@hpe.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
6 years agoBaseTools: Fix bad macro expansion during tools_def.txt parsing
Michael Zimmermann [Thu, 26 May 2016 07:54:51 +0000 (15:54 +0800)]
BaseTools: Fix bad macro expansion during tools_def.txt parsing

this is something I missed in 8ac46e4

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael Zimmermann <sigmaepsilon92@gmail.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
6 years agoOvmfPkg/SerializeVariablesLib: Relax check for the read-only variable
Gary Lin [Thu, 26 May 2016 10:24:14 +0000 (18:24 +0800)]
OvmfPkg/SerializeVariablesLib: Relax check for the read-only variable

When OVMF tried to restore the variables from the file-based NvVars, it
failed to set the read-only variable and aborted the restoration with
this message:

Variable Check ReadOnly variable fail Write Protected - 04B37FE8-F6AE-480B-BDD5-37D98C5E89AA:VarErrorFlag

Since it's a read-only variable maintained by the firmware, it's
pointless to restore the previous value, so the check can be
relaxed to allow EFI_WRITE_PROTECTED returned from SetVariable.

Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Gary Lin <glin@suse.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
6 years agoOvmfPkg/SerializeVariablesLib: convert line endings to uniform CRLF
Laszlo Ersek [Thu, 26 May 2016 11:12:14 +0000 (13:12 +0200)]
OvmfPkg/SerializeVariablesLib: convert line endings to uniform CRLF

"SerializeVariablesLib.h" is pure LF, while "SerializeVariablesLib.c" is
mixed (its only CRLF terminators are from commit e678f9db899ad). Convert
them both with "unix2dos".

"git show -b" produces no code hunks for this patch. Due to its simple and
mechanic nature (and because it blocks the application of another patch),
it's being committed without review.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
6 years agoMdeModulePkg: Fix incorrect status check for SockProcessRcvToken
Jiaxin Wu [Wed, 25 May 2016 03:39:11 +0000 (11:39 +0800)]
MdeModulePkg: Fix incorrect status check for SockProcessRcvToken

This patch is used to remove the status check for SockProcessRcvToken.
It's not return EFI_STATUS.

Cc: Fu Siyuan <siyuan.fu@intel.com>
Cc: Ye Ting <ting.ye@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>
6 years agoNetworkPkg: Correct HttpConfigure parameter check
Jiaxin Wu [Wed, 25 May 2016 08:22:26 +0000 (16:22 +0800)]
NetworkPkg: Correct HttpConfigure parameter check

When HttpConfigData is NULL, HttpConfigure should not return
EFI_INVALID_PARAMETER.

Cc: Ye Ting <ting.ye@intel.com>
Cc: Fu Siyuan <siyuan.fu@intel.com>
Cc: Zhang Lubo <lubo.zhang@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiaxin Wu <jiaxin.wu@intel.com>
Reviewed-by: Fu Siyuan <siyuan.fu@intel.com>
Reviewed-by: Ye Ting <ting.ye@intel.com>
Reviewed-by: Zhang Lubo <lubo.zhang@intel.com>
6 years agoMdePkg: Correct EFI_HTTP_CONFIGURE return status value
Jiaxin Wu [Wed, 25 May 2016 08:18:21 +0000 (16:18 +0800)]
MdePkg: Correct EFI_HTTP_CONFIGURE return status value

Cc: Ye Ting <ting.ye@intel.com>
Cc: Fu Siyuan <siyuan.fu@intel.com>
Cc: Zhang Lubo <lubo.zhang@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiaxin Wu <jiaxin.wu@intel.com>
Reviewed-by: Samer El-Haj-Mahmoud <elhaj@hpe.com>
Reviewed-by: Fu Siyuan <siyuan.fu@intel.com>
Reviewed-by: Ye Ting <ting.ye@intel.com>
Reviewed-by: Zhang Lubo <lubo.zhang@intel.com>
6 years agoBaseTools: add '!include' support to tools_def.txt parser
Michael Zimmermann [Tue, 17 May 2016 07:54:28 +0000 (15:54 +0800)]
BaseTools: add '!include' support to tools_def.txt parser

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael Zimmermann <sigmaepsilon92@gmail.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
6 years agoBaseTools: Fix comments about return value of 'LoadToolDefFile'
Michael Zimmermann [Sat, 14 May 2016 09:49:54 +0000 (17:49 +0800)]
BaseTools: Fix comments about return value of 'LoadToolDefFile'

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael Zimmermann <sigmaepsilon92@gmail.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
6 years agoBaseTools: Fix GenFds issue to wrongly get file without postfix.
Liming Gao [Fri, 20 May 2016 08:42:35 +0000 (16:42 +0800)]
BaseTools: Fix GenFds issue to wrongly get file without postfix.

GenFds GenSection will search the output file based on the file extension.
If the output file has no extension, it should be skip.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Andrew Fish <afish@apple.com>
6 years agoMdeModulePkg NvmExpressDxe: Fix VS2010 build error
Hao Wu [Wed, 25 May 2016 02:00:08 +0000 (10:00 +0800)]
MdeModulePkg NvmExpressDxe: Fix VS2010 build error

Potentially uninitialized 'Status' might be returned in functions
NvmeCreateIoCompletionQueue() and NvmeCreateIoSubmissionQueue() in file
NvmExpressHci.c.

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: Feng Tian <feng.tian@intel.com>
6 years agoOvmfPkg: prevent 64-bit MMIO BAR degradation if there is no CSM
Laszlo Ersek [Wed, 18 May 2016 18:13:41 +0000 (20:13 +0200)]
OvmfPkg: prevent 64-bit MMIO BAR degradation if there is no CSM

According to edk2 commit

  "MdeModulePkg/PciBus: do not improperly degrade resource"

and to the EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_PROTOCOL definition in the
Platform Init 1.4a specification, a platform can provide such a protocol
in order to influence the PCI resource allocation performed by the PCI Bus
driver.

In particular it is possible instruct the PCI Bus driver, with a
"wildcard" hint, to allocate the 64-bit MMIO BARs of a device in 64-bit
address space, regardless of whether the device features an option ROM.

(By default, the PCI Bus driver considers an option ROM reason enough for
allocating the 64-bit MMIO BARs in 32-bit address space. It cannot know if
BDS will launch a legacy boot option, and under legacy boot, a legacy BIOS
binary from a combined option ROM could be dispatched, and fail to access
MMIO BARs in 64-bit address space.)

In platform code we can ascertain whether a CSM is present or not. If not,
then legacy BIOS binaries in option ROMs can't be dispatched, hence the
BAR degradation is detrimental, and we should prevent it. This is expected
to conserve the 32-bit address space for 32-bit MMIO BARs.

The driver added in this patch could be simplified based on the following
facts:

- In the Ia32 build, the 64-bit MMIO aperture is always zero-size, hence
  the driver will exit immediately. Therefore the driver could be omitted
  from the Ia32 build.

- In the Ia32X64 and X64 builds, the driver could be omitted if CSM_ENABLE
  was defined (because in that case the degradation would be justified).
  On the other hand, if CSM_ENABLE was undefined, then the driver could be
  included, and it could provide the hint unconditionally (without looking
  for the Legacy BIOS protocol).

These short-cuts are not taken because they would increase the differences
between the OVMF DSC/FDF files. If we can manage without extreme
complexity, we should use dynamic logic (vs. build time configuration),
plus keep conditional compilation to a minimum.

Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
6 years agoOvmfPkg, ArmVirtPkg: rename QemuNewBootOrderLib to QemuBootOrderLib
Laszlo Ersek [Tue, 17 May 2016 17:30:24 +0000 (19:30 +0200)]
OvmfPkg, ArmVirtPkg: rename QemuNewBootOrderLib to QemuBootOrderLib

This completes the transition to the new BDS.

The FILE_GUID in "QemuBootOrderLib.inf" is intentionally not changed.

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Gary Ching-Pang Lin <glin@suse.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
6 years agoOvmfPkg, ArmVirtPkg: clean up SetBootOrderFromQemu() parameter list
Laszlo Ersek [Tue, 17 May 2016 17:22:17 +0000 (19:22 +0200)]
OvmfPkg, ArmVirtPkg: clean up SetBootOrderFromQemu() parameter list

With OvmfPkg's original QemuBootOrderLib (and USE_OLD_BDS) gone, we no
longer need the BootOptionList parameter in the SetBootOrderFromQemu()
prototype. Update the library class header file (including the function's
documentation), and adapt the library instance and the call sites.

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Gary Ching-Pang Lin <glin@suse.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
6 years agoOvmfPkg: remove QemuBootOrderLib instance
Laszlo Ersek [Tue, 17 May 2016 16:52:49 +0000 (18:52 +0200)]
OvmfPkg: remove QemuBootOrderLib instance

This library instance is no longer referenced.

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Gary Ching-Pang Lin <glin@suse.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
6 years agoOvmfPkg: remove PlatformBdsLib instance
Laszlo Ersek [Tue, 17 May 2016 16:51:48 +0000 (18:51 +0200)]
OvmfPkg: remove PlatformBdsLib instance

This library instance is no longer referenced.

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Gary Ching-Pang Lin <glin@suse.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
6 years agoOvmfPkg: remove USE_OLD_BDS build fallback macro
Laszlo Ersek [Tue, 17 May 2016 16:32:24 +0000 (18:32 +0200)]
OvmfPkg: remove USE_OLD_BDS build fallback macro

Reasons:

- USE_OLD_BDS requires duplicating updates between OVMF's library
  instances that depend on USE_OLD_BDS being FALSE vs. TRUE. Examples:

  d5aee61bfaaa OvmfPkg/QemuNewBootOrderLib: adapt Q35 SATA PMPN to UEFI
               spec Mantis 1353

  1da761664949 OvmfPkg/QemuBootOrderLib: adapt Q35 SATA PMPN to UEFI spec
               Mantis 1353

- The Xen community has embraced the new BDS. Examples:

  14b2ebc30c8b OvmfPkg/PlatformBootManagerLib: Postpone the shell
               registration

  49effaf26ec9 OvmfPkg/PciHostBridgeLib: Scan for root bridges when
               running over Xen

- OVMF doesn't build with "-D USE_OLD_BDS -D HTTP_BOOT_ENABLE" anyway, as
  NetworkPkg/HttpBootDxe now requires UefiBootManagerLib:

  50a65824c74a NetworkPkg: Use UefiBootManagerLib API to create load
               option.

  We (correctly) don't resolve UefiBootManagerLib when USE_OLD_BDS is
  TRUE.

- The new BDS has been working well; for example it's the only BDS
  available in ArmVirtPkg:

  1946faa710e6 ArmVirtPkg/ArmVirtQemu: use MdeModulePkg/BDS

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Gary Ching-Pang Lin <glin@suse.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
6 years agoOvmfPkg/README: refer to MdeModulePkg & PlatformBootManagerLib in examples
Laszlo Ersek [Tue, 17 May 2016 16:47:02 +0000 (18:47 +0200)]
OvmfPkg/README: refer to MdeModulePkg & PlatformBootManagerLib in examples

The "UNIXGCC Debug" section happens to name PlatformBdsLib and
IntelFrameworkModulePkg's BdsDxe as examples. OVMF will soon stop offering
those even as a fallback option.

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Gary Ching-Pang Lin <glin@suse.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
6 years agoMdeModulePkg: Make function comments and function match in UI codes
Dandan Bi [Mon, 23 May 2016 06:54:46 +0000 (14:54 +0800)]
MdeModulePkg: Make function comments and function match in UI codes

Cc: Qiu Shumin <shumin.qiu@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
Reviewed-by: Qiu Shumin <shumin.qiu@intel.com>
6 years agoMdeModulePkg/DisplayEngine: Fix memory leak issues in DisplayEngine
Dandan Bi [Thu, 19 May 2016 06:17:34 +0000 (14:17 +0800)]
MdeModulePkg/DisplayEngine: Fix memory leak issues in DisplayEngine

The following codes are useless and cause memory leak issues.
So now remove them.

Cc: Cecil Sheng <cecil.sheng@hpe.com>
Cc: Qiu Shumin <shumin.qiu@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
6 years agoBaseTools/GenFds: enhance to get TOOL_CHAIN_TAG and TARGET value
Yonghong Zhu [Fri, 6 May 2016 07:20:23 +0000 (15:20 +0800)]
BaseTools/GenFds: enhance to get TOOL_CHAIN_TAG and TARGET value

when user don't set TOOL_CHAIN_TAG and TARGET by –D Flag, then GenFds
would report failure for format:
FILE DATA = $(OUTPUT_DIRECTORY)/$(TARGET)_$(TOOL_CHAIN_TAG)/testfile
so this patch enhance to get the TOOL_CHAIN_TAG and TARGET value by
following priority (high to low): 1. the Macro value set by -D Flag;
2. Get the value by the -t/-b option. 3. get the value from target.txt
file. Besides, this patch also remove the error checking for missing
-t/-b option.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
6 years agoMdeModulePkg RamDiskDxe: VALID_ARCH cleanup to list supported options
Hao Wu [Mon, 23 May 2016 03:40:30 +0000 (11:40 +0800)]
MdeModulePkg RamDiskDxe: VALID_ARCH cleanup to list supported options

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
6 years agoShellPkg/App: Fix memory leak and save resources.
Marvin H?user [Thu, 19 May 2016 19:04:02 +0000 (03:04 +0800)]
ShellPkg/App: Fix memory leak and save resources.

1) RunSplitCommand() allocates the initial SplitStdOut via
   CreateFileInterfaceMem(). Free SplitStdIn after the swap to fix
   the memory leak.

2) In RunSplitCommand(), SplitStdOut is checked for equality with
   StdIn. This cannot happen due to the if-check within the swap.
   Hence remove it.

3) UefiMain() doesn't free SplitList. Delete all list entries and
   reinitialize the list when in DEBUG. This does not include the
   CreateFileInterfaceMem()-allocated SplitStd mentioned in 1), so
   keep the ASSERT() until resolved.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Marvin Haeuser <Marvin.Haeuser@outlook.com>
Reviewed-by: Qiu Shumin <shumin.qiu@intel.com>
6 years agoUefiCpuPkg/PiSmmCpuDxeSmm: Using MSRs semaphores in aligned buffer
Jeff Fan [Tue, 22 Mar 2016 02:42:12 +0000 (10:42 +0800)]
UefiCpuPkg/PiSmmCpuDxeSmm: Using MSRs semaphores in aligned buffer

Update MSRs semaphores to the ones in allocated aligned semaphores
buffer. If MSRs semaphores is not enough, allocate one page more.

Cc: Michael Kinney <michael.d.kinney@intel.com>
Cc: Feng Tian <feng.tian@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com>
Regression-tested-by: Laszlo Ersek <lersek@redhat.com>
6 years agoUefiCpuPkg/PiSmmCpuDxeSmm: Allocate buffer for MSRs semaphores
Jeff Fan [Tue, 22 Mar 2016 02:36:28 +0000 (10:36 +0800)]
UefiCpuPkg/PiSmmCpuDxeSmm: Allocate buffer for MSRs semaphores

Allocate MSRs semaphores in allocated aligned semaphores buffer.
And add it into semaphores structure.

Cc: Michael Kinney <michael.d.kinney@intel.com>
Cc: Feng Tian <feng.tian@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com>
Regression-tested-by: Laszlo Ersek <lersek@redhat.com>
6 years agoUefiCpuPkg/PiSmmCpuDxeSmm: Using CPU semaphores in aligned buffer
Jeff Fan [Tue, 22 Mar 2016 02:21:27 +0000 (10:21 +0800)]
UefiCpuPkg/PiSmmCpuDxeSmm: Using CPU semaphores in aligned buffer

Update each CPU semaphores to the ones in allocated aligned
semaphores buffer.

Cc: Michael Kinney <michael.d.kinney@intel.com>
Cc: Feng Tian <feng.tian@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com>
Regression-tested-by: Laszlo Ersek <lersek@redhat.com>
6 years agoUefiCpuPkg/PiSmmCpuDxeSmm: Allocate buffer for each CPU semaphores
Jeff Fan [Tue, 22 Mar 2016 02:19:23 +0000 (10:19 +0800)]
UefiCpuPkg/PiSmmCpuDxeSmm: Allocate buffer for each CPU semaphores

Allocate each CPU semaphores in allocated aligned semaphores buffer.
And add it into semaphores structure.

Cc: Michael Kinney <michael.d.kinney@intel.com>
Cc: Feng Tian <feng.tian@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com>
Regression-tested-by: Laszlo Ersek <lersek@redhat.com>
6 years agoUefiCpuPkg/PiSmmCpuDxeSmm: Using global semaphores in aligned buffer
Jeff Fan [Tue, 22 Mar 2016 02:15:53 +0000 (10:15 +0800)]
UefiCpuPkg/PiSmmCpuDxeSmm: Using global semaphores in aligned buffer

Update all global semaphores to the ones in allocated aligned
semaphores buffer.

Cc: Michael Kinney <michael.d.kinney@intel.com>
Cc: Feng Tian <feng.tian@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com>
Regression-tested-by: Laszlo Ersek <lersek@redhat.com>
6 years agoUefiCpuPkg/PiSmmCpuDxeSmm: Move forward MP sync data initialization
Jeff Fan [Tue, 22 Mar 2016 02:08:03 +0000 (10:08 +0800)]
UefiCpuPkg/PiSmmCpuDxeSmm: Move forward MP sync data initialization

Move MP sync data initialization in front of the place that initialize
page table, because the page fault spin lock is allocated in
InitializeMpSyncData() while it is initialized in SmmInitPageTable().

Cc: Michael Kinney <michael.d.kinney@intel.com>
Cc: Feng Tian <feng.tian@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com>
Regression-tested-by: Laszlo Ersek <lersek@redhat.com>
6 years agoUefiCpuPkg/PiSmmCpuDxeSmm: Allocate buffer for global semaphores
Jeff Fan [Tue, 22 Mar 2016 01:55:28 +0000 (09:55 +0800)]
UefiCpuPkg/PiSmmCpuDxeSmm: Allocate buffer for global semaphores

Get semaphores alignment/size requirement and allocate aligned
buffer for all global spin lock and semaphores.

Cc: Michael Kinney <michael.d.kinney@intel.com>
Cc: Feng Tian <feng.tian@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com>
Regression-tested-by: Laszlo Ersek <lersek@redhat.com>
6 years agoMdePkg/BaseLib: Add more comments for safe string functions.
Jiewen Yao [Sun, 22 May 2016 13:01:37 +0000 (21:01 +0800)]
MdePkg/BaseLib: Add more comments for safe string functions.

Add more comments:
1) EDKII version safe string function is similar as the one C11.
2) If error is returned, the Destination is unmodified.

Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiewen Yao <jiewen.yao@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
6 years agoMdePkg/WSMT.h: update header comment to use official URL link.
Jiewen Yao [Fri, 20 May 2016 00:57:06 +0000 (08:57 +0800)]
MdePkg/WSMT.h: update header comment to use official URL link.

Update WSMT table link to official MSDN URL.

Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiewen Yao <jiewen.yao@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Samer El-Haj-Mahmoud <elhaj@hpe.com>
6 years agoNetworkPkg: update code for NULL pointer check.
Fu Siyuan [Mon, 23 May 2016 03:02:01 +0000 (11:02 +0800)]
NetworkPkg: update code for NULL pointer check.

This patch updates the HTTP driver to initialize the local variable for NULL
and check the NULL pointer before dereference it.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Fu Siyuan <siyuan.fu@intel.com>
Reviewed-by: Ye Ting <ting.ye@intel.com>
Reviewed-by: Wu Jiaxin <jiaxin.wu@intel.com>
6 years agoMdeModulePkg/PciHostBridgeDxe: Fix VS tool chain build failure
Ruiyu Ni [Mon, 23 May 2016 01:54:17 +0000 (09:54 +0800)]
MdeModulePkg/PciHostBridgeDxe: Fix VS tool chain build failure

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed-by: Shumin Qiu <shumin.qiu@intel.com>
6 years agoMdeModulePkg/PciHostBridgeDxe: Add CpuArch protocol dependency
Ruiyu Ni [Thu, 19 May 2016 07:16:42 +0000 (15:16 +0800)]
MdeModulePkg/PciHostBridgeDxe: Add CpuArch protocol dependency

The driver entry point calls gDS->SetMemorySpaceAttributes().
This interface may return EFI_NOT_AVAILABLE_YET when CPU Arch
protocol is not available.
So we need to list CpuArch protocol in its INF dependency section.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
6 years agoCorebootPayloadPkg: Consume PlatformHookLib in PlatformBootManagerLib
Maurice Ma [Mon, 23 May 2016 21:51:48 +0000 (14:51 -0700)]
CorebootPayloadPkg: Consume PlatformHookLib in PlatformBootManagerLib

When coreboot uses different baud rate from the default (115200), the
current BDS driver will not be able to enable serial console display
due to the inconsistent serial port PCD settings.  By adding the
PlatformHookLib reference in the inf file, it will enforce the PCDs
to be aligned with what have been passed from coreboot.

Cc: Prince Agyeman <prince.agyeman@intel.com>
Cc: Lee Leahy <leroy.p.leahy@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Maurice Ma <maurice.ma@intel.com>
Reviewed by: Lee Leahy <leroy.p.leahy@intel.com>

6 years agoCorebootPayloadPkg: Use generic PciBus/PciHostBridge driver
Maurice Ma [Mon, 16 May 2016 22:02:44 +0000 (15:02 -0700)]
CorebootPayloadPkg: Use generic PciBus/PciHostBridge driver

Current CorebootPayloadPkg uses PciBusNoEnumerationDxe and
PciRootBridgenoEnumerationDxe copied from the DuetPkg. Now it will
switch to use the standard PciBusDxe and PciHostBridgeDxe from
MdeModulePkg. As a result, a coreboot specific PciHostBridgeLib
is added to collect pre-allocated PCI resources.

Cc: Prince Agyeman <prince.agyeman@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Maurice Ma <maurice.ma@intel.com>
Reviewed-by: Prince Agyeman <prince.agyeman@intel.com>
6 years agoCorebootModulePkg/CbSupportDxe: Text only support
Leahy, Leroy P [Mon, 23 May 2016 15:45:07 +0000 (08:45 -0700)]
CorebootModulePkg/CbSupportDxe: Text only support

Not all platforms have or support graphics.  The ASSERT that the
frame buffer HOB is not NULL is fatal for these platforms.  Convert
this into an if statement and make the related PcdSet* calls c
onditional on locating the frame buffer HOB.

Change-Id: Ibdc4bf5359571f3ce1555efcaf4657b8e363b2cd
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Lee Leahy <leroy.p.leahy@intel.com>
Reviewed-by: Maurice Ma <maurice.ma@intel.com>
6 years agoCorebootPayloadPkg/PlatformBootManagerLib: Fix Linux build
Leahy, Leroy P [Mon, 23 May 2016 15:45:28 +0000 (08:45 -0700)]
CorebootPayloadPkg/PlatformBootManagerLib: Fix Linux build

Fix Linux build failure with GCC 4.8.4 due to missing braces.

Change-Id: Ic0de6520605149f1bb74f8b60ce8cab8beda10a4
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Lee Leahy <leroy.p.leahy@intel.com>
Reviewed-by: Maurice Ma <maurice.ma@intel.com>
6 years agoBaseTools: Add error condition for the path in PACKAGES_PATH env
Zhu, Yonghong [Wed, 18 May 2016 01:59:20 +0000 (09:59 +0800)]
BaseTools: Add error condition for the path in PACKAGES_PATH env

This patch adds two error conditions:
1) if one path in PACKAGES_PATH doesn't exist.
2) if the space exists in the PACKAGES_PATH.

In V2, highlight one path in PACKAGES_PATH env doesn't exist.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed by: Andrew Fish <afish@apple.com>

6 years agoMdePkg: Update StatusCode Runtime Protocol comments to follow PI spec 1.4a.
Liming Gao [Wed, 13 Apr 2016 02:57:25 +0000 (10:57 +0800)]
MdePkg: Update StatusCode Runtime Protocol comments to follow PI spec 1.4a.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
6 years agoMdeModulePkg/PciBus: do not improperly degrade resource
Ruiyu Ni [Fri, 1 Apr 2016 08:14:07 +0000 (16:14 +0800)]
MdeModulePkg/PciBus: do not improperly degrade resource

PciBus driver originally always degrade (64->32) the MMIO resource
for PCI BAR when the PCI device contains option ROM.
But the degrade causes the PCI device can only use resource below 4GB
which makes the resource allocation fails when the PCI device wants
very big MMIO.
The patch follows the PI spec (ECR 1529) to honor the granularity
setting for PCI BAR from IncompatiblePciDeviceSupport so that even
for PCI device which contains option ROM, the degrade doesn't happen
if IncompatiblePciDeviceSupport returns 64 as granularity.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed-by: Jeff Fan <jeff.fan@intel.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
6 years agoMdeModulePkg/PciBus: Use shorter global variable name
Ruiyu Ni [Fri, 1 Apr 2016 08:33:11 +0000 (16:33 +0800)]
MdeModulePkg/PciBus: Use shorter global variable name

Remove "Efi" from gEfiIncompatiblePciDeviceSupport to shorten
the global variable name.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed-by: Jeff Fan <jeff.fan@intel.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
6 years agoMdeModulePkg/PciBus: Remove unused fields in PCI_BAR
Ruiyu Ni [Fri, 1 Apr 2016 08:36:38 +0000 (16:36 +0800)]
MdeModulePkg/PciBus: Remove unused fields in PCI_BAR

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed-by: Jeff Fan <jeff.fan@intel.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
6 years agoMdeModulePkg/PciBus: use better name for local variables.
Ruiyu Ni [Fri, 1 Apr 2016 08:15:37 +0000 (16:15 +0800)]
MdeModulePkg/PciBus: use better name for local variables.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed-by: Jeff Fan <jeff.fan@intel.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
6 years agoMdePkg: Follow PI1.4a to fix artificial limitation of SkuId range
Star Zeng [Fri, 20 May 2016 04:20:04 +0000 (12:20 +0800)]
MdePkg: Follow PI1.4a to fix artificial limitation of SkuId range

There is absolutely no reason to artificially limit the SKU range to 1-255.
PI1.4a spec fixed the artificial limitation.

This patch is to follow PI1.4a spec to remove PCD_MAX_SKU_ID definition,
the check to PCD_MAX_SKU_ID and the comments describes the limitation.

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: Liming Gao <liming.gao@intel.com>
6 years agoMdeModulePkg PCD: Follow PI1.4a to fix artificial limitation of SkuId range
Star Zeng [Fri, 20 May 2016 03:36:50 +0000 (11:36 +0800)]
MdeModulePkg PCD: Follow PI1.4a to fix artificial limitation of SkuId range

There is absolutely no reason to artificially limit the SKU range to 1-255.
PI1.4a spec fixed the artificial limitation.

This patch is to follow PI1.4a spec to remove the sentence
"The valid SkuId range is 1 to 255." from SetSku function comments.

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: Liming Gao <liming.gao@intel.com>
6 years agoMdePkg: Follow PI1.4a to update the comments of EndOfDxe and SmmReadyToLock
Star Zeng [Fri, 20 May 2016 02:47:23 +0000 (10:47 +0800)]
MdePkg: Follow PI1.4a to update the comments of EndOfDxe and SmmReadyToLock

Cc: Jiewen Yao <jiewen.yao@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: Liming Gao <liming.gao@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
6 years agoPcAtChipsetPkg/PcRtc: get century RTC address in entry point
Ruiyu Ni [Wed, 18 May 2016 05:18:28 +0000 (13:18 +0800)]
PcAtChipsetPkg/PcRtc: get century RTC address in entry point

When ACPI table is installed before PcRtc driver runs,
the ACPI table installation callback isn't called which causes the
century value isn't written to the CMOS.
The patch calls GetCenturyRtcAddress() in entry point to fix
the bug.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Anbazhagan Baraneedharan <anbazhagan@hp.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Cc: Star Zeng <star.zeng@intel.com>
6 years agoPcAtChipsetPkg/PcRtc: move ACPI parsing code to GetCenturyRtcAddress
Ruiyu Ni [Wed, 18 May 2016 05:14:35 +0000 (13:14 +0800)]
PcAtChipsetPkg/PcRtc: move ACPI parsing code to GetCenturyRtcAddress

The patch moves ACPI parsing code to a separate function
GetCenturyRtcAddress() and the next patch will call this
function in driver entry point.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Anbazhagan Baraneedharan <anbazhagan@hp.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Cc: Star Zeng <star.zeng@intel.com>
6 years agoIntelFsp2WrapperPkg: Update gFspWrapperTokenSpaceGuid to gIntelFsp2WrapperTokenSpaceGuid.
Jiewen Yao [Fri, 20 May 2016 12:07:42 +0000 (20:07 +0800)]
IntelFsp2WrapperPkg: Update gFspWrapperTokenSpaceGuid to gIntelFsp2WrapperTokenSpaceGuid.

We updated gIntelFspPkgTokenSpaceGuid to gIntelFsp2PkgTokenSpaceGuid
in IntelFsp2Pkg, but we miss the update in IntelFsp2WrapperPkg.
This patch fixed the issue and made them consistent.

Cc: Giri P Mudusuru <giri.p.mudusuru@intel.com>
Cc: Satya P Yarlagadda <satya.p.yarlagadda@intel.com>
Cc: Maurice Ma <maurice.ma@intel.com>
Cc: Ravi P Rangarajan <ravi.p.rangarajan@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiewen Yao <jiewen.yao@intel.com>
Reviewed-by: Giri P Mudusuru <giri.p.mudusuru@intel.com>
6 years agoCorebootPayloadPkg: Remove BdsPlatform library
Maurice Ma [Tue, 17 May 2016 16:34:33 +0000 (09:34 -0700)]
CorebootPayloadPkg: Remove BdsPlatform library

Since the new BdsDxe driver in MdeModulePkg is used, the old
BdsPlatform library is not used any more and should be removed.

Cc: Prince Agyeman <prince.agyeman@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Maurice Ma <maurice.ma@intel.com>
Reviewed-by: Prince Agyeman <prince.agyeman@intel.com>
6 years agoCorebootPayloadPkg: Switch to use generic BdxDxe driver
Maurice Ma [Tue, 17 May 2016 16:33:28 +0000 (09:33 -0700)]
CorebootPayloadPkg: Switch to use generic BdxDxe driver

Switch over to use BdxDxe generic driver in MdeModulePkg.

Cc: Prince Agyeman <prince.agyeman@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Maurice Ma <maurice.ma@intel.com>
Reviewed-by: Prince Agyeman <prince.agyeman@intel.com>
6 years agoCorebootPayloadPkg: Add coreboot PlatfromBootManagerLib implementation
Maurice Ma [Tue, 17 May 2016 16:32:40 +0000 (09:32 -0700)]
CorebootPayloadPkg: Add coreboot PlatfromBootManagerLib implementation

In order to use the generic BdsDxe in MdeModulePkg, a platform
specific PlatfromBootManagerLib is required. This library will
help update the ConIn, ConOut and ErrOut variables.

Cc: Prince Agyeman <prince.agyeman@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Maurice Ma <maurice.ma@intel.com>
Reviewed-by: Lee Leahy <leroy.p.leahy@intel.com>
6 years agoCorebootModulePkg: Add video resolution PCD initialization
Maurice Ma [Tue, 17 May 2016 16:30:49 +0000 (09:30 -0700)]
CorebootModulePkg: Add video resolution PCD initialization

The video console resolution related PCDs are required to be
initialized after switching to use the generic BdsDxe driver
in MdeModulePkg.

Cc: Prince Agyeman <prince.agyeman@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Maurice Ma <maurice.ma@intel.com>
Reviewed-by: Lee Leahy <leroy.p.leahy@intel.com>
6 years agoCorebootModulePkg: Convert TAB to white space for CbSupportDxe driver
Maurice Ma [Wed, 18 May 2016 19:30:06 +0000 (12:30 -0700)]
CorebootModulePkg: Convert TAB to white space for CbSupportDxe driver

Convert TAB to white space for CbSupportDxe driver.

Cc: Prince Agyeman <prince.agyeman@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Maurice Ma <maurice.ma@intel.com>
Reviewed-by: Lee Leahy <leroy.p.leahy@intel.com>
6 years agoMdePkg: Clarification to the return status of EFI_PEIM_NOTIFY_ENTRY_POINT
Star Zeng [Wed, 18 May 2016 09:04:23 +0000 (17:04 +0800)]
MdePkg: Clarification to the return status of EFI_PEIM_NOTIFY_ENTRY_POINT

In Previous PI spec (< PI1.4a) Volume 1, Section 7.4.1, the callback
EFI_PEIM_NOTIFY_ENTRY_POINT is defined. A description for the arguments
are provided but not for the EFI_STATUS return value.

PI1.4a updated EFI_PEIM_NOTIFY_ENTRY_POINT definition to include a new
paragraph with this sentence after the arguments:

"The status code returned from this function is ignored"

This patch is to follow PI1.4a spec to update the code.

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: Liming Gao <liming.gao@intel.com>
6 years agoMdePkg: Update EFI_RESOURCE_ATTRIBUTE_READ_ONLY_PROTECTABLE to 0x00080000
Star Zeng [Wed, 18 May 2016 05:59:33 +0000 (13:59 +0800)]
MdePkg: Update EFI_RESOURCE_ATTRIBUTE_READ_ONLY_PROTECTABLE to 0x00080000

Previous PI spec (< PI1.4a) has EFI_RESOURCE_ATTRIBUTE_PERSISTENT and
EFI_RESOURCE_ATTRIBUTE_READ_ONLY_PROTECTABLE with same value 0x00800000.

To resolve the conflict, PI1.4a updated
EFI_RESOURCE_ATTRIBUTE_READ_ONLY_PROTECTABLE to 0x00080000, this patch
is to follow PI1.4a spec to update the code.

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: Liming Gao <liming.gao@intel.com>
6 years agoShellPkg: Fix ARM build failure.
Fu Siyuan [Fri, 20 May 2016 06:20:56 +0000 (14:20 +0800)]
ShellPkg: Fix ARM build failure.

This patch fixes the ARM build failure introduced by
2be45bfe2779043bc3566e879e7ec279412012dc.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Fu Siyuan <siyuan.fu@intel.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
6 years agoShellPkg/Bcfg: Add support for 'addp' command.
Qiu Shumin [Fri, 20 May 2016 04:48:44 +0000 (12:48 +0800)]
ShellPkg/Bcfg: Add support for 'addp' command.

Until now the 'addp' command has been handled in the same way as 'add'.
Just copy the DevicePath starting from the Hard Drive node when 'addp'
is used.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Marvin Haeuser <Marvin.Haeuser@outlook.com>
Reviewed-by: Qiu Shumin <shumin.qiu@intel.com>
6 years agoShellPkg: Also accept gEfiUnicodeCollation2ProtocolGuid for parsing.
Marvin H?user [Wed, 18 May 2016 23:21:35 +0000 (07:21 +0800)]
ShellPkg: Also accept gEfiUnicodeCollation2ProtocolGuid for parsing.

The EFI_UNICODE_COLLATION_PROTOCOL can have two different GUIDs.
Look for both to support more UEFI implementations.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Marvin Haeuser <Marvin.Haeuser@outlook.com>
Reviewed-by: Qiu Shumin <shumin.qiu@intel.com>
6 years agoMdeModulePkg ScsiDiskDxe: Add Erase Block Protocol support for UFS devices
Hao Wu [Mon, 11 Apr 2016 07:13:32 +0000 (15:13 +0800)]
MdeModulePkg ScsiDiskDxe: Add Erase Block Protocol support for UFS devices

This patch implements the EFI_ERASE_BLOCK_PROTOCOL in ScsiDiskDxe driver.

For now, the codes support the erase block feature only on Universal Flash
Storage (UFS) devices.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
6 years agoMdePkg IndustryStandard/Scsi.h: Add Unmap command support
Hao Wu [Mon, 11 Apr 2016 06:19:22 +0000 (14:19 +0800)]
MdePkg IndustryStandard/Scsi.h: Add Unmap command support

According to the SCSI Block Commands - 4 (SBC-4) spec, the patch add SCSI
unmap command support in IndustryStandard/Scsi.h.

The following changes have been made:
1. Add SCSI unmap command OP Code
2. Update the structure definition for Block Limits VPD page
3. Add structure definitions for UNMAP parameter list header & UNMAP block
descriptor.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
6 years agoNetworkPkg/HttpDxe: Don't free Wrap in HttpTcpReceiveNotifyDpc
Gary Lin [Fri, 20 May 2016 03:18:16 +0000 (11:18 +0800)]
NetworkPkg/HttpDxe: Don't free Wrap in HttpTcpReceiveNotifyDpc

The HTTP Token Wrap is created in EfiHttpResponse() and then passed
to the deferred Receive event callback, HttpTcpReceiveNotifyDpc.
HttpTcpReceiveHeader and HttpTcpReceiveBody use a Tcp polling loop to
monitor the socket status and trigger the Receive event when a new
packet arrives. The Receive event brings up HttpTcpReceiveNotifyDpc
to process the HTTP message and the function will set Wrap->TcpWrap.IsRxDone
to TRUE to break the Tcp polling loop.

However, HttpTcpReceiveNotifyDpc mistakenly freed Wrap, so the Tcp
polling loop was actually checking a dead variable, and this led the
system into an unstable status.

Given the fact that the HTTP Token Wrap will be freed in EfiHttpResponse
or HttpResponseWorker, this commit removes every "FreePool (Wrap)" in
HttpTcpReceiveNotifyDpc.

v2:
* Free Wrap after HttpTcpReceiveBody returns normally.

Cc: "Wu, Jiaxin" <jiaxin.wu@intel.com>
Cc: "Siyuan Fu" <siyuan.fu@intel.com>
Cc: "El-Haj-Mahmoud, Samer" <samer.el-haj-mahmoud@hpe.com>
Cc: "Laszlo Ersek" <lersek@redhat.com>
Cc: "Hegde, Nagaraj P" <nagaraj-p.hegde@hpe.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Gary Lin <glin@suse.com>
Reviewed-by: Samer El-Haj-Mahmoud <elhaj@hpe.com>
Reviewed-by: Jiaxin Wu <jiaxin.wu@intel.com>
Reviewed-by: Siyuan Fu <siyuan.fu@intel.com>
6 years agoNetworkPkg/TcpDxe: Remove the status check of SockProcessRcvToken
Gary Lin [Thu, 19 May 2016 03:49:18 +0000 (11:49 +0800)]
NetworkPkg/TcpDxe: Remove the status check of SockProcessRcvToken

SockProcessRcvToken only returns the number of the received bytes, not
an EFI Status.

Cc: "Siyuan Fu" <siyuan.fu@intel.com>
Cc: "Jiaxin Wu" <jiaxin.wu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Gary Lin <glin@suse.com>
Reviewed-by: Samer El-Haj-Mahmoud <elhaj@hpe.com>
Reviewed-by: Jiaxin Wu <jiaxin.wu@intel.com>
Reviewed-by: Siyuan Fu <siyuan.fu@intel.com>
6 years agoShellPkg: Add argument to set block size for tftp command.
Fu Siyuan [Fri, 6 May 2016 02:30:09 +0000 (10:30 +0800)]
ShellPkg: Add argument to set block size for tftp command.

TFTP block size has a big impact on the transmit performance, this patch is to
add new argument [-s <block size>] for shell "tftp" command to configure the
block size for file download.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Fu Siyuan <siyuan.fu@intel.com>
Reviewed-by: Ye Ting <ting.ye@intel.com>
Reviewed-by: Qiu Shumin <shumin.qiu@intel.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
6 years agoIntelFsp2WrapperPkg/FspmWrapperPeim: Update debug message match code.
Jiewen Yao [Wed, 18 May 2016 12:40:01 +0000 (20:40 +0800)]
IntelFsp2WrapperPkg/FspmWrapperPeim: Update debug message match code.

Update function name in debug message to match code.

Cc: Giri P Mudusuru <giri.p.mudusuru@intel.com>
Cc: Amy Chan <amy.chan@intel.com>
Cc: Maurice Ma <maurice.ma@intel.com>
Cc: Ravi P Rangarajan <ravi.p.rangarajan@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiewen Yao <jiewen.yao@intel.com>
Reviewed-by: Giri P Mudusuru <giri.p.mudusuru@intel.com>
6 years agoIntelFsp2Pkg/FspApi.h: Add comment for structure definition.
Jiewen Yao [Fri, 20 May 2016 00:46:58 +0000 (08:46 +0800)]
IntelFsp2Pkg/FspApi.h: Add comment for structure definition.

Add doxygen style comment for structure definition.

Cc: Giri P Mudusuru <giri.p.mudusuru@intel.com>
Cc: Satya P Yarlagadda <satya.p.yarlagadda@intel.com>
Cc: Maurice Ma <maurice.ma@intel.com>
Cc: Ravi P Rangarajan <ravi.p.rangarajan@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiewen Yao <jiewen.yao@intel.com>
Reviewed-by: Giri P Mudusuru <giri.p.mudusuru@intel.com>
6 years agoQuarkSocPkg/SmmCpuFeaturesLib: Add SMRR PhysBase/PhysMask fields check
Michael Kinney [Tue, 17 May 2016 18:15:54 +0000 (11:15 -0700)]
QuarkSocPkg/SmmCpuFeaturesLib: Add SMRR PhysBase/PhysMask fields check

SMRR range size and alignment should follow the rules like MTRR:
a. The minimum range size is 4 KBytes and the base address of the
   range must be on at least a 4-KByte boundary.
b. For ranges greater than 4 KBytes, each range must be of length
   2^n and its base address must be aligned on a 2^n boundary, where
   n is a value equal to or greater than 12. The base-address
   alignment value cannot be less than its length.
Thus, it could meet "Address_Within_Range AND PhysMask = PhysBase
AND PhysMask".

Cc: Jeff Fan <jeff.fan@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Feng Tian <feng.tian@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>
Reviewed-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
Acked-by: Laszlo Ersek <lersek@redhat.com>
6 years agoUefiCpuPkg/SmmCpuFeaturesLib: Add SMRR PhysBase/PhysMask fields check
Michael Kinney [Tue, 17 May 2016 18:15:33 +0000 (11:15 -0700)]
UefiCpuPkg/SmmCpuFeaturesLib: Add SMRR PhysBase/PhysMask fields check

SMRR range size and alignment should follow the rules like MTRR:
a. The minimum range size is 4 KBytes and the base address of the
   range must be on at least a 4-KByte boundary.
b. For ranges greater than 4 KBytes, each range must be of length
   2^n and its base address must be aligned on a 2^n boundary, where
   n is a value equal to or greater than 12. The base-address
   alignment value cannot be less than its length.
Thus, it could meet "Address_Within_Range AND PhysMask = PhysBase
AND PhysMask".

Cc: Jeff Fan <jeff.fan@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Feng Tian <feng.tian@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>
Reviewed-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
Acked-by: Laszlo Ersek <lersek@redhat.com>
6 years agoMdeModulePkg NvmExpressDxe: Add BlockIo2 support
Hao Wu [Wed, 27 Apr 2016 05:15:24 +0000 (13:15 +0800)]
MdeModulePkg NvmExpressDxe: Add BlockIo2 support

Together with EFI_BLOCK_IO_PROTOCOL, EFI_BLOCK_IO2_PROTOCOL is also
produced on NVMe devices.

The following Block I/O 2 functions are implemented:
Reset
ReadBlocksEx
WriteBlocksEx
FlushBlocksEx

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
6 years agoMdeModulePkg BootManagerUiLib: Remove invalid keyword "bds".
Dong, Eric [Wed, 18 May 2016 06:52:26 +0000 (14:52 +0800)]
MdeModulePkg BootManagerUiLib: Remove invalid keyword "bds".

In current code, BootManagerUiLib is not BDS scope.
So we remove bds keyword in the function name.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
6 years agoBootMaintenanceManagerUiLib: Remove invalid keyword "bds"
Dong, Eric [Wed, 18 May 2016 06:52:25 +0000 (14:52 +0800)]
BootMaintenanceManagerUiLib: Remove invalid keyword "bds"

In current code, BootMaintenanceManagerUiLib is not BDS scope.
So we remove bds keyword in the function name.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
6 years agoMdeModulePkg UiApp: Remove invalid keyword "bds" in UiApp.
Eric Dong [Wed, 18 May 2016 06:52:24 +0000 (14:52 +0800)]
MdeModulePkg UiApp: Remove invalid keyword "bds" in UiApp.

In current code, UiApp is not the BDS scope. So we remove the bds
keyword in the function name.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
6 years agoBootMaintenanceMangerUiLib: Save mode info for later use.
Dong, Eric [Wed, 18 May 2016 05:12:41 +0000 (13:12 +0800)]
BootMaintenanceMangerUiLib: Save mode info for later use.

In current code, we use different output modes for boot phase
and setup phase. When split BootMaintenanceMangerUiLib from
UiApp code, we not add logic to save the boot phase mode info
which will be used later. This change add this logic.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
6 years agoMdeModulePkg BootManagerUiLib: Save mode info for later use.
Dong, Eric [Wed, 18 May 2016 05:12:40 +0000 (13:12 +0800)]
MdeModulePkg BootManagerUiLib: Save mode info for later use.

In current code, we use different output modes for boot phase
and setup phase. When split BootManagerUiLib from UiApp code,
we not add logic to save the boot phase mode info which will
be used later. This change add this logic.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
6 years agoSecurityPkg/DxeImageVerificationLib: Add DEBUG messages for image verification failures
Cinnamon Shia [Fri, 13 May 2016 04:24:59 +0000 (12:24 +0800)]
SecurityPkg/DxeImageVerificationLib: Add DEBUG messages for image verification failures

Add DEBUG messages in DxeImageerificationLib to help debug Secure Boot image verification failures

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Cinnamon Shia <cinnamon.shia@hpe.com>
Reviewed-by: Samer EL-Haj-Mahmoud <elhaj@hpe.com>
Reviewed-by: Chao Zhang <chao.b.zhang@intel.com>
6 years agoMdeModulePkg: PeiCore: Fix PEI Multiple Sub-FV Support issue
Zhang, Chao B [Tue, 17 May 2016 07:35:21 +0000 (15:35 +0800)]
MdeModulePkg: PeiCore: Fix PEI Multiple Sub-FV Support issue

FirmwareVolmeInfoPpiNotifyCallback is re-enterable during FV process. Since PrivateData->FVCount increases when processing each sub FVs, need to cache Parent FV count in stack before processing any sub FV.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Chao Zhang <chao.b.zhang@intel.com>
Reviewed-by: Gao Liming <liming.gao@intel.com>
6 years agoCorebootModulePkg: Use PCD for memory type information initialization
Maurice Ma [Wed, 18 May 2016 23:27:07 +0000 (16:27 -0700)]
CorebootModulePkg: Use PCD for memory type information initialization

CorebootModulePkg currently uses a hardcoded table for memory type
initialization. It might need to be adjusted by platform to reduce
the memory fragmentation. So changing to use PCDs rather than
constant values to facilitate the customization.

Cc: Prince Agyeman <prince.agyeman@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Maurice Ma <maurice.ma@intel.com>
Reviewed-by: Prince Agyeman <prince.agyeman@intel.com>
6 years agoMdeModulePkg/UiApp: Exit function when parameter is unsupported or invalid
Dandan Bi [Tue, 17 May 2016 03:25:34 +0000 (11:25 +0800)]
MdeModulePkg/UiApp: Exit function when parameter is unsupported or invalid

When the parameter is unsupported or invalid,
should exit the function.

Cc: Qiu Shumin <shumin.qiu@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
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: Qiu Shumin <shumin.qiu@intel.com>
6 years agoMdeModulePkg: Skip invalid bus number scanning in PciBusDxe driver
Ma, Maurice [Mon, 16 May 2016 21:26:06 +0000 (05:26 +0800)]
MdeModulePkg: Skip invalid bus number scanning in PciBusDxe driver

When PcdPciDisableBusEnumeration is enabled, the PciBus driver
might get into a dead loop if the secondary bus register on PCI
bridge is not programmed or programmed improperly. Adding this
check to avoid any potential dead loop caused by this.

Cc: Feng Tian <feng.tian@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Maurice Ma <maurice.ma@intel.com>
Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed-by: Lee Leahy <Leroy.p.leahy@intel.com>
6 years agoBootMaintenanceManagerUiLib: Rollback changes for BootNext.
Eric Dong [Tue, 17 May 2016 06:00:06 +0000 (14:00 +0800)]
BootMaintenanceManagerUiLib: Rollback changes for BootNext.

Commit a85be3ae48a8aaa40b755cd0ff7270c67cfed585 imports errors for
BootNext question, this patch rollback the related changes.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
6 years agoBaseTools: Eliminate two shift-negative-value in FvLib.c
Zenith432 [Mon, 16 May 2016 15:52:21 +0000 (23:52 +0800)]
BaseTools: Eliminate two shift-negative-value in FvLib.c

clang 3.8 flags -Wshift-negative-value warning, which turns fatal due to
use of -Werror.

Fixes: https://github.com/tianocore/edk2/issues/49
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Zenith432 <zenith432@users.sourceforge.net>
Reviewed-by: Liming Gao <liming.gao@intel.com>
6 years agoMdePkg: Reinitialize twice-iterated VA_LIST in variadic function UefiDevicePathLibCat...
Zenith432 [Mon, 16 May 2016 15:50:06 +0000 (23:50 +0800)]
MdePkg: Reinitialize twice-iterated VA_LIST in variadic function UefiDevicePathLibCatPrint()

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Zenith432 <zenith432@users.sourceforge.net>
Reviewed-by: Liming Gao <liming.gao@intel.com>
6 years agoMdeModulePkg: Terminate two unterminated VA_COPYs in CheckRemainingSpaceForConsistenc...
Zenith432 [Mon, 16 May 2016 15:49:12 +0000 (23:49 +0800)]
MdeModulePkg: Terminate two unterminated VA_COPYs in CheckRemainingSpaceForConsistencyInternal()

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Zenith432 <zenith432@users.sourceforge.net>
Reviewed-by: Liming Gao <liming.gao@intel.com>
6 years agoMdeModulePkg UiApp: Add "Enter Setup" status code.
Dong, Eric [Tue, 17 May 2016 02:12:12 +0000 (10:12 +0800)]
MdeModulePkg UiApp: Add "Enter Setup" status code.

The original BdsDxe driver has "Enter Setup" status code
while current code not. This patch restores it.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
6 years agoShellPkg: Fix the incorrect behavior when pressing 'shift' key.
Pedroa Liu [Mon, 16 May 2016 12:48:41 +0000 (20:48 +0800)]
ShellPkg: Fix the incorrect behavior when pressing 'shift' key.

If 'ReadKeyStroke' function return EFI_NOT_READY then skip it.
If the return value is EFI_DEVICE_ERROR clean the currentString buffer.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Pedroa Liu <pedroa.liu@insyde.com>
Reviewed-by: Qiu Shumin <shumin.qiu@intel.com>
6 years agoBaseTools: support private package definition
Yonghong Zhu [Tue, 10 May 2016 09:58:26 +0000 (17:58 +0800)]
BaseTools: support private package definition

EDKII build spec and DEC spec updated to support private package
definition.
If GUID, Protocol or PPI is listed in a DEC file, where the  Private
modifier is used in the section tag ([Guids.common.Private] for example),
only modules within the package are permitted to use the GUID, Protocol
or PPI. If a module or library instance outside of the package attempts
to use the item, the build must fail with an appropriate error message.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
6 years agoOvmfPkg/PlatformPei: provide 10 * 4KB of PCI IO Port space on Q35
Laszlo Ersek [Mon, 9 May 2016 20:54:36 +0000 (22:54 +0200)]
OvmfPkg/PlatformPei: provide 10 * 4KB of PCI IO Port space on Q35

This can accommodate 10 bridges (including root bridges, PCIe upstream and
downstream ports, etc -- see
<https://bugzilla.redhat.com/show_bug.cgi?id=1333238#c12> for more
details).

10 is not a whole lot, but closer to the architectural limit of 15 than
our current 4, so it can be considered a stop-gap solution until all
guests manage to migrate to virtio-1.0, and no longer need PCI IO BARs
behind PCIe downstream ports.

Cc: Gabriel Somlo <somlo@cmu.edu>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Ref: https://bugzilla.redhat.com/show_bug.cgi?id=1333238
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Tested-by: Gabriel Somlo <somlo@cmu.edu>
6 years agoOvmfPkg/PlatformPei: set PCI IO port aperture dynamically
Laszlo Ersek [Mon, 9 May 2016 20:39:44 +0000 (22:39 +0200)]
OvmfPkg/PlatformPei: set PCI IO port aperture dynamically

Make PcdPciIoBase and PcdPciIoSize dynamic PCDs, and set them in
MemMapInitialization(), where we produce our EFI_RESOURCE_IO descriptor
HOB. (The PCD is consumed by the core PciHostBridgeDxe driver, through our
PciHostBridgeLib instance.)

Take special care to keep the GCD IO space map unchanged on all platforms
OVMF runs on.

Cc: Gabriel Somlo <somlo@cmu.edu>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Ref: https://bugzilla.redhat.com/show_bug.cgi?id=1333238
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Tested-by: Gabriel Somlo <somlo@cmu.edu>
6 years agoOvmfPkg: determine PMBA value dependent on host bridge device ID
Laszlo Ersek [Mon, 9 May 2016 19:04:47 +0000 (21:04 +0200)]
OvmfPkg: determine PMBA value dependent on host bridge device ID

In this patch, the AcpiTimerLib instances, ResetSystemLib, and PlatformPei
are modified together in order to keep VMs functional across a bisection:
they all must agree on the PMBA value used.

ResetSystemLib must not use dynamic PCDs. With SOURCE_DEBUG_ENABLE, it
gets linked into the debug agent, therefore the same restrictions apply to
it as to BaseRomAcpiTimerLib. Luckily, AcpiPmControl() is only used for
powering off the virtual machine, thus the extra cost of a PCI config
space read, compared to a PcdGet16(), should be negligible.

This is the patch that moves the PMBA to IO port 0x0600 on Q35 in
practice.

The ResetSystemLib change is easiest to verify with the "reset -s" command
in the UEFI shell (which goes through gRT->ResetSystem() and, in OVMF,
PcAtChipsetPkg/KbcResetDxe).

Cc: Gabriel Somlo <somlo@cmu.edu>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Ref: https://bugzilla.redhat.com/show_bug.cgi?id=1333238
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Tested-by: Gabriel Somlo <somlo@cmu.edu>
6 years agoOvmfPkg: introduce ICH9_PMBASE_VALUE
Laszlo Ersek [Mon, 9 May 2016 17:46:00 +0000 (19:46 +0200)]
OvmfPkg: introduce ICH9_PMBASE_VALUE

According to the ICH9 spec, PMBASE "provides 128 bytes of I/O space for
ACPI, GPIO, and TCO logic. This is placed on a 128-byte boundary".

On the Q35 machine type of QEMU, our current PMBASE setting of 0xB000 is
the only thing that prevents us from lowering the base of the PCI IO port
aperture from 0xC000. (The base must be aligned to 0x1000 due to PCI
bridge requirements.)

By moving our PMBASE to 0x0600 (moving the register block to
0x0600..0x067F inclusive), which is also what SeaBIOS uses on Q35, we will
be able to lower the PCI IO port aperture base to 0x6000 (the next IO port
under it being taken by the "vmport" device, at fixed 0x5658), while
steering clear of other QEMU devices.

On PIIX4, freeing up the 0x1000 IO ports at 0xB000 wouldn't help much,
because the 0xA000 block right below it is occupied by unmovable devices
(see <https://bugzilla.redhat.com/show_bug.cgi?id=1333238#c19> for
details).

Doing this for Q35 only has two more benefits:
- It won't interfere with Xen guests,
- The Q35 machine type with the smallest version number is "pc-q35-2.4",
  which is guaranteed to have an ACPI generator. This matters because the
  ACPI tables (FACP, DSDT) have to reflect the PM base address that we
  program.

Cc: Gabriel Somlo <somlo@cmu.edu>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Ref: https://bugzilla.redhat.com/show_bug.cgi?id=1333238
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Tested-by: Gabriel Somlo <somlo@cmu.edu>
6 years agoOvmfPkg: add and use industry standard macro PIIX4_PMBA_MASK
Laszlo Ersek [Mon, 9 May 2016 18:05:18 +0000 (20:05 +0200)]
OvmfPkg: add and use industry standard macro PIIX4_PMBA_MASK

We already have the identical purpose (but different value) macro for
ICH9, namely ICH9_PMBASE_MASK in
"OvmfPkg/Include/IndustryStandard/Q35MchIch9.h".

Also, stop bit-negating signed integer constants.

Cc: Gabriel Somlo <somlo@cmu.edu>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Ref: https://bugzilla.redhat.com/show_bug.cgi?id=1333238
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Tested-by: Gabriel Somlo <somlo@cmu.edu>