2026 / 07 / 22
RA8 Security Features之DLM切换

关于RA8的安全特性(Security Features),我们会推出一系列的文章介绍。作为开篇,本次重点介绍DLM切换。


DLM是Device Lifecycle Management(器件生命周期管理)的简称,它可以设定当前的状态(开发/量产/部署)以及控制调试功能的程度,串行编程接口和瑞萨测试模式。


以下是手册中RA8的生命周期状态图。

图 Device Lifecycle States


接下来,以CM(Chip Manufacturing)状态为起点,RMA_RET(Return Material Authorization RETurn)为终点,对各个状态做详细说明。单看从CM到RMA_RET这一条转换路径,会发现是单向的(只能按照箭头所指方向转换),不存在回退的情况。


每个芯片在出厂时都是CM状态。CM状态下可以调试Secure和Non-Secure资源,访问权限最高。但此时Serial Programming(SCI Boot,USB Boot和SWD)无法访问code flash和data flash。


在用户的整个开发过程中,芯片都处于OEM(Original Equipment Manufacture)状态,从CM到OEM的切换可以通过在RFP(Renesas Flash Programmer)中,Initialize Device(初始化设备)或DLM Transition(DLM转换)实现。另外,通过串行编程接口(Serial Programming)进行擦除操作也可以将芯片转换为OEM状态。

图 RFP中Initialize Device


图 RFP中执行DLM转换


在OEM状态下,根据PL(Protection Level)级别划分为三种状态:OEM_PL2,OEM_PL2和OEM_PL0。稍后我们会详细说明OEM状态下的细节,如PL(Protection Level)和AL(Authenticate Level)之间的限定关系,以及各个安全级别转换需要满足的条件等。


假如需要从OEM状态进入RMA_REQ(Return Material Authorization REQuest)状态,则如图中描述,需要键入RMA_KEY。在RMA_REQ状态下,PL为0,此时既无法调试芯片也不能通过串行编程接口操作芯片的flash(包括code flash和data flash)。切换为RMA_REQ状态后,用户需将芯片交换给瑞萨进行分析。转换过程和条件如下图所示:

图 DLM状态转换——从OEM到RMA_REQ


瑞萨在收到RMA_REQ状态的芯片后,会通过键入RMA_ACK_KEY(瑞萨独有的key)将芯片切换到RMA_ACK(Return Material Authorization ACKnowledged)状态,此状态下可以进行调试,完成失效分析。转换过程和条件如下图所示:

图 DLM状态转换—从RMA_REQ到RMA_ACK


最终,瑞萨会将芯片切换到RMA_RET(Return Material Authorization RETurn)状态,并返还给用户。此时的PL为0,同时器件无法进行Boot。


对于进行DLM所用的接口,可以通过UART,USB和SWD/JTAG实现,但不能通过在应用程序中运行代码实现。不过,当前的生命周期状态可以通过寄存器(DLMMON : Device Lifecycle Management State Monitor Register)读取。关于寄存器值和DLM状态之间的对应关系,请参考硬件手册中的说明。


PL(Protection Level)和AL(Authentication Level)决定了调试功能和调试接口的开放程度。OEM以外的状态,PL和AL是固定的。换言之,在OEM状态下,PL和AL可以由用户自行设定,以满足开发的需求。PL和AL的设定仅能通过boot firmware实现而无法通过在片上运行代码实现。


由于开发的大多数阶段,芯片都处于OEM状态,接下来详细介绍OEM状态下PL和AL的含义。


PL存储在芯片的非易失性存储器内,而AL存储在芯片的易失性存储器内。AL表示一种临时的验证状态,上电后AL的值初始化为PL值。


PL转换的条件可以简单概括为:从高到低没有任何限定,但是对于从低到高,要求当前AL的值大于等于转换目标的PL值。PL转换的流程图如下:

图 PL转换


