]>
Commit | Line | Data |
---|---|---|
ed35f7e0 JY |
1 | /** @file\r |
2 | System Firmware descriptor.\r | |
3 | \r | |
4 | Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>\r | |
9dc8036d | 5 | SPDX-License-Identifier: BSD-2-Clause-Patent\r |
ed35f7e0 JY |
6 | \r |
7 | **/\r | |
8 | \r | |
9 | #include <PiPei.h>\r | |
10 | #include <Protocol/FirmwareManagement.h>\r | |
11 | #include <Guid/EdkiiSystemFmpCapsule.h>\r | |
12 | \r | |
13 | #define PACKAGE_VERSION 0xFFFFFFFF\r | |
14 | #define PACKAGE_VERSION_STRING L"Unknown"\r | |
15 | \r | |
16 | #define CURRENT_FIRMWARE_VERSION 0x00000002\r | |
17 | #define CURRENT_FIRMWARE_VERSION_STRING L"0x00000002"\r | |
18 | #define LOWEST_SUPPORTED_FIRMWARE_VERSION 0x00000001\r | |
19 | \r | |
20 | #define IMAGE_ID SIGNATURE_64('V', 'L', 'V', '2', '_', '_', 'F', 'd')\r | |
21 | #define IMAGE_ID_STRING L"Vlv2Fd"\r | |
22 | \r | |
23 | // PcdSystemFmpCapsuleImageTypeIdGuid\r | |
24 | #define IMAGE_TYPE_ID_GUID { 0x4096267b, 0xda0a, 0x42eb, { 0xb5, 0xeb, 0xfe, 0xf3, 0x1d, 0x20, 0x7c, 0xb4 } }\r | |
25 | \r | |
26 | typedef struct {\r | |
27 | EDKII_SYSTEM_FIRMWARE_IMAGE_DESCRIPTOR Descriptor;\r | |
28 | // real string data\r | |
29 | CHAR16 ImageIdNameStr[sizeof(IMAGE_ID_STRING)/sizeof(CHAR16)];\r | |
30 | CHAR16 VersionNameStr[sizeof(CURRENT_FIRMWARE_VERSION_STRING)/sizeof(CHAR16)];\r | |
31 | CHAR16 PackageVersionNameStr[sizeof(PACKAGE_VERSION_STRING)/sizeof(CHAR16)];\r | |
32 | } IMAGE_DESCRIPTOR;\r | |
33 | \r | |
34 | IMAGE_DESCRIPTOR mImageDescriptor =\r | |
35 | {\r | |
36 | {\r | |
37 | EDKII_SYSTEM_FIRMWARE_IMAGE_DESCRIPTOR_SIGNATURE,\r | |
38 | sizeof(EDKII_SYSTEM_FIRMWARE_IMAGE_DESCRIPTOR),\r | |
39 | sizeof(IMAGE_DESCRIPTOR),\r | |
40 | PACKAGE_VERSION, // PackageVersion\r | |
41 | OFFSET_OF (IMAGE_DESCRIPTOR, PackageVersionNameStr), // PackageVersionName\r | |
42 | 1, // ImageIndex;\r | |
43 | {0x0}, // Reserved\r | |
44 | IMAGE_TYPE_ID_GUID, // ImageTypeId;\r | |
45 | IMAGE_ID, // ImageId;\r | |
46 | OFFSET_OF (IMAGE_DESCRIPTOR, ImageIdNameStr), // ImageIdName;\r | |
47 | CURRENT_FIRMWARE_VERSION, // Version;\r | |
48 | OFFSET_OF (IMAGE_DESCRIPTOR, VersionNameStr), // VersionName;\r | |
49 | {0x0}, // Reserved2\r | |
50 | FixedPcdGet32(PcdFlashAreaSize), // Size;\r | |
51 | IMAGE_ATTRIBUTE_IMAGE_UPDATABLE |\r | |
52 | IMAGE_ATTRIBUTE_RESET_REQUIRED |\r | |
53 | IMAGE_ATTRIBUTE_AUTHENTICATION_REQUIRED |\r | |
54 | IMAGE_ATTRIBUTE_IN_USE, // AttributesSupported;\r | |
55 | IMAGE_ATTRIBUTE_IMAGE_UPDATABLE |\r | |
56 | IMAGE_ATTRIBUTE_RESET_REQUIRED |\r | |
57 | IMAGE_ATTRIBUTE_AUTHENTICATION_REQUIRED |\r | |
58 | IMAGE_ATTRIBUTE_IN_USE, // AttributesSetting;\r | |
59 | 0x0, // Compatibilities;\r | |
60 | LOWEST_SUPPORTED_FIRMWARE_VERSION, // LowestSupportedImageVersion;\r | |
61 | 0x00000000, // LastAttemptVersion;\r | |
62 | 0, // LastAttemptStatus;\r | |
63 | {0x0}, // Reserved3\r | |
64 | 0, // HardwareInstance;\r | |
65 | },\r | |
66 | // real string data\r | |
67 | {IMAGE_ID_STRING},\r | |
68 | {CURRENT_FIRMWARE_VERSION_STRING},\r | |
69 | {PACKAGE_VERSION_STRING},\r | |
70 | };\r | |
71 | \r | |
72 | \r | |
73 | VOID*\r | |
74 | ReferenceAcpiTable (\r | |
75 | VOID\r | |
76 | )\r | |
77 | {\r | |
78 | //\r | |
79 | // Reference the table being generated to prevent the optimizer from\r | |
80 | // removing the data structure from the executable\r | |
81 | //\r | |
82 | return (VOID*)&mImageDescriptor;\r | |
83 | }\r |