blob: 1760b68780de11c97b34c7991855b5cc2117edb7 [file] [log] [blame]
/*
* Copyright (c) 2018 MediaTek Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files
* (the "Software"), to deal in the Software without restriction,
* including without limitation the rights to use, copy, modify, merge,
* publish, distribute, sublicense, and/or sell copies of the Software,
* and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#ifndef __PARTITION_H__
#define __PARTITION_H__
#include <platform/mmc_core.h>
#define BIMG_HEADER_SZ (0x800)
#define MKIMG_HEADER_SZ (0x200)
#define PART_HDR_DATA_SIZE 512
#define PART_KERNEL "KERNEL"
#define PART_ROOTFS "ROOTFS"
#define PART_MAGIC 0x58881688
#define PART_EXT_MAGIC 0x58891689
#define PART_MAX_COUNT 128
#define PART_PRELOADER_SIZE (0x400)
#define FRP_NAME "frp"
typedef union {
struct {
unsigned int magic; /* partition magic */
unsigned int dsize; /* partition data size */
char name[32]; /* partition name */
unsigned int maddr; /* partition memory address */
unsigned int mode; /* maddr is counted from the beginning or end of RAM */
/* extension */
unsigned int ext_magic; /* always EXT_MAGIC */
unsigned int hdr_size; /* header size is 512 bytes currently, but may extend in the future */
unsigned int hdr_version; /* see HDR_VERSION */
unsigned int img_type; /* please refer to #define beginning with IMG_TYPE_ */
unsigned int img_list_end; /* end of image list? 0: this image is followed by another image 1: end */
unsigned int align_size; /* image size alignment setting in bytes, 16 by default for AES encryption */
unsigned int dsize_extend; /* high word of image size for 64 bit address support */
unsigned int maddr_extend; /* high word of image load address in RAM for 64 bit address support */
} info;
unsigned char data[PART_HDR_DATA_SIZE];
} part_hdr_t;
#endif /* __PARTITION_H__ */