xref: /openbmc/linux/arch/arm/include/asm/mach/map.h (revision e58e871b)
1 /*
2  *  arch/arm/include/asm/map.h
3  *
4  *  Copyright (C) 1999-2000 Russell King
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9  *
10  *  Page table mapping constructs and function prototypes
11  */
12 #ifndef __ASM_MACH_MAP_H
13 #define __ASM_MACH_MAP_H
14 
15 #include <asm/io.h>
16 
17 struct map_desc {
18 	unsigned long virtual;
19 	unsigned long pfn;
20 	unsigned long length;
21 	unsigned int type;
22 };
23 
24 /* types 0-3 are defined in asm/io.h */
25 enum {
26 	MT_UNCACHED = 4,
27 	MT_CACHECLEAN,
28 	MT_MINICLEAN,
29 	MT_LOW_VECTORS,
30 	MT_HIGH_VECTORS,
31 	MT_MEMORY_RWX,
32 	MT_MEMORY_RW,
33 	MT_ROM,
34 	MT_MEMORY_RWX_NONCACHED,
35 	MT_MEMORY_RW_DTCM,
36 	MT_MEMORY_RWX_ITCM,
37 	MT_MEMORY_RW_SO,
38 	MT_MEMORY_DMA_READY,
39 };
40 
41 #ifdef CONFIG_MMU
42 extern void iotable_init(struct map_desc *, int);
43 extern void vm_reserve_area_early(unsigned long addr, unsigned long size,
44 				  void *caller);
45 extern void create_mapping_late(struct mm_struct *mm, struct map_desc *md,
46 				bool ng);
47 
48 #ifdef CONFIG_DEBUG_LL
49 extern void debug_ll_addr(unsigned long *paddr, unsigned long *vaddr);
50 extern void debug_ll_io_init(void);
51 #else
52 static inline void debug_ll_io_init(void) {}
53 #endif
54 
55 struct mem_type;
56 extern const struct mem_type *get_mem_type(unsigned int type);
57 /*
58  * external interface to remap single page with appropriate type
59  */
60 extern int ioremap_page(unsigned long virt, unsigned long phys,
61 			const struct mem_type *mtype);
62 #else
63 #define iotable_init(map,num)	do { } while (0)
64 #define vm_reserve_area_early(a,s,c)	do { } while (0)
65 #endif
66 
67 #endif
68