xref: /linux/arch/arm64/include/asm/sparsemem.h (revision 8838a1a2d219a86ab05e679c73f68dd75a25aca5)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * Copyright (C) 2012 ARM Ltd.
4  */
5 #ifndef __ASM_SPARSEMEM_H
6 #define __ASM_SPARSEMEM_H
7 
8 #include <asm/pgtable-prot.h>
9 
10 #define MAX_PHYSMEM_BITS		PHYS_MASK_SHIFT
11 #define MAX_POSSIBLE_PHYSMEM_BITS	(52)
12 
13 /*
14  * Section size must be at least 512MB for 64K base
15  * page size config. Otherwise it will be less than
16  * MAX_PAGE_ORDER and the build process will fail.
17  */
18 #ifdef CONFIG_ARM64_64K_PAGES
19 #define SECTION_SIZE_BITS 29
20 
21 #else
22 
23 /*
24  * Section size must be at least 128MB for 4K base
25  * page size config. Otherwise PMD based huge page
26  * entries could not be created for vmemmap mappings.
27  * 16K follows 4K for simplicity.
28  */
29 #define SECTION_SIZE_BITS 27
30 #endif /* CONFIG_ARM64_64K_PAGES */
31 
32 #endif
33