You copied the Doc URL to your clipboard.

DBGAUTHSTATUS, Debug Authentication Status register

The DBGAUTHSTATUS characteristics are:

Purpose

Provides information about the state of the IMPLEMENTATION DEFINED authentication interface for debug.

Configuration

AArch32 System register DBGAUTHSTATUS bits [31:0] are architecturally mapped to AArch64 System register DBGAUTHSTATUS_EL1[31:0] .

AArch32 System register DBGAUTHSTATUS bits [31:0] are architecturally mapped to External register DBGAUTHSTATUS_EL1[31:0] .

This register is required in all implementations.

Attributes

DBGAUTHSTATUS is a 32-bit register.

Field descriptions

The DBGAUTHSTATUS bit assignments are:

313029282726252423222120191817161514131211109876543210
000000000000000000000000SNIDSIDNSNIDNSID

Bits [31:8]

Reserved, RES0.

SNID, bits [7:6]

When ARMv8.4-Debug is implemented:

Secure Non-Invasive Debug.

This field has the same value as DBGAUTHSTATUS.SID.


Otherwise:

Secure Non-Invasive Debug.

SNIDMeaning
0b00

Not implemented. EL3 is not implemented and the Effective value of SCR.NS is 1.

0b10

Implemented and disabled. ExternalSecureNoninvasiveDebugEnabled() == FALSE.

0b11

Implemented and enabled. ExternalSecureNoninvasiveDebugEnabled() == TRUE.

All other values are reserved.

SID, bits [5:4]

Secure Invasive Debug.

SIDMeaning
0b00

Not implemented. EL3 is not implemented and the Effective value of SCR_EL3.NS is 1.

0b10

Implemented and disabled. ExternalSecureInvasiveDebugEnabled() == FALSE.

0b11

Implemented and enabled. ExternalSecureInvasiveDebugEnabled() == TRUE.

All other values are reserved.

NSNID, bits [3:2]

When ARMv8.4-Debug is implemented:

Non-secure Non-invasive debug.

NSNIDMeaning
0b00

Not implemented. EL3 is not implemented and the Effective value of SCR.NS is 0.

0b11

Implemented and enabled. EL3 is implemented or the Effective value of SCR.NS is 1.

All other values are reserved.


Otherwise:

Non-secure Non-Invasive Debug.

NSNIDMeaning
0b00

Not implemented. EL3 is not implemented and the Effective value of SCR.NS is 0

0b10

Implemented and disabled. ExternalNoninvasiveDebugEnabled() == FALSE.

0b11

Implemented and enabled. ExternalNoninvasiveDebugEnabled() == TRUE.

All other values are reserved.

NSID, bits [1:0]

Non-secure Invasive Debug.

NSIDMeaning
0b00

Not implemented. EL3 is not implemented or the Effective value of SCR_EL3.NS is 0.

0b10

Implemented and disabled. ExternalInvasiveDebugEnabled() == FALSE.

0b11

Implemented and enabled. ExternalInvasiveDebugEnabled() == TRUE.

All other values are reserved.

Accessing the DBGAUTHSTATUS

Accesses to this register use the following encodings:

MRC{<c>}{<q>} <coproc>, {#}<opc1>, <Rt>, <CRn>, <CRm>{, {#}<opc2>}

opc1opc2CRncoprocCRm
0b0000b1100b01110b11100b1110
if PSTATE.EL == EL0 then
    UNDEFINED;
elsif PSTATE.EL == EL1 then
    if EL2Enabled() && !ELUsingAArch32(EL2) && MDCR_EL2.<TDE,TDA> != '00' then
        AArch64.AArch32SystemAccessTrap(EL2, 0x05);
    elsif EL2Enabled() && ELUsingAArch32(EL2) && HDCR.<TDE,TDA> != '00' then
        AArch32.TakeHypTrapException(0x05);
    elsif HaveEL(EL3) && !ELUsingAArch32(EL3) && MDCR_EL3.TDA == '1' then
        AArch64.AArch32SystemAccessTrap(EL3, 0x05);
    else
        return DBGAUTHSTATUS;
elsif PSTATE.EL == EL2 then
    if HaveEL(EL3) && !ELUsingAArch32(EL3) && MDCR_EL3.TDA == '1' then
        AArch64.AArch32SystemAccessTrap(EL3, 0x05);
    else
        return DBGAUTHSTATUS;
elsif PSTATE.EL == EL3 then
    return DBGAUTHSTATUS;
              


Was this page helpful? Yes No