edk2.git
14 hours agoShellPkg: acpiview: DBG2: Remove redundant forward declarations master
Krzysztof Koch [Fri, 19 Jul 2019 01:05:02 +0000 (18:05 -0700)] 
ShellPkg: acpiview: DBG2: Remove redundant forward declarations

Remove redundant forward function declarations by repositioning
blocks of code. This way the code structure is consistent across
ACPI table parsers and the code becomes more concise.

Signed-off-by: Krzysztof Koch <krzysztof.koch@arm.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com>
14 hours agoShellPkg: acpiview: GTDT: Remove redundant forward declarations
Krzysztof Koch [Fri, 19 Jul 2019 01:05:01 +0000 (18:05 -0700)] 
ShellPkg: acpiview: GTDT: Remove redundant forward declarations

Remove redundant forward function declarations by repositioning
blocks of code. This way the code structure is consistent across
ACPI table parsers and the code becomes more concise.

Replace multple use of literal values for GT Block Timer Frame
count/number validation with a macro definition.

Signed-off-by: Krzysztof Koch <krzysztof.koch@arm.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com>
14 hours agoShellPkg: acpiview: IORT: Remove redundant forward declarations
Krzysztof Koch [Fri, 19 Jul 2019 01:05:00 +0000 (18:05 -0700)] 
ShellPkg: acpiview: IORT: Remove redundant forward declarations

Remove redundant forward function declarations by repositioning
blocks of code. This way the code structure is consistent across
ACPI table parsers and the code becomes more concise.

Signed-off-by: Krzysztof Koch <krzysztof.koch@arm.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com>
14 hours agoShellPkg: acpiview: MADT: Remove redundant forward declarations
Krzysztof Koch [Fri, 19 Jul 2019 01:04:59 +0000 (18:04 -0700)] 
ShellPkg: acpiview: MADT: Remove redundant forward declarations

Remove redundant forward function declarations by repositioning
blocks of code. This way the code structure is consistent across
ACPI table parsers and the code becomes more concise.

Signed-off-by: Krzysztof Koch <krzysztof.koch@arm.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com>
14 hours agoShellPkg: acpiview: SRAT: Remove redundant forward declarations
Krzysztof Koch [Fri, 19 Jul 2019 01:04:58 +0000 (18:04 -0700)] 
ShellPkg: acpiview: SRAT: Remove redundant forward declarations

Remove redundant forward function declarations by repositioning
blocks of code. This way the code structure is consistent across
ACPI table parsers and the code becomes more concise.

Signed-off-by: Krzysztof Koch <krzysztof.koch@arm.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com>
14 hours agoShellPkg: acpiview: SPCR: Remove redundant forward declaration
Krzysztof Koch [Fri, 19 Jul 2019 01:04:57 +0000 (18:04 -0700)] 
ShellPkg: acpiview: SPCR: Remove redundant forward declaration

Reposition blocks of code to remove redundant forward function
declarations in order to reduce the code size.

Signed-off-by: Krzysztof Koch <krzysztof.koch@arm.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com>
14 hours agoShellPkg: acpiview: FADT: Remove redundant forward declarations
Krzysztof Koch [Fri, 19 Jul 2019 01:04:56 +0000 (18:04 -0700)] 
ShellPkg: acpiview: FADT: Remove redundant forward declarations

Remove redundant forward function declarations by repositioning
blocks of code. This way the code structure is consistent across
ACPI table parsers and the code becomes more concise.

Signed-off-by: Krzysztof Koch <krzysztof.koch@arm.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com>
14 hours agoShellPkg: acpiview: RSDP: Remove redundant forward declarations
Krzysztof Koch [Fri, 19 Jul 2019 01:04:55 +0000 (18:04 -0700)] 
ShellPkg: acpiview: RSDP: Remove redundant forward declarations

Remove redundant forward function declarations by repositioning
blocks of code. This way the code structure is consistent across
ACPI table parsers and the code becomes more concise.

Signed-off-by: Krzysztof Koch <krzysztof.koch@arm.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com>
14 hours agoShellPkg/Type.c: Add value check before (LoopVar - 1)
Zhichao Gao [Mon, 15 Jul 2019 06:11:49 +0000 (14:11 +0800)] 
ShellPkg/Type.c: Add value check before (LoopVar - 1)

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

If the file begin with single line Feed ('\n'), then
"AsciiChar == '\n' && ((CHAR8*)Buffer)[LoopVar-1] != '\r'"
would cause a underflow. Add this condition
"(AsciiChar == '\n' && LoopVar == 0)" before it to make sure
(LoopVar - 1) would never encounter a underflow.

Same change in Unicode section.

Cc: Jaben Carsey <jaben.carsey@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Andrew Fish <afish@apple.com>
Signed-off-by: Zhichao Gao <zhichao.gao@intel.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Andrew Fish <afish@apple.com>
17 hours agoOvmfPkg: link SM3 support into Tcg2Pei and Tcg2Dxe
Imran Desai [Thu, 18 Jul 2019 22:53:26 +0000 (15:53 -0700)] 
OvmfPkg: link SM3 support into Tcg2Pei and Tcg2Dxe

BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1781
GITHUB: https://github.com/idesai/edk2/tree/enable_sm3_measured_boot_v6

EDK2 Support for SM3 digest algorithm is needed to enable TPM with SM3 PCR
banks. This digest algorithm is part of the China Crypto algorithm suite.
This integration has dependency on the openssl_1_1_1b integration into
edk2.

This patch links SM3 support into Tcg2Pei and Tcg2Dxe.

Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
Cc: Stefan Berger <stefanb@linux.ibm.com>
Signed-off-by: Imran Desai <imran.desai@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20190718225326.40839-5-imran.desai@intel.com>
Acked-by: Jiewen Yao <jiewen.yao@intel.com>
17 hours agoSecurityPkg: set SM3 bit in TPM 2.0 hash mask by default
Imran Desai [Thu, 18 Jul 2019 22:53:25 +0000 (15:53 -0700)] 
SecurityPkg: set SM3 bit in TPM 2.0 hash mask by default

BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1781
GITHUB: https://github.com/idesai/edk2/tree/enable_sm3_measured_boot_v6

EDK2 Support for SM3 digest algorithm is needed to enable TPM with SM3 PCR
banks. This digest algorithm is part of the China Crypto algorithm suite.
This integration has dependency on the openssl_1_1_1b integration into
edk2.

This patch sets SM3 bit in TPM2.0 hash mask by default.

Cc: Chao Zhang <chao.b.zhang@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Jian Wang <jian.j.wang@intel.com>
Signed-off-by: Imran Desai <imran.desai@intel.com>
Reviewed-by: Jian J Wang <jian.j.wang@intel.com>
Message-Id: <20190718225326.40839-4-imran.desai@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
17 hours agoSecurityPkg/HashLibBaseCryptoRouter: recognize the SM3 digest algorithm
Imran Desai [Thu, 18 Jul 2019 22:53:24 +0000 (15:53 -0700)] 
SecurityPkg/HashLibBaseCryptoRouter: recognize the SM3 digest algorithm

BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1781
GITHUB: https://github.com/idesai/edk2/tree/enable_sm3_measured_boot_v6

EDK2 Support for SM3 digest algorithm is needed to enable TPM with SM3 PCR
banks. This digest algorithm is part of the China Crypto algorithm suite.
This integration has dependency on the openssl_1_1_1b integration into
edk2.

This patch adds SM3 as an available digest algorithm to crypto router.

Cc: Chao Zhang <chao.b.zhang@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Jian Wang <jian.j.wang@intel.com>
Signed-off-by: Imran Desai <imran.desai@intel.com>
Reviewed-by: Jian J Wang <jian.j.wang@intel.com>
Message-Id: <20190718225326.40839-3-imran.desai@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
17 hours agoSecurityPkg: introduce the SM3 digest algorithm
Imran Desai [Thu, 18 Jul 2019 22:53:23 +0000 (15:53 -0700)] 
SecurityPkg: introduce the SM3 digest algorithm

BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1781
GITHUB: https://github.com/idesai/edk2/tree/enable_sm3_measured_boot_v6

EDK2 Support for SM3 digest algorithm is needed to enable TPM with SM3 PCR
banks. This digest algorithm is part of the China Crypto algorithm suite.
This integration has dependency on the openssl_1_1_1b integration into
edk2.

This patch add SM3 algorithm in the hashinstance library.

