1
2
3
4
5
6
7
8
9
10
11
12
13
14#ifndef _ASM_FIXMAP_H
15#define _ASM_FIXMAP_H
16
17#ifndef __ASSEMBLY__
18#include <linux/kernel.h>
19#include <asm/page.h>
20#include <asm/pgtable.h>
21#ifdef CONFIG_HIGHMEM
22#include <linux/threads.h>
23#include <asm/kmap_types.h>
24#endif
25
26#define FIXADDR_TOP ((unsigned long)(-PAGE_SIZE))
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46enum fixed_addresses {
47 FIX_HOLE,
48
49 FIX_EARLY_DEBUG_TOP = FIX_HOLE,
50 FIX_EARLY_DEBUG_BASE = FIX_EARLY_DEBUG_TOP+((128*1024)/PAGE_SIZE)-1,
51#ifdef CONFIG_HIGHMEM
52 FIX_KMAP_BEGIN,
53 FIX_KMAP_END = FIX_KMAP_BEGIN+(KM_TYPE_NR*NR_CPUS)-1,
54#endif
55#ifdef CONFIG_PPC_8xx
56
57#define FIX_IMMR_SIZE (512 * 1024 / PAGE_SIZE)
58 FIX_IMMR_START,
59 FIX_IMMR_BASE = __ALIGN_MASK(FIX_IMMR_START, FIX_IMMR_SIZE - 1) - 1 +
60 FIX_IMMR_SIZE,
61#endif
62
63 __end_of_fixed_addresses
64};
65
66#define __FIXADDR_SIZE (__end_of_fixed_addresses << PAGE_SHIFT)
67#define FIXADDR_START (FIXADDR_TOP - __FIXADDR_SIZE)
68
69#define FIXMAP_PAGE_NOCACHE PAGE_KERNEL_NCG
70
71#include <asm-generic/fixmap.h>
72
73static inline void __set_fixmap(enum fixed_addresses idx,
74 phys_addr_t phys, pgprot_t flags)
75{
76 map_kernel_page(fix_to_virt(idx), phys, flags);
77}
78
79#endif
80#endif
81