FmpDevicePkg/FmpDxe: Add PcdFmpDeviceStorageAccessEnable

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

Add PCD PcdFmpDeviceStorageAccessEnable.  If this PCD is
TRUE, then the Firmware Management Protocol supports access
to the firmware storage device.  This is the default setting.
If FALSE, then Firmware Management Protocol services that
access the firmware storage device return EFI_UNSUPPORTED
except GetImageInfo().  Setting this value to FALSE produces
the smallest possible FmpDxe driver that still advertises the
updatable firmware component in the ESRT.

Cc: Sean Brogan <sean.brogan@microsoft.com>
Cc: Bret Barkelew <Bret.Barkelew@microsoft.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
Reviewed-by: Eric Jin <eric.jin@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
Eric Jin
2019-07-26 15:45:19 +08:00
committed by Liming Gao
parent 278c3d48a7
commit 11d354945c
6 changed files with 54 additions and 0 deletions

View File

@@ -541,6 +541,10 @@ GetTheImage (
FIRMWARE_MANAGEMENT_PRIVATE_DATA *Private;
UINTN Size;
if (!FeaturePcdGet (PcdFmpDeviceStorageAccessEnable)) {
return EFI_UNSUPPORTED;
}
Status = EFI_SUCCESS;
//
@@ -715,6 +719,10 @@ CheckTheImage (
FmpHeaderSize = 0;
AllHeaderSize = 0;
if (!FeaturePcdGet (PcdFmpDeviceStorageAccessEnable)) {
return EFI_UNSUPPORTED;
}
//
// Retrieve the private context structure
//
@@ -970,6 +978,10 @@ SetTheImage (
IncommingFwVersion = 0;
LastAttemptStatus = LAST_ATTEMPT_STATUS_ERROR_UNSUCCESSFUL;
if (!FeaturePcdGet (PcdFmpDeviceStorageAccessEnable)) {
return EFI_UNSUPPORTED;
}
//
// Retrieve the private context structure
//