summaryrefslogtreecommitdiffstats
path: root/SignedCapsulePkg
diff options
context:
space:
mode:
authorJiewen Yao <jiewen.yao@intel.com>2016-09-21 09:37:01 +0800
committerJiewen Yao <jiewen.yao@intel.com>2016-11-08 22:40:52 +0800
commit615c14b6f8f7ac30c36377f7646551f009a07fed (patch)
tree77848a8e9451fb7593fbc7f281806a4b458c0933 /SignedCapsulePkg
parent034e881eae6ca8211fc397db2440666f8dc6a338 (diff)
downloadedk2-615c14b6f8f7ac30c36377f7646551f009a07fed.tar.gz
edk2-615c14b6f8f7ac30c36377f7646551f009a07fed.tar.bz2
edk2-615c14b6f8f7ac30c36377f7646551f009a07fed.zip
SignedCapsulePkg/Include: Add PlatformFlashAccessLib header.
This library is used to abstract platform flash access. This library is consumed by a capsule update module. It may cover SystemFirmware region and/or non-SystemFirmware region. Cc: Feng Tian <feng.tian@intel.com> Cc: Star Zeng <star.zeng@intel.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Chao Zhang <chao.b.zhang@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jiewen Yao <jiewen.yao@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> Reviewed-by: Michael Kinney <michael.d.kinney@intel.com> Tested-by: Michael Kinney <michael.d.kinney@intel.com>
Diffstat (limited to 'SignedCapsulePkg')
-rw-r--r--SignedCapsulePkg/Include/Library/PlatformFlashAccessLib.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/SignedCapsulePkg/Include/Library/PlatformFlashAccessLib.h b/SignedCapsulePkg/Include/Library/PlatformFlashAccessLib.h
new file mode 100644
index 0000000000..0a8858e4c4
--- /dev/null
+++ b/SignedCapsulePkg/Include/Library/PlatformFlashAccessLib.h
@@ -0,0 +1,57 @@
+/** @file
+ Platform flash device access library.
+
+ Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
+ This program and the accompanying materials
+ are licensed and made available under the terms and conditions of the BSD License
+ which accompanies this distribution. The full text of the license may be found at
+ http://opensource.org/licenses/bsd-license.php
+
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+**/
+
+
+#ifndef __PLATFORM_FLASH_ACCESS_LIB_H__
+#define __PLATFORM_FLASH_ACCESS_LIB_H__
+
+typedef enum {
+ FlashAddressTypeRelativeAddress,
+ FlashAddressTypeAbsoluteAddress,
+} FLASH_ADDRESS_TYPE;
+
+//
+// Type 0 ~ 0x7FFFFFFF is defined in this library.
+// Type 0x80000000 ~ 0xFFFFFFFF is reserved for OEM.
+//
+typedef enum {
+ PlatformFirmwareTypeSystemFirmware,
+ PlatformFirmwareTypeNvRam,
+} PLATFORM_FIRMWARE_TYPE;
+
+/**
+ Perform flash write opreation.
+
+ @param[in] FirmwareType The type of firmware.
+ @param[in] FlashAddress The address of flash device to be accessed.
+ @param[in] FlashAddressType The type of flash device address.
+ @param[in] Buffer The pointer to the data buffer.
+ @param[in] Length The length of data buffer in bytes.
+
+ @retval EFI_SUCCESS The operation returns successfully.
+ @retval EFI_WRITE_PROTECTED The flash device is read only.
+ @retval EFI_UNSUPPORTED The flash device access is unsupported.
+ @retval EFI_INVALID_PARAMETER The input parameter is not valid.
+**/
+EFI_STATUS
+EFIAPI
+PerformFlashWrite (
+ IN PLATFORM_FIRMWARE_TYPE FirmwareType,
+ IN EFI_PHYSICAL_ADDRESS FlashAddress,
+ IN FLASH_ADDRESS_TYPE FlashAddressType,
+ IN VOID *Buffer,
+ IN UINTN Length
+ );
+
+#endif