Troubleshooting guide
The MfgTool logs the command and response from the device into the MfgTool.log file. When the device returns a failure code for a command or times out or for any other reason, the MfgTool UI indicates the occurrence of the failure. The cause can be diagnosed by inspecting the MfgTool.log file. To open the MfgTool.log file, it is recommended to stop the MfgTool using the “Stop” button, because the MfgTool continuously logs information to the file.
Example:
In this example, the “Get Property 1” command was sent to two devices. One device failed and one succeeded. Here is the corresponding MfgTool UI:
UI showing successful update for the first device and error for the second device
The red progress bar indicates that the device connected to the Hub 4-Port 1 failed. The corresponding result, logged to the MfgTool.log file looks as follows:
ModuleID[2] LevelID[10]: CmdOperation[0] device changed and reset to state 0
ModuleID[2] LevelID[10]: ExecuteCommand--Blhost[WndIndex:0], Body is get-property 1
ModuleID[2] LevelID[10]: CmdOperation[1] device changed and reset to state 0
ModuleID[2] LevelID[10]: ExecuteCommand--Blhost[WndIndex:1], Body is get-property 1
ModuleID[2] LevelID[10]: Get Property 1 [WndIndex:0] {
"command" : "get-property",
"response" : [ 1258357504 ],
"status" : {
"description" : "0 (0x0) Success.",
"value" : 0
}
}
ModuleID[2] LevelID[10]: Get Property 1 [WndIndex:1] {
"command" : "ping",
"response" : [],
"status" : {
"description" : "10500 (0x2904) No response received for ping command.",
"value" : 10500
}
}
The “WndIndex” shows the device index on the MfgTool UI for which the results are logged. The first two lines indicate the get-property 1 sent to two devices with WndIndex 0 and 1.
The next lines are the capture of the blhost output on the stdout. The blhost output suggests that one device did not respond to the ping sent by the blhost and returned error code 10500. The other device returned success code (0) for the Get Property 1 command and the response text shows the exact value returned by the device for the Get Property 1 command.
Examples of common failure error messages in the log
Cannot find ..\blhost\win\blhost.exe
The failure reports for missing blhost.exe in the folder blhost\win. The tool searches for blhost.exe in the bin\tools\blhost\win folder. Make sure it is available in the correct folder.
Parent topic:Examples of common failure error messages in the log
No response received for the ping command
{
"command" : "flash-erase-all-unsecure",
"response" : [],
"status" : {
"description" : "10000 (0x2710) kStatus_UnknownCommand",
"value" : 10000
}
}
There could be several reasons for such error. Here are some troubleshooting steps:
See the reference manual for the device to ensure that the device is supported by the MCU bootloader.
Check whether the device is powered up.
The device may boot off the image on the flash and not the MCU bootloader image from the ROM or flash. Erase the flash memory and try again to enable the device to boot into the MCU bootloader mode.
Direct boot feature can be enabled. Erase the flash and try again to boot into the MCU bootloader.
Parent topic:Examples of common failure error messages in the log
UnknownCommand
{
"command" : "flash-erase-all-unsecure",
"response" : [],
"status" : {
"description" : "10000 (0x2710) kStatus_UnknownCommand",
"value" : 10000
}
}
The blhost.exe can execute all MCU bootloader commands. However, the command itself may not be supported by the target MCU bootloader device. See the ROM Bootloader/Flashloader chapter of the device reference manual to check whether the command is supported.
Parent topic:Examples of common failure error messages in the log
Command disallowed when security is enabled
{
"command" : "flash-erase-all",
"response" : [],
"status" : {
"description" : "10001 (0x2711) Command disallowed when security is enable
d.",
"value" : 10001
}
}
The device is in a secure state and cannot be programmed. To program a secured device, add the unlock command to the ucl2.xml file.
Parent topic:Examples of common failure error messages in the log
MemoryRangeInvalid
{
"command" : "write-memory",
"response" : [],
"status" : {
"description" : "10200 (0x27D8) kStatusMemoryRangeInvalid",
"value" : 10200
}
}
The memory range may be in the reserved region used by the bootloader. See the device reference manual for the available memory region to program the flash and fix the address range for the command accordingly.
Parent topic:Examples of common failure error messages in the log
FlashCommandFailure
{
"command" : "write-memory",
"response" : [],
"status" : {
"description" : "105 (0x69) kStatus_FlashCommandFailure",
"value" : 105
}
}
The possible cause for the failure may be the flash region not being erased before writing to it. A flash-erase-region command must be called before writing to it.
Parent topic:Examples of common failure error messages in the log
Parent topic:Troubleshooting guide