In R10.3.2, user/kernel memory split is set to 3G/1G, CONFIG_PAGE_OFFSET is 0xC0000000.
In MX53 SMD board, the 1GB DDR physical address allocation are 0x70000000 ~ 0x90000000(512MB), 0xB0000000 ~ 0xD0000000(512MB).
If enable 1GB ddr in u-boot, in Linux kernel, when convert physical address to virtual address, ddr bank in 0x70000000 ~ 0x90000000 is mapped to lowmem, ddr bank in 0xB0000000 ~ 0xD0000000 is mapped to highmem.
Some customer report if highmem is no zero, android lowmemorykiller cannot be triggered.
If change user/kernel memory split to 2G/2G, as the setting in R10.3.1, CONFIG_PAGE_OFFSET is 0x80000000, both ddr banks are mapped to lowmem. Highmem is zero. android lowmemorykiller can work.
Following are the steps about how to change user/kernel memory split from 3G/1G to 2G/2G in Android R10.3.2.
1. In kernel menuconfig, Kernel Features ---> Memory split ---> 2G/2G user/kernel split.
2. In myandroid, modify device/fsl/imx5x/BoardConfigCommon.mk, change TARGET_KERNEL_2G := true.
Build android rootfs.
3. Rebuild GPU lib for 2G/2G mapping. gpulibs-2g-mapping.zip is the gpu lib which build from commit 3ba28cc279539f8a9af26cce62a7aff7f081833f in amd-gpu main branch.
Copy libEGL_imx51.so, libGLESv1_CM_imx51.so, libGLESv2_imx51.so and libOpenVG.so in gpulibs-2g-mapping.zip to system/lib/egl/.
Copy others to system/lib/.
Original Attachment has been moved to: 39-gpulibs2gmapping.zip
Very interesting post. Do you have similar steps for ICS/i.MX6? Can you please explain the remapping from GPU libs for 2G/2G model and if the GPU libs from i.MX6 are more flexible or need rebuild as well?
Thanks
This patch worked
But gpu lib version is different from fsl r10.3.2 gpu lib's, would you help upload 2G/2G gpu libs which have same version with r10.3.2,
it is important for us, otherwise it is reasonable for fsl FAE not support us if we use different gpu lib version.
I am wondering why not left gpu lib without prelink, and prelink them while build process?
Thanks
Our project have been updated to R10.3.2, and want change 3G/1G to 2G/2G, but I wonder whether your attached libs are newer and stable than fsl commit?
Thanks
fsl commit:
------------------------------------------------------------------------------------------
commit 0acaa36c2d3d541cccfc6354574a5622e0da103f
Author: Xinyu Chen <xinyu.chen@freescale.com>
Date: Mon Oct 31 15:24:47 2011 +0800
ENGR00160722 amd gpu: use memory pool for cached vbo
Source git: amd-gpu.git
Source base: afe33b813e0a33b672b8c346c4042842ec4b3c12
The benifits for most benchmarks and games
1. Reduce memory waste due to page align in gpu driver
2. Combine more memory requests to reduce memory fragment
Signed-off-by: xianzhong <b07117@freescale.com>
------------------------------------------------------------------------------------
gpulibs-2g-mapping.zip is the gpu lib which build from commit 3ba28cc279539f8a9af26cce62a7aff7f081833f, it's commit in "Mon Mar 26 14:10:43 2012 +0800", newer than afe33b813e0a33b672b8c346c4042842ec4b3c12.
Thanks your answer, I still have several issues:
1. Whether gpulibs-2g-mapping.zip is fsl internal version? (I guess you from fsl)
2. How to get the 2G/2G version for commit 0acaa36c2d3d541cccfc6354574a5622e0da103f ? because this commit is fsl official version.
3. Can we download the gpu lib from amd-gpu git and compile them as 2G/2G prelinked?
gpulibs-2g-mapping.zip is built from commit 3ba28cc279539f8a9af26cce62a7aff7f081833f in main branch.
You have no permission to download gpu lib source code.