Issue when fuse-program SB3KDK on KW45 through ISP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Issue when fuse-program SB3KDK on KW45 through ISP

1,474 Views
ebadia
Contributor III

We are having issues when trying to program the SB3KDK fuse in our own board with KW45. We are following the AN13883 and using Jupyter utility. But we have also tried directly from a python venv console.

 

The thing is that we can comunicate with our device (via UART), and we can interact using SPSDK tools. But when we try to read-fuse or program-fuse the 0x20, we allways obtain a timeout error:

 

" blhost -p com6 set-property 0x16 1

Response status = 0 (0x0)

Success.

blhost -p com6 fuse-read 0x0A 1

07

Response status = 0 (0x0)

Success.

Response word 1 = 1 (0x1)

Read 1 of 1 bytes.

blhost -p com6 fuse-read 0x22 16

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Response status = 0 (0x0)

Success.

Response word 1 = 16 (0x10)

Read 16 of 16 bytes.

blhost -p com6 get-property 20 1

Response status = 0 (0x0)

Success.

Response word 1 = 188281600 (0xb38f300)

Flash Access Segment Size = 179.6 MiB

blhost -p com6 get-property 21 1

Response status = 0 (0x0)

Success.

Response word 1 = 4294967295 (0xffffffff)

Flash Access Segment Count = -1

blhost -p com6 get-property 22 1

Response status = 0 (0x0)

Success.

Response word 1 = 1 (0x1)

Flash Read Margin = USER

blhost -p com6 fuse-program 0x20 [[1234567891234567891234567891234567891234567891234567891234567891]]

ERROR:spsdk.mboot.mcuboot:RX: No Response, Timeout Error ! (6170ms since start, mcuboot.py:242) McuBootConnectionError: MBoot: Connection issue -> No Response from Device

blhost -p com6 set-property 0x16 0

Response status = 0 (0x0)

Success. "

 

Why is this happening? Why we can fuse-read other fuses, but not the 0x20? Are we missing any step before? We cannot see the debug log indicated as there is nothing on that route. Also, we have checked the lifecycle is in OEM_OPEN

0 Kudos
Reply
8 Replies

1,414 Views
ebadia
Contributor III

Sorry I meant the AN13883 and AN13883SW instead of the AN14003

0 Kudos
Reply

1,448 Views
luis_maravilla
NXP Employee
NXP Employee

Hi

Reviewing the information on this case, the specifications about fuses map direction in 0x20 are described in Reference Manual

Please refer to KW45RM: KW45RM

This document describes the Lyfecycle and fuses, in Table 55 say the Fuse 0x20 is an encryption key used to protect confidentiality of OEM firmware, It can't be reprogram. Only use the blhost -p COMxx get-property 0x20 0 command to get property.

 

Best Regards Luis

0 Kudos
Reply

1,433 Views
ebadia
Contributor III

Hi,

 

Thank you for your response.

 

but according to AN14003 and their attached AN14003SW, this step is needed before sending the sb3 file.

 

it is also said that in the evk, this fuses are already programmed, but when new kw45 on custom bord, this needs to be done.

 

Also Jupyter notebook 5.3 from the AN14003, show how to do it. We are trying to set the same values as sb3kdk from nxp examples (the ones commented on the 5.3 jupyter notebook, step 3), but allways receiving timeout error.

 

 

0 Kudos
Reply

1,406 Views
ebadia
Contributor III

I don 't really understand the value obtained with the command  "%! blhost $UART_CONNECTION get-property 0x20 0" that you comment.

 

As you can see, even if trying to fuse-program the EVK SB3KDK in our own board we receive a Response Timeout.

Captura de pantalla 2025-03-01 211344.png

0 Kudos
Reply

1,343 Views
luis_maravilla
NXP Employee
NXP Employee

Hi

 

Could you help us confirm if the board is in ISP[In-System Programming] Mode setting before running these commands?

Best Regards

Luis

0 Kudos
Reply

1,337 Views
ebadia
Contributor III

Yes, otherwise I couldn't send any of the blhost commands. Am I correct?

0 Kudos
Reply

1,280 Views
ebadia
Contributor III

Doing the same with the EVK we don't have any issues (by sending the same command and SB3KDK that already has). So the jupyter notebook and python environment i consider them correct.

0 Kudos
Reply

1,263 Views
ebadia
Contributor III

We have made a new test, checking the State of 0x16 property before and after sending the fuse-program 0x20:

ebadia_3-1741107229206.png

 

 

The result when applying this to our board is that the property 0x16 is 1 before sending the SB3KDK and 0 after:

ebadia_4-1741107262724.png

 

While in the EVK, the value remains at 1 before and after sending the SB3KDK:

 

ebadia_5-1741107290865.png

 

 

Does this indicate that the KW45 on our board is resetting? Why could be the reason of that? 

0 Kudos
Reply