[Previous] [Contents] [Next]

Efsys.ram

Embedded filesystem in RAM/Physical memory

Syntax:

Efsys.ram   [-b blockshift] [-f]
            [-m addr,size,mount[,raw_device]]...
            [-r]

Options:

-b blockshift
Specify the block size used by the filesystem. The actual block size used will be 2^blockshift. Values used should fall within the range 12 through 23. The default is 15.
-f
Strictly emulate flash (testing only).
-m addr,size,mount[,raw_device]
The -m option should always be specified. Its arguments describe the address and size of the physical memory area to be utilized, and the mountpoint through which the filesystem is to be accessed.

If an address of 0 is specified, Efsys.ram will allocate an area in available system RAM. If an address is specified, the memory must be outside the system RAM known to the operating system. Normally this would be a bank of SRAM or EPROM. The size must be non-zero and may optionally be followed by a "k", denoting kilobytes, or an "m", denoting megabytes. The mountpoint is the pathname mount point the filesystem should appear at.

The optional raw_device argument specifies a mount point by which the raw device data may be accessed (normally it is a pathname under /dev). If no raw_device argument is specified, there will not be a pathname through which the raw RAM data may be accessed.

Multiple -m options may be specified.

-r
The filesystem is to be read-only.

Description:

Efsys.ram provides an embedded filesystem using RAM or ROM. It can be used with battery backed up SRAM to provide a read/write filesystem or with EPROMS to provide a read-only filesystem. The filesystem has the same limitations as the other embedded filesystem drivers. Since this driver is only used to access a filesystem, there is no CIS information stored at the beginning of the image.

The raw mount point which may be optionally specified as part of the -m option is useful for capturing an image of the filesystem which can be then be burned into ROM.

Note that like a flash filesystem, the RAM filesystem must use a spare block. In Efsys.ram this is basically wasted space and should be minimized. This can be done by reducing the blocksize that the embedded filesystem uses. There is however a tradeoff to be made. The smaller the block size is, the greater is the overhead required to manage the blocks. Normally a 4K or 8K block is the smallest usable blocksize.


Note: If Efsys.ram is pointed at an existing filesystem image, or an image is loaded into the raw mountpoint, the blocking size used to create that image must match the blocking size specified to Efsys.ram.

Care should be used when specifying a non-zero address, since if this points at system RAM that is in the OS memory pool the driver may interfere with the operation of other processes or the operating system itself. The Efsys.ram filesystem does not check that the address specified does not conflict with the OS.

Examples:

Start a 1M ramdisk from the OS memory pool with a mount point of /ramdisk and a raw device /dev/ramimage:

 
 	Efsys.ram -m 0,1024K,/ramdisk,/dev/ramimage &

Start a ROM filesystem using ROMs occupying 128k of space starting at D000:0, and used a reduced block size of 4K:

 
 	Efsys.ram -b12 -m 0xd0000,128K,/rom 

[Previous] [Contents] [Next]