Sam Ravnborg | a439fe5 | 2008-07-27 23:00:59 +0200 | [diff] [blame] | 1 | #ifndef _SPARC_VADDRS_H |
| 2 | #define _SPARC_VADDRS_H |
| 3 | |
| 4 | #include <asm/head.h> |
| 5 | |
| 6 | /* |
| 7 | * asm/vaddrs.h: Here we define the virtual addresses at |
| 8 | * which important things will be mapped. |
| 9 | * |
| 10 | * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) |
| 11 | * Copyright (C) 2000 Anton Blanchard (anton@samba.org) |
| 12 | */ |
| 13 | |
| 14 | #define SRMMU_MAXMEM 0x0c000000 |
| 15 | |
| 16 | #define SRMMU_NOCACHE_VADDR (KERNBASE + SRMMU_MAXMEM) |
| 17 | /* = 0x0fc000000 */ |
| 18 | /* XXX Empiricals - this needs to go away - KMW */ |
| 19 | #define SRMMU_MIN_NOCACHE_PAGES (550) |
| 20 | #define SRMMU_MAX_NOCACHE_PAGES (1280) |
| 21 | |
| 22 | /* The following constant is used in mm/srmmu.c::srmmu_nocache_calcsize() |
| 23 | * to determine the amount of memory that will be reserved as nocache: |
| 24 | * |
| 25 | * 256 pages will be taken as nocache per each |
| 26 | * SRMMU_NOCACHE_ALCRATIO MB of system memory. |
| 27 | * |
| 28 | * limits enforced: nocache minimum = 256 pages |
| 29 | * nocache maximum = 1280 pages |
| 30 | */ |
| 31 | #define SRMMU_NOCACHE_ALCRATIO 64 /* 256 pages per 64MB of system RAM */ |
| 32 | |
| 33 | #define SUN4M_IOBASE_VADDR 0xfd000000 /* Base for mapping pages */ |
| 34 | #define IOBASE_VADDR 0xfe000000 |
| 35 | #define IOBASE_END 0xfe600000 |
| 36 | |
| 37 | /* |
| 38 | * On the sun4/4c we need a place |
| 39 | * to reliably map locked down kernel data. This includes the |
| 40 | * task_struct and kernel stack pages of each process plus the |
| 41 | * scsi buffers during dvma IO transfers, also the floppy buffers |
| 42 | * during pseudo dma which runs with traps off (no faults allowed). |
| 43 | * Some quick calculations yield: |
| 44 | * NR_TASKS <512> * (3 * PAGE_SIZE) == 0x600000 |
| 45 | * Subtract this from 0xc00000 and you get 0x927C0 of vm left |
| 46 | * over to map SCSI dvma + floppy pseudo-dma buffers. So be |
| 47 | * careful if you change NR_TASKS or else there won't be enough |
| 48 | * room for it all. |
| 49 | */ |
| 50 | #define SUN4C_LOCK_VADDR 0xff000000 |
| 51 | #define SUN4C_LOCK_END 0xffc00000 |
| 52 | |
| 53 | #define KADB_DEBUGGER_BEGVM 0xffc00000 /* Where kern debugger is in virt-mem */ |
| 54 | #define KADB_DEBUGGER_ENDVM 0xffd00000 |
| 55 | #define DEBUG_FIRSTVADDR KADB_DEBUGGER_BEGVM |
| 56 | #define DEBUG_LASTVADDR KADB_DEBUGGER_ENDVM |
| 57 | |
| 58 | #define LINUX_OPPROM_BEGVM 0xffd00000 |
| 59 | #define LINUX_OPPROM_ENDVM 0xfff00000 |
| 60 | |
| 61 | #define DVMA_VADDR 0xfff00000 /* Base area of the DVMA on suns */ |
| 62 | #define DVMA_END 0xfffc0000 |
| 63 | |
| 64 | #endif /* !(_SPARC_VADDRS_H) */ |