devf-fsl-qspi

QNX Board Support Packages8.0BSP User's GuideNXP S32G399 RDB3NXPNXPARM

Fast Flash File System v3 (POSIX compatible)

Syntax:

devf-fsl-qspi [-aclrvV] [-b priority] [-f verifylevel] [-i index]
              [-m mountover] [-p backgroundpercent[,superlimit]]
              [-s [options,[[soc]soc-specific(soc) options: all options are separated by colons]]]
              [-t threads] [-u updatelevel] [-w buffersize]
              

Runs on:

QNX OS

Options:

-A
When registering the path names for the partitions with resmgr_attach(), use the _RESMGR_FLAG_AFTER flag to force the path to be resolved after others with the same pathname at the same mountpoint.
-a
Disables automount or enumerate of filesystem partitions present on the media. If you specify both the -a and -R options, the driver ignores the -R option.
-b priority
Enable background reclaim at the specified priority. By default, background reclamation is disabled.
-D
Enable automatic detection of error-correcting code (ECC) mode. If you specify this option, you don't need to specify -x.
Note:
Don't mix ECC-enabled partitions and ECC-disabled partitions; the driver doesn't support this.
-d log_method
Control the logging from the flash driver. The possible values for log_method are:
  • 0 — log to stdout (the default)
  • 1 — log to slogger2
  • 2 — log to both stdout and slogger2
-E
Don't daemonize. If the driver detects a corrupt filesystem, the exit status is that filesystem's partition number plus 1.
-e arg
Only enumerate the flash partitions, instead of doing a full scan and mount:
  • If arg is an integer, the flash driver automounts all partitions with a partition number less than or equal to arg.

    For example, assume we have a flash layout as follows:

    • /dev/fs0p0 — raw
    • /dev/fs0p1 — formatted
    • /dev/fs0p2 — formatted
    • /dev/fs0p3 — formatted

    If you start the driver with -e 1, the driver creates all the raw entries in /dev, but mounts only /dev/fs0p1 (/dev/fs0p0 is raw, so it's never mounted, regardless of the -e option).

  • If arg is a string, the driver interprets it as a colon-separated list of exact paths to mount, if found.
-f verifylevel
Enable flash verification (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.
-k blksz
Set the extent cache block size. The default is 128 KB.
-L limit
The number of retries to make if the physical flash erase function for a unit fails. The default is 0.
-l
List the available flash databases and then exit.
-m mountover
Override the mountpoints assigned to the 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.
Note:
The -m option doesn't override a mountpoint specified with mkefs.
-o file_max
Set the maximum number of files to cache. The default is 64.
-P ba
Set the protection mode for Spansion-compatible devices:
  • 0 — no lock (the default)
  • 1 — persistent lock mode
  • 2 — dynamic lock mode
-U UID:GID
operate as the specified user and group IDs. The driver retains the necessary process-manager abilities.
-I
gain System (privileged) execution mode.
-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
Mount any automount filesystems as read-only. This option doesn't affect raw partition mounts, and it has an effect only at startup and initialization. Any subsequent mounting (with either flashctl or mount) ignores the -R option. If you also specify the -a option, the driver ignores the -R option.
-r
Enable fault recovery for dirty extents, dangling extents (dirty headers or damaged pointers), and partial reclaims.
Note:
You should always specify the -r option unless you're trying to debug an issue concerning flash corruption.

If you don't specify -r, and a power failure occurs, the following can happen:

  • You can waste space. If an erasure was happening when the power was cut off, there will be some dangling extents (i.e., marked for deletion, but not actually deleted). If you specify the -vv option, the driver prints dangle for every dangling extent found. These extents will continue to occupy space forever, until they're deleted. Using the -r option will cause them to be reclaimed.
  • The system may be marked as read-only. If the driver detects an error in the structure of the filesystem, and you haven't specified the -r option, the driver marks the partition as read-only, so that it can't be further damaged.
  • If a reclaim operation is interrupted by a power loss, the spare block may be unusable. In this case, if you specify the -vv option, the driver prints partial to the console. The partition is still read-write, but reclaims are turned off; if you continue to overwrite files, you'll eventually fill the filesystem with stale data.
-S sector_erase_latency
Set the simulated sector erase latency in milliseconds (max = 10000).
-s base[,wsize[,aoffset[,asize[,usize[,bwidth[,ileave]]]]]]
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. This option must be specified.

The arguments are:

verbose
Set the devf-snor verbosity level.
unit_size
This option specifies the size of erase sector to use. Sector size must be supported by flash device.
protocol
Set/clear SPI bus protocol.Supported bus protocols are: 111, 111FAST, 111DTR, 112, 122, 222, 122DTR 114, 144, 444, 144DTR, 118, 188, 888, 188DTR, 888DTR
soc
Set SoC specific options, The following options are separated by colons:
base: controller base address.
dev_type : controller variant type (mandatory either "s32v-qspi" or "s32g-qspi").
clk : flash clock rate (optional for "s32v-qspi", mandatory for "s32g-qspi").
Examples of soc options:
For s32v evb1 board:
%C -s verbose=1,soc=dev_type=s32v-qspi
For s32g rdb board:
%C -s verbose=1,soc=dev_type=s32g-qspi:clk=200000000
vid/did
Use [vid]/[did] instead of IDs from the flash device.Both vid/did need to be specified.
drate
Set data rate(SPI bus clock)
drv_strength
Set flash device driver strength if applicable
numcs
Set number of chip select
stripe
Flash chips are connected in stripe mode

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

  • (nothing) — bytes
  • k — kilobytes
  • m — megabytes
-T max_erase_diff
Set the threshold value (maximum erase count − minimum erase count in a partition) to trigger wear-leveling. The default value is two times the sector number in the partition. Typically, for very large partitions containing more than 1000 sectors, you should use this option to specify a threshold (for example, 1000) to make the sector erasure counts more evenly distributed across the entire partition.
-t hi_water[,lo_water[,max]]
Set the high water, low water, and maximum attributes of the thread pool; the increment (i.e., the number of threads created at one time) is 1. The default is 4,2,100. The values must satisfy all of the following restrictions:
  • 0 < hi_water < max
  • 0 <= lo_water <= hi_water
  • hi_water < max <= 100
-u update
Specify the update level for timestamps. POSIX specifies that timestamps be kept when you access, create, or modify a file. FFSv3 is documented as not supporting the access timestamp, in order to reduce wear on the hardware.

The values for update are:

  • 0 — don't update the modification time for files (the default).
  • 1 — update the modification time for files according to the POSIX rules.
  • 2 — update the modification time for files, as well as for the parent directory.
Note:
The -u2 option is very, very expensive and will cause many reclaims because the time updates have to flow right up to the root directory, so one file update may cause many directory updates.
-V
Display filesystem and MTD version information, and then exit.
-v
Be verbose; specify additional v characters for more verbosity.
-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.
-x type
Enable software ECC mode, and set the ECC storage alignment (1=1byte align, 2=2byte align; default=1) Specify type as 1 for 64-byte alignment ECC, or 2 for 32-byte.
Note:
Don't mix ECC-enabled partitions and ECC-disabled partitions; the driver doesn't support this.

Description:

This driver provides Flash filesystem support for NXP boards.

Page updated: