Go to file
Hao Wu a3efbc29c4 SecurityPkg/OpalPassword: Remove HW init codes and consume SSC PPI
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=1409

For the current implementation of OpalPassword drivers, it has a feature
to support devices being automatically unlocked in the S3 resume. For this
feature, two types of devices are supported:

* ATA hard disks working under AHCI mode
* NVM Express devices

The support of this feature requires the above 2 types of device to be
initialized at the PEI phase during S3 resume, which is done by the
co-work of the OpalPasswordDxe driver and the OpalPasswordPei driver.

More specifically, the OpalPasswordDxe will handle:

* Pre-allocate MMIO resource and save it in a driver internal LockBox for
  OpalPasswordPei to retrieve;
* Save the PCI configuration space of ATA controllers into boot script.

Meanwhile, the OpalPasswordPei will handle:

* Rely on the boot script for the PCI configuration space program of ATA
  controllers;
* Restore the driver internal LockBox to get the MMIO resource;
* Complete the PCI configuration space program for ATA and NVME
  controllers;
* Initialize ATA and NVME controllers and devices.

This commit will remove these hardware initialization related codes from
the OpalPassword drivers. The hardware initialization will be covered by
PEI storage device drivers (e.g. NvmExpressPei & AhciPei in the
MdeModulePkg).

After such codes removal, the OpalPasswordDxe will only handle:

* Construct/update the S3StorageDeviceInitList LockBox with the managing
  ATA and NVME devices.

And the OpalPasswordPei will only handle:

* Locate Storage Security Command PPI instances to perform the device
  automatic unlock during the S3 resume.

