2021-01-30 00:18:19

by Tedd Ho-Jeong An

[permalink] [raw]
Subject: [PATCH BlueZ v3 1/2] tools/bluemoon: Display FW version of firmware file

From: Tedd Ho-Jeong An <[email protected]>

This patch displays a FW version after parsing the WRITE_BOOT_PARAMS
command in the firmeare file. It also change the display type for
Module vendor and Date in the CSS header to hex for easy read.
---
tools/bluemoon.c | 24 +++++++++++++++++++++---
1 file changed, 21 insertions(+), 3 deletions(-)

diff --git a/tools/bluemoon.c b/tools/bluemoon.c
index 8b62b1e7b..912f4f2a9 100644
--- a/tools/bluemoon.c
+++ b/tools/bluemoon.c
@@ -805,8 +805,10 @@ static void analyze_firmware(const char *path)
le32_to_cpu(css->header_version) >> 16,
le32_to_cpu(css->header_version) & 0xffff);
printf("Module ID:\t%u\n", le32_to_cpu(css->module_id));
- printf("Module vendor:\t%u\n", le32_to_cpu(css->module_vendor));
- printf("Date:\t\t%u\n", le32_to_cpu(css->date));
+ printf("Module vendor:\t0x%x\n", le32_to_cpu(css->module_vendor));
+ printf("Date:\t\t%04x-%02x-%02x\n", le32_to_cpu(css->date) >> 16,
+ le32_to_cpu(css->date) >> 8 & 0xff,
+ le32_to_cpu(css->date) & 0xff);
printf("Size:\t\t%u DWORDs / %u bytes\n", le32_to_cpu(css->size),
le32_to_cpu(css->size) * 4);
printf("Key size:\t%u DWORDs / %u bytes\n",
@@ -840,13 +842,29 @@ static void analyze_firmware(const char *path)
while (firmware_offset < firmware_size) {
uint16_t opcode;
uint8_t dlen;
+ struct cmd_write_boot_params *params;

opcode = get_le16(firmware_data + firmware_offset);
dlen = firmware_data[firmware_offset + 2];

switch (opcode) {
- case CMD_NO_OPERATION:
case CMD_WRITE_BOOT_PARAMS:
+ params = (void *)&firmware_data[firmware_offset + 3];
+ printf("Boot Parameters\n");
+ printf("Boot Address:\t0x%08x\n",
+ le32_to_cpu(params->boot_addr));
+ printf("FW Version(yy):\t%d (0x%02X)\n",
+ params->fw_build_yy + 2000,
+ params->fw_build_yy);
+ printf("FW Version(cw):\t%d (0x%02X)\n",
+ params->fw_build_cw,
+ params->fw_build_cw);
+ printf("FW Version(nn):\t%d (0x%02X)\n",
+ params->fw_build_nn,
+ params->fw_build_nn);
+
+ printf("\n");
+ case CMD_NO_OPERATION:
case CMD_MEMORY_WRITE:
break;
default:
--
2.25.1


2021-01-30 01:29:54

by bluez.test.bot

[permalink] [raw]
Subject: RE: [BlueZ,v3,1/2] tools/bluemoon: Display FW version of firmware file

This is automated email and please do not reply to this email!

Dear submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=424647

---Test result---

##############################
Test: CheckPatch - FAIL
Output:
tools/bluemoon: Add support for checking other firmware file types
WARNING:PREFER_DEFINED_ATTRIBUTE_MACRO: Prefer __packed over __attribute__((packed))
#59: FILE: tools/bluemoon.c:757:
+} __attribute__ ((packed));

- total: 0 errors, 1 warnings, 168 lines checked

NOTE: For some of the reported defects, checkpatch may be able to
mechanically convert to the typical style using --fix or --fix-inplace.

"[PATCH] tools/bluemoon: Add support for checking other firmware file" has style problems, please review.

NOTE: Ignored message types: COMMIT_MESSAGE COMPLEX_MACRO CONST_STRUCT FILE_PATH_CHANGES MISSING_SIGN_OFF PREFER_PACKED SPLIT_STRING SSCANF_TO_KSTRTO

NOTE: If any of the errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.


##############################
Test: CheckGitLint - PASS

##############################
Test: CheckBuild - PASS

##############################
Test: MakeCheck - PASS



---
Regards,
Linux Bluetooth