USER GUIDE / SECURITY / EFUSE / OVERVIEW

概述

电子保险丝是一种采用标准 CMOS 逻辑工艺制造的非易失性存储器。EFUSE 的初始值为 0,当其已编程为 1 时,不能再编程回 0。不要试图对任何已编程为 1 的位进行编程,否则会导致整个 EFUSE 阵列处于不可预测的状态。该电气保险丝宏广泛应用于芯片 ID、内存冗余、安全代码、配置设置和功能选择等。

功能

  • 控制 2048 位内部非易失一次性可编程存储器的读写
  • 带保护位的分段管理
  • 保护段和 Special 段的备份
  • 两种读取方法:寄存器读取或 AHB 映射读取
  • 可配置编程和读取时序

框图

EFUSE 结构框图
图 1 EFUSE 结构框图

EFUSE 的结构框图如上图所示,主要包括 EFUSE 控制器和 EFUSE 阵列两部分。所有 1024 位根据其功能被划分为 9 个段。各部分的大小和功能如下表 1 所示。2 号段、3 号段、4 号段和 10 号段外,每个段都有自己的保护位。

4 号段是 2 号段的备份段,由硬件做备份,当 EFUCTRL.Redn 为 1 时,读写 2 号段时硬件可自动读写 4 号段。当映射到 2 号段或 4 号段的保护位被编程时,相应的段将无法再次编程,只能读取。特殊的,在保护段中有 1bit 可以控制 User Key 段和 OS Key 段不能被读取。

9 号段是 6 号段的备份段,由软件做备份。

表1 分部和职能划分
Segment123456789
FunctionCHIPIDProtectionSpecial FunctionProtectionBakRetentionSCBOOTOSKEYUser KeySCBootBak
Bits96161616112256128128256
Mapped Address (Byte)200 | 20B20C | 20D20E | 20F210 | 211212 | 21F220 | 23F240 | 24F250 | 25F260 | 27F
Segment101112131415161718
FunctionPSRAM_INIT_PROTPSRAM_TYPEPSRAM_CFG_REGPSRAM_TPUPSRAM_TRSTPSRAM_TCEMPSRAM_THS_INITPSRAM_TDPD_INITPSRAM_THS
Bits323232323232323232
Mapped Address (Byte)280 | 283284 | 287288 | 28B28C | 28F290 | 293294 | 297298 | 29B29C | 29F2A0 | 2A3
Segment192021222324252627
FunctionPSRAM_TXPHSPSRAM_TXHSPSRAM_TDPDPSRAM_TXPDPDPSRAM_TXDPDPSRAM_COMMAND_TIMINGPSRAM_RW_LATENCYPSRAM_MR_INITPSRAM_CSN_DUMMY
Bits323232323232323232
Mapped Address (Byte)2A4 | 2A72A8 | 2AB2AC | 2AF2B0 | 2B32B4 | 2B72B8 | 2BB2BC | 2BF2C0 | 2C32C4 | 2C7
Segment282930313233343536
FunctionPSRAM_TCQLZPSRAM_MEMORY_SPECIALPSRAM_TRPPSRAM_RWDS_CTRLPSRAM_TRWRPSRAM_Reserved0PSRAM_Reserved1PSRAM_Reserved2Reserved
Bits3232323232323232168
Mapped Address (Byte)2C8 | 2CB2CC | 2CF2D0 | 2D32D4 | 2D72D8 | 2DB2DC | 2DF2E0 | 2E32E4 | 2E72E8 | 2FC
Segment3738
FunctionSpecial Function BakOSC_TRIM
Bits168
Mapped Address (Byte)2FD | 2FE2FF | 2FF
  1. 保护位段存储其他段的写保护位,如果保护位编程为 1,则相应段无法编程。特殊的,当 READ_USER_KEY 为 1 时,User Key 段是不可读的,当 READ_OS_KEY 为 1 时,OS Key 段是不可读的。保护位映射如下表所示。

第 2/4 段:

位映射到 EFUSE 状态寄存器
15PROT_USER_KEY
14WDT_EN
13OSC_TRIM
12DIS_JTAG
11READ_OS_KEY
10READ_USER_KEY
9KEY_RST_RD
8PROT_CHIP_ID
7BOOT_MSC1_SEL
6PROT_SCBOOT_BAK
5PROT_RETETION
4PROT_OS_KEY
3SC_DEC_EN
2SC_RSA_E3
1PROT_SCBOOT
0SC_EN

PSRAM param 段的保护段,25bit 中每个 bit 对应保护 PSRAM param 中的 32bit,该段中 bit0-bit24 按顺序对 0x284~0x2E7 做保护,剩余 bit 为 Reserved。

第 10 段:

位映射到 EFUSE PSRAM状态寄存器
31
30
29
28
27
26
25
24PORT_Reserved2
23PORT_Reserved1
22PORT_Reserved0
21PORT_CR_TRWR
20PORT_CR_RWDS_CTRL
19PORT_CR_TRP
18PORT_CR_MEMORY_SPECIAL
17PORT_CR_TCQLZ
16PORT_CR_CSN_DUMMY
15PORT_CR_MR_INIT
14PORT_CR_RW_LATENCY
13PORT_CR_COMMAND_TIMING
12PORT_CR_TXDPD
11PORT_CR_TXPDPD
10PORT_CR_TDPD
9PORT_CR_TXHS
8PORT_CR_TXPHS
7PORT_CR_THS
6PORT_CR_TDPD_INIT
5PORT_CR_THS_INIT
4PORT_CR_TCEM
3PORT_CR_TRST
2PORT_CR_TPU
1PORT_CR_CFG_REG
0PORT_PSRAM_TYPE
  1. EFUSE 每次可编程一个字节
  2. EFUSE 空间对齐为字节,读取和编程时直接映射到 EFUDATA 寄存器。在编程操作中,EFUDATA 位为 “1”时,将向 EFUSE 编程,位为 “0”时将忽略。