summaryrefslogtreecommitdiffstats
path: root/arch/microblaze/include/asm/page.h
diff options
context:
space:
mode:
authorSteven J. Magnani <steve@digidescorp.com>2010-05-13 17:48:27 +0200
committerMichal Simek <monstr@monstr.eu>2010-08-04 10:22:34 +0200
commitba9c4f88d747836bf35c3eee36aa18d2e164f493 (patch)
treed244c9946b40af1ea21a1b71d3e49efa513bb4b7 /arch/microblaze/include/asm/page.h
parentmicroblaze: Trace hardirqs (diff)
downloadlinux-ba9c4f88d747836bf35c3eee36aa18d2e164f493.tar.xz
linux-ba9c4f88d747836bf35c3eee36aa18d2e164f493.zip
microblaze: Allow PAGE_SIZE configuration
Allow developer to configure memory page size at compile time. Larger pages can improve performance on some workloads. Based on PowerPC code. Signed-off-by: Steven J. Magnani <steve@digidescorp.com> Signed-off-by: Michal Simek <monstr@monstr.eu>
Diffstat (limited to 'arch/microblaze/include/asm/page.h')
-rw-r--r--arch/microblaze/include/asm/page.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/arch/microblaze/include/asm/page.h b/arch/microblaze/include/asm/page.h
index 464ff32bee3d..c12c6dfafd9f 100644
--- a/arch/microblaze/include/asm/page.h
+++ b/arch/microblaze/include/asm/page.h
@@ -23,8 +23,16 @@
#ifdef __KERNEL__
/* PAGE_SHIFT determines the page size */
-#define PAGE_SHIFT (12)
-#define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT)
+#if defined(CONFIG_MICROBLAZE_32K_PAGES)
+#define PAGE_SHIFT 15
+#elif defined(CONFIG_MICROBLAZE_16K_PAGES)
+#define PAGE_SHIFT 14
+#elif defined(CONFIG_MICROBLAZE_8K_PAGES)
+#define PAGE_SHIFT 13
+#else
+#define PAGE_SHIFT 12
+#endif
+#define PAGE_SIZE (ASM_CONST(1) << PAGE_SHIFT)
#define PAGE_MASK (~(PAGE_SIZE-1))
#define LOAD_OFFSET ASM_CONST((CONFIG_KERNEL_START-CONFIG_KERNEL_BASE_ADDR))