]> git.proxmox.com Git - mirror_edk2.git/blame - Vlv2TbltDevicePkg/Feature/Capsule/SystemFirmwareDescriptor/SystemFirmwareDescriptor.aslc
ArmPkg/CompilerIntrinsicsLib: Add uread, uwrite GCC assembly sources
[mirror_edk2.git] / Vlv2TbltDevicePkg / Feature / Capsule / SystemFirmwareDescriptor / SystemFirmwareDescriptor.aslc
CommitLineData
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
26typedef 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
34IMAGE_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
73VOID*\r
74ReferenceAcpiTable (\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