Thread (2 messages) flat view 2 messages, 2 authors, 2005-02-12

Re: Fwd: Memory Size Requirement to Run Linux on Embedded Environment

From: Grant Likely <hidden>
Date: 2005-02-12 18:57:07

On Sat, 12 Feb 2005 19:21:00 +0100, Wolfgang Denk [off-list ref] wrote:
In message [ref] you wrote:
quoted
quoted
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
True.
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
fine.
Yes, your right; I mentioned RedBoot partitioning specifically because
that happens to be what I've used.  Any scheme will work.
quoted
quoted
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.
I suggested the beginning of flash under the assumption that u-boot
would be the first code to execute.  Albert, if it is not then you
will need to have some other code at the boot location.
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.
quoted
least one sector each.  The rest can be dedicated to the kernel and
initrd images.  Set up a RedBoot partition for each.
What for?
Simply suggestions that I've found useful myself; I'm certainly not
saying that that is the best or only way.
quoted
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".
I stand corrected.
quoted
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
Yes, my suggestions are based on assumptions.  Albert is still
responsible to do his own due diligence to make sure that makes the
right decisions.  Thanks for the clarifications.

Cheers,
g.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help