当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]如何应用AndesCore EDM安全访问机制

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 基本的debug系统方块图

下图说明TAP 指令的种类

图表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限制存取方块图。

图表3 EDM限制存取方块图

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

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

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

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

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

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

图表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 存取指示

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 权限管理逻辑方块图

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

图表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[!--empirenews.page--]

v assign trusted_debug_exit = (passcode_reg == AUTH_CODE);

3.2.debug存取指示应用

下图说明AHB bus如何使用hdebug_access和验证逻辑来防止恶意的debug存取

图表8 AHB bus如何使用hdebug_access和验证逻辑来防止恶意的debug存取

如下verilog code说明了如何使用hdebug_access信号:

v //--- Use hdebug_access to prevent malicious debug access in AHB Bus Controller

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

v …

v parameter IRRELEVANT_DATA = 32’hcafe0001;

v parameter AUTH_CODE = 32’h01020304;

v …

v always @(posedge hclk or negedge hreset_n) begin

v if (!hreset_n) begin

v dbg_acc_d1 <= 1‘b0;

v end

v else begin // data phase indication of debug access

v dbg_acc_d1 <= hdebug_access;

v end

v end

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 check authentication

v assign auth_check_fail = (passcode_reg != AUTH_CODE);

v //return irrelevant data if the authentication check of debug access fails

v assign hrdata_out = {32{data_read_en}} &

v ((dbg_acc_d1 & auth_check_fail) ? IRRELEVANT_DATA : normal_data_out);

1. 实际的应用

用户经由上面的介绍完成了权限管理逻辑后,并且挂在AndesCoreTMAHB bus上,再经由仿真器(Cadence)仿真此权限管理逻辑的行为,如下面几张图所示:

• edm_restrict_access信号控制

下图说明由sw code把edm_restrict_access signal disable

图表9 由sw code把edm_restrict_access signal disable

• trusted_debug_exit信号控制

图表10 经由debug access把trusted_debug_exit signal设定成high

• debug_access信号

下图说明经由debug host来做存取时,debug_access signal会从low变成high

下图说明经由执行IRTE instruction时,debug_access signal会从high变成low

图表12 经由执行IRTE instruction时,

debug_access signal会从high变成low

5. 结语

EDM安全存取是AndesCoreTM保护周边装置内容不被窃取的功能,也因为越来越多客户使用到此功能,所以撰写此技术文章让客户更能进一步了解到此功能的用途,让客户能够很快速的上手,并且使用晶心开发的EDM安全存取是一件愉快与简单的工作。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

助力企业开拓商业空间筹建&运营采购市场 上海2024年5月20日 /美通社/ -- 为迎接酒旅市场的澎湃活力,优化和整合酒店及商业空间资源,促进旅宿行业健康发展,2025Hotel&ShopPlus上海...

关键字: 照明设计 微信 AN 大赛

上海2024年5月14日 /美通社/ -- 2024年5月9日,富士胶片控股株式会社(以下简称"富士胶片集团")公布了2023财年的财务业绩。 数据显示,截止2024年3月31日,得益于医疗系统...

关键字: 富士 CD DM 影像

共创包容性数字未来 新加坡2024年5月8日 /美通社/ -- 5月29日至31日,亚洲旗舰科技平台新加坡亚洲科技大会(Asia Tech x Singapore,简称AT...

关键字: 新加坡 ATX AN TE

伦敦2024年4月16日 /美通社/ -- ATFX宣布任命Siju Daniel为首席商务官。Siju在金融服务行业拥有丰富的经验和专业知识,曾在全球各地的高管职位上工作了19年以上。Siju之前担任FXCM首席商务官...

关键字: NI AN SI BSP

欧莱雅"明日创变者大会"暨"有意思青年"20周年颁奖仪式盛大举行 上海2023年9月23日 /美通社/ -- 9月22日,欧莱雅"明日创变者大会"暨"...

关键字: CE AN 美的 数码

曼谷2023年9月18日 /美通社/ -- 作为东南亚的旅游胜地,泰国一直在全球范围内吸引着无数游客的目光。泰国旅游和体育部近日公布的报告显示,今年前7个月,泰国旅游业总收入约为1.08万亿泰铢(约合人民币2233亿元)...

关键字: BSP GEN 国美 AN

欧莱雅中国旗下上海美次方投资有限公司达成首次开放式创新投资 法国克里希2023年9月22日 /美通社/ -- 欧莱雅集团宣布对中国创新型生物科技公司杉海创新进行少数股权投资,以建立长期合作伙伴关系,共同开发新...

关键字: AN BSP DEVELOPMENT FOR

北京2023年9月21日 /美通社/ -- 中国领先的科技益智产品企业洪恩(纽约证券交易所股票代码:IH)(“洪恩”或“公司”)今天公布了截至2023年6月30日的第二季度未...

关键字: BSP APP COM AN

——该收购旨在进一步扩大神经调控产品组合,为慢性腰疼患者提供更多治疗解决方案 马萨诸塞州马尔伯勒2023年9月20日 /美通社/ -- 波士顿科学公司(纽约证券交易所代码:BSX)宣布现已签订Relievant Med...

关键字: SYSTEMS 医疗技术 EV AN

武汉2023年9月19日 /美通社/ -- 目前,在国家政策和市场需求双重驱动下,国内数据库行业呈现出百花齐放的态势。充分竞争的市场环境下,达梦数据连续数年保持中国数据库管理系统市场占有率前列地位,成为当之无愧的国产数据...

关键字: DM DSC 国家电网 接口
关闭
关闭