烧录镜像格式
ArtInChip 的烧录镜像文件由组件 (FirmWare Component) 以及对应的组件元信息组成。 数据分布如下图所示。
其中一些需要打包的数据文件,都被当做组件(FWC)进行处理,包括 SPL,U-Boot,Kernel,DTB 等数据。
Image Header 的具体格式如下:
struct artinchip_fw_hdr{
char magic[8]; // 固定为 "AIC.FW"
char platform[64]; // 该镜像文件适用的芯片平台
char product[64]; // 该镜像文件适用的产品型号
char version[64]; // 该镜像的版本
char media_type[64];// 该镜像文件可烧录的存储介质
u32 media_dev_id; // 该镜像文件可烧录的存储介质 ID
u8 nand_id[64]; // 当存储介质为 NAND 时,适用的 NAND ID
u32 meta_offset; // FWC Meta Area start offset
u32 meta_size; // FWC Meta Area size
u32 file_offset; // FWC File data Area start offset
u32 file_size; // FWC File data Area size
u8 padding[]; // Pad to 2048
};FWC Meta 的格式如下:
struct artinchip_fwc_meta {
char magic[8]; // 固定为 "META"
char name[64]; // 对应组件的名字
char partition[64]; // 该组件要烧录的分区名字
u32 offset; // 该组件数据在镜像文件中的偏移
u32 size; // 该组件数据的大小
u32 crc32; // 该组件数据的 CRC32 校验值
u32 ram; // 当组件要下载到平台 RAM 时,要下载的地址
char attr[64] // 该组件的属性,字符串表示
u8 padding[296]; // Pad to 512
};