C1.8 Changing the authentication signals for debug
The NIDEN, DBGEN, SPIDEN, and SPNIDEN input signals are either tied off to some fixed value or
controlled by some external device. If software running on the processor has control over an external
device that drives the authentication signals, it must change the signal value using the specified
procedure.
Procedure
1. Execute an implementation-specific sequence of instructions to change the signal value. For example,
a single STR instruction might write certain values to a control register in a system peripheral.
2. If step 1 on page C1-584 involves any memory operation, issue a DSB instruction.
3. Issue an ISB instruction or exception entry or exception return.
4. Poll the DBGAUTHSTATUS_EL1 register to check whether the processor has already detected the
changed value of these signals. This check is required because the system might not issue the signal
change to the processor until several cycles after the DSB instruction completes.
Next Steps
Software cannot perform debug or analysis operations that depend on the new value of the authentication
signals until this procedure is complete. The same rules apply when the debugger has control of the
processor through the Instruction Transfer Register, EDITR, while in debug state. You can determine the
relevant combinations of the DBGEN, NIDEN, SPIDEN, and SPNIDEN values by polling
DBGAUTHSTATUS_EL1.
Related information
A.14 Debug signals on page Appx-A-871
C1 Debug
C1.8 Changing the authentication signals for debug
100236_0100_00_en Copyright © 2015–2017, 2019 Arm Limited or its affiliates. All rights
reserved.
C1-584
Non-Confidential