/* arch-eclair.h COPYRIGHT FUJITSU LIMITED 2016-2018 */ #ifndef HEADER_USER_ARM64_ECLAIR_H #define HEADER_USER_ARM64_ECLAIR_H #ifdef CONFIG_ARM64_64K_PAGES # # if (CONFIG_ARM64_VA_BITS == 42) # /* VA_BITS=42, 64K_PAGE address */ # define MAP_KERNEL 0xffffffffe0000000 # define MAP_ST 0xfffffe0000000000 # define MAP_KERNEL_TEXT "0xffffffffe0000000" # # elif (CONFIG_ARM64_VA_BITS == 48) # /* VA_BITS=48, 64K_PAGE address */ # define MAP_KERNEL 0xffffffffe0000000 # define MAP_ST 0xffff800000000000 # define MAP_KERNEL_TEXT "0xffffffffe0000000" # # else # # error "No support VA_BITS and PAGE_SIZE" # # endif # #else /* CONFIG_ARM64_64K_PAGES */ # # if (CONFIG_ARM64_VA_BITS == 39) # /* VA_BITS=39, 4K_PAGE address */ # define MAP_KERNEL 0xffffffffff800000 # define MAP_ST 0xffffffc000000000 # define MAP_KERNEL_TEXT "0xffffffffff800000" # # elif (CONFIG_ARM64_VA_BITS == 48) # /* VA_BITS=48, 4K_PAGE address */ # define MAP_KERNEL 0xffffffffff800000 # define MAP_ST 0xffff800000000000 # define MAP_KERNEL_TEXT "0xffffffffff800000" # # else # # error "No support VA_BITS and PAGE_SIZE" # # endif # #endif /* CONFIG_ARM64_64K_PAGES */ #define ARCH_CLV_SPAN "arm64_cpu_local_variables_span" #define ARCH "aarch64" #define ARCH_REGS 34 #define PANIC_REGS_OFFSET 160 struct arch_kregs { unsigned long x19, x20, x21, x22, x23; unsigned long x24, x25, x26, x27, x28; unsigned long fp, sp, pc; }; #ifdef POSTK_DEBUG_ARCH_DEP_34 uintptr_t virt_to_phys(uintptr_t va); #endif /* POSTK_DEBUG_ARCH_DEP_34 */ #endif /* HEADER_USER_ARM64_ECLAIR_H */