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 #define MT_UNCACHED 4 26 #define MT_CACHECLEAN 5 27 #define MT_MINICLEAN 6 28 #define MT_LOW_VECTORS 7 29 #define MT_HIGH_VECTORS 8 30 #define MT_MEMORY 9 31 #define MT_ROM 10 32 #define MT_MEMORY_NONCACHED 11 33 #define MT_MEMORY_DTCM 12 34 #define MT_MEMORY_ITCM 13 35 #define MT_MEMORY_SO 14 36 #define MT_MEMORY_DMA_READY 15 37 38 #ifdef CONFIG_MMU 39 extern void iotable_init(struct map_desc *, int); 40 extern void vm_reserve_area_early(unsigned long addr, unsigned long size, 41 void *caller); 42 43 #ifdef CONFIG_DEBUG_LL 44 extern void debug_ll_addr(unsigned long *paddr, unsigned long *vaddr); 45 extern void debug_ll_io_init(void); 46 #else 47 static inline void debug_ll_io_init(void) {} 48 #endif 49 50 struct mem_type; 51 extern const struct mem_type *get_mem_type(unsigned int type); 52 /* 53 * external interface to remap single page with appropriate type 54 */ 55 extern int ioremap_page(unsigned long virt, unsigned long phys, 56 const struct mem_type *mtype); 57 #else 58 #define iotable_init(map,num) do { } while (0) 59 #define vm_reserve_area_early(a,s,c) do { } while (0) 60 #endif 61 62 #endif 63