User`s guide

Porting the Android Kernel
i.MX53 System Development User’s Guide, Rev. 1
12-4 Freescale Semiconductor
Android's memory map hardcodes three of its four main blocks to a specific value. The final block uses
whatever memory remains after the other three blocks have defined their boundaries. This remaining block
of memory is used by the system memory as standard RAM memory for loading the kernel and apps
execution.
Figure 12-2 shows how the Android's memory map is organized on a 512 Mbyte system.
Figure 12-2. Android Memory Map (512 Mbyte System)
This memory map is defined under /myandroid/kernel_imx/arch/arm/mach-mx5/mx53_evk.c on the
function init fixup_mxc_board.
12.3 Initializing Android
After the kernel boots, the init application is the first program executed on the system. The init program
directly mounts all file systems and devices, using either hard-coded file names or device names generated
by probing the sysfs file system. This eliminates the need for a /etc/fstab file in Android.
After the device/system files are mounted, init reads
/etc/init.rc, which is a text file that contains
parameters and commands executed by the init program. These commands are executed sequentially and
load some of the main services of Android. The file can also create and mount directories where the
system, cache, and data partitions reside.
Init and init.rc load the following services:
app_process application—launches Zygote
rild daemon application—manages all radio GSM support
mediaserver—handles all media, including audio and video
ts_calibrator—provides the touch screen calibration app