Kernelite 0.1.0
Kernelite is a minimalist, educational operating system kernel built from scratch. The project aims to recreate core components of the Linux architecture to explore the fundamentals of operating system design and hardware-software interaction.
Loading...
Searching...
No Matches
Data Fields
sctlr_el1_t Struct Reference

SCTLR_EL1 — System Control Register, EL1. More...

Data Fields

union { 
 
   uint64_t   value 
 
   struct { 
 
      uint64_t   m: 1 
 
      uint64_t   a: 1 
 
      uint64_t   c: 1 
 
      uint64_t   sa: 1 
 
      uint64_t   sa0: 1 
 
      uint64_t   cp15ben: 1 
 
      uint64_t   naa: 1 
 
      uint64_t   itd: 1 
 
      uint64_t   sed: 1 
 
      uint64_t   uma: 1 
 
      uint64_t   enrctx: 1 
 
      uint64_t   eos: 1 
 
      uint64_t   i: 1 
 
      uint64_t   endb: 1 
 
      uint64_t   dze: 1 
 
      uint64_t   uct: 1 
 
      uint64_t   ntwi: 1 
 
      uint64_t   res0_17: 1 
 
      uint64_t   ntwe: 1 
 
      uint64_t   wxn: 1 
 
      uint64_t   tscxt: 1 
 
      uint64_t   iesb: 1 
 
      uint64_t   eis: 1 
 
      uint64_t   span: 1 
 
      uint64_t   e0e: 1 
 
      uint64_t   ee: 1 
 
      uint64_t   uci: 1 
 
      uint64_t   enda: 1 
 
      uint64_t   ntlsmd: 1 
 
      uint64_t   lsmaoe: 1 
 
      uint64_t   enib: 1 
 
      uint64_t   enia: 1 
 
      uint64_t   res0_34_32: 3 
 
      uint64_t   bt0: 1 
 
      uint64_t   bt1: 1 
 
      uint64_t   itfsb: 1 
 
      uint64_t   tcf0: 2 
 
      uint64_t   tcf: 2 
 
      uint64_t   ata0: 1 
 
      uint64_t   ata: 1 
 
      uint64_t   dssbs: 1 
 
      uint64_t   tweden: 1 
 
      uint64_t   twedel: 4 
 
      uint64_t   res0_53_50: 4 
 
      uint64_t   enasr: 1 
 
      uint64_t   enas0: 1 
 
      uint64_t   enals: 1 
 
      uint64_t   epan: 1 
 
      uint64_t   res0_63_58: 6 
 
   }  
 
};  
 

Detailed Description

SCTLR_EL1 — System Control Register, EL1.

Controls the EL1&0 execution environment: MMU, caches, alignment checks, pointer authentication, branch target identification, and memory tagging.

Reference: ARMv8/ARMv9 ARM DDI 0601, section SCTLR_EL1.

Field Documentation

◆ a

uint64_t sctlr_el1_t::a

[1] A — Alignment fault enable. 1=fault on unaligned access.

◆ ata

uint64_t sctlr_el1_t::ata

[43] ATA — EL1 Allocation Tag Access enable (FEAT_MTE2).

◆ ata0

uint64_t sctlr_el1_t::ata0

[42] ATA0 — EL0 Allocation Tag Access enable (FEAT_MTE2).

◆ bt0

uint64_t sctlr_el1_t::bt0

[35] BT0 — PAC Branch Type Compatibility at EL0 (FEAT_BTI). 1=PACIASP/PACIBSP not compatible with PSTATE.BTYPE==0b11 at EL0.

◆ bt1

uint64_t sctlr_el1_t::bt1

[36] BT1 — PAC Branch Type Compatibility at EL1 (FEAT_BTI). 1=PACIASP/PACIBSP not compatible with PSTATE.BTYPE==0b11 at EL1.

◆ c

uint64_t sctlr_el1_t::c

[2] C — Data cache enable. 0=off, 1=on.

◆ cp15ben

uint64_t sctlr_el1_t::cp15ben

[5] CP15BEN — CP15 barrier instruction enable (FEAT_CP15BEN).

◆ dssbs

uint64_t sctlr_el1_t::dssbs

[44] DSSBS — Default PSTATE.SSBS value on exception entry to EL1 (FEAT_SSBS).

◆ dze

uint64_t sctlr_el1_t::dze

[14] DZE — EL0 access to DC ZVA instruction enable.

◆ e0e

uint64_t sctlr_el1_t::e0e

[24] E0E — EL0 data accesses are big-endian.

◆ ee

uint64_t sctlr_el1_t::ee

[25] EE — Exception endianness. 0=little-endian, 1=big-endian.

◆ eis

uint64_t sctlr_el1_t::eis

[22] EIS — Exception entry is a context synchronization event (FEAT_ExS).

◆ enals

uint64_t sctlr_el1_t::enals

[56] EnALS — Trap EL0 LD64B/ST64B instructions to EL1 (FEAT_LS64).

◆ enas0

uint64_t sctlr_el1_t::enas0

[55] EnAS0 — Trap EL0 ST64BV0 instruction to EL1 (FEAT_LS64).

◆ enasr

uint64_t sctlr_el1_t::enasr

[54] EnASR — Trap EL0 ST64BV instruction to EL1 (FEAT_LS64).

◆ enda

uint64_t sctlr_el1_t::enda

[27] EnDA — Pointer authentication using APDAKey_EL1 enable (FEAT_PAuth).

