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