1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef _SPARC_VADDRS_H 3*4882a593Smuzhiyun #define _SPARC_VADDRS_H 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #include <asm/head.h> 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun /* 8*4882a593Smuzhiyun * asm/vaddrs.h: Here we define the virtual addresses at 9*4882a593Smuzhiyun * which important things will be mapped. 10*4882a593Smuzhiyun * 11*4882a593Smuzhiyun * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) 12*4882a593Smuzhiyun * Copyright (C) 2000 Anton Blanchard (anton@samba.org) 13*4882a593Smuzhiyun */ 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun #define SRMMU_MAXMEM 0x0c000000 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun #define SRMMU_NOCACHE_VADDR (KERNBASE + SRMMU_MAXMEM) 18*4882a593Smuzhiyun /* = 0x0fc000000 */ 19*4882a593Smuzhiyun /* XXX Empiricals - this needs to go away - KMW */ 20*4882a593Smuzhiyun #define SRMMU_MIN_NOCACHE_PAGES (550) 21*4882a593Smuzhiyun #define SRMMU_MAX_NOCACHE_PAGES (1280) 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun /* The following constant is used in mm/srmmu.c::srmmu_nocache_calcsize() 24*4882a593Smuzhiyun * to determine the amount of memory that will be reserved as nocache: 25*4882a593Smuzhiyun * 26*4882a593Smuzhiyun * 256 pages will be taken as nocache per each 27*4882a593Smuzhiyun * SRMMU_NOCACHE_ALCRATIO MB of system memory. 28*4882a593Smuzhiyun * 29*4882a593Smuzhiyun * limits enforced: nocache minimum = 256 pages 30*4882a593Smuzhiyun * nocache maximum = 1280 pages 31*4882a593Smuzhiyun */ 32*4882a593Smuzhiyun #define SRMMU_NOCACHE_ALCRATIO 64 /* 256 pages per 64MB of system RAM */ 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun #ifndef __ASSEMBLY__ 35*4882a593Smuzhiyun #include <asm/kmap_types.h> 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun enum fixed_addresses { 38*4882a593Smuzhiyun FIX_HOLE, 39*4882a593Smuzhiyun #ifdef CONFIG_HIGHMEM 40*4882a593Smuzhiyun FIX_KMAP_BEGIN, 41*4882a593Smuzhiyun FIX_KMAP_END = (KM_TYPE_NR * NR_CPUS), 42*4882a593Smuzhiyun #endif 43*4882a593Smuzhiyun __end_of_fixed_addresses 44*4882a593Smuzhiyun }; 45*4882a593Smuzhiyun #endif 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun /* Leave one empty page between IO pages at 0xfd000000 and 48*4882a593Smuzhiyun * the top of the fixmap. 49*4882a593Smuzhiyun */ 50*4882a593Smuzhiyun #define FIXADDR_TOP (0xfcfff000UL) 51*4882a593Smuzhiyun #define FIXADDR_SIZE ((FIX_KMAP_END + 1) << PAGE_SHIFT) 52*4882a593Smuzhiyun #define FIXADDR_START (FIXADDR_TOP - FIXADDR_SIZE) 53*4882a593Smuzhiyun 54*4882a593Smuzhiyun #define __fix_to_virt(x) (FIXADDR_TOP - ((x) << PAGE_SHIFT)) 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun #define SUN4M_IOBASE_VADDR 0xfd000000 /* Base for mapping pages */ 57*4882a593Smuzhiyun #define IOBASE_VADDR 0xfe000000 58*4882a593Smuzhiyun #define IOBASE_END 0xfe600000 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun #define KADB_DEBUGGER_BEGVM 0xffc00000 /* Where kern debugger is in virt-mem */ 61*4882a593Smuzhiyun #define KADB_DEBUGGER_ENDVM 0xffd00000 62*4882a593Smuzhiyun #define DEBUG_FIRSTVADDR KADB_DEBUGGER_BEGVM 63*4882a593Smuzhiyun #define DEBUG_LASTVADDR KADB_DEBUGGER_ENDVM 64*4882a593Smuzhiyun 65*4882a593Smuzhiyun #define LINUX_OPPROM_BEGVM 0xffd00000 66*4882a593Smuzhiyun #define LINUX_OPPROM_ENDVM 0xfff00000 67*4882a593Smuzhiyun 68*4882a593Smuzhiyun #define DVMA_VADDR 0xfff00000 /* Base area of the DVMA on suns */ 69*4882a593Smuzhiyun #define DVMA_END 0xfffc0000 70*4882a593Smuzhiyun 71*4882a593Smuzhiyun #endif /* !(_SPARC_VADDRS_H) */ 72