root/arch/mips/include/asm/mach-generic/spaces.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /*
   2  * This file is subject to the terms and conditions of the GNU General Public
   3  * License.  See the file "COPYING" in the main directory of this archive
   4  * for more details.
   5  *
   6  * Copyright (C) 1994 - 1999, 2000, 03, 04 Ralf Baechle
   7  * Copyright (C) 2000, 2002  Maciej W. Rozycki
   8  * Copyright (C) 1990, 1999, 2000 Silicon Graphics, Inc.
   9  */
  10 #ifndef _ASM_MACH_GENERIC_SPACES_H
  11 #define _ASM_MACH_GENERIC_SPACES_H
  12 
  13 #include <linux/const.h>
  14 
  15 #include <asm/mipsregs.h>
  16 
  17 /*
  18  * This gives the physical RAM offset.
  19  */
  20 #ifndef __ASSEMBLY__
  21 # if defined(CONFIG_MIPS_AUTO_PFN_OFFSET)
  22 #  define PHYS_OFFSET           ((unsigned long)PFN_PHYS(ARCH_PFN_OFFSET))
  23 # elif !defined(PHYS_OFFSET)
  24 #  define PHYS_OFFSET           _AC(0, UL)
  25 # endif
  26 #endif /* __ASSEMBLY__ */
  27 
  28 #ifdef CONFIG_32BIT
  29 #ifdef CONFIG_KVM_GUEST
  30 #define CAC_BASE                _AC(0x40000000, UL)
  31 #else
  32 #define CAC_BASE                _AC(0x80000000, UL)
  33 #endif
  34 #ifndef IO_BASE
  35 #define IO_BASE                 _AC(0xa0000000, UL)
  36 #endif
  37 #ifndef UNCAC_BASE
  38 #define UNCAC_BASE              _AC(0xa0000000, UL)
  39 #endif
  40 
  41 #ifndef MAP_BASE
  42 #ifdef CONFIG_KVM_GUEST
  43 #define MAP_BASE                _AC(0x60000000, UL)
  44 #else
  45 #define MAP_BASE                _AC(0xc0000000, UL)
  46 #endif
  47 #endif
  48 
  49 /*
  50  * Memory above this physical address will be considered highmem.
  51  */
  52 #ifndef HIGHMEM_START
  53 #define HIGHMEM_START           _AC(0x20000000, UL)
  54 #endif
  55 
  56 #endif /* CONFIG_32BIT */
  57 
  58 #ifdef CONFIG_64BIT
  59 
  60 #ifndef CAC_BASE
  61 #define CAC_BASE        PHYS_TO_XKPHYS(read_c0_config() & CONF_CM_CMASK, 0)
  62 #endif
  63 
  64 #ifndef IO_BASE
  65 #define IO_BASE                 _AC(0x9000000000000000, UL)
  66 #endif
  67 
  68 #ifndef UNCAC_BASE
  69 #define UNCAC_BASE              _AC(0x9000000000000000, UL)
  70 #endif
  71 
  72 #ifndef MAP_BASE
  73 #define MAP_BASE                _AC(0xc000000000000000, UL)
  74 #endif
  75 
  76 /*
  77  * Memory above this physical address will be considered highmem.
  78  * Fixme: 59 bits is a fictive number and makes assumptions about processors
  79  * in the distant future.  Nobody will care for a few years :-)
  80  */
  81 #ifndef HIGHMEM_START
  82 #define HIGHMEM_START           (_AC(1, UL) << _AC(59, UL))
  83 #endif
  84 
  85 #define TO_PHYS(x)              (             ((x) & TO_PHYS_MASK))
  86 #define TO_CAC(x)               (CAC_BASE   | ((x) & TO_PHYS_MASK))
  87 #define TO_UNCAC(x)             (UNCAC_BASE | ((x) & TO_PHYS_MASK))
  88 
  89 #endif /* CONFIG_64BIT */
  90 
  91 /*
  92  * This handles the memory map.
  93  */
  94 #ifndef PAGE_OFFSET
  95 #define PAGE_OFFSET             (CAC_BASE + PHYS_OFFSET)
  96 #endif
  97 
  98 #ifndef FIXADDR_TOP
  99 #ifdef CONFIG_KVM_GUEST
 100 #define FIXADDR_TOP             ((unsigned long)(long)(int)0x7ffe0000)
 101 #else
 102 #define FIXADDR_TOP             ((unsigned long)(long)(int)0xfffe0000)
 103 #endif
 104 #endif
 105 
 106 #endif /* __ASM_MACH_GENERIC_SPACES_H */

/* [<][>][^][v][top][bottom][index][help] */