mirror_edk2.git
2 years agoShellPkg/dp: Correct case of included file
dann frazier [Tue, 26 Jun 2018 22:05:08 +0000 (06:05 +0800)]
ShellPkg/dp: Correct case of included file

Cc: Dandan Bi <dandan.bi@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Fixes: f45dd2dd4f1d6fab4bb62bfd5f4e71cb7849897d
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: dann frazier <dannf@debian.org>
Reviewed-by: Dandan Bi <dandan.bi@intel.com>
2 years agoShellPkg/DP: Add more check for input parameters
Dandan Bi [Mon, 25 Jun 2018 14:49:56 +0000 (22:49 +0800)]
ShellPkg/DP: Add more check for input parameters

New added checkers includes:
1. Too many invalid parameters
2. Too few parameter
3. Invalid number parameter for -n and -t flag
4. Conflict parameter of -A and -R.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Jaben Carsey <jaben.carsey@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
2 years agoMdeModulePkg/PiSmmCore: Remove SMM Perf entry
Dandan Bi [Wed, 27 Jun 2018 01:29:02 +0000 (09:29 +0800)]
MdeModulePkg/PiSmmCore: Remove SMM Perf entry

The perf measurement entry in SmmEntryPoint function
doesn't have significant meaning. So remove it now.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2 years agoMdeModulePkg: Update IP4 driver to check for NULL pointer before using.
Fu Siyuan [Wed, 27 Jun 2018 01:16:04 +0000 (09:16 +0800)]
MdeModulePkg: Update IP4 driver to check for NULL pointer before using.

Cc: Ye Ting <ting.ye@intel.com>
Cc: Wu Jiaxin <jiaxin.wu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Fu Siyuan <siyuan.fu@intel.com>
Reviewed-by: Wu Jiaxin <jiaxin.wu@intel.com>
2 years agoUefiCpuPkg: Clean up source files
Liming Gao [Wed, 27 Jun 2018 13:14:20 +0000 (21:14 +0800)]
UefiCpuPkg: Clean up source files

1. Do not use tab characters
2. No trailing white space in one line
3. All files must end with CRLF

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Liming Gao <liming.gao@intel.com>
2 years agoSourceLevelDebugPkg: Clean up source files
Liming Gao [Wed, 27 Jun 2018 13:14:00 +0000 (21:14 +0800)]
SourceLevelDebugPkg: Clean up source files

1. Do not use tab characters
2. No trailing white space in one line
3. All files must end with CRLF

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Hao Wu <hao.a.wu@intel.com>
2 years agoShellPkg: Clean up source files
Liming Gao [Wed, 27 Jun 2018 13:13:38 +0000 (21:13 +0800)]
ShellPkg: Clean up source files

1. Do not use tab characters
2. No trailing white space in one line
3. All files must end with CRLF

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
2 years agoShellBinPkg: Clean up source files
Liming Gao [Wed, 27 Jun 2018 13:13:23 +0000 (21:13 +0800)]
ShellBinPkg: Clean up source files

1. Do not use tab characters
2. No trailing white space in one line
3. All files must end with CRLF

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Liming Gao <liming.gao@intel.com>
2 years agoSecurityPkg: Clean up source files
Liming Gao [Wed, 27 Jun 2018 13:13:09 +0000 (21:13 +0800)]
SecurityPkg: Clean up source files

1. Do not use tab characters
2. No trailing white space in one line
3. All files must end with CRLF

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Liming Gao <liming.gao@intel.com>
2 years agoPcAtChipsetPkg: Clean up source files
Liming Gao [Wed, 27 Jun 2018 13:12:46 +0000 (21:12 +0800)]
PcAtChipsetPkg: Clean up source files

1. Do not use tab characters
2. No trailing white space in one line
3. All files must end with CRLF

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
2 years agoNetworkPkg: Clean up source files
Liming Gao [Wed, 27 Jun 2018 13:12:32 +0000 (21:12 +0800)]
NetworkPkg: Clean up source files

1. Do not use tab characters
2. No trailing white space in one line
3. All files must end with CRLF

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Liming Gao <liming.gao@intel.com>
2 years agoMdePkg: Clean up source files
Liming Gao [Wed, 27 Jun 2018 13:11:33 +0000 (21:11 +0800)]
MdePkg: Clean up source files

1. Do not use tab characters
2. No trailing white space in one line
3. All files must end with CRLF

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Liming Gao <liming.gao@intel.com>
2 years agoMdeModulePkg: Clean up source files
Liming Gao [Wed, 27 Jun 2018 13:08:52 +0000 (21:08 +0800)]
MdeModulePkg: Clean up source files

1. Do not use tab characters
2. No trailing white space in one line
3. All files must end with CRLF

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
2 years agoIntelSiliconPkg: Clean up source files
Liming Gao [Wed, 27 Jun 2018 13:07:12 +0000 (21:07 +0800)]
IntelSiliconPkg: Clean up source files

1. Do not use tab characters
2. No trailing white space in one line
3. All files must end with CRLF

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Liming Gao <liming.gao@intel.com>
2 years agoIntelFsp2WrapperPkg: Clean up source files
Liming Gao [Wed, 27 Jun 2018 13:07:08 +0000 (21:07 +0800)]
IntelFsp2WrapperPkg: Clean up source files

1. Do not use tab characters
2. No trailing white space in one line
3. All files must end with CRLF

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Liming Gao <liming.gao@intel.com>
2 years agoIntelFsp2Pkg: Clean up source files
Liming Gao [Wed, 27 Jun 2018 13:07:04 +0000 (21:07 +0800)]
IntelFsp2Pkg: Clean up source files

1. Do not use tab characters
2. No trailing white space in one line
3. All files must end with CRLF

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Liming Gao <liming.gao@intel.com>
2 years agoIntelFrameworkPkg: Clean up source files
Liming Gao [Wed, 27 Jun 2018 13:06:55 +0000 (21:06 +0800)]
IntelFrameworkPkg: Clean up source files

1. Do not use tab characters
2. No trailing white space in one line
3. All files must end with CRLF

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Liming Gao <liming.gao@intel.com>
2 years agoIntelFrameworkModulePkg: Clean up source files
Liming Gao [Wed, 27 Jun 2018 13:06:35 +0000 (21:06 +0800)]
IntelFrameworkModulePkg: Clean up source files

