📄 reset.cgs
字号:
# frv testcase to generate reset interrupts# mach: fr500 fr550 fr400# sim: --memory-region 0xff000000,64 .include "testutils.inc" start .global resetreset: and_spr_immed 0xfffffffb,psr ; turn off PSR.S set_gr_immed 0xfeff0500,gr10 ; address of reset register set_spr_immed 0x7fffffff,lcr set_bctrlr_0_0 gr0; Can't recover from hardware interrupt with enough state intact to verify it; set_spr_addr ok1,lr; set_mem_immed 0x3,gr10 ; cause hardware reset; dcf @(gr10,gr0) ; Wait for store to happen; fail;;ok1: ; reset should branch to reset address which should then branch here; test_mem_immed 0x00000200,gr10; set_spr_addr ok2,lr; set_mem_immed 0x2,gr10 ; cause hardware reset; dcf @(gr10,gr0) ; Wait for store to happen; fail; ok2: ; reset should branch to reset address which should then branch here; test_mem_immed 0x00000200,gr10 set_spr_addr ok3,lr set_mem_immed 0x1,gr10 ; cause software reset dcf @(gr10,gr0) ; Wait for store to happen fail ok3: ; reset should branch to reset address which should then branch here test_mem_immed 0x00000100,gr10 test_spr_bits 0x4,2,1,psr ; psr.s is set test_spr_bits 0x2,1,0,psr ; psr.ps not set set_spr_addr bad,lr set_mem_immed 0x0,gr10 ; no reset test_mem_immed 0x0,gr10 ; now retest with HSR0.SA set set_mem_immed 0,gr0 set_gr_addr 0xff000000,gr11 set_bctrlr_0_0 gr11 or_spr_immed 0x00001000,hsr0 ; set HSR0.SA; Can't recover from hardware interrupt with enough state intact to verify it; set_spr_addr ok4,lr; dcf @(gr10,gr0) ; Wait for store to happen; set_mem_immed 0x3,gr10 ; cause hardware reset; fail;;ok4: ; reset should branch to reset address which should then branch here; test_mem_immed 0x00000200,gr10; set_spr_addr ok5,lr; set_mem_immed 0x2,gr10 ; cause hardware reset; dcf @(gr10,gr0) ; Wait for store to happen; fail; ok5: ; reset should branch to reset address which should then branch here; test_mem_immed 0x00000200,gr10 set_spr_addr ok6,lr set_mem_immed 0x1,gr10 ; cause software reset dcf @(gr10,gr0) ; Wait for store to happen fail ok6: ; reset should branch to reset address which should then branch here test_mem_immed 0x00000100,gr10 test_spr_bits 0x4,2,1,psr ; psr.s is set test_spr_bits 0x2,1,1,psr ; psr.ps is set set_spr_addr bad,lr set_mem_immed 0x0,gr10 ; no reset test_mem_immed 0x0,gr10 passbad: ; Should never get here fail
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -