blob: a7916ee6dfb6945a6aba6d85077362161e78fcbc [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001/* SPDX-License-Identifier: GPL-2.0 */
David Gibson1fc8b4e2005-11-02 14:48:36 +11002#ifndef _ASM_POWERPC_SPARSEMEM_H
3#define _ASM_POWERPC_SPARSEMEM_H 1
Arnd Bergmann88ced032005-12-16 22:43:46 +01004#ifdef __KERNEL__
Andy Whitcroft145e6642005-06-23 00:08:03 -07005
6#ifdef CONFIG_SPARSEMEM
7/*
8 * SECTION_SIZE_BITS 2^N: how big each section will be
9 * MAX_PHYSADDR_BITS 2^N: how much physical address space we have
10 * MAX_PHYSMEM_BITS 2^N: how much memory we can have in that space
11 */
12#define SECTION_SIZE_BITS 24
Geoff Levand261efc32006-11-23 00:46:57 +010013
Aneesh Kumar K.V048ee092012-09-10 02:52:55 +000014#define MAX_PHYSADDR_BITS 46
15#define MAX_PHYSMEM_BITS 46
Andy Whitcroft145e6642005-06-23 00:08:03 -070016
Tony Breedsdb7f37d2008-07-01 11:30:06 +100017#endif /* CONFIG_SPARSEMEM */
18
Mike Kravetz54b79242005-11-07 16:25:48 -080019#ifdef CONFIG_MEMORY_HOTPLUG
Anton Blancharda1194092011-08-10 20:44:24 +000020extern int create_section_mapping(unsigned long start, unsigned long end);
Badari Pulavarty52db9b42008-03-28 11:37:21 +110021extern int remove_section_mapping(unsigned long start, unsigned long end);
Michael Ellerman36b390f2017-02-15 19:54:55 +110022
23#ifdef CONFIG_PPC_BOOK3S_64
24extern void resize_hpt_for_hotplug(unsigned long new_mem_size);
25#else
26static inline void resize_hpt_for_hotplug(unsigned long new_mem_size) { }
27#endif
28
Mike Kravetz237a0982005-12-05 12:06:42 -080029#ifdef CONFIG_NUMA
30extern int hot_add_scn_to_nid(unsigned long scn_addr);
31#else
32static inline int hot_add_scn_to_nid(unsigned long scn_addr)
33{
34 return 0;
35}
36#endif /* CONFIG_NUMA */
Mike Kravetz54b79242005-11-07 16:25:48 -080037#endif /* CONFIG_MEMORY_HOTPLUG */
38
Arnd Bergmann88ced032005-12-16 22:43:46 +010039#endif /* __KERNEL__ */
David Gibson1fc8b4e2005-11-02 14:48:36 +110040#endif /* _ASM_POWERPC_SPARSEMEM_H */