Jetson 模块 EEPROM 布局

本主题介绍 NVIDIA® Jetson™ 模块的 EEPROM 布局。
所有数值均为小端序,即低地址字节包含最低有效位,高地址字节包含最高有效位。
MAC 地址也为小端序。例如,对于 MAC 地址 00:04:4b:01:02:03,低地址字节包含 0x03,高地址字节包含 0x00。
下表描述了 EEPROM 的布局。
字节
注释
0
0x01
主版本号
版本号,为向后不兼容的更改而递增。只有当软件和模块之间的两部分都匹配时,软件才可以解析 EEPROM 数据。
1
0x00
次版本号
2–3
 
从下一个字段开始的板 ID 数据的长度。
4-19
 
保留。
20–49
 
产品部件号,用于资产跟踪。格式为 699-cnnnn-pppp-vvv r.0 的字符串,其中
699 是一个固定字符串。
c 是板类;移动设备为 8,其他为 1。
nnnn 是模块部件号的数字部分,称为“板 ID”
3668 用于 NVIDIA® Jetson Xavier™ NX 系列
3448 用于 NVIDIA® Jetson Nano™ 和 Jetson Nano 2GB
2888 用于 NVIDIA® Jetson AGX Xavier™ 系列
3310 用于原始 NVIDIA® Jetson™ TX2
3489 用于 Jetson TX2i 和 Jetson TX2 4GB
3636 用于 Jetson TX2 NX
2180 用于 Jetson TX1
pppp 是 SKU
0000 用于 Jetson Nano(开发者套件模块)
0001 用于原始 Jetson Xavier NX(生产模块)

0003 用于 Jetson Xavier NX 16GB0002 用于 Jetson Nano(生产模块)
0003 用于 Jetson Nano 2GB(开发者套件模块)
0001 用于 Jetson AGX Xavier (16 GB)
0004 用于 Jetson AGX Xavier (32 GB)
0005 用于 Jetson AGX Xavier 64GB
0008 用于 Jetson AGX Xavier Industrial
1000 用于 Jetson TX2
0000 用于 Jetson TX2i
0080 用于 Jetson TX2 4GB
1000 用于 Jetson TX1
vvv 是十六进制格式的字母数字。
r 是制造主修订版本,一个大写字母。
部件号长度为 22 字节。该字段用 0x00 或 0xFF 右填充。
一个示例值为 699-83448-0002-000 C.0。板 ID 为 3448,SKU 为 0002,版本号为 000,制造主修订版本为 C,次修订版本为 0。
注意: 部件号如有更改,恕不另行通知。但是,如果发生对客户有重大影响的更改,将发布 PCN(产品变更通知)。
50–55
 
WiFi
NVIDIA 默认 MAC 地址。以最低有效字节优先的顺序存储,例如,如果地址为 00:04:4b:01:02:03,则字节 50 为 03,字节 55 为 00。
如果模块没有 WiFi/蓝牙芯片,则值全为 0 位或全为 1 位。
56–61
 
蓝牙
62–67
 
辅助 WiFi
68–73
 
千兆以太网
74–88
 
资产跟踪号,一个与设备识别标签上的号码相对应的唯一字符串。一个用 0x00 或 0xFF 字符填充的字符串。
89-149
 
保留。
客户可覆写部分
150–153
“NVCB”
块签名;代表 “NVIDIA 配置块”。
如果该值与 “NVCB” 不同,则软件对每个 MAC 地址使用相应的 NVIDIA 默认值(如上)。
154–155
28
从块签名(字节 150)到结尾的此结构体的长度。值可能会更改。
156–157
“M1”
类型签名;指定以下客户指定的 MAC 地址的格式。“M1” 代表 “MAC 地址,字段格式版本 1”。如果该值与 “M1” 不同,则软件对每个 MAC 地址使用相应的 NVIDIA 默认值。
158–159
0x0000
版本。
160–165
 
Wi-Fi
客户指定的 MAC 地址。在没有 WiFi/蓝牙芯片的模块上,值全为 0 位或全为 1 位,并且软件不会填充设备树节点。
注意: 这是字节 154-155 中长度的结构体中的最后一个字段。
166–171
 
蓝牙
172–177
 
千兆以太网
178–254
 
保留以供将来使用。
255
 
为字节 0–254 计算的 CRC-8。

供应商指定 MAC 地址的配置

要配置供应商指定的 MAC 地址,请使用以下步骤。
如果任何 “验证” 步骤未产生预期结果,则 EEPROM 已损坏或设备发生故障。在继续之前,请识别并纠正问题。
1. 从 I2C 总线 2,地址 0x50 读取 256 字节块的 EEPROM 数据。
2. 验证 EEPROM 的 CRC‑8 校验和。使用 CRC-8 字节的值 中的步骤计算字节 0-254 的校验和。计算出的校验和应与字节 255 中的值匹配。
3. 验证字节 150-153 和 156-157 是否包含上表中显示的签名值。
4. 更新字节 160-177 中的 MAC 地址(参见表格)。请记住,MAC 地址以小端序存储,这与正常的阅读顺序相反。
5. 使用更新后的 MAC 地址重新计算校验和。将新的校验和存储在字节 255 中。

CRC-8 字节的值

CRC 是一个单字节,存储在字节 255 中,即 EEPROM 的最后一个字节。它使用以下示例代码中的 CRC-8 算法计算得出。
def AddToCRC(b, crc)
b2 = b
if (b < 0)
b2 = b + 256
for i in range(8)
odd = ((b2^crc) & 1) == 1
crc >>= 1
b2 >>= 1
if (odd)
crc ^= 0x8C # This means crc ^= 140.
return crc
对于 EEPROM 内容的每个字节 B
crc = AddToCRC(B, crc)