|
@@ -0,0 +1,81 @@
|
|
|
+/** @file
|
|
|
+ System Firmware descriptor.
|
|
|
+
|
|
|
+ Copyright (c) 2018, Hisilicon Limited. All rights reserved.
|
|
|
+ Copyright (c) 2018, Linaro Limited. All rights reserved.
|
|
|
+ Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
|
|
|
+
|
|
|
+ This program and the accompanying materials
|
|
|
+ are licensed and made available under the terms and conditions of the BSD License
|
|
|
+ which accompanies this distribution. The full text of the license may be found at
|
|
|
+ http://opensource.org/licenses/bsd-license.php
|
|
|
+
|
|
|
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
|
|
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|
|
+
|
|
|
+**/
|
|
|
+
|
|
|
+#include <PiPei.h>
|
|
|
+#include <Guid/EdkiiSystemFmpCapsule.h>
|
|
|
+#include <Protocol/FirmwareManagement.h>
|
|
|
+
|
|
|
+#define PACKAGE_VERSION 0xFFFFFFFF
|
|
|
+#define PACKAGE_VERSION_STRING L"Unknown"
|
|
|
+
|
|
|
+#define CURRENT_FIRMWARE_VERSION 0x00000002
|
|
|
+#define CURRENT_FIRMWARE_VERSION_STRING L"0x00000002"
|
|
|
+#define LOWEST_SUPPORTED_FIRMWARE_VERSION 0x00000001
|
|
|
+
|
|
|
+#define IMAGE_ID SIGNATURE_64('H','W','A', 'R', 'M', '_', 'F', 'd')
|
|
|
+#define IMAGE_ID_STRING L"ARMPlatformFd"
|
|
|
+
|
|
|
+// PcdSystemFmpCapsuleImageTypeIdGuid
|
|
|
+#define IMAGE_TYPE_ID_GUID { 0x44c850f2, 0x85ff, 0x4be5, { 0xbf, 0x34, 0xa5, 0x95, 0x28, 0xdf, 0x22, 0xd3 } }
|
|
|
+
|
|
|
+typedef struct {
|
|
|
+ EDKII_SYSTEM_FIRMWARE_IMAGE_DESCRIPTOR Descriptor;
|
|
|
+ // real string data
|
|
|
+ CHAR16 ImageIdNameStr[ARRAY_SIZE (IMAGE_ID_STRING)];
|
|
|
+ CHAR16 VersionNameStr[ARRAY_SIZE (CURRENT_FIRMWARE_VERSION_STRING)];
|
|
|
+ CHAR16 PackageVersionNameStr[ARRAY_SIZE (PACKAGE_VERSION_STRING)];
|
|
|
+} IMAGE_DESCRIPTOR;
|
|
|
+
|
|
|
+IMAGE_DESCRIPTOR mImageDescriptor =
|
|
|
+{
|
|
|
+ {
|
|
|
+ EDKII_SYSTEM_FIRMWARE_IMAGE_DESCRIPTOR_SIGNATURE,
|
|
|
+ sizeof (EDKII_SYSTEM_FIRMWARE_IMAGE_DESCRIPTOR),
|
|
|
+ sizeof (IMAGE_DESCRIPTOR),
|
|
|
+ PACKAGE_VERSION, // PackageVersion
|
|
|
+ OFFSET_OF (IMAGE_DESCRIPTOR, PackageVersionNameStr), // PackageVersionName
|
|
|
+ 1, // ImageIndex;
|
|
|
+ {0x0}, // Reserved
|
|
|
+ IMAGE_TYPE_ID_GUID, // ImageTypeId;
|
|
|
+ IMAGE_ID, // ImageId;
|
|
|
+ OFFSET_OF (IMAGE_DESCRIPTOR, ImageIdNameStr), // ImageIdName;
|
|
|
+ CURRENT_FIRMWARE_VERSION, // Version;
|
|
|
+ OFFSET_OF (IMAGE_DESCRIPTOR, VersionNameStr), // VersionName;
|
|
|
+ {0x0}, // Reserved2
|
|
|
+ FixedPcdGet32 (PcdFdSize), // Size;
|
|
|
+ IMAGE_ATTRIBUTE_IMAGE_UPDATABLE |
|
|
|
+ IMAGE_ATTRIBUTE_RESET_REQUIRED |
|
|
|
+ IMAGE_ATTRIBUTE_AUTHENTICATION_REQUIRED |
|
|
|
+ IMAGE_ATTRIBUTE_IN_USE, // AttributesSupported;
|
|
|
+ IMAGE_ATTRIBUTE_IMAGE_UPDATABLE |
|
|
|
+ IMAGE_ATTRIBUTE_RESET_REQUIRED |
|
|
|
+ IMAGE_ATTRIBUTE_AUTHENTICATION_REQUIRED |
|
|
|
+ IMAGE_ATTRIBUTE_IN_USE, // AttributesSetting;
|
|
|
+ 0x0, // Compatibilities;
|
|
|
+ LOWEST_SUPPORTED_FIRMWARE_VERSION, // LowestSupportedImageVersion;
|
|
|
+ 0x00000000, // LastAttemptVersion;
|
|
|
+ 0, // LastAttemptStatus;
|
|
|
+ {0x0}, // Reserved3
|
|
|
+ 0, // HardwareInstance;
|
|
|
+ },
|
|
|
+ // real string data
|
|
|
+ {IMAGE_ID_STRING},
|
|
|
+ {CURRENT_FIRMWARE_VERSION_STRING},
|
|
|
+ {PACKAGE_VERSION_STRING},
|
|
|
+};
|
|
|
+
|
|
|
+VOID* CONST ReferenceAcpiTable = &mImageDescriptor;
|