]> git.proxmox.com Git - mirror_ubuntu-kernels.git/blame - arch/x86/include/asm/sparsemem.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
[mirror_ubuntu-kernels.git] / arch / x86 / include / asm / sparsemem.h
CommitLineData
b2441318 1/* SPDX-License-Identifier: GPL-2.0 */
1965aae3
PA
2#ifndef _ASM_X86_SPARSEMEM_H
3#define _ASM_X86_SPARSEMEM_H
8a423ff0
TG
4
5#ifdef CONFIG_SPARSEMEM
6/*
7 * generic non-linear memory support:
8 *
9 * 1) we will not split memory into more chunks than will fit into the flags
10 * field of the struct page
11 *
12 * SECTION_SIZE_BITS 2^n: size of each section
13 * MAX_PHYSADDR_BITS 2^n: max size of physical address space
14 * MAX_PHYSMEM_BITS 2^n: how much memory we can have in that space
15 *
16 */
17
96a388de 18#ifdef CONFIG_X86_32
8a423ff0 19# ifdef CONFIG_X86_PAE
fb8e8375 20# define SECTION_SIZE_BITS 29
8a423ff0
TG
21# define MAX_PHYSADDR_BITS 36
22# define MAX_PHYSMEM_BITS 36
23# else
24# define SECTION_SIZE_BITS 26
25# define MAX_PHYSADDR_BITS 32
26# define MAX_PHYSMEM_BITS 32
27# endif
28#else /* CONFIG_X86_32 */
29# define SECTION_SIZE_BITS 27 /* matt - 128 is convenient right now */
4c7c4483
KS
30# ifdef CONFIG_X86_5LEVEL
31# define MAX_PHYSADDR_BITS 52
32# define MAX_PHYSMEM_BITS 52
33# else
34# define MAX_PHYSADDR_BITS 44
35# define MAX_PHYSMEM_BITS 46
36# endif
8a423ff0
TG
37#endif
38
39#endif /* CONFIG_SPARSEMEM */
1965aae3 40#endif /* _ASM_X86_SPARSEMEM_H */