概述
OTPC 是一种基于反熔丝工艺的嵌入式非易失性存储器,具备极高的硬件安全等级。其核心特性在于数据的不可篡改性:物理区域的默认初始状态为 1,仅支持一次性、不可逆地将其编程为 0。
逻辑区域则是对物理区域进行的虚拟扩展。通过特定的映射算法,可以将物理区域的“一次性写入”特性转化为逻辑区域的“可多次修改”功能,这样用户就可以在一定限制内多次更新配置信息。
OTP 布局
OTP 的布局如下图所示:
备注
关于 OTP 各分区的详细布局,参考相应的 用户手册 文档。
物理区域
物理区域的大小 0x800 字节。其布局已经被 Realtek 预先定义,包括映射区域、安全区域、用户自定义物理区域、ROM 代码补丁区域、隐藏物理区域。
小心
物理区域仅支持一次性、不可逆地从 1 改写为 0,请谨慎操作。
物理区域分区 |
地址 |
描述 |
使用方法 |
|---|---|---|---|
映射区域 |
(0x000-0x1FF, 512 字节) |
映射到逻辑区域 |
- |
安全区域 |
(0x200-0x37F, 384 字节) |
存放各类密钥和相关配置 |
|
用户自定义物理区域 |
(0x380-0x4FF, 384 字节) |
用户自由使用 |
|
ROM 代码补丁 区域 |
(0x500-0x6FF, 512 字节) |
用于在 ROM 中加入补丁 |
|
隐藏物理区域 |
(0x700-0x7FF, 256字节) |
用于 RMA 等功能 |
逻辑区域
逻辑区域(0x000 ~ 0x3FF,1024 字节)是基于物理映射区域(0x000 ~ 0x1FF,512 字节)通过 Realtek 私有协议扩展的虚拟空间,支持数据的多次修改。该区域提供了范围更广的 0x400 字节可寻址空间,这种地址扩展是通过映射机制实现的逻辑抽象,而非物理容量的增加。用户仅需对需要的逻辑地址进行编程,无需关注底层的物理位映射细节。
映射关系如下图所示:
逻辑区域的每块数据都要占用映射区域的一个帧,硬件会顺序扫描映射区域各个帧的内容,将数据映射到逻辑区域。当多个帧映射到逻辑区域的同一个地址的时候,硬件会采用最后一个帧的数据,这使得逻辑区域可以被多次修改。
备注
逻辑区域和映射区域的详细映射关系,参考相应的 用户手册 文档。
每次修改逻辑区域的值,都要占用映射区域的一个帧,因此当映射区域被写满,逻辑区域将无法再被修改。
逻辑区域布局已经被 Realtek 预先定义,包括系统数据区域、用户自定义 MTP 区域、校准区域等。
逻辑区域分区 |
地址 |
描述 |
使用方法 |
|---|---|---|---|
系统数据区域 |
(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 字节) |
用户自由使用。 |
|
BT parameters 区域 |
(0x1B0-0x1FF, 80 字节) |
存放 BT 的参数。 |
- |
逻辑区域分区 |
地址 |
描述 |
使用说明 |
|---|---|---|---|
系统数据区域 |
(0x000-0x01F, 32 字节) |
存放系统数据。 |
|
Wi-Fi Calibration 区域 |
(0x020-0x14F, 304 字节) |
存放 Wi-Fi 校准数据。 |
- |
Cap-Touch Calibration 区域 |
(0x160-0x16F, 16 字节) |
存放 Cap-Touch 校准数据。 |
- |
用户自定义 MTP 区域 |
(0x170-0x19F, 48 字节) |
用户自由使用。 |
|
BT parameters 区域 |
(0x1B0-0x1FF, 80 字节) |
用于 BT 的参数。 |
- |
逻辑区域分区 |
地址 |
描述 |
使用说明 |
|---|---|---|---|
系统数据区域 |
(0x000-0x01F, 32 字节) |
存放系统数据。 |
|
Wi-Fi Calibration 区域 |
(0x020-0x14F, 304 字节) |
存放 Wi-Fi 校准数据。 |
- |
Cap-Touch Calibration 区域 |
(0x160-0x16F, 16 字节) |
存放 Cap-Touch 校准数据。 |
- |
用户自定义 MTP 区域 |
(0x170-0x19F, 48 字节) |
用户自由使用。 |
|
BT parameters 区域 |
(0x1B0-0x1FF, 80 字节) |
用于 BT 的参数。 |
- |
逻辑区域分区 |
地址 |
描述 |
使用说明 |
|---|---|---|---|
系统数据区域 |
(0x000-0x01F, 32 字节) |
存放系统数据。 |
|
Wi-Fi Calibration 区域 |
(0x020-0x14F, 304 字节) |
存放 Wi-Fi 校准数据。 |
- |
Cap-Touch Calibration 区域 |
(0x160-0x16F, 16 字节) |
存放 Cap-Touch 校准数据。 |
- |
用户自定义 MTP 区域 |
(0x170-0x19F, 48 字节) |
用户自由使用。 |
|
BT parameters 区域 |
(0x1B0-0x1FF, 80 字节) |
用于 BT 的参数。 |
- |
逻辑区域分区 |
地址 |
描述 |
使用说明 |
|---|---|---|---|
系统数据区域 |
(0x000-0x01F, 32 字节) |
存放系统数据。 |
|
Wi-Fi Calibration 区域 |
(0x020-0x14F, 304 字节) |
存放 Wi-Fi 校准数据。 |
- |
Cap-Touch Calibration 区域 |
(0x160-0x16F, 16 字节) |
存放 Cap-Touch 校准数据。 |
- |
用户自定义 MTP 区域 |
(0x170-0x19F, 48 字节) |
用户自由使用。 |
|
BT parameters 区域 |
(0x1B0-0x1FF, 80 字节) |
用于 BT 的参数。 |
- |
逻辑区域分区 |
地址 |
描述 使用说明 |
|
|---|---|---|---|
系统数据区域 |
(0x000-0x01F, 32 字节) |
存放系统数据。 |
|
Wi-Fi Calibration 区域 |
(0x020-0x13F, 288 字节) |
存放 Wi-Fi 校准数据。 |
- |
ADC Calibration 区域 |
(0x140-0x14F, 16 字节) |
存放 ADC 校准数据。 |
- |
HCI-USB |
(0x150-0x15F, 16 字节) |
存放 USB 设备相关的配置数据。 |
- |
Cap-Touch Calibration 区域 |
(0x160-0x16F, 16 字节) |
存放 Cap-Touch 校准数据。 |
- |
用户自定义 MTP 区域 |
(0x170-0x19F, 48 字节) |
用户自由使用。 |
|
BT parameters 区域 |
(0x1B0-0x1FF, 80 字节) |
存放 BT 的参数。 |
- |
逻辑区域分区 |
地址 |
使用说明 |
使用说明 |
|---|---|---|---|
系统数据区域 |
(0x000-0x01F, 32 字节) |
存放系统数据 |
|
Wi-Fi Calibration 区域 |
(0x020-0x13F, 288 字节) |
存放 Wi-Fi 校准数据。 |
- |
用户自定义 MTP 区域 |
(0x170-0x19F, 48 字节) |
用户自由使用。 |
|
Cap-Touch Calibration 区域 |
(0x1A0-0x1AF, 16 字节) |
存放 Cap-Touch 校准数据。 |
- |
BT parameters 区域 |
(0x1B0-0x1FF, 80 字节) |
存放 BT 的参数。 |
- |
HCI-SDIO |
(0x200-0x29F, 160 字节) |
存放 SDIO 设备相关的配置数据。 |
- |
HCI-USB |
(0x2A0-0x2FF, 288 字节) |
存放 USB 设备相关的配置数据。 |
- |
Ethernet MAC address 区域 |
(0x300-0x305, 6 字节) |
用于存放 RMII 使用的以太网 MAC 地址。 |
- |
逻辑区域分区 |
地址 |
使用说明 |
使用说明 |
|---|---|---|---|
系统数据区域 |
(0x000-0x01F, 32 字节) |
存放系统数据 |
|
Wi-Fi Calibration 区域 |
(0x020-0x13F, 288 字节) |
存放 Wi-Fi 校准数据。 |
- |
用户自定义 MTP 区域 |
(0x170-0x19F, 48 字节) |
用户自由使用。 |
|
Cap-Touch Calibration 区域 |
(0x1A0-0x1AF, 16 字节) |
存放 Cap-Touch 校准数据。 |
- |
BT parameters 区域 |
(0x1B0-0x1FF, 80 字节) |
存放 BT 的参数。 |
- |
HCI-SDIO |
(0x200-0x29F, 160 字节) |
存放 SDIO 设备相关的配置数据。 |
- |
逻辑区域分区 |
地址 |
描述 |
使用方法 |
|---|---|---|---|
系统数据区域 |
(0x000-0x01F, 32 字节) |
存储系统数据。 |
|
Wi-Fi 校准区域 |
(0x020-0x0CF, 176 字节) |
存储 Wi-Fi 校准数据。 |
Realtek 使用 |
Wi-Fi HCI CIS 区域 |
(0x0D0-0x11F, 80 字节) |
存储 Wi-Fi HCI CIS 数据。 |
Realtek 使用 |
Wi-Fi SW/RF 预留区域 |
(0x130-0x13F, 16 字节) |
Wi-Fi SW/RF 预留。 |
Realtek 使用 |
硬件自动加载区域 |
(0x140-0x1AF, 112 字节) |
存储硬件自动加载数据。 |
Realtek 使用 |
蓝牙校准区域 |
(0x1B0-0x1FF, 80 字节) |
存储蓝牙校准数据。 |
Realtek 使用 |
ADC 校准区域 |
(0x200-0x20F, 16 字节) |
存储 ADC 校准数据。 |
Realtek 使用 |
USB HCI 区域 |
(0x210-0x21F, 16 字节) |
存储与 USB 设备相关的配置数据。 |
Realtek 使用 |
电容触摸校准区域 |
(0x220-0x22F, 16 字节) |
存储电容触摸校准数据。 |
Realtek 使用 |
用户自定义 MTP 区域 |
(0x2D0-0x2FF, 48 字节) |
用户自由使用。 |
|
Realtek 预留区域 |
(0x300-0x3FF, 256 字节) |
Realtek 预留。 |
Realtek 使用 |