图中带箭头的黑线标记的是没有任何限定的转换,从高到低进行PL转换时,无需任何条件即可完成。以PL2切换到PL1为例,可以直接进行而无需任何授权。黑线标记的有3种:PL2至PL1,PL1至PL0和PL2至PL0。


接下来,我们看一下带箭头的绿线标记的转换,共有2种:PL1至PL2,PL0至PL2。仔细观察这两种转换,会发现,转换的目标PL级别都是2,而转换条件是AL等于2。即AL值需大于等于目标PL值。


对于带箭头的红线标记的转换,仅1种:PL0至PL1,转换条件是AL为2或1(AL的值不低于转换的目标PL1)。


带箭头的蓝线标记的转换,代表初始化,共有3种:PL2至PL2,PL1至PL2,PL0切换至PL2。执行初始化命令后,芯片是全擦状态,片上所有内容回到空白。初始化没有条件限制,除却两个意外:初始化功能被禁止或AL2_KEY被禁止。在RFP中禁止初始化和禁止AL2_KEY的界面如下图所示。

图 RFP中禁止初始化命令和禁止AL2_KEY


需要特别注意的是,某些禁止性操作的设置一旦生效,即成为不可逆的状态,因此在进行此类设置时,务必保持高度的谨慎与细心,以免带来不必要的后果。不可逆的操作如:Configuration Data Lock Bit,Anti-Rollback Settings,Security选项下的Disable Initialize Command、Disable AL2 authentication、Disable AL1 authentication和Disable LCK_BOOT transition。更多限定,请参考RFP手册中的说明。在禁止某些功能之前,请在RFP手册中查阅该命令的注意事项。


对于PL的转换条件,前面提到重要的一点是,转换时AL的值需大于等于转换目标的PL值。设想这样一个场景,当前的AL和PL都是0,目标是切换到PL1(即下图带箭头的红线标记的转换),该如何实现呢?

图 PL转换之从0到1


解决办法是先将AL从0转换为1或2,此时AL的值大于等于目标PL1,可以实现PL转换了。


接下来我们介绍AL转换的流程,状态转移图如下所示:

图 RFP中设定AL Key


RA8支持的AL key需要借助SKMT(Renesas Secure Key Management Tool)封装,配置界面如下图所示:

图 SKMT Wrap Key DLM/AL


关于封装AL Key,请参考AppNote R11AN0496EU0200中的说明。

更多信息您点击下方链接查看:

AppNote R11AN0496EU0200 :https://www.renesas.cn/cn/zh/document/apn/injecting-and-updating-secure-user-keys-ra-family-application-project


虽然操作的Key类型是AL*_KEY,但是流程是一样的,都需要利用UFPK和W-UFPK进行封装。SKMT各个界面的含义和配置方法,请参考SKMT的手册。

文件下载
隐私条款

一、接受条款 使用者(也称"您")在访问或使用本网站及其服务时,即已经表示同意并不加修改地接受本《用户协议》、本网站的《隐私声明》、《法律声明》以及其关或相链接的网页和网站的条件和条款的规定。我们强烈建议:在您阅读和接受本《用户协议》时,也应阅读并接受本《用户协议》中所提到《隐私声明》、《法律声明》及其相关或相链接网页或网站所包含的资料,因为《隐私声明》、《法律声明》及其它相关网页或网站可能包含对您适用的进一步规定。(请注意:点击划有底线的词句即可链接到上述《隐私声明》、《法律声明》及其它相关或相链接的网页和网站。

 

二、使用者的资格要求 在本网站中"使用者"指的是浏览、阅读、使用本网站信息或服务的任何个人或组织。本网站的服务仅适用于根据相关法律的规定具有签订有约束力的合同的个人或组织并仅由其使用。本网站的服务不向18周岁以下的个人使用者提供,也不向临时被本网站中止或取消使用者资格的使用者提供。如果使用者不符合本条规定,请停止使用本网站或本网站的服务。

样品
申请

应用
资源

微信