Cc: Chao Zhang <chao.b.zhang@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
2019-02-22 08:20:08 +08:00
AppPkg AppPkg: fix webserver build for !Ia32/X64 2019-02-04 17:07:47 +00:00
ArmPkg ArmPkg/ArmMmuLib AARCH64: get rid of needless TLB invalidation 2019-01-29 11:24:02 +01:00
ArmPlatformPkg ArmPlatformPkg/PL011SerialPortLib: use untyped PCD for register base 2018-12-20 18:34:08 +01:00
ArmVirtPkg ArmVirtPkg/ArmVirtXen: don't set Pcd*ImageVerificationPolicy 2019-02-13 07:10:26 +01:00
BaseTools BaseTools:PCD value error in structure pcd sku case. 2019-02-20 13:16:58 +08:00
BeagleBoardPkg BeagleBoardPkg: Use merged variable driver for emulated NV mode 2019-01-24 10:52:40 +08:00
Conf EDK II: Add .gitignore 2014-10-14 16:08:15 +00:00
CorebootModulePkg CorebootModulePkg: Fix various typos 2019-02-12 10:48:39 +08:00
CorebootPayloadPkg CorebootPayloadPkg: Fix various typos 2019-02-12 10:28:46 +08:00
CryptoPkg CryptoPkg: Fix various typos 2019-02-11 11:09:44 +08:00
DynamicTablesPkg DynamicTablesPkg: Arm IORT Table Generator 2019-02-19 10:37:31 +00:00
EdkCompatibilityPkg EdkCompatibilityPkg: Removing ipf from edk2. 2018-09-25 23:43:46 +08:00
EmbeddedPkg EmbeddedPkg/Library: Add VirtualRealTimeClockLib 2019-02-15 11:07:08 +01:00
EmulatorPkg EmulatorPkg: require GCC48 or later 2019-01-08 02:34:05 +01:00
FatPkg FatPkg/FatPei/Gpt.c: Fix uninitialized variable issue 2019-02-02 21:41:15 +08:00
FmpDevicePkg FmpDevicePkg DSC: Add NOOPT target to verify NOOPT target 2018-10-31 22:08:10 +08:00
IntelFrameworkModulePkg IntelFrameworkModulePkg: fix build for AARCH64/ARM 2019-02-04 17:08:30 +00:00
IntelFrameworkPkg IntelFrameworkPkg: fix build for AARCH64/ARM 2019-02-04 17:09:11 +00:00
IntelFsp2Pkg IntelFsp2Pkg: FSP can utilize bootloader stack 2019-01-28 15:49:13 +08:00
IntelFsp2WrapperPkg IntelFsp2WrapperPkg: Fix constant if statements issue 2018-11-26 11:40:38 +08:00
IntelFspPkg edk2: Move License.txt file to root 2017-08-03 11:02:17 -07:00
IntelFspWrapperPkg edk2: Move License.txt file to root 2017-08-03 11:02:17 -07:00
IntelSiliconPkg IntelSiliconPkg/MicrocodeUpdateDxe: Error message enhancement 2019-02-20 11:21:37 +08:00
MdeModulePkg MdeModulePkg/SmmLockBoxLib: Support LockBox enlarge in UpdateLockBox() 2019-02-22 08:20:08 +08:00
MdePkg MdePkg/UefiDevicePathLibDevicePathProtocol: Add sanity check for FilePath device path 2019-02-21 20:54:31 +08:00
NetworkPkg NetworkPkg/Ip6Dxe: Clean the invalid IPv6 configuration during driver start. 2019-02-19 08:31:15 +08:00
Nt32Pkg Nt32Pkg: Remove EdkShellBinPkg in FDF and DEC 2018-11-19 10:50:15 +08:00
Omap35xxPkg Omap35xxPkg: Removing ipf which is no longer supported from edk2. 2018-06-29 16:19:46 +08:00
OptionRomPkg OptionRomPkg/ReadMe.txt: Remove VS2005 2019-02-14 15:40:26 +08:00
OvmfPkg OvmfPkg/LockBoxLib: Update the comments for API UpdateLockBox() 2019-02-22 08:20:08 +08:00
PcAtChipsetPkg PcAtChipsetPkg PcRtc: Use new EfiLocateFirstAcpiTable() 2018-09-27 14:25:35 +08:00
QuarkPlatformPkg QuarkMin: Use merged variable driver for emulated NV mode 2019-01-24 10:52:40 +08:00
QuarkSocPkg QuarkSocPkg: Removing ipf which is no longer supported from edk2. 2018-08-14 08:58:32 +08:00
SecurityPkg SecurityPkg/OpalPassword: Remove HW init codes and consume SSC PPI 2019-02-22 08:20:08 +08:00
ShellBinPkg ShellBinPkg: Clean up source files 2018-06-28 11:19:51 +08:00
ShellPkg ShellPkg/UefiShellLib: Use BaseLib api CharToUpper 2019-01-31 20:19:20 +08:00
SignedCapsulePkg SignedCapsulePkg: enable package build for AARCH64/ARM 2019-02-04 17:09:17 +00:00
SourceLevelDebugPkg SourceLevelDebugPkg/Readme.txt: Update UDK Debugger Tool & manual URL 2018-11-08 12:00:34 +08:00
StandaloneMmPkg StandaloneMmPkg/StandaloneMmCoreEntryPoint: permit the use of TE images 2019-01-21 14:43:12 +01:00
StdLib StdLib/Environs: Avoid infinite recursion in _Exit 2019-01-02 11:26:21 -08:00
StdLibPrivateInternalFiles StdLibPrivateInternalFiles: Removing ipf from edk2. 2018-06-29 16:19:51 +08:00
UefiCpuPkg UefiCpuPkg/Microcode: Fix incorrect checksum issue for extended table 2019-02-21 16:16:56 +08:00
Vlv2DeviceRefCodePkg edk2: Move License.txt file to root 2017-08-03 11:02:17 -07:00
Vlv2TbltDevicePkg Vlv2TbltDevicePkg: add MmServicesTableLib resolution 2019-01-16 20:10:51 +01:00
.gitignore edk2: Add .DS_Store to .gitignore for macOS 2017-05-19 15:14:34 -07:00
.gitmodules CryptoPkg: Adding OpenSSL as one submodule of EDKII repo 2018-01-18 14:06:15 +08:00
BuildNotes2.txt BaseTools: Various typo 2019-02-14 10:02:28 +08:00
Contributions.txt BaseTools: Various typo 2019-02-14 10:02:28 +08:00
edksetup.bat BaseTools: Various typo 2019-02-14 10:02:28 +08:00
edksetup.sh BaseTools: Update PYTHON env to PYTHON_COMMAND 2019-02-01 11:09:23 +08:00
License.txt edk2: Move License.txt file to root 2017-08-03 11:02:17 -07:00
Maintainers.txt Maintainers: specify the scope for OvmfPkg/ArmVirtPkg Xen module reviewers 2019-02-21 20:40:27 +01:00
Readme.md Readme.md: Add edk2 release tag and edk2 release plan 2018-12-20 23:31:47 +08:00

EDK II Project

A modern, feature-rich, cross-platform firmware development environment for the UEFI and PI specifications from www.uefi.org.

Contributions to the EDK II open source project are covered by the TianoCore Contribution Agreement 1.1

The majority of the content in the EDK II open source project uses a BSD 2-Clause License. The EDK II open source project contains the following components that are covered by additional licenses:

The EDK II Project is composed of packages. The maintainers for each package are listed in Maintainers.txt.

Resources