Bootrom Flash File System
Blunk Microsystems’ Boot File System, TargetBFS, is a high-performance flash file system with a minimal ROM and RAM
footprint that includes the following features:
- Intended for boot loader use, TargetBFS volumes can share the same flash device as
TargetXFS volumes and be accessed by both boot loader and application code.
- Simplified application interface for bootrom applications. Supports dynamic creation and deletion of
files, with full read and write capability, and seeking within files.
- New files do not persist unless written and closed, meaning all files found at start-up must have been
opened, written, and closed successfully, and therefore have valid contents.
- Supports ‘update’ open mode which guarantees that if a reset occurs before the file is written and closed,
the file has its original contents at the next start up. The new contents replace the old only if
the close call completes successfully.
- Guaranteed file system integrity across unexpected shutdowns. Only data written to an open file can be lost.
Closed files and files open for reading are never at risk.
- Extremely fast volume initialization/mount time.
- TargetBFS’s advantages come with these restrictions:
- Directory hierarchies are unsupported. All files share a single directory.
- Only one file may be open at a time.
- Zero-length files are not allowed. They are automatically deleted.
- The maximum number of files is set at compile-time.
- File memory allocations are done in units of whole erasable flash blocks.
- Reduces metadata size by allocating flash memory via extents (block number and run length). Files
normally use few extents, but repetitive ‘perverse’ sequences of file creation and deletion can grow them.
TargetBFS monitors extent list size and performs just-in-time defragmentation as needed.
- Flash memory use moves sequentially through the flash address range as writes occur, performing static
program-erase wear leveling. No data is re-written to the same location until after all other flash blocks
have been used.
- Supports read-wear leveling to prevent data errors due to repetitively reading the same file. When the read
limit is reached, the file can be copied to another location, renewing the voltage margins of its data stored
in flash cells.
- Recovers dirty flash blocks using just-in-time garbage collection.
- Supports all NAND and NOR flash device types: single level cell (SLC), multi-level cell (MLC), SPI, and
- Simple driver layer. Includes sample drivers and a test program for detecting driver software and hardware
errors. I/O errors during operation are gracefully reported to the application.
- Source code is 100% ANSI C and has been tested using PC-lint and multiple ANSI C compilers.
- Developed using TargetOS™, Blunk Microsystems' full-featured royalty-free real time
operating system (RTOS). Easily ported to other operating systems or used in polled mode, without a kernel.
- Royalty-free license. Includes source code, manual, sample applications, and one year of technical support.
Electronic delivery via FTP account.