1/*
2 * Copyright 2018, Data61
3 * Commonwealth Scientific and Industrial Research Organisation (CSIRO)
4 * ABN 41 687 119 230.
5 *
6 * This software may be distributed and modified according to the terms of
7 * the BSD 2-Clause license. Note that NO WARRANTY is provided.
8 * See "LICENSE_BSD2.txt" for details.
9 *
10 * @TAG(DATA61_BSD)
11 */
12#pragma once
13
14#include <autoconf.h>
15#include <stddef.h>
16#include <utils/attribute.h>
17#include <sel4/sel4_arch/constants.h>
18
19/* ordered list of page sizes for this architecture */
20static const UNUSED size_t sel4_page_sizes[] = {
21    seL4_PageBits,
22    seL4_LargePageBits,
23#if CONFIG_PT_LEVELS > 2
24    seL4_HugePageBits,
25#endif
26#if CONFIG_PT_LEVELS > 3
27    seL4_TeraPageBits,
28#endif
29};
30
31#define seL4_ARCH_Page_Map             seL4_RISCV_Page_Map
32#define seL4_ARCH_Page_Unmap           seL4_RISCV_Page_Unmap
33#define seL4_ARCH_Page_GetAddress      seL4_RISCV_Page_GetAddress
34#define seL4_ARCH_Page_GetAddress_t    seL4_RISCV_Page_GetAddress_t
35#define seL4_ARCH_PageTable_Map        seL4_RISCV_PageTable_Map
36#define seL4_ARCH_PageTable_Unmap      seL4_RISCV_PageTable_Unmap
37#define seL4_ARCH_ASIDPool_Assign      seL4_RISCV_ASIDPool_Assign
38#define seL4_ARCH_ASIDControl_MakePool seL4_RISCV_ASIDControl_MakePool
39#define seL4_ARCH_PageTableObject      seL4_RISCV_PageTableObject
40#define seL4_ARCH_PageDirectoryObject  seL4_RISCV_PageTableObject
41#define seL4_ARCH_Default_VMAttributes seL4_RISCV_Default_VMAttributes
42#define seL4_ARCH_VMAttributes         seL4_RISCV_VMAttributes
43#define seL4_ARCH_4KPage               seL4_RISCV_4K_Page
44#define seL4_ARCH_Uncached_VMAttributes 0
45#define seL4_ARCH_LargePageObject      seL4_RISCV_Mega_Page
46/* for size of a large page object use seL4_LargePageBits */
47#define ARCHPageGetAddress             RISCVPageGetAddress
48