Debug adapters should access the DSU registers in the external address range [0x100 – 0x1FFF].
If STATUSB.DAL is equal to 0x0, accessing the first 0x100 bytes causes the DSU security filter to return an error to the DAP.
(SAM L11 only): If STATUSB.DAL is equal to 0x1, debug accesses will go through the DSU security filter but will be forced as non-secure, therefore the DSU internal address space will not be accessible and any access in this case is discarded (writes are ignored, reads return 0) and raise STATUSA.PERR.
DAL | Debugger Access Type | DAP transaction allowed? | |||
---|---|---|---|---|---|
DSU internal address space | DSU external address space | Other than PPB | PPB | ||
0 | Secure | No (Bus Error) | Yes | No (Bus Error) | No (Bus Error) |
0 | Non-Secure | No (Bus Error) | Yes | No (Bus Error) | No (Bus Error) |
1 (SAM L11 only) |
Secure | No (PERR) | Yes | Yes (NS,PERR) | Yes (ARMv8M) |
1 (SAM L11 only) |
Non-Secure | No (PERR) | Yes | Yes (NS,PERR) | Yes (ARMv8M) |
2 | Secure | Yes | Yes | Yes | Yes |
2 | Non-Secure | No (PERR) | Yes | Yes | Yes |
Bus Error: A Bus Error is sent back to the DAP setting its sticky bit error.
PERR: No bus error, STATUSA.PERR rises, writes are discarded, reads always return 0
NS, PERR: Access forced to non-secure, secure violations are reported in STATUSA.PERR.