1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef _ASM_POWERPC_TASK_SIZE_64_H 3#define _ASM_POWERPC_TASK_SIZE_64_H 4 5/* 6 * 64-bit user address space can have multiple limits 7 * For now supported values are: 8 */ 9#define TASK_SIZE_64TB (0x0000400000000000UL) 10#define TASK_SIZE_128TB (0x0000800000000000UL) 11#define TASK_SIZE_512TB (0x0002000000000000UL) 12#define TASK_SIZE_1PB (0x0004000000000000UL) 13#define TASK_SIZE_2PB (0x0008000000000000UL) 14 15/* 16 * With 52 bits in the address we can support up to 4PB of range. 17 */ 18#define TASK_SIZE_4PB (0x0010000000000000UL) 19 20/* 21 * For now 512TB is only supported with book3s and 64K linux page size. 22 */ 23#ifdef CONFIG_PPC_64K_PAGES 24/* 25 * Max value currently used: 26 */ 27#define TASK_SIZE_USER64 TASK_SIZE_4PB 28#define DEFAULT_MAP_WINDOW_USER64 TASK_SIZE_128TB 29#define TASK_CONTEXT_SIZE TASK_SIZE_512TB 30#else 31#define TASK_SIZE_USER64 TASK_SIZE_64TB 32#define DEFAULT_MAP_WINDOW_USER64 TASK_SIZE_64TB 33 34/* 35 * We don't need to allocate extended context ids for 4K page size, because we 36 * limit the max effective address on this config to 64TB. 37 */ 38#define TASK_CONTEXT_SIZE TASK_SIZE_64TB 39#endif 40 41/* 42 * 32-bit user address space is 4GB - 1 page 43 * (this 1 page is needed so referencing of 0xFFFFFFFF generates EFAULT 44 */ 45#define TASK_SIZE_USER32 (0x0000000100000000UL - (1 * PAGE_SIZE)) 46 47#define TASK_SIZE_OF(tsk) \ 48 (test_tsk_thread_flag(tsk, TIF_32BIT) ? TASK_SIZE_USER32 : \ 49 TASK_SIZE_USER64) 50 51#define TASK_SIZE TASK_SIZE_OF(current) 52 53#define TASK_UNMAPPED_BASE_USER32 (PAGE_ALIGN(TASK_SIZE_USER32 / 4)) 54#define TASK_UNMAPPED_BASE_USER64 (PAGE_ALIGN(DEFAULT_MAP_WINDOW_USER64 / 4)) 55 56/* 57 * This decides where the kernel will search for a free chunk of vm space during 58 * mmap's. 59 */ 60#define TASK_UNMAPPED_BASE \ 61 ((is_32bit_task()) ? TASK_UNMAPPED_BASE_USER32 : TASK_UNMAPPED_BASE_USER64) 62 63/* 64 * Initial task size value for user applications. For book3s 64 we start 65 * with 128TB and conditionally enable upto 512TB 66 */ 67#ifdef CONFIG_PPC_BOOK3S_64 68#define DEFAULT_MAP_WINDOW \ 69 ((is_32bit_task()) ? TASK_SIZE_USER32 : DEFAULT_MAP_WINDOW_USER64) 70#else 71#define DEFAULT_MAP_WINDOW TASK_SIZE 72#endif 73 74#define STACK_TOP_USER64 DEFAULT_MAP_WINDOW_USER64 75#define STACK_TOP_USER32 TASK_SIZE_USER32 76#define STACK_TOP_MAX TASK_SIZE_USER64 77#define STACK_TOP (is_32bit_task() ? STACK_TOP_USER32 : STACK_TOP_USER64) 78 79#endif /* _ASM_POWERPC_TASK_SIZE_64_H */ 80