]> git.proxmox.com Git - mirror_edk2.git/blame - QuarkPlatformPkg/Feature/Capsule/SystemFirmwareDescriptor/SystemFirmwareDescriptor.aslc
QuarkPlatformPkg/SystemFirmwareDescriptor: Add Descriptor for capsule.
[mirror_edk2.git] / QuarkPlatformPkg / Feature / Capsule / SystemFirmwareDescriptor / SystemFirmwareDescriptor.aslc
CommitLineData
b5505fe3
JY
1/** @file\r
2 System Firmware descriptor.\r
3\r
4 Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>\r
5 This program and the accompanying materials\r
6 are licensed and made available under the terms and conditions of the BSD License\r
7 which accompanies this distribution. The full text of the license may be found at\r
8 http://opensource.org/licenses/bsd-license.php\r
9\r
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12\r
13**/\r
14\r
15#include <PiPei.h>\r
16#include <Protocol/FirmwareManagement.h>\r
17#include <Guid/EdkiiSystemFmpCapsule.h>\r
18\r
19#define PACKAGE_VERSION 0xFFFFFFFF\r
20#define PACKAGE_VERSION_STRING L"Unknown"\r
21\r
22#define CURRENT_FIRMWARE_VERSION 0x00000002\r
23#define CURRENT_FIRMWARE_VERSION_STRING L"0x00000002"\r
24#define LOWEST_SUPPORTED_FIRMWARE_VERSION 0x00000001\r
25\r
26#define IMAGE_ID SIGNATURE_64('Q', 'U', 'A', 'R', 'K', '_', 'F', 'd')\r
27#define IMAGE_ID_STRING L"QuarkPlatformFd"\r
28\r
29// PcdSystemFmpCapsuleImageTypeIdGuid\r
30#define IMAGE_TYPE_ID_GUID { 0x62af20c0, 0x7016, 0x424a, { 0x9b, 0xf8, 0x9c, 0xcc, 0x86, 0x58, 0x40, 0x90 } }\r
31\r
32typedef struct {\r
33 EDKII_SYSTEM_FIRMWARE_IMAGE_DESCRIPTOR Descriptor;\r
34 // real string data\r
35 CHAR16 ImageIdNameStr[sizeof(IMAGE_ID_STRING)/sizeof(CHAR16)];\r
36 CHAR16 VersionNameStr[sizeof(CURRENT_FIRMWARE_VERSION_STRING)/sizeof(CHAR16)];\r
37 CHAR16 PackageVersionNameStr[sizeof(PACKAGE_VERSION_STRING)/sizeof(CHAR16)];\r
38} IMAGE_DESCRIPTOR;\r
39\r
40IMAGE_DESCRIPTOR mImageDescriptor =\r
41{\r
42 {\r
43 EDKII_SYSTEM_FIRMWARE_IMAGE_DESCRIPTOR_SIGNATURE,\r
44 sizeof(EDKII_SYSTEM_FIRMWARE_IMAGE_DESCRIPTOR),\r
45 sizeof(IMAGE_DESCRIPTOR),\r
46 PACKAGE_VERSION, // PackageVersion\r
47 OFFSET_OF (IMAGE_DESCRIPTOR, PackageVersionNameStr), // PackageVersionName\r
48 1, // ImageIndex;\r
49 {0x0}, // Reserved\r
50 IMAGE_TYPE_ID_GUID, // ImageTypeId;\r
51 IMAGE_ID, // ImageId;\r
52 OFFSET_OF (IMAGE_DESCRIPTOR, ImageIdNameStr), // ImageIdName;\r
53 CURRENT_FIRMWARE_VERSION, // Version;\r
54 OFFSET_OF (IMAGE_DESCRIPTOR, VersionNameStr), // VersionName;\r
55 {0x0}, // Reserved2\r
56 FixedPcdGet32(PcdFlashAreaSize), // Size;\r
57 IMAGE_ATTRIBUTE_IMAGE_UPDATABLE |\r
58 IMAGE_ATTRIBUTE_RESET_REQUIRED |\r
59 IMAGE_ATTRIBUTE_AUTHENTICATION_REQUIRED |\r
60 IMAGE_ATTRIBUTE_IN_USE, // AttributesSupported;\r
61 IMAGE_ATTRIBUTE_IMAGE_UPDATABLE |\r
62 IMAGE_ATTRIBUTE_RESET_REQUIRED |\r
63 IMAGE_ATTRIBUTE_AUTHENTICATION_REQUIRED |\r
64 IMAGE_ATTRIBUTE_IN_USE, // AttributesSetting;\r
65 0x0, // Compatibilities;\r
66 LOWEST_SUPPORTED_FIRMWARE_VERSION, // LowestSupportedImageVersion;\r
67 0x00000000, // LastAttemptVersion;\r
68 0, // LastAttemptStatus;\r
69 {0x0}, // Reserved3\r
70 0, // HardwareInstance;\r
71 },\r
72 // real string data\r
73 {IMAGE_ID_STRING},\r
74 {CURRENT_FIRMWARE_VERSION_STRING},\r
75 {PACKAGE_VERSION_STRING},\r
76};\r
77\r
78\r
79VOID*\r
80ReferenceAcpiTable (\r
81 VOID\r
82 )\r
83{\r
84 //\r
85 // Reference the table being generated to prevent the optimizer from\r
86 // removing the data structure from the executable\r
87 //\r
88 return (VOID*)&mImageDescriptor;\r
89}\r