static void omapimage_set_header(void *ptr, struct stat *sbuf, int ifd, struct mkimage_params *params) { struct ch_toc *toc = (struct ch_toc *)ptr; struct ch_entry *entry = (struct ch_entry *) (ptr + 2 * sizeof(*toc)); struct gp_header *gph = (struct gp_header *)(ptr + OMAP_CH_HDR_SIZE); void *ch_src; uint32_t ch_data_size; toc->section_offset = toc_offset(ptr, entry); if (strncmp(params->imagename, "ch_qspi", 7) == 0) { strcpy((char *)toc->section_name, "CHQSPI"); entry->hdr.section_key = KEY_CHQSPI; entry->hdr.valid = 1; ch_src = (void *)&ch_qspi_48mhz_quad; ch_data_size = sizeof(struct ch_qspi); } else { strcpy((char *)toc->section_name, "CHSETTINGS"); entry->hdr.section_key = KEY_CHSETTINGS; entry->hdr.valid = 0; ch_src = (void *)&ch_settings_dummy; ch_data_size = sizeof(struct ch_settings); } memcpy(&entry->ch_data[0], ch_src, ch_data_size); entry->hdr.version = 1; entry->hdr.reserved = 0; toc->section_size = sizeof(struct ch_hdr) + ch_data_size; toc++; memset(toc, 0xff, sizeof(*toc)); gph->size = sbuf->st_size - OMAP_FILE_HDR_SIZE; gph->load_addr = params->addr; if (strncmp(params->imagename, "byteswap", 8) == 0) { do_swap32 = 1; int swapped = 0; uint32_t *data = (uint32_t *)ptr; while (swapped <= (sbuf->st_size / sizeof(uint32_t))) { *data = omapimage_swap32(*data); swapped++; data++; } } }
static void omapimage_set_header(void *ptr, struct stat *sbuf, int ifd, struct image_tool_params *params) { struct ch_toc *toc = (struct ch_toc *)ptr; struct ch_settings *chs = (struct ch_settings *) (ptr + 2 * sizeof(*toc)); struct gp_header *gph = (struct gp_header *)(ptr + OMAP_CH_HDR_SIZE); toc->section_offset = toc_offset(ptr, chs); toc->section_size = sizeof(struct ch_settings); strcpy((char *)toc->section_name, "CHSETTINGS"); chs->section_key = KEY_CHSETTINGS; chs->valid = 0; chs->version = 1; chs->reserved = 0; chs->flags = 0; toc++; memset(toc, 0xff, sizeof(*toc)); gph_set_header(gph, sbuf->st_size - OMAP_CH_HDR_SIZE + GPIMAGE_HDR_SIZE, params->addr, 0); if (strncmp(params->imagename, "byteswap", 8) == 0) { do_swap32 = 1; int swapped = 0; uint32_t *data = (uint32_t *)ptr; const off_t size_in_words = DIV_ROUND_UP(sbuf->st_size, sizeof(uint32_t)); while (swapped < size_in_words) { *data = cpu_to_be32(*data); swapped++; data++; } } }
static void omapimage_set_header(void *ptr, struct stat *sbuf, int ifd, struct mkimage_params *params) { struct ch_toc *toc = (struct ch_toc *)ptr; struct ch_settings *chs = (struct ch_settings *) (ptr + 2 * sizeof(*toc)); struct gp_header *gph = (struct gp_header *)(ptr + OMAP_CH_HDR_SIZE); toc->section_offset = toc_offset(ptr, chs); toc->section_size = sizeof(struct ch_settings); strcpy((char *)toc->section_name, "CHSETTINGS"); chs->section_key = KEY_CHSETTINGS; chs->valid = 0; chs->version = 1; chs->reserved = 0; chs->flags = 0; toc++; memset(toc, 0xff, sizeof(*toc)); gph->size = sbuf->st_size - OMAP_FILE_HDR_SIZE; gph->load_addr = params->addr; }
static void omapimage_set_header(void *ptr, struct stat *sbuf, int ifd, struct mkimage_params *params) { struct ch_toc *toc = (struct ch_toc *)ptr; struct ch_settings *chs = (struct ch_settings *) (ptr + 2 * sizeof(*toc)); struct gp_header *gph = (struct gp_header *)(ptr + OMAP_CH_HDR_SIZE); toc->section_offset = toc_offset(ptr, chs); toc->section_size = sizeof(struct ch_settings); strcpy((char *)toc->section_name, "CHSETTINGS"); chs->section_key = KEY_CHSETTINGS; chs->valid = 0; chs->version = 1; chs->reserved = 0; chs->flags = 0; toc++; memset(toc, 0xff, sizeof(*toc)); gph->size = sbuf->st_size - OMAP_FILE_HDR_SIZE; gph->load_addr = params->addr; if (strncmp(params->imagename, "byteswap", 8) == 0) { do_swap32 = 1; int swapped = 0; uint32_t *data = (uint32_t *)ptr; while (swapped <= (sbuf->st_size / sizeof(uint32_t))) { *data = omapimage_swap32(*data); swapped++; data++; } } }