如何應(yīng)用AndesCore EDM安全訪問機(jī)制
v assign trusted_debug_exit = (passcode_reg == AUTH_CODE);
3.2.debug存取指示應(yīng)用
下圖說明AHB bus如何使用hdebug_access和驗(yàn)證邏輯來防止惡意的debug存取
圖表8 AHB bus如何使用hdebug_access和驗(yàn)證邏輯來防止惡意的debug存取
如下verilog code說明了如何使用hdebug_access信號(hào):
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. 實(shí)際的應(yīng)用
用戶經(jīng)由上面的介紹完成了權(quán)限管理邏輯后,并且掛在AndesCoreTMAHB bus上,再經(jīng)由仿真器(Cadence)仿真此權(quán)限管理邏輯的行為,如下面幾張圖所示:
• edm_restrict_access信號(hào)控制
下圖說明由sw code把edm_restrict_access signal disable
圖表9 由sw code把edm_restrict_access signal disable
• trusted_debug_exit信號(hào)控制
圖表10 經(jīng)由debug access把trusted_debug_exit signal設(shè)定成high
• debug_access信號(hào)
下圖說明經(jīng)由debug host來做存取時(shí),debug_access signal會(huì)從low變成high
下圖說明經(jīng)由執(zhí)行IRTE instruction時(shí),debug_access signal會(huì)從high變成low
圖表12 經(jīng)由執(zhí)行IRTE instruction時(shí),
debug_access signal會(huì)從high變成low
5. 結(jié)語
EDM安全存取是AndesCoreTM保護(hù)周邊裝置內(nèi)容不被竊取的功能,也因?yàn)樵絹碓蕉嗫蛻羰褂玫酱斯δ埽宰珜懘思夹g(shù)文章讓客戶更能進(jìn)一步了解到此功能的用途,讓客戶能夠很快速的上手,并且使用晶心開發(fā)的EDM安全存取是一件愉快與簡單的工作。
評(píng)論