d901e084a47936caf610c50d54a9225c9ffa8157
[firefly-linux-kernel-4.4.55.git] / include / asm-mips / mach-generic / spaces.h
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 #ifdef CONFIG_32BIT
16
17 #define CAC_BASE                _AC(0x80000000, UL)
18 #define IO_BASE                 _AC(0xa0000000, UL)
19 #define UNCAC_BASE              _AC(0xa0000000, UL)
20
21 #ifndef MAP_BASE
22 #define MAP_BASE                _AC(0xc0000000, UL)
23 #endif
24
25 /*
26  * Memory above this physical address will be considered highmem.
27  */
28 #ifndef HIGHMEM_START
29 #define HIGHMEM_START           _AC(0x20000000, UL)
30 #endif
31
32 #endif /* CONFIG_32BIT */
33
34 #ifdef CONFIG_64BIT
35
36 #ifndef CAC_BASE
37 #ifdef CONFIG_DMA_NONCOHERENT
38 #define CAC_BASE                _AC(0x9800000000000000, UL)
39 #else
40 #define CAC_BASE                _AC(0xa800000000000000, UL)
41 #endif
42 #endif
43
44 #ifndef IO_BASE
45 #define IO_BASE                 _AC(0x9000000000000000, UL)
46 #endif
47
48 #ifndef UNCAC_BASE
49 #define UNCAC_BASE              _AC(0x9000000000000000, UL)
50 #endif
51
52 #ifndef MAP_BASE
53 #define MAP_BASE                _AC(0xc000000000000000, UL)
54 #endif
55
56 /*
57  * Memory above this physical address will be considered highmem.
58  * Fixme: 59 bits is a fictive number and makes assumptions about processors
59  * in the distant future.  Nobody will care for a few years :-)
60  */
61 #ifndef HIGHMEM_START
62 #define HIGHMEM_START           (_AC(1, UL) << _AC(59, UL))
63 #endif
64
65 #define TO_PHYS(x)              (             ((x) & TO_PHYS_MASK))
66 #define TO_CAC(x)               (CAC_BASE   | ((x) & TO_PHYS_MASK))
67 #define TO_UNCAC(x)             (UNCAC_BASE | ((x) & TO_PHYS_MASK))
68
69 #endif /* CONFIG_64BIT */
70
71 /*
72  * This handles the memory map.
73  */
74 #ifndef PAGE_OFFSET
75 #define PAGE_OFFSET             CAC_BASE
76 #endif
77
78 #endif /* __ASM_MACH_GENERIC_SPACES_H */