安全启动加载器测试

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
9个帖子/ 0新
最后一篇
托马斯唐豪瑟
离线
最后一次露面:4个月1周前
加入:2019-10-20 10:45
安全启动加载器测试

你好!

我需要在闪烁到OTP之前测试我的安全引导加载程序。我有3个问题:

1)测试引导加载程序本身的最佳方法是什么?现在我通过SS-Studio在Ram中首先在进行它。但不确定这是对还是错?

2)如何只将键写入OTP?我可以用cli_programmer这样做吗?是的,是的 - 怎么样?

3)如何在我的Devel USB-套件上禁用JTAG,即使安全引导加载程序闪烁到OTP。

我自上天阅读文档,但非常紧张地通过对OTP做错事来杀死我的开发板。

谢谢,

托马斯

设备:
PM_DIALOG.
离线
最后一次露面:1天11小时前
职员
加入:2018-02-08 11:03
嗨托马斯唐豪斯,

嗨托马斯唐豪斯,

谢谢你的问题在线。您可以使用您使用哪种DA1468x产品?它是DA14680 / 681还是DA14682 / 683?此外,这是DA14682 / DA14683安全启动教程您指的文件?

谢谢,PM_DIALOG.

托马斯唐豪瑟
离线
最后一次露面:4个月1周前
加入:2019-10-20 10:45
嗨,它是DA14683 USB-套件

嗨,它是DA14683 USB-KIT DEVEL板。我知道你提到的链接。但它没有说如何测试安全引导加载程序。它只是一个直接的描述如何与SS-IDE脚本进行。PLS。你能详细说明我的3个问题吗?

谢谢!

PM_DIALOG.
离线
最后一次露面:1天11小时前
职员
加入:2018-02-08 11:03
嗨托马斯唐豪斯,

嗨托马斯唐豪斯,

