| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 | /* * Common firmware image format */#ifndef FWIMG_H#define FWIMG_H#include <inttypes.h>/* * Firmware chunk header. */#define FW_MAGIC_V1		0x7a07fbd6#define FW_MAGIC_V2		0xa924ed0b#define FW_HDR_LEN_V1		16#define FW_HDR_LEN_V2		32struct fw_header {    /* All versions */    uint32_t magic;		/* Magic number */    uint16_t type;		/* Content type */    uint16_t flags;		/* Content flags */    uint32_t len;		/* Content length (excluding header) */    uint32_t addr;		/* Address or similar */    /* v2 only */    uint32_t vmatch;		/* Flags to match */    uint32_t vmask;		/* Mask of flags to match */    uint16_t vmin;		/* Minimum version match */    uint16_t vmax;		/* Maximum version match */    uint32_t resv;		/* For future use */};enum fw_data_type {    FDT_END,			/* End of stream */    FDT_DATA,			/* FPGA firmware ata to be flashed */    FDT_TARGET,			/* Subsystem string (must match) */    FDT_NOTE,			/* Version: XXXXX or similar */    FDT_ESP_OTA,		/* ESP32 OTA image */    FDT_FPGA_INIT,		/* FPGA bitstream for update */    FDT_ESP_PART,		/* ESP32 partition table */    FDT_ESP_SYS,		/* ESP32 boot loader, OTA control, etc */    FDT_ESP_TOOL,		/* esptool.py options for serial flashing */    FDT_BOARDINFO		/* Board information flash address */};enum fw_data_flags {    FDF_OPTIONAL     = 0x0001,	/* Ignore if chunk data type unknown */    FDF_PRETARGET    = 0x0002	/* Matching FDT_TARGET not required (yet) */};/* * Additional error codes beyond those defined in zlib */#define FWUPDATE_ERR_IN_PROGRESS	(-10)#define FWUPDATE_ERR_BAD_CHUNK		(-11)#define FWUPDATE_ERR_ERASE_FAILED	(-12)#define FWUPDATE_ERR_PROGRAM_FAILED	(-13)#define FWUPDATE_ERR_WRITE_PROTECT	(-14)#define FWUPDATE_ERR_NOT_READY		(-15)#define FWUPDATE_ERR_FPGA_JTAG          (-16)#define FWUPDATE_ERR_FPGA_MISMATCH	(-17)#define FWUPDATE_ERR_FPGA_FAILED	(-18)#define FWUPDATE_ERR_UNKNOWN            (-19)#define FWUPDATE_ERR_ESP_NO_PARTITION	(-20)#define FWUPDATE_ERR_ESP_BAD_OTA	(-21)#define FWUPDATE_ERR_ESP_FLASH_FAILED	(-22)#define FWUPDATE_ERR_ESP_BAD_DATA	(-23)#define FWUPDATE_ERR_CONFIG_READ	(-24)#define FWUPDATE_ERR_CONFIG_SAVE	(-25)#define FWUPDATE_ERR_NOT_MINE		(-26)#endif /* FW_H */
 |