Change user/kernel memory split from 3G/1G to 2G/2G in Android R10.3.2 -blog archive

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Change user/kernel memory split from 3G/1G to 2G/2G in Android R10.3.2 -blog archive

8,435 Views
shaojun_wang
NXP Employee
NXP Employee

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

Tags (1)
0 Kudos
6 Replies

2,252 Views
AdrianGancev
NXP Employee
NXP Employee

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

0 Kudos

2,252 Views
wenpengqiu
Contributor I

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

0 Kudos

2,252 Views
zhoushulin
Contributor I

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>

------------------------------------------------------------------------------------


0 Kudos

2,252 Views
shaojun_wang
NXP Employee
NXP Employee

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.

0 Kudos

2,252 Views
zhoushulin
Contributor I

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?

0 Kudos

2,252 Views
shaojun_wang
NXP Employee
NXP Employee

gpulibs-2g-mapping.zip is built from commit 3ba28cc279539f8a9af26cce62a7aff7f081833f in main branch.

You have no permission to download gpu lib source code.

0 Kudos