1 #ifndef _SPARC_VADDRS_H 2 #define _SPARC_VADDRS_H 3 4 #include <asm/head.h> 5 6 /* asm-sparc/vaddrs.h: Here will be define the virtual addresses at 7 * which important I/O addresses will be mapped. 8 * For instance the timer register virtual address 9 * is defined here. 10 * 11 * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) 12 */ 13 14 /* I can see only one reason why we should have statically defined 15 * mappings for devices and is the speedup improvements of not loading 16 * a pointer and then the value in the assembly code 17 */ 18 19 #define AUXIO_VADDR (KERNBASE+0x6000) /* Auxiliary IO register */ 20 #define TIMER_VADDR (AUXIO_VADDR+0x1000) /* One page after AUXIO, length is 21 * 5 pages which is needed on sun4m. 22 */ 23 #define INTREG_VADDR (TIMER_VADDR+0x5000) 24 25 #define IOBASE_VADDR 0xfe000000 /* Base for mapping pages */ 26 #define IOBASE_LEN 0x00400000 /* Length of the IO area */ 27 #define IOBASE_SUN4C_SEGMAP 100 28 #define DVMA_VADDR 0xfff00000 /* Base area of the DVMA on the 4c */ 29 #define DVMA_LEN 0x000c0000 /* Size of the DVMA address space */ 30 31 /* On sun4m machines we need per-cpu virtual areas */ 32 #define PERCPU_VADDR 0xff000000 /* Base for per-cpu virtual mappings */ 33 #define PERCPU_ENTSIZE 0x00100000 34 #define PERCPU_LEN ((PERCPU_ENTSIZE*NCPUS)) 35 36 /* per-cpu offsets */ 37 #define PERCPU_TBR_OFFSET 0x00000 /* %tbr, mainly used for identification. */ 38 #define PERCPU_KSTACK_OFFSET 0x01000 /* Beginning of kernel stack for this cpu */ 39 #define PERCPU_MBOX_OFFSET 0x02000 /* Prom SMP Mailbox */ 40 #define PERCPU_CPUID_OFFSET 0x03000 /* Per-cpu ID number. */ 41 #define PERCPU_ISALIVE_OFFSET 0x03004 /* Has CPU been initted yet? */ 42 #define PERCPU_ISIDLING_OFFSET 0x03008 /* Is CPU in idle loop spinning? */ 43 44 #endif /* !(_SPARC_VADDRS_H) */