I have a imx6 sabresd device with
Processor
i.MX 6Quad* processor
*can be configured as i.MX 6Dual processor
Memory
1 GB DDR3 SDRAM
8 GB eMMC Flash
So device have only 1 gb of DRAM. Then why these configurations are given in imx_v7_android_defconfig
CONFIG_HIGHMEM=y
If the device itself have less memory than 4 gb then why we need it for sabresd?
If I disable this config_highmem I get this log
Truncating RAM at 0x10000000-0x50000000 to -0x47800000
Consider using a HIGHMEM enabled kernel.
from kconfig
The address space of ARM processors is only 4 Gigabytes large and it has to accommodate user address space, kernel address space as well as some memory mapped IO. That means that, if you have a large amount of physical memory and/or IO, not all of the memory can be "permanently mapped" by the kernel. The physical memory that is not permanently mapped is called "high memory".
Depending on the selected kernel/user memory split, minimum vmalloc space and actual amount of RAM, you may not need this option which should result in a slightly faster kernel.
If unsure, say n.
What does it mean? In what way we need this config option. From this thread
I gather that we don't need it.
Also about initrd (is it initramfs or ramdisk), on extracting contents of boot.img I see below files,
boot-imx6qp.img-base
boot-imx6qp.img-cmdline
boot-imx6qp.img-pagesize
boot-imx6qp.img-ramdisk.gz
boot-imx6qp.img-zImage
here it looks like its a traditional ramdisk not initramfs. But the terminology between ramdisk and initramfs is mixed. Can anyone point me in the correct direction as what nxp source code means about ramdisk and initramfs.
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=8192
No. The option "CONFIG_HIGHMEM=y" does not not allow to use over 4GB address space.