Delta in v7:
1. Dropped 95a040cff from v6 to address https://edk2.groups.io/g/devel/topic/
32454898?p=,,,20,0,0,0::Created,,sm3,20,2,0,32454898,ct=1&ct=1
2. Relocated SM3 GUID definition from MdePkg to SecurityPkg in 9728b54f4

Cc: Chao Zhang <chao.b.zhang@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Jian Wang <jian.j.wang@intel.com>
Signed-off-by: Imran Desai <imran.desai@intel.com>
Message-Id: <20190718225326.40839-2-imran.desai@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
Reviewed-by: Jian J Wang <jian.j.wang@intel.com>
20 hours agoMaintainers.txt: Fine-grained review ownership for MdeModulePkg
Hao A Wu [Wed, 17 Jul 2019 01:23:10 +0000 (09:23 +0800)] 
Maintainers.txt: Fine-grained review ownership for MdeModulePkg

This commit add the reviewers information for modules within MdeModulePkg.

For now the modules list includes:
ACPI
ACPI S3
BDS
Console and Graphics
Core services (PEI, DXE and Runtime)
Device and Peripheral
Firmware Update
HII and UI
Management Mode (MM, SMM)
Reset
SMBIOS
UEFI Variable

Please note that, for MdeModulePkg components not included in the above
list, the reviewers will fall back to the package maintainers.

Cc: Andrew Fish <afish@apple.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Leif Lindholm <leif.lindholm@linaro.org>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Dandan Bi <dandan.bi@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Zhichao Gao <zhichao.gao@intel.com>
Signed-off-by: Hao A Wu <hao.a.wu@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Dandan Bi <dandan.bi@intel.com>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
33 hours agoMaintainers.txt: split out section "OvmfPkg: CSM modules"
Laszlo Ersek [Mon, 15 Jul 2019 16:26:21 +0000 (18:26 +0200)] 
Maintainers.txt: split out section "OvmfPkg: CSM modules"

We ask contributors to copy David on patches that affect "CSM modules"
under OvmfPkg. With the "GetMaintainer.py" script being introduced later,
express this expectation in "Maintainers.txt" in machine-readable format.

Cc: Andrew Fish <afish@apple.com>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: David Woodhouse <dwmw2@infradead.org>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Leif Lindholm <leif.lindholm@linaro.org>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Acked-by: David Woodhouse <dwmw2@infradead.org>
Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
33 hours agoMaintainers.txt: split out section "OvmfPkg: TCG- and TPM2-related modules"
Laszlo Ersek [Mon, 15 Jul 2019 16:11:25 +0000 (18:11 +0200)] 
Maintainers.txt: split out section "OvmfPkg: TCG- and TPM2-related modules"

We ask contributors to copy Marc-André and Stefan on patches that affect
"TPM2 modules" under OvmfPkg. With the "GetMaintainer.py" script being
introduced later, express this expectation in "Maintainers.txt" in
machine-readable format.

Cc: Andrew Fish <afish@apple.com>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Leif Lindholm <leif.lindholm@linaro.org>
Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Philippe Mathieu-Daudé <philmd@redhat.com>
Cc: Stefan Berger <stefanb@linux.ibm.com>
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Stefan Berger <stefanb@linux.ibm.com>
Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
37 hours agoMaintainers.txt: split out section "OvmfPkg: Xen-related modules"
Laszlo Ersek [Mon, 15 Jul 2019 15:39:04 +0000 (17:39 +0200)] 
Maintainers.txt: split out section "OvmfPkg: Xen-related modules"

We ask contributors to copy Anthony and Julien on patches that affect "Xen
modules" under OvmfPkg. With the "GetMaintainer.py" script being
introduced later, express this expectation in "Maintainers.txt" in
machine-readable format.

Cc: Andrew Fish <afish@apple.com>
Cc: Anthony Perard <anthony.perard@citrix.com>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Julien Grall <julien.grall@arm.com>
Cc: Leif Lindholm <leif.lindholm@linaro.org>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Acked-by: Julien Grall <julien.grall@arm.com>
Acked-by: Anthony PERARD <anthony.perard@citrix.com>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
37 hours agoMaintainers.txt: split out section "ArmVirtPkg: modules used on Xen"
Laszlo Ersek [Mon, 15 Jul 2019 15:12:14 +0000 (17:12 +0200)] 
Maintainers.txt: split out section "ArmVirtPkg: modules used on Xen"

We ask contributors to copy Julien on patches that affect "Xen modules"
under ArmVirtPkg. With the "GetMaintainer.py" script being introduced
later, express this expectation in "Maintainers.txt" in machine-readable
format.

Cc: Andrew Fish <afish@apple.com>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Julien Grall <julien.grall@arm.com>
Cc: Leif Lindholm <leif.lindholm@linaro.org>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Acked-by: Julien Grall <julien.grall@arm.com>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
37 hours agoMaintainers.txt: add wildcard path association for Arm/AArch64
Leif Lindholm [Fri, 14 Jun 2019 19:29:03 +0000 (20:29 +0100)] 
Maintainers.txt: add wildcard path association for Arm/AArch64

Add Ard and Leif as responsible for any path matching
F: */Arm/
F: */AArch64/

Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daude <philmd@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
37 hours agoMaintainers.txt: update for filesystem area descriptions
Leif Lindholm [Fri, 14 Jun 2019 19:27:39 +0000 (20:27 +0100)] 
Maintainers.txt: update for filesystem area descriptions

Add comment describing new F: and X: tags for associating maintainership
sections with specific filesystem paths, including wildcards.

Add global section associating *all* code with devel@edk2.groups.io,
with a default '*' F: tag directing all modifications that do not hit a
rule to the stewards.

Also tag all files in top directory as maintained by the stewards.

Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daude <philmd@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
2 days agoUefiCpuPkg/RegisterCpuFeaturesLib: avoid use dynamic PCD.
Dong, Eric [Mon, 15 Jul 2019 07:00:56 +0000 (15:00 +0800)] 
UefiCpuPkg/RegisterCpuFeaturesLib: avoid use dynamic PCD.

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

Function in this library may be used by APs. Assert will be trig if AP
uses dynamic pcd.
This patch enhance the current code, remove the unnecessary usage of
dynamic PCD. This change try to avoid report this issue again later.

Cc: Ray Ni <ray.ni@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Chandana Kumar <chandana.c.kumar@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
2 days agoUefiCpuPkg/RegisterCpuFeaturesLib: Avoid AP calls PeiServices table.
Eric Dong [Thu, 11 Jul 2019 11:56:25 +0000 (19:56 +0800)] 
UefiCpuPkg/RegisterCpuFeaturesLib: Avoid AP calls PeiServices table.

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

AP calls CollectProcessorData() to collect processor info.
CollectProcessorData function finally calls PcdGetSize function to
get DynamicPCD PcdCpuFeaturesSetting value. PcdGetSize will use
PeiServices table which caused below assert info:
Processor Info: Package: 1, MaxCore : 4, MaxThread: 1
Package: 0, Valid Core : 4
ASSERT [CpuFeaturesPei] c:\projects\jsl\jsl_v1193\Edk2\MdePkg\Library
\PeiServicesTablePointerLibIdt\PeiServicesTablePointer.c(48):
PeiServices != ((void *) 0)

This change uses saved global pcd size instead of calls PcdGetSize to
fix this issue.

Cc: Ray Ni <ray.ni@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Chandana Kumar <chandana.c.kumar@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
2 days agoUefiCpuPkg DxeRegisterCpuFeaturesLib: Fix VS2012 build failure
Star Zeng [Wed, 17 Jul 2019 03:19:48 +0000 (11:19 +0800)] 
UefiCpuPkg DxeRegisterCpuFeaturesLib: Fix VS2012 build failure

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

The new VS2012 build failure is caused by 7a0df26.

xxx\registercpufeatureslib\dxeregistercpufeatureslib.c(258) :
 warning C4701: potentially uninitialized local variable 'MpEvent' used

It is a false positive alarm.
MpEvent is assigned at line 238 and will be used at line 258, both
lines are controlled by "if (CpuFeaturesData->NumberOfCpus > 1)".

This patch initializes MpEvent to suppress incorrect compiler/analyzer
warnings.

Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Dandan Bi <dandan.bi@intel.com>
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
2 days agoMdePkg/BaseLib: Base64Decode(): don't declare variables in nested blocks
Laszlo Ersek [Tue, 16 Jul 2019 22:18:51 +0000 (00:18 +0200)] 
MdePkg/BaseLib: Base64Decode(): don't declare variables in nested blocks

The EDK II C Coding Standards Specification (v2.20) strongly discourages
variable declarations in nested block scope:

