Fwd: Memory Size Requirement to Run Linux on Embedded Environment

Wolfgang Denk wd at denx.de
Sun Feb 13 05:21:00 EST 2005

In message <528646bc05021202175e967842 at mail.gmail.com> you wrote:
> > There will be parameters of about 65KB are to be used and these parameters
> > can be changed in the field. This parameter block will have 2 copies to
> > avoid data corruption due to power fail. Hence to avoid the use of NAND
> > Flash I will be using 2 Parameter files to read and write(into flash) in a
> > linux environment during normal operation. Am I right??
> You could map the FLASH as a MTD device and write to two different
> sectors directly; then you can use a RAM disk instead of going with
> JFFS on your flash.  Use a separate RedBoot partition for each
> parameter sector.  (Note; using RedBoot partitions does not preclude
> using u-boot)

I can't parse that. Using a ramdisk (as root filesystem?) has nothing
to do with using a JFFS2 (not JFFS) filesystem for data storage.  And
actually  it's  usually  better to use a cramfs based root filesystem
plus tmpfs for transient data  storage.  Finally,  I  don't  see  any
reason  for  a "RedBoot" partition - any MTD partition will work just

> > In this mailing list I have read the typical size of U-BOOT will be around
> > 256KB as suggested by Wolfgang Denk.
> U-boot will live at the beginning of flash.  The u-boot environment
> will take up another sector.  Your parameter files will take up at

This is not correct. U-Boot is located where your memory map dictates
it, this can be the begining or the end or right  in  the  middle  of
your flash - depending on your hardware design.

And 256 kB is an upper size limit  including  the  environment  (with
enough spare even for redundand environment in most configuration). A
typical U-Boot image (including environment) is 150...190 kB.

> least one sector each.  The rest can be dedicated to the kernel and
> initrd images.  Set up a RedBoot partition for each.

What for?

> How much RAM does your app need?  32M is gobs for a simple system.  If
> it's ultra simple you may even be able to go down to 16 (don't quote

In 16 MB you can run a native GCC  which  definitely  is  far  beyond
being "ultra simple".

> me though).  Add more if your app is RAM hungry.  16M of flash should
> also be gobs.  (Assuming 1-2M for the kernel and the rest for the
> initrd image)

It is very difficult to make recommendations without more information
about system requirements. Yes, it is usually possible  to  implement
simple devices like a firewall / router / WLAN AP etc. in 4 or better
8 MB flash and 16 MB RAM. But you will also have to take into account
if  there  are  requirements  like  reliable  software  updates  with
guaranteed fall-back (which may  require  storage  capacity  for  the
fall-back version) or similar features.

Best regards,

Wolfgang Denk

Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
"If you own a machine, you are in turn owned by it,  and  spend  your
time serving it..."    - Marion Zimmer Bradley, _The Forbidden Tower_

More information about the Linuxppc-embedded mailing list