2 System Firmware descriptor.
4 Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
5 This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
16 #include <Protocol/FirmwareManagement.h>
17 #include <Guid/EdkiiSystemFmpCapsule.h>
19 #define PACKAGE_VERSION 0xFFFFFFFF
20 #define PACKAGE_VERSION_STRING L"Unknown"
22 #define CURRENT_FIRMWARE_VERSION 0x00000002
23 #define CURRENT_FIRMWARE_VERSION_STRING L"0x00000002"
24 #define LOWEST_SUPPORTED_FIRMWARE_VERSION 0x00000001
26 #define IMAGE_ID SIGNATURE_64('Q', 'U', 'A', 'R', 'K', '_', 'F', 'd')
27 #define IMAGE_ID_STRING L"QuarkPlatformFd"
29 // PcdSystemFmpCapsuleImageTypeIdGuid
30 #define IMAGE_TYPE_ID_GUID { 0x62af20c0, 0x7016, 0x424a, { 0x9b, 0xf8, 0x9c, 0xcc, 0x86, 0x58, 0x40, 0x90 } }
33 EDKII_SYSTEM_FIRMWARE_IMAGE_DESCRIPTOR Descriptor;
35 CHAR16 ImageIdNameStr[sizeof(IMAGE_ID_STRING)/sizeof(CHAR16)];
36 CHAR16 VersionNameStr[sizeof(CURRENT_FIRMWARE_VERSION_STRING)/sizeof(CHAR16)];
37 CHAR16 PackageVersionNameStr[sizeof(PACKAGE_VERSION_STRING)/sizeof(CHAR16)];
40 IMAGE_DESCRIPTOR mImageDescriptor =
43 EDKII_SYSTEM_FIRMWARE_IMAGE_DESCRIPTOR_SIGNATURE,
44 sizeof(EDKII_SYSTEM_FIRMWARE_IMAGE_DESCRIPTOR),
45 sizeof(IMAGE_DESCRIPTOR),
46 PACKAGE_VERSION, // PackageVersion
47 OFFSET_OF (IMAGE_DESCRIPTOR, PackageVersionNameStr), // PackageVersionName
50 IMAGE_TYPE_ID_GUID, // ImageTypeId;
52 OFFSET_OF (IMAGE_DESCRIPTOR, ImageIdNameStr), // ImageIdName;
53 CURRENT_FIRMWARE_VERSION, // Version;
54 OFFSET_OF (IMAGE_DESCRIPTOR, VersionNameStr), // VersionName;
56 FixedPcdGet32(PcdFlashAreaSize), // Size;
57 IMAGE_ATTRIBUTE_IMAGE_UPDATABLE |
58 IMAGE_ATTRIBUTE_RESET_REQUIRED |
59 IMAGE_ATTRIBUTE_AUTHENTICATION_REQUIRED |
60 IMAGE_ATTRIBUTE_IN_USE, // AttributesSupported;
61 IMAGE_ATTRIBUTE_IMAGE_UPDATABLE |
62 IMAGE_ATTRIBUTE_RESET_REQUIRED |
63 IMAGE_ATTRIBUTE_AUTHENTICATION_REQUIRED |
64 IMAGE_ATTRIBUTE_IN_USE, // AttributesSetting;
65 0x0, // Compatibilities;
66 LOWEST_SUPPORTED_FIRMWARE_VERSION, // LowestSupportedImageVersion;
67 0x00000000, // LastAttemptVersion;
68 0, // LastAttemptStatus;
70 0, // HardwareInstance;
74 {CURRENT_FIRMWARE_VERSION_STRING},
75 {PACKAGE_VERSION_STRING},
85 // Reference the table being generated to prevent the optimizer from
86 // removing the data structure from the executable
88 return (VOID*)&mImageDescriptor;