5       Source Files
5.4     Code File Structure
5.4.1   Scoping Rules
5.4.1.1 Scope

> Block (local) Scope
>
> [...]
>
> Data declarations may follow the opening brace of a compound statement,
> regardless of nesting depth, and before any code generating statements
> have been entered. Other than at the outermost block of a function body,
> this type of declaration is strongly discouraged.

Hoist such variable declarations in Base64Decode() to the outermost
function scope.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Philippe Mathieu-Daudé <philmd@redhat.com>
Cc: Zhichao Gao <zhichao.gao@intel.com>
Fixes: 35e242b698cdc6205e99a6d6a188bf27fecf9fb4
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1980
Reported-by: Zhichao Gao <zhichao.gao@intel.com>
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Rebecca Cran <rebecca@bsdio.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daude <philmd@redhat.com>
3 days agoMdePkg/BaseLib: rewrite Base64Decode()
Laszlo Ersek [Mon, 1 Jul 2019 22:35:18 +0000 (00:35 +0200)] 
MdePkg/BaseLib: rewrite Base64Decode()

Rewrite Base64Decode() from scratch, due to reasons listed in the second
reference below.

Implement Base64Decode() according to the specification added in the
previous patch. The decoder scans the input buffer once, it has no inner
loop(s), and it spills each output byte as soon as the output byte is
complete.

The intent is to only strengthen the checks (sanity and input) relative to
the previous implementation, hence the MAX_ADDRESS checks are reinstated.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Marvin Häuser <mhaeuser@outlook.de>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Philippe Mathieu-Daudé <philmd@redhat.com>
Cc: Zhichao Gao <zhichao.gao@intel.com>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1891
Ref: http://mid.mail-archive.com/c495bd0b-ea4d-7206-8a4f-a7149760d19a@redhat.com
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Tested-by: Zhichao Gao <zhichao.gao@intel.com>
Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com>
[lersek@redhat.com: add last para to commit msg per talks w/ Marvin & Phil]

3 days agoMdePkg/BaseLib: re-specify Base64Decode(), and add temporary stub impl
Laszlo Ersek [Mon, 1 Jul 2019 17:46:01 +0000 (19:46 +0200)] 
MdePkg/BaseLib: re-specify Base64Decode(), and add temporary stub impl

Rewrite Base64Decode() from scratch, due to reasons listed in the second
reference below.

As first step, redo the interface contract, and replace the current
implementation with a stub that asserts FALSE, then fails.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Marvin Häuser <mhaeuser@outlook.de>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Philippe Mathieu-Daudé <philmd@redhat.com>
Cc: Zhichao Gao <zhichao.gao@intel.com>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1891
Ref: http://mid.mail-archive.com/c495bd0b-ea4d-7206-8a4f-a7149760d19a@redhat.com
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
3 days agoUefiCpuPkg CpuCommonFeaturesLib: Enhance Ppin code
Star Zeng [Fri, 5 Jul 2019 05:14:33 +0000 (13:14 +0800)] 
UefiCpuPkg CpuCommonFeaturesLib: Enhance Ppin code

BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1961
Enhance Ppin code to enable and unlock for TRUE State,
and disable and lock for FALSE State.
Note: enable and lock could not be set both.
According to SDM, once Enable_PPIN is set, attempt to write
1 to LockOut will cause #GP, and writing 1 to LockOut is
permitted only if Enable_PPIN is clear.

Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Chandana Kumar <chandana.c.kumar@intel.com>
Cc: Kevin Li <kevin.y.li@intel.com>
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
4 days agoUefiCpuPkg/PiSmmCpuDxeSmm: Enable MM MP Protocol
Eric Dong [Wed, 10 Jul 2019 07:49:11 +0000 (15:49 +0800)] 
UefiCpuPkg/PiSmmCpuDxeSmm: Enable MM MP Protocol

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

Add MM Mp Protocol in PiSmmCpuDxeSmm driver.

Cc: Ray Ni <ray.ni@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Regression-tested-by: Laszlo Ersek <lersek@redhat.com>
4 days agoMdePkg: Add new MM MP Protocol definition.
Eric Dong [Mon, 1 Jul 2019 04:37:24 +0000 (12:37 +0800)] 
MdePkg: Add new MM MP Protocol definition.

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

EFI MM MP Protocol is defined in the PI 1.5 specification.

The MM MP protocol provides a set of functions to allow execution of
procedures on processors that have entered MM. This protocol has the
following properties:
1. The caller can invoke execution of a procedure on a processor, other
than the caller, that has also entered MM. Supports blocking and
non-blocking modes of operation.
2. The caller can invoke a procedure on multiple processors. Supports
blocking and non-blocking modes of operation.

Cc: Ray Ni <ray.ni@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Regression-tested-by: Laszlo Ersek <lersek@redhat.com>
5 days agoBaseTools: Fix python3.8 SyntaxWarning
Cole Robinson [Fri, 12 Jul 2019 17:29:28 +0000 (01:29 +0800)] 
BaseTools: Fix python3.8 SyntaxWarning

Building with python3.8 shows a warning like:

