This is the mail archive of the ecos-discuss@sources.redhat.com 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: cannot mount effs2 filesystem at boot


Andrew Lunn wrote:

On Fri, Aug 06, 2004 at 02:07:24PM +0200, brix82@libero.it wrote:


---------- 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
};



Read the "description" for this option:


cdl_option CYGNUM_IO_FLASH_BLOCK_OFFSET_1 {
	display         "Start offset from flash base"
	flavor          data
	default_value   0x100000
	description     "
		This gives the offset from the base of flash which this
		block device corresponds to."
	}

I suppose you could have a flash which is 1283Mbytes big, but more
likely you have this wrong!

Andrew



The 0x50000000 address is a virtual address mapped to the physical base address of the flash memory. Similarly, 0x60000000 is mapped to the SRAM bank and 0x70000000 to the leds (to get a fantastic supercar effect!).
As you said, i need the offset from the base, not the address of the base; so i should use "0x00300000".
Thanks a lot for your help (i feel a bit stupid and lamer)


Marco

--
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]