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