Ard Biesheuvel [Fri, 5 Feb 2016 13:57:57 +0000 (14:57 +0100)]
ArmVirtPkg: implement ArmVirtQemuKernel
This implements a version of ArmVirtQemu that does not execute in place from
emulated NOR flash, but implements the Linux kernel boot protocol, and executes
from DRAM instead. This allows UEFI to be loaded as a payload by a previous
bootloader stage such as ARM Trusted Firmware/OP-TEE.
Ard Biesheuvel [Fri, 5 Feb 2016 13:54:42 +0000 (14:54 +0100)]
ArmVirtPkg: introduce new ArmQemuRelocatablePlatformLib
This introduces ArmQemuRelocatablePlatformLib, which started out as a
straight copy of ArmXenRelocatablePlatformLib, but has been modified so
that ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf can be used with
QEMU as well as with Xen. It retains the self relocation and FDT parsing
for the system memory, but uses the QEMU MMU layout.
Ard Biesheuvel [Fri, 5 Feb 2016 13:52:30 +0000 (14:52 +0100)]
ArmVirtPkg/EarlyFdtPL011: allow patchable PCD for initial DT base address
Allow the use of a patchable PCD for the initial DT base address recorded in
gArmVirtTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress, so that the module
can be reused by a relocatable version of ArmVirtQemu.
Evan Lloyd [Wed, 3 Feb 2016 17:07:47 +0000 (17:07 +0000)]
ArmPkg: Add isb when setting SCR
Some updates to SCR can cause a problem which manifests as an undefined opcode exception.
This may be when a speculative secure instruction fetch happens after the NS bit is set.
An isb is required to make the register change take effect fully.
Ruiyu Ni [Fri, 29 Jan 2016 08:03:05 +0000 (16:03 +0800)]
MdeModulePkg/UsbAbsPointer:Fix GetState() to return absolute value
Fix UsbMouseAbsolutePointer driver GetState() interface to return
absolute value instead of relative value.
The driver is ported from UsbMouse driver. The GetState of
SimplePointer protocol returns relative value but the GetState
of AbsolutePointer protocol should return absolute value.
Fu Siyuan [Mon, 1 Feb 2016 02:30:47 +0000 (10:30 +0800)]
MdeModulePkg: Correct one return status code in SNP Transmit function.
According to UEFI spec, a BUFFER_FULL return status in UNDI Transmit command
indicates UNDI "Transmit buffer is full. Call Get Status command toempty
buffer." So this patch updates the SNP Transmit to return EFI_NOT_READY for
BUFFER_FULL to let the call know the buffer full status.
Fu Siyuan [Mon, 1 Feb 2016 02:24:43 +0000 (10:24 +0800)]
MdeModulePkg: Update the default size of MNP TX buffer pool.
The MNP and SNP are independent drivers so the MNP_TX_BUFFER_INCREASEMENT could choose
any value as needed. While this patch update the default value of this macro to 32,
to be same as the maximum recycled buffer numbers in one UNDI GetStatus command. It is
a workaround for some incorrect UNDI drivers which may not return the correct statuses
for the SNP and MNP to correctly retry/call GetStatus to clear the buffers.
Fu Siyuan [Wed, 3 Feb 2016 07:15:20 +0000 (15:15 +0800)]
MdeModulePkg: Update DBsize in SNP GetStatus command.
Update the DBsize in GetStatus command to let UNDI return an array of recycled
buffers. This is to make the loop at the end of PxeGetStatus() useful and to
prevent buffer overflow with some non-conformant UNDI drivers which not check
the value of the input DBsize in UNDI GetStatus command.
Zhang Lubo [Fri, 29 Jan 2016 03:17:34 +0000 (11:17 +0800)]
NetworkPkg:Add a new error status code EFI_HTTP_ERROR
v4:
* Update macro HTTP_ERROR_STATUS to HTTP_ERROR_OR_NOT_SUPPORT_STATUS_CODE
Update copyright year.
When the Error Status of ResponseData returned from HttpIoRecvResponse
function during the Http HEAD method, it should also return error status
to Load file protocol.
Add a new error status code EFI_HTTP_ERROR in corresponding with the
UEFI 2.6 spec . When a HTTP error occurred during the network operation,
The EFI_HTTP_ERROR is returned in token.
Cc: Fu Siyuan <siyuan.fu@intel.com> Cc: Ye Ting <ting.ye@intel.com> Cc: Wu Jiaxin <jiaxin.wu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Zhang Lubo <lubo.zhang@intel.com> Reviewed-by: Siyuan Fu <siyuan.fu@intel.com> Reviewed-by: Ye Ting <ting.ye@intel.com> Reviewed-by: Jiaxin Wu <jiaxin.wu@intel.com>
Zhang Lubo [Thu, 28 Jan 2016 07:34:11 +0000 (15:34 +0800)]
MdePkg:Add a new error status code EFI_HTTP_ERROR.
v2:
*Return the EFI_HTTP_ERROR in the “Status” field in token, instead of
in the status codes returned table of EFI_HTTP_PROTOCOL.Response() interface.
Add a new error status code EFI_HTTP_ERROR in corresponding with
the UEFI 2.6 spec
Cc: Ye Ting <ting.ye@intel.com> Cc: Fu Siyuan <siyuan.fu@intel.com> Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Zhang Lubo <lubo.zhang@intel.com> Reviewed-by: Siyuan Fu <siyuan.fu@intel.com> Reviewed-by: Jiaxin Wu <jiaxin.wu@intel.com>
where the required SERIAL value sets the Serial Number (SN) field of the
"Identify Controller Data Structure". It is an ASCII string with up to 20
characters, which QEMU pads with spaces to maximum length.
(Refer to "NVME_ADMIN_CONTROLLER_DATA.Sn" in
"MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressHci.h".)
Evan Lloyd [Tue, 2 Feb 2016 11:43:00 +0000 (11:43 +0000)]
Omap35xxPkg: Rectify file modes
Problems have been encountered because some of the source files have
execute permission set. This can cause git to report them as changed
when they are checked out onto a file system with inherited permissions.
This has been seen using Cygwin, MinGW and PowerShell Git.
This patch makes no change to source file content, and only aims to
correct the file modes/permissions.
Evan Lloyd [Tue, 2 Feb 2016 11:42:51 +0000 (11:42 +0000)]
EmbeddedPkg: Rectify file modes
Problems have been encountered because some of the source files have
execute permission set. This can cause git to report them as changed
when they are checked out onto a file system with inherited permissions.
This has been seen using Cygwin, MinGW and PowerShell Git.
This patch makes no change to source file content, and only aims to
correct the file modes/permissions.
Evan Lloyd [Tue, 2 Feb 2016 11:42:41 +0000 (11:42 +0000)]
BeagleBoardPkg: Rectify file modes
Problems have been encountered because some of the source files have
execute permission set. This can cause git to report them as changed
when they are checked out onto a file system with inherited permissions.
This has been seen using Cygwin, MinGW and PowerShell Git.
This patch makes no change to source file content, and only aims to
correct the file modes/permissions.
Evan Lloyd [Tue, 2 Feb 2016 11:42:31 +0000 (11:42 +0000)]
ArmPlatformPkg: Rectify file modes
Problems have been encountered because some of the source files have
execute permission set. This can cause git to report them as changed
when they are checked out onto a file system with inherited permissions.
This has been seen using Cygwin, MinGW and PowerShell Git.
This patch makes no change to source file content, and only aims to
correct the file modes/permissions.
Ruiyu Ni [Mon, 1 Feb 2016 03:01:39 +0000 (03:01 +0000)]
MdePkg: Add new enum EfiPlatformConfigurationActionUnsupportedGuid
Add new enum EfiPlatformConfigurationActionUnsupportedGuid to
EFI_PLATFORM_CONFIGURATION_ACTION to be used by Response() when
Query() returns a unsupported ParameterTypeGuid.
When SetTime() is called with EFI_UNSPECIFIED_TIMEZONE, the code
can optimally not create the private timezone variable because
absence of timezone variable indicates the timezone is unspecified.
Evan Lloyd [Sat, 30 Jan 2016 12:25:59 +0000 (12:25 +0000)]
ArmPkg: Rectify file modes
Problems have been encountered because some of the source files have
execute permission set. This can cause git to report them as changed
when they are checked out onto a file system with inherited permissions.
This has been seen using Cygwin, MinGW and PowerShell Git.
This patch makes no change to source file content, and only aims to
correct the file modes/permissions.
Michael Kinney [Fri, 29 Jan 2016 23:38:52 +0000 (23:38 +0000)]
QuarkPlatformPkg/PlatformInit: Clear memory based on TCG MOR request
If TCG Memory Overwrite Request is set, then clear all memory
available for use by an OS. An OS may optionally use embedded
SRAM in Quark SoC X1000, so the embedded SRAM should is cleared
too. TCG MOR requests are communicated through a UEFI variable.
This module reads UEFI variable to check state of MOR request.
Cc: Kelly Steele <kelly.steele@intel.com> Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Michael Kinney <michael.d.kinney@intel.com> Reviewed-by: Kelly Steele <kelly.steele@intel.com> Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19776 6f19259b-4bc3-4df7-8a09-765794883524
Star Zeng [Fri, 29 Jan 2016 09:26:49 +0000 (09:26 +0000)]
MdeModulePkg: Minor comments update to GetNextHighMonotonicCount()
Description of the GetNextHighMonotonicCount does not state that the counter
is incremented on calling this function. However, the example usage of this
API documented relies on this behavior.
UEFI 2.6 spec is to update description to match usage documented.
The high 32-bit value is nonvolatile and is increased by 1 whenever the system
resets whenever the low 32-bit count (returned by GetNextMonoticCount()) overflows.
->
The high 32-bit value is nonvolatile and is increased by 1 whenever the system
resets, whenever GetNextHighMonotonicCount() is called, or whenever the low
32-bit count (returned by GetNextMonoticCount()) overflows.
Star Zeng [Fri, 29 Jan 2016 09:15:53 +0000 (09:15 +0000)]
DuetPkg FSVariable: Minor update to the Data parameter for GetVariable()
UEFI 2.6 spec has minor update to the Data parameter for GetVariable(),
and no real functional behavior change.
The modifier of Data parameter:
OUT VOID *Data
->
OUT VOID *Data OPTIONAL
The comments of Data parameter:
Data The buffer to return the contents of the variable.
->
Data The buffer to return the contents of the variable. May be NULL
with a zero DataSize in order to determine the size buffer needed.
The patch is to follow the spec to update the implementation.
Star Zeng [Fri, 29 Jan 2016 09:15:43 +0000 (09:15 +0000)]
MdeModulePkg Variable: Minor update to the Data parameter for GetVariable()
UEFI 2.6 spec has minor update to the Data parameter for GetVariable(),
and no real functional behavior change.
The modifier of Data parameter:
OUT VOID *Data
->
OUT VOID *Data OPTIONAL
The comments of Data parameter:
Data The buffer to return the contents of the variable.
->
Data The buffer to return the contents of the variable. May be NULL
with a zero DataSize in order to determine the size buffer needed.
The patch is to follow the spec to update the implementation.
Star Zeng [Fri, 29 Jan 2016 09:15:33 +0000 (09:15 +0000)]
MdePkg: Minor update to the Data parameter for GetVariable()
UEFI 2.6 spec has minor update to the Data parameter for GetVariable(),
and no real functional behavior change.
The modifier of Data parameter:
OUT VOID *Data
->
OUT VOID *Data OPTIONAL
The comments of Data parameter:
Data The buffer to return the contents of the variable.
->
Data The buffer to return the contents of the variable. May be NULL
with a zero DataSize in order to determine the size buffer needed.
The patch is to follow the spec to update the definition.
Yonghong Zhu [Fri, 29 Jan 2016 04:48:55 +0000 (04:48 +0000)]
BaseTools:Incremental build not work if VPD values in DSC changed by -D
If a -D flag is passed into build that selects different lines in
[PcdsDynamicExVpd], then build does not see any changes to the timestamp
of the DSC file and the VPD tool is not used to regenerate the VPD
region based in the statements that are active. so we changed the detect
condition and use SaveFileOnChange function to generate VPD.
Michael Kinney [Fri, 29 Jan 2016 00:54:32 +0000 (00:54 +0000)]
QuarkPlatformPkg: Add Readme.md for QuarkPlatformPkg
Add a Readme.md for the QuarkPlatformPkg that describes how to
clone, build, boot, debug, and enable/disable features for the
Intel(R) Galileo Development Board and the Intel(R) Galileo Gen 2
Development Board.
Cc: Kelly Steele <kelly.steele@intel.com> Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Michael Kinney <michael.d.kinney@intel.com> Reviewed-by: Kelly Steele <kelly.steele@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19764 6f19259b-4bc3-4df7-8a09-765794883524
Laszlo Ersek [Thu, 28 Jan 2016 11:03:15 +0000 (11:03 +0000)]
MdeModulePkg: NvmExpressDxe: clean up NvmeRead() / NvmeWrite() debug msgs
These workhorse functions are part of the BlockIo protocol that
NvmExpressDxe produces. For bulk data access, they are called very
frequently. Their debug messages should be therefore downgraded to
EFI_D_VERBOSE.
In addition, the following DEBUG() warts are cleaned up:
- The function name should be printed with %a / __FUNCTION__, so that
renaming the function, or copying the DEBUG() elsewhere, be reflected in
the debug output automatically. (In fact, after this patch, the DEBUG()
calls become identical.)
- "Lba" is of type UINT64, therefore it should be printed with %Lx, not
%x.
- "OrginalBlocks" and "Blocks" are both UINTN. The only portable way to
print UINTN is to convert it to UINT64 manually, then format it with the
%Lx (or %Lu) conversion specifier.
Zhang Lubo [Thu, 28 Jan 2016 02:32:43 +0000 (02:32 +0000)]
NetworkPkg:Fix Network memory leak when calling GetModeData interface
Multiple network protocols have a GetModeData() interface, which may
allocate memory resource in the return mode data structure. It's
callers responsibility to free these buffers.
Yao, Jiewen [Wed, 27 Jan 2016 12:16:47 +0000 (12:16 +0000)]
SecurityPkg: Correct data copy in Tpm2NvReadPublic.
1) NvPublic.dataSize data should be got from original
receive buffer, instead of returned NvPublic.
2) NvNameSize means the size of NvName without size field.
The original code treats it to be size of NvName with size
field, so the last 2 bytes are missing.
Yao, Jiewen [Wed, 27 Jan 2016 12:15:59 +0000 (12:15 +0000)]
SecurityPkg: Add TPM PTP detection in Tpm12SubmitCommand.
Previously, we only add PTP detection in Tpm12RequestUseTpm,
because RequestUseTpm does not check TPM command.
This patch also adds similar check in Tpm12SubmitCommand.
PTP device does not accept TPM12 command, so that it can
return error on PTP device, instead of wait till timeout.
Star Zeng [Wed, 27 Jan 2016 10:15:15 +0000 (10:15 +0000)]
MdeModulePkg DxeCore: Avoid the closed event to be signaled wrongly
Signal a closed event will still invoke the event notification function,
it could only be exposed when no the DEBUG_PROPERTY_CLEAR_MEMORY_ENABLED
bit set in PcdDebugPropertyMask.
For example:
gBS->CreateEvent (
EVT_NOTIFY_SIGNAL,
TPL_CALLBACK,
CallbackFun,
NULL,
&Event
);
gBS->CloseEvent (Event);
gBS->SignalEvent (Event); <- CallbackFun still be invoked
Although the case to signal a closed event is abnormal, the code could
still be enhanced to avoid it.
Dandan Bi [Wed, 27 Jan 2016 02:35:36 +0000 (02:35 +0000)]
MdeModulePkg:Restore the HiiValue for string opcode
String opcode has HiiValue and BufferValue,BufferValue for string content,
HiiValue for StringId.Function GetQuestionValue only update the
BufferValue(string content),but the StringId and string content
do not match,now fix this issue.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Dandan Bi <dandan.bi@intel.com> Reviewed-by: Eric Dong <eric.dong@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19750 6f19259b-4bc3-4df7-8a09-765794883524
Dandan Bi [Tue, 26 Jan 2016 09:42:58 +0000 (09:42 +0000)]
MdeModulePkg:Make the logic in ConfigRouting.c clear and safe
The BlockData is expected to be NULL when to call function
IsThisOpcodeRequired in each opcode,but now exists case that the
Blockdata not be cleaned,then will be used in other opcode.it
is not correct,now add the check before use.
The comments and logic in function IsThisOpcodeRequired are not
consistent,now refine the code to make the logic clear.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Dandan Bi <dandan.bi@intel.com> Reviewed-by: Eric Dong <eric.dong@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19749 6f19259b-4bc3-4df7-8a09-765794883524
Karyne Mayer [Tue, 26 Jan 2016 08:51:13 +0000 (08:51 +0000)]
CryptoPkg: Fix function qsort for non 32-bit machines
Although the function qsort receives as an argument a "compare" function
which returns an "int", QuickSortWorker (the function used internally by
qsort to do its job) receives as an argument a "CompareFunction" which
returns an "INTN". In a 32-bit machine, "INTN" is defined as "INT32",
which is defined as "int" and everything works well. However, when qsort
is compiled for a 64-bit machine, "INTN" is defined as "INT64" and the
return values of the compare functions become incompatible ("int" for
qsort and "INT64" for QuickSortWorker), causing malfunction.
For example, let's assume qsort is being compiled for a 64-bit machine.
As stated before, the "compare" function will be returning an "int",
and "CompareFunction" will be returning an "INT64". When, for example,
the "compare" function (which was passed as an argument to qsort and,
then, re-passed as an argument to QuickSortWorker) returns -1 (or
0xffffffff, in a 32-bit integer, its original return type) from inside
a call to QuickSortWorker, its return value is interpreted as being an
"INT64" value - which turns out to be 4294967295 (or 0x00000000ffffffff,
in a 64-bit integer) -, making the function QuickSortWorker to behave
unexpectedly.
Note that this unexpected (or incorrect) conversion does not happen when
casting an "INT32" to an "INT64" directly, but does happen when casting
function types.
The issue is fixed by changing the return type of SORT_COMPARE (the type
of "CompareFunction", used by QuickSortWorker) from "INTN" to "int".
This way, both qsort and QuickSortWorker use compatible definitions for
their compare functions.
Contributed-under: TianoCore Contribution Agreement 1.0 Acked-by: Paulo Alcantara Cavalcanti <paulo.alc.cavalcanti@hp.com> Signed-off-by: Karyne Mayer <kmayer@hp.com> Signed-off-by: Rodrigo Dias Correa <rodrigo.dia.correa@hp.com> Signed-off-by: Arthur Crippa Burigo <acb@hp.com> Reviewed-by: Qin Long <qin.long@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19748 6f19259b-4bc3-4df7-8a09-765794883524
Qiu Shumin [Tue, 26 Jan 2016 08:17:19 +0000 (08:17 +0000)]
ShellPkg: Refine the code to avoid use a constant number as offset.
Refine the code to use 'sizeof(EFI_LOAD_OPTION)' as offset in buffer to get 'description' instead of using a constant number.
This change makes the code more readable.
Yao, Jiewen [Tue, 26 Jan 2016 01:30:55 +0000 (01:30 +0000)]
SecurityPkg: Add TPM PTP support in TCG2 Config.
This patch add PTP CRB support in BIOS Setup.
It can:
1) Display the PTP capability (TIS/FIFO/CRB)
2) Display the PTP current interface (TIS/FIFO/CRB)
3) Let user select CRB/FIFO, if supported.
Yao, Jiewen [Tue, 26 Jan 2016 01:30:35 +0000 (01:30 +0000)]
SecurityPkg: Add TPM PTP detection in TPM12 device lib.
The TPM RequestUseTpm API can only set register to
use the hardware, but it can not be used to distinguish
TPM12 or TPM2 device.
TPM PTP defines same address with TIS, so we need
detect the TPM device is PTP or TIS in RequestUseTpm.
Also, Tcg2Config driver call RequestUseTpm to detect
TPM hardware device. So we have to add check here.
There is no need to support PTP CRB style SubmitCommand(),
because TPM2 device can not accept TPM12 style command.
This patch also uses TpmTis.h instead of duplicate
definition.
Yao, Jiewen [Tue, 26 Jan 2016 01:30:17 +0000 (01:30 +0000)]
SecurityPkg: Add TPM PTP support in TCG2 SMM.
TPM2 hardware may support PTP FIFO/TIS interface
or PTP CRB interface. The original ACPI table only
handles PTP FIFO/TIS interface. This patch adds
PTP CRB interface support.
The current logic is that SMM driver will runtime
detect TPM device interface (CRB or FIFO/TIS) and
publish TPM2 table based on result.
It is compatible for old TPM2 FIFO/TIS device and
new TPM2 CRB device.
Yao, Jiewen [Tue, 26 Jan 2016 01:29:38 +0000 (01:29 +0000)]
SecurityPkg: Add TPM PTP support in TPM2 device lib.
TPM2 hardware may support PTP FIFO/TIS interface
or PTP CRB interface. The original lib only handles
PTP FIFO/TIS interface. This patch adds PTP CRB
interface support.
The current logic is that lib will runtime detect
TPM device interface (CRB or FIFO/TIS) and call
proper function to access hardware.
It is compatible for old TPM2 FIFO/TIS device and
new TPM2 CRB device.
Paolo Bonzini [Mon, 25 Jan 2016 11:33:37 +0000 (11:33 +0000)]
MdeModulePkg/.../IdeMode: correctly report length of returned data
For some SCSI commands, notably INQUIRY, it's relatively common for
the device to provide less data than we intended to read, and for
this reason EFI_EXT_SCSI_PASS_THRU_SCSI_REQUEST_PACKET makes
InTransferLength and OutTransferLength read-write. Make ATAPI
aware of this.
This makes it possible to handle EFI_NOT_READY always, not just
for read as done in r19685.
I've chosen to use a break statement instead of calling
CheckStatusRegister directly; the break statement reaches a
pre-existing call the CheckStatusRegister function. This
ensures that the assignment to *ByteCount is not missed, and
adds a further sanity check to DRQClear.
Add MEASURED_BOOT_ENABLE flag
Add TPM_12_HARDWARE flag
Add TrEEConfigPei to detect TPM 1.2 hardware device
Use Tpm12DeviceLib instance for Atmel I2C TPM
Use Tpm12DeviceLib instance for Infineon I2C TPM
Add TcgPei and TcgDxe modules for TPM 1.2 support
Clean up TpmMeasurementLib mappings
Cc: Kelly Steele <kelly.steele@intel.com> Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Michael Kinney <michael.d.kinney@intel.com> Reviewed-by: Kelly Steele <kelly.steele@intel.com> Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19732 6f19259b-4bc3-4df7-8a09-765794883524
Michael Kinney [Thu, 21 Jan 2016 19:30:21 +0000 (19:30 +0000)]
SecurityPkg/TcgDxe: Use updated Tpm12CommandLib APIs
Use the following new APIs in Tpm12CommandLib and remove duplicate
code from TcgPei and TcgDxe:
Tpm12Extend()
Tpm12PhysicalPresence()
Tpm12ContinueSelfTest()
Tpm12GetCapabilityFlagPermanent()
Tpm12GetCapabilityFlagVolatile()
Cc: Chao Zhang <chao.b.zhang@intel.com> Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Michael Kinney <michael.d.kinney@intel.com> Reviewed-by: Chao Zhang <chao.b.zhang@intel.com> Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19729 6f19259b-4bc3-4df7-8a09-765794883524
Michael Kinney [Thu, 21 Jan 2016 19:30:14 +0000 (19:30 +0000)]
SecurityPkg/TcgPei: Use updated Tpm12CommandLib APIs
Use the following new APIs in Tpm12CommandLib and remove duplicate
code from TcgPei and TcgDxe:
Tpm12Extend()
Tpm12PhysicalPresence()
Tpm12ContinueSelfTest()
Tpm12GetCapabilityFlagPermanent()
Tpm12GetCapabilityFlagVolatile()
Cc: Chao Zhang <chao.b.zhang@intel.com> Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Michael Kinney <michael.d.kinney@intel.com> Reviewed-by: Chao Zhang <chao.b.zhang@intel.com> Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19728 6f19259b-4bc3-4df7-8a09-765794883524
Michael Kinney [Thu, 21 Jan 2016 19:30:05 +0000 (19:30 +0000)]
SecurityPkg/Tpm12CommandLib: Add TPM 1.2 commands used by TCG modules
Add the following APIs that are required by TcgPei and/or TcgDxe to
the Tpm12CommandLib instance:
Tpm12Extend()
Tpm12PhysicalPresence()
Tpm12ContinueSelfTest()
Tpm12GetCapabilityFlagPermanent()
Tpm12GetCapabilityFlagVolatile()
Cc: Chao Zhang <chao.b.zhang@intel.com> Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Michael Kinney <michael.d.kinney@intel.com> Reviewed-by: Chao Zhang <chao.b.zhang@intel.com> Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19727 6f19259b-4bc3-4df7-8a09-765794883524
Michael Kinney [Thu, 21 Jan 2016 19:29:56 +0000 (19:29 +0000)]
SecurityPkg/Tpm12CommandLib.h: Add TPM 1.2 commands used by TCG modules
Add the following APIs that are required by TcgPei and/or TcgDxe:
Tpm12Extend()
Tpm12PhysicalPresence()
Tpm12ContinueSelfTest()
Tpm12GetCapabilityFlagPermanent()
Tpm12GetCapabilityFlagVolatile()
Cc: Chao Zhang <chao.b.zhang@intel.com> Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Michael Kinney <michael.d.kinney@intel.com> Reviewed-by: Chao Zhang <chao.b.zhang@intel.com> Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19726 6f19259b-4bc3-4df7-8a09-765794883524
Michael Kinney [Thu, 21 Jan 2016 19:29:50 +0000 (19:29 +0000)]
SecurityPkg/Tcg2Config: Remove use of IoLib
Remove the use of the IoLib and Mmioxx() calls to detect dTPM.
This module calls the Tpm12DeviceLib to detect a TPM and the
implementation of the Tpm12DeviceLib for dTPM performs the same
Mmioxx() calls to detect a dTPM. This change makes this module
more generic and portable by maximizing the use of the Tpm12DeviceLib
abstraction for TPM detection.
Cc: Chao Zhang <chao.b.zhang@intel.com> Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Michael Kinney <michael.d.kinney@intel.com> Reviewed-by: Chao Zhang <chao.b.zhang@intel.com> Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19725 6f19259b-4bc3-4df7-8a09-765794883524
Michael Kinney [Thu, 21 Jan 2016 19:29:43 +0000 (19:29 +0000)]
SecurityPkg/TrEEConfig: Remove use of IoLib
Remove the use of the IoLib and Mmioxx() calls to detect dTPM.
This module calls the Tpm12DeviceLib to detect a TPM and the
implementation of the Tpm12DeviceLib for dTPM performs the same
Mmioxx() calls to detect a dTPM. This change makes this module
more generic and portable by maximizing the use of the Tpm12DeviceLib
abstraction for TPM detection.
Cc: Chao Zhang <chao.b.zhang@intel.com> Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Michael Kinney <michael.d.kinney@intel.com> Reviewed-by: Chao Zhang <chao.b.zhang@intel.com> Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19724 6f19259b-4bc3-4df7-8a09-765794883524
Michael Kinney [Thu, 21 Jan 2016 19:29:35 +0000 (19:29 +0000)]
SecurityPkg/TcgConfigDxe: Replace TpmCommLib with Tpm12DeviceLib
Update TCG drivers for TPM 1.2 devices to use Tpm12DeviceLib instead
of TpmCommLib. This is required to support TPM 1.2 hardware devices
that are not on LPC bus.
Cc: Chao Zhang <chao.b.zhang@intel.com> Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Michael Kinney <michael.d.kinney@intel.com> Reviewed-by: Chao Zhang <chao.b.zhang@intel.com> Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19723 6f19259b-4bc3-4df7-8a09-765794883524
Michael Kinney [Thu, 21 Jan 2016 19:29:28 +0000 (19:29 +0000)]
SecurityPkg/TcgDxe: Replace TpmCommLib with Tpm12DeviceLib
Update TCG drivers for TPM 1.2 devices to use Tpm12DeviceLib instead
of TpmCommLib. This is required to support TPM 1.2 hardware devices
that are not on LPC bus.
The current versions of the TCG PEIM and DXE driver contain
MMIO reads/writes to a TPM attached to an LPC bus. In order
to support TPMs that are connected to other bus types, the
TGC PEIM and DXE drivers must be updated to not perform any
direct register accesses to any TPMs.
Cc: Chao Zhang <chao.b.zhang@intel.com> Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Michael Kinney <michael.d.kinney@intel.com> Reviewed-by: Chao Zhang <chao.b.zhang@intel.com> Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19722 6f19259b-4bc3-4df7-8a09-765794883524
Michael Kinney [Thu, 21 Jan 2016 19:29:19 +0000 (19:29 +0000)]
SecurityPkg/TcgPei: Replace TpmCommLib with Tpm12DeviceLib
Update TCG drivers for TPM 1.2 devices to use Tpm12DeviceLib instead
of TpmCommLib. This is required to support TPM 1.2 hardware devices
that are not on LPC bus.
The current versions of the TCG PEIM and DXE driver contain
MMIO reads/writes to a TPM attached to an LPC bus. In order
to support TPMs that are connected to other bus types, the
TGC PEIM and DXE drivers must be updated to not perform any
direct register accesses to any TPMs.
Cc: Chao Zhang <chao.b.zhang@intel.com> Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Michael Kinney <michael.d.kinney@intel.com> Reviewed-by: Chao Zhang <chao.b.zhang@intel.com> Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19721 6f19259b-4bc3-4df7-8a09-765794883524
Laszlo Ersek [Thu, 21 Jan 2016 18:40:40 +0000 (18:40 +0000)]
ShellPkg: elevate DumpHex() from Debug1-internal to generic-internal
The UEFI Shell specification classifies shell commands into various shell
levels / profiles.
Currently the DumpHex() internal function is only used by commands that
belong to the Debug1 profile exclusively (i.e., they are not required to
be present in other than Debug1 profiles):
- SMBIOSVIEW
- PCI
- DMPSTORE
- DMEM
- DBLK
In the next patch, we'd like to call DumpHex() from BCFG as well. However,
BCFG is not only required to be present in the Debug1 profile; the
Install1 profile contains BCFG as well. For this reason, move DumpHex()
from UefiShellDebug1CommandsLib to the more generic UefiShellCommandLib,
which "Provides interface to shell internal functions for shell commands".
The matching header file is "ShellPkg/Include/Library/ShellCommandLib.h".
Laszlo Ersek [Thu, 21 Jan 2016 18:40:35 +0000 (18:40 +0000)]
ShellPkg: BcfgDisplayDump(): fix ShellPrintEx() call site
This is likely a copy & paste error from the preceding ShellPrintHiiEx()
function call. ShellPrintEx() takes no Language parameter, so remove the
NULL argument, which is currently misinterpreted as a format string.
This bug prevents the hexdump of optional data even when -v is passed to
BCFG, and optional data exist.
Copying and releasing each EFI_LOAD_OPTION.FilePathList under the name
DevPath is wasteful -- we only need FilePathList for a single conversion
to text. Do it directly from the EFI_LOAD_OPTION object.
This patch is not supposed to change observable behavior.
Laszlo Ersek [Thu, 21 Jan 2016 18:40:13 +0000 (18:40 +0000)]
ShellPkg: BcfgDisplayDump(): address FilePathListLength by name
The Buffer variable points at the beginning of an EFI_LOAD_OPTION
structure. We might as well address the "FilePathListLength" member by
name, rather than with *(UINT16*)(Buffer+4).
Laszlo Ersek [Thu, 21 Jan 2016 18:40:09 +0000 (18:40 +0000)]
ShellPkg: BcfgDisplayDump(): enforce minimum size for Boot#### and co.
"3.1.1 Boot Manager Programming" in the UEFI 2.5 spec mandates that
Boot#### and similar options contain EFI_LOAD_OPTION structures. The
EFI_LOAD_OPTION structure encodes the fixed initial part of the payload,
and we can (and should) use it to enforce a minimum size for variable
contents.
Laszlo Ersek [Thu, 21 Jan 2016 18:40:05 +0000 (18:40 +0000)]
ShellPkg: BcfgDisplayDump(): accumulate errors
Don't exit the command immediately when a variable access fails; continue
processing after printing the error message. Let the final return status
reflect any encountered errors.
This patch is intended as a functional improvement.