Lines Matching refs:hdr
107 static void update_cleanup(void *fit, struct update_header *hdr) in update_cleanup() argument
112 list_for_each(node, &hdr->images) { in update_cleanup()
117 if (hdr->shared_buf) in update_cleanup()
118 free(hdr->shared_buf); in update_cleanup()
131 static int update_populate_image(void *fit, struct update_header *hdr) in update_populate_image() argument
164 e->buf = hdr->shared_buf; in update_populate_image()
189 lba_offset = last_lba_offset + hdr->lba_step; in update_populate_image()
200 list_add_tail(&e->node, &hdr->images); in update_populate_image()
218 static void *update_download_hdr(struct update_header *hdr) in update_download_hdr() argument
249 static int hdr_checksum_verify(void *fit, struct update_header *hdr) in hdr_checksum_verify() argument
273 static void print_hdr_local(struct update_header *hdr, in print_hdr_local() argument
277 printf(" version: %d\n", hdr->version); in print_hdr_local()
278 printf(" rollback_idx: %d\n", hdr->rollback_idx); in print_hdr_local()
279 printf(" force_update: %d\n", hdr->force_update); in print_hdr_local()
280 printf(" MB: %d\n", hdr->mb); in print_hdr_local()
281 printf(" lba_step: 0x%08x\n", hdr->lba_step); in print_hdr_local()
283 (ulong)hdr->shared_buf, (ulong)hdr->shared_buf + hdr->mb * SZ_1M); in print_hdr_local()
284 printf(" spec_partition: %s\n\n", hdr->spec_partition); in print_hdr_local()
293 static int hdr_param_verify(void *fit, struct update_header *hdr, in hdr_param_verify() argument
300 hdr->version = fdtdec_get_uint(fit, 0, "version", 0); in hdr_param_verify()
301 hdr->rollback_idx = fdtdec_get_uint(fit, conf, "rollback-index", 0); in hdr_param_verify()
302 hdr->force_update = fdtdec_get_uint(fit, conf, "force_update", 0); in hdr_param_verify()
303 hdr->mb = fdtdec_get_uint(fit, conf, "image-size-MB", 0); in hdr_param_verify()
304 size = hdr->mb * SZ_1M; in hdr_param_verify()
305 hdr->lba_step = size / 512; in hdr_param_verify()
307 hdr->shared_buf = malloc(size); in hdr_param_verify()
308 if (!hdr->shared_buf) in hdr_param_verify()
340 print_hdr_local(hdr, local); in hdr_param_verify()
343 if (hdr->force_update) { in hdr_param_verify()
347 if (hdr->version < local->version) { in hdr_param_verify()
349 hdr->version, local->version); in hdr_param_verify()
363 static int update_verify_hdr(void *fit, struct update_header *hdr, in update_verify_hdr() argument
386 ret = hdr_checksum_verify(fit, hdr); in update_verify_hdr()
393 ret = hdr_param_verify(fit, hdr, local, conf); in update_verify_hdr()
402 static int update_local_info(void *fit, struct update_header *hdr) in update_local_info() argument
408 ret = tftpfw_version_set(hdr->version); in update_local_info()
413 printf("fw_version=%d ", hdr->version); in update_local_info()
416 ret = fit_write_trusty_rollback_index(hdr->rollback_idx); in update_local_info()
419 printf("rollback_idx=%d ", hdr->rollback_idx); in update_local_info()
426 static int update_ignore_image(void *fit, struct update_header *hdr, in update_ignore_image() argument
434 if (!strcmp(hdr->current_slot, slot_suffix)) in update_ignore_image()
438 if (hdr->spec_partition && strcmp(e->part_name, hdr->spec_partition)) in update_ignore_image()
528 static int update_write_gpt(void *fit, struct update_header *hdr) in update_write_gpt() argument
555 e->buf = hdr->shared_buf; in update_write_gpt()
613 struct update_header *hdr = &update_hdr; in do_tftp_full_update() local
628 memset(hdr, 0, sizeof(*hdr)); in do_tftp_full_update()
658 hdr->spec_partition = part_str; in do_tftp_full_update()
659 INIT_LIST_HEAD(&hdr->images); in do_tftp_full_update()
661 fit = update_download_hdr(hdr); in do_tftp_full_update()
668 ret = update_verify_hdr(fit, hdr, local); in do_tftp_full_update()
675 ret = update_write_gpt(fit, hdr); in do_tftp_full_update()
681 ret = update_populate_image(fit, hdr); in do_tftp_full_update()
687 list_for_each(node, &hdr->images) { in do_tftp_full_update()
692 if (update_ignore_image(fit, hdr, e)) in do_tftp_full_update()
713 if (hdr->spec_partition) { in do_tftp_full_update()
714 TFTPUD_E("No %s partition was found\n", hdr->spec_partition); in do_tftp_full_update()
721 if (!hdr->spec_partition) in do_tftp_full_update()
722 update_local_info(fit, hdr); in do_tftp_full_update()
724 update_cleanup(fit, hdr); in do_tftp_full_update()