xref: /openbmc/linux/arch/arm/include/asm/fixmap.h (revision b96fc2f3)
1 #ifndef _ASM_FIXMAP_H
2 #define _ASM_FIXMAP_H
3 
4 #define FIXADDR_START		0xffc00000UL
5 #define FIXADDR_END		0xfff00000UL
6 #define FIXADDR_TOP		(FIXADDR_END - PAGE_SIZE)
7 
8 #include <asm/kmap_types.h>
9 #include <asm/pgtable.h>
10 
11 enum fixed_addresses {
12 	FIX_EARLYCON_MEM_BASE,
13 	__end_of_permanent_fixed_addresses,
14 
15 	FIX_KMAP_BEGIN = __end_of_permanent_fixed_addresses,
16 	FIX_KMAP_END = FIX_KMAP_BEGIN + (KM_TYPE_NR * NR_CPUS) - 1,
17 
18 	/* Support writing RO kernel text via kprobes, jump labels, etc. */
19 	FIX_TEXT_POKE0,
20 	FIX_TEXT_POKE1,
21 
22 	__end_of_fixed_addresses
23 };
24 
25 #define FIXMAP_PAGE_COMMON	(L_PTE_YOUNG | L_PTE_PRESENT | L_PTE_XN | L_PTE_DIRTY)
26 
27 #define FIXMAP_PAGE_NORMAL	(FIXMAP_PAGE_COMMON | L_PTE_MT_WRITEBACK)
28 
29 /* Used by set_fixmap_(io|nocache), both meant for mapping a device */
30 #define FIXMAP_PAGE_IO		(FIXMAP_PAGE_COMMON | L_PTE_MT_DEV_SHARED | L_PTE_SHARED)
31 #define FIXMAP_PAGE_NOCACHE	FIXMAP_PAGE_IO
32 
33 void __set_fixmap(enum fixed_addresses idx, phys_addr_t phys, pgprot_t prot);
34 void __init early_fixmap_init(void);
35 
36 #include <asm-generic/fixmap.h>
37 
38 #endif
39