2021-01-26 23:00:12

by Tedd Ho-Jeong An

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

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..773e891cf 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(WW):\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-27 23:53:47

by bluez.test.bot

[permalink] [raw]
Subject: RE: 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=422833

---Test result---

##############################
Test: CheckPatch - PASS

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

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

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



---
Regards,
Linux Bluetooth