安全启动加载器测试

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.wsdof.com/support.我们将在未来几天修复bug /优化搜索和标记。
9个帖子/ 0新
最后发表
托马斯唐豪瑟
离线
最后看到:5个月2周之前
加入:2019-10-20 10:45
安全启动加载器测试

这就跟你问声好!

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

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

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

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

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

谢谢,

托马斯。

设备:
PM_Dialog
离线
最后看到:13小时19分钟前
工作人员
加入:2018-02-08 11:03
嗨托马斯唐豪斯,

嗨托马斯唐豪斯,

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

谢谢,PM_Dialog

托马斯唐豪瑟
离线
最后看到:5个月2周之前
加入:2019-10-20 10:45
你好,这是da14683 USB-Kit

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

谢谢!

PM_Dialog
离线
最后看到:13小时19分钟前
工作人员
加入: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

托马斯唐豪瑟
离线
最后看到:5个月2周之前
加入:2019-10-20 10:45
你好,

你好,

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

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

PM_Dialog
离线
最后看到:13小时19分钟前
工作人员
加入:2018-02-08 11:03
嗨托马斯唐豪斯,

嗨托马斯唐豪斯,

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

谢谢,PM_Dialog

托马斯唐豪瑟
离线
最后看到:5个月2周之前
加入:2019-10-20 10:45
谢谢,太好了!

谢谢,太好了!

PM_Dialog
离线
最后看到:13小时19分钟前
工作人员
加入:2018-02-08 11:03
亲爱的托马斯唐豪瑟,

亲爱的托马斯唐豪瑟,

请在我的评论下面找到。

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

问题2:是的,你可以使用cli_programmer来只写OTP中的键。请打开cli-programmer.exe并执行帮助命令:

cli-program .exe -help返回语法:…write_key   将对称或非对称密钥及其位反转写到OTP内存中。是OTP中的键(和反键)索引。此参数的有效范围为0-3(非对称键)和0-7(对称键)。是一个没有任何前缀的十六进制密钥字符串,例如00112233AABBCCDD。非对称密钥长度为32 ~ 64字节,对称密钥长度为32字节。Read_key [ [key_idx]]读取对称或非对称密钥。如果[key_idx]没有传递,则读取所有非对称或对称密钥(type由选择)。如果没有传递,则读取所有非对称和对称密钥. ...

如何将密钥写入OTP

为了只编程一个键进入OTP,使用下面的命令语法(在gdbserver启动之后,下面的语法,否则可以使用UART),如下所示:

cli_programmer gdbserver write_otp 0x07F8E8C0 8 0x2b7e1516 0x28aed2a6 0xabf71588 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_programmer与命令write_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. 弗兰克-威廉姆斯的图像
    2. 图像标题
    3. 的资源
  2. 编写OTP中的键
  3. 在OTP中编程安全引导加载程序
  4. 在OTP中启用安全启动和生产模式

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

非常重要的注意:

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

如果没有这个补丁,在OTP中写入密钥时可能会超时并出现故障。

b/utilities/cli_programmer/libprogrammer/protocol_cmds.c索引e2f592a../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);返回错误;}

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

生产线工具(PLT)

Dialog设计了一个生产测试和编程单元,使您能够在单元的体积测试和编程中降低成本和增加吞吐量。

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

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

低成本的测试设备

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

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

请看看我们的PLT支持网页

//www.wsdof.com/雷电竞官网登录products/production-line-tool

此致,

PM_Dialog

托马斯唐豪瑟
离线
最后看到:5个月2周之前
加入:2019-10-20 10:45
亲爱的PM_DIALOG!

亲爱的PM_DIALOG!

非常感谢!你啰嗦的回答使我周末心情舒畅。我会核实每一个提示,执行你的建议,然后反馈给你。

问候,
托马斯。