[Previous] [Contents] [Index] [Next]

devf-sc400

Flash filesystem for AMD sc400 evaluation board (QNX Neutrino)


Note: You must be root to start this driver.

Syntax:

devf-sc400
    [-a] [-b priority] [-c] 
    [-E] [-f verifylevel] [-i arrayindex[,partindex]]
    [-l] [-m mountover[,cmpover]]
    [-p backgroundpercent[,superlimit]] [-r]
    [-s baseaddress[,windowsize[,arrayoffset[,arraysize[,unitsize[,buswidth[,interleave]]]]]
    [-t threads] [-u update] [-V] [-v]
    [-w buffersize]

Runs on:

AMD sc4000 evaluation board

Options:

-a
Don't automount filesystem partitions present on the media.
-b priority
Enable background reclaim at the specified priority. By default, background reclamation is disabled.
-c
Disable compressed mountpoints.
Note: The -c option is for use with flash filesystem version 2 (ffs2) only.

-E
Do not daemonize. Exit on EBADFSYS with partition num + 1 of corrupt filesystem.
-f verifylevel
Enable flash verify. (default=0, 0=none, write=1, erase=2, all=3)
-i arrayindex[,partindex]
Starting socket index and first partition index; 0 >= index >=15. The default is 0,0. Use this to give multiple drivers unique IDs. The -i option is just a suggestion for the resource database manager; the selected indexes can be larger.
-l
List the available flash databases and exit.
-m mountover[,cmpover]
Override the mountpoints assigned to a file system that are formatted with an empty (i.e. flashctl -p/dev/fs0p0 -f -n "") mountpoint. The mountover argument can include two %X format specifiers (like those for printf()) that are replaced by the socket index and the partition index.

The cmpover argument can include two %X specifiers, or one %s format specifier that's replaced by the formatted mountover.


Note: The cmpover argument is only available to use with flash filesystem version 2 (ffs2).

The default is /fs%Xp%X,%s/.cmp.


Note: The -m option doesn't override a mountpoint specified with mkefs.

-p backgroundpercent[,superlimit]
Set the background-reclaim percentage trigger (stale space over free space) and, optionally, the superseded extent limit before reclaim. The default is 100,16.
-r
Enable fault recovery for dirty extents, dangling extents, and partial reclaims. By default, recovery isn't performed, which, when power faults are likely, can waste space on the media or make the media read-only.
-s baseaddress[,widthsize[,arrayoffset[,arraysize[,unitsize[,buswidth[,interleave]]]]]
Set socket options, normally the base physical address, window size, array offset, array size, unit size, bus width, and interleave. The format is left flexible for socket services with customized drivers.

You can specify the base physical address, sizes, and offset in octal (0777), hexadecimal (0x1ff), or decimal (511). The sizes must be a power of two, and you can specify them with any of the following suffixes:

-t threads
Number of threads; 1 >= threads >= 4 (default is 2). Extra threads increase performance when background reclaim is enabled (with the -b option) and when multiple chips and/or spare blocks are available.
-u update
Update level for timestamps; 0 for never update, 1 to update files only, and 2 to update files and directories. The default update is 0.
-V
Display filesystem and MTD version information.
-v
Display verbose information.
-w buffersize
Write (append) buffer size in bytes. The default buffersize is 512. Using a larger write-buffer prevents the creation of very small extents, reducing overhead. If buffersize is 0, appending is disabled.

Description:

The devf-sc400 manager provides Flash filesystem support for AMD sc400 evaluation board using the following default filenames (the ID, n, appended to /dev/fs can be changed via the -i option):

/dev/fsn
Default mountpoint for socket n.
/dev/fsnp0
Raw access for socket n, partition 0.
mountpoint
Flash filesystem mountpoint for socket n, partition 0 with transparent decompression.
mountpoint/.cmp
Flash filesystem mountpoint for socket n, partition 0 without transparent decompression (only previously compressed files are available here).

You can specify the mountpoint above with the mount attribute of the mkefs command, and override it with the -n option to flashctl. By default, it's /fsnp0.


Note: If you erase a raw partition or the raw array (socket), you might erase any boot monitor, BIOS, or other data installed by the manufacturer. Check the documentation for the board.

The driver probes the hardware to determine its block size. If you need to know the block size, you can:

Examples:

Start devf-sc400 and automatically mount the Flash filesystem partitions, with an initial fault recovery process, most POSIX semantics enabled and background reclaim at priority 5:

devf-sc400 -r -u2 -b5 &

Caveats:

Though the Flash filesystem supports most POSIX semantics, some functionality isn't implemented in order to keep the driver simple and efficient. The unsupported POSIX semantics include:

QNX Neutrino flash filesystem version 3 no longer provides built-in decompression. The flash filesystem's decompression functionality has moved into the inflator resource manager. You should now use the deflate utility to compress files.

Performance might be slow when multiple writers are writing randomly to a shared file or to a shared directory (e.g. using unlink or rename). In these cases, the offset pointers have to be rewound for every access. There's no performance penalty when appending to a file, or when creating files with open(O_CREAT), mkdir, mknod, or link.

See also:

deflate, devf-800fads, devf-i365sl, devf-mtx600-w8, devf-p5064, devf-ppaq, devf-ram, devf-rpx-lite, devf-vr41xx, flashctl, flashcmp, inflator, mkefs

"Flash filesystems" in the Working With Filesystems chapter of the User's Guide


[Previous] [Contents] [Index] [Next]