This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
大家好!
我重新提出一个旧问题、因为我的问题仍未解决 、另一个主题已锁定。
我正在尝试测试 AM2634 MCU 的 HS-SE 模式特性。
我正在使用一个能够在其上设置 HF-SE 模式的 AM263x 控制卡。 我正在使用以下库:
- MCU_PLUS_SDK_AM263X_09_01_00_41
- OTP_KEYWRITE_AM263X_SR_11_09_01_00_05
- TIFS_AM263X_09_01_00_03
- OpenSSL 1.1.1
根据官方文档、我使用了以下命令来生成 Keywriter 证书:
./ gen_keywr_cert.sh -t tifek/am263x/SR_11/ti_fek_public.pem --mSv 0x1E22D --mSv-protect -b keys_devel/bmpk.pem --bmek keys_devel/bmek.key -b-protect --bmek-protect -s smek.key
在设备上运行 Keywriter 后、我具有以下 RBL 转储:
----------------
SoC ID 硬件信息:
----------------
零件号:0x0
器件型号:0x2
PGVer:0x3
ROMVer:0x2
MetalVer: 0x1
----------------
SoC ID R5 ROM 信息:
----------------
R5 ROM 版本:0x10100
----------------
SoC ID HSM Pub ROM 信息:
----------------
设备名称: AM263X
devType:0xabcd0006 --> HS_SE
HSM ROM 版本:0x10100
----------------
SoC ID HSM 安全 ROM 信息:
----------------
PRIME:0x1
密钥版本:0x2
密钥计数:0x1
SWRV SBL:0x1
SWRV HSM:0x1
TI MPK Hash:ec54cc16cd1ffccab7fd81fd82c998b305c6ac0c12cccf21a610fc1ad7159b1ad20acd69adabf72f1eed15021e26766d2f212d135b6bbf5e5e5e76c06aca876e4
客户 MPK 散列值:ce0c44734447afec12ba0b2226c3bdbc15576d212323ece46a9c4ccd6a463e417086083fee572a09a9496dbed447a9f13f9cf535fad75b18e0ee095a4a78e3c62
唯一 ID:a21bf27e0e130cb4ea20898ff70c923779ec1bd222e8aa42243d2422d89f7f609bd30440fcafd1ee1d83912b973702b5a3d756b2bbbd246053f6344faf495d954
由于卡是 HS-SE 模式、因此我将尝试刷写 owm SBL。
为此、我 使用以下命令编译了 SBL_UART_UNIFLASH:
make -s -C examples/drivers/boot/sbl_uart_uniflash/am263x-cc/r5fss0-0_nortos/ti-arm-clang/ all device=am263x device_type=HS debug_tifs=no debug_option=DBG_public_enable
通过 XMODEM 完成 SBL_UART_UNIFLASH 传输后、MCU 残桩和进一步的 SBL 代码传输不会按预期启动。
正如上一主题中建议的那样、我按照本指南的说明尝试在连接模式下进行调试。
但 JTAG 端口保持锁定状态。
请,谁能告诉我 什么可能是错的?
谢谢。
尊敬的 Vanni Vinti:
TIFS_AM263X_09_01_00_03
如果您有 TISP-MCU 版本、我建议您在构建 SBL 之前构建 TISP-MCU。
请按照 Academy 部分中提及的步骤来获取 AM26器件- https://dev.ti.com/tirex/explore/node?node=A__AZyrdnzxJ0B3S8PgTPuq8Q__AM26X-ACADEMY__t0CaxbG__LATEST
此致、
Aakash
尊敬的 Aakash Kedia:
感谢您的支持。
我试图遵循你提到的学院部分,但有一个步骤 不是完全清楚的。
例如、 我是否需要在我的 SBL_UART_UNIFLASH 工程中插入 HSM 运行时代码上传阶段?
此项目的目的仅是提供一个 XMODEM 服务器来 在闪存上烧录 QSPI_SBL、因此我未在闪存上添加任何加密的 HSM 映像加载。
考虑到电路板的 HF-SE 状态、我是否仍应考虑将 HSM 固件上传视为 SBL_UART_UNIFLASH t 的强制性要求? 我刚才 使用我的 SMPK 密钥对该代码进行了签名。
Br、
范尼
尊敬的 Vanni Vinti:
如果您检查流程、由于信任根的改变、在您从 HSFS 迁移到 HSSE 固件时、SBL 和 HSM 运行时固件需要重新编译。
例如, 我是否需要在我的 SBL_UART_UNIFLASH 项目中插入 HSM 运行时代码上传阶段?
可以。 毕竟、SBL_UART_UNIFLASH 也是一种 SBL 类型、需要重新生成、因为需要使用您的(或默认虚拟) rootkeys 对 SBL 进行签名。
考虑到我电路板的 HF-SE 状态,我是否仍应将 HSM 固件上传视为对 SBL_UART_UNIFLASH t 也是强制性的? 我刚才 使用我的 SMPK 密钥签署了此代码。[/引号]使用"evice=am263x DEVICE_TYPE=HS DEBUG_TIFS=NO DEBUG_OPTION=DBG_PUBLICE_ENABLE"重新编译示例 将自动处理 HSSE 器件。
我希望这对您有所帮助。
此致、
Aakash
尊敬的 Aakash Kedia:
我在 CCS 上导入了 HSM 工程、并按如下方式设置编译行为:
我还修改了 TIFS devconfig.mak 文件以使用我的自定义密钥:
此处是编译器输出。 您可以看到使用的自定义密钥是正确的、并且 hsmRtImg.h 已正确复制到相关的 SDK_PLUS 文件夹中:
之后、我修改了 SBL_UART_UNIFLASH 示例、以这样上传 HSM 代码:
在该工程中、我在 CCS 上设置以下编译行为: device=am263x device_type=HS debug_tifs=no debug_option=DBG_public_enable
但是、通过 XMODEM 发送到电路板后、我仍然无法使用 JTAG 进行连接。 我已经排除了任何 GEL 文件执行和连接时的任何复位选项、而且您还可以注意到、我在 HSM 加载后添加了一个无限循环、以便轻松地连接调试。
我还修改了 SDK 的 devconfig.mak 文件、以指向相同的客户密钥。
我是否漏掉了一点?
Br、
V·文蒂
尊敬的 Vanni Vinti:
你的流量是完全好的!
我现在唯一怀疑的是您的安装程序上的 OpenSSL 版本。 您是否使用 OpenSSL 版本1.1.1 (正如您在 SDK 09.01上所做的那样)?
此致、
Aakash
PS:无论如何-
之后,我修改了 SBL_UART_UNIFLASH 示例,以通过以下方式上传 HSM 代码:
可能不需要执行此步骤。 如果需要、您可以恢复这些更改。 正如您突出显示的那样、该版本的 SBL 实际上并不需要 HSMRt 固件/TIFS-MCU。
您好!
我正在使用以下 SSL 库:
请考虑一下、我 能够为不同的 QSPI 闪存器件支持构建和运行其他 SBL 工程、如果库不正确、则即使在 HS-SBL FS 器件上也不能运行这些工程、对吗?
Br、
范尼
您好、Vanni、
让我们通过一个简短的调试调用来解决此问题。 请通过 TI 联系人发送邀请或向我发送 朋友请求。
此致、
Aakash
您好、Vanni、
我认为器件是使用由 SDK 提供的虚拟密钥进行刷写的、即
SMEK: https://github.com/TexasInstruments/mcupsdk-core/blob/next/tools/boot/signing/mcu_custMek.key
SMPK: https://github.com/TexasInstruments/mcupsdk-core/blob/next/tools/boot/signing/mcu_custMpk.pem
您可以尝试使用相同的方法吗? 我可以确认 SMPK 仍然相同、因此可以先尝试不加密。
您可以重新评估您的步骤吗? 看起来您在使用 OTP Key Writer 时犯了一些错误。
此致、
Aakash
尊敬的 Aakash:
如果我的器件使用虚拟 TI 密钥进行刷写、为什么引导日志会显示我的自定义密钥的哈希?
总之、我将执行该测试、让您知道、
Br、
范尼
尊敬的 Aakash:
我刚刚完成了你建议的测试、但是 SBL 代码还未运行、JTAG 端口仍被锁定。
Br、
范尼
您好、Vanni、
我发现具有 TI 虚拟密钥的器件上的 RBL 打印哈希与哈希相同。 无法验证加密密钥、因此我建议您先禁用加密密钥、然后再在 SBL (在 devconfig.mak 中)中使用相同的密钥。
此致、
Aakash
尊敬的 Aakash:
我还有一个 AM263x 开发板、我有以下 RBL 转储:
--------------------------- SoC ID HW Info: --------------------------- partID : 0x0 partNumber : 0x2 PGVer : 0x3 ROMVer : 0x2 MetalVer : 0x1 --------------------------- SoC ID R5 ROM Info: --------------------------- r5 ROM Ver : 0x10100 --------------------------- SoC ID HSM Pub ROM Info: --------------------------- devName : AM263X devType : 0xabcd0004 --> HS_FS hsm ROM Ver : 0x10100 --------------------------- SoC ID HSM Sec ROM Info: --------------------------- Prime : 0x1 Key Rev : 0x0 Key Count : 0x0 SWRV SBL : 0x0 SWRV HSM : 0x0 TI MPK Hash : ec54cc16cd1ffccab7fd81fd82c998b305c6ac0c12cccf21a610fc1ad7159b1ad20acd69adabf72f1eed15021e26766d2f212d135b6bebf5e5e76c06ac87a6e4 Cust MPK Hash : 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Unique ID : b916a72593008043265c284fbde951627208866f98e1d288f587de06ddb1b2232935701ad819afc99479d14d23e2e474aeb5b015725c72f2a0495b2d563100cf
我从未使用过此电路板的任何安全特性(我们试图用这个全新电路板复制安全流程)、从转储中可以看出、"CUST MPK 哈希"的哈希值全部为零。 如果无法验证加密密钥、这表示什么?
谢谢您的深入见解、
里卡多
尊敬的 Riccardo Belli:
在此板中-
在前面提到的情况中、Vanni 仍在尝试启用安全启动、但由于使用了错误的 SMPK、因此未启用。 如果启用了加密、SBL 引导还取决于 SMPK 以及加密密钥、即 SMEK。
由于加密是可选功能、因此当密钥丢失时、仍然可以在没有加密的情况下使用设备。 您可以禁用加密并同样使用 SBL。
此致、
Aakash
您好!
Vanni 已经在加密功能禁用的情况下进行了测试、正如他在 5121959年提到的那样、但电路板在该状态下仍无法工作。
您建议我们下一步做什么? 我们也许可以安排另一个调试调用来进一步澄清问题?
Br
里卡多
尊敬的 Riccardo Belli:
当然可以。 请发送相同内容的邀请。
与上一次相同的时间。
此致、
Aakash
您好!
我刚刚给您发送了一条私人消息。
Br
里卡多
您好!
按照我们的要求、我们能够按照记录的流程完全解决问题、没有发现任何问题。
此致、
Aakash