1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef _ASM_FIXMAP_H 3#define _ASM_FIXMAP_H 4 5/* 6 * This file defines the locations of the fixed mappings on parisc. 7 * 8 * All of the values in this file are machine virtual addresses. 9 * 10 * All of the values in this file must be <4GB (because of assembly 11 * loading restrictions). If you place this region anywhere above 12 * __PAGE_OFFSET, you must adjust the memory map accordingly */ 13 14/* The alias region is used in kernel space to do copy/clear to or 15 * from areas congruently mapped with user space. It is 8MB large 16 * and must be 16MB aligned */ 17#define TMPALIAS_MAP_START ((__PAGE_OFFSET) - 16*1024*1024) 18 19#define FIXMAP_SIZE (FIX_BITMAP_COUNT << PAGE_SHIFT) 20#define FIXMAP_START (TMPALIAS_MAP_START - FIXMAP_SIZE) 21/* This is the kernel area for all maps (vmalloc, dma etc.) most 22 * usually, it extends up to TMPALIAS_MAP_START. Virtual addresses 23 * 0..GATEWAY_PAGE_SIZE are reserved for the gateway page */ 24#define KERNEL_MAP_START (GATEWAY_PAGE_SIZE) 25#define KERNEL_MAP_END (FIXMAP_START) 26 27#ifndef __ASSEMBLY__ 28 29 30enum fixed_addresses { 31 /* Support writing RO kernel text via kprobes, jump labels, etc. */ 32 FIX_TEXT_POKE0, 33 FIX_BITMAP_COUNT 34}; 35 36extern void *parisc_vmalloc_start; 37#define PCXL_DMA_MAP_SIZE (8*1024*1024) 38#define VMALLOC_START ((unsigned long)parisc_vmalloc_start) 39#define VMALLOC_END (KERNEL_MAP_END) 40 41#define __fix_to_virt(_x) (FIXMAP_START + ((_x) << PAGE_SHIFT)) 42 43void set_fixmap(enum fixed_addresses idx, phys_addr_t phys); 44void clear_fixmap(enum fixed_addresses idx); 45 46#endif /*__ASSEMBLY__*/ 47 48#endif /*_ASM_FIXMAP_H*/ 49