11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/*
24baa9922430662431231ac637adedddbb0cfb2d7Russell King *  arch/arm/include/asm/map.h
31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *
41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *  Copyright (C) 1999-2000 Russell King
51da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *
61da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * This program is free software; you can redistribute it and/or modify
71da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * it under the terms of the GNU General Public License version 2 as
81da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * published by the Free Software Foundation.
91da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *
101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *  Page table mapping constructs and function prototypes
111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */
123603ab2b62ad8372fc93816b080b370dd55d7cecRussell King#include <asm/io.h>
133603ab2b62ad8372fc93816b080b370dd55d7cecRussell King
141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct map_desc {
151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	unsigned long virtual;
169769c2468d423a1562dd59a5db250bd0a5533ec9Deepak Saxena	unsigned long pfn;
171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	unsigned long length;
181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	unsigned int type;
191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds};
201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
21db5b7169474882fabbd811a4cf5c1bae3157e677Russell King/* types 0-3 are defined in asm/io.h */
22ebb4c65869db7213280ad9c510637683939b5ff8Russell King#define MT_UNCACHED		4
23ebb4c65869db7213280ad9c510637683939b5ff8Russell King#define MT_CACHECLEAN		5
24ebb4c65869db7213280ad9c510637683939b5ff8Russell King#define MT_MINICLEAN		6
25ebb4c65869db7213280ad9c510637683939b5ff8Russell King#define MT_LOW_VECTORS		7
26ebb4c65869db7213280ad9c510637683939b5ff8Russell King#define MT_HIGH_VECTORS		8
27ebb4c65869db7213280ad9c510637683939b5ff8Russell King#define MT_MEMORY		9
28ebb4c65869db7213280ad9c510637683939b5ff8Russell King#define MT_ROM			10
29e4707dd3e9d0cb57597b6568a5e51fea5d6fca41Paul Walmsley#define MT_MEMORY_NONCACHED	11
30cb9d7707cd9be57830f31616233f6a872ca8416dLinus Walleij#define MT_MEMORY_DTCM		12
31cb9d7707cd9be57830f31616233f6a872ca8416dLinus Walleij#define MT_MEMORY_ITCM		13
328fb54284ba6aa1f0d832ec015fde64ecf4bb0f4fSantosh Shilimkar#define MT_MEMORY_SO		14
330af92befeb4b330c46cce6b520b2cc775cd6931fRussell King
34092c1952e18fec06f3a951113fe1d87492d6e840Russell King#ifdef CONFIG_MMU
351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsextern void iotable_init(struct map_desc *, int);
3669d3a84a646d6ad6cd693a7a3d5b9af414113d2cHiroshi DOYU
3769d3a84a646d6ad6cd693a7a3d5b9af414113d2cHiroshi DOYUstruct mem_type;
3869d3a84a646d6ad6cd693a7a3d5b9af414113d2cHiroshi DOYUextern const struct mem_type *get_mem_type(unsigned int type);
3969d3a84a646d6ad6cd693a7a3d5b9af414113d2cHiroshi DOYU/*
4069d3a84a646d6ad6cd693a7a3d5b9af414113d2cHiroshi DOYU * external interface to remap single page with appropriate type
4169d3a84a646d6ad6cd693a7a3d5b9af414113d2cHiroshi DOYU */
4269d3a84a646d6ad6cd693a7a3d5b9af414113d2cHiroshi DOYUextern int ioremap_page(unsigned long virt, unsigned long phys,
4369d3a84a646d6ad6cd693a7a3d5b9af414113d2cHiroshi DOYU			const struct mem_type *mtype);
44092c1952e18fec06f3a951113fe1d87492d6e840Russell King#else
45092c1952e18fec06f3a951113fe1d87492d6e840Russell King#define iotable_init(map,num)	do { } while (0)
46092c1952e18fec06f3a951113fe1d87492d6e840Russell King#endif
47