Fuse API

Published on May 31, 2013

Archived Notice

This article has been archived and may contain broken links, photos and out-of-date information. If you have any questions, please Contact Us.

The i.MX6 CPU has one-time-programmable (otp) fuses which can be used by SoCs to store various permanent configuration and data. Some common uses include boot configuration, security configuration, MAC addresses, etc. We only modify the following fuse words:

wordvalue
0x50x18000030
0x60x00000010
0x22 and 0x23MAC address

Thanks to a patch by Thilo Jeremias, we've been using the 'imxotp' command to set fuses. The process looked like this:

U-Boot > imxotp blow --force 5 0x18000030
U-Boot > imxotp blow --force 6 0x00000010
U-Boot > imxotp blow --force 0x23 0x19
U-Boot > imxotp blow --force 0x22 ...low bits of mac address

Recently, Benoît Thébaudeau developed the fuse API and got it accepted into mainline, so we're making the transition. The new commands look like this:

U-Boot > fuse prog 0 5 0x18000030
U-Boot > fuse prog 0 6 0x00000010
U-Boot > fuse prog 4 3 0x19
U-Boot > fuse prog 4 2 ...low bits of mac address

Note that the fuses are arranged in banks of 8 words so for example, 0x22 = 34 = bank 4 word 2. For more information about the Fuse API see the README