1. Do not use tab characters
2. No trailing white space in one line
3. All files must end with CRLF

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Liming Gao <liming.gao@intel.com>
2 years agoFatPkg: Clean up source files
Liming Gao [Wed, 27 Jun 2018 13:06:14 +0000 (21:06 +0800)]
FatPkg: Clean up source files

1. Do not use tab characters
2. No trailing white space in one line
3. All files must end with CRLF

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
2 years agoFatBinPkg: Clean up source files
Liming Gao [Wed, 27 Jun 2018 13:06:11 +0000 (21:06 +0800)]
FatBinPkg: Clean up source files

1. Do not use tab characters
2. No trailing white space in one line
3. All files must end with CRLF

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
2 years agoCryptoPkg: Clean up source files
Liming Gao [Wed, 27 Jun 2018 09:32:13 +0000 (17:32 +0800)]
CryptoPkg: Clean up source files

1. Do not use tab characters
2. No trailing white space in one line
3. All files must end with CRLF

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Liming Gao <liming.gao@intel.com>
2 years agoBaseTools: Move variable out of Global
Jaben Carsey [Wed, 27 Jun 2018 00:12:34 +0000 (08:12 +0800)]
BaseTools: Move variable out of Global

Move single use list from GlobalData (gTempInfs) into the file that uses it as _TempInfs

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2 years agoSecurityPkg Tpm2DeviceLibDTpm: Update enum type name to match the one in lib
Liming Gao [Wed, 27 Jun 2018 14:47:50 +0000 (22:47 +0800)]
SecurityPkg Tpm2DeviceLibDTpm: Update enum type name to match the one in lib

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Chao Zhang <chao.b.zhang@intel.com>
2 years agoBaseTools: AutoGen - Remove unused variables.
Jaben Carsey [Mon, 25 Jun 2018 23:18:02 +0000 (07:18 +0800)]
BaseTools: AutoGen - Remove unused variables.

There are 2 variables that we populate, but never use.
remove them entirely.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2 years agoBaseTools: Replace StringIO.StringIO with io.BytesIO
Gary Lin [Mon, 25 Jun 2018 10:31:36 +0000 (18:31 +0800)]
BaseTools: Replace StringIO.StringIO with io.BytesIO

Replace StringIO.StringIO with io.BytesIO to be compatible with python3.
This commit also removes "import StringIO" from those python scripts
that don't really use it.

Contributed-under: TianoCore Contribution Agreement 1.1
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Gary Lin <glin@suse.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2 years agoBaseTools: Fix old python2 idioms
Gary Lin [Mon, 25 Jun 2018 10:31:35 +0000 (18:31 +0800)]
BaseTools: Fix old python2 idioms

Based on "futurize -f lib2to3.fixes.fix_idioms"

* Change some type comparisons to isinstance() calls:
    type(x) == T -> isinstance(x, T)
    type(x) is T -> isinstance(x, T)
    type(x) != T -> not isinstance(x, T)
    type(x) is not T -> not isinstance(x, T)

* Change "while 1:" into "while True:".

* Change both

    v = list(EXPR)
    v.sort()
    foo(v)

and the more general

    v = EXPR
    v.sort()
    foo(v)

into

    v = sorted(EXPR)
    foo(v)

Contributed-under: TianoCore Contribution Agreement 1.1
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Gary Lin <glin@suse.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2 years agoBaseTools: Migrate to the new octal literal
Gary Lin [Mon, 25 Jun 2018 10:31:34 +0000 (18:31 +0800)]
BaseTools: Migrate to the new octal literal

Change the octal literals according to PEP3127
https://www.python.org/dev/peps/pep-3127/

Contributed-under: TianoCore Contribution Agreement 1.1
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Gary Lin <glin@suse.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2 years agoBaseTools: Adjust the spaces around commas and colons
Gary Lin [Mon, 25 Jun 2018 10:31:33 +0000 (18:31 +0800)]
BaseTools: Adjust the spaces around commas and colons

Based on "futurize -f lib2to3.fixes.fix_ws_comma"

Contributed-under: TianoCore Contribution Agreement 1.1
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Gary Lin <glin@suse.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2 years agoBaseTools: Refactor python raise statement
Gary Lin [Mon, 25 Jun 2018 10:31:32 +0000 (18:31 +0800)]
BaseTools: Refactor python raise statement

Make "raise" to be compatible with python3.

Contributed-under: TianoCore Contribution Agreement 1.1
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Gary Lin <glin@suse.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2 years agoBaseTools: Remove types.TypeType
Gary Lin [Mon, 25 Jun 2018 10:31:31 +0000 (18:31 +0800)]
BaseTools: Remove types.TypeType

"types.TypeType" is now an alias of the built-in "type" and is not
compatible with python 3.

Contributed-under: TianoCore Contribution Agreement 1.1
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Gary Lin <glin@suse.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2 years agoBaseTools: Replace StandardError with Expression
Gary Lin [Mon, 25 Jun 2018 10:31:30 +0000 (18:31 +0800)]
BaseTools: Replace StandardError with Expression

StandardError has been removed from python 3.
Replace it with Exception.

Contributed-under: TianoCore Contribution Agreement 1.1
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Gary Lin <glin@suse.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2 years agoBaseTools: Remove the deprecated hash_key()
Gary Lin [Mon, 25 Jun 2018 10:31:29 +0000 (18:31 +0800)]
BaseTools: Remove the deprecated hash_key()

Replace "has_key()" with "in" to be compatible with python3.
Based on "futurize -f lib2to3.fixes.fix_has_key"

Contributed-under: TianoCore Contribution Agreement 1.1
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Gary Lin <glin@suse.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2 years agoBaseTools: Remove tuple parameter in python scripts
Gary Lin [Mon, 25 Jun 2018 10:31:28 +0000 (18:31 +0800)]
BaseTools: Remove tuple parameter in python scripts

