[ECOS] JFFS2 eCos port updated.
Jonathan Larmour
jifl@eCosCentric.com
Tue Jan 28 19:26:00 GMT 2003
Gary D. Thomas wrote:
> On Mon, 2003-01-27 at 21:17, Jonathan Larmour wrote:
>>
>>>>It'd also be nice to see RedBoot commands added for mounting, reading and
>>>>possibly also writing to JFFS2 partitions -- other bootloaders have been
>>>>able to boot Linux kernels from a JFFS2 partition for some time now, and
>>>>it's a shame RedBoot can't do it when all the actual code to do the JFFS2
>>>>parts is there already.
[snip]
>>Gary, do you still have the spec for this? Want me to try and dig it out?
>>
>
>
> If you can, I'd appreciate it. This will give us a place
> to start - either more discussion or actual implementation.
This is the version we reached after discussion and input from Mark and
your good self at the time:
-=-=-=-=-=-
Here is a repeat of the outline of what we should do to allow RedBoot to
access "eCos" i.e. io/fileio-style filesystems.
file devs
Lists block devices that can be mounted (by enumerating the devtab, and
checking the status for CYG_DEVTAB_STATUS_BLOCK).
file listfs
Lists file system types supported (by enumerating the fstab).
file mount -t fstype /dev/xxxxx [mountpoint]
where /dev/xxxxx will probably be /dev/redbootfis/NAME for redboot flash
FIS entries. It could be real block devices in the future - lets keep it
flexible and in line with eCos. mountpoint defaults to /
file umount [mountpoint]
file ls
file cd
In future also file mkdir, file link, file rm, file save, yaddayadda.
load -m fs [-d] [-r] [-v] [-b <base_address>] <file>
will load the file off the fs.
For eCos /dev/redbootfis/NAME will also be available. Obviously we don't
want to duplicate the FIS code, so it looks like some opcode for the
CYGACC_CALL_IF_FLASH_CFG_OP() VV presumably.
As you can see I don't want to try and conflict with any of the existing
ext2 stuff, under the principle of not mixing things that are fundamentally
different under the hood.
-=-=-=-=-=-
The /dev/redbootfis/* stuff needs to be added to allow name-based lookup
of FIS partitions. The CYGACC_CALL_IF_FLASH_CFG_OP() VV needs to return
information about the location and dimension of the partitions. It
partially renders io/flash/current/src/flashiodev.c obsolete, although
there's probably value in keeping some way of accessing flash from JFFS2
or applications without requiring a FIS to be present.
Obviously we want it to be useful to applications in general, not just JFFS2.
One other thing: to be clear about the cyg_inode_cache stuff I mentioned
before, the eCos port of jffs2 definitely has something odd wrong with it
in terms of iputs and igets, mostly with directory inodes. I was part way
through fixing it with implementing the inode cache
(io/fileio/current/include/inode.h) but never finished fixing the problems
there.
The result will be that, for example, you probably can't unmount it once
mounted, and there is a risk of collisions with non-trivial applications
reading/writing/renaming etc. multiple files.
For that reason if nothing else I would definitely concentrate on
read-only, and leave read-write for later when the whole FS is better
tested - some people won't like their JFFS2 images being scrogged :-).
Jifl
--
eCosCentric http://www.eCosCentric.com/ <info@eCosCentric.com>
--[ "You can complain because roses have thorns, or you ]--
--[ can rejoice because thorns have roses." -Lincoln ]-- Opinions==mine
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss
More information about the Ecos-discuss
mailing list