如果启用了安全引导,Bootrom默认情况下会禁用JTAG。您可以通过配置sys_ctrl_reg [debugger_Enable]位域来启用应用程序的JTAG,以便访问调试器。然而,“安全启动”概念是没有JTAG访问权限,所以通过这种方式,系统将变得不安全。如果您想要从申请中启用JTAG,因为您已启用安全引导机制,则应处理以下内容:

  • 如果secure_boot_reg [force_debugger_off是否设置为1,则系统调试器SWD完全禁用。没有办法恢复这个问题。
  • 如果安全设备(0x7F8EA68)字段在OTP标题中写入0xAA,则设备是安全的,并且启用所有安全功能
  • 在进行安全启动机制之前,应用程序图像应在功能完全正常。如果它不起作用,则没有任何方法可以恢复。如果它是实用的,并且您要重写QSPI Flash,则应使用存储到OTP和通过JTAG的相同密钥进行。
  • 如果安全启动失败,我强烈建议在安全启动失败时拥有一些额外的开发板。应用此机制以使应用程序图像无法访问和易受攻击。
  • 确保应用程序固件完全正常运行,并启用调试器位域。请按照逐步进行教程。请记住,从我们方面测试了两倍。

希望我的评论会帮助你。如果您有任何其他后续问题,请告诉我。

谢谢,PM_DIALOG.

托马斯唐豪瑟
离线
最后一次露面:4个月1周前
加入:2019-10-20 10:45
你好,

你好,

谢谢你的asnwer。对不起,但你的Anser没有帮助。上面的教程Mentoniend显示了如何使用SS-Studio进行操作,其中暂停信息在脚本中隐藏。但是对于生产而言,不建议这样做。脚本运行的太多步骤在此内部无法在某种程度上记录,我觉得它会随之而来。所以我想我觉得脚本分析了脚本来获得所需信息的工具。我是DA14683的真正粉丝,我对SS-Studio很满意。唯一的缺点是文档。至少,任何时候都会描述任何地方,但这取决于我将所有部分信息组合到稳定的图片。

如果您查看我的3个问题,您将看到这是迄今为止回答了这些问题。让我提示与你判断的教程一样,没有帮助。因为I'f读过他们,我会在这里询问你。你的盖子在芯片上做得很好,但你搞砸了记录了闭管部分!

PM_DIALOG.
离线
最后一次露面:1天11小时前
职员
加入:2018-02-08 11:03
嗨托马斯唐豪斯,

嗨托马斯唐豪斯,

我正在寻找你的疑问,很快就回到你身边。

谢谢,PM_DIALOG.

托马斯唐豪瑟
离线
最后一次露面:4个月1周前
加入:2019-10-20 10:45
THX,太棒了!

THX,太棒了!

PM_DIALOG.
离线
最后一次露面:1天11小时前
职员
加入:2018-02-08 11:03
亲爱的托马斯唐豪瑟,

亲爱的托马斯唐豪瑟,

请在我的纪念品下方找到。

问题1:是的,你是对的。这是测试引导加载程序本身的正确方法。您应该通过SS-Studio执行它的RAM。

问题2:是的,您可以使用CLI_Programmer才能仅在OTP中编写键。请打开CLI-Programmer.exe并执行HELP命令:

cli-programmer.exe -help返回语法:... write_key   写对称或非对称键及其位反转到OTP内存。是OTP中的一个密钥(和反相密钥)索引。对于对称键的非对称键和0-7,此参数的有效范围为0-3。是一个没有任何前缀的关键十六进制字符串。00112233ABBCCDD。非对称密钥必须具有32到64个字节的长度,并且对称密钥必须具有32个字节的长度。READ_KEY [ [KEY_IDX]]读取对称或非对称密钥。如果未传递[key_idx],则读取所有非对称或对称密钥(通过

如何将密钥写入OTP

要仅在OTP中编程一个键,请使用以下命令语法(在GDBServer在下面的语法开始后,否则可以使用UART)作为下面的示例:

CLI_Programmer GDBServer Write_OTP 0x07F8E8C0 8 0x2B7E1516 0x28aed2a6 0x0xf71588 0x09cf4f3c 0x809079E5 0x62f8ead2 0x522c6b7b 0xc810f32b

您可以使用命令语法读取键:

cli_programmer gdbserver read_otp 0x07f8e8c0 20

读结果:

1D18 16 15 7E 2B A6 D2 AE 28 ..〜+ ...(1D19 88 15 F7 AB 3C 4F CF 09 .... 

从UART编写安全引导设备的过程

以下是从UART编写安全引导设备的过程。GDB服务器也可以使用,而不是CLI_Programmer的命令行中的UART。

  • 用于在OTP中编写安全启动器,使用命令使用CLI_Programmerwrite_otp_exec.
  • 用于编写OTP中的键使用CLI_Programmer命令write_key.

为方便起见,您将找到附加文件夹作为您的参考。请检查那里的命令。批处理文件的执行顺序是显而易见的(我让他们从订单号开始)

准备安全引导设备的操作分为两(2)个细分

段#1:开发人员的准备工作

  1. 生成product_keys.xml.文件用键在产品中写入。键和文件可以由SmartSnippets Studio生成,或使用mkimage.exe(参见mkimage.exe的帮助),甚至手动。唯一重要的是保持格式。

重要提示:不要丢失这个文件。如果丢失这一点,则无法为设备创建新的有效图像。

  1. 生成secure_img_cfg.xml.。该文件可以由SmartSnippets Studio生成,或者使用像附加的批处理文件所做的批次文件。唯一重要的是保持格式。

  1. 构建应用程序图像(例如,PXP_Reporter)。最重要的是用suota功能构建它

  1. 为OTP构建安全引导加载程序。最重要的是使用与上面的应用程序相同的分区表。

  1. 具有sw_version.h以及二进制文件,批处理文件和XML文件以避免长路径

段#2:在大规模生产或测试台中运行的步骤。

  1. 编程闪存:
    1. FW镜像
    2. 图像标题
    3. 资源
  2. 在OTP中编程键
  3. 在OTP中编程安全引导加载程序
  4. 在OTP中启用安全启动和生产模式

在附加的zip文件中,有一组批处理文件供回所有上述步骤。

非常重要的说明:

libprogrammer必须用下面的修复程序修补,然后重新构建libprogrammercli_programmer.exe.exe.在尝试在安全引导中程序的程序设备之前。

如果没有此修补程序,在OTP中写入键时可能会出现超时,并且具有失败。

diff --git a/utilities/cli_programmer/libprogrammer/protocol_cmds.c b/utilities/cli_programmer/libprogrammer/protocol_cmds.c index e2f592a..6609e23 100644 --- a/utilities/cli_programmer/libprogrammer/protocol_cmds.c +++ b/utilities/cli_programmer/libprogrammer/protocol_cmds.c @@ -733,7 +733,7 @@ int protocol_cmd_write_otp(uint32_t address, const uint32_t *buf, uint32_t len) return err; } - err = wait_for_ack(150); + err = wait_for_ack(1500); return err; }

问题3:如我之前的评论中提到的,是的,您可以在应用程序代码中重新启用它。ROM Booter不会以安全启动模式启用它。

生产线工具(PLT)

对话框设计了一种生产测试和编程单元,使您可以降低成本并提高单元的卷测试和编程的吞吐量。

- 易于集成:基于DLL的命令

- 编程OTP / Flash / EEPROM中的灵活性(也支持安全启动)

- 低总体成本的测试仪设备

- 高水平的并行化和短暂的测试时间。

- 最多16次并行编程和测试

请看看我们的PLT支持网页

https://www.dialog-seminile.com/produ雷电竞官网登录cts/production-line-tool.

此致,

PM_DIALOG.

托马斯唐豪瑟
离线
最后一次露面:4个月1周前
加入:2019-10-20 10:45
亲爱的PM_DIALOG!

亲爱的PM_DIALOG!

非常感谢你!你的冗长答案抬起周末的想法。我将验证每个提示并执行您的推荐并在反馈后重新回来。

问候,
托马斯