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