xref: /linux/arch/arm64/include/asm/sparsemem.h (revision 06d07429858317ded2db7986113a9e0129cd599b)
1caab277bSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */
24f04d8f0SCatalin Marinas /*
34f04d8f0SCatalin Marinas  * Copyright (C) 2012 ARM Ltd.
44f04d8f0SCatalin Marinas  */
54f04d8f0SCatalin Marinas #ifndef __ASM_SPARSEMEM_H
64f04d8f0SCatalin Marinas #define __ASM_SPARSEMEM_H
74f04d8f0SCatalin Marinas 
8982aa7c5SKristina Martsenko #define MAX_PHYSMEM_BITS	CONFIG_ARM64_PA_BITS
9f0b13ee2SSudarshan Rajagopalan 
10f0b13ee2SSudarshan Rajagopalan /*
11f0b13ee2SSudarshan Rajagopalan  * Section size must be at least 512MB for 64K base
12f0b13ee2SSudarshan Rajagopalan  * page size config. Otherwise it will be less than
13*5e0a760bSKirill A. Shutemov  * MAX_PAGE_ORDER and the build process will fail.
14f0b13ee2SSudarshan Rajagopalan  */
15f0b13ee2SSudarshan Rajagopalan #ifdef CONFIG_ARM64_64K_PAGES
16f0b13ee2SSudarshan Rajagopalan #define SECTION_SIZE_BITS 29
17f0b13ee2SSudarshan Rajagopalan 
18f0b13ee2SSudarshan Rajagopalan #else
19f0b13ee2SSudarshan Rajagopalan 
20f0b13ee2SSudarshan Rajagopalan /*
21f0b13ee2SSudarshan Rajagopalan  * Section size must be at least 128MB for 4K base
22f0b13ee2SSudarshan Rajagopalan  * page size config. Otherwise PMD based huge page
23f0b13ee2SSudarshan Rajagopalan  * entries could not be created for vmemmap mappings.
24f0b13ee2SSudarshan Rajagopalan  * 16K follows 4K for simplicity.
25f0b13ee2SSudarshan Rajagopalan  */
26f0b13ee2SSudarshan Rajagopalan #define SECTION_SIZE_BITS 27
27f0b13ee2SSudarshan Rajagopalan #endif /* CONFIG_ARM64_64K_PAGES */
28f0b13ee2SSudarshan Rajagopalan 
294f04d8f0SCatalin Marinas #endif
30