/** @file | |
* | |
* Copyright (c) 2012-2014, ARM Limited. All rights reserved. | |
* | |
* 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. | |
* | |
**/ | |
#ifndef __BOOTMON_FS_HW_H__ | |
#define __BOOTMON_FS_HW_H__ | |
#define MAX_NAME_LENGTH 32 | |
#define HW_IMAGE_FOOTER_SIGNATURE_1 0x464C5348 | |
#define HW_IMAGE_FOOTER_SIGNATURE_2 0x464F4F54 | |
#define HW_IMAGE_FOOTER_VERSION 1 | |
#define HW_IMAGE_FOOTER_OFFSET 92 | |
#define HW_IMAGE_FOOTER_VERSION2 2 | |
#define HW_IMAGE_FOOTER_OFFSET2 96 | |
typedef struct { | |
CHAR8 Filename[MAX_NAME_LENGTH]; | |
UINT32 Offset; | |
UINT32 Version; | |
UINT32 FooterSignature1; | |
UINT32 FooterSignature2; | |
} HW_IMAGE_FOOTER; | |
#define HW_IMAGE_DESCRIPTION_REGION_MAX 4 | |
// This structure is located at the end of a block when a file is present | |
typedef struct { | |
UINT32 EntryPoint; | |
UINT32 Attributes; | |
UINT32 RegionCount; | |
struct { | |
UINT32 LoadAddress; | |
UINT32 Size; | |
UINT32 Offset; | |
UINT32 Checksum; | |
} Region[HW_IMAGE_DESCRIPTION_REGION_MAX]; | |
UINT32 BlockStart; | |
UINT32 BlockEnd; | |
UINT32 FooterChecksum; | |
HW_IMAGE_FOOTER Footer; | |
} HW_IMAGE_DESCRIPTION; | |
#endif |