Hello,
I'm trying to use uninvasive debug module in cortex-a53, and I tried to do test by using data watch event. My process as follows:
1. Set MDSCR_EL1.KDE to enable debug exception in El1;
2. Enable debug exception by escuting MSR DAIFclr, #8, and make sure debug exception can be triggered, MSR DAIFclr, #1 also be excuted;
3. Set MDSCR_EL1.MDE to enable breakpoint and watchpoint;
4. Configure DBGWVR0_EL1 and DBGWCR0_EL1, and make sure instruction store (LSC == 0b10) to the address in DBGWVR0_EL1 will happen.
5. sync exception function also already configured in Exception Vector;
When I run my test software by connecting Lauterbach(trace32), I can see sw can stop when instruction store to target address in DBGWVR0_EL1, and address in DLR_EL0 is the exception function address. But when Lauterbach removed and rerun test software, the exception function configured in exception vector not excuted.
Any one can help me to find out why this datawatch exception not work?
Thank you!
https://community.arm.com/support-forums/f/architectures-and-processors-forum/6524/about-watch-point-debug-excption-on-cortex-a53/20827#20827, By refering this ticket, the exception handler doesn't work normally reason I found, after disabling DataWatch in handler and fixing a little error in exception handler, it works. But when I try to enable step exception by seting MDSCR_EL1.SS = 1, the step exception not work...