From 0f6f9bc074de780ca7623bee28e4a078fe44df57 Mon Sep 17 00:00:00 2001 From: kopecdav Date: Mon, 23 Jun 2025 14:59:59 +0200 Subject: [PATCH] feat(core/prodtest): update wpc-info command to return machine readable data. [no changelog] --- core/embed/projects/prodtest/README.md | 5 ++++- core/embed/projects/prodtest/cmd/prodtest_wpc.c | 14 +++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/core/embed/projects/prodtest/README.md b/core/embed/projects/prodtest/README.md index 35b65cc9ff..4ca4d96edc 100644 --- a/core/embed/projects/prodtest/README.md +++ b/core/embed/projects/prodtest/README.md @@ -921,6 +921,8 @@ OK 00000001000000000000000000000000000000000000000000000000000000000000000001000 ### wpc-info Retrieves detailed information from the wireless power receiver, including chip identification, firmware version, configuration settings, and error status. +WARNING: The command will only succeed if the receiver is externally powered (5V present on the VOUT/VRECT test point). + Example: ``` > wpc-info @@ -943,13 +945,14 @@ 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 ``` ### wpc-update Updates the firmware and configuration of the wireless power receiver. -WARNING: The update will only succeed if the receiver is externally powered (5V present on the VOUT test point). +WARNING: The command will only succeed if the receiver is externally powered (5V present on the VOUT/VRECT test point). Example: ``` diff --git a/core/embed/projects/prodtest/cmd/prodtest_wpc.c b/core/embed/projects/prodtest/cmd/prodtest_wpc.c index a6ec219d0f..7098c56954 100644 --- a/core/embed/projects/prodtest/cmd/prodtest_wpc.c +++ b/core/embed/projects/prodtest/cmd/prodtest_wpc.c @@ -63,7 +63,13 @@ static void prodtest_wpc_info(cli_t* cli) { 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, "patch_id 0x%X ", chip_info.patch_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, "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); @@ -78,6 +84,12 @@ static void prodtest_wpc_info(cli_t* cli) { 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); + stwlc38_deinit(); cli_ok(cli, "");