1  /* SPDX-License-Identifier: GPL-2.0-only */
2  /*
3   *  arch/arm/include/asm/pgtable-nommu.h
4   *
5   *  Copyright (C) 1995-2002 Russell King
6   *  Copyright (C) 2004  Hyok S. Choi
7   */
8  #ifndef _ASMARM_PGTABLE_NOMMU_H
9  #define _ASMARM_PGTABLE_NOMMU_H
10  
11  #ifndef __ASSEMBLY__
12  
13  #include <linux/slab.h>
14  #include <asm/processor.h>
15  #include <asm/page.h>
16  
17  /*
18   * Trivial page table functions.
19   */
20  #define pgd_present(pgd)	(1)
21  #define pgd_none(pgd)		(0)
22  #define pgd_bad(pgd)		(0)
23  #define pgd_clear(pgdp)
24  /*
25   * PMD_SHIFT determines the size of the area a second-level page table can map
26   * PGDIR_SHIFT determines what a third-level page table entry can map
27   */
28  #define PGDIR_SHIFT		21
29  
30  #define PGDIR_SIZE		(1UL << PGDIR_SHIFT)
31  #define PGDIR_MASK		(~(PGDIR_SIZE-1))
32  /* FIXME */
33  
34  #define PAGE_NONE	__pgprot(0)
35  #define PAGE_SHARED	__pgprot(0)
36  #define PAGE_COPY	__pgprot(0)
37  #define PAGE_READONLY	__pgprot(0)
38  #define PAGE_KERNEL	__pgprot(0)
39  
40  #define swapper_pg_dir ((pgd_t *) 0)
41  
42  
43  typedef pte_t *pte_addr_t;
44  
45  /*
46   * Mark the prot value as uncacheable and unbufferable.
47   */
48  #define pgprot_noncached(prot)	(prot)
49  #define pgprot_writecombine(prot) (prot)
50  #define pgprot_device(prot)	(prot)
51  
52  
53  /*
54   * These would be in other places but having them here reduces the diffs.
55   */
56  extern unsigned int kobjsize(const void *objp);
57  
58  /*
59   * All 32bit addresses are effectively valid for vmalloc...
60   * Sort of meaningless for non-VM targets.
61   */
62  #define	VMALLOC_START	0UL
63  #define	VMALLOC_END	0xffffffffUL
64  
65  #define FIRST_USER_ADDRESS      0UL
66  
67  #else
68  
69  /*
70   * dummy tlb and user structures.
71   */
72  #define v3_tlb_fns	(0)
73  #define v4_tlb_fns	(0)
74  #define v4wb_tlb_fns	(0)
75  #define v4wbi_tlb_fns	(0)
76  #define v6wbi_tlb_fns	(0)
77  #define v7wbi_tlb_fns	(0)
78  
79  #define v3_user_fns	(0)
80  #define v4_user_fns	(0)
81  #define v4_mc_user_fns	(0)
82  #define v4wb_user_fns	(0)
83  #define v4wt_user_fns	(0)
84  #define v6_user_fns	(0)
85  #define xscale_mc_user_fns (0)
86  
87  #endif /*__ASSEMBLY__*/
88  
89  #endif /* _ASMARM_PGTABLE_H */
90