summaryrefslogtreecommitdiffstats
path: root/FmpDevicePkg/Include
diff options
context:
space:
mode:
authorMichael Kubacki <michael.kubacki@microsoft.com>2020-10-20 07:59:35 +0800
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2020-10-28 06:05:52 +0000
commit2c1e9f1dc5efda0787d059cc1d5534a6c4409503 (patch)
tree861e110e14f5813668bd3da9bb81e6c5c8d69019 /FmpDevicePkg/Include
parentda29cc0e98c2b91af1c0c9e41f8a386e2ae91000 (diff)
downloadedk2-2c1e9f1dc5efda0787d059cc1d5534a6c4409503.tar.gz
edk2-2c1e9f1dc5efda0787d059cc1d5534a6c4409503.tar.bz2
edk2-2c1e9f1dc5efda0787d059cc1d5534a6c4409503.zip
FmpDevicePkg: Add Last Attempt Status header files
Introduces a public and a private header file to define more granular usage of the UEFI Specification defined unsuccessful vendor range for Last Attempt Status codes. The unsuccessful vendor range is described in UEFI Specification 2.8A section 23.4. The public header file Include/LastAttemptStatus.h defines ranges within the unsuccessful vendor range. At a high-level, the two main ranges are defined are the FMP Reserved range and the Device Library Reserved range. The FMP Reserved range is reserved for usage of components within FmpDevicePkg. PrivateInclude/FmpLastAttemptStatus.h contains usage details and specific Last Attempt Status code definitions. The Device Library Reserved range is reserved for usage by FmpDeviceLib instances. Each library may define custom Last Attempt Status codes within the bounds defined in Include/LastAttemptStatus.h: [LAST_ATTEMPT_STATUS_DEVICE_LIBRARY_MIN_ERROR_CODE_VALUE, LAST_ATTEMPT_STATUS_DEVICE_LIBRARY_MAX_ERROR_CODE_VALUE] Cc: Liming Gao <gaoliming@byosoft.com.cn> Cc: Michael D Kinney <michael.d.kinney@intel.com> Cc: Guomin Jiang <guomin.jiang@intel.com> Cc: Wei6 Xu <wei6.xu@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Acked-by: Liming Gao <gaoliming@byosoft.com.cn> Reviewed-by: Wei6 Xu <wei6.xu@intel.com> Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com>
Diffstat (limited to 'FmpDevicePkg/Include')
-rw-r--r--FmpDevicePkg/Include/LastAttemptStatus.h81
1 files changed, 81 insertions, 0 deletions
diff --git a/FmpDevicePkg/Include/LastAttemptStatus.h b/FmpDevicePkg/Include/LastAttemptStatus.h
new file mode 100644
index 0000000000..0dcd1ef716
--- /dev/null
+++ b/FmpDevicePkg/Include/LastAttemptStatus.h
@@ -0,0 +1,81 @@
+/** @file
+ Defines last attempt status code ranges within the UEFI Specification
+ defined unsuccessful vendor range.
+
+ Copyright (c) Microsoft Corporation.<BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#ifndef __LAST_ATTEMPT_STATUS_H__
+#define __LAST_ATTEMPT_STATUS_H__
+
+///
+/// Last Attempt Status Unsuccessful Vendor Range Map
+///
+/// Update this map any time new ranges are added. Pre-existing range definitions cannot be modified
+/// to keep status code definitions consistent over time.
+///
+/// START | END | Usage
+/// ------------------------------------------------------------------|
+/// 0x1000 | 0x17FF | FmpDevicePkg |
+/// 0x1000 | 0x107F | FmpDxe driver |
+/// 0x1080 | 0x109F | FmpDependencyLib |
+/// 0x10A0 | 0x10BF | FmpDependencyCheckLib |
+/// 0x10C0 | 0x17FF | Unused. Available for future expansion. |
+/// 0x1800 | 0x1FFF | FmpDeviceLib instances implementation |
+/// 0x2000 | 0x3FFF | Unused. Available for future expansion. |
+///
+
+///
+/// The minimum value of the FMP reserved range.
+///
+#define LAST_ATTEMPT_STATUS_FMP_RESERVED_MIN_ERROR_CODE_VALUE 0x1000
+
+///
+/// The maximum value of the FMP reserved range.
+///
+#define LAST_ATTEMPT_STATUS_FMP_RESERVED_MAX_ERROR_CODE_VALUE 0x1FFF
+
+///
+/// The minimum value allowed for FmpDxe driver-specific errors.
+///
+#define LAST_ATTEMPT_STATUS_DRIVER_MIN_ERROR_CODE_VALUE 0x1000
+
+///
+/// The maximum value allowed for FmpDxe driver-specific errors.
+///
+#define LAST_ATTEMPT_STATUS_DRIVER_MAX_ERROR_CODE_VALUE 0x107F
+
+///
+/// The minimum value allowed for FmpDependencyLib related errors.
+///
+#define LAST_ATTEMPT_STATUS_FMP_DEPENDENCY_LIB_MIN_ERROR_CODE_VALUE 0x1080
+
+///
+/// The maximum value allowed for FmpDependencyLib related errors.
+///
+#define LAST_ATTEMPT_STATUS_FMP_DEPENDENCY_LIB_MAX_ERROR_CODE_VALUE 0x109F
+
+///
+/// The minimum value allowed for FmpDependencyCheckLib related errors.
+///
+#define LAST_ATTEMPT_STATUS_FMP_DEPENDENCY_CHECK_LIB_MIN_ERROR_CODE_VALUE 0x10A0
+
+///
+/// The maximum value allowed for FmpDependencyCheckLib related errors.
+///
+#define LAST_ATTEMPT_STATUS_FMP_DEPENDENCY_CHECK_LIB_MAX_ERROR_CODE_VALUE 0x10BF
+
+///
+/// The minimum value allowed for FMP device library errors.
+///
+#define LAST_ATTEMPT_STATUS_DEVICE_LIBRARY_MIN_ERROR_CODE_VALUE 0x1800
+
+///
+/// The maximum value allowed for FMP device library errors.
+///
+#define LAST_ATTEMPT_STATUS_DEVICE_LIBRARY_MAX_ERROR_CODE_VALUE 0x1FFF
+
+#endif