xref: /linux/arch/arm64/include/asm/sparsemem.h (revision eed4edda910fe34dfae8c6bfbcf57f4593a54295)
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 #define MAX_PHYSMEM_BITS	CONFIG_ARM64_PA_BITS
9 
10 /*
11  * Section size must be at least 512MB for 64K base
12  * page size config. Otherwise it will be less than
13  * MAX_PAGE_ORDER and the build process will fail.
14  */
15 #ifdef CONFIG_ARM64_64K_PAGES
16 #define SECTION_SIZE_BITS 29
17 
18 #else
19 
20 /*
21  * Section size must be at least 128MB for 4K base
22  * page size config. Otherwise PMD based huge page
23  * entries could not be created for vmemmap mappings.
24  * 16K follows 4K for simplicity.
25  */
26 #define SECTION_SIZE_BITS 27
27 #endif /* CONFIG_ARM64_64K_PAGES */
28 
29 #endif
30