[ mackerel2 (options arch) f
| f <- [ "ac97_base_audio",
"ac97_ext_audio",
+ "armv8",
"cpuid_intel",
"cpuid_amd",
"cpuid_arm",
--- /dev/null
+/*
+ * Copyright (c) 2016, ETH Zurich. All rights reserved.
+ *
+ * This file is distributed under the terms in the attached LICENSE file.
+ * If you do not find this file, copies can be found by writing to:
+ * ETH Zurich D-INFK, Universitaetstr. 6, CH-8092 Zurich. Attn: Systems Group.
+ */
+
+/*
+ * armv8.dev
+ *
+ * DESCRIPTION: ARMv8 architecture definitions
+ *
+ * See:
+ * ARM Architecture Reference Manual
+ */
+
+device armv8 msbfirst () "ARMv8 architecture" {
+
+ space sysreg(name) registerwise "System registers";
+
+ register ICC_SRE_EL1 rw sysreg(ICC_SRE_EL1) "Interrupt Controller System Register Enable" {
+ _ 29;
+ DIB 1;
+ DFB 1;
+ SRE 1;
+ };
+
+};
isb
ret x12
+
+.macro sysreg_read sz name reg
+.globl armv8_sysreg_read\()_\sz\()_\name
+armv8_sysreg_read\()_\sz\()_\name :
+ mov x12, x30
+ mrs x0, \reg
+ ret x12
+ nop
+.endm
+
+.macro sysreg_write sz name reg
+.globl armv8_sysreg_write\()_\sz\()_\name
+armv8_sysreg_write\()_\sz\()_\name :
+ mov x12, x30
+ msr \reg , x0
+ ret x12
+ nop
+.endm
+
+.macro sysreg_rw sz name reg
+sysreg_read \sz \name \reg
+sysreg_write \sz \name \reg
+.endm
+
+.macro sysreg_ro sz name reg
+sysreg read \sz \name \reg
+.endm
+
+sysreg_rw 32 ICC_SRE_EL1 S3_0_C12_C12_5