2 System Firmware descriptor.
4 Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
5 SPDX-License-Identifier: BSD-2-Clause-Patent
10 #include <Protocol/FirmwareManagement.h>
11 #include <Guid/EdkiiSystemFmpCapsule.h>
13 #define PACKAGE_VERSION 0xFFFFFFFF
14 #define PACKAGE_VERSION_STRING L"Unknown"
16 #define CURRENT_FIRMWARE_VERSION 0x00000002
17 #define CURRENT_FIRMWARE_VERSION_STRING L"0x00000002"
18 #define LOWEST_SUPPORTED_FIRMWARE_VERSION 0x00000001
20 #define IMAGE_ID SIGNATURE_64('Q', 'U', 'A', 'R', 'K', '_', 'F', 'd')
21 #define IMAGE_ID_STRING L"QuarkPlatformFd"
23 // PcdSystemFmpCapsuleImageTypeIdGuid
24 #define IMAGE_TYPE_ID_GUID { 0x62af20c0, 0x7016, 0x424a, { 0x9b, 0xf8, 0x9c, 0xcc, 0x86, 0x58, 0x40, 0x90 } }
27 EDKII_SYSTEM_FIRMWARE_IMAGE_DESCRIPTOR Descriptor;
29 CHAR16 ImageIdNameStr[sizeof(IMAGE_ID_STRING)/sizeof(CHAR16)];
30 CHAR16 VersionNameStr[sizeof(CURRENT_FIRMWARE_VERSION_STRING)/sizeof(CHAR16)];
31 CHAR16 PackageVersionNameStr[sizeof(PACKAGE_VERSION_STRING)/sizeof(CHAR16)];
34 IMAGE_DESCRIPTOR mImageDescriptor =
37 EDKII_SYSTEM_FIRMWARE_IMAGE_DESCRIPTOR_SIGNATURE,
38 sizeof(EDKII_SYSTEM_FIRMWARE_IMAGE_DESCRIPTOR),
39 sizeof(IMAGE_DESCRIPTOR),
40 PACKAGE_VERSION, // PackageVersion
41 OFFSET_OF (IMAGE_DESCRIPTOR, PackageVersionNameStr), // PackageVersionName
44 IMAGE_TYPE_ID_GUID, // ImageTypeId;
46 OFFSET_OF (IMAGE_DESCRIPTOR, ImageIdNameStr), // ImageIdName;
47 CURRENT_FIRMWARE_VERSION, // Version;
48 OFFSET_OF (IMAGE_DESCRIPTOR, VersionNameStr), // VersionName;
50 FixedPcdGet32(PcdFlashAreaSize), // Size;
51 IMAGE_ATTRIBUTE_IMAGE_UPDATABLE |
52 IMAGE_ATTRIBUTE_RESET_REQUIRED |
53 IMAGE_ATTRIBUTE_AUTHENTICATION_REQUIRED |
54 IMAGE_ATTRIBUTE_IN_USE, // AttributesSupported;
55 IMAGE_ATTRIBUTE_IMAGE_UPDATABLE |
56 IMAGE_ATTRIBUTE_RESET_REQUIRED |
57 IMAGE_ATTRIBUTE_AUTHENTICATION_REQUIRED |
58 IMAGE_ATTRIBUTE_IN_USE, // AttributesSetting;
59 0x0, // Compatibilities;
60 LOWEST_SUPPORTED_FIRMWARE_VERSION, // LowestSupportedImageVersion;
61 0x00000000, // LastAttemptVersion;
62 0, // LastAttemptStatus;
64 0, // HardwareInstance;
68 {CURRENT_FIRMWARE_VERSION_STRING},
69 {PACKAGE_VERSION_STRING},
79 // Reference the table being generated to prevent the optimizer from
80 // removing the data structure from the executable
82 return (VOID*)&mImageDescriptor;