1/* 2 * Copyright 2020, Data61, CSIRO (ABN 41 687 119 230) 3 * Copyright 2015, 2016 Hesham Almatary <heshamelmatary@gmail.com> 4 * 5 * SPDX-License-Identifier: BSD-2-Clause 6 */ 7 8#pragma once 9 10#ifdef HAVE_AUTOCONF 11#include <autoconf.h> 12#endif 13 14#define seL4_WordBits 32 15/* log 2 bits in a word */ 16#define seL4_WordSizeBits 2 17 18#define seL4_SlotBits 4 19#ifdef CONFIG_KERNEL_MCS 20#define seL4_NotificationBits 5 21#define seL4_ReplyBits 4 22#else 23#define seL4_NotificationBits 4 24#endif 25#define seL4_EndpointBits 4 26#define seL4_IPCBufferSizeBits 9 27#define seL4_TCBBits 9 28 29/* Untyped size limits */ 30#define seL4_MinUntypedBits 4 31#define seL4_MaxUntypedBits 29 32 33/* RISC-V Sv32 pages/ptes sizes */ 34#define seL4_PageTableEntryBits 2 35#define seL4_PageTableIndexBits 10 36 37#define seL4_PageBits 12 38#define seL4_LargePageBits 22 39#define seL4_PageTableBits 12 40#define seL4_VSpaceBits seL4_PageTableBits 41 42#define seL4_NumASIDPoolsBits 5 43#define seL4_ASIDPoolIndexBits 4 44#define seL4_ASIDPoolBits 12 45#ifndef __ASSEMBLER__ 46 47typedef enum { 48 seL4_VMFault_IP, 49 seL4_VMFault_Addr, 50 seL4_VMFault_PrefetchFault, 51 seL4_VMFault_FSR, 52 seL4_VMFault_Length, 53} seL4_VMFault_Msg; 54 55typedef enum { 56 seL4_UnknownSyscall_FaultIP, 57 seL4_UnknownSyscall_SP, 58 seL4_UnknownSyscall_RA, 59 seL4_UnknownSyscall_A0, 60 seL4_UnknownSyscall_A1, 61 seL4_UnknownSyscall_A2, 62 seL4_UnknownSyscall_A3, 63 seL4_UnknownSyscall_A4, 64 seL4_UnknownSyscall_A5, 65 seL4_UnknownSyscall_A6, 66 seL4_UnknownSyscall_Syscall, 67 seL4_UnknownSyscall_Length, 68} seL4_UnknownSyscall_Msg; 69 70typedef enum { 71 seL4_UserException_FaultIP, 72 seL4_UserException_SP, 73 seL4_UserException_Number, 74 seL4_UserException_Code, 75 seL4_UserException_Length, 76} seL4_UserException_Msg; 77 78#ifdef CONFIG_KERNEL_MCS 79typedef enum { 80 seL4_TimeoutReply_FaultIP, 81 seL4_TimeoutReply_LR, 82 seL4_TimeoutReply_SP, 83 seL4_TimeoutReply_GP, 84 seL4_TimeoutReply_s0, 85 seL4_TimeoutReply_s1, 86 seL4_TimeoutReply_s2, 87 seL4_TimeoutReply_s3, 88 seL4_TimeoutReply_s4, 89 seL4_TimeoutReply_s5, 90 seL4_TimeoutReply_s6, 91 seL4_TimeoutReply_s7, 92 seL4_TimeoutReply_s8, 93 seL4_TimeoutReply_s9, 94 seL4_TimeoutReply_s10, 95 seL4_TimeoutReply_s11, 96 seL4_TimeoutReply_a0, 97 seL4_TimeoutReply_a1, 98 seL4_TimeoutReply_a2, 99 seL4_TimeoutReply_a3, 100 seL4_TimeoutReply_a4, 101 seL4_TimeoutReply_a5, 102 seL4_TimeoutReply_a6, 103 seL4_TimeoutReply_a7, 104 seL4_TimeoutReply_t0, 105 seL4_TimeoutReply_t1, 106 seL4_TimeoutReply_t2, 107 seL4_TimeoutReply_t3, 108 seL4_TimeoutReply_t4, 109 seL4_TimeoutReply_t5, 110 seL4_TimeoutReply_t6, 111 seL4_TimeoutReply_TP, 112 seL4_TimeoutReply_Length, 113} seL4_TimeoutReply_Msg; 114 115typedef enum { 116 seL4_Timeout_Data, 117 seL4_Timeout_Consumed_HighBits, 118 seL4_Timeout_Consumed_LowBits, 119 seL4_Timeout_Length, 120} seL4_TimeoutMsg; 121#endif 122#endif /* __ASSEMBLER__ */ 123 124/* First address in the virtual address space that is not accessible to user level */ 125#define seL4_UserTop 0x80000000lu 126 127#ifdef CONFIG_ENABLE_BENCHMARKS 128/* size of kernel log buffer in bytes */ 129#define seL4_LogBufferSize (LIBSEL4_BIT(20)) 130#endif /* CONFIG_ENABLE_BENCHMARKS */ 131