sdk-hwV1.3/lichee/brandy-2.0/u-boot-2018/include/sunxi_image_header.h

48 lines
1.6 KiB
C
Raw Normal View History

2024-05-07 10:09:20 +00:00
/*
* (C) Copyright 2007-2021
* Allwinner Technology Co., Ltd. <www.allwinnertech.com>
* SPDX-License-Identifier: GPL-2.0+
*/
#ifndef __SUNXI_IMAGE_HEADER__H__
#define __SUNXI_IMAGE_HEADER__H__
#define SUNXI_IH_MAGIC (0x48495741)
#define SUNXI_TH_MAGIC (0x4854)
#define PKEY_TYPE_RSA (0x0)
#define PKEY_TYPE_ECC (0x1)
/* Image Header(128B) */
typedef struct sunxi_image_header {
uint32_t ih_magic; /* Image Header Magic Number */
uint16_t ih_hversion; /* Image Header Version: */
uint16_t ih_pversion; /* Image Payload Version: */
uint16_t ih_hchksum; /* Image Header Checksum */
uint16_t ih_dchksum; /* Image Data Checksum */
uint32_t ih_hsize; /* Image Header Size */
uint32_t ih_psize; /* Image Payload Size */
uint32_t ih_tsize; /* Image TLV Size */
uint32_t ih_load; /* Image Load Address */
uint32_t ih_ep; /* Image Entry Point */
uint32_t ih_imgattr; /* Image Attribute */
uint32_t ih_nxtsecaddr; /* Next Section Address */
uint8_t ih_name[16]; /* Image Name */
uint32_t ih_priv[18]; /* Image Private Data */
} sunxi_image_header_t;
/* TLV Header(32B) */
typedef struct sunxi_tlv_header {
uint16_t th_magic;
uint16_t th_size;
uint16_t th_pkey_type;
uint16_t th_pkey_size;
uint16_t th_sign_type;
uint16_t th_sign_size;
uint32_t th_priv[5];
} sunxi_tlv_header_t;
int sunxi_image_header_check(sunxi_image_header_t *ih);
int sunxi_tlv_header_check(sunxi_tlv_header_t *th);
#endif //__SUNXI_IMAGE_HEADER__H__