From 912a57841147ceaac47e06bb8d36c4edd82310fb Mon Sep 17 00:00:00 2001 From: Richard Hughes Date: Thu, 27 Oct 2022 10:09:49 +0100 Subject: [PATCH] trivial: Be less verbose when parsing IHEX files --- docs/env.md | 3 ++- libfwupdplugin/fu-ihex-firmware.c | 22 +++++++++++++++------- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/docs/env.md b/docs/env.md index 078c992f3..8f80af156 100644 --- a/docs/env.md +++ b/docs/env.md @@ -36,7 +36,8 @@ with a non-standard filesystem layout. ## Shared libfwupdplugin * `FU_HID_DEVICE_VERBOSE` shows HID traffic -* `FU_SREC_FIRMWARE_VERBOSE` shows more information about parsing +* `FU_SREC_FIRMWARE_VERBOSE` shows more information about parsing Motorola S-record files +* `FU_IHEX_FIRMWARE_VERBOSE` shows more information about parsing Intel hex files * `FU_UDEV_DEVICE_DEBUG` shows more information about UDEV devices, including parents * `FU_USB_DEVICE_DEBUG` shows more information about USB devices * `FU_MEI_DEVICE_DEBUG` shows MEI reads and writes diff --git a/libfwupdplugin/fu-ihex-firmware.c b/libfwupdplugin/fu-ihex-firmware.c index 8a2df6df8..af223f899 100644 --- a/libfwupdplugin/fu-ihex-firmware.c +++ b/libfwupdplugin/fu-ihex-firmware.c @@ -257,6 +257,7 @@ fu_ihex_firmware_parse(FuFirmware *firmware, guint32 addr_last = 0x0; guint32 img_addr = G_MAXUINT32; guint32 seg_addr = 0x0; + gboolean is_debug = g_getenv("FU_IHEX_FIRMWARE_VERBOSE") != NULL; g_autoptr(GBytes) img_bytes = NULL; g_autoptr(GByteArray) buf = g_byte_array_new(); @@ -267,9 +268,12 @@ fu_ihex_firmware_parse(FuFirmware *firmware, guint32 addr = rcd->addr + seg_addr + abs_addr; guint32 len_hole; - g_debug("%s:", fu_ihex_firmware_record_type_to_string(rcd->record_type)); - g_debug(" length:\t0x%02x", rcd->data->len); - g_debug(" addr:\t0x%08x", addr); + /* debug */ + if (is_debug) { + g_debug("%s:", fu_ihex_firmware_record_type_to_string(rcd->record_type)); + g_debug(" length:\t0x%02x", rcd->data->len); + g_debug(" addr:\t0x%08x", addr); + } /* sanity check */ if (rcd->record_type != FU_IHEX_FIRMWARE_RECORD_TYPE_EOF && rcd->data->len == 0) { @@ -370,7 +374,8 @@ fu_ihex_firmware_parse(FuFirmware *firmware, error)) return FALSE; abs_addr = (guint32)addr16 << 16; - g_debug(" abs_addr:\t0x%02x on line %u", abs_addr, rcd->ln); + if (is_debug) + g_debug(" abs_addr:\t0x%02x on line %u", abs_addr, rcd->ln); break; case FU_IHEX_FIRMWARE_RECORD_TYPE_START_LINEAR: if (!fu_memread_uint32_safe(rcd->data->data, @@ -380,7 +385,8 @@ fu_ihex_firmware_parse(FuFirmware *firmware, G_BIG_ENDIAN, error)) return FALSE; - g_debug(" abs_addr:\t0x%08x on line %u", abs_addr, rcd->ln); + if (is_debug) + g_debug(" abs_addr:\t0x%08x on line %u", abs_addr, rcd->ln); break; case FU_IHEX_FIRMWARE_RECORD_TYPE_EXTENDED_SEGMENT: if (!fu_memread_uint16_safe(rcd->data->data, @@ -392,7 +398,8 @@ fu_ihex_firmware_parse(FuFirmware *firmware, return FALSE; /* segment base address, so ~1Mb addressable */ seg_addr = (guint32)addr16 * 16; - g_debug(" seg_addr:\t0x%08x on line %u", seg_addr, rcd->ln); + if (is_debug) + g_debug(" seg_addr:\t0x%08x on line %u", seg_addr, rcd->ln); break; case FU_IHEX_FIRMWARE_RECORD_TYPE_START_SEGMENT: /* initial content of the CS:IP registers */ @@ -403,7 +410,8 @@ fu_ihex_firmware_parse(FuFirmware *firmware, G_BIG_ENDIAN, error)) return FALSE; - g_debug(" seg_addr:\t0x%02x on line %u", seg_addr, rcd->ln); + if (is_debug) + g_debug(" seg_addr:\t0x%02x on line %u", seg_addr, rcd->ln); break; case FU_IHEX_FIRMWARE_RECORD_TYPE_SIGNATURE: if (got_sig) {