Edit online

烧录镜像格式

ArtInChip 的烧录镜像文件由组件 (FirmWare Component) 以及对应的组件元信息组成。 数据分布如下图所示。

1. 烧录镜像格式

其中一些需要打包的数据文件,都被当做组件(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
};