b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame^] | 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 | |
| 30 | enum fixed_addresses { |
| 31 | /* Support writing RO kernel text via kprobes, jump labels, etc. */ |
| 32 | FIX_TEXT_POKE0, |
| 33 | FIX_TEXT_KEXEC, |
| 34 | FIX_BITMAP_COUNT |
| 35 | }; |
| 36 | |
| 37 | extern void *parisc_vmalloc_start; |
| 38 | #define PCXL_DMA_MAP_SIZE (8*1024*1024) |
| 39 | #define VMALLOC_START ((unsigned long)parisc_vmalloc_start) |
| 40 | #define VMALLOC_END (KERNEL_MAP_END) |
| 41 | |
| 42 | #define __fix_to_virt(_x) (FIXMAP_START + ((_x) << PAGE_SHIFT)) |
| 43 | |
| 44 | void set_fixmap(enum fixed_addresses idx, phys_addr_t phys); |
| 45 | void clear_fixmap(enum fixed_addresses idx); |
| 46 | |
| 47 | #endif /*__ASSEMBLY__*/ |
| 48 | |
| 49 | #endif /*_ASM_FIXMAP_H*/ |