如何应用AndesCore EDM安全访问机制
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安全存取是一件愉快与简单的工作。
评论