mirror of
https://git.proxmox.com/git/fwupd
synced 2025-08-15 04:23:21 +00:00
trivial: Be less verbose when parsing IHEX files
This commit is contained in:
parent
7a481183ee
commit
912a578411
@ -36,7 +36,8 @@ with a non-standard filesystem layout.
|
|||||||
## Shared libfwupdplugin
|
## Shared libfwupdplugin
|
||||||
|
|
||||||
* `FU_HID_DEVICE_VERBOSE` shows HID traffic
|
* `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_UDEV_DEVICE_DEBUG` shows more information about UDEV devices, including parents
|
||||||
* `FU_USB_DEVICE_DEBUG` shows more information about USB devices
|
* `FU_USB_DEVICE_DEBUG` shows more information about USB devices
|
||||||
* `FU_MEI_DEVICE_DEBUG` shows MEI reads and writes
|
* `FU_MEI_DEVICE_DEBUG` shows MEI reads and writes
|
||||||
|
@ -257,6 +257,7 @@ fu_ihex_firmware_parse(FuFirmware *firmware,
|
|||||||
guint32 addr_last = 0x0;
|
guint32 addr_last = 0x0;
|
||||||
guint32 img_addr = G_MAXUINT32;
|
guint32 img_addr = G_MAXUINT32;
|
||||||
guint32 seg_addr = 0x0;
|
guint32 seg_addr = 0x0;
|
||||||
|
gboolean is_debug = g_getenv("FU_IHEX_FIRMWARE_VERBOSE") != NULL;
|
||||||
g_autoptr(GBytes) img_bytes = NULL;
|
g_autoptr(GBytes) img_bytes = NULL;
|
||||||
g_autoptr(GByteArray) buf = g_byte_array_new();
|
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 addr = rcd->addr + seg_addr + abs_addr;
|
||||||
guint32 len_hole;
|
guint32 len_hole;
|
||||||
|
|
||||||
g_debug("%s:", fu_ihex_firmware_record_type_to_string(rcd->record_type));
|
/* debug */
|
||||||
g_debug(" length:\t0x%02x", rcd->data->len);
|
if (is_debug) {
|
||||||
g_debug(" addr:\t0x%08x", addr);
|
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 */
|
/* sanity check */
|
||||||
if (rcd->record_type != FU_IHEX_FIRMWARE_RECORD_TYPE_EOF && rcd->data->len == 0) {
|
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))
|
error))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
abs_addr = (guint32)addr16 << 16;
|
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;
|
break;
|
||||||
case FU_IHEX_FIRMWARE_RECORD_TYPE_START_LINEAR:
|
case FU_IHEX_FIRMWARE_RECORD_TYPE_START_LINEAR:
|
||||||
if (!fu_memread_uint32_safe(rcd->data->data,
|
if (!fu_memread_uint32_safe(rcd->data->data,
|
||||||
@ -380,7 +385,8 @@ fu_ihex_firmware_parse(FuFirmware *firmware,
|
|||||||
G_BIG_ENDIAN,
|
G_BIG_ENDIAN,
|
||||||
error))
|
error))
|
||||||
return FALSE;
|
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;
|
break;
|
||||||
case FU_IHEX_FIRMWARE_RECORD_TYPE_EXTENDED_SEGMENT:
|
case FU_IHEX_FIRMWARE_RECORD_TYPE_EXTENDED_SEGMENT:
|
||||||
if (!fu_memread_uint16_safe(rcd->data->data,
|
if (!fu_memread_uint16_safe(rcd->data->data,
|
||||||
@ -392,7 +398,8 @@ fu_ihex_firmware_parse(FuFirmware *firmware,
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
/* segment base address, so ~1Mb addressable */
|
/* segment base address, so ~1Mb addressable */
|
||||||
seg_addr = (guint32)addr16 * 16;
|
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;
|
break;
|
||||||
case FU_IHEX_FIRMWARE_RECORD_TYPE_START_SEGMENT:
|
case FU_IHEX_FIRMWARE_RECORD_TYPE_START_SEGMENT:
|
||||||
/* initial content of the CS:IP registers */
|
/* initial content of the CS:IP registers */
|
||||||
@ -403,7 +410,8 @@ fu_ihex_firmware_parse(FuFirmware *firmware,
|
|||||||
G_BIG_ENDIAN,
|
G_BIG_ENDIAN,
|
||||||
error))
|
error))
|
||||||
return FALSE;
|
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;
|
break;
|
||||||
case FU_IHEX_FIRMWARE_RECORD_TYPE_SIGNATURE:
|
case FU_IHEX_FIRMWARE_RECORD_TYPE_SIGNATURE:
|
||||||
if (got_sig) {
|
if (got_sig) {
|
||||||
|
Loading…
Reference in New Issue
Block a user