The NXP i.MX95 CPU provides a set of one-time programmable bits (eFuses) organized in a fuse array.
Kernel configuration
You can manage the OTP driver support through the kernel configuration option:
-
i.MX FSB/S400-API ocotp fuse box support (
CONFIG_NVMEM_IMX_OCOTP_FSB_S400)
This option gives you read-only access to the OTP bits and is enabled as built-in on the ConnectCore 95 default kernel configuration file.
| OTP memory write access is not yet supported on Linux. |
Kernel driver
The OTP memory driver is located at:
| File | Description |
|---|---|
i.MX FSB/S400-API ocotp fuse box support |
Device tree bindings
The OTP bits are managed by EdgeLock Enclave security module.
The device tree bindings for the OTP bits are documented at Documentation/devicetree/bindings/nvmem/imx-ocotp.yaml.
ocotp: efuse@47510000 {
compatible = "fsl,imx95-ocotp";
reg = <0x0 0x47510000 0x0 0x10000>;
#address-cells = <1>;
#size-cells = <1>;
eth_mac0: mac-address@0 {
reg = <0x0514 0x6>;
};
eth_mac1: mac-address@1 {
reg = <0x1514 0x6>;
};
eth_mac2: mac-address@2 {
reg = <0x2514 0x6>;
};
};
OTP user space usage
The OTP words are accessible (read-only) through the sysfs at /sys/bus/nvmem/devices/fsb_s400_fuse0/nvmem.
# hexdump -e '"%08_ax: " 4/4 "%08x " "\n"' /sys/bus/nvmem/devices/fsb_s400_fuse0/nvmem
00000000: 000000db 00000000 00000000 00000000
00000010: 00000000 00000000 00000000 00000000
00000020: 00000000 00008017 00003400 00000000
00000030: 6e5f04dd 00000006 00050916 65193005
00000040: 00000000 00015e74 00000000 00000000
00000050: 00000080 00000000 00000000 00000000
00000060: 00000000 00000000 00000000 00000000
*
00000090: 00000000 00000000 b561bc2d 007a65d4
000000a0: b561bc2d 005b65d4 7707083b 80000000
000000b0: 00040000 00000000 00000000 00000000
000000c0: b5a90454 eb41d172 adf4aa88 1831ee83
000000d0: 00000000 00000000 00000000 00000000
*
00000500: 00005067 00000000 00000000 00000000
00000510: 00000000 00000000 00000000 00000000
00000520: 00000001 1d0835af 55002001 100052e0
00000530: bf00d109 10011508 2000e001 1001151c
00000540: 68092303 10011548 bf004019 00000000
00000550: 00000000 00000000 00000000 00000000
*
00000980: 00000000 00000000