您的位置 首页 ADAS

怎么使用AndesCoreTM EDM安全拜访机制

EDM安全存取是AndesCoreTM内建的功能(option),应用在安全存取的控管。EDM安全存取有二种的控管方式:debug access indication和EDM access rest

EDM安全存取是AndesCoreTM内建的功用(option),运用在安全存取的控管。EDM安全存取有二种的控管办法:debug access indication和EDM access restriction。第一种控管办法(debug access indication)供给了一个sideband signal用于指示从调试器(Debug host)的恳求。第二种控管办法, 操控AndesCoreTM的input port(edm_restrict_access )到达EDM存取的约束。更具体的内容在后续章节会有更深化的介绍。

1.EDM功用介绍

一个debug system包括一个debug host和一个target system。EDM首要的功用便是translate debug host宣布的TAP指令来存取体系memory或是CPU。下图为根本的debug体系方块图。

1.jpg

图表1 根本的debug体系方块图

下图阐明TAP 指令的品种

2.jpg

图表2 TAP 指令的品种

2. 操控EDM存取的约束

运用EDM的拜访办法会被一个sideband signal (edm_restrict_access) 所影响。当这个signal值是high,只是只能对EDM MISC registers做读取的动作。而想要存取CPU/System Bus/Local Memory的动作将会被封锁住而且会得到下面的成果:

读为零写疏忽

不正确的JTAG instruction(JTAG %&&&&&%E debugger会timeout)

下图阐明EDM约束存取方块图。

3.jpg

图表3 EDM约束存取方块图

在启用存取约束功用后,下图阐明出每个TAP指令的行为。

4.jpg

图表4 在启用存取约束功用后,下图阐明出每个TAP指令的行为

怎么完成EDM存取约束,在体系规划上有很多种完成办法,以操控edm restrict access的signal。两种根本的规划方案阐明如下:

eFUSE办法运用Chip从头编程办理操控

SOC办法运用软件办理操控

hardware完成操控edm_restrict_access的示意图如下:

5.jpg

图表5 hardware完成操控edm_restrict_access的示意图

software完成操控edm_restrict_access的比如如下:

sethi $r2,#0x80000

ori $r2,$r2,#0x8c

sethi $r3,#0x04030

ori $r3,$r3,#0x201

swi $r3,[$r2+#0]

3. EDM 存取指示

AndesCoreTM添加一个额定的sideband signal,xdebug_access(active-high),依据此sideband signal来决议request的host是否为EDM。而device就能依据此sideband signal决议是否要把request的data内容传回到host。

sideband signal的称号依据bus interface的类型而有所不同。关于AndesCoreTM处理器,根本的信号称号如下所示:

AHB/AHB-Lite =》 hdebug_access

APB =》 pdebug_access

EILM =》 eilm_debug_access

EDLM =》 edlm_debug_access

3.1.debug存取辨认信号操控

当debug exception发生后,CPU将进入debug mode。然后CPU将会留在debug access mode直到CPU履行到IRET instruction而且trusted_debug_exit 是处于high后CPU将脱离debug access mode,反之trusted_debug_exit如果是low,CPU将会保留在debug access mode。

完成操控trusted_debug_exit信号,有二种可供挑选的办法如下:

trusted_debug_exit信号总是给high

添加一个权限办理逻辑去操控trusted_debug_exit信号是high或是low权限办理逻辑方块图如下所示:

6.jpg

图表6 权限办理逻辑方块图

怎么操控trusted_debug_exit信号时序图如下所示:

7.jpg

图表7 怎么操控trusted_debug_exit信号时序图

如下比如阐明了怎么发生trusted_debug_exit操控信号的verilog code:

The code example (Verilog) of trusted_debug_exit generation is described below:

//

//— Utilize passcode to generate trusted_debug_exit in AHB Bus Controller

//* assume zero-wait-state AHB access

parameter AUTH_CODE = 32’h0a0b0c0d;

。..

always @(posedge hclk or negedge hreset_n) begin

if (!hreset_n) begin

passcode_reg 《= 32‘d0;

end

else if (passcode_wen) begin //debugger enters passcode through debug access

passcode_reg 《= hwdata[31:0];

end

end

//validate passcode to generate trusted_debug_exit

assign trusted_debug_exit = (passcode_reg == AUTH_CODE);

3.2.debug存取指示运用

下图阐明AHB bus怎么运用hdebug_access和验证逻辑来避免歹意的debug存取

8.jpg

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/adas/324515.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部