AnsweredAssumed Answered

Kernel configurations for imx6 sabresd

Question asked by mrigendra chaubey on Dec 26, 2018
Latest reply on Feb 12, 2019 by Victor Linnik

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

HIGHMEMORY in LINUX 

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

Outcomes