64 lines · 2.2 KB · C
RawDownload
/* SPDX-License-Identifier: GPL-2.0 */#ifndef _ASM_FIXMAP_H#define _ASM_FIXMAP_H /* * This file defines the locations of the fixed mappings on parisc. * * All of the values in this file are machine virtual addresses. * * All of the values in this file must be <4GB (because of assembly * loading restrictions).  If you place this region anywhere above * __PAGE_OFFSET, you must adjust the memory map accordingly */ /* * The tmpalias region is used in kernel space to copy/clear/flush data * from pages congruently mapped with user space. It is comprised of * a pair regions. The size of these regions is determined by the largest * cache aliasing boundary for machines that support equivalent aliasing. * * The c3750 with PA8700 processor returns an alias value of 11. This * indicates that it has an alias boundary of 4 MB. It also supports * non-equivalent aliasing without a performance penalty. * * Machines with PA8800/PA8900 processors return an alias value of 0. * This indicates the alias boundary is unknown and may be larger than * 16 MB. Non-equivalent aliasing is not supported. * * Here we assume the maximum alias boundary is 4 MB. */#define TMPALIAS_SIZE_BITS	22	/* 4 MB */#define TMPALIAS_MAP_START	((__PAGE_OFFSET) - (2 << TMPALIAS_SIZE_BITS)) #define FIXMAP_SIZE		(FIX_BITMAP_COUNT << PAGE_SHIFT)#define FIXMAP_START		(TMPALIAS_MAP_START - FIXMAP_SIZE)/* This is the kernel area for all maps (vmalloc, dma etc.)  most * usually, it extends up to TMPALIAS_MAP_START.  Virtual addresses * 0..GATEWAY_PAGE_SIZE are reserved for the gateway page */#define KERNEL_MAP_START	(GATEWAY_PAGE_SIZE)#define KERNEL_MAP_END		(FIXMAP_START) #ifndef __ASSEMBLER__  enum fixed_addresses {	/* Support writing RO kernel text via kprobes, jump labels, etc. */	FIX_TEXT_POKE0,	FIX_TEXT_KEXEC,	FIX_BITMAP_COUNT}; extern void *parisc_vmalloc_start;#define PCXL_DMA_MAP_SIZE	(8*1024*1024)#define VMALLOC_START		((unsigned long)parisc_vmalloc_start)#define VMALLOC_END		(KERNEL_MAP_END) #define __fix_to_virt(_x) (FIXMAP_START + ((_x) << PAGE_SHIFT)) void set_fixmap(enum fixed_addresses idx, phys_addr_t phys);void clear_fixmap(enum fixed_addresses idx); #endif /*__ASSEMBLER__*/ #endif /*_ASM_FIXMAP_H*/