OSLAR_EL1, OS Lock Access Register
The OSLAR_EL1 characteristics are:
Purpose
Used to lock or unlock the OS lock.
Configuration
External register OSLAR_EL1 bits [31:0] are architecturally mapped to AArch64 System register OSLAR_EL1[31:0] .
External register OSLAR_EL1 bits [31:0] are architecturally mapped to AArch32 System register DBGOSLAR[31:0] .
OSLAR_EL1 is in the Core power domain.
If ARMv8.2-Debug is not implemented, it is IMPLEMENTATION DEFINED whether external debug accesses to OSLAR_EL1 are ignored and return an error when AllowExternalDebugAccess() returns FALSE for the access.
If ARMv8.2-Debug is implemented, external debug accesses to OSLAR_EL1 are ignored and return an error when AllowExternalDebugAccess() returns FALSE for the access.
Attributes
OSLAR_EL1 is a 32-bit register.
Field descriptions
The OSLAR_EL1 bit assignments are:
Bits [31:1]
Reserved, RES0.
OSLK, bit [0]
On writes to OSLAR_EL1, bit[0] is copied to the OS lock.
Use EDPRSR.OSLK to check the current status of the lock.
Accessing the OSLAR_EL1
SoftwareLockStatus() depends on the type of access attempted and AllowExternalDebugAccess() has a new definition from Armv8.4. Refer to the Pseudocode definitions for more information.
OSLAR_EL1 can be accessed through the external debug interface:
Component | Offset | Instance |
---|---|---|
Debug | 0x300 | OSLAR_EL1 |
This interface is accessible as follows:
- When IsCorePowered(), !DoubleLockStatus(), AllowExternalDebugAccess() and SoftwareLockStatus() access to this register is WI.
- When IsCorePowered(), !DoubleLockStatus(), AllowExternalDebugAccess() and !SoftwareLockStatus() access to this register is WO.
- When IsCorePowered(), !DoubleLockStatus(), !AllowExternalDebugAccess() and ARMv8.2-Debug is not implemented access to this register is IMPDEF.
- Otherwise access to this register returns an Error.