According to PEP3113, tuple parameter is removed in python 3.
(PEP3113: https://www.python.org/dev/peps/pep-3113/)

Contributed-under: TianoCore Contribution Agreement 1.1
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Gary Lin <glin@suse.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2 years agoBaseTools: Remove the old python "not-equal"
Gary Lin [Mon, 25 Jun 2018 10:31:27 +0000 (18:31 +0800)]
BaseTools: Remove the old python "not-equal"

Replace "<>" with "!=" to be compatible with python3.

Contributed-under: TianoCore Contribution Agreement 1.1
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Gary Lin <glin@suse.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2 years agoBaseTools: Refactor python print statements
Gary Lin [Mon, 25 Jun 2018 10:31:26 +0000 (18:31 +0800)]
BaseTools: Refactor python print statements

Refactor print statements to be compatible with python 3.
Based on "futurize -f libfuturize.fixes.fix_print_with_import"

Contributed-under: TianoCore Contribution Agreement 1.1
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Gary Lin <glin@suse.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2 years agoBaseTools: Refactor python except statements
Gary Lin [Mon, 25 Jun 2018 10:31:25 +0000 (18:31 +0800)]
BaseTools: Refactor python except statements

Convert "except ... ," to "except ... as" to be compatible with python3.
Based on "futurize -f lib2to3.fixes.fix_except"

Contributed-under: TianoCore Contribution Agreement 1.1
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Gary Lin <glin@suse.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2 years agoBaseTools: Fix a typo in ini.py
Gary Lin [Mon, 25 Jun 2018 10:31:24 +0000 (18:31 +0800)]
BaseTools: Fix a typo in ini.py

"if mis not None:" => "if m is not None:"

Contributed-under: TianoCore Contribution Agreement 1.1
Cc: Jaben Carsey <jaben.carsey@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Gary Lin <glin@suse.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
2 years agoMdeModulePkg UsbBusPei: Fix wrong buffer length used to read hub desc
Star Zeng [Mon, 25 Jun 2018 08:50:01 +0000 (16:50 +0800)]
MdeModulePkg UsbBusPei: Fix wrong buffer length used to read hub desc

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=973

Bug 973 just mentions UsbBusDxe, but UsbBusPei has similar issue.

HUB descriptor has variable length.
But the code uses stack (HubDescriptor in PeiDoHubConfig) with fixed
length sizeof(EFI_USB_HUB_DESCRIPTOR) to hold HUB descriptor data.
It uses hard code length value (12) for SuperSpeed path.
And it uses HubDesc->Length for none SuperSpeed path, then there will
be stack overflow when HubDesc->Length is greater than
sizeof(EFI_USB_HUB_DESCRIPTOR).

The patch updates the code to use a big enough buffer to hold the
descriptor data.

Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Bret Barkelew <bret.barkelew@microsoft.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Bret Barkelew <bret.barkelew@microsoft.com>
2 years agoMdeModulePkg UsbBusDxe: Fix wrong buffer length used to read hub desc
Star Zeng [Mon, 25 Jun 2018 08:44:33 +0000 (16:44 +0800)]
MdeModulePkg UsbBusDxe: Fix wrong buffer length used to read hub desc

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=973

HUB descriptor has variable length.
But the code uses stack (HubDesc in UsbHubInit) with fixed length
sizeof(EFI_USB_HUB_DESCRIPTOR) to hold HUB descriptor data.
It uses hard code length value (32 that is greater than
sizeof(EFI_USB_HUB_DESCRIPTOR)) for SuperSpeed path, then there will
be stack overflow when IOMMU is enabled because the Unmap operation
will copy the data from device buffer to host buffer.
And it uses HubDesc->Length for none SuperSpeed path, then there will
be stack overflow when HubDesc->Length is greater than
sizeof(EFI_USB_HUB_DESCRIPTOR).

The patch updates the code to use a big enough buffer to hold the
descriptor data.
The definition EFI_USB_SUPER_SPEED_HUB_DESCRIPTOR is wrong (HubDelay
field should be UINT16 type) and no code is using it, the patch
removes it.

Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Bret Barkelew <bret.barkelew@microsoft.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Bret Barkelew <bret.barkelew@microsoft.com>
2 years agoSecurityPkg: Tpm2DeviceLib: Enable CapCRBIdleBypass support
Zhang, Chao B [Fri, 23 Mar 2018 06:04:01 +0000 (14:04 +0800)]
SecurityPkg: Tpm2DeviceLib: Enable CapCRBIdleBypass support

Directly transition from CMD completion to CMD Ready state if device
supports IdleByPass

Cc: Long Qin <qin.long@intel.com>
Cc: Yao Jiewen <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Chao Zhang <chao.b.zhang@intel.com>
Reviewed-by: Long Qin <qin.long@intel.com>
2 years agoMdePkg: TpmPtp: Add CapCRBIdleBypass definition
Zhang, Chao B [Fri, 23 Mar 2018 06:08:14 +0000 (14:08 +0800)]
MdePkg: TpmPtp: Add CapCRBIdleBypass definition

Add CapCRBIdleBypass definition to interface ID register. It complies with
existing register

Cc: Long Qin <qin.long@intel.com>
Cc: Yao Jiewen <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Chao Zhang <chao.b.zhang@intel.com>
Reviewed-by: Long Qin <qin.long@intel.com>
2 years agoNt32Pkg/WinNtBusDriverDxe: Fix memory allocation size
Thomas Palmer [Mon, 25 Jun 2018 18:15:18 +0000 (02:15 +0800)]
Nt32Pkg/WinNtBusDriverDxe: Fix memory allocation size

A single byte was allocate for a CHAR16 NUL terminator when instead
two bytes should have been used.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Thomas Palmer <thomas.palmer@hpe.com>
Reviewed-by: Hao Wu <hao.a.wu@intel.com>
2 years agoUefiCpuPkg: Use new added Perf macros
Bi, Dandan [Fri, 22 Jun 2018 08:56:23 +0000 (16:56 +0800)]
UefiCpuPkg: Use new added Perf macros

Replace old Perf macros with the new added ones.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2 years agoSecurityPkg: Use new added Perf macros
Bi, Dandan [Fri, 22 Jun 2018 08:56:22 +0000 (16:56 +0800)]
SecurityPkg: Use new added Perf macros

Replace old Perf macros with the new added ones.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Chao Zhang <chao.b.zhang@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2 years agoMdeModulePkg: Use new added Perf macros
Bi, Dandan [Fri, 22 Jun 2018 08:56:21 +0000 (16:56 +0800)]
MdeModulePkg: Use new added Perf macros

Replace old Perf macros with the new added ones.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2 years agoShellPkg/dp: Update dp tool to parse new Perf record
Bi, Dandan [Fri, 22 Jun 2018 08:56:20 +0000 (16:56 +0800)]
ShellPkg/dp: Update dp tool to parse new Perf record

Since performance library instances have been updated
to create new FPDT records for new Perf macros.
So enhance dp tool to parse the new FPDT records.
Enhancement mainly includes:
1. parse the single records for PERF_EVENT macro
2. Parse the new added FPDT_DUAL_GUID_STRING_EVENT_RECORD

Cc: Liming Gao <liming.gao@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2 years agoMdeModulePkg: Update performance library instances
Bi, Dandan [Fri, 22 Jun 2018 08:56:19 +0000 (16:56 +0800)]
MdeModulePkg: Update performance library instances

Update the performance library instances in MdeModulePkg
to implement the APIs used for new added Perf macros.

V2:
Share the common logics of creating FPDT record for
new added Perf macros and existing Perf macros.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2 years agoMdeModulePkg/ExtendedFirmwarePerf: Remove PerfId definitions
Bi, Dandan [Fri, 22 Jun 2018 08:56:18 +0000 (16:56 +0800)]
MdeModulePkg/ExtendedFirmwarePerf: Remove PerfId definitions

Remove the definitions of performance identifier since they
have been added into PerformanceLib.h.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2 years agoMdePkg/PerformanceLib.h: Add new Perf macros
Bi, Dandan [Fri, 22 Jun 2018 08:56:17 +0000 (16:56 +0800)]
MdePkg/PerformanceLib.h: Add new Perf macros

1. Add new Perf macros for performance measurement
and related APIs and definitions in Performance
library class.

2. Update NULL performance library instance in MdePkg.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Michael Kinney <michael.d.kinney@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2 years agoMdeModulePkg: Update Performance instances to use new protocol
Bi, Dandan [Fri, 22 Jun 2018 08:56:16 +0000 (16:56 +0800)]
MdeModulePkg: Update Performance instances to use new protocol

Update Performance instances in MdeModulePkg to use new
PerformanceMeasurement protocol.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2 years agoMdeModulePkg: Add PERFORMANCE_MEASUREMENT_PROTOCOL
Bi, Dandan [Fri, 22 Jun 2018 08:56:15 +0000 (16:56 +0800)]
MdeModulePkg: Add PERFORMANCE_MEASUREMENT_PROTOCOL

Add PerformanceMeasurement protocol to log performance info.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2 years agoMdeModulePkg/CapsuleRuntimeDxe: Fix ECC issue
Dandan Bi [Mon, 25 Jun 2018 00:56:04 +0000 (08:56 +0800)]
MdeModulePkg/CapsuleRuntimeDxe: Fix ECC issue

Add guard macro for new added header file.

Cc: Star Zeng <star.zeng@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
2 years agoMdeModulePkg BootMaintenanceManagerUiLib: Move refresh boot option later
Liming Gao [Thu, 21 Jun 2018 12:06:17 +0000 (20:06 +0800)]
MdeModulePkg BootMaintenanceManagerUiLib: Move refresh boot option later

Constructor is too early that ConnectAll() may not do. Move refresh boot
option in form open.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Xu WeiX <weix.xu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
2 years agoMdeModulePkg BdsDxe: Correct VariableLockProtocol usage to match code logic
Liming Gao [Mon, 18 Jun 2018 14:57:44 +0000 (22:57 +0800)]
MdeModulePkg BdsDxe: Correct VariableLockProtocol usage to match code logic

BdsEntry marks the read-only variables if the Variable Lock protocol exists.
So, this protocol usage is updated from CONSUMES to SOMETIMES_CONSUMES.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Liming Gao <liming.gao@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
2 years agoBaseTools tools_def.template: Ignore link warning 4281 for VS2017
Liming Gao [Fri, 22 Jun 2018 02:33:12 +0000 (10:33 +0800)]
BaseTools tools_def.template: Ignore link warning 4281 for VS2017

VS2017 reports warning LNK4281: undesirable base address 0x0 for x64 image;
set base address above 4GB for best ASLR optimization.

edk2 build always sets baes address to zero as default. So, ignore this link
warning.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Pete Batard <pete@akeo.ie>
2 years agoSecurityPkg: Cache TPM interface type info
Zhang, Chao B [Tue, 8 May 2018 06:51:57 +0000 (14:51 +0800)]
SecurityPkg: Cache TPM interface type info

Cache TPM interface type info to avoid excessive interface ID register read

Cc: Long Qin <qin.long@intel.com>
Cc: Yao Jiewen <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Chao Zhang <chao.b.zhang@intel.com>
Reviewed-by: Long Qin <qin.long@intel.com>
2 years agoFatPkg/FatPei: Add the recognition of recovery capsule on NVME device
Hao Wu [Mon, 21 May 2018 05:12:09 +0000 (13:12 +0800)]
FatPkg/FatPei: Add the recognition of recovery capsule on NVME device

The driver now can recognize the BlockIo2 PPI for NVM Express devices.
And support identifying the recovery capsule on those devices.

Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
2 years agoMdeModulePkg: Add GUID for recovery capsule on NVM Express devices
Hao Wu [Mon, 21 May 2018 05:06:47 +0000 (13:06 +0800)]
MdeModulePkg: Add GUID for recovery capsule on NVM Express devices

Cc: Eric Dong <eric.dong@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
2 years agoMdeModulePkg/NvmExpressPei: Add the NVME device PEI BlockIo support
Hao Wu [Mon, 21 May 2018 05:28:24 +0000 (13:28 +0800)]
MdeModulePkg/NvmExpressPei: Add the NVME device PEI BlockIo support

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=256

This commit adds the PEI BlockIo support for NVM Express devices.

The driver will consume the EDKII_NVM_EXPRESS_HOST_CONTROLLER_PPI for NVM
Express host controllers within the system. And then produces the
BlockIo(2) PPIs for each controller.

The implementation of this driver is currently based on the NVM Express 1.1
Specification, which is available at:
http://nvmexpress.org/resources/specifications/

Cc: Star Zeng <star.zeng@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
2 years agoMdeModulePkg: Add definitions for EDKII PEI NVME host controller PPI
Hao Wu [Wed, 2 May 2018 06:12:12 +0000 (14:12 +0800)]
MdeModulePkg: Add definitions for EDKII PEI NVME host controller PPI

Introduces the below PPI:

struct EDKII_NVM_EXPRESS_HOST_CONTROLLER_PPI {
  EDKII_NVM_EXPRESS_HC_GET_MMIO_BAR       GetNvmeHcMmioBar;
  EDKII_NVM_EXPRESS_HC_GET_DEVICE_PATH    GetNvmeHcDevicePath;
};

The GetNvmeHcMmioBar service will provide the caller with the MMIO BAR
address of each NVMe HC within the system;

The GetNvmeHcDevicePath service will provide the caller with the device
path information of each NVMe HC.

Cc: Eric Dong <eric.dong@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
2 years agoIntelFsp2Pkg: SplitFspBin.py to support x64 drivers
Chasel, Chiu [Fri, 22 Jun 2018 10:22:47 +0000 (18:22 +0800)]
IntelFsp2Pkg: SplitFspBin.py to support x64 drivers

FSP binary potentially can include X64 drivers to
simplify implementation or support new features so
update SplitFspBin.py to support x64 image headers.

Cc: Jiewen Yao <Jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Chasel Chiu <chasel.chiu@intel.com>
Reviewed-by: Jiewen Yao <Jiewen.yao@intel.com>
2 years agoVlv2TbltDevicePkg: Set SMM Stack size to 16 KB
Michael D Kinney [Wed, 30 May 2018 23:52:11 +0000 (16:52 -0700)]
Vlv2TbltDevicePkg: Set SMM Stack size to 16 KB

Stack overflows were observed at the default SMM stack
size of 8 KB.  Increase stack size to 16 KB to prevent
SMM stack overflows.

Cc: David Wei <david.wei@intel.com>
Cc: Mang Guo <mang.guo@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
Reviewed-by: David Wei <david.wei@intel.com>
2 years agoArmPkg/ArmScmiDxe: Dynamically allocate buffer for protocol ids
Girish Pathak [Tue, 19 Jun 2018 13:53:53 +0000 (14:53 +0100)]
ArmPkg/ArmScmiDxe: Dynamically allocate buffer for protocol ids

Dynamically allocate the buffer to receive the SCMI protocol list.
This makes MAX_PROTOCOLS redundant, so it is removed.
It also fixes one minor code alignment issue and removes an unused
macro PROTOCOL_MASK.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Girish Pathak <girish.pathak@arm.com>
Tested-by: Sudeep Holla <sudeep.holla@arm.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
2 years agoArmPkg/ArmScmiDxe: Fix ASSERT error in SCMI DXE
Girish Pathak [Tue, 19 Jun 2018 13:53:52 +0000 (14:53 +0100)]
ArmPkg/ArmScmiDxe: Fix ASSERT error in SCMI DXE

This change fixes a bug in the SCMI DXE which is observed with the
upcoming release of the SCP firmware.

The PROTOCOL_ID_MASK (0xF) which is used to generate an index in
the ProtocolInitFxns is wrong because protocol ids can be
anywhere in 0x10 - 15 or 0x80 - FF range. This mask generates
the same index for two different protocols e.g. for protocol ids
0x10 and 0x90, which causes duplicate initialization of a protocol
resulting in a failure.

This change removes the use of PROTOCOL_ID_MASK and instead
uses a list of protocol ids and their initialization functions
to identify a supported protocol and initialize it.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Girish Pathak <girish.pathak@arm.com>
Tested-by: Sudeep Holla <sudeep.holla@arm.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
2 years agoBaseTools: introduce !error statement
Yunhua Feng [Sun, 17 Jun 2018 09:22:21 +0000 (17:22 +0800)]
BaseTools: introduce !error statement

The DSC and FDF file can use `!error` statement. The argument of this
statement is an error message, it causes build tool to stop at the
location where the statement is encountered and error message following
the `!error` statement is output as a message.

Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=701
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Yunhua Feng <yunhuax.feng@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2 years agoBaseTools: Enhance BaseTools supports FeaturePcd usage in VFR file
Yonghong Zhu [Tue, 19 Jun 2018 01:08:41 +0000 (09:08 +0800)]
BaseTools: Enhance BaseTools supports FeaturePcd usage in VFR file

Bugzilla 348 only fixed FixedAtBuild Pcd type, now this patch also add
support for FeaturePcd type.

Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=348
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2 years agoBaseTools: remove the unneeded code
Yonghong Zhu [Wed, 13 Jun 2018 01:12:28 +0000 (09:12 +0800)]
BaseTools: remove the unneeded code

Do a clean up to remove the unneeded code.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2 years agoArmPkg/ArmMmuLib ARM: fix Mva to use idx instead of table base
Chris Co [Fri, 13 Apr 2018 23:43:27 +0000 (23:43 +0000)]
ArmPkg/ArmMmuLib ARM: fix Mva to use idx instead of table base

Mva address calculation should use the left-shifted current
section index instead of the left-shifted table base address.

Using the table base address here has the side-effect of potentially
causing an access violation depending on the base address value.

Cc: Leif Lindholm <leif.lindholm@linaro.org>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Christopher Co <christopher.co@microsoft.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
2 years agoArmPkg/ArmMmuLib ARM: assume page tables are in writeback cacheable memory
Ard Biesheuvel [Thu, 21 Jun 2018 07:17:52 +0000 (09:17 +0200)]
ArmPkg/ArmMmuLib ARM: assume page tables are in writeback cacheable memory

Given that these days, our ARM port only supports ARMv7 and later, we
can assume that the page table walker's memory accesses are cache
coherent, and so there is no need to perform cache maintenance. It
does require the page tables themselves to reside in memory mapped as
writeback cacheable so ASSERT() that this is the case.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2 years agoArmPkg/ArmMmuLib ARM: remove cache maintenance of block mapping contents
Ard Biesheuvel [Wed, 20 Jun 2018 19:01:52 +0000 (21:01 +0200)]
ArmPkg/ArmMmuLib ARM: remove cache maintenance of block mapping contents

Peculiarly enough, the current page table manipulation code takes it
upon itself to write back and invalidate the memory contents covered
by page and section mappings when their memory attributes change. It
is not generally the case that data must be written back when such a
change occurs, even when switching from cacheable to non-cacheable
attributes, and in some cases, it is actually causing problems. (The
cache maintenance is also performed on the PCIe MMIO regions as they
get mapped by the PCI bus driver, and under virtualization, each
cache maintenance operation on an emulated MMIO region triggers a
round trip to the host and back)

So let's just drop this code.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2 years agoShellPkg/comp: return NOT_EQUAL when compared files are different
Ruiyu Ni [Thu, 14 Jun 2018 05:55:21 +0000 (13:55 +0800)]
ShellPkg/comp: return NOT_EQUAL when compared files are different

Today's implementation returns 0 even when compared files are
different.
The patch returns 27 (SHELL_NOT_QUAL) in such case to follow
the shell spec.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
2 years agoSignedCapsulePkg/SystemFirmwareUpdateDxe: Fix ECC issues
Dandan Bi [Tue, 19 Jun 2018 07:38:47 +0000 (15:38 +0800)]
SignedCapsulePkg/SystemFirmwareUpdateDxe: Fix ECC issues

Make function comments align with functions.

Cc: Star Zeng <star.zeng@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
2 years agoMdeModulePkg: Enable SATA Controller PCI mem space
Sami Mujawar [Tue, 19 Jun 2018 11:58:14 +0000 (19:58 +0800)]
MdeModulePkg: Enable SATA Controller PCI mem space

The SATA controller driver crashes while accessing the
PCI memory [AHCI Base Registers (ABAR)], as the PCI memory
space is not enabled.

Enable the PCI memory space access to prevent the SATA
Controller driver from crashing.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
2 years agoMdeModulePkg/NetworkPkg: Checking for NULL pointer before use.
Fu Siyuan [Thu, 14 Jun 2018 02:30:09 +0000 (10:30 +0800)]
MdeModulePkg/NetworkPkg: Checking for NULL pointer before use.

Contributed-under: TianoCore Contribution Agreement 1.1

Signed-off-by: Sivaraman Nainar <sivaramann@amiindia.co.in>
Reviewed-by: Fu Siyuan <siyuan.fu@intel.com>
2 years agoMdeModulePkg/Core: remove SMM check for Heap Guard feature detection
Jian J Wang [Wed, 13 Jun 2018 03:05:44 +0000 (11:05 +0800)]
MdeModulePkg/Core: remove SMM check for Heap Guard feature detection

CpuDxe driver is updated to be able to access DXE page table in SMM mode,
which means Heap Guard can get correct memory paging attributes in what
environment. It's not necessary to exclude SMM from detecting Heap Guard
feature support.

Cc: Star Zeng <star.zeng@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Jian J Wang <jian.j.wang@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
2 years agoUefiCpuPkg/CpuDxe: make register access more readable
Jian J Wang [Fri, 30 Mar 2018 14:25:56 +0000 (22:25 +0800)]
UefiCpuPkg/CpuDxe: make register access more readable

Update code to use more meaningful constant macro or predefined
register structure.

Cc: Eric Dong <eric.dong@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Jian J Wang <jian.j.wang@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
Regression-tested-by: Laszlo Ersek <lersek@redhat.com>
2 years agoUefiCpuPkg/CpuDxe: allow accessing (DXE) page table in SMM mode
Jian J Wang [Thu, 14 Jun 2018 01:51:34 +0000 (09:51 +0800)]
UefiCpuPkg/CpuDxe: allow accessing (DXE) page table in SMM mode

The MdePkg/Library/SmmMemoryAllocationLib, used only by DXE_SMM_DRIVER,
allows to free memory allocated in DXE (before EndOfDxe). This is done
by checking the memory range and calling gBS services to do real
operation if the memory to free is out of SMRAM. If some memory related
features, like Heap Guard, are enabled, gBS interface will turn to
EFI_CPU_ARCH_PROTOCOL.SetMemoryAttributes(), provided by
DXE driver UefiCpuPkg/CpuDxe, to change memory paging attributes. This
means we have part of DXE code running in SMM mode in certain
circumstances.

Because page table in SMM mode is different from DXE mode and CpuDxe
always uses current registers (CR0, CR3, etc.) to get memory paging
attributes, it cannot get the correct attributes of DXE memory in SMM
mode from SMM page table. This will cause incorrect memory manipulations,
like fail the releasing of Guard pages if Heap Guard is enabled.

The solution in this patch is to store the DXE page table information
(e.g. value of CR0, CR3 registers, etc.) in a global variable of CpuDxe
driver. If CpuDxe detects it's in SMM mode, it will use this global
variable to access page table instead of current processor registers.
This can avoid retrieving wrong DXE memory paging attributes and changing
SMM page table attributes unexpectedly.

Cc: Eric Dong <eric.dong@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Jian J Wang <jian.j.wang@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
Regression-tested-by: Laszlo Ersek <lersek@redhat.com>
2 years agoUefiCpuPkg/LocalApicLib: Exclude second SendIpi sequence on AMD processors.
Eric Dong [Tue, 19 Jun 2018 05:15:39 +0000 (13:15 +0800)]
UefiCpuPkg/LocalApicLib: Exclude second SendIpi sequence on AMD processors.

On AMD processors the second SendIpi in the SendInitSipiSipi and
SendInitSipiSipiAllExcludingSelf routines is not required, and may cause
undesired side-effects during MP initialization.

This patch leverages the StandardSignatureIsAuthenticAMD check to exclude
the second SendIpi and its associated MicroSecondDelay (200).

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Leo Duran <leo.duran@amd.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Jeff Fan <jeff.fan@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
2 years agoMdePkg/IndustryStandard/Ipmi: Use union for bitmap fields
Hao Wu [Sat, 28 Apr 2018 05:48:06 +0000 (13:48 +0800)]
MdePkg/IndustryStandard/Ipmi: Use union for bitmap fields

This commit enhances the bitmap fields defined in the IPMI header files,
union types will be used to provide the users with both the individual
bitmap access and the whole byte/word access.

Cc: Michael Kinney <michael.d.kinney@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2 years agoMdePkg/IndustryStandard/Ipmi: Update IPMI header files
Hao Wu [Tue, 17 Apr 2018 07:37:09 +0000 (15:37 +0800)]
MdePkg/IndustryStandard/Ipmi: Update IPMI header files

REF:https://bugzilla.tianocore.org/show_bug.cgi?id=814

This commit updates the IPMI related header files.

Cc: Younas Khan <pmdyounaskhan786@gmail.com>
Cc: Michael Kinney <michael.d.kinney@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2 years agoMdeModulePkg/AtaAtapiPassThru: Fix VS2010/VS2012 build failure
Ruiyu Ni [Mon, 11 Jun 2018 02:17:01 +0000 (10:17 +0800)]
MdeModulePkg/AtaAtapiPassThru: Fix VS2010/VS2012 build failure

The patch doesn't have functionality impact. It is just to make
VS2010/VS2012 happy.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed-by: Dandan Bi <dandan.bi@intel.com>
2 years agoSourceLevelDebugPkg/DebugCommunicationLibUsb: Add endpoint config.
Marvin H?user [Sat, 16 Jun 2018 16:16:24 +0000 (00:16 +0800)]
SourceLevelDebugPkg/DebugCommunicationLibUsb: Add endpoint config.

Currently, DebugCommunicationLibUsb uses the hardcoded endpoints 0x82
and 0x01 to communicate with the EHCI Debug Device. These, however,
are not standardized and may vary across different hardware.
To solve this problem, the endpoints are retrieved from the
USB Device Descriptor directly.

V2:
  - Store endpoint data in the USB Debug Port handle structure.

V3:
  - Remove the static endpoint PCDs as requested.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Marvin Haeuser <Marvin.Haeuser@outlook.com>
Reviewed-by: Hao Wu <hao.a.wu@intel.com>
2 years agoBaseTools/WorkspaceCommon: Import used BuildToolError messages.
Marvin Haeuser [Sat, 16 Jun 2018 16:15:35 +0000 (00:15 +0800)]
BaseTools/WorkspaceCommon: Import used BuildToolError messages.

Commit c14b58614ffb992dfc668966a19becb86614aafc added a few build
error message display calls to WorkspaceCommon.py without importing
the message resources explicitely. This commit adds imports the
missing directives.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Marvin Haeuser <Marvin.Haeuser@outlook.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2 years agoEmbeddedPkg/GdbSerialLib: avoid left shift of negative quantity
Ard Biesheuvel [Mon, 18 Jun 2018 20:46:36 +0000 (22:46 +0200)]
EmbeddedPkg/GdbSerialLib: avoid left shift of negative quantity

Clang complains about left shifting a negative value being undefined.

  EmbeddedPkg/Library/GdbSerialLib/GdbSerialLib.c:151:30:
  error: shifting a negative signed value is undefined [-Werror,-Wshift-negative-value]
  OutputData = (UINT8)((~DLAB<<7)|((BreakSet<<6)|((Parity<<3)|((StopBits<<2)| Data))));

Redefine all bit pattern constants as unsigned to work around this.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2 years agoArmPkg/ArmMtlLib: fix prototype inconsistency in MtlWaitUntilChannelFree
Ard Biesheuvel [Mon, 18 Jun 2018 18:13:47 +0000 (20:13 +0200)]
ArmPkg/ArmMtlLib: fix prototype inconsistency in MtlWaitUntilChannelFree

Align the prototype of ArmMtlLib's MtlWaitUntilChannelFree () with the
one in the ArmMtlNullLib implementation (rather than the other way around,
since edk2-platforms has a conflicting implementation as well)

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2 years agoBaseTools/tools_def CLANG35: add NOOPT build target
Ard Biesheuvel [Mon, 18 Jun 2018 17:31:18 +0000 (19:31 +0200)]
BaseTools/tools_def CLANG35: add NOOPT build target

Create the missing NOOPT target for CLANG35 (which is ARM and AARCH64
only), and align it with the other toolchains: NOOPT has optimizations
disabled entirely (for source level debugging), and DEBUG is changed
from -O0 to -O1, as is the case for CLANG38 as well.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2 years agoEmbedded/EmbeddedPkg.dsc: enable NOOPT build target
Ard Biesheuvel [Mon, 18 Jun 2018 16:50:12 +0000 (18:50 +0200)]
Embedded/EmbeddedPkg.dsc: enable NOOPT build target

Enable to NOOPT build target so we can build this package with
optimizations disabled.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2 years agoArmPkg/ArmPkg.dsc: enable NOOPT build target
Ard Biesheuvel [Mon, 18 Jun 2018 16:49:30 +0000 (18:49 +0200)]
ArmPkg/ArmPkg.dsc: enable NOOPT build target

Enable to NOOPT build target so we can build this package with
optimizations disabled.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2 years agoBaseTools/tools_def IA32: drop -no-pie linker option for GCC49
Ard Biesheuvel [Mon, 18 Jun 2018 08:23:49 +0000 (10:23 +0200)]
BaseTools/tools_def IA32: drop -no-pie linker option for GCC49

As reported by Liming, GCC 4.9.2 does not support the -no-pie
linker option that we added to the GCC49 and GCC5 toolchain
profiles in commit c25d3905523a ("BaseTools/tools_def IA32:
disable PIE code generation explicitly") to work around issues
with recent distro toolchains that enable PIE code generation
by default.

So rollback the changes for GCC49 but preserve them for GCC5

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Acked-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2 years agoArmPkg/ArmSmcPsciResetSystemLib: implement fallback for warm reboot
Ard Biesheuvel [Wed, 6 Jun 2018 12:32:42 +0000 (14:32 +0200)]
ArmPkg/ArmSmcPsciResetSystemLib: implement fallback for warm reboot

Implement ResetSystemLib's EnterS3WithImmediateWake() routine using
a jump back to the PEI entry point with interrupts and MMU+caches
disabled. This is only possible at boot time, when we are sure that
the current CPU is the only one up and running. Also, it depends on
the platform whether the PEI code is preserved in memory (it may be
copied to DRAM rather than execute in place), so also add a feature
PCD to selectively enable this feature.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2 years agoArmPkg/PlatformBootManagerLib: call ProcessCapsules() only once
Ard Biesheuvel [Wed, 6 Jun 2018 14:52:59 +0000 (16:52 +0200)]
ArmPkg/PlatformBootManagerLib: call ProcessCapsules() only once

ARM platforms have no restriction on when a system firmware update
capsule can be applied, and so it is not necessary to call
ProcessCapsules() twice. So let's drop the first invocation that
occurs before EndOfDxe, and rewrite the second call so that all
capsule updates will be applied when the console is up and able to
provide progress feedback.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2 years agoMdeModulePkg/DxeCapsuleLibFmp: pass progress callback only if it works
Ard Biesheuvel [Thu, 7 Jun 2018 06:41:33 +0000 (08:41 +0200)]
MdeModulePkg/DxeCapsuleLibFmp: pass progress callback only if it works

If the first call to UpdateImageProgress() fails, there is no point
in passing a pointer to it to Fmp->SetImage(), since it is highly
unlikely to succeed on any subsequent calls.

This permits the FMP implementation to fall back to an alternate means
of providing feedback to the user, e.g., via the console.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Star Zeng <star.zeng@intel.com>
2 years agoMdeModulePkg/CapsuleRuntimeDxe: clean the capsule payload to DRAM
Ard Biesheuvel [Tue, 12 Jun 2018 10:37:08 +0000 (12:37 +0200)]
MdeModulePkg/CapsuleRuntimeDxe: clean the capsule payload to DRAM

When capsule updates are staged for processing after a warm reboot,
they are copied into memory with the MMU and caches enabled. When
the capsule PEI gets around to coalescing the capsule, the MMU and
caches may still be disabled, and so on architectures where uncached
accesses are incoherent with the caches (such as ARM and AARCH64),
we need to ensure that the data passed into UpdateCapsule() is
written back to main memory before performing the warm reboot.

Unfortunately, on ARM, the only type of cache maintenance instructions
that are suitable for this purpose operate on virtual addresses only,
and given that the UpdateCapsule() prototype includes the physical
address of a linked list of scatter/gather data structures that are
mapped at an address that is unknown to the firmware (and may not even
be mapped at all when UpdateCapsule() is invoked), we can only perform
this cache maintenance at boot time. Fortunately, both Windows and Linux
only invoke UpdateCapsule() before calling ExitBootServices(), so this
is not a problem in practice.

In the future, we may propose adding a secure firmware service that
permits performing the cache maintenance at OS runtime, in which case
this code may be enhanced to call that service if available. For now,
we just fail any UpdateCapsule() calls performed at OS runtime on ARM.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
2 years agoSecurityPkg/SecureBootConfigDxe: Fix invalid NV data issue.
Nickle Wang [Tue, 29 May 2018 12:08:25 +0000 (20:08 +0800)]
SecurityPkg/SecureBootConfigDxe: Fix invalid NV data issue.

Check the return value of HiiGetBrowserData() before calling HiiSetBrowserData().
HiiGetBrowserData() failed to retrieve NV data during action EFI_BROWSER_ACTION_RETRIEVE.
If NV data is invalid, stop sending it to form browser.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Nickle Wang <nickle.wang@hpe.com>
Signed-off-by: cinnamon shia <cinnamon.shia@hpe.com>
Reviewed-by: Chao Zhang <chao.b.zhang@intel.com>
2 years agoArmPlatformPkg: Include PL011UartClock Lib
Udit Kumar [Tue, 12 Jun 2018 20:14:09 +0000 (01:44 +0530)]
ArmPlatformPkg: Include PL011UartClock Lib

This patch gets PL011 baud rate clock from
pl011 uart clock lib instead of Pcd.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Udit Kumar <udit.kumar@nxp.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
2 years agoBaseTools/BinToPcd: Follow PEP-8 indent of 4 spaces
Kinney, Michael D [Sat, 9 Jun 2018 05:35:02 +0000 (22:35 -0700)]
BaseTools/BinToPcd: Follow PEP-8 indent of 4 spaces

https://www.python.org/dev/peps/pep-0008/

Cc: Yanyan Sun <yanyan.sun@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2 years agoBaseTools/BinToPcd: Update for Python 3 compatibility
Kinney, Michael D [Sat, 9 Jun 2018 05:13:05 +0000 (22:13 -0700)]
BaseTools/BinToPcd: Update for Python 3 compatibility

Update to be compatible with both Python 2.x and Python 3.x.
Also return error code 1 when an error is detected to support
use of this tool in scripts.

Cc: Yanyan Sun <yanyan.sun@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2 years agoBaseTools/BinToPcd: --offset must be 8-byte aligned
Kinney, Michael D [Sat, 9 Jun 2018 04:15:26 +0000 (21:15 -0700)]
BaseTools/BinToPcd: --offset must be 8-byte aligned

https://bugzilla.tianocore.org/show_bug.cgi?id=974
https://bugzilla.tianocore.org/show_bug.cgi?id=965

Update help to state that --offset must be 8-byte aligned.
Verify that --offset is 8-byte aligned and print an error
message if it is not 8-byte aligned.

Cc: Yanyan Sun <yanyan.sun@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2 years agoBaseTools/BinToPcd: Clarify error message for --type HII
Kinney, Michael D [Sat, 9 Jun 2018 03:49:43 +0000 (20:49 -0700)]
BaseTools/BinToPcd: Clarify error message for --type HII

https://bugzilla.tianocore.org/show_bug.cgi?id=963

Update error message for --type HII.  If either --variable-guid
or --variable-name is missing, then print an error message that
states that both --variable-guid and --variable-name are required.

Cc: Yanyan Sun <yanyan.sun@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2 years agoBaseTools/BinToPcd: Fix typo in error messages
Kinney, Michael D [Sat, 9 Jun 2018 03:43:44 +0000 (20:43 -0700)]
BaseTools/BinToPcd: Fix typo in error messages

https://bugzilla.tianocore.org/show_bug.cgi?id=962

Change "PcdToBin" to "BinToPcd"

Cc: Yanyan Sun <yanyan.sun@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>