blob: e51c32b558a351da0c1607b8f3b31fa3f7ae8d8f [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
Russell King4baa9922008-08-02 10:55:55 +01002 * arch/arm/include/asm/map.h
Linus Torvalds1da177e2005-04-16 15:20:36 -07003 *
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 */
Stephen Boyd245a1382013-02-13 13:16:02 -080012#ifndef __ASM_MACH_MAP_H
13#define __ASM_MACH_MAP_H
Steve Mucklef132c6c2012-06-06 18:30:57 -070014
Russell King3603ab22007-05-05 20:59:27 +010015#include <asm/io.h>
16
Linus Torvalds1da177e2005-04-16 15:20:36 -070017struct map_desc {
18 unsigned long virtual;
Deepak Saxena9769c242005-10-28 15:19:11 +010019 unsigned long pfn;
Linus Torvalds1da177e2005-04-16 15:20:36 -070020 unsigned long length;
21 unsigned int type;
22};
23
Russell Kingdb5b7162008-09-07 12:42:51 +010024/* types 0-3 are defined in asm/io.h */
Russell Kingebb4c652008-11-09 11:18:36 +000025#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
Paul Walmsleye4707dd2009-03-12 20:11:43 +010032#define MT_MEMORY_NONCACHED 11
Linus Walleijcb9d7702010-07-12 21:50:59 +010033#define MT_MEMORY_DTCM 12
34#define MT_MEMORY_ITCM 13
Santosh Shilimkar8fb54282011-06-28 12:42:56 -070035#define MT_MEMORY_SO 14
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070036#define MT_MEMORY_R 15
37#define MT_MEMORY_RW 16
38#define MT_MEMORY_RX 17
Marek Szyprowskid4398df2011-12-29 13:09:51 +010039#define MT_MEMORY_DMA_READY 18
Greg Reidcf105492012-10-12 12:14:12 -040040#define MT_DEVICE_USER_ACCESSIBLE 19
Russell King0af92be2007-05-05 20:28:16 +010041
Russell King092c1952006-06-24 17:34:50 +010042#ifdef CONFIG_MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -070043extern void iotable_init(struct map_desc *, int);
Hiroshi DOYU69d3a842009-01-28 21:32:08 +020044
45struct mem_type;
46extern const struct mem_type *get_mem_type(unsigned int type);
47/*
48 * external interface to remap single page with appropriate type
49 */
50extern int ioremap_page(unsigned long virt, unsigned long phys,
51 const struct mem_type *mtype);
Steve Mucklef132c6c2012-06-06 18:30:57 -070052
53extern int ioremap_pages(unsigned long virt, unsigned long phys,
54 unsigned long size, const struct mem_type *mtype);
Russell King092c1952006-06-24 17:34:50 +010055#else
56#define iotable_init(map,num) do { } while (0)
57#endif
Steve Mucklef132c6c2012-06-06 18:30:57 -070058
59#endif