diff options
author | Andrew Kaster <akaster@serenityos.org> | 2023-05-17 23:18:03 -0600 |
---|---|---|
committer | Andrew Kaster <andrewdkaster@gmail.com> | 2023-05-19 20:12:25 -0600 |
commit | f62c646c28e6b82509a026bb07f12eacc3e6c551 (patch) | |
tree | fdf5c13d38f73c9637fb33638756e81bb09f4c8e /Kernel | |
parent | 60cddb4179e401a7c5e6cc044ead6d4b742dbf11 (diff) | |
download | serenity-f62c646c28e6b82509a026bb07f12eacc3e6c551.zip |
Kernel: Update reset value and register names of SCTLR_EL1 per Arm ARM
Referencing ARM DDI 0487J.a, update the names of previously reserved
fields, and set the reset_value() of the SCTLR_EL1 struct to reflect
the defaults we want for this register on reboot.
Diffstat (limited to 'Kernel')
-rw-r--r-- | Kernel/Arch/aarch64/Registers.h | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/Kernel/Arch/aarch64/Registers.h b/Kernel/Arch/aarch64/Registers.h index 5ca4e626ce..782c768db4 100644 --- a/Kernel/Arch/aarch64/Registers.h +++ b/Kernel/Arch/aarch64/Registers.h @@ -626,12 +626,12 @@ struct alignas(u64) SCTLR_EL1 { int SA : 1; int SA0 : 1; int CP15BEN : 1; - int _reserved6 : 1 = 0; + int nAA : 1; int ITD : 1; int SED : 1; int UMA : 1; - int _reserved10 : 1 = 0; - int _reserved11 : 1 = 1; + int EnRCTX : 1; + int EOS : 1; int I : 1; int EnDB : 1; int DZE : 1; @@ -640,9 +640,9 @@ struct alignas(u64) SCTLR_EL1 { int _reserved17 : 1 = 0; int nTWE : 1; int WXN : 1; - int _reserved20 : 1 = 1; + int TSCXT : 1; int IESB : 1; - int _reserved22 : 1 = 1; + int EIS : 1; int SPAN : 1; int E0E : 1; int EE : 1; @@ -688,10 +688,17 @@ struct alignas(u64) SCTLR_EL1 { static constexpr SCTLR_EL1 reset_value() { SCTLR_EL1 system_control_register_el1 = {}; + system_control_register_el1.SA = 1; + system_control_register_el1.SA0 = 1; + system_control_register_el1.ITD = 1; + system_control_register_el1.SED = 1; + system_control_register_el1.EOS = 1; + system_control_register_el1.TSCXT = 1; + system_control_register_el1.IESB = 1; + system_control_register_el1.EIS = 1; + system_control_register_el1.SPAN = 1; system_control_register_el1.LSMAOE = 1; system_control_register_el1.nTLSMD = 1; - system_control_register_el1.SPAN = 1; - system_control_register_el1.IESB = 1; return system_control_register_el1; } }; |