fix(prodtest): fix wpc-info command output
What changed, and why it matters
This commit fixes the formatting of a debug/production-test command output for a wireless charging chip. It changes how numbers are printed (decimal to hexadecimal) and moves the data values from a 'PROGRESS' line to the 'OK' line. There is no security issue here—it's a cosmetic/output-formatting fix in a factory testing tool.
No security action required. Treat as a normal bugfix for production-test output formatting.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The patch corrects the wpc-info command in the Trezor prodtest firmware. It switches cli_trace format specifiers from %d to %X for chip_id, chip_rev, cust_id, and other fields, removes trailing spaces before newlines, prefixes the device_id with 0x, and replaces cli_progress followed by cli_ok with a single cli_ok call that includes the data values. The README example is updated to match. This is purely a presentation change in a production-test CLI command.
Changed components
core/embed/projects/prodtest/cmd/prodtest_wpc.ccore/embed/projects/prodtest/README.mdInspect captured patch +25 / −28
diff --git a/core/embed/projects/prodtest/.changelog.d/5603.fixed b/core/embed/projects/prodtest/.changelog.d/5603.fixed
new file mode 100644
index 000000000..cff26324c
--- /dev/null
+++ b/core/embed/projects/prodtest/.changelog.d/5603.fixed
@@ -0,0 +1 @@
+Fixed wpc-info command - fixed hex formatting, args moved to OK.
diff --git a/core/embed/projects/prodtest/README.md b/core/embed/projects/prodtest/README.md
index c2260d158..7f5d519ce 100644
--- a/core/embed/projects/prodtest/README.md
+++ b/core/embed/projects/prodtest/README.md
@@ -1161,7 +1161,7 @@ Example:
```
> wpc-info
# Reading STWLC38 info...
-# chip_id 0x38
+# chip_id 0x26
# chip_rev 0x3
# cust_id 0x0
# rom_id 0x161
@@ -1179,8 +1179,7 @@ Example:
# nvm_config_err: 0x0
# nvm_patch_err: 0x0
# nvm_prod_info_err: 0x0
-PROGRESS 0x38 0x4 0x0 0x161 0x1645 0x1D7C 0xC 0x1 0x52353038385055AA09446D0655AA55AA 0x0
-OK
+OK 0x26 0x4 0x0 0x161 0x1645 0x1D7C 0xC 0x1 0x52353038385055AA09446D0655AA55AA 0x0
```
### wpc-update
diff --git a/core/embed/projects/prodtest/cmd/prodtest_wpc.c b/core/embed/projects/prodtest/cmd/prodtest_wpc.c
index 7098c5695..5f0a9e94b 100644
--- a/core/embed/projects/prodtest/cmd/prodtest_wpc.c
+++ b/core/embed/projects/prodtest/cmd/prodtest_wpc.c
@@ -59,41 +59,38 @@ static void prodtest_wpc_info(cli_t* cli) {
goto cleanup;
}
- cli_trace(cli, "chip_id 0x%d ", chip_info.chip_id);
- cli_trace(cli, "chip_rev 0x%d ", chip_info.chip_rev);
- cli_trace(cli, "cust_id 0x%d ", chip_info.cust_id);
- cli_trace(cli, "rom_id 0x%X ", chip_info.rom_id);
+ cli_trace(cli, "chip_id 0x%X", chip_info.chip_id);
+ cli_trace(cli, "chip_rev 0x%X", chip_info.chip_rev);
+ cli_trace(cli, "cust_id 0x%X", chip_info.cust_id);
+ cli_trace(cli, "rom_id 0x%X", chip_info.rom_id);
if (chip_info.patch_id == 0) {
cli_trace(cli, "patch_id 0x%X (This value may be visible after reset)",
chip_info.patch_id);
} else {
- cli_trace(cli, "patch_id 0x%X ", chip_info.patch_id);
+ cli_trace(cli, "patch_id 0x%X", chip_info.patch_id);
}
- cli_trace(cli, "cfg_id 0x%X ", chip_info.cfg_id);
- cli_trace(cli, "pe_id 0x%X ", chip_info.pe_id);
- cli_trace(cli, "op_mode 0x%X ", chip_info.op_mode);
- cli_trace(cli, "device_id %s", device_id);
+ cli_trace(cli, "cfg_id 0x%X", chip_info.cfg_id);
+ cli_trace(cli, "pe_id 0x%X", chip_info.pe_id);
+ cli_trace(cli, "op_mode 0x%X", chip_info.op_mode);
+ cli_trace(cli, "device_id 0x%s", device_id);
cli_trace(cli, "");
- cli_trace(cli, "sys_err 0x%X ", chip_info.sys_err);
- cli_trace(cli, " core_hard_fault: 0x%X ", chip_info.core_hard_fault);
- cli_trace(cli, " nvm_ip_err: 0x%X ", chip_info.nvm_ip_err);
- cli_trace(cli, " nvm_boot_err: 0x%X ", chip_info.nvm_boot_err);
- cli_trace(cli, " nvm_pe_error: 0x%X ", chip_info.nvm_pe_error);
- cli_trace(cli, " nvm_config_err: 0x%X ", chip_info.nvm_config_err);
- cli_trace(cli, " nvm_patch_err: 0x%X ", chip_info.nvm_patch_err);
- cli_trace(cli, " nvm_prod_info_err: 0x%X ", chip_info.nvm_prod_info_err);
-
- cli_progress(cli, "0x%d 0x%d 0x%d 0x%X 0x%X 0x%X 0x%X 0x%X 0x%s 0x%X",
- chip_info.chip_id, chip_info.chip_rev, chip_info.cust_id,
- chip_info.rom_id, chip_info.patch_id, chip_info.cfg_id,
- chip_info.pe_id, chip_info.op_mode, device_id,
- chip_info.sys_err);
+ cli_trace(cli, "sys_err 0x%X", chip_info.sys_err);
+ cli_trace(cli, " core_hard_fault: 0x%X", chip_info.core_hard_fault);
+ cli_trace(cli, " nvm_ip_err: 0x%X", chip_info.nvm_ip_err);
+ cli_trace(cli, " nvm_boot_err: 0x%X", chip_info.nvm_boot_err);
+ cli_trace(cli, " nvm_pe_error: 0x%X", chip_info.nvm_pe_error);
+ cli_trace(cli, " nvm_config_err: 0x%X", chip_info.nvm_config_err);
+ cli_trace(cli, " nvm_patch_err: 0x%X", chip_info.nvm_patch_err);
+ cli_trace(cli, " nvm_prod_info_err: 0x%X", chip_info.nvm_prod_info_err);
+
+ cli_ok(cli, "0x%X 0x%X 0x%X 0x%X 0x%X 0x%X 0x%X 0x%X 0x%s 0x%X",
+ chip_info.chip_id, chip_info.chip_rev, chip_info.cust_id,
+ chip_info.rom_id, chip_info.patch_id, chip_info.cfg_id,
+ chip_info.pe_id, chip_info.op_mode, device_id, chip_info.sys_err);
stwlc38_deinit();
- cli_ok(cli, "");
-
cleanup:
// initlize power manager again
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.