How does embedded linux boot up differ from traditional system?

cancel
Showing results for 
Search instead for 
Did you mean: 

How does embedded linux boot up differ from traditional system?

Jump to solution
113 Views
Contributor IV

In a typical embedded system entire application code runs from flash memory.  What about embedded system running embedded Linux?

When NXP MCIMX8QXP-CPU evaluation board running Android distribution boots from SD card, it looks like entire application code, kernel, Read only variables, read/write variables, boot code are copied from SD card to DRAM and code execution occurs on DRAM.  Is that correct?  If correct, why?  Why doesn't embedded Linux based system run from non-volatile memory like SD card or flash?

I say this because when I look at the log in PC console, it tells me about 1.7GB of 3GB is available.  This means about 1.3GB is used.  And this 1.3GB is used by kernel code, rwdata, rodata, init, bss, etc. 

3GB is size of DRAM.  This means code execution is occurring in DRAM.

Tags (1)
1 Solution
3 Views
NXP TechSupport
NXP TechSupport

Hello Amer Naseem,

The kernel and required libraries are loaded on DRAM. I don’t think the Linux Kernel had support to run from non-volatile memory up until very lately and these versions are not available on the BSP Releases for the i.MX Processors.

You could have a very small kernel if you wished to limit the DRAM use. However, Android and other graphically intensive distributions do require large amounts of RAM.

I hope this helps!

Regards,

View solution in original post

1 Reply
4 Views
NXP TechSupport
NXP TechSupport

Hello Amer Naseem,

The kernel and required libraries are loaded on DRAM. I don’t think the Linux Kernel had support to run from non-volatile memory up until very lately and these versions are not available on the BSP Releases for the i.MX Processors.

You could have a very small kernel if you wished to limit the DRAM use. However, Android and other graphically intensive distributions do require large amounts of RAM.

I hope this helps!

Regards,

View solution in original post