Armv8-A - Using watchpoints (DBGWVR<n>_EL1) with Intermediate Physical Addresses (IPA)


I am using an NXP i.MX8 MQ with 4 Cortex A53 Cores.

I am using Jailhouse as hypervisor and I am trying to modify it to configure watchpoints with Intermediate Physical Addresses (IPA) so as to intercept when a VM tries to Read/Write at a specific address.

According to Arm Armv8-A Architecture Registers, a Virtual Address is expected in DBGWVR<n>_EL1 . But, given that the exceptions can be taken at EL2, I wondered if it is possible to set an IPA for a watchpoint in Armv8.

I've looked through the reference manual but can't find any information on whether or not watchpoints can be used with IPAs.

Any help would be greatly appreciated.

Thank you in advance and have a nice day.

Kind regards,


  • I'm afraid you can only specify a VA, not an IPA or PA.

    Depending on the use-case, other options could be to mark the page as faulting at S2 and bounce accesses that way.  But that only gives you page level granularity.  Or, could do what some external debuggers do, replace the instruction with a breakpoint instruction (that depends on how you've got self-hosted debug set up)