新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 如何应用AndesCore EDM安全访问机制

如何应用AndesCore EDM安全访问机制

作者:时间:2013-01-23来源:网络收藏

存取是TM内建的功能(option),存取的控管。存取有二种的控管方式:debug access indication和 access restriction。第一种控管方式(debug access indication)提供了一个sideband signal用于指示从调试器(Debug host)的请求。第二种控管方式, 控制TM的input port(edm_restrict_access )达到EDM存取的限制。更详细的内容在后续章节会有更深入的介绍。

本文引用地址:http://www.amcfsurvey.com/article/148121.htm

1. EDM功能介绍

一个debug system包含一个debug host和一个target system。EDM主要的功能就是translate debug host发出的TAP指令来存取系统memory或是CPU。下图为基本的debug系统方块图。

微博桌面截图_20130123103227.jpg

图表1 基本的debug系统方块图

下图说明TAP 指令的种类

微博桌面截图_20130123103324.jpg

图表2 TAP 指令的种类

1. 控制EDM存取的限制

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

Ø 读为零写忽略

Ø 不正确的JTAG instruction(JTAG ICE debugger会timeout)

下图说明EDM限制存取方块图。

微博桌面截图_20130123103423.jpg

图表3 EDM限制存取方块图

在启用存取限制功能后,下图说明出每个TAP指令的行为。

微博桌面截图_20130123103508.jpg

图表4 在启用存取限制功能后,下图说明出每个TAP指令的行为

实现EDM存取限制,在系统设计上有很多种实现方法,以控制edm restrict access的signal。两种基本的设计方案说明如下:

Ø eFUSE方式使用Chip重新编程管理控制

Ø SOC方式使用软件管理控制

hardware实现控制edm_restrict_access的示意图如下:

微博桌面截图_20130123103613.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]

1. EDM 存取指示

TM增加一个额外的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权限管理逻辑方块图如下所示:

微博桌面截图_20130123103722.jpg

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

控制trusted_debug_exit信号时序图如下所示:

微博桌面截图_20130123103814.jpg

图表7 控制trusted_debug_exit信号时序图

如下例子说明了如何产生trusted_debug_exit控制信号的verilog code:

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

v //

v //--- Utilize passcode to generate trusted_debug_exit in AHB Bus Controller

v //* assume zero-wait-state AHB access

v …

v parameter AUTH_CODE = 32’h0a0b0c0d;

v ...

v always @(posedge hclk or negedge hreset_n) begin

v if (!hreset_n) begin

v passcode_reg = 32'd0;

v end

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

v passcode_reg = hwdata[31:0];

v end

v end

v …

v //validate passcode to generate trusted_debug_exit


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