[ECOS] cannot mount effs2 filesystem at boot

brix82@libero.it brix82@libero.it
Fri Aug 6 12:07:00 GMT 2004


---------- Initial Header -----------

>From      : ecos-discuss-owner@ecos.sourceware.org
To          : "brix82@libero.it" brix82@libero.it
Cc          : "ecos-discuss" ecos-discuss@sources.redhat.com
Date      : Mon, 2 Aug 2004 13:19:35 +0200
Subject : Re: [ECOS] cannot mount effs2 filesystem at boot

> On Thu, Jul 29, 2004 at 12:12:24PM +0200, brix82@libero.it wrote:
> > Hi, i'm writing an application for the xscale pxa architecture. It's a sort of
> > shell which runs on eCos - it is linked against the eCos build. On the xscale
> > board there is a flash memory where i used to store a RomFS image, and it worked
> > well with my application; ecos successfully mounted it under the root directory.
> > Now i'm trying to use jffs2 to implement a 'create' command in my shell, but i
> > don't find how to mount the filesystem under the root directory at boot. I tried
> > to modify packages/fs/jffs2/v2_0/src/fs-ecos.c adding this:
> >
> > #define FS_BASE_ADDRESS 0x50300000 // address of the image in flash
> >
> >   MTAB_ENTRY(	jffs2_mte,	// structure name
> >  		"/",		  // mount point
> >  		"jffs2",	// Filesystem type
> >  		"/dev/flash", // hardware device
> >     (CYG_ADDRWORD) FS_BASE_ADDRESS	// Address in ROM
> >    );
>
> Take a look at fs/jffs2/current/tests/fileio1.c. This shows you how to
> mount the fileystem. You don't need to give the address of the
> image. That is in the CDL configuration of the flash io block driver
> which i assume you have configured appropriately.
>
>         Andrew

Thanks for your help, i didn't see this option. I have configured the flash io
block driver but the problem still remains. Look at this piece of my
configuration file:

cdl_component CYGDAT_IO_FLASH_BLOCK_DEVICE_NAME_1 {
    # Flavor: data
    user_value "\"/dev/flash1\""
    # value_source user
    # Default value: "\"/dev/flash1\""
};

cdl_option CYGNUM_IO_FLASH_BLOCK_OFFSET_1 {
    # Flavor: data
    user_value 0x50300000
    # value_source user
    # Default value: 0x00100000
};

cdl_option CYGNUM_IO_FLASH_BLOCK_LENGTH_1 {
    # Flavor: data
    user_value 0x00080000
    # value_source user
    # Default value: 0x00100000
};

It seems to be ok. I recompiled the libraries and the tests, but both fileio and
romfileio look at the beginning of the flash memory:

  RedBoot> go
  arenasize 66804088, freeblocks 1, totalallocated 528, totalfree 66803540,
maxfree 66803540
  <5>jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000000:
0x1977 instead
  ...

I don't understand why the configuration doesn't affect the test program (if
this is the case).
Thanks in advance,

   Marco Bressan


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



More information about the Ecos-discuss mailing list