From: Simon Glass <simon.glass@canonical.com> Add emit_addr() to handle printing load an entry addresses. The helper takes a 'valid' boolean parameter to determine whether to print the address value or 'unavailable'. Combine the two separate if() blocks for the load address. Co-developed-by: Claude <noreply@anthropic.com> Signed-off-by: Simon Glass <simon.glass@canonical.com> --- boot/fit_print.c | 42 ++++++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/boot/fit_print.c b/boot/fit_print.c index 069afbe8567..70199a34c18 100644 --- a/boot/fit_print.c +++ b/boot/fit_print.c @@ -179,6 +179,26 @@ static void emit_desc(struct fit_print_ctx *ctx, int noffset, emit_label_val(ctx, label, ret ? "unavailable" : desc); } +/** + * emit_addr() - print an address property + * @ctx: pointer to FIT print context + * @label: label string to use when printing + * @addr: address value to print + * @valid: true if the address is valid, false to print "unavailable" + * + * Prints an address with the given label. If valid is false, prints + * "unavailable" instead of the address value. + */ +static void emit_addr(struct fit_print_ctx *ctx, const char *label, ulong addr, + bool valid) +{ + emit_label(ctx, label); + if (valid) + printf("0x%08lx\n", addr); + else + printf("unavailable\n"); +} + /** * fit_image_print_data() - prints out the hash node details * @ctx: pointer to FIT print context @@ -335,30 +355,16 @@ void fit_image_print(struct fit_print_ctx *ctx, int image_noffset) if (type == IH_TYPE_KERNEL || type == IH_TYPE_STANDALONE || type == IH_TYPE_FIRMWARE || type == IH_TYPE_RAMDISK || - type == IH_TYPE_FPGA) { + type == IH_TYPE_FPGA || type == IH_TYPE_FLATDT) { ret = fit_image_get_load(fit, image_noffset, &load); - emit_label(ctx, "Load Address"); - if (ret) - printf("unavailable\n"); - else - printf("0x%08lx\n", load); - } - - /* optional load address for FDT */ - if (type == IH_TYPE_FLATDT && - !fit_image_get_load(fit, image_noffset, &load)) { - emit_label(ctx, "Load Address"); - printf("0x%08lx\n", load); + if ((type != IH_TYPE_FLATDT) || !ret) + emit_addr(ctx, "Load Address", load, !ret); } if (type == IH_TYPE_KERNEL || type == IH_TYPE_STANDALONE || type == IH_TYPE_RAMDISK) { ret = fit_image_get_entry(fit, image_noffset, &entry); - emit_label(ctx, "Entry Point"); - if (ret) - printf("unavailable\n"); - else - printf("0x%08lx\n", entry); + emit_addr(ctx, "Entry Point", entry, !ret); } /* Process all hash subnodes of the component image node */ -- 2.43.0