Flashing fuses on custom iMX6SX board

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

Flashing fuses on custom iMX6SX board

Jump to solution
980 Views
Maddis
Contributor IV

Already gone through this thread: https://community.nxp.com/thread/316232

It's marked 'answered' so I made another one because I don't know how it shows.

We have custom iMX6SX based hw. I've already added fsl_otp - support to mfgtool Linux and I have /sys/fsl_otp - directory with content.

 

Problem is to map the content of those files to match the fuses.

 

What we want it BOOT_CFG1 = 0x62 and BOOT_CFG2 = 0xD8.

 

So I did this:

 

echo 0x00000062 > /sys/fsl_otp/HW_OCOTP_CFG1
echo 0x000000D8 > /sys/fsl_otp/HW_OCOTP_CFG2

 

Well, that wasn't right from what I see. Result was this:

 

cat /sys/fsl_otp/HW_OCOTP_CFG1 => 0x1a2369f6 (initial value was 0x1a2369d4 with no previous programming)
cat /sys/fsl_otp/HW_OCOTP_CFG2 => 0x50000ff (initial value was 0x500007f with no previous programming)

 

So there were already blown fuses and result wasn't what we wanted. Did I use from files for those fuse registers or how this should work? Don't want to waste too many CPU for testing.

Labels (2)
0 Kudos
1 Solution
580 Views
brenolima
NXP Employee
NXP Employee

Hi Maddis

For programming 0x450[7:0] BOOT_CFG1 = 0x62 and 0x450[15:8] BOOT_CFG2 = 0xD8 you have to program the fuses in bank 0 word 5.

In that case the correct would be:

- BOOT_CFG1 = 0x62
echo 0x00000062 > /sys/fsl_otp/HW_OCOTP_CFG4


- BOOT_CFG2 = 0xD8
echo 0x0000D800 > /sys/fsl_otp/HW_OCOTP_CFG4

For a more detailed procedure check the posts below:

Burning eFuses on i.MX6 and i.MX7 - i.MXDev Blog 

Setting boot configuration on i.MX - i.MXDev Blog 

Thanks,
Breno Lima

View solution in original post

0 Kudos
2 Replies
580 Views
igorpadykov
NXP Employee
NXP Employee

Hi mc

seems programming was done correctly as:

>cat /sys/fsl_otp/HW_OCOTP_CFG1 => 0x1a2369f6 (initial value was 0x1a2369d4 with no previous programming)

performing echo 0x00000062 > /sys/fsl_otp/HW_OCOTP_CFG1 sets bits 0x20 and 0x2 and this makes
0x1a2369d4 --> 0x1a2369f6

>cat /sys/fsl_otp/HW_OCOTP_CFG2 => 0x50000ff (initial value was 0x500007f with no previous programming)

performing echo 0x000000D8  > /sys/fsl_otp/HW_OCOTP_CFG2 sets bit 0x80 and this makes 0x500007f  --> 0x50000ff

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
581 Views
brenolima
NXP Employee
NXP Employee

Hi Maddis

For programming 0x450[7:0] BOOT_CFG1 = 0x62 and 0x450[15:8] BOOT_CFG2 = 0xD8 you have to program the fuses in bank 0 word 5.

In that case the correct would be:

- BOOT_CFG1 = 0x62
echo 0x00000062 > /sys/fsl_otp/HW_OCOTP_CFG4


- BOOT_CFG2 = 0xD8
echo 0x0000D800 > /sys/fsl_otp/HW_OCOTP_CFG4

For a more detailed procedure check the posts below:

Burning eFuses on i.MX6 and i.MX7 - i.MXDev Blog 

Setting boot configuration on i.MX - i.MXDev Blog 

Thanks,
Breno Lima

0 Kudos