/** @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.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#include
#include
#include
#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 { 0x7978365d, 0x7978, 0x45fd, { 0xad, 0x77, 0xb2, 0x76, 0x93, 0xcf, 0xe8, 0x5b } }
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;