概述

OTPC 是一种基于反熔丝工艺的嵌入式非易失性存储器,具备极高的硬件安全等级。其核心特性在于数据的不可篡改性:物理区域的默认初始状态为 1,仅支持一次性、不可逆地将其编程为 0。

逻辑区域则是对物理区域进行的虚拟扩展。通过特定的映射算法,可以将物理区域的“一次性写入”特性转化为逻辑区域的“可多次修改”功能,这样用户就可以在一定限制内多次更新配置信息。

OTP 布局

OTP 的布局如下图所示:

RTL8721Dx:
../../../_images/otp_layout_dplus_21Dx.svg

备注

关于 OTP 各分区的详细布局,参考相应的 用户手册 文档。

物理区域

物理区域的大小 0x800 字节。其布局已经被 Realtek 预先定义,包括映射区域、安全区域、用户自定义物理区域、ROM 代码补丁区域、隐藏物理区域。

小心

物理区域仅支持一次性、不可逆地从 1 改写为 0,请谨慎操作。

物理区域分区

地址

描述

使用方法

映射区域

(0x000-0x1FF, 512 字节)

映射到逻辑区域

-

安全区域

(0x200-0x37F, 384 字节)

存放各类密钥和相关配置

安全区域使用方法

用户自定义物理区域

(0x380-0x4FF, 384 字节)

用户自由使用

用户自定义物理区域使用方法

ROM 代码补丁 区域

(0x500-0x6FF, 512 字节)

用于在 ROM 中加入补丁

ROM 代码补丁 区域使用方法

隐藏物理区域

(0x700-0x7FF, 256字节)

用于 RMA 等功能

隐藏物理区域使用方法

逻辑区域

逻辑区域(0x000 ~ 0x3FF,1024 字节)是基于物理映射区域(0x000 ~ 0x1FF,512 字节)通过 Realtek 私有协议扩展的虚拟空间,支持数据的多次修改。该区域提供了范围更广的 0x400 字节可寻址空间,这种地址扩展是通过映射机制实现的逻辑抽象,而非物理容量的增加。用户仅需对需要的逻辑地址进行编程,无需关注底层的物理位映射细节。

映射关系如下图所示:

../../../_images/otp_mapping_logic.svg

逻辑区域的每块数据都要占用映射区域的一个帧,硬件会顺序扫描映射区域各个帧的内容,将数据映射到逻辑区域。当多个帧映射到逻辑区域的同一个地址的时候,硬件会采用最后一个帧的数据,这使得逻辑区域可以被多次修改。

备注

  • 逻辑区域和映射区域的详细映射关系,参考相应的 用户手册 文档。

  • 每次修改逻辑区域的值,都要占用映射区域的一个帧,因此当映射区域被写满,逻辑区域将无法再被修改。

逻辑区域布局已经被 Realtek 预先定义,包括系统数据区域、用户自定义 MTP 区域、校准区域等。

RTL8721Dx:

逻辑区域分区

地址

描述

使用方法

系统数据区域

(0x000-0x01F, 32 字节)

存放系统数据

系统数据使用方法

Wi-Fi Calibration 区域

(0x020-0x13F, 288 字节)

存放 Wi-Fi 校准数据。

-

HCI-USB

(0x150-0x15F, 16 字节)

存放 USB 设备相关的配置数据。

-

Cap-Touch Calibration 区域

(0x160-0x16F, 16 字节)

存放 Cap-Touch 校准数据。

-

用户自定义 MTP 区域

(0x170-0x19F, 48 字节)

用户自由使用。

用户自定义 MTP 区域使用方法

BT parameters 区域

(0x1B0-0x1FF, 80 字节)

存放 BT 的参数。

-