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