0001
0002
0003
0004
0005
0006
0007 #ifndef _ASM_PGTABLE_2LEVEL_HWDEF_H
0008 #define _ASM_PGTABLE_2LEVEL_HWDEF_H
0009
0010
0011
0012
0013
0014
0015
0016 #define PMD_TYPE_MASK (_AT(pmdval_t, 3) << 0)
0017 #define PMD_TYPE_FAULT (_AT(pmdval_t, 0) << 0)
0018 #define PMD_TYPE_TABLE (_AT(pmdval_t, 1) << 0)
0019 #define PMD_TYPE_SECT (_AT(pmdval_t, 2) << 0)
0020 #define PMD_PXNTABLE (_AT(pmdval_t, 1) << 2)
0021 #define PMD_BIT4 (_AT(pmdval_t, 1) << 4)
0022 #define PMD_DOMAIN(x) (_AT(pmdval_t, (x)) << 5)
0023 #define PMD_DOMAIN_MASK PMD_DOMAIN(0x0f)
0024 #define PMD_PROTECTION (_AT(pmdval_t, 1) << 9)
0025
0026
0027
0028 #define PMD_SECT_PXN (_AT(pmdval_t, 1) << 0)
0029 #define PMD_SECT_BUFFERABLE (_AT(pmdval_t, 1) << 2)
0030 #define PMD_SECT_CACHEABLE (_AT(pmdval_t, 1) << 3)
0031 #define PMD_SECT_XN (_AT(pmdval_t, 1) << 4)
0032 #define PMD_SECT_AP_WRITE (_AT(pmdval_t, 1) << 10)
0033 #define PMD_SECT_AP_READ (_AT(pmdval_t, 1) << 11)
0034 #define PMD_SECT_TEX(x) (_AT(pmdval_t, (x)) << 12)
0035 #define PMD_SECT_APX (_AT(pmdval_t, 1) << 15)
0036 #define PMD_SECT_S (_AT(pmdval_t, 1) << 16)
0037 #define PMD_SECT_nG (_AT(pmdval_t, 1) << 17)
0038 #define PMD_SECT_SUPER (_AT(pmdval_t, 1) << 18)
0039 #define PMD_SECT_AF (_AT(pmdval_t, 0))
0040
0041 #define PMD_SECT_UNCACHED (_AT(pmdval_t, 0))
0042 #define PMD_SECT_BUFFERED (PMD_SECT_BUFFERABLE)
0043 #define PMD_SECT_WT (PMD_SECT_CACHEABLE)
0044 #define PMD_SECT_WB (PMD_SECT_CACHEABLE | PMD_SECT_BUFFERABLE)
0045 #define PMD_SECT_MINICACHE (PMD_SECT_TEX(1) | PMD_SECT_CACHEABLE)
0046 #define PMD_SECT_WBWA (PMD_SECT_TEX(1) | PMD_SECT_CACHEABLE | PMD_SECT_BUFFERABLE)
0047 #define PMD_SECT_CACHE_MASK (PMD_SECT_TEX(1) | PMD_SECT_CACHEABLE | PMD_SECT_BUFFERABLE)
0048 #define PMD_SECT_NONSHARED_DEV (PMD_SECT_TEX(2))
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058 #define PTE_TYPE_MASK (_AT(pteval_t, 3) << 0)
0059 #define PTE_TYPE_FAULT (_AT(pteval_t, 0) << 0)
0060 #define PTE_TYPE_LARGE (_AT(pteval_t, 1) << 0)
0061 #define PTE_TYPE_SMALL (_AT(pteval_t, 2) << 0)
0062 #define PTE_TYPE_EXT (_AT(pteval_t, 3) << 0)
0063 #define PTE_BUFFERABLE (_AT(pteval_t, 1) << 2)
0064 #define PTE_CACHEABLE (_AT(pteval_t, 1) << 3)
0065
0066
0067
0068
0069 #define PTE_EXT_XN (_AT(pteval_t, 1) << 0)
0070 #define PTE_EXT_AP_MASK (_AT(pteval_t, 3) << 4)
0071 #define PTE_EXT_AP0 (_AT(pteval_t, 1) << 4)
0072 #define PTE_EXT_AP1 (_AT(pteval_t, 2) << 4)
0073 #define PTE_EXT_AP_UNO_SRO (_AT(pteval_t, 0) << 4)
0074 #define PTE_EXT_AP_UNO_SRW (PTE_EXT_AP0)
0075 #define PTE_EXT_AP_URO_SRW (PTE_EXT_AP1)
0076 #define PTE_EXT_AP_URW_SRW (PTE_EXT_AP1|PTE_EXT_AP0)
0077 #define PTE_EXT_TEX(x) (_AT(pteval_t, (x)) << 6)
0078 #define PTE_EXT_APX (_AT(pteval_t, 1) << 9)
0079 #define PTE_EXT_COHERENT (_AT(pteval_t, 1) << 9)
0080 #define PTE_EXT_SHARED (_AT(pteval_t, 1) << 10)
0081 #define PTE_EXT_NG (_AT(pteval_t, 1) << 11)
0082
0083
0084
0085
0086 #define PTE_SMALL_AP_MASK (_AT(pteval_t, 0xff) << 4)
0087 #define PTE_SMALL_AP_UNO_SRO (_AT(pteval_t, 0x00) << 4)
0088 #define PTE_SMALL_AP_UNO_SRW (_AT(pteval_t, 0x55) << 4)
0089 #define PTE_SMALL_AP_URO_SRW (_AT(pteval_t, 0xaa) << 4)
0090 #define PTE_SMALL_AP_URW_SRW (_AT(pteval_t, 0xff) << 4)
0091
0092 #define PHYS_MASK (~0UL)
0093
0094 #endif