This is the mail archive of the ecos-discuss@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Configuring EB40A for JFFS2


Paul D. DeRocco wrote:
I have an old EB40A (ARM7) board, and am having trouble figuring out how to
partition its 2MB flash memory. I already have Redboot burned into the
flash, and FIS set up. The bootable version of Redboot is represented by an
FIS image called "Redboot", covering the first 128K of flash. Not sure if
that was necessary, but it seemed like a Good Idea.

I have a boot script which currently just consists of "fis list"; I'll add
an "fis load" command later. It doesn't appear as an image in "fis list",
but I assume that that's because it's short, and there's some magic that
allows short boot scripts to be stored directly in the FIS directory,
instead of in an image. (Did I read that somewhere, or did I just make that
up?)

Anyway, what I want to do next is create an eCos app that uses JFFS2. The
rest of my flash, then, must be divided between the area where I store the
app, and the area used for JFFS2 file storage. I don't want to store the app
inside a JFFS2 file, as I'm content to use Redboot to write each new version
of the app into flash manually.

My flash of 64MB is partitioned this way:
   1. 0x1000_0000, 0x0004_0000 ( 256KB): RedBoot
   2. 0x1004_0000, 0x0008_0000 ( 512KB): application
   3. 0x100C_0000, 0x0002_0000 ( 128KB): spare
   4. 0x100E_0000, 0x03F0_0000 (  63MB): jffs2 partition (63MB)
   5. 0x13FE_0000, 0x0002_0000 ( 128KB): FIS directory and RedBoot config

In redboot, I create a jffs2 partition this way:
fis create -f 0x100E0000 -l 0x03F00000 -n jffs2

Don't forget there is a bug in the ARM compiler 3.2.1 concerning jffs2.

application code:
#include <pkgconf/fs_jffs2.h>       // Address of JFFS2
  mount ("/dev/flash1", JFFS2DIR, "jffs2"); // Initialize File system
(this mounts the "jffs2" partition to the mount point (a directory) JFFS2DIR, "/" in my case (root))

I have a vague memory of reading somewhere that there's a way to get JFFS2
to use a named FIS image, rather than having to hard code a start address
and length in my eCos app. Is this true? If so, do I first use Redboot to
manually create an empty image of the appropriate name, using "fis create -n
...", and then later let Redboot create an image for my app using the rest
of the space? Or should I first create an image for my app, possibly padding
it for future growth, and then create an empty image for JFFS2 to use out of
the remaining space?
I don't follow completely (no time to read in detail).
Don't need to create an image.  If you fixed the jffs2 bug in the ARM 3.2.1 compiler, the partition will be initialized at first mount by writing a magic number (0x1985 I believe).
In redboot you can already mount the partition and use 'ls' and 'ls -d DIR'.

Kind regards,

Jürgen Lambrecht


Next question: with only 2M flash, and with my app written in C++, I don't have a lot of room to spare. I'd like to store my app as GZIPped binary, but my current version of Redboot doesn't have support for that. Among the available packages, I see something called "Zlib compress/decompress". Is that the same thing as GZIP? If I include that, will it automatically add support for the "fis load" command -d option, or do I have to do something else?

(I do have a working RAM version of Redboot, which I can use to burn a new
ROM version into flash, by the way.)


-- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]