SyntaxWarning: invalid escape sequence \(
  GuidName = re.compile("\(GUID=[-a-fA-F0-9]+")

It seems harmless, but it's easy enough to fix: mark the string as
raw with the 'r' prefix like is used elsewhere in the file

Signed-off-by: Cole Robinson <crobinso@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Bob Feng <bob.c.feng@intel.com>
5 days agoEmulatorPkg/Unix: Convert timezone from seconds to minutes
Jordan Justen [Sat, 13 Jul 2019 00:34:55 +0000 (17:34 -0700)] 
EmulatorPkg/Unix: Convert timezone from seconds to minutes

Fixes and assert seen when running ls under the shell. It appears the
assert was added in:

commit 99849a906e15ea3a9a0330d69bbae0d21ff49808

    ShellPkg/ls: Display the file time in local time.

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
5 days agoEmulatorPkg/build.sh: Fix missing usage of -b BUILDTARGET parameter
Jordan Justen [Sun, 18 Nov 2018 08:06:04 +0000 (00:06 -0800)] 
EmulatorPkg/build.sh: Fix missing usage of -b BUILDTARGET parameter

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
6 days agoEmulatorPkg: update HOST_TOOLS to xcode5
Stephano Cetola [Wed, 19 Jun 2019 16:57:20 +0000 (09:57 -0700)] 
EmulatorPkg: update HOST_TOOLS to xcode5

The last compiler flag change was for Xcode 5.0, not Xcode 3.2. As such
the HOST_TOOLS should be set to XCODE5.

Also, fix a small typo.

This fixes bug 447:

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

Signed-off-by: Stephano Cetola <stephano.cetola@linux.intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
7 days agoFmpDevicePkg: Fix various typos
Antoine Cœur [Thu, 11 Jul 2019 07:42:30 +0000 (15:42 +0800)] 
FmpDevicePkg: Fix various typos

Fix one typo in FmpDevicePkg.

Signed-off-by: Cœur <coeur@gmx.fr>
Reviewed-by: Liming Gao <liming.gao@intel.com>
7 days agoBaseTools: Add HOST_APPLICATION module type.
Jiewen Yao [Mon, 1 Jul 2019 06:19:13 +0000 (06:19 +0000)] 
BaseTools: Add HOST_APPLICATION module type.

It can be used to indicate a module can be build to run
as OS application and run in OS environment.

Cc: Bob Feng <bob.c.feng@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Signed-off-by: Xiaoyu Lu <xiaoyux.lu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
7 days agoBaseTools: Fixed the issue when ToolDefinitionFile is not generated
Bob Feng [Thu, 11 Jul 2019 00:57:58 +0000 (08:57 +0800)] 
BaseTools: Fixed the issue when ToolDefinitionFile is not generated

ToolDefinitionFile is generated by PlatformAutoGen.ToolDefinition()
Code assume ToolDefinition is always called before using
ToolDefinitionFile, but in some cases, it's not true.

This patch is to fix this issue.

Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Bob Feng <bob.c.feng@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
7 days agoUefiCpuPkg/PiSmmCpu: ReclaimPages: fix incorrect operator binding
Ray Ni [Thu, 11 Jul 2019 01:16:03 +0000 (09:16 +0800)] 
UefiCpuPkg/PiSmmCpu: ReclaimPages: fix incorrect operator binding

Fixes: 4eee0cc7c

Signed-off-by: Ray Ni <ray.ni@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
7 days agoUefiCpuPkg/PiSmmCpu: Enable 5 level paging when CPU supports
Ray Ni [Wed, 12 Jun 2019 09:26:45 +0000 (17:26 +0800)] 
UefiCpuPkg/PiSmmCpu: Enable 5 level paging when CPU supports

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

The patch changes SMM environment to use 5 level paging when CPU
supports it.

Signed-off-by: Ray Ni <ray.ni@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Regression-tested-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
(cherry picked from commit 7365eb2c8cf1d7112330d09918c0c67e8d0b827a)

7 days agoMdePkg/BaseLib.h: Update IA32_CR4 structure for 5-level paging
Ray Ni [Wed, 12 Jun 2019 03:04:52 +0000 (11:04 +0800)] 
MdePkg/BaseLib.h: Update IA32_CR4 structure for 5-level paging

5-level paging is documented in white paper:
https://software.intel.com/sites/default/files/managed/2b/80/5-level_paging_white_paper.pdf

Commit f8113e25001e715390127f23e2197252cbd6d1a2
changed Cpuid.h already.

This patch updates IA32_CR4 structure to include LA57 field.

Signed-off-by: Ray Ni <ray.ni@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Regression-tested-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com>
(cherry picked from commit 7c5010c7f88b790f4524c4a5311819e3af5e2752)

7 days agoRevert "MdePkg/BaseLib.h: Update IA32_CR4 structure for 5-level paging"
Ray Ni [Fri, 12 Jul 2019 07:11:02 +0000 (15:11 +0800)] 
Revert "MdePkg/BaseLib.h: Update IA32_CR4 structure for 5-level paging"

This reverts commit 7c5010c7f88b790f4524c4a5311819e3af5e2752.
Commit
7c5010c7f8 MdePkg/BaseLib.h: Update IA32_CR4 structure for 5-level paging
technically breaks the EDKII development process documented in
https://github.com/tianocore/tianocore.github.io/wiki/EDK-II-Development-Process
and Maintainers.txt in EDKII repo root directory.

The voilation is commit 7c5010c7f8 doesn't have a Reviewed-by or
Acked-by from MdePkg maintainers.

Signed-off-by: Ray Ni <ray.ni@intel.com>
7 days agoRevert "UefiCpuPkg/PiSmmCpu: Enable 5 level paging when CPU supports"
Ray Ni [Fri, 12 Jul 2019 06:59:32 +0000 (14:59 +0800)] 
Revert "UefiCpuPkg/PiSmmCpu: Enable 5 level paging when CPU supports"

This reverts commit 7365eb2c8cf1d7112330d09918c0c67e8d0b827a.
Commit
7c5010c7f8 MdePkg/BaseLib.h: Update IA32_CR4 structure for 5-level paging
technically breaks the EDKII development process documented in
https://github.com/tianocore/tianocore.github.io/wiki/EDK-II-Development-Process
and Maintainers.txt in EDKII repo root directory.

The voilation is commit 7c5010c7f8 doesn't have a Reviewed-by or
Acked-by from MdePkg maintainers.

In order to revert 7c5010c7f87365eb2c8 needs to revert first otherwise
simply reverting 7c5010c7f8 will cause build break.

Signed-off-by: Ray Ni <ray.ni@intel.com>
7 days agoMaintainers.txt: Remove maintainer info for IntelFsp[Wrapper]Pkg
Ray Ni [Wed, 10 Jul 2019 08:04:40 +0000 (16:04 +0800)] 
Maintainers.txt: Remove maintainer info for IntelFsp[Wrapper]Pkg

We removed IntelFspPkg and IntelFspWrapperPkg for
<https://bugzilla.tianocore.org/show_bug.cgi?id=1819>; now remove
the dangling maintainer/reviewer assignments too.

Signed-off-by: Ray Ni <ray.ni@intel.com>
Cc: Andrew Fish <afish@apple.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Cc: Leif Lindholm <leif.lindholm@linaro.org>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Reviewed-by: Chasel Chiu <chasel.chiu@intel.com>
8 days agoIntelFsp2Pkg: Fix various typos
Antoine Cœur [Thu, 11 Jul 2019 08:54:31 +0000 (16:54 +0800)] 
IntelFsp2Pkg: Fix various typos

Fix various typos in IntelFsp2Pkg.

Signed-off-by: Cœur <coeur@gmx.fr>
Reviewed-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Chasel Chiu <chasel.chiu@intel.com>
8 days agoRevert "FmpDevicePkg: Fix various typos"
Antoine Cœur [Thu, 11 Jul 2019 08:31:15 +0000 (16:31 +0800)] 
Revert "FmpDevicePkg: Fix various typos"

This reverts commit f527942e6bdd9f198db90f2de99a0482e9be5b1b.
Commit message was incorrect.

Signed-off-by: Cœur <coeur@gmx.fr>
Reviewed-by: Chasel Chiu <chasel.chiu@intel.com>
8 days agoUefiCpuPkg RegisterCpuFeaturesLib: Fix an ASSERTION issue
Star Zeng [Wed, 10 Jul 2019 11:40:05 +0000 (19:40 +0800)] 
UefiCpuPkg RegisterCpuFeaturesLib: Fix an ASSERTION issue

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

We met assertion like below, it happens when there is only
one processor.

ASSERT_EFI_ERROR (Status = Not started)
ASSERT [CpuFeaturesDxe] X:\XXX\XXX\RegisterCpuFeaturesLib\
  DxeRegisterCpuFeaturesLib.c(149): !EFI_ERROR (Status)

The code should not call StartupAllAPs when there is only one processor.

Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Chandana Kumar <chandana.c.kumar@intel.com>
Cc: Kevin Li <kevin.y.li@intel.com>
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
9 days agoRevert "BaseTools/BfmLib: Add a tool BfmLib"
Liming Gao [Wed, 10 Jul 2019 15:25:23 +0000 (23:25 +0800)] 
Revert "BaseTools/BfmLib: Add a tool BfmLib"

This reverts commit dc7b0dc8d662b3bedece2cf1015e2a94884cb111.
There are the concerns on code design and code quality, and
request to rewrite FCE, BfmLib and FMMT for the review.

Cc: Leif Lindholm <leif.lindholm@linaro.org>
Cc: Feng Bob C <bob.c.feng@intel.com>
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Feng Bob C <bob.c.feng@intel.com>
9 days agoRevert "BaseTools/FCE: Add a tool FCE"
Liming Gao [Wed, 10 Jul 2019 15:25:21 +0000 (23:25 +0800)] 
Revert "BaseTools/FCE: Add a tool FCE"

This reverts commit 3c59d94637adbfdd497b5a2c16073c7dc62b669c.
There are the concerns on code design and code quality, and
request to rewrite FCE, BfmLib and FMMT for the review.

Cc: Leif Lindholm <leif.lindholm@linaro.org>
Cc: Feng Bob C <bob.c.feng@intel.com>
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Feng Bob C <bob.c.feng@intel.com>
9 days agoRevert "BaseTools/FMMT: Add a tool FMMT"
Liming Gao [Wed, 10 Jul 2019 15:25:18 +0000 (23:25 +0800)] 
Revert "BaseTools/FMMT: Add a tool FMMT"

This reverts commit 080981d72dcbb782ad73716c439639324b0aa4dd.
There are the concerns on code design and code quality, and
request to rewrite FCE, BfmLib and FMMT for the review.

Cc: Leif Lindholm <leif.lindholm@linaro.org>
Cc: Feng Bob C <bob.c.feng@intel.com>
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Feng Bob C <bob.c.feng@intel.com>
9 days agoRevert "BaseTools: fix FCE build when edksetup not executed"
Liming Gao [Wed, 10 Jul 2019 15:24:57 +0000 (23:24 +0800)] 
Revert "BaseTools: fix FCE build when edksetup not executed"

This reverts commit d031fc07eb83c9d13bff3ebac25da458d5a47917.
There are the concerns on code design and code quality, and
request to rewrite FCE, BfmLib and FMMT for the review.

Cc: Leif Lindholm <leif.lindholm@linaro.org>
Cc: Feng Bob C <bob.c.feng@intel.com>
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Feng Bob C <bob.c.feng@intel.com>
9 days agoRevert "BaseTools/FMMT: Change FMMT script type in PosixLike"
Liming Gao [Wed, 10 Jul 2019 15:24:30 +0000 (23:24 +0800)] 
Revert "BaseTools/FMMT: Change FMMT script type in PosixLike"

This reverts commit 2112fc71b1112554bcfb75a454002d2bbeed552f.
There are the concerns on code design and code quality, and
request to rewrite FCE, BfmLib and FMMT for the review.

Cc: Leif Lindholm <leif.lindholm@linaro.org>
Cc: Feng Bob C <bob.c.feng@intel.com>
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Feng Bob C <bob.c.feng@intel.com>
9 days agoRevert "BaseTools/BfmLib: Change BfmLib script type in PosixLike"
Liming Gao [Wed, 10 Jul 2019 15:24:27 +0000 (23:24 +0800)] 
Revert "BaseTools/BfmLib: Change BfmLib script type in PosixLike"

This reverts commit 556bf5b3570a2290ad82c1a027740e72230baa26.
There are the concerns on code design and code quality, and
request to rewrite FCE, BfmLib and FMMT for the review.

Cc: Leif Lindholm <leif.lindholm@linaro.org>
Cc: Feng Bob C <bob.c.feng@intel.com>
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Feng Bob C <bob.c.feng@intel.com>
9 days agoRevert "BaseTools/FCE: Change FCE script type in PosixLike"
Liming Gao [Wed, 10 Jul 2019 15:24:20 +0000 (23:24 +0800)] 
Revert "BaseTools/FCE: Change FCE script type in PosixLike"

This reverts commit 8a842b31b93323ee3dc7631059292d30f6179cd3.
There are the concerns on code design and code quality, and
request to rewrite FCE, BfmLib and FMMT for the review.

Cc: Leif Lindholm <leif.lindholm@linaro.org>
Cc: Feng Bob C <bob.c.feng@intel.com>
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Feng Bob C <bob.c.feng@intel.com>
9 days agoArmPlatformPkg: Actually disable PL031 interrupts
Alexander Graf [Wed, 10 Jul 2019 14:53:11 +0000 (16:53 +0200)] 
ArmPlatformPkg: Actually disable PL031 interrupts

The PL031 interrupt mask register (IMSC) is not very clearly documented
in the PL031 specification. However, bit 0 (RTCIMSC) indicates whether
interrupts are enabled, not disabled.

So before this commit, we were actually *enabling* interrupts for the RTC.

This patch changes the logic to instead disable interrupts when they
are not disabled already.

Signed-off-by: Alexander Graf <graf@amazon.com>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
9 days agoUefiCpuPkg/PiSmmCpu: Enable 5 level paging when CPU supports
Ray Ni [Wed, 12 Jun 2019 09:26:45 +0000 (17:26 +0800)] 
UefiCpuPkg/PiSmmCpu: Enable 5 level paging when CPU supports

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

The patch changes SMM environment to use 5 level paging when CPU
supports it.

Signed-off-by: Ray Ni <ray.ni@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Regression-tested-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
9 days agoMdePkg/BaseLib.h: Update IA32_CR4 structure for 5-level paging
Ray Ni [Wed, 12 Jun 2019 03:04:52 +0000 (11:04 +0800)] 
MdePkg/BaseLib.h: Update IA32_CR4 structure for 5-level paging

5-level paging is documented in white paper:
https://software.intel.com/sites/default/files/managed/2b/80/5-level_paging_white_paper.pdf

Commit f8113e25001e715390127f23e2197252cbd6d1a2
changed Cpuid.h already.

This patch updates IA32_CR4 structure to include LA57 field.

Signed-off-by: Ray Ni <ray.ni@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Regression-tested-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
9 days agoUefiCpuPkg/PiSmmCpu: Change variable names and comments to follow SDM
Ray Ni [Wed, 12 Jun 2019 02:14:42 +0000 (10:14 +0800)] 
UefiCpuPkg/PiSmmCpu: Change variable names and comments to follow SDM

Per SDM, for IA-32e 4-KByte paging, there are four layers in the page
table structure:
1. PML4
2. Page-Directory-Pointer Table (PDPT)
3. Page-Directory (PD)
4. Page Table (PT)

The patch changes the local variable names and comments to use
"PML4", "PDPT", "PD", "PT" to better align to terms used in SDM.

There is no functionality impact for this change.

Signed-off-by: Ray Ni <ray.ni@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Regression-tested-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
10 days agoMdeModulePkg/Setup: Check ConfigAccess protocol in case it's destroyed
GregX Yeh [Tue, 9 Jul 2019 11:46:54 +0000 (11:46 +0000)] 
MdeModulePkg/Setup: Check ConfigAccess protocol in case it's destroyed

https://bugzilla.tianocore.org/show_bug.cgi?id=1920
Check ConfigAccess protocol is available before process user input.

Signed-off-by: GregX Yeh <gregx.yeh@intel.com>
Cc: Dandan Bi <dandan.bi@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Ted Kuo <ted.kuo@intel.com>
Reviewed-by: Dandan Bi <dandan.bi@intel.com>
10 days agoBaseTools: Detect the change of env variable used in tooldef.txt
Feng, Bob C [Thu, 27 Jun 2019 08:47:36 +0000 (16:47 +0800)] 
BaseTools: Detect the change of env variable used in tooldef.txt

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

Add TOOLS_DEF.ARCH file to all workspace meta files list.
TOOLS_DEF.ARCH include the evaluated Tool definition information
which is filtered by current tool_chain.

With this change, when the environment variable which
is used in ToolDef.txt is changed, build tool will
rebuild the platform.

Signed-off-by: Bob Feng <bob.c.feng@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Steven Shi <steven.shi@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
10 days agoBaseTools: Fixed the issue of the CFlag for compile PcdValueInit.c
Feng, Bob C [Mon, 1 Jul 2019 09:48:51 +0000 (17:48 +0800)] 
BaseTools: Fixed the issue of the CFlag for compile PcdValueInit.c

This issue happens when using Structured PCD.
Build tool use set to store the cflags for compile PcdValueInit.c,
that is the order of cflags is disorder.

This patch make -U, /U flags appear before -D, /D

Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Bob Feng <bob.c.feng@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
10 days agoFmpDevicePkg: Fix various typos
Antoine Cœur [Tue, 9 Jul 2019 09:10:11 +0000 (17:10 +0800)] 
FmpDevicePkg: Fix various typos

Fix one typo in FmpDevicePkg.

Signed-off-by: Cœur <coeur@gmx.fr>
Reviewed-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Chasel Chiu <chasel.chiu@intel.com>
12 days agoBaseTools/FCE: Change FCE script type in PosixLike
Shenglei Zhang [Fri, 5 Jul 2019 14:21:33 +0000 (22:21 +0800)] 
BaseTools/FCE: Change FCE script type in PosixLike

Change the script type from PC to UNIX.

Cc: Bob Feng <bob.c.feng@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Shenglei Zhang <shenglei.zhang@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Bob Feng <bob.c.feng@intel.com>
12 days agoBaseTools/BfmLib: Change BfmLib script type in PosixLike
Shenglei Zhang [Fri, 5 Jul 2019 14:21:14 +0000 (22:21 +0800)] 
BaseTools/BfmLib: Change BfmLib script type in PosixLike

Change the script type from PC to UNIX.

Cc: Bob Feng <bob.c.feng@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Shenglei Zhang <shenglei.zhang@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Bob Feng <bob.c.feng@intel.com>
12 days agoBaseTools/FMMT: Change FMMT script type in PosixLike
Shenglei Zhang [Fri, 5 Jul 2019 11:11:37 +0000 (19:11 +0800)] 
BaseTools/FMMT: Change FMMT script type in PosixLike

Change the script type from PC to UNIX.

Cc: Bob Feng <bob.c.feng@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Shenglei Zhang <shenglei.zhang@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Bob Feng <bob.c.feng@intel.com>
12 days agoBaseTools: Fix various typos
Antoine Cœur [Thu, 4 Jul 2019 11:43:48 +0000 (19:43 +0800)] 
BaseTools: Fix various typos

Fix various typos in BaseTools.

Signed-off-by: Cœur <coeur@gmx.fr>
Reviewed-by: Bob Feng <bob.c.feng@intel.com>
2 weeks agoBaseTools: fix FCE build when edksetup not executed
Leif Lindholm [Fri, 5 Jul 2019 10:25:31 +0000 (11:25 +0100)] 
BaseTools: fix FCE build when edksetup not executed

Commit 3c59d94637ad ("BaseTools/FCE: Add a tool FCE") added a new tool
that is always built. Pre-existing tools locate the makefile includes
with relative paths, but FCE uses EDK_TOOLS_PATH, adding a new dependency
on having sourced edksetup.sh before building BaseTools.

Change FCE GNUmakefile to match other tools.

Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2 weeks agoMaintainers.txt: Change SecurityPkg Maintainer Role
Zhang, Chao B [Fri, 5 Jul 2019 03:41:26 +0000 (11:41 +0800)] 
Maintainers.txt: Change SecurityPkg Maintainer Role

Change Chao's role to Reviewer

Cc: Wang Jian J <jian.j.wang@intel.com>
Signed-off-by: Zhang, Chao B <chao.b.zhang@intel.com>
Reviewed-by: Wang Jian J <jian.j.wang@intel.com>
2 weeks agoRevert "MdePkg/Protocol/Hash: introduce GUID for SM3"
Laszlo Ersek [Thu, 4 Jul 2019 09:21:46 +0000 (11:21 +0200)] 
Revert "MdePkg/Protocol/Hash: introduce GUID for SM3"

This reverts commit 49c1e683c452f68c7315454280d81449f7d94d2b.

The reason is that said commit had not been reviewed by MdePkg
maintainers, before it was pushed.

Cc: Imran Desai <imran.desai@intel.com>
Cc: Leif Lindholm <leif.lindholm@linaro.org>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1781
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com>
2 weeks agoRevert "SecurityPkg: introduce the SM3 digest algorithm"
Laszlo Ersek [Thu, 4 Jul 2019 09:20:27 +0000 (11:20 +0200)] 
Revert "SecurityPkg: introduce the SM3 digest algorithm"

This reverts commit 06dd5863b66edd9908834371e07fb4e11383c172.

The reason is that said commit directly depends on commit 49c1e683c452
("MdePkg/Protocol/Hash: introduce GUID for SM3", 2019-07-03), and the
latter commit is going to be reverted, due to its review process not
having followed established edk2 norms.

Cc: Chao Zhang <chao.b.zhang@intel.com>
Cc: Imran Desai <imran.desai@intel.com>
Cc: Jian Wang <jian.j.wang@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Leif Lindholm <leif.lindholm@linaro.org>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1781
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com>
2 weeks agoRevert "SecurityPkg/HashLibBaseCryptoRouter: recognize the SM3 digest algorithm"
Laszlo Ersek [Thu, 4 Jul 2019 09:17:45 +0000 (11:17 +0200)] 
Revert "SecurityPkg/HashLibBaseCryptoRouter: recognize the SM3 digest algorithm"

This reverts commit 542d04e2a4fec0df0340d2ad7b59f011f20d03cc.

The reason is that said commit indirectly depends on commit 49c1e683c452
("MdePkg/Protocol/Hash: introduce GUID for SM3", 2019-07-03), and the
latter commit is going to be reverted, due to its review process not
having followed established edk2 norms.

Cc: Chao Zhang <chao.b.zhang@intel.com>
Cc: Imran Desai <imran.desai@intel.com>
Cc: Jian Wang <jian.j.wang@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Leif Lindholm <leif.lindholm@linaro.org>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1781
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com>
2 weeks agoRevert "SecurityPkg: set SM3 bit in TPM 2.0 hash mask by default"
Laszlo Ersek [Thu, 4 Jul 2019 09:11:24 +0000 (11:11 +0200)] 
Revert "SecurityPkg: set SM3 bit in TPM 2.0 hash mask by default"

This reverts commit d5af8fc5a975feb6c745587d0d834733ad2048fd.

The reason is that said commit indirectly depends on commit 49c1e683c452
("MdePkg/Protocol/Hash: introduce GUID for SM3", 2019-07-03), and the
latter commit is going to be reverted, due to its review process not
having followed established edk2 norms.

Cc: Chao Zhang <chao.b.zhang@intel.com>
Cc: Imran Desai <imran.desai@intel.com>
Cc: Jian Wang <jian.j.wang@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Leif Lindholm <leif.lindholm@linaro.org>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1781
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com>
2 weeks agoRevert "OvmfPkg: link SM3 support into Tcg2Pei and Tcg2Dxe"
Laszlo Ersek [Thu, 4 Jul 2019 09:08:07 +0000 (11:08 +0200)] 
Revert "OvmfPkg: link SM3 support into Tcg2Pei and Tcg2Dxe"

This reverts commit a7c7d21ffa9ad14b418e728a882df0a9b8815bf6.

The reason is that said commit had not been reviewed by OvmfPkg
maintainers/reviewers, before it was pushed.

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Imran Desai <imran.desai@intel.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Leif Lindholm <leif.lindholm@linaro.org>
Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
Cc: Stefan Berger <stefanb@linux.ibm.com>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1781
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com>
2 weeks agoOvmfPkg: use DxeTpmMeasurementLib if and only if TPM2_ENABLE
Gary Lin [Thu, 4 Jul 2019 04:07:59 +0000 (04:07 +0000)] 
OvmfPkg: use DxeTpmMeasurementLib if and only if TPM2_ENABLE

(a) OvmfPkg first had to resolve the TpmMeasurementLib class -- for
    SECURE_BOOT_ENABLE only -- when the DxeImageVerificationLib instance
    became dependent on TpmMeasurementLib. For details, refer to commit
    0d28d286bf4d ("OvmfPkg: resolve TpmMeasurementLib dependency
    introduced in r14687", 2013-09-21).

(b) At the time, only one instance of TpmMeasurementLib existed, namely
    DxeTpmMeasurementLib. This lib instance didn't do anything -- like it
    was desirable for OVMF --, because OVMF didn't include any Tcg / TrEE
    protocol implementations.

(c) In commit 308521b13354 ("MdeModulePkg: Move TpmMeasurementLib
    LibraryClass from SecurityPkg", 2015-07-01), TpmMeasurementLibNull was
    introduced.

(d) In commit 285542ebbb03 ("OvmfPkg: Link AuthVariableLib for following
    merged variable driver deploy", 2015-07-01), a TpmMeasurementLib
    resolution became necessary regardless of SECURE_BOOT_ENABLE. And so
    TpmMeasurementLib was resolved to TpmMeasurementLibNull in OVMF, but
    only in the non-SECURE_BOOT_ENABLE case. This step -- possibly, the
    larger series containing commit 285542ebbb03 -- missed an opportunity
    for simplification: given (b), the DxeTpmMeasurementLib instance
    should have been simply replaced with the TpmMeasurementLibNull
    instance, regardless of SECURE_BOOT_ENABLE.

(e) In commit 1abfa4ce4835 ("Add TPM2 support defined in trusted computing
    group.", 2015-08-13), the TrEE dependency was replaced with a Tcg2
    dependency in DxeTpmMeasurementLib.

(f) Starting with commit 0c0a50d6b3ff ("OvmfPkg: include Tcg2Dxe module",
    2018-03-09), OVMF would include a Tcg2 protocol implementation,
    thereby satisfying DxeTpmMeasurementLib's dependency. With
    TPM2_ENABLE, it would actually make sense to consume
    DxeTpmMeasurementLib -- however, DxeTpmMeasurementLib would never be
    used without SECURE_BOOT_ENABLE.

Therefore, we have the following four scenarios:

- TPM2_ENABLE + SECURE_BOOT_ENABLE: works as expected.

- Neither enabled: works as expected.

- Only TPM2_ENABLE: this build is currently incorrect, because
  Variable/RuntimeDxe consumes TpmMeasurementLib directly, but
  TpmMeasureAndLogData() will never reach the TPM because we link
  TpmMeasurementLibNull into the variable driver. This is a problem from
  the larger series containing (f).

- Only SECURE_BOOT_ENABLE: this build works as expected, but it is
  wasteful -- given that the protocol database will never contain Tcg2
  without TPM2_ENABLE, we should simply use TpmMeasurementLibNull. This is
  a problem from (d).

Resolving TpmMeasurementLib to DxeTpmMeasurementLib as a function of
*only* TPM2_ENABLE, we can fix / optimize the last two cases.

v2:
  - Amend the title and description suggested by Laszlo
  - Move TpmMeasurementLib to the existed TPM2_ENABLE block

Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
Cc: Stefan Berger <stefanb@linux.ibm.com>
Signed-off-by: Gary Lin <glin@suse.com>
Message-Id: <20190704040731.5303-1-glin@suse.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
2 weeks agoEmbeddedPkg: Fix various typos
Cœur [Wed, 3 Jul 2019 13:25:30 +0000 (14:25 +0100)] 
EmbeddedPkg: Fix various typos

Fix various typos in EmbeddedPkg.

Signed-off-by: Coeur <coeur@gmx.fr>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2 weeks agoArmPlatformPkg: Fix various typos
Antoine Cœur [Wed, 6 Feb 2019 15:40:38 +0000 (23:40 +0800)] 
ArmPlatformPkg: Fix various typos

Fix various typos in ArmPlatformPkg.

Signed-off-by: Coeur <coeur@gmx.fr>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2 weeks agoArmPkg: Fix various typos
Antoine Cœur [Wed, 6 Feb 2019 15:39:35 +0000 (23:39 +0800)] 
ArmPkg: Fix various typos

Fix various typos in ArmPkg.

Signed-off-by: Coeur <coeur@gmx.fr>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2 weeks agoBaseTools/FMMT: Add a tool FMMT
Shenglei Zhang [Tue, 28 May 2019 03:01:47 +0000 (11:01 +0800)] 
BaseTools/FMMT: Add a tool FMMT

FMMT is a tool to enable removal, addition and replacement of
FFS files in FD image binaries.
https://bugzilla.tianocore.org/show_bug.cgi?id=1847

Cc: Bob Feng <bob.c.feng@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Shenglei Zhang <shenglei.zhang@intel.com>
Reviewed-by: Bob Feng <bob.c.feng@intel.com>
2 weeks agoBaseTools/FCE: Add a tool FCE
Shenglei Zhang [Tue, 28 May 2019 08:07:43 +0000 (16:07 +0800)] 
BaseTools/FCE: Add a tool FCE

FCE is a tool to retrieve and change HII configuration data in
Firmware Device(*.fd) files.
https://bugzilla.tianocore.org/show_bug.cgi?id=1848

Cc: Bob Feng <bob.c.feng@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Shenglei Zhang <shenglei.zhang@intel.com>
Reviewed-by: Bob Feng <bob.c.feng@intel.com>
2 weeks agoBaseTools/BfmLib: Add a tool BfmLib
Shenglei Zhang [Wed, 29 May 2019 07:22:32 +0000 (15:22 +0800)] 
BaseTools/BfmLib: Add a tool BfmLib

BmfLib is added for FCE tool.
https://bugzilla.tianocore.org/show_bug.cgi?id=1848

Cc: Bob Feng <bob.c.feng@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Shenglei Zhang <shenglei.zhang@intel.com>
Reviewed-by: Bob Feng <bob.c.feng@intel.com>
2 weeks agoMaintainers.txt: Drop deprecated SourceForge SVN link
Hao A Wu [Thu, 27 Jun 2019 05:41:42 +0000 (13:41 +0800)] 
Maintainers.txt: Drop deprecated SourceForge SVN link

The commit will remove the deprecated edk2 SVN mirror at:
https://svn.code.sf.net/p/edk2/code/trunk/edk2

After this commit, the above mirror will not be synced with the changes
made in the GitHub upstream.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Andrew Fish <afish@apple.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Signed-off-by: Hao A Wu <hao.a.wu@intel.com>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
2 weeks agoMaintainers.txt: add Leif Lindholm as Package Reviewer of ArmVirtPkg
Leif Lindholm [Wed, 3 Jul 2019 10:27:41 +0000 (11:27 +0100)] 
Maintainers.txt: add Leif Lindholm as Package Reviewer of ArmVirtPkg

ArmVirtPkg was created before we introduced the Package Reviewer (R:)
role in Maintainers.txt. However, we have always had an informal
agreement that if Ard or Laszlo is absent, I can review patches by
the still present one for going into ArmVirtPkg.

Plus, as one of the ArmPkg maintainers, it makes sense for me to have
better visibility of goings-on in ArmVirtPkg.

So let's formalise that, and add myself as a Package Reviewer, to be
CC:d on patches (while not taking up full maintainer responsibilities).

Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
2 weeks agoOvmfPkg: link SM3 support into Tcg2Pei and Tcg2Dxe
Imran Desai [Wed, 29 May 2019 04:40:49 +0000 (04:40 +0000)] 
OvmfPkg: link SM3 support into Tcg2Pei and Tcg2Dxe

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

EDK2 Support for SM3 digest algorithm is needed to enable TPM with SM3 PCR
banks. This digest algorithm is part of the China Crypto algorithm suite.
This integration has dependency on the openssl_1_1_1b integration into
edk2.
This patch links SM3 support into Tcg2Pei and Tcg2Dxe.

Signed-off-by: Imran Desai <imran.desai@intel.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
Cc: Stefan Berger <stefanb@linux.ibm.com>
Reviewed-by: Jian J Wang <jian.j.wang@intel.com>
Reviewed-by: jiewen.yao@intel.com
2 weeks agoSecurityPkg: set SM3 bit in TPM 2.0 hash mask by default
Imran Desai [Wed, 29 May 2019 04:40:48 +0000 (04:40 +0000)] 
SecurityPkg: set SM3 bit in TPM 2.0 hash mask by default

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

EDK2 Support for SM3 digest algorithm is needed to enable TPM with SM3 PCR
banks. This digest algorithm is part of the China Crypto algorithm suite.
This integration has dependency on the openssl_1_1_1b integration into
edk2.
This patch sets SM3 bit in TPM2.0 hash mask by default.

Signed-off-by: Imran Desai <imran.desai@intel.com>
Cc: Chao Zhang <chao.b.zhang@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Jian Wang <jian.j.wang@intel.com>
Reviewed-by: Jian J Wang <jian.j.wang@intel.com>
Reviewed-by: jiewen.yao@intel.com
2 weeks agoSecurityPkg/HashLibBaseCryptoRouter: recognize the SM3 digest algorithm
Imran Desai [Wed, 29 May 2019 04:40:47 +0000 (04:40 +0000)] 
SecurityPkg/HashLibBaseCryptoRouter: recognize the SM3 digest algorithm

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

EDK2 Support for SM3 digest algorithm is needed to enable TPM with SM3 PCR
banks. This digest algorithm is part of the China Crypto algorithm suite.
This integration has dependency on the openssl_1_1_1b integration into
edk2.
This patch adds SM3 as an available digest algorithm to crypto router.

Signed-off-by: Imran Desai <imran.desai@intel.com>
Cc: Chao Zhang <chao.b.zhang@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Jian Wang <jian.j.wang@intel.com>
Reviewed-by: Jian J Wang <jian.j.wang@intel.com>
Reviewed-by: jiewen.yao@intel.com
2 weeks agoSecurityPkg: introduce the SM3 digest algorithm
Imran Desai [Tue, 2 Jul 2019 13:30:34 +0000 (21:30 +0800)] 
SecurityPkg: introduce the SM3 digest algorithm

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

EDK2 Support for SM3 digest algorithm is needed to enable TPM with SM3 PCR
banks. This digest algorithm is part of the China Crypto algorithm suite.
This integration has dependency on the openssl_1_1_1b integration into
edk2.
This patch add SM3 algorithm in the hashinstance library.

Cc: Chao Zhang <chao.b.zhang@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Jian Wang <jian.j.wang@intel.com>
Signed-off-by: Imran Desai <imran.desai@intel.com>
Reviewed-by: Jian J Wang <jian.j.wang@intel.com>
Reviewed-by: jiewen.yao@intel.com
2 weeks agoMdePkg/Protocol/Hash: introduce GUID for SM3
Imran Desai [Wed, 29 May 2019 04:40:45 +0000 (04:40 +0000)] 
MdePkg/Protocol/Hash: introduce GUID for SM3

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

EDK2 Support for SM3 digest algorithm is needed to enable TPM with SM3 PCR
banks. This digest algorithm is part of the China Crypto algorithm suite.
This integration has dependency on the openssl_1_1_1b integration into
edk2.
This patch adds GUID for SM3 digest algorithm.

Signed-off-by: Imran Desai <imran.desai@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Reviewed-by: Jian J Wang <jian.j.wang@intel.com>
Reviewed-by: jiewen.yao@intel.com
2 weeks agoMaintainers.txt: Remove information for IntelFramework[Module]Pkg
Hao A Wu [Mon, 27 May 2019 06:23:42 +0000 (14:23 +0800)] 
Maintainers.txt: Remove information for IntelFramework[Module]Pkg

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

Since IntelFramework[Module]Pkg have been removed, this commit will update
the Maintainers.txt to reflect such changes.

Signed-off-by: Hao A Wu <hao.a.wu@intel.com>
Acked-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
2 weeks agoRemove IntelFrameworkPkg
Hao A Wu [Mon, 27 May 2019 06:22:37 +0000 (14:22 +0800)] 
Remove IntelFrameworkPkg

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

Please note a subsequent commit will followed to update the information in
Maintainers.txt to reflect this package removal.

Cc: Andrew Fish <afish@apple.com>
Cc: Leif Lindholm <leif.lindholm@linaro.org>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Signed-off-by: Hao A Wu <hao.a.wu@intel.com>
Acked-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
2 weeks agoRemove IntelFrameworkModulePkg
Hao A Wu [Mon, 27 May 2019 06:19:41 +0000 (14:19 +0800)] 
Remove IntelFrameworkModulePkg

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

Please note a subsequent commit will followed to update the information in
Maintainers.txt to reflect this package removal.

Cc: Andrew Fish <afish@apple.com>
Cc: Leif Lindholm <leif.lindholm@linaro.org>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Signed-off-by: Hao A Wu <hao.a.wu@intel.com>
Acked-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
2 weeks agoShellPkg: acpiview: Make '-h' option not require a parameter
Krzysztof Koch [Fri, 28 Jun 2019 08:57:00 +0000 (16:57 +0800)] 
ShellPkg: acpiview: Make '-h' option not require a parameter

Make the -h command line option a binary flag. Now, colour
highlighting is enabled whenever this flag is set (stateless),
instead of being dependent on previous acpiview command
invocations.

By removing the parameter required with the -h flag the command
line parsing logic becomes simpler.

Signed-off-by: Krzysztof Koch <krzysztof.koch@arm.com>
Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com>
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
2 weeks agoShellPkg: acpiview: Remove duplicate indentation in IORT parser
Krzysztof Koch [Fri, 28 Jun 2019 10:24:38 +0000 (18:24 +0800)] 
ShellPkg: acpiview: Remove duplicate indentation in IORT parser

Remove redundant whitespace characters at the beginning of the strings
describing IORT table field names.

When dumping ACPI table contents, the indentation level for printing
field names is controled using the 'Indent' argument to the 'ParseAcpi'
function. In the IORT acpiview parser, both 'Indent' and extra
whitespace characters are used for indentation, which results in
excess indentation.

Signed-off-by: Krzysztof Koch <krzysztof.koch@arm.com>
Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com>
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
2 weeks agoShellPkg: acpiview: Remove '-v' flag from allowed command line args
Krzysztof Koch [Fri, 28 Jun 2019 08:56:59 +0000 (16:56 +0800)] 
ShellPkg: acpiview: Remove '-v' flag from allowed command line args

According to the acpiview documentation, the -v flag enables verbose
output and it is set on default.

Moreover, the acpiview UEFI shell tool dumps the same output with
and without this flag set.

Therefore this patch removes the superfluous -v flag from allowed
command line parameters.

Signed-off-by: Krzysztof Koch <krzysztof.koch@arm.com>
Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com>
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
2 weeks agoShellPkg: acpiview: Remove redundant IORT node types enum
Krzysztof Koch [Fri, 28 Jun 2019 10:24:37 +0000 (18:24 +0800)] 
ShellPkg: acpiview: Remove redundant IORT node types enum

Replace the enum defining valid node types in the IORT table with
macros from IoRemappingTable.h.

Signed-off-by: Krzysztof Koch <krzysztof.koch@arm.com>
Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com>
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
2 weeks agoShellPkg: acpiview: Allow disabling consistency checks (-q flag)
Krzysztof Koch [Fri, 28 Jun 2019 08:56:58 +0000 (16:56 +0800)] 
ShellPkg: acpiview: Allow disabling consistency checks (-q flag)

The current documentation for the acpiview UEFI shell tool states
that the '-c' flag enables consistency checks on ACPI table data.
However, these checks are enabled anyway by default.

This patch keeps ACPI table validation as a default option, but it
makes it possible to turn ACPI table validation off by setting the
newly-introduced '-q' flag. Consequently, the '-c' flag is removed.

The remaining code changes in this patch make a number of consistency
checks optional (but enabled by default):
1. ACPI table field offset mismatch.
2. ACPI table field validation functions provided in the ACPI_PARSER
   arrays.
3. Table checksum computation.

Signed-off-by: Krzysztof Koch <krzysztof.koch@arm.com>
Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com>
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
2 weeks agoShellPkg: acpiview: Make DBG2 output consistent with other tables
Krzysztof Koch [Fri, 28 Jun 2019 10:24:36 +0000 (18:24 +0800)] 
ShellPkg: acpiview: Make DBG2 output consistent with other tables

Print an extra newline character at the end DBG2 table parsing in order
to make the output resemble the one for other ACPI table parsers.

With this change, there is now a blank line between the DBG2 table dump
and the 'Table Statistics' section.

Signed-off-by: Krzysztof Koch <krzysztof.koch@arm.com>
Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com>
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
2 weeks agoShellPkg: acpiview: Fix '\n\n' printing in Table Checksum reporting
Krzysztof Koch [Fri, 28 Jun 2019 08:56:57 +0000 (16:56 +0800)] 
ShellPkg: acpiview: Fix '\n\n' printing in Table Checksum reporting

Move printing double newline character ('\n\n') from the beginning of
ACPI table checksum validation message to the end of the raw binary
data dump.

This way acpiview table dump looks similar regardless of whether Table
Checksum is validated or not.

Signed-off-by: Krzysztof Koch <krzysztof.koch@arm.com>
Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com>
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
2 weeks agoShellPkg: acpiview: Remove '/?' from valid command line flags
Krzysztof Koch [Fri, 28 Jun 2019 08:56:56 +0000 (16:56 +0800)] 
ShellPkg: acpiview: Remove '/?' from valid command line flags

Acpiview currently allows displaying help info by specifying both
-? and /? flags. This patch removes /? from valid command line
flags that can be passed to the acpiview tool, as this
flag is not used for such purpose in other UEFI shell commands.

Signed-off-by: Krzysztof Koch <krzysztof.koch@arm.com>
Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com>
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
2 weeks agoShellPkg: acpiview: Improve PPTT table field validation
Krzysztof Koch [Fri, 28 Jun 2019 10:24:35 +0000 (18:24 +0800)] 
ShellPkg: acpiview: Improve PPTT table field validation

Add Cache Structure (Type 1) 'Number of sets' and 'Associativity'
field validation in the acpiview Processor Properties Topology
Table (PPTT) parser.

Replace literal values with precompiler macros for existing
Cache Structure validation functions.

Signed-off-by: Krzysztof Koch <krzysztof.koch@arm.com>
Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com>
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
2 weeks agoEmulatorPkg/MiscSubClassPlatformDxe: Remove this unused module
Wu, Hao A [Tue, 2 Jul 2019 02:30:53 +0000 (10:30 +0800)] 
EmulatorPkg/MiscSubClassPlatformDxe: Remove this unused module

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

For commit 63f9b9b9312f3e08c92a2ea3cdbe01e723ef653b, the use of module
EmulatorPkg/MiscSubClassPlatformDxe/MiscSubClassDriver.inf

was replaced by:
EmulatorPkg/PlatformSmbiosDxe/PlatformSmbiosDxe.inf

in platform DSC/FDF files.

This commit will remove this unused module from EmulatorPkg.

Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Andrew Fish <afish@apple.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Signed-off-by: Hao A Wu <hao.a.wu@intel.com>
2 weeks agoShellPkg/UefiShellLib: Set input pointer parameter to null if failure
Bret Barkelew [Wed, 12 Jun 2019 06:04:57 +0000 (14:04 +0800)] 
ShellPkg/UefiShellLib: Set input pointer parameter to null if failure

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

While failed to allocate memory to save the response,
set the input/output parameter 'Response'(VOID **) to
NULL to indicate the failure not only depend on the
returned status.

Cc: Jaben Carsey <jaben.carsey@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Sean Brogan <sean.brogan@microsoft.com>
Cc: Michael Turner <Michael.Turner@microsoft.com>
Cc: Bret Barkelew <Bret.Barkelew@microsoft.com>
Signed-off-by: Zhichao Gao <zhichao.gao@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
2 weeks agoOvmfPkg/XenBusDxe: Don't call DisconnectController in Stop()
Anthony PERARD [Mon, 1 Jul 2019 11:14:03 +0000 (12:14 +0100)] 
OvmfPkg/XenBusDxe: Don't call DisconnectController in Stop()

Calling DisconnectController() on children isn't part of the job of
EFI_DRIVER_BINDING_PROTOCOL.Stop() as it only needs to deallocate
resources allocated in Start(). The disconnection will happen when
both DevicePath and XenBus protocols gets uninstalled.

Reported-by: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Message-Id: <20190701111403.7007-1-anthony.perard@citrix.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>