◆ endb

uint64_t sctlr_el1_t::endb

[13] EnDB — Pointer authentication using APDBKey_EL1 enable (FEAT_PAuth).

◆ enia

uint64_t sctlr_el1_t::enia

[31] EnIA — Pointer authentication using APIAKey_EL1 enable (FEAT_PAuth).

◆ enib

uint64_t sctlr_el1_t::enib

[30] EnIB — Pointer authentication using APIBKey_EL1 enable (FEAT_PAuth).

◆ enrctx

uint64_t sctlr_el1_t::enrctx

[10] EnRCTX — EL0 access to FEAT_RCPC instructions enable.

◆ eos

uint64_t sctlr_el1_t::eos

[11] EOS — Exception exit is a context synchronization event (FEAT_ExS).

◆ epan

uint64_t sctlr_el1_t::epan

[57] EPAN — Enhanced Privileged Access Never (FEAT_PAN3). 1=EL1 data access to EL0-accessible pages generates Permission fault.

◆ i

uint64_t sctlr_el1_t::i

[12] I — Instruction cache enable. 0=off, 1=on.

◆ iesb

uint64_t sctlr_el1_t::iesb

[21] IESB — Implicit Error Synchronization Barrier enable (FEAT_IESB).

◆ itd

uint64_t sctlr_el1_t::itd

[7] ITD — IT instruction disable for T32 at EL0.

◆ itfsb

uint64_t sctlr_el1_t::itfsb

[37] ITFSB — Implicit Tag Fault Synchronization Barrier on EL1 entry (FEAT_MTE2).

◆ lsmaoe

uint64_t sctlr_el1_t::lsmaoe

[29] LSMAOE — LDM/STM atomicity and ordering enable (FEAT_LSMAOC).

◆ m

uint64_t sctlr_el1_t::m

[0] M — MMU enable for EL1&0 stage 1 translation. 0=off, 1=on.

◆ naa

uint64_t sctlr_el1_t::naa

[6] nAA — Non-aligned access enable (FEAT_LSE2). 1=hardware handles unaligned accesses at EL1/EL0.

◆ ntlsmd

uint64_t sctlr_el1_t::ntlsmd

[28] nTLSMD — No trap LDM/STM/LDP/STP to Device-nGRE/nGnRE/nGnRnE (FEAT_LSMAOC).

◆ ntwe

uint64_t sctlr_el1_t::ntwe

[18] nTWE — Do not trap EL0 WFE instructions to EL1.

◆ ntwi

uint64_t sctlr_el1_t::ntwi

[16] nTWI — Do not trap EL0 WFI instructions to EL1.

◆ res0_17

uint64_t sctlr_el1_t::res0_17

[17] RES0.

◆ res0_34_32

uint64_t sctlr_el1_t::res0_34_32

[34:32] RES0.

◆ res0_53_50

uint64_t sctlr_el1_t::res0_53_50

[53:50] RES0.

◆ res0_63_58

uint64_t sctlr_el1_t::res0_63_58

[63:58] RES0.

◆ sa

uint64_t sctlr_el1_t::sa

[3] SA — EL1 stack pointer alignment check enable.

◆ sa0

uint64_t sctlr_el1_t::sa0

[4] SA0 — EL0 stack pointer alignment check enable.

◆ sed

uint64_t sctlr_el1_t::sed

[8] SED — SETEND instruction disable.

◆ span

uint64_t sctlr_el1_t::span

[23] SPAN — Set PAN on exception entry to EL1 (FEAT_PAN). 0=PSTATE.PAN set to 1 on entry, 1=PSTATE.PAN unchanged.

◆ tcf

uint64_t sctlr_el1_t::tcf

[41:40] TCF — EL1 Tag Check Fault mode (FEAT_MTE2). 00=no effect, 01=sync exception, 10=async accumulated, 11=sync reads/async writes (FEAT_MTE3).

◆ tcf0

uint64_t sctlr_el1_t::tcf0

[39:38] TCF0 — EL0 Tag Check Fault mode (FEAT_MTE2). 00=no effect, 01=sync exception, 10=async accumulated, 11=sync reads/async writes (FEAT_MTE3).

◆ tscxt

uint64_t sctlr_el1_t::tscxt

[20] TSCXT — Trap EL0 access to SCXTNUM_EL0 (FEAT_CSV2_2).

◆ twedel

uint64_t sctlr_el1_t::twedel

[49:46] TWEDEL — TWE Delay value;trap delay = 2^(TWEDEL+8) cycles (FEAT_TWED).

◆ tweden

uint64_t sctlr_el1_t::tweden

[45] TWEDEn — TWE Delay enable (FEAT_TWED).

◆ uci

uint64_t sctlr_el1_t::uci

[26] UCI — EL0 cache maintenance instructions (DC CVAU, IC IVAU, etc.) enable.

◆ uct

uint64_t sctlr_el1_t::uct

[15] UCT — EL0 access to CTR_EL0 enable.

◆ uma

uint64_t sctlr_el1_t::uma

[9] UMA — User Mask Access: 1=EL0 may read/write DAIF.

◆ value

uint64_t sctlr_el1_t::value

Raw 64-bit register value for MRS/MSR.

◆ wxn

uint64_t sctlr_el1_t::wxn

[19] WXN — Write permission implies Execute-Never at EL1.


The documentation for this struct was generated from the following file: