summaryrefslogtreecommitdiffstats
path: root/arch/sh/include/asm/fixmap.h
diff options
context:
space:
mode:
authorMatt Fleming <matt@console-pimps.org>2009-11-05 08:54:17 +0100
committerMatt Fleming <matt@console-pimps.org>2010-01-16 15:31:36 +0100
commit4d35b93a66e9b87df20784fcf130d2e8760be53f (patch)
treeaf0b82ab28a0e4142130c6510cc06cca3d4a67aa /arch/sh/include/asm/fixmap.h
parentsh: Generalise the pte handling code for the fixmap path (diff)
downloadlinux-4d35b93a66e9b87df20784fcf130d2e8760be53f.tar.xz
linux-4d35b93a66e9b87df20784fcf130d2e8760be53f.zip
sh: Add fixed ioremap support
Some devices need to be ioremap'd and accessed very early in the boot process. It is not possible to use the standard ioremap() function in this case because that requires kmalloc()'ing some virtual address space and kmalloc() may not be available so early in boot. This patch provides fixmap mappings that allow physical address ranges to be remapped into the kernel address space during the early boot stages. Signed-off-by: Matt Fleming <matt@console-pimps.org>
Diffstat (limited to 'arch/sh/include/asm/fixmap.h')
-rw-r--r--arch/sh/include/asm/fixmap.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/sh/include/asm/fixmap.h b/arch/sh/include/asm/fixmap.h
index 1566d3361ca4..38a1de866873 100644
--- a/arch/sh/include/asm/fixmap.h
+++ b/arch/sh/include/asm/fixmap.h
@@ -60,6 +60,14 @@ enum fixed_addresses {
FIX_KMAP_BEGIN, /* reserved pte's for temporary kernel mappings */
FIX_KMAP_END = FIX_KMAP_BEGIN+(KM_TYPE_NR*NR_CPUS)-1,
#endif
+ /*
+ * FIX_IOREMAP entries are useful for mapping physical address
+ * space before ioremap() is useable, e.g. really early in boot
+ * before kmalloc() is working.
+ */
+#define FIX_N_IOREMAPS 32
+ FIX_IOREMAP_BEGIN,
+ FIX_IOREMAP_END = FIX_IOREMAP_BEGIN + FIX_N_IOREMAPS,
__end_of_fixed_addresses
};