From 1b6767d3a861f9367fbb99f3a4302eea9fe65f4f Mon Sep 17 00:00:00 2001 From: Lunaixsky Date: Sun, 29 Sep 2024 16:44:42 +0100 Subject: [PATCH] restructure the aa64 isa related header files. --- lunaix-os/arch/aarch64/includes/asm/aa64.h | 2 ++ .../arch/aarch64/includes/asm/aa64_asm.h | 9 +++++ .../arch/aarch64/includes/asm/aa64_mmu.h | 34 ++++++++++++++++++ .../arch/aarch64/includes/asm/aa64_msrs.h | 35 +------------------ .../arch/aarch64/includes/asm/aa64_sysinst.h | 2 +- 5 files changed, 47 insertions(+), 35 deletions(-) create mode 100644 lunaix-os/arch/aarch64/includes/asm/aa64_asm.h diff --git a/lunaix-os/arch/aarch64/includes/asm/aa64.h b/lunaix-os/arch/aarch64/includes/asm/aa64.h index 3452993..d9e8d9a 100644 --- a/lunaix-os/arch/aarch64/includes/asm/aa64.h +++ b/lunaix-os/arch/aarch64/includes/asm/aa64.h @@ -1,7 +1,9 @@ #ifndef __LUNAIX_AA64_H #define __LUNAIX_AA64_H +#include "aa64_asm.h" #include "aa64_mmu.h" #include "aa64_msrs.h" +#include "aa64_sysinst.h" #endif /* __LUNAIX_AA64_H */ diff --git a/lunaix-os/arch/aarch64/includes/asm/aa64_asm.h b/lunaix-os/arch/aarch64/includes/asm/aa64_asm.h new file mode 100644 index 0000000..1682de7 --- /dev/null +++ b/lunaix-os/arch/aarch64/includes/asm/aa64_asm.h @@ -0,0 +1,9 @@ +#ifndef __LUNAIX_AA64_ASM_H +#define __LUNAIX_AA64_ASM_H + +#include + +#define __sr_encode(op0, op1, crn, crm, op2) \ + s##op0##_##op1##_c##crn##_c##crm##_##op2 + +#endif /* __LUNAIX_AA64_ASM_H */ diff --git a/lunaix-os/arch/aarch64/includes/asm/aa64_mmu.h b/lunaix-os/arch/aarch64/includes/asm/aa64_mmu.h index 971c1b8..25885cf 100644 --- a/lunaix-os/arch/aarch64/includes/asm/aa64_mmu.h +++ b/lunaix-os/arch/aarch64/includes/asm/aa64_mmu.h @@ -1,6 +1,8 @@ #ifndef __LUNAIX_AA64_MMU_H #define __LUNAIX_AA64_MMU_H +#include "aa64_asm.h" + #if defined(CONFIG_AA64_PAGE_GRAN_4K) #define _MMU_TG 0b01 #elif defined(CONFIG_AA64_PAGE_GRAN_16K) @@ -13,4 +15,36 @@ #define _MMU_USE_OA52 #endif + +#define TCR_DS (1UL << 59) +#define TCR_E0PD1 (1UL << 56) +#define TCR_E0PD0 (1UL << 55) +#define TCR_TBID1 (1UL << 52) +#define TCR_TBID0 (1UL << 51) +#define TCR_HPD1 (1UL << 42) +#define TCR_HPD0 (1UL << 41) +#define TCR_HD (1UL << 40) +#define TCR_HA (1UL << 39) +#define TCR_TBI1 (1UL << 38) +#define TCR_TBI0 (1UL << 37) +#define TCR_AS (1UL << 36) + +#define TCR_G4K (0b01) +#define TCR_G16K (0b10) +#define TCR_G64K (0b11) + +#define TCR_SHNS (0b01) +#define TCR_SHOS (0b10) +#define TCR_SHIS (0b11) + +#define TCR_TG1(g) (((g) & 0b11) << 30) +#define TCR_TG0(g) (((g) & 0b11) << 14) + +#define TCR_T1SZ(sz) (((sz) & 0b111111) << 16) +#define TCR_T0SZ(sz) (((sz) & 0b111111)) + +#define TCR_EPD1 (1UL << 23) +#define TCR_EPD0 (1UL << 7) +#define TCR_A1 (1UL << 22) + #endif /* __LUNAIX_AA64_MMU_H */ diff --git a/lunaix-os/arch/aarch64/includes/asm/aa64_msrs.h b/lunaix-os/arch/aarch64/includes/asm/aa64_msrs.h index cd8978d..d15b11e 100644 --- a/lunaix-os/arch/aarch64/includes/asm/aa64_msrs.h +++ b/lunaix-os/arch/aarch64/includes/asm/aa64_msrs.h @@ -1,10 +1,7 @@ #ifndef __LUNAIX_AA64_MSRS_H #define __LUNAIX_AA64_MSRS_H -#include - -#define __sr_encode(op0, op1, crn, crm, op2) \ - s##op0##_##op1##_c##crn##_c##crm##_##op2 +#include "aa64_asm.h" #define SCTLR_EL1 __sr_encode(3, 0, 1, 0, 0) #define TCR_EL1 __sr_encode(3, 0, 2, 0, 2) @@ -43,35 +40,5 @@ #define SCTRL_A (1UL << 1) #define SCTRL_M (1UL << 0) -#define TCR_DS (1UL << 59) -#define TCR_E0PD1 (1UL << 56) -#define TCR_E0PD0 (1UL << 55) -#define TCR_TBID1 (1UL << 52) -#define TCR_TBID0 (1UL << 51) -#define TCR_HPD1 (1UL << 42) -#define TCR_HPD0 (1UL << 41) -#define TCR_HD (1UL << 40) -#define TCR_HA (1UL << 39) -#define TCR_TBI1 (1UL << 38) -#define TCR_TBI0 (1UL << 37) -#define TCR_AS (1UL << 36) - -#define TCR_G4K (0b01) -#define TCR_G16K (0b10) -#define TCR_G64K (0b11) - -#define TCR_SHNS (0b01) -#define TCR_SHOS (0b10) -#define TCR_SHIS (0b11) - -#define TCR_TG1(g) (((g) & 0b11) << 30) -#define TCR_TG0(g) (((g) & 0b11) << 14) - -#define TCR_T1SZ(sz) (((sz) & 0b111111) << 16) -#define TCR_T0SZ(sz) (((sz) & 0b111111)) - -#define TCR_EPD1 (1UL << 23) -#define TCR_EPD0 (1UL << 7) -#define TCR_A1 (1UL << 22) #endif /* __LUNAIX_AA64_MSRS_H */ diff --git a/lunaix-os/arch/aarch64/includes/asm/aa64_sysinst.h b/lunaix-os/arch/aarch64/includes/asm/aa64_sysinst.h index 96cb7ca..eaea541 100644 --- a/lunaix-os/arch/aarch64/includes/asm/aa64_sysinst.h +++ b/lunaix-os/arch/aarch64/includes/asm/aa64_sysinst.h @@ -1,7 +1,7 @@ #ifndef __LUNAIX_AA64_SYSINST_H #define __LUNAIX_AA64_SYSINST_H -#include "aa64_msrs.h" +#include "aa64_asm.h" #define tlbi_alle1 __sr_encode(1, 4, 8, 7, 4) #define tlbi_aside1 __sr_encode(1, 0, 8, 7, 2) -- 2.27.0