trivial: Be less verbose when parsing IHEX files

This commit is contained in:
Richard Hughes 2022-10-27 10:09:49 +01:00
parent 7a481183ee
commit 912a578411
2 changed files with 17 additions and 8 deletions

View File

@ -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

View File

@ -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) {