summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXinyu Chen <xinyu.chen@freescale.com>2011-10-28 15:25:21 +0800
committerXinyu Chen <xinyu.chen@freescale.com>2011-10-31 08:49:37 +0800
commitbd72984e166c6149386ad6193258ae386dd06844 (patch)
tree952a644983c501ccbdfa3d487370f27b22b2d830
parent7a17148d3dbed856922b89fb1fd050087afe1add (diff)
ENGR00159773-2 mx53smd: Remove normal zone, make pmem size configurable
Remove the normal zone by set CONFIG_DMA_ZONE_SIZE = 0. Add pmem=<gpu size>,<vpu size> commandline for set the GPU and VPU pmem size on boot. Signed-off-by: Xinyu Chen <xinyu.chen@freescale.com>
-rw-r--r--arch/arm/configs/imx5_android_defconfig10
-rw-r--r--arch/arm/mach-mx5/mx53_smd.c15
-rw-r--r--arch/arm/plat-mxc/include/mach/memory.h6
3 files changed, 23 insertions, 8 deletions
diff --git a/arch/arm/configs/imx5_android_defconfig b/arch/arm/configs/imx5_android_defconfig
index 521bf2a92196..a9fd09c519e8 100644
--- a/arch/arm/configs/imx5_android_defconfig
+++ b/arch/arm/configs/imx5_android_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.35.3
-# Mon Sep 5 10:02:38 2011
+# Fri Oct 28 15:14:28 2011
#
CONFIG_ARM=y
CONFIG_HAVE_PWM=y
@@ -289,7 +289,7 @@ CONFIG_ARCH_MXC_HAS_NFC_V3=y
CONFIG_ARCH_MXC_HAS_NFC_V3_2=y
CONFIG_MXC_BLUETOOTH_RFKILL=y
CONFIG_IRAM_ALLOC=y
-CONFIG_DMA_ZONE_SIZE=96
+CONFIG_DMA_ZONE_SIZE=0
CONFIG_ISP1504_MXC=y
CONFIG_UTMI_MXC=y
# CONFIG_MXC_IRQ_PRIOR is not set
@@ -348,10 +348,10 @@ CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-# CONFIG_VMSPLIT_3G is not set
-CONFIG_VMSPLIT_2G=y
+CONFIG_VMSPLIT_3G=y
+# CONFIG_VMSPLIT_2G is not set
# CONFIG_VMSPLIT_1G is not set
-CONFIG_PAGE_OFFSET=0x80000000
+CONFIG_PAGE_OFFSET=0xC0000000
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
diff --git a/arch/arm/mach-mx5/mx53_smd.c b/arch/arm/mach-mx5/mx53_smd.c
index 8b78744c1077..c568d56f9afc 100644
--- a/arch/arm/mach-mx5/mx53_smd.c
+++ b/arch/arm/mach-mx5/mx53_smd.c
@@ -957,7 +957,7 @@ static struct platform_device mxc_sgtl5000_device = {
static struct android_pmem_platform_data android_pmem_data = {
.name = "pmem_adsp",
- .size = SZ_32M,
+ .size = SZ_64M,
};
static struct android_pmem_platform_data android_pmem_gpu_data = {
@@ -1493,6 +1493,19 @@ static void __init fixup_android_board(struct machine_desc *desc, struct tag *ta
}
str = t->u.cmdline.cmdline;
+ str = strstr(str, "pmem=");
+ if (str != NULL) {
+ str += 5;
+ pmem_gpu_size = memparse(str, &str);
+ android_pmem_gpu_data.size = pmem_gpu_size;
+ if (*str == ',') {
+ str++;
+ pmem_adsp_size = memparse(str, &str);
+ android_pmem_data.size = pmem_adsp_size;
+ }
+ }
+
+ str = t->u.cmdline.cmdline;
if (strstr(str, "di0_primary"))
reserve_2ndisp = 0;
break;
diff --git a/arch/arm/plat-mxc/include/mach/memory.h b/arch/arm/plat-mxc/include/mach/memory.h
index 83532f6f7c71..45e8784306c9 100644
--- a/arch/arm/plat-mxc/include/mach/memory.h
+++ b/arch/arm/plat-mxc/include/mach/memory.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ * Copyright (C) 2004-2011 Freescale Semiconductor, Inc. All Rights Reserved.
*/
/*
@@ -62,7 +62,7 @@
#define CONSISTENT_DMA_SIZE SZ_4M
#else
-#ifdef CONFIG_ARCH_MX5
+#if defined(CONFIG_ARCH_MX5) && (CONFIG_DMA_ZONE_SIZE > 0)
#define CONSISTENT_DMA_SIZE (96 * SZ_1M)
#else
#define CONSISTENT_DMA_SIZE (32 * SZ_1M)
@@ -72,6 +72,7 @@
#ifndef __ASSEMBLY__
+#if CONFIG_DMA_ZONE_SIZE > 0
#ifdef CONFIG_DMA_ZONE_SIZE
#define MXC_DMA_ZONE_SIZE ((CONFIG_DMA_ZONE_SIZE * SZ_1M) >> PAGE_SHIFT)
#else
@@ -94,5 +95,6 @@ static inline void __arch_adjust_zones(int node, unsigned long *zone_size,
__arch_adjust_zones(node, size, holes)
#endif
+#endif
#endif /* __ASM_ARCH_MXC_MEMORY_H__ */