OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [rc203soc/] [sw/] [uClinux/] [include/] [asm-sparc/] [vaddrs.h] - Blame information for rev 1633

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1633 jcastillo
/* $Id: vaddrs.h,v 1.1 2005-12-20 11:32:12 jcastillo Exp $ */
2
#ifndef _SPARC_VADDRS_H
3
#define _SPARC_VADDRS_H
4
 
5
#include <asm/head.h>
6
 
7
/* asm-sparc/vaddrs.h:  Here will be define the virtual addresses at
8
 *                      which important I/O addresses will be mapped.
9
 *                      For instance the timer register virtual address
10
 *                      is defined here.
11
 *
12
 * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
13
 */
14
 
15
/* I can see only one reason why we should have statically defined
16
 * mappings for devices and is the speedup improvements of not loading
17
 * a pointer and then the value in the assembly code
18
 */
19
#define  IOBASE_VADDR   0xfe000000  /* Base for mapping pages */
20
#define  IOBASE_LEN     0x00200000  /* Length of the IO area */
21
#define  IOBASE_END     0xfe200000
22
#define  DVMA_VADDR     0xfff00000  /* Base area of the DVMA on suns */
23
#define  DVMA_LEN       0x00040000  /* Size of the DVMA address space */
24
#define  DVMA_END       0xfff40000
25
 
26
/* IOMMU Mapping area, must be on a 16MB boundary!  Note this
27
 * doesn't count the DVMA areas, the prom lives between the
28
 * iommu mapping area (for scsi transfer buffers) and the
29
 * dvma upper range (for lance packet ring buffers).
30
 */
31
#define  IOMMU_VADDR    0xff000000
32
#define  IOMMU_LEN      0x00c00000
33
#define  IOMMU_END      0xffc00000 /* KADB debugger vm starts here */
34
 
35
/* On the sun4/4c we don't need an IOMMU area, but we need a place
36
 * to reliably map locked down kernel data.  This includes the
37
 * task_struct and kernel stack pages of each process plus the
38
 * scsi buffers during dvma IO transfers, also the floppy buffers
39
 * during pseudo dma which runs with traps off (no faults allowed).
40
 * Some quick calculations yield:
41
 *       NR_TASKS <512> * (3 * PAGE_SIZE) == 0x600000
42
 * Subtract this from 0xc00000 and you get 0x927C0 of vm left
43
 * over to map SCSI dvma + floppy pseudo-dma buffers.  So be
44
 * careful if you change NR_TASKS or else there won't be enough
45
 * room for it all.
46
 */
47
#define  SUN4C_LOCK_VADDR  0xff000000
48
#define  SUN4C_LOCK_LEN    0x00c00000
49
#define  SUN4C_LOCK_END    0xffc00000
50
 
51
/* On sun4m machines we need per-cpu virtual areas */
52
#define  PERCPU_VADDR   0xffc00000  /* Base for per-cpu virtual mappings */
53
#define  PERCPU_ENTSIZE 0x00100000
54
#define  PERCPU_LEN     ((PERCPU_ENTSIZE*NCPUS))
55
 
56
/* per-cpu offsets */
57
#define  PERCPU_TBR_OFFSET      0x00000      /* %tbr, mainly used for identification. */
58
#define  PERCPU_KSTACK_OFFSET   0x01000      /* Beginning of kernel stack for this cpu */
59
#define  PERCPU_MBOX_OFFSET     0x03000      /* Prom SMP Mailbox */
60
#define  PERCPU_CPUID_OFFSET    0x04000      /* Per-cpu ID number. */
61
#define  PERCPU_ISALIVE_OFFSET  0x04004      /* Has CPU been initted yet? */
62
#define  PERCPU_ISIDLING_OFFSET 0x04008      /* Is CPU in idle loop spinning? */
63
 
64
#endif /* !(_SPARC_VADDRS_H) */
65
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.