at v4.7 67 lines 1.6 kB view raw
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 17struct 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 */ 25enum { 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 42extern void iotable_init(struct map_desc *, int); 43extern void vm_reserve_area_early(unsigned long addr, unsigned long size, 44 void *caller); 45extern void create_mapping_late(struct mm_struct *mm, struct map_desc *md, 46 bool ng); 47 48#ifdef CONFIG_DEBUG_LL 49extern void debug_ll_addr(unsigned long *paddr, unsigned long *vaddr); 50extern void debug_ll_io_init(void); 51#else 52static inline void debug_ll_io_init(void) {} 53#endif 54 55struct mem_type; 56extern const struct mem_type *get_mem_type(unsigned int type); 57/* 58 * external interface to remap single page with appropriate type 59 */ 60extern 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