static void zynqmpimage_set_header(void *ptr, struct stat *sbuf, int ifd, struct image_tool_params *params) { struct zynqmp_header *zynqhdr = (struct zynqmp_header *)ptr; zynqmpimage_default_header(zynqhdr); /* place image directly after header */ zynqhdr->image_offset = cpu_to_le32((uint32_t)sizeof(struct zynqmp_header)); zynqhdr->image_size = cpu_to_le32(params->file_size - sizeof(struct zynqmp_header)); zynqhdr->image_stored_size = zynqhdr->image_size; zynqhdr->image_load = 0xfffc0000; if (params->eflag) zynqhdr->image_load = cpu_to_le32((uint32_t)params->ep); /* PMUFW */ if (fpmu) zynqmpimage_pmufw(zynqhdr, params->imagename); /* User can pass in text file with init list */ if (strlen(params->imagename2)) zynqmpimage_parse_initparams(zynqhdr, params->imagename2); zynqhdr->checksum = zynqmpimage_checksum(zynqhdr); }
/* mkimage glue functions */ static int zynqmpimage_verify_header(unsigned char *ptr, int image_size, struct image_tool_params *params) { struct zynqmp_header *zynqhdr = (struct zynqmp_header *)ptr; if (image_size < sizeof(struct zynqmp_header)) return -1; if (zynqhdr->width_detection != HEADER_WIDTHDETECTION) return -1; if (zynqhdr->image_identifier != HEADER_IMAGEIDENTIFIER) return -1; if (zynqmpimage_checksum(zynqhdr) != zynqhdr->checksum) return -1; return 0; }
static void zynqmpimage_set_header(void *ptr, struct stat *sbuf, int ifd, struct image_tool_params *params) { struct zynqmp_header *zynqhdr = (struct zynqmp_header *)ptr; zynqmpimage_default_header(zynqhdr); /* place image directly after header */ zynqhdr->image_offset = cpu_to_le32((uint32_t)sizeof(struct zynqmp_header)); zynqhdr->image_size = cpu_to_le32(params->file_size - sizeof(struct zynqmp_header)); zynqhdr->image_stored_size = zynqhdr->image_size; zynqhdr->image_load = 0xfffc0000; if (params->eflag) zynqhdr->image_load = cpu_to_le32((uint32_t)params->ep); zynqhdr->checksum = zynqmpimage_checksum(zynqhdr); }