如何应用AndesCore EDM安全访问机制
2014-12-30 14:01
176 查看
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。
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存取限制,在系统设计上有很多种实现方法,以控制edm restrict access的signal。两种基本的设计方案说明如下:
? eFUSE方式使用Chip重新编程管理控制
? SOC方式使用软件管理控制
software实现控制edm_restrict_access的例子如下:
? sethi $r2,#0x80000
? ori $r2,$r2,#0x8c
? sethi $r3,#0x04030
? ori $r3,$r3,#0x201
? swi $r3,[$r2+#0]
1. 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控制信号的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
推荐阅读:http://blog.chinaunix.net/uid-30007806-id-4726527.html
1. EDM功能介绍
一个debug system包含一个debug host和一个target system。EDM主要的功能就是translate debug host发出的TAP指令来存取系统memory或是CPU。
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存取限制,在系统设计上有很多种实现方法,以控制edm restrict access的signal。两种基本的设计方案说明如下:
? eFUSE方式使用Chip重新编程管理控制
? SOC方式使用软件管理控制
software实现控制edm_restrict_access的例子如下:
? sethi $r2,#0x80000
? ori $r2,$r2,#0x8c
? sethi $r3,#0x04030
? ori $r3,$r3,#0x201
? swi $r3,[$r2+#0]
1. 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控制信号的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
推荐阅读:http://blog.chinaunix.net/uid-30007806-id-4726527.html
相关文章推荐
- 数据库应用安全:如何平衡加密与访问控制
- 数据库应用安全:如何平衡加密与访问控制
- 如何安全应用mysql
- Windows 2003如何应用组策略和安全模板
- 如何通过不同的域名访问发布到Apache上不同的Appeon Web应用?
- MOSS 2007应用日记(19)――如何匿名访问网站
- MOSS 2007应用日记(2)――如何授权用户访问网站
- 谈谈如何通过网站域名访问weblogic中的应用。(原创)
- 出于安全考虑,office outlook禁止对潜在不安全因素的附件访问,如何解决
- 如何通过不同的域名访问发布到Apache上不同的Appeon Web应用?
- 如何通过不同的域名访问发布到Apache上不同的Appeon Web应用?
- 工作,生活中遇见网络应用中常见安全问题 如何解决?
- Win 2003如何应用组策略和安全模板
- java类型安全枚举与反射机制相结合的应用 作者:封宇
- 如何构建安全的.net web应用系统
- 如何通过不同的域名访问发布到Apache上不同的Appeon Web应用?
- [转载]教您如何应用PHP开发出安全的应用程序
- 如何通过不同的域名访问发布到Apache上不同的Appeon Web应用?
- C#匿名方法的应用二则–实现异常Retry机制和WinForm线程安全访问
- MySQL服务器内部安全